--- 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,
--- 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)
{
--- 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;
--- 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);