]> code.delx.au - pymsnt/commitdiff
Fixes to switchboard session exceptions.
authorjamesbunton <jamesbunton@55fbd22a-6204-0410-b2f0-b6c764c7e90a>
Sat, 4 Feb 2006 12:37:41 +0000 (12:37 +0000)
committerjamesbunton <jamesbunton@55fbd22a-6204-0410-b2f0-b6c764c7e90a>
Sat, 4 Feb 2006 12:37:41 +0000 (12:37 +0000)
git-svn-id: http://delx.cjb.net/svn/pymsnt/trunk@110 55fbd22a-6204-0410-b2f0-b6c764c7e90a

committer: jamesbunton <jamesbunton@55fbd22a-6204-0410-b2f0-b6c764c7e90a>

src/tlib/msn/msnw.py

index d0e132f338ed14e9751ba1ec2dc053c291eb938c..6330444ba559ea2d2afc08b6bd47e1b860f0cef5 100644 (file)
@@ -615,6 +615,9 @@ class OneSwitchboardSession(SwitchboardSessionBase):
                self.timeout = None
        
        def __del__(self):
+               if self.timeout:
+                       self.timeout.cancel()
+               self.timeout = None
                for message, noerror in self.messageBuffer:
                        if not noerror:
                                self.failedMessage(self.remoteUser, message)
@@ -648,8 +651,11 @@ class OneSwitchboardSession(SwitchboardSessionBase):
                LogEvent(INFO, self.ident)
                if not self.reply:
                        def failCB(arg=None):
+                               if not (self.msncon and self.msncon.switchboardSessions.has_key(self.remoteUser)):
+                                       return
                                LogEvent(INFO, self.ident, "User has not joined after 30 seconds.")
                                del self.msncon.switchboardSessions[self.remoteUser]
+                               self.timeout = None
                        d = self.inviteUser(self.remoteUser)
                        d.addErrback(failCB)
                        self.timeout = reactor.callLater(30.0, failCB)