From 96463e0e6d5899acaf739004207a78ade1efa922 Mon Sep 17 00:00:00 2001 From: jamesbunton Date: Tue, 23 May 2006 12:47:21 +0000 Subject: [PATCH] Messages sent to offline contacts should be bounced properly now. git-svn-id: http://delx.cjb.net/svn/pymsnt/trunk@161 55fbd22a-6204-0410-b2f0-b6c764c7e90a committer: jamesbunton --- src/tlib/msn/msn.py | 4 ++-- src/tlib/msn/msnw.py | 13 +++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/tlib/msn/msn.py b/src/tlib/msn/msn.py index e03aa87..1993086 100644 --- a/src/tlib/msn/msn.py +++ b/src/tlib/msn/msn.py @@ -813,9 +813,9 @@ class MSNEventBase(LineReceiver): 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 diff --git a/src/tlib/msn/msnw.py b/src/tlib/msn/msnw.py index ad693cd..2855c0c 100644 --- a/src/tlib/msn/msnw.py +++ b/src/tlib/msn/msnw.py @@ -469,13 +469,8 @@ class SwitchboardSessionBase(msn.SwitchboardClient): 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 @@ -591,7 +586,7 @@ class MultiSwitchboardSession(SwitchboardSessionBase): 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() @@ -642,13 +637,14 @@ class OneSwitchboardSession(SwitchboardSessionBase): 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) @@ -682,6 +678,7 @@ class OneSwitchboardSession(SwitchboardSessionBase): 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) -- 2.39.2