[Telepathy-commits] [telepathy-gabble/master] GabbleJingleFactory: make stun_server, stun_port private and add an accessor
Simon McVittie
simon.mcvittie at collabora.co.uk
Wed Feb 25 05:40:33 PST 2009
---
src/jingle-factory.c | 33 ++++++++++++++++++++++++++-------
src/jingle-factory.h | 6 +++---
src/media-channel.c | 15 +++++++++++----
3 files changed, 40 insertions(+), 14 deletions(-)
diff --git a/src/jingle-factory.c b/src/jingle-factory.c
index 34dd297..c1658c6 100644
--- a/src/jingle-factory.c
+++ b/src/jingle-factory.c
@@ -65,6 +65,8 @@ struct _GabbleJingleFactoryPrivate
GHashTable *transports;
GHashTable *sessions;
+ gchar *stun_server;
+ guint16 stun_port;
gchar *relay_token;
gboolean get_stun_from_jingle;
gboolean dispose_has_run;
@@ -174,14 +176,14 @@ jingle_info_cb (LmMessageHandler *handler,
if (server != NULL)
{
DEBUG ("jingle info: got stun server %s", server);
- g_free (fac->stun_server);
- fac->stun_server = g_strdup (server);
+ g_free (priv->stun_server);
+ priv->stun_server = g_strdup (server);
}
if (port != NULL)
{
DEBUG ("jingle info: got stun port %s", port);
- fac->stun_port = atoi (port);
+ priv->stun_port = atoi (port);
}
}
}
@@ -265,7 +267,7 @@ gabble_jingle_factory_dispose (GObject *object)
g_hash_table_destroy (priv->transports);
priv->transports = NULL;
- g_free (fac->stun_server);
+ g_free (fac->priv->stun_server);
g_free (fac->priv->relay_token);
if (G_OBJECT_CLASS (gabble_jingle_factory_parent_class)->dispose)
@@ -410,9 +412,9 @@ connection_status_changed_cb (GabbleConnection *conn,
}
else
{
- g_free (self->stun_server);
- self->stun_server = stun_server;
- self->stun_port = stun_port;
+ g_free (priv->stun_server);
+ priv->stun_server = stun_server;
+ priv->stun_port = stun_port;
}
if (priv->conn->features &
@@ -657,3 +659,20 @@ gabble_jingle_factory_get_google_relay_token (GabbleJingleFactory *self)
{
return self->priv->relay_token;
}
+
+gboolean
+gabble_jingle_factory_get_stun_server (GabbleJingleFactory *self,
+ gchar **stun_server,
+ guint *stun_port)
+{
+ if (self->priv->stun_server == NULL || self->priv->stun_port == 0)
+ return FALSE;
+
+ if (stun_server != NULL)
+ *stun_server = g_strdup (self->priv->stun_server);
+
+ if (stun_port != NULL)
+ *stun_port = self->priv->stun_port;
+
+ return TRUE;
+}
diff --git a/src/jingle-factory.h b/src/jingle-factory.h
index 3553eae..e37e2e2 100644
--- a/src/jingle-factory.h
+++ b/src/jingle-factory.h
@@ -123,9 +123,6 @@ typedef struct _GabbleJingleFactoryPrivate GabbleJingleFactoryPrivate;
struct _GabbleJingleFactory {
GObject parent;
- gchar *stun_server;
- guint16 stun_port;
-
GabbleJingleFactoryPrivate *priv;
};
@@ -148,6 +145,9 @@ GabbleJingleSession *gabble_jingle_factory_create_session (GabbleJingleFactory
const gchar *gabble_jingle_factory_get_google_relay_token (
GabbleJingleFactory *self);
+gboolean gabble_jingle_factory_get_stun_server (GabbleJingleFactory *self,
+ gchar **stun_server, guint *stun_port);
+
G_END_DECLS;
#endif /* __JINGLE_FACTORY_H__ */
diff --git a/src/media-channel.c b/src/media-channel.c
index 83a7d6b..fb330c8 100644
--- a/src/media-channel.c
+++ b/src/media-channel.c
@@ -270,6 +270,8 @@ gabble_media_channel_constructor (GType type, guint n_props,
TpHandleRepoIface *contact_handles;
GabbleJingleFactory *jf;
const gchar *relay_token;
+ gchar *stun_server;
+ guint stun_port;
obj = G_OBJECT_CLASS (gabble_media_channel_parent_class)->
constructor (type, n_props, props);
@@ -310,10 +312,15 @@ 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 (gabble_jingle_factory_get_stun_server (jf, &stun_server,
+ &stun_port))
+ {
+ g_object_set (obj,
+ "stun-server", stun_server,
+ "stun-port", stun_port,
+ NULL);
+ g_free (stun_server);
+ }
relay_token = gabble_jingle_factory_get_google_relay_token (jf);
--
1.5.6.5
More information about the telepathy-commits
mailing list