Attachments you submit will be routed for moderation. If you have an account, please log in first.

Ticket #142: ps_reconnect.patch

File ps_reconnect.patch, 2.1 KB (added by erikos, 4 years ago)

auto apply the new jabber server and reconnect directly

  • extensions/cpsection/network/model.py

    diff --git a/extensions/cpsection/network/model.py b/extensions/cpsection/network/model.py
    index bfd008a..ee19995 100644
    a b  
    121121    client = gconf.client_get_default() 
    122122    client.set_bool('/desktop/sugar/collaboration/publish_gadget', value) 
    123123    return 0 
     124 
     125def restart_jabber(): 
     126    """Call Sugar Presence Service to restart Telepathy CMs. 
     127 
     128    This allows restarting the jabber server connection when we change it. 
     129    """ 
     130    _PS_SERVICE = "org.laptop.Sugar.Presence" 
     131    _PS_INTERFACE = "org.laptop.Sugar.Presence" 
     132    _PS_PATH = "/org/laptop/Sugar/Presence" 
     133    bus = dbus.SessionBus() 
     134    try: 
     135        ps = dbus.Interface(bus.get_object(_PS_SERVICE, _PS_PATH), _PS_INTERFACE) 
     136    except dbus.DBusException: 
     137        raise ReadError('%s service not available', _PS_SERVICE) 
     138    ps.RestartServerConnection() 
  • extensions/cpsection/network/view.py

    diff --git a/extensions/cpsection/network/view.py b/extensions/cpsection/network/view.py
    index 9a7f387..cc6ced4 100644
    a b  
    221221        self._jabber_sid = 0 
    222222        if widget.get_text() == self._model.get_jabber: 
    223223            return 
     224        self._model.set_jabber(widget.get_text()) 
    224225        try: 
    225             self._model.set_jabber(widget.get_text()) 
    226         except ValueError, detail: 
     226            self._model.restart_jabber() 
     227        except ReadError, detail: 
    227228            self._jabber_alert.props.msg = detail 
    228229            self._jabber_valid = False 
     230            self._jabber_alert.show() 
     231            self.restart_alerts.append('jabber') 
    229232        else: 
    230             self._jabber_alert.props.msg = self.restart_msg 
    231233            self._jabber_valid = True             
    232             self.needs_restart = True 
    233             self.restart_alerts.append('jabber')             
     234            self._jabber_alert.hide() 
    234235 
    235236        self._validate() 
    236         self._jabber_alert.show()         
    237237        return False 
    238238 
    239239    def __network_configuration_reset_cb(self, widget):