# HG changeset patch # User Nicolas Cornu # Date 1281780059 -7200 # Node ID f3408f4fe61a7c34ca6dc3f6688f4d73318cff84 # Parent bd54d1dba1ad06a2c9048e7842f250865837e4d2 JS5B: to message diff -r bd54d1dba1ad -r f3408f4fe61a jingle-ibb/ibb.c --- a/jingle-ibb/ibb.c Sat Aug 14 06:11:41 2010 +0200 +++ b/jingle-ibb/ibb.c Sat Aug 14 12:00:59 2010 +0200 @@ -214,13 +214,13 @@ { JingleIBB *jibb = (JingleIBB*)data; JingleAckHandle *ackhandle; + LmMessageNode *node; gchar *base64 = g_base64_encode((const guchar *)buf, size); gchar *seq = g_strdup_printf("%" G_GINT64_FORMAT, jibb->seq); LmMessage *r = lm_message_new_with_sub_type(to, LM_MESSAGE_TYPE_IQ, LM_MESSAGE_SUB_TYPE_SET); - LmMessageNode *node = lm_message_get_node(r); - lm_message_node_add_child(node, "data", NULL); - node = lm_message_node_get_child(node, "data"); + LmMessageNode *node2 = lm_message_get_node(r); + node = lm_message_node_add_child(node2, "data", NULL); lm_message_node_set_attributes(node, "xmlns", NS_TRANSPORT_IBB, "sid", jibb->sid, "seq", seq, diff -r bd54d1dba1ad -r f3408f4fe61a jingle-socks5/socks5.c --- a/jingle-socks5/socks5.c Sat Aug 14 06:11:41 2010 +0200 +++ b/jingle-socks5/socks5.c Sat Aug 14 12:00:59 2010 +0200 @@ -41,7 +41,8 @@ void jingle_socks5_tomessage(gconstpointer data, LmMessageNode *node); const gchar* jingle_socks5_xmlns(void); gconstpointer jingle_socks5_new(void); -void jingle_socks5_send(session_content *sc, const gchar *to, gconstpointer data, gchar *buf, gsize size); +void jingle_socks5_send(session_content *sc, const gchar *to, + gconstpointer data, gchar *buf, gsize size); static void jingle_socks5_init(void); static void jingle_socks5_uninit(void); @@ -149,6 +150,43 @@ return (gconstpointer) js5b; } +void jingle_socks5_tomessage(gconstpointer data, LmMessageNode *node) +{ + JingleSocks5 *js5 = (JingleSocks5*)data; + JingleS5BCandidate *js5c; + + LmMessageNode *node2, *node3; + gchar *port; + gchar *priority; + GSList *el; + + if (lm_message_node_get_child(node, "transport") != NULL) + return; + + node2 = lm_message_node_add_child(node, "transport", NULL); + + lm_message_node_set_attributes(node2, "xmlns", NS_JINGLE_TRANSPORT_SOCKS5, + "sid", js5->sid, + "mode", jingle_s5b_modes[js5->mode], + NULL); + for (el = js5->candidates; el; el = el->next) { + js5c = (JingleS5BCandidate*) el->data; + node3 = lm_message_node_add_child(node2, "candidate", NULL); + + port = g_strdup_printf("%" G_GUINT16_FORMAT, js5c->port); + priority = g_strdup_printf("%" G_GUINT64_FORMAT, js5c->priority); + + lm_message_node_set_attributes(node3, "cid", js5c->cid, + "host", js5c->host, + "jid", js5c->jid, + "port", port, + "priority", priority, + "type", jingle_s5b_types[js5c->type], + NULL); + g_free(port); + g_free(priority); + } +} static void jingle_socks5_init(void) { diff -r bd54d1dba1ad -r f3408f4fe61a jingle/jingle.h --- a/jingle/jingle.h Sat Aug 14 06:11:41 2010 +0200 +++ b/jingle/jingle.h Sat Aug 14 12:00:59 2010 +0200 @@ -108,7 +108,7 @@ void (*handler)(JingleNode *); }; -typedef void (*JingleAckCallback) (LmMessage *, gpointer *); +typedef void (*JingleAckCallback) (LmMessage *, gpointer); typedef struct { JingleAckCallback callback; diff -r bd54d1dba1ad -r f3408f4fe61a jingle/send.c --- a/jingle/send.c Sat Aug 14 06:11:41 2010 +0200 +++ b/jingle/send.c Sat Aug 14 12:00:59 2010 +0200 @@ -35,21 +35,19 @@ void jingle_send_session_terminate(JingleSession *js, const gchar *reason) { JingleAckHandle *ackhandle; - + LmMessageNode *node2; LmMessage *r = lm_message_new_with_sub_type(js->to, LM_MESSAGE_TYPE_IQ, LM_MESSAGE_SUB_TYPE_SET); LmMessageNode *node = lm_message_get_node(r); - lm_message_node_add_child(node, "jingle", NULL); - node = lm_message_node_get_child(node, "jingle"); - lm_message_node_set_attributes(node, "xmlns", NS_JINGLE, + node2 = lm_message_node_add_child(node, "jingle", NULL); + lm_message_node_set_attributes(node2, "xmlns", NS_JINGLE, "action", "session-terminate", "sid", js->sid, NULL); if (r == NULL) return; if (reason != NULL) { - lm_message_node_add_child(node, "reason", NULL); - node = lm_message_node_get_child(node, "reason"); + node = lm_message_node_add_child(node2, "reason", NULL); lm_message_node_add_child(node, reason, NULL); } @@ -62,7 +60,7 @@ lm_message_unref(r); } -static void jingle_handle_ack_iq_sa(LmMessage *mess, gpointer *data) +static void jingle_handle_ack_iq_sa(LmMessage *mess, gpointer data) { LmMessageNode *node; const gchar *type, *cause; @@ -133,14 +131,14 @@ if (mess) { ackhandle = g_new0(JingleAckHandle, 1); ackhandle->callback = jingle_handle_ack_iq_sa; - ackhandle->user_data = (gpointer*)sess; + ackhandle->user_data = (gpointer)sess; lm_connection_send_with_reply(lconnection, mess, jingle_new_ack_handler(ackhandle), NULL); lm_message_unref(mess); } } -static void jingle_handle_ack_iq_si(LmMessage *mess, gpointer *data) +static void jingle_handle_ack_iq_si(LmMessage *mess, gpointer data) { LmMessageNode *node; const gchar *type, *cause; @@ -172,7 +170,7 @@ if (mess) { ackhandle = g_new0(JingleAckHandle, 1); ackhandle->callback = jingle_handle_ack_iq_si; - ackhandle->user_data = (gpointer*)js; + ackhandle->user_data = (gpointer)js; lm_connection_send_with_reply(lconnection, mess, jingle_new_ack_handler(ackhandle), NULL); lm_message_unref(mess);