From 885d118b31651bf381b40f6bf10cbd8b28cdc915 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date: Mon, 6 Sep 2010 17:48:08 +0200
Subject: [PATCH] Set param-register to False after a RegistrationExists error #2296
---
src/jarabe/model/neighborhood.py | 23 ++++++++++++++++++++++-
1 files changed, 22 insertions(+), 1 deletions(-)
diff --git a/src/jarabe/model/neighborhood.py b/src/jarabe/model/neighborhood.py
index 3e89855..9ec6322 100644
a
|
b
|
class _Account(gobject.GObject): |
199 | 199 | logging.debug('_Account.__got_connection_cb %r', connection_path) |
200 | 200 | |
201 | 201 | if connection_path == '/': |
202 | | # Account has no connection, wait until it has one. |
| 202 | self._check_registration_error() |
203 | 203 | return |
204 | 204 | |
205 | 205 | self._prepare_connection(connection_path) |
206 | 206 | |
| 207 | def _check_registration_error(self): |
| 208 | """ |
| 209 | See if a previous connection attempt failed and we need to unset |
| 210 | the register flag. |
| 211 | """ |
| 212 | bus = dbus.Bus() |
| 213 | obj = bus.get_object(ACCOUNT_MANAGER_SERVICE, self.object_path) |
| 214 | obj.Get(ACCOUNT, 'ConnectionError', |
| 215 | reply_handler=self.__got_connection_error_cb, |
| 216 | error_handler=partial(self.__error_handler_cb, |
| 217 | 'Account.GetConnectionError')) |
| 218 | |
| 219 | def __got_connection_error_cb(self, error): |
| 220 | logging.debug('_Account.__got_connection_error_cb %r', error) |
| 221 | if error == 'org.freedesktop.Telepathy.Error.RegistrationExists': |
| 222 | bus = dbus.Bus() |
| 223 | obj = bus.get_object(ACCOUNT_MANAGER_SERVICE, self.object_path) |
| 224 | obj.UpdateParameters({'register': False}, [], |
| 225 | dbus_interface=ACCOUNT) |
| 226 | |
207 | 227 | def __account_property_changed_cb(self, properties): |
208 | 228 | logging.debug('_Account.__account_property_changed_cb %r %r %r', |
209 | 229 | self.object_path, properties.get('Connection', None), |
… |
… |
class _Account(gobject.GObject): |
211 | 231 | if 'Connection' not in properties: |
212 | 232 | return |
213 | 233 | if properties['Connection'] == '/': |
| 234 | self._check_registration_error() |
214 | 235 | self._connection = None |
215 | 236 | elif self._connection is None: |
216 | 237 | self._prepare_connection(properties['Connection']) |