jingle-socks5/socks5.c
changeset 118 f3408f4fe61a
parent 117 bd54d1dba1ad
child 120 3e2085a44a5c
equal deleted inserted replaced
117:bd54d1dba1ad 118:f3408f4fe61a
    39 gconstpointer jingle_socks5_check(JingleContent *cn, GError **err);
    39 gconstpointer jingle_socks5_check(JingleContent *cn, GError **err);
    40 gboolean jingle_socks5_cmp(gconstpointer data1, gconstpointer data2);
    40 gboolean jingle_socks5_cmp(gconstpointer data1, gconstpointer data2);
    41 void jingle_socks5_tomessage(gconstpointer data, LmMessageNode *node);
    41 void jingle_socks5_tomessage(gconstpointer data, LmMessageNode *node);
    42 const gchar* jingle_socks5_xmlns(void);
    42 const gchar* jingle_socks5_xmlns(void);
    43 gconstpointer jingle_socks5_new(void);
    43 gconstpointer jingle_socks5_new(void);
    44 void jingle_socks5_send(session_content *sc, const gchar *to, gconstpointer data, gchar *buf, gsize size);
    44 void jingle_socks5_send(session_content *sc, const gchar *to,
       
    45                         gconstpointer data, gchar *buf, gsize size);
    45 
    46 
    46 static void jingle_socks5_init(void);
    47 static void jingle_socks5_init(void);
    47 static void jingle_socks5_uninit(void);
    48 static void jingle_socks5_uninit(void);
    48 
    49 
    49 
    50 
   147   }
   148   }
   148 
   149 
   149   return (gconstpointer) js5b;
   150   return (gconstpointer) js5b;
   150 }
   151 }
   151 
   152 
       
   153 void jingle_socks5_tomessage(gconstpointer data, LmMessageNode *node)
       
   154 {
       
   155   JingleSocks5 *js5 = (JingleSocks5*)data;
       
   156   JingleS5BCandidate *js5c;
       
   157   
       
   158   LmMessageNode *node2, *node3;
       
   159   gchar *port;
       
   160   gchar *priority;
       
   161   GSList *el;
       
   162   
       
   163   if (lm_message_node_get_child(node, "transport") != NULL)
       
   164     return;
       
   165   
       
   166   node2 = lm_message_node_add_child(node, "transport", NULL);
       
   167 
       
   168   lm_message_node_set_attributes(node2, "xmlns", NS_JINGLE_TRANSPORT_SOCKS5,
       
   169                                  "sid", js5->sid,
       
   170                                  "mode", jingle_s5b_modes[js5->mode],
       
   171                                  NULL);
       
   172   for (el = js5->candidates; el; el = el->next) {
       
   173     js5c = (JingleS5BCandidate*) el->data;
       
   174     node3 = lm_message_node_add_child(node2, "candidate", NULL);
       
   175     
       
   176     port = g_strdup_printf("%" G_GUINT16_FORMAT, js5c->port);
       
   177     priority = g_strdup_printf("%" G_GUINT64_FORMAT, js5c->priority);
       
   178     
       
   179     lm_message_node_set_attributes(node3, "cid", js5c->cid,
       
   180                                    "host", js5c->host,
       
   181                                    "jid", js5c->jid,
       
   182                                    "port", port,
       
   183                                    "priority", priority,
       
   184                                    "type", jingle_s5b_types[js5c->type],
       
   185                                    NULL);
       
   186     g_free(port);
       
   187     g_free(priority);
       
   188   }
       
   189 }
   152 
   190 
   153 static void jingle_socks5_init(void)
   191 static void jingle_socks5_init(void)
   154 {
   192 {
   155   jingle_register_transport(NS_JINGLE_TRANSPORT_SOCKS5, &funcs,
   193   jingle_register_transport(NS_JINGLE_TRANSPORT_SOCKS5, &funcs,
   156                             JINGLE_TRANSPORT_STREAMING,
   194                             JINGLE_TRANSPORT_STREAMING,