libpurple/protocols/jabber/jingle/rawudp.c

branch
soc.2013.gobjectification
changeset 34935
686fa55b0deb
parent 33631
21775fb6957a
child 35061
307195f879f3
child 36889
4dfe09057bed
equal deleted inserted replaced
34934:d50c4b767a5e 34935:686fa55b0deb
41 static void jingle_rawudp_class_init (JingleRawUdpClass *klass); 41 static void jingle_rawudp_class_init (JingleRawUdpClass *klass);
42 static void jingle_rawudp_init (JingleRawUdp *rawudp); 42 static void jingle_rawudp_init (JingleRawUdp *rawudp);
43 static void jingle_rawudp_finalize (GObject *object); 43 static void jingle_rawudp_finalize (GObject *object);
44 static void jingle_rawudp_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); 44 static void jingle_rawudp_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
45 static void jingle_rawudp_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); 45 static void jingle_rawudp_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
46 static JingleTransport *jingle_rawudp_parse_internal(xmlnode *rawudp); 46 static JingleTransport *jingle_rawudp_parse_internal(PurpleXmlNode *rawudp);
47 static xmlnode *jingle_rawudp_to_xml_internal(JingleTransport *transport, xmlnode *content, JingleActionType action); 47 static PurpleXmlNode *jingle_rawudp_to_xml_internal(JingleTransport *transport, PurpleXmlNode *content, JingleActionType action);
48 static void jingle_rawudp_add_local_candidate(JingleTransport *transport, const gchar *id, guint generation, PurpleMediaCandidate *candidate); 48 static void jingle_rawudp_add_local_candidate(JingleTransport *transport, const gchar *id, guint generation, PurpleMediaCandidate *candidate);
49 static GList *jingle_rawudp_get_remote_candidates(JingleTransport *transport); 49 static GList *jingle_rawudp_get_remote_candidates(JingleTransport *transport);
50 50
51 static JingleTransportClass *parent_class = NULL; 51 static JingleTransportClass *parent_class = NULL;
52 52
302 } 302 }
303 priv->remote_candidates = g_list_append(priv->remote_candidates, candidate); 303 priv->remote_candidates = g_list_append(priv->remote_candidates, candidate);
304 } 304 }
305 305
306 static JingleTransport * 306 static JingleTransport *
307 jingle_rawudp_parse_internal(xmlnode *rawudp) 307 jingle_rawudp_parse_internal(PurpleXmlNode *rawudp)
308 { 308 {
309 JingleTransport *transport = parent_class->parse(rawudp); 309 JingleTransport *transport = parent_class->parse(rawudp);
310 JingleRawUdpPrivate *priv = JINGLE_RAWUDP_GET_PRIVATE(transport); 310 JingleRawUdpPrivate *priv = JINGLE_RAWUDP_GET_PRIVATE(transport);
311 xmlnode *candidate = xmlnode_get_child(rawudp, "candidate"); 311 PurpleXmlNode *candidate = purple_xmlnode_get_child(rawudp, "candidate");
312 JingleRawUdpCandidate *rawudp_candidate = NULL; 312 JingleRawUdpCandidate *rawudp_candidate = NULL;
313 313
314 for (; candidate; candidate = xmlnode_get_next_twin(candidate)) { 314 for (; candidate; candidate = purple_xmlnode_get_next_twin(candidate)) {
315 const gchar *id = xmlnode_get_attrib(candidate, "id"); 315 const gchar *id = purple_xmlnode_get_attrib(candidate, "id");
316 const gchar *generation = xmlnode_get_attrib(candidate, "generation"); 316 const gchar *generation = purple_xmlnode_get_attrib(candidate, "generation");
317 const gchar *component = xmlnode_get_attrib(candidate, "component"); 317 const gchar *component = purple_xmlnode_get_attrib(candidate, "component");
318 const gchar *ip = xmlnode_get_attrib(candidate, "ip"); 318 const gchar *ip = purple_xmlnode_get_attrib(candidate, "ip");
319 const gchar *port = xmlnode_get_attrib(candidate, "port"); 319 const gchar *port = purple_xmlnode_get_attrib(candidate, "port");
320 320
321 if (!id || !generation || !component || !ip || !port) 321 if (!id || !generation || !component || !ip || !port)
322 continue; 322 continue;
323 323
324 rawudp_candidate = jingle_rawudp_candidate_new( 324 rawudp_candidate = jingle_rawudp_candidate_new(
342 } 342 }
343 343
344 return transport; 344 return transport;
345 } 345 }
346 346
347 static xmlnode * 347 static PurpleXmlNode *
348 jingle_rawudp_to_xml_internal(JingleTransport *transport, xmlnode *content, JingleActionType action) 348 jingle_rawudp_to_xml_internal(JingleTransport *transport, PurpleXmlNode *content, JingleActionType action)
349 { 349 {
350 xmlnode *node = parent_class->to_xml(transport, content, action); 350 PurpleXmlNode *node = parent_class->to_xml(transport, content, action);
351 351
352 if (action == JINGLE_SESSION_INITIATE || 352 if (action == JINGLE_SESSION_INITIATE ||
353 action == JINGLE_TRANSPORT_INFO || 353 action == JINGLE_TRANSPORT_INFO ||
354 action == JINGLE_SESSION_ACCEPT) { 354 action == JINGLE_SESSION_ACCEPT) {
355 JingleRawUdpPrivate *priv = JINGLE_RAWUDP_GET_PRIVATE(transport); 355 JingleRawUdpPrivate *priv = JINGLE_RAWUDP_GET_PRIVATE(transport);
356 GList *iter = priv->local_candidates; 356 GList *iter = priv->local_candidates;
357 357
358 for (; iter; iter = g_list_next(iter)) { 358 for (; iter; iter = g_list_next(iter)) {
359 JingleRawUdpCandidate *candidate = iter->data; 359 JingleRawUdpCandidate *candidate = iter->data;
360 xmlnode *xmltransport; 360 PurpleXmlNode *xmltransport;
361 gchar *generation, *component, *port; 361 gchar *generation, *component, *port;
362 362
363 if (candidate->rem_known == TRUE) 363 if (candidate->rem_known == TRUE)
364 continue; 364 continue;
365 candidate->rem_known = TRUE; 365 candidate->rem_known = TRUE;
366 366
367 xmltransport = xmlnode_new_child(node, "candidate"); 367 xmltransport = purple_xmlnode_new_child(node, "candidate");
368 generation = g_strdup_printf("%d", candidate->generation); 368 generation = g_strdup_printf("%d", candidate->generation);
369 component = g_strdup_printf("%d", candidate->component); 369 component = g_strdup_printf("%d", candidate->component);
370 port = g_strdup_printf("%d", candidate->port); 370 port = g_strdup_printf("%d", candidate->port);
371 371
372 xmlnode_set_attrib(xmltransport, "generation", generation); 372 purple_xmlnode_set_attrib(xmltransport, "generation", generation);
373 xmlnode_set_attrib(xmltransport, "component", component); 373 purple_xmlnode_set_attrib(xmltransport, "component", component);
374 xmlnode_set_attrib(xmltransport, "id", candidate->id); 374 purple_xmlnode_set_attrib(xmltransport, "id", candidate->id);
375 xmlnode_set_attrib(xmltransport, "ip", candidate->ip); 375 purple_xmlnode_set_attrib(xmltransport, "ip", candidate->ip);
376 xmlnode_set_attrib(xmltransport, "port", port); 376 purple_xmlnode_set_attrib(xmltransport, "port", port);
377 377
378 g_free(port); 378 g_free(port);
379 g_free(generation); 379 g_free(generation);
380 } 380 }
381 } 381 }

mercurial