diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-07-05 18:59:32 (GMT) |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-07-05 18:59:32 (GMT) |
commit | c9c66a6b53699090f6b863cfa249395ffca653d6 (patch) | |
tree | 07a942272380680d9ae281cc0649da02fab76215 /src/linklocal_plugin.py | |
parent | 8afd4a76072c953759af1010f27c239eba3da0cd (diff) |
Rework reconnection logic so RECONNECT_TIME is interpreted as a minimum, to avoid eating CPU if Avahi or NM becomes unstable (or if dbus-python has the buggy pre-0.82 watch_name_owner() implementation).
Diffstat (limited to 'src/linklocal_plugin.py')
-rw-r--r-- | src/linklocal_plugin.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/linklocal_plugin.py b/src/linklocal_plugin.py index b60eb15..10924e1 100644 --- a/src/linklocal_plugin.py +++ b/src/linklocal_plugin.py @@ -68,15 +68,19 @@ class LinkLocalPlugin(TelepathyPlugin): if unique_name: self._have_avahi = True if not had_avahi: - _logger.info('Avahi appeared on the system bus (%s) - ' - 'starting...', unique_name) - self.start() + if self._backoff_id > 0: + _logger.info('Avahi appeared on the system bus (%s) - ' + 'will start when retry time is reached') + else: + _logger.info('Avahi appeared on the system bus (%s) - ' + 'starting...', unique_name) + self.start() else: self._have_avahi = False if had_avahi: _logger.info('Avahi disappeared from the system bus - ' 'stopping...') - self.stop() + self._stop() def cleanup(self): TelepathyPlugin.cleanup(self) @@ -85,7 +89,7 @@ class LinkLocalPlugin(TelepathyPlugin): self._watch = None def _could_connect(self): - return self._have_avahi + return TelepathyPlugin._could_connect(self) and self._have_avahi def _get_account_info(self): """Retrieve connection manager parameters for this account |