[Telepathy-commits] [telepathy-gabble/master] GabbleJingleFactory: make relay token private and add an accessor

Simon McVittie simon.mcvittie at collabora.co.uk
Wed Feb 25 05:40:23 PST 2009


---
 src/jingle-factory.c |   12 +++++++++---
 src/jingle-factory.h |    4 +++-
 src/media-channel.c  |   13 +++++++++++--
 3 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/src/jingle-factory.c b/src/jingle-factory.c
index 5aea9a3..34dd297 100644
--- a/src/jingle-factory.c
+++ b/src/jingle-factory.c
@@ -65,6 +65,7 @@ struct _GabbleJingleFactoryPrivate
   GHashTable *transports;
   GHashTable *sessions;
 
+  gchar *relay_token;
   gboolean get_stun_from_jingle;
   gboolean dispose_has_run;
 };
@@ -200,8 +201,8 @@ jingle_info_cb (LmMessageHandler *handler,
           if (token != NULL)
             {
               DEBUG ("jingle info: got relay token %s", token);
-              g_free (fac->relay_token);
-              fac->relay_token = g_strdup (token);
+              g_free (fac->priv->relay_token);
+              fac->priv->relay_token = g_strdup (token);
             }
         }
     }
@@ -265,7 +266,7 @@ gabble_jingle_factory_dispose (GObject *object)
   priv->transports = NULL;
 
   g_free (fac->stun_server);
-  g_free (fac->relay_token);
+  g_free (fac->priv->relay_token);
 
   if (G_OBJECT_CLASS (gabble_jingle_factory_parent_class)->dispose)
     G_OBJECT_CLASS (gabble_jingle_factory_parent_class)->dispose (object);
@@ -651,3 +652,8 @@ session_terminated_cb (GabbleJingleSession *session,
   _jingle_factory_unregister_session (factory, sid);
 }
 
+const gchar *
+gabble_jingle_factory_get_google_relay_token (GabbleJingleFactory *self)
+{
+  return self->priv->relay_token;
+}
diff --git a/src/jingle-factory.h b/src/jingle-factory.h
index 6a8aa27..3553eae 100644
--- a/src/jingle-factory.h
+++ b/src/jingle-factory.h
@@ -125,7 +125,6 @@ struct _GabbleJingleFactory {
 
     gchar *stun_server;
     guint16 stun_port;
-    gchar *relay_token;
 
     GabbleJingleFactoryPrivate *priv;
 };
@@ -146,6 +145,9 @@ void _jingle_factory_unregister_session (GabbleJingleFactory *factory,
 GabbleJingleSession *gabble_jingle_factory_create_session (GabbleJingleFactory
     *fac, TpHandle peer, const gchar *peer_resource);
 
+const gchar *gabble_jingle_factory_get_google_relay_token (
+    GabbleJingleFactory *self);
+
 G_END_DECLS;
 
 #endif /* __JINGLE_FACTORY_H__ */
diff --git a/src/media-channel.c b/src/media-channel.c
index 62069a8..83a7d6b 100644
--- a/src/media-channel.c
+++ b/src/media-channel.c
@@ -269,6 +269,7 @@ gabble_media_channel_constructor (GType type, guint n_props,
   TpIntSet *set;
   TpHandleRepoIface *contact_handles;
   GabbleJingleFactory *jf;
+  const gchar *relay_token;
 
   obj = G_OBJECT_CLASS (gabble_media_channel_parent_class)->
            constructor (type, n_props, props);
@@ -308,12 +309,20 @@ gabble_media_channel_constructor (GType type, guint n_props,
 
   /* Set up Google relay related properties */
   jf = priv->conn->jingle_factory;
+
   if (jf->stun_server != NULL)
       g_object_set (obj, "stun-server", jf->stun_server, NULL);
   if (jf->stun_port != 0)
       g_object_set (obj, "stun-port", jf->stun_port, NULL);
-  if (jf->relay_token != NULL)
-      g_object_set (obj, "gtalk-p2p-relay-token", jf->relay_token, NULL);
+
+  relay_token = gabble_jingle_factory_get_google_relay_token (jf);
+
+  if (relay_token != NULL)
+    {
+      g_object_set (obj,
+          "gtalk-p2p-relay-token", relay_token,
+          NULL);
+    }
 
   /* act on incoming session */
   if (priv->session != NULL)
-- 
1.5.6.5




More information about the telepathy-commits mailing list