diff --git a/plugins/Relay.py b/plugins/Relay.py index e94175b92..d312cb59a 100644 --- a/plugins/Relay.py +++ b/plugins/Relay.py @@ -132,8 +132,7 @@ class Relay(callbacks.Privmsg): else: port = 6667 newIrc = irclib.Irc(irc.nick, callbacks=irc.callbacks) - driver = asyncoreDrivers.AsyncoreDriver((server, port)) - driver.irc = newIrc + driver = asyncoreDrivers.AsyncoreDriver((server, port), newIrc) newIrc.driver = driver self.ircs[abbreviation] = newIrc self.abbreviations[newIrc] = abbreviation diff --git a/src/asyncoreDrivers.py b/src/asyncoreDrivers.py index 17a0cbf07..a8b41b821 100644 --- a/src/asyncoreDrivers.py +++ b/src/asyncoreDrivers.py @@ -58,12 +58,12 @@ class AsyncoreRunnerDriver(drivers.IrcDriver): class AsyncoreDriver(asynchat.async_chat, object): - def __init__(self, (server, port), reconnect=True): + def __init__(self, (server, port), irc, reconnect=True): #debug.methodNamePrintf(self, '__init__') asynchat.async_chat.__init__(self) self.server = (server, port) self.reconnect = reconnect - self.irc = None # Satisfy PyChecker. + self.irc = irc self.buffer = '' self.set_terminator('\n') self.create_socket(socket.AF_INET, socket.SOCK_STREAM) @@ -81,14 +81,13 @@ class AsyncoreDriver(asynchat.async_chat, object): debug.msg('Scheduling reconnect at %s' % whenS, 'normal') def makeNewDriver(): self.irc.reset() - driver = self.__class__(self.server, reconnect=self.reconnect) - driver.irc = self.irc + driver = self.__class__(self.server, self.irc, self.reconnect) driver.irc.driver = driver schedule.addEvent(makeNewDriver, when) def writable(self): #debug.methodNamePrintf(self, 'writable') - while self.connected: + while self.connected and self.irc: m = self.irc.takeMsg() if m: self.push(str(m)) diff --git a/src/bot.py b/src/bot.py index 461892bb0..0943511b0 100755 --- a/src/bot.py +++ b/src/bot.py @@ -140,7 +140,7 @@ def processConfigFile(filename): irc.reset() world.startup = False irc.addCallback(ConfigAfter376(after376)) - driver = asyncoreDrivers.AsyncoreDriver(server) + driver = asyncoreDrivers.AsyncoreDriver(server, irc) driver.irc = irc except IOError, e: reportConfigError(filename, e)