[Telepathy-commits] [telepathy-gabble/master] JingleFactory: set a short timeout value for google relay session creation

Simon McVittie simon.mcvittie at collabora.co.uk
Tue Mar 3 09:15:29 PST 2009


(Also send the HTTP request to the relay server we were told about, not a
hard-coded hostname, which wasn't mentioned in Senko's original commit
message -smcv)
---
 src/jingle-factory.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/jingle-factory.c b/src/jingle-factory.c
index cb760b9..53b4b03 100644
--- a/src/jingle-factory.c
+++ b/src/jingle-factory.c
@@ -92,6 +92,8 @@ static void session_terminated_cb (GabbleJingleSession *sess,
 static void connection_status_changed_cb (GabbleConnection *conn,
     guint status, guint reason, GabbleJingleFactory *self);
 
+#define RELAY_HTTP_TIMEOUT 5
+
 static void
 gabble_jingle_factory_init (GabbleJingleFactory *obj)
 {
@@ -944,6 +946,7 @@ gabble_jingle_factory_create_google_relay_session (
   GabbleJingleFactoryPrivate *priv =
       GABBLE_JINGLE_FACTORY_GET_PRIVATE (fac);
   SoupMessage *msg;
+  gchar *url;
 
   g_return_if_fail (callback != NULL);
 
@@ -961,11 +964,16 @@ gabble_jingle_factory_create_google_relay_session (
         g_thread_init (NULL);
 
       priv->soup = soup_session_async_new ();
+
+      /* If we don't get answer in a few seconds, relay won't do
+       * us much help anyways. */
+      g_object_set (priv->soup, "timeout", RELAY_HTTP_TIMEOUT, NULL);
     }
 
-  msg = soup_message_new ("GET", "http://relay.google.com/create_session");
+  url = g_strdup_printf ("http://%s/create_session", fac->relay_server);
+  msg = soup_message_new ("GET", url);
 
-  DEBUG ("Trying to create a new relay session");
+  DEBUG ("Trying to create a new relay session on %s", url);
 
   /* libjingle sets both headers, so shall we */
   soup_message_headers_append (msg->request_headers,
@@ -975,4 +983,5 @@ gabble_jingle_factory_create_google_relay_session (
 
   soup_session_queue_message (priv->soup, msg, on_http_response,
       relay_session_data_new (callback, user_data));
+  g_free (url);
 }
-- 
1.5.6.5




More information about the telepathy-commits mailing list