mirror of
https://github.com/Mikaela/Limnoria.git
synced 2025-02-17 14:10:41 +01:00
Tried to make sure Ircs and Drivers get nuked appropriately when they die sadly.
This commit is contained in:
parent
d77bd968ae
commit
39856a6172
@ -138,6 +138,9 @@ def run():
|
|||||||
_deadDrivers.append(name)
|
_deadDrivers.append(name)
|
||||||
for name in _deadDrivers:
|
for name in _deadDrivers:
|
||||||
try:
|
try:
|
||||||
|
driver = _drivers[name]
|
||||||
|
driver.irc.driver = None
|
||||||
|
driver.irc = None
|
||||||
del _drivers[name]
|
del _drivers[name]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
|
@ -63,14 +63,14 @@ class SupyIrcProtocol(LineReceiver):
|
|||||||
msg = ircmsgs.IrcMsg(line)
|
msg = ircmsgs.IrcMsg(line)
|
||||||
log.debug('Time to parse IrcMsg: %s', time.time()-start)
|
log.debug('Time to parse IrcMsg: %s', time.time()-start)
|
||||||
try:
|
try:
|
||||||
self.factory.irc.feedMsg(msg)
|
self.irc.feedMsg(msg)
|
||||||
except:
|
except:
|
||||||
log.exception('Uncaught exception outside Irc object:')
|
log.exception('Uncaught exception outside Irc object:')
|
||||||
|
|
||||||
def checkIrcForMsgs(self):
|
def checkIrcForMsgs(self):
|
||||||
if self.connected:
|
if self.connected:
|
||||||
try:
|
try:
|
||||||
msg = self.factory.irc.takeMsg()
|
msg = self.irc.takeMsg()
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
log.exception('Uncaught exception in irclib.Irc.takeMsg:')
|
log.exception('Uncaught exception in irclib.Irc.takeMsg:')
|
||||||
return
|
return
|
||||||
@ -80,15 +80,15 @@ class SupyIrcProtocol(LineReceiver):
|
|||||||
|
|
||||||
def connectionLost(self, failure):
|
def connectionLost(self, failure):
|
||||||
self.mostRecentCall.cancel()
|
self.mostRecentCall.cancel()
|
||||||
self.factory.irc.reset()
|
self.irc.reset()
|
||||||
log.warning(failure.getErrorMessage())
|
log.warning(failure.getErrorMessage())
|
||||||
|
|
||||||
def connectionMade(self):
|
def connectionMade(self):
|
||||||
self.factory.irc.reset()
|
self.irc.reset()
|
||||||
self.factory.irc.driver = self
|
self.irc.driver = self
|
||||||
|
|
||||||
def die(self):
|
def die(self):
|
||||||
log.info('Driver for %s dying.', self.factory.irc)
|
log.info('Driver for %s dying.', self.irc)
|
||||||
self.factory.continueTrying = False
|
self.factory.continueTrying = False
|
||||||
self.transport.loseConnection()
|
self.transport.loseConnection()
|
||||||
|
|
||||||
@ -104,6 +104,11 @@ class SupyReconnectingFactory(ReconnectingClientFactory):
|
|||||||
self.server = (server, port)
|
self.server = (server, port)
|
||||||
reactor.connectTCP(server, port, self)
|
reactor.connectTCP(server, port, self)
|
||||||
|
|
||||||
|
def buildProtocol(self, addr):
|
||||||
|
protocol = ReconnectingClientFactory.buildProtocol(self, addr)
|
||||||
|
protocol.irc = self.irc
|
||||||
|
return protocol
|
||||||
|
|
||||||
def die(self):
|
def die(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user