[telepathy-gabble/master] Add a boolean to keep track of whether or not relay info has been retrieved.

Mike Ruprecht mike.ruprecht at collabora.co.uk
Tue Dec 29 05:35:03 PST 2009


---
 src/call-stream.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/src/call-stream.c b/src/call-stream.c
index dc508e1..6f9478e 100644
--- a/src/call-stream.c
+++ b/src/call-stream.c
@@ -86,6 +86,8 @@ struct _GabbleCallStreamPrivate
   GabbleJingleContent *content;
   GList *endpoints;
   GPtrArray *relay_info;
+
+  gboolean got_relay_info;
 };
 
 static void
@@ -297,7 +299,11 @@ google_relay_session_cb (GPtrArray *relays,
   priv->relay_info =
       g_boxed_copy (TP_ARRAY_TYPE_STRING_VARIANT_MAP_LIST, relays);
 
-  maybe_emit_server_info_retrieved (user_data);
+  if (!priv->got_relay_info)
+    {
+      priv->got_relay_info = TRUE;
+      maybe_emit_server_info_retrieved (user_data);
+    }
 }
 
 static void
@@ -342,6 +348,8 @@ gabble_call_stream_constructed (GObject *obj)
 
       g_object_unref (connection);
     }
+  else
+    priv->got_relay_info = TRUE;
 
   if (G_OBJECT_CLASS (gabble_call_stream_parent_class)->constructed != NULL)
     G_OBJECT_CLASS (gabble_call_stream_parent_class)->constructed (obj);
-- 
1.5.6.5




More information about the telepathy-commits mailing list