changeset 1d0891a3b1ec in /home/hg/repos/gajim

branches: gtk3
details:http://hg.gajim.org/gajim?cmd=changeset;node=1d0891a3b1ec
description: discover server of our contacts on startup if it's not already 
done.

diffstat:

 src/common/connection_handlers.py |  13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diffs (37 lines):

diff -r 3983c75f7987 -r 1d0891a3b1ec src/common/connection_handlers.py
--- a/src/common/connection_handlers.py Sun Jun 02 21:02:33 2013 +0200
+++ b/src/common/connection_handlers.py Sun Jun 02 22:02:43 2013 +0200
@@ -33,6 +33,7 @@
 import sys
 import operator
 import hashlib
+import gobject
 
 from time import (altzone, daylight, gmtime, localtime, mktime, strftime,
         time as time_time, timezone, tzname)
@@ -559,6 +560,7 @@
                     self.discover_ft_proxies()
                 gajim.nec.push_incoming_event(RosterReceivedEvent(None,
                     conn=self))
+            gobject.timeout_add_seconds(10, self.discover_servers)
         elif self.awaiting_answers[id_][0] == PRIVACY_ARRIVED:
             if iq_obj.getType() != 'error':
                 self.privacy_rules_supported = True
@@ -2062,6 +2064,17 @@
                 gajim.proxy65_manager.resolve(proxy, self.connection, our_jid,
                     testit=testit)
 
+    def discover_servers(self):
+        if not self.connection:
+            return
+        servers = []
+        for c in gajim.contacts.iter_contacts(self.name):
+            s = gajim.get_server_from_jid(c.jid)
+            if s not in servers and s not in gajim.transport_type:
+                servers.append(s)
+        for s in servers:
+            self.discoverInfo(s)
+
     def _on_roster_set(self, roster):
         gajim.nec.push_incoming_event(RosterReceivedEvent(None, conn=self,
             xmpp_roster=roster))
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to