[Telepathy-commits] [telepathy-gabble/master] JingleFactory: properly unregister message handler at disconnect

Senko Rasic senko at phyrexia.lan
Tue Dec 2 04:34:00 PST 2008


---
 src/jingle-factory.c |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/jingle-factory.c b/src/jingle-factory.c
index 3798c3f..3db37be 100644
--- a/src/jingle-factory.c
+++ b/src/jingle-factory.c
@@ -265,11 +265,6 @@ gabble_jingle_factory_dispose (GObject *object)
   g_hash_table_destroy (fac->transports);
   fac->transports = NULL;
 
-  lm_connection_unregister_message_handler (priv->conn->lmconn,
-      priv->jingle_cb, LM_MESSAGE_TYPE_IQ);
-  lm_connection_unregister_message_handler (priv->conn->lmconn,
-      priv->jingle_info_cb, LM_MESSAGE_TYPE_IQ);
-
   g_free (fac->stun_server);
   g_free (fac->relay_token);
 
@@ -428,6 +423,19 @@ connection_status_changed_cb (GabbleConnection *conn,
             }
         }
       break;
+
+    case TP_CONNECTION_STATUS_DISCONNECTED:
+      if (priv->jingle_cb != NULL)
+        {
+          lm_connection_unregister_message_handler (priv->conn->lmconn,
+              priv->jingle_cb, LM_MESSAGE_TYPE_IQ);
+          lm_connection_unregister_message_handler (priv->conn->lmconn,
+              priv->jingle_info_cb, LM_MESSAGE_TYPE_IQ);
+
+          priv->jingle_cb = NULL;
+          priv->jingle_info_cb = NULL;
+        }
+      break;
     }
 }
 
-- 
1.5.6.5




More information about the Telepathy-commits mailing list