]> code.delx.au - pymsnt/blobdiff - src/session.py
If the SLPLink is terminated due to an error, discard any data. This stops an excepti...
[pymsnt] / src / session.py
index c876fe7a3658721ec60287ba8128eb87fd7b0799..f4d11bd629650f682ab478cb6e509c249117a281 100644 (file)
@@ -111,7 +111,7 @@ class Session(jabw.JabberConnection):
                        LogEvent(INFO, self.jabberID)
                        vCard = None
                        for e in el.elements():
-                               if e.name == "vCard" and e.defaultUri == disco.VCARDTEMP:
+                               if e.name == "vCard" and e.uri == disco.VCARDTEMP:
                                        vCard = e
                                        break
                        else:
@@ -120,9 +120,9 @@ class Session(jabw.JabberConnection):
                        avatarSet = False
                        name = ""
                        for e in vCard.elements():
-                               if e.name == "NICKNAME":
+                               if e.name == "NICKNAME" and e.__str__():
                                        name = e.__str__()
-                               if not name and e.name == "FN":
+                               if not name and e.name == "FN" and e.__str__():
                                        # Give priority to nickname
                                        name = e.__str__()
                                if e.name == "PHOTO":
@@ -133,7 +133,7 @@ class Session(jabw.JabberConnection):
                                        self.legacycon.updateAvatar(self.avatar)
                                        avatarSet = True
                        if name:
-                               self.updateNickname(e.__str__())
+                               self.updateNickname(name)
                        if not avatarSet:
                                self.legacycon.updateAvatar() # Default avatar
 
@@ -143,7 +143,7 @@ class Session(jabw.JabberConnection):
                                self.legacycon.updateAvatar()
 
                LogEvent(INFO, self.jabberID, "Fetching avatar.")
-               d = self.sendVCardRequest(to=self.jabberID, fro=config.jid)
+               d = self.sendVCardRequest(to=self.jabberID, fro=config.jid + "/msn")
                d.addCallback(vCardReceived)
                d.addErrback(errback)
        
@@ -329,11 +329,14 @@ class Session(jabw.JabberConnection):
                del self.resourceList[resource]
                self.legacycon.resourceOffline(resource)
        
-       def subscriptionReceived(self, to, subtype):
+       def subscriptionReceived(self, fro, to, subtype):
                """ Sends the subscription request to the legacy services handler """
                if to.find('@') > 0:
-                       LogEvent(INFO, self.jabberID, "Passing subscription to legacy service.")
-                       self.contactList.jabberSubscriptionReceived(to, subtype)
+                       if self.ready:
+                               LogEvent(INFO, self.jabberID, "Passing subscription to legacy service.")
+                               self.contactList.jabberSubscriptionReceived(to, subtype)
+                       else:
+                               self.sendPresence(fro, to, ptype="error")
                else:
                        if subtype == "subscribe":
                                self.sendPresence(to=self.jabberID, fro=config.jid, ptype="subscribed")