diff options
author | Simon Schampijer <simon@schampijer.de> | 2010-09-22 10:12:03 (GMT) |
---|---|---|
committer | Simon Schampijer <simon@schampijer.de> | 2010-09-22 10:12:03 (GMT) |
commit | f76678cbbbaa91a83575b59fdfd31abd74610fab (patch) | |
tree | bf60ea81c13e5ff63c43715e5c0777a2f6b0eb86 | |
parent | 8effea106ee59edc32f1079faf8ab8dafedeb270 (diff) |
Connect to gabble immediatly when possible #10350
We make sure this happens after registration
and when setting a new jabber server.
-rw-r--r-- | extensions/cpsection/network/model.py | 2 | ||||
-rw-r--r-- | src/jarabe/desktop/schoolserver.py | 19 |
2 files changed, 20 insertions, 1 deletions
diff --git a/extensions/cpsection/network/model.py b/extensions/cpsection/network/model.py index 1db7832..c3bac96 100644 --- a/extensions/cpsection/network/model.py +++ b/extensions/cpsection/network/model.py @@ -67,7 +67,7 @@ def _restart_jabber(): _PS_INTERFACE) except dbus.DBusException: raise ReadError('%s service not available' % _PS_SERVICE) - ps.RestartServerConnection() + ps.RetryConnections() def print_radio(): print ('off', 'on')[get_radio()] diff --git a/src/jarabe/desktop/schoolserver.py b/src/jarabe/desktop/schoolserver.py index 1dd9edc..a7d0e63 100644 --- a/src/jarabe/desktop/schoolserver.py +++ b/src/jarabe/desktop/schoolserver.py @@ -20,6 +20,7 @@ from xmlrpclib import ServerProxy, Error import socket import os import gconf +import dbus from sugar.profile import get_profile @@ -57,6 +58,8 @@ def register_laptop(url=REGISTER_URL): client.set_string('/desktop/sugar/collaboration/jabber_server', data['jabberserver']) + _restart_jabber() + client.set_string('/desktop/sugar/backup_url', data['backupurl']) return True @@ -72,3 +75,19 @@ def read_ofw(path): data = fh.read().rstrip('\0\n') fh.close() return data + +def _restart_jabber(): + """Call Sugar Presence Service to restart Telepathy CMs. + + This allows restarting the jabber server connection when we change it. + """ + _PS_SERVICE = "org.laptop.Sugar.Presence" + _PS_INTERFACE = "org.laptop.Sugar.Presence" + _PS_PATH = "/org/laptop/Sugar/Presence" + bus = dbus.SessionBus() + try: + ps = dbus.Interface(bus.get_object(_PS_SERVICE, _PS_PATH), + _PS_INTERFACE) + except dbus.DBusException: + raise RegisterError('%s service not available' % _PS_SERVICE) + ps.RetryConnections() |