summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-im/pymsn-t/files/pymsn-t-0.11.3-unexpected-xfr.patch')
-rw-r--r--net-im/pymsn-t/files/pymsn-t-0.11.3-unexpected-xfr.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/net-im/pymsn-t/files/pymsn-t-0.11.3-unexpected-xfr.patch b/net-im/pymsn-t/files/pymsn-t-0.11.3-unexpected-xfr.patch
new file mode 100644
index 000000000000..7d93d975852e
--- /dev/null
+++ b/net-im/pymsn-t/files/pymsn-t-0.11.3-unexpected-xfr.patch
@@ -0,0 +1,44 @@
+--- pymsn-t/src/legacy/glue.py 2008-09-19 10:53:30.000000000 +0200
++++ pymsn-t/src/legacy/glue.py 2008-09-19 10:52:38.000000000 +0200
+@@ -379,7 +379,13 @@
+ self.session.removeMe()
+
+ def connectionLost(self, reason):
+- LogEvent(INFO, self.jabberID)
++ LogEvent(INFO, self.jabberID)
++ # If we got a second referral, don't really log out but let the next NS
++ # try to log us in
++ if reason.type == error.ConnectionDone and self.gotadditionalXFR != 0:
++ LogEvent(INFO, self.ident)
++ self.gotadditionalXFR = 0
++ return
+ if reason.type != error.ConnectionDone:
+ text = lang.get(self.session.lang).msnDisconnected % reason
+ self.session.sendMessage(to=self.jabberID, fro=config.jid, body=text)
+--- pymsn-t/src/legacy/msn/msn.py 2008-09-19 10:53:30.000000000 +0200
++++ pymsn-t/src/legacy/msn/msn.py 2008-09-19 10:52:38.000000000 +0200
+@@ -1347,7 +1347,9 @@
+ port = MSN_PORT
+
+ if not self._fireCallback(id, host, int(port), params[4]):
+- raise MSNProtocolError, "Got XFR (referral) that I didn't ask for .. should this happen?" # debug
++ #raise MSNProtocolError, "Got XFR (referral) that I didn't ask for .. should this happen?" # debug
++ self.factory.msncon.gotadditionalXFR = 1
++ self.factory.msncon.connectors.append(reactor.connectTCP(host, int(port), self.factory, bindAddress=(self.factory.msncon.BINDADDRESS, 0)))
+
+ def handle_RNG(self, params):
+ checkParamLen(len(params), 6, 'RNG')
+--- pymsn-t/src/legacy/msn/msnw.py 2008-09-19 10:53:30.000000000 +0200
++++ pymsn-t/src/legacy/msn/msnw.py 2008-09-19 10:52:38.000000000 +0200
+@@ -67,8 +67,9 @@
+ LogEvent(INFO, self.ident)
+
+ def _gotNotificationReferral(self, (host, port)):
+- self.timeout.cancel()
+- self.timeout = None
++ if self.timeout != None:
++ self.timeout.cancel()
++ self.timeout = None
+ # Create the NotificationClient
+ self.notificationFactory = msn.NotificationFactory()
+ self.notificationFactory.userHandle = self.username