Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Schampijer <simon@schampijer.de>2010-09-22 10:12:03 (GMT)
committer Simon Schampijer <simon@schampijer.de>2010-09-22 10:12:03 (GMT)
commitf76678cbbbaa91a83575b59fdfd31abd74610fab (patch)
treebf60ea81c13e5ff63c43715e5c0777a2f6b0eb86
parent8effea106ee59edc32f1079faf8ab8dafedeb270 (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.py2
-rw-r--r--src/jarabe/desktop/schoolserver.py19
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()