From f8ffc8e5741b1dc7f7ac43ca80a66191b8c881b1 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 8 Feb 2010 22:08:15 -0600 Subject: [PATCH] Combinging disconnect code to try and minimize errors with the logic --- src/autogv.py | 6 +----- src/connection.py | 15 +++++++++------ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/autogv.py b/src/autogv.py index 7999ed4..0a960c8 100644 --- a/src/autogv.py +++ b/src/autogv.py @@ -173,12 +173,8 @@ class AutoDisconnect(object): if not self.session.is_logged_in(): _moduleLogger.info("Received connection change event when not logged in") return - self._connRef().StatusChanged( - telepathy.CONNECTION_STATUS_DISCONNECTED, - telepathy.CONNECTION_STATUS_REASON_NETWORK_ERROR - ) try: - self._connRef().disconnect() + self._connRef().disconnect(telepathy.CONNECTION_STATUS_REASON_NETWORK_ERROR) except Exception: _moduleLogger.exception("Error durring disconnect") self.__delayedDisconnectEventId = None diff --git a/src/connection.py b/src/connection.py index cbdb388..22d6885 100644 --- a/src/connection.py +++ b/src/connection.py @@ -231,12 +231,8 @@ class TheOneRingConnection( """ For org.freedesktop.telepathy.Connection """ - self.StatusChanged( - telepathy.CONNECTION_STATUS_DISCONNECTED, - telepathy.CONNECTION_STATUS_REASON_REQUESTED - ) try: - self.disconnect() + self.disconnect(telepathy.CONNECTION_STATUS_REASON_REQUESTED) except Exception: _moduleLogger.exception("Error durring disconnect") @@ -277,8 +273,15 @@ class TheOneRingConnection( return props - def disconnect(self): + def disconnect(self, reason): _moduleLogger.info("Disconnecting") + # Not having the disconnect first can cause weird behavior with clients + # including not being able to reconnect or even crashing + self.StatusChanged( + telepathy.CONNECTION_STATUS_DISCONNECTED, + reason, + ) + for plumber in self._plumbing: plumber.stop() -- 1.7.9.5