Require urclib 3.2.2. Has a "fix" for the UnicodeDecodeError problem.
authorEric S. Raymond <esr@thyrsus.com>
Sat, 13 Oct 2012 09:33:03 +0000 (05:33 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Sat, 13 Oct 2012 09:33:03 +0000 (05:33 -0400)
Alas, the fix violates RFC2812.

NEWS
install.txt
irkerd

diff --git a/NEWS b/NEWS
index 0b70edfe5d09adac9f08ade8673ff76cccd6a1db..aca1759c8f507ac5e18326b2738b16ddc554eec4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
                        irker history 
 
+1.13 @
+  The IRC library at version 3.2 or later is required for this version!
+
 1.12 @ 2012-10-11
   Emergency workaround for a Unicode-handling error buried deep in irclib.
   The IRC library at version 3.2 or later is required for this version!
index d98fa4e2fb5d50aa4b0e1d2f43f431a54f24fd8e..9a0d320220ef1699309fd17a407c1588e86e852b 100644 (file)
@@ -28,7 +28,7 @@ You should *not* make irker visible from outside the site firewall, as
 it can be used to spam IRC channels while masking the source address.
 
 You will need to have Jason Coombs's irc library where Python can see
-it.  See <http://pypi.python.org/pypi/irc/>; use version 3.2 or later,
+it.  See <http://pypi.python.org/pypi/irc/>; use version 3.2.2 or later,
 not 3.0 or the even older code from SourceForge.
 
 The file org.catb.irkerd.plist is a Mac OS/X plist that can be
diff --git a/irkerd b/irkerd
index ed92efc58f2bb178b0bd968a39b305e3a5ee60eb..9f008330bc8eed106e66c71fcc1a744ec4860f02 100755 (executable)
--- a/irkerd
+++ b/irkerd
@@ -19,7 +19,7 @@ Design and code by Eric S. Raymond <esr@thyrsus.com>. See the project
 resource page at <http://www.catb.org/~esr/irker/>.
 
 Requires Python 2.6 or 2.5 with the simplejson library installed, and
-the irc client library at version >= 3.2: see
+the irc client library at version >= 3.2.2: see
 
 http://pypi.python.org/pypi/irc/
 """
@@ -364,7 +364,7 @@ class Irker:
         self.irc.add_global_handler("featurelist", self._handle_features)
         self.irc.add_global_handler("disconnect", self._handle_disconnect)
         self.irc.add_global_handler("kick", self._handle_kick)
-        thread = threading.Thread(target=self.process_forever)
+        thread = threading.Thread(target=self.irc.process_forever)
         thread.setDaemon(True)
         self.irc._thread = thread
         thread.start()
@@ -376,16 +376,6 @@ class Irker:
         "Debugging information."
         if self.debuglevel >= level:
             sys.stderr.write("irkerd: %s\n" % errmsg)
-    def process_forever(self, timeout=0.2):
-        "Shim - can be removed later."
-        # Kluge to get around the fact that 3.2 and older library
-        # versions do a Unicode decode where they shouldn't.
-        self.debug(1, "process_forever(timeout=%s)" % timeout)
-        while True:
-            try:
-                self.irc.process_once(timeout)
-            except UnicodeDecodeError:
-                pass
     def _handle_ping(self, connection, _event):
         "PING arrived, bump the last-received time for the connection."
         if connection.context: