if len(cmd) != 3: raise MSNProtocolError, "Invalid Command, %s" % repr(cmd)
if cmd.isdigit():
id = params.split(' ')[0]
- if id.isdigit() and self.ids.has_key(id):
+ if id.isdigit() and self.ids.has_key(int(id)):
id = int(id)
- self.ids[id].errback(int(cmd))
+ self.ids[id][0].errback(int(cmd))
del self.ids[id]
return
else: # we received an error which doesn't map to a sent command
self.funcBuffer = []
self.ready = False
- def __del__(self):
- self.ready = False
- LogEvent(INFO, self.ident)
- del self.msncon
- self.transport.disconnect()
-
def connectionLost(self, reason):
+ LogEvent(INFO, self.ident)
self.ready = False
self.msncon = None
self.msnobj = None
def __init__(self, msncon):
""" Automatically creates a new switchboard connection to the server """
SwitchboardSessionBase.__init__(self, msncon)
- self.ident = (self.msncon.ident, self)
+ self.ident = (self.msncon.ident, repr(self))
self.contactCount = 0
self.groupchat = None
self.connect()
self.chattingUsers = []
self.timeout = None
- def __del__(self):
+ def connectionLost(self, reason):
if self.timeout:
self.timeout.cancel()
self.timeout = None
for message, noerror in self.messageBuffer:
if not noerror:
self.failedMessage(message)
+ SwitchboardSessionBase.connectionLost(self, reason)
def _ready(self):
LogEvent(INFO, self.ident)
LogEvent(INFO, self.ident, "User has not joined after 30 seconds.")
del self.msncon.switchboardSessions[self.remoteUser]
self.timeout = None
+ self.transport.loseConnection()
d = self.inviteUser(self.remoteUser)
d.addErrback(failCB)
self.timeout = reactor.callLater(30.0, failCB)