[Telepathy-commits] [telepathy-salut/master] Fix: remove_stanza_filter when SalutConnection is released. Register the filter without any XmppConnection criteria.

Alban Crequy alban.crequy at collabora.co.uk
Thu Feb 26 11:20:10 PST 2009


---
 src/salut-connection.c |   25 ++++++++-----------------
 1 files changed, 8 insertions(+), 17 deletions(-)

diff --git a/src/salut-connection.c b/src/salut-connection.c
index 82e9801..9e2f8e6 100644
--- a/src/salut-connection.c
+++ b/src/salut-connection.c
@@ -429,21 +429,6 @@ caps_req_stanza_callback (SalutXmppConnectionManager *mgr,
 
 
 static void
-xmpp_connection_manager_new_connection_cb (SalutXmppConnectionManager *mgr,
-                                           GibberXmppConnection *conn,
-                                           SalutContact *contact,
-                                           gpointer user_data)
-{
-  SalutConnection *self = SALUT_CONNECTION (user_data);
-  SalutConnectionPrivate *priv = SALUT_CONNECTION_GET_PRIVATE (self);
-
-  salut_xmpp_connection_manager_add_stanza_filter (
-      priv->xmpp_connection_manager, conn,
-      caps_req_stanza_filter, caps_req_stanza_callback, self);
-}
-
-
-static void
 salut_connection_init (SalutConnection *obj)
 {
   SalutConnectionPrivate *priv =
@@ -488,8 +473,10 @@ salut_connection_constructor (GType type,
   self = SALUT_CONNECTION (obj);
   SalutConnectionPrivate *priv = SALUT_CONNECTION_GET_PRIVATE(self);
 
-  g_signal_connect (priv->xmpp_connection_manager, "new-connection",
-      G_CALLBACK (xmpp_connection_manager_new_connection_cb), obj);
+  /* receive discovery requests */
+  salut_xmpp_connection_manager_add_stanza_filter (
+      priv->xmpp_connection_manager, NULL,
+      caps_req_stanza_filter, caps_req_stanza_callback, self);
 
   self->disco = salut_disco_new (self, priv->xmpp_connection_manager);
   self->presence_cache = salut_presence_cache_new (self);
@@ -1014,6 +1001,10 @@ salut_connection_dispose (GObject *object)
     priv->self = NULL;
   }
 
+  salut_xmpp_connection_manager_remove_stanza_filter (
+      priv->xmpp_connection_manager, NULL,
+      caps_req_stanza_filter, caps_req_stanza_callback, self);
+
 #ifdef ENABLE_OLPC
   salut_xmpp_connection_manager_remove_stanza_filter (
       priv->xmpp_connection_manager, NULL,
-- 
1.5.6.5




More information about the telepathy-commits mailing list