[telepathy-gabble/master] socks5_init_reply_cb: display streamhost-used in debug msg

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Fri Apr 3 09:25:49 PDT 2009


---
 src/bytestream-socks5.c |   37 ++++++++++++++++++++++++++-----------
 1 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/src/bytestream-socks5.c b/src/bytestream-socks5.c
index 3308065..f7ae97d 100644
--- a/src/bytestream-socks5.c
+++ b/src/bytestream-socks5.c
@@ -1156,20 +1156,35 @@ socks5_init_reply_cb (GabbleConnection *conn,
 
   if (lm_message_get_sub_type (reply_msg) == LM_MESSAGE_SUB_TYPE_RESULT)
     {
-      /* yeah, stream initiated */
-      DEBUG ("Socks5 stream initiated");
-      g_object_set (self, "state", GABBLE_BYTESTREAM_STATE_OPEN, NULL);
-      /* We can read data from the sock5 socket now */
-      gibber_transport_block_receiving (priv->transport, FALSE);
-    }
-  else
-    {
-      DEBUG ("error during Socks5 initiation");
+      LmMessageNode *query, *streamhost = NULL;
 
-      g_signal_emit_by_name (self, "connection-error");
-      g_object_set (self, "state", GABBLE_BYTESTREAM_STATE_CLOSED, NULL);
+      query = lm_message_node_get_child_with_namespace (reply_msg->node,
+          "query", NS_BYTESTREAMS);
+
+      if (query != NULL)
+        streamhost = lm_message_node_get_child (query, "streamhost-used");
+
+      if (streamhost == NULL)
+        {
+          DEBUG ("no streamhost-used has been defined. Closing the bytestream");
+        }
+      else
+        {
+          /* yeah, stream initiated */
+          DEBUG ("Socks5 stream initiated using stream: %s",
+              lm_message_node_get_attribute (streamhost, "jid"));
+          g_object_set (self, "state", GABBLE_BYTESTREAM_STATE_OPEN, NULL);
+          /* We can read data from the sock5 socket now */
+          gibber_transport_block_receiving (priv->transport, FALSE);
+          return LM_HANDLER_RESULT_REMOVE_MESSAGE;
+        }
     }
 
+  DEBUG ("error during Socks5 initiation");
+
+  g_signal_emit_by_name (self, "connection-error");
+  g_object_set (self, "state", GABBLE_BYTESTREAM_STATE_CLOSED, NULL);
+
   return LM_HANDLER_RESULT_REMOVE_MESSAGE;
 }
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list