changeset 34e8098ec941 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=34e8098ec941
description: handle presences before caps. Fixes #6046

diffstat:

 src/common/connection_handlers.py |  5 ++++-
 src/common/protocol/caps.py       |  4 +++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diffs (42 lines):

diff -r 9f506f74a70b -r 34e8098ec941 src/common/connection_handlers.py
--- a/src/common/connection_handlers.py Tue Nov 23 23:10:43 2010 +0100
+++ b/src/common/connection_handlers.py Wed Nov 24 09:19:38 2010 +0100
@@ -1071,6 +1071,10 @@
         ConnectionPubSub.__init__(self)
         ConnectionPEP.__init__(self, account=self.name, dispatcher=self,
             pubsub_connection=self)
+
+        # Handle presences BEFORE caps
+        gajim.nec.register_incoming_event(PresenceReceivedEvent)
+
         ConnectionCaps.__init__(self, account=self.name,
             dispatch_event=self.dispatch, capscache=capscache.capscache,
             client_caps_factory=capscache.create_suitable_client_caps)
@@ -1104,7 +1108,6 @@
             PrivateStorageRosternotesReceivedEvent)
         gajim.nec.register_incoming_event(RosternotesReceivedEvent)
         gajim.nec.register_incoming_event(StreamConflictReceivedEvent)
-        gajim.nec.register_incoming_event(PresenceReceivedEvent)
         gajim.nec.register_incoming_event(MessageReceivedEvent)
         gajim.nec.register_incoming_event(ArchivingErrorReceivedEvent)
         gajim.nec.register_incoming_event(
diff -r 9f506f74a70b -r 34e8098ec941 src/common/protocol/caps.py
--- a/src/common/protocol/caps.py       Tue Nov 23 23:10:43 2010 +0100
+++ b/src/common/protocol/caps.py       Wed Nov 24 09:19:38 2010 +0100
@@ -41,13 +41,15 @@
         self._create_suitable_client_caps = client_caps_factory
         gajim.nec.register_incoming_event(CapsPresenceReceivedEvent)
         gajim.nec.register_incoming_event(CapsReceivedEvent)
-        gajim.ged.register_event_handler('caps-presence-received', ged.GUI1, 
+        gajim.ged.register_event_handler('caps-presence-received', ged.GUI1,
             self._nec_caps_presence_received)
 
     def caps_change_account_name(self, new_name):
         self._account = new_name
 
     def _nec_caps_presence_received(self, obj):
+        if obj.conn.name != self._account:
+            return
         obj.client_caps = self._create_suitable_client_caps(obj.node,
             obj.caps_hash, obj.hash_method)
         self._capscache.query_client_of_jid_if_unknown(self, obj.fjid,
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to