libpurple/protocols/jabber/jingle/rawudp.c

Mon, 12 Jun 2017 17:48:37 -0300

author
dx <dx@dxzone.com.ar>
date
Mon, 12 Jun 2017 17:48:37 -0300
changeset 38358
30ba44276e74
parent 36959
4806ff428ecd
parent 38258
9a6551eba09c
child 39430
7bd9d9de4585
permissions
-rw-r--r--

Merge release-2.x.y into default

26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
1 /**
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
2 * @file rawudp.c
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
3 *
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
4 * purple
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
5 *
28322
ac8fec1d2234 Remove specific copyright lines from the XMPP prpl.
Paul Aurich <darkrain42@pidgin.im>
parents: 26980
diff changeset
6 * Purple is the legal property of its developers, whose names are too numerous
ac8fec1d2234 Remove specific copyright lines from the XMPP prpl.
Paul Aurich <darkrain42@pidgin.im>
parents: 26980
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
ac8fec1d2234 Remove specific copyright lines from the XMPP prpl.
Paul Aurich <darkrain42@pidgin.im>
parents: 26980
diff changeset
8 * source distribution.
ac8fec1d2234 Remove specific copyright lines from the XMPP prpl.
Paul Aurich <darkrain42@pidgin.im>
parents: 26980
diff changeset
9 *
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
10 * This program is free software; you can redistribute it and/or modify
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
11 * it under the terms of the GNU General Public License as published by
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
13 * (at your option) any later version.
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
14 *
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
18 * GNU General Public License for more details.
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
19 *
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
20 * You should have received a copy of the GNU General Public License
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
21 * along with this program; if not, write to the Free Software
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
23 */
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
24
26221
bc5d5d3fe4de Make it compile in Windows with the equivalent of --disable-vv.
Michael Ruprecht <maiku@pidgin.im>
parents: 26157
diff changeset
25 #include "internal.h"
35076
cadfc3f9a7cc jabber: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35065
diff changeset
26 #include "glibcompat.h"
26221
bc5d5d3fe4de Make it compile in Windows with the equivalent of --disable-vv.
Michael Ruprecht <maiku@pidgin.im>
parents: 26157
diff changeset
27
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
28 #include "rawudp.h"
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
29 #include "jingle.h"
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
30 #include "debug.h"
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
31
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
32 #include <string.h>
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
33
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
34 struct _JingleRawUdpPrivate
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
35 {
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
36 GList *local_candidates;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
37 GList *remote_candidates;
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
38 };
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
39
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
40 #define JINGLE_RAWUDP_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), JINGLE_TYPE_RAWUDP, JingleRawUdpPrivate))
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
41
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
42 static void jingle_rawudp_class_init (JingleRawUdpClass *klass);
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
43 static void jingle_rawudp_init (JingleRawUdp *rawudp);
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
44 static void jingle_rawudp_finalize (GObject *object);
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
45 static void jingle_rawudp_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
46 static void jingle_rawudp_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
47 static JingleTransport *jingle_rawudp_parse_internal(PurpleXmlNode *rawudp);
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
48 static PurpleXmlNode *jingle_rawudp_to_xml_internal(JingleTransport *transport, PurpleXmlNode *content, JingleActionType action);
33631
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
49 static void jingle_rawudp_add_local_candidate(JingleTransport *transport, const gchar *id, guint generation, PurpleMediaCandidate *candidate);
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
50 static GList *jingle_rawudp_get_remote_candidates(JingleTransport *transport);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
51
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
52 enum {
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
53 PROP_0,
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
54 PROP_LOCAL_CANDIDATES,
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
55 PROP_REMOTE_CANDIDATES,
35076
cadfc3f9a7cc jabber: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35065
diff changeset
56 PROP_LAST
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
57 };
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
58
35076
cadfc3f9a7cc jabber: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35065
diff changeset
59 static JingleTransportClass *parent_class = NULL;
cadfc3f9a7cc jabber: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35065
diff changeset
60 static GParamSpec *properties[PROP_LAST];
cadfc3f9a7cc jabber: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35065
diff changeset
61
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
62 static JingleRawUdpCandidate *
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
63 jingle_rawudp_candidate_copy(JingleRawUdpCandidate *candidate)
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
64 {
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
65 JingleRawUdpCandidate *new_candidate = g_new0(JingleRawUdpCandidate, 1);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
66 new_candidate->generation = candidate->generation;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
67 new_candidate->component = candidate->component;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
68 new_candidate->id = g_strdup(candidate->id);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
69 new_candidate->ip = g_strdup(candidate->ip);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
70 new_candidate->port = candidate->port;
26415
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
71
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
72 new_candidate->rem_known = candidate->rem_known;
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
73 return new_candidate;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
74 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
75
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
76 static void
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
77 jingle_rawudp_candidate_free(JingleRawUdpCandidate *candidate)
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
78 {
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
79 g_free(candidate->id);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
80 g_free(candidate->ip);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
81 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
82
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
83 GType
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
84 jingle_rawudp_candidate_get_type()
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
85 {
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
86 static GType type = 0;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
87
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
88 if (type == 0) {
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
89 type = g_boxed_type_register_static("JingleRawUdpCandidate",
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
90 (GBoxedCopyFunc)jingle_rawudp_candidate_copy,
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
91 (GBoxedFreeFunc)jingle_rawudp_candidate_free);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
92 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
93 return type;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
94 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
95
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
96 JingleRawUdpCandidate *
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
97 jingle_rawudp_candidate_new(const gchar *id, guint generation, guint component, const gchar *ip, guint port)
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
98 {
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
99 JingleRawUdpCandidate *candidate = g_new0(JingleRawUdpCandidate, 1);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
100 candidate->generation = generation;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
101 candidate->component = component;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
102 candidate->id = g_strdup(id);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
103 candidate->ip = g_strdup(ip);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
104 candidate->port = port;
26415
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
105
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
106 candidate->rem_known = FALSE;
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
107 return candidate;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
108 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
109
36889
4dfe09057bed Register jingle types dynamically
Ankit Vani <a@nevitus.org>
parents: 34935
diff changeset
110 PURPLE_DEFINE_TYPE(JingleRawUdp, jingle_rawudp, JINGLE_TYPE_TRANSPORT);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
111
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
112 static void
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
113 jingle_rawudp_class_init (JingleRawUdpClass *klass)
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
114 {
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
115 GObjectClass *gobject_class = (GObjectClass*)klass;
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
116 parent_class = g_type_class_peek_parent(klass);
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
117
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
118 gobject_class->finalize = jingle_rawudp_finalize;
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
119 gobject_class->set_property = jingle_rawudp_set_property;
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
120 gobject_class->get_property = jingle_rawudp_get_property;
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
121 klass->parent_class.to_xml = jingle_rawudp_to_xml_internal;
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
122 klass->parent_class.parse = jingle_rawudp_parse_internal;
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
123 klass->parent_class.transport_type = JINGLE_TRANSPORT_RAWUDP;
33631
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
124 klass->parent_class.add_local_candidate = jingle_rawudp_add_local_candidate;
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
125 klass->parent_class.get_remote_candidates = jingle_rawudp_get_remote_candidates;
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
126
35083
3b6577fd64ee jabber: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35076
diff changeset
127 g_type_class_add_private(klass, sizeof(JingleRawUdpPrivate));
3b6577fd64ee jabber: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35076
diff changeset
128
35076
cadfc3f9a7cc jabber: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35065
diff changeset
129 properties[PROP_LOCAL_CANDIDATES] = g_param_spec_pointer("local-candidates",
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
130 "Local candidates",
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
131 "The local candidates for this transport.",
35076
cadfc3f9a7cc jabber: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35065
diff changeset
132 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
133
35076
cadfc3f9a7cc jabber: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35065
diff changeset
134 properties[PROP_REMOTE_CANDIDATES] = g_param_spec_pointer("remote-candidates",
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
135 "Remote candidates",
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
136 "The remote candidates for this transport.",
35076
cadfc3f9a7cc jabber: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35065
diff changeset
137 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
138
35083
3b6577fd64ee jabber: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35076
diff changeset
139 g_object_class_install_properties(gobject_class, PROP_LAST, properties);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
140 }
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
141
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
142 static void
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
143 jingle_rawudp_init (JingleRawUdp *rawudp)
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
144 {
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
145 rawudp->priv = JINGLE_RAWUDP_GET_PRIVATE(rawudp);
26411
6b7c565cfa9a Fix a bunch of memsets.
Michael Ruprecht <maiku@pidgin.im>
parents: 26410
diff changeset
146 rawudp->priv->local_candidates = NULL;
6b7c565cfa9a Fix a bunch of memsets.
Michael Ruprecht <maiku@pidgin.im>
parents: 26410
diff changeset
147 rawudp->priv->remote_candidates = NULL;
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
148 }
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
149
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
150 static void
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
151 jingle_rawudp_finalize (GObject *rawudp)
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
152 {
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
153 /* JingleRawUdpPrivate *priv = JINGLE_RAWUDP_GET_PRIVATE(rawudp); */
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
154 purple_debug_info("jingle","jingle_rawudp_finalize\n");
26410
5952dcb9ce6c Plug some memory leaks related to transports.
Michael Ruprecht <maiku@pidgin.im>
parents: 26408
diff changeset
155
5952dcb9ce6c Plug some memory leaks related to transports.
Michael Ruprecht <maiku@pidgin.im>
parents: 26408
diff changeset
156 G_OBJECT_CLASS(parent_class)->finalize(rawudp);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
157 }
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
158
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
159 static void
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
160 jingle_rawudp_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
161 {
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
162 JingleRawUdp *rawudp;
32053
e11a51dcd2d8 jabber: Add a few extra g_return_if_fails to the Jingle code
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
163
e11a51dcd2d8 jabber: Add a few extra g_return_if_fails to the Jingle code
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
164 g_return_if_fail(object != NULL);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
165 g_return_if_fail(JINGLE_IS_RAWUDP(object));
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
166
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
167 rawudp = JINGLE_RAWUDP(object);
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
168
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
169 switch (prop_id) {
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
170 case PROP_LOCAL_CANDIDATES:
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
171 rawudp->priv->local_candidates =
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
172 g_value_get_pointer(value);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
173 break;
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
174 case PROP_REMOTE_CANDIDATES:
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
175 rawudp->priv->remote_candidates =
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
176 g_value_get_pointer(value);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
177 break;
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 28322
diff changeset
178 default:
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
179 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
180 break;
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
181 }
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
182 }
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
183
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
184 static void
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
185 jingle_rawudp_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
186 {
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
187 JingleRawUdp *rawudp;
32053
e11a51dcd2d8 jabber: Add a few extra g_return_if_fails to the Jingle code
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
188
e11a51dcd2d8 jabber: Add a few extra g_return_if_fails to the Jingle code
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
189 g_return_if_fail(object != NULL);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
190 g_return_if_fail(JINGLE_IS_RAWUDP(object));
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 28322
diff changeset
191
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
192 rawudp = JINGLE_RAWUDP(object);
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
193
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
194 switch (prop_id) {
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
195 case PROP_LOCAL_CANDIDATES:
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
196 g_value_set_pointer(value, rawudp->priv->local_candidates);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
197 break;
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
198 case PROP_REMOTE_CANDIDATES:
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
199 g_value_set_pointer(value, rawudp->priv->remote_candidates);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
200 break;
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 28322
diff changeset
201 default:
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 28322
diff changeset
202 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
203 break;
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
204 }
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
205 }
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
206
33631
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
207 static void
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
208 jingle_rawudp_add_local_candidate(JingleTransport *transport, const gchar *id, guint generation, PurpleMediaCandidate *candidate)
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
209 {
33631
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
210 JingleRawUdp *rawudp = JINGLE_RAWUDP(transport);
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
211 gchar *ip;
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
212 JingleRawUdpCandidate *rawudp_candidate;
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
213 GList *iter;
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
214
33631
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
215 ip = purple_media_candidate_get_ip(candidate);
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
216 rawudp_candidate = jingle_rawudp_candidate_new(id, generation,
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
217 purple_media_candidate_get_component_id(candidate),
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
218 ip, purple_media_candidate_get_port(candidate));
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
219 g_free(ip);
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
220
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
221 for (iter = rawudp->priv->local_candidates; iter; iter = g_list_next(iter)) {
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
222 JingleRawUdpCandidate *c = iter->data;
38358
30ba44276e74 Merge release-2.x.y into default
dx <dx@dxzone.com.ar>
parents: 36959 38258
diff changeset
223 if (purple_strequal(c->id, id)) {
33631
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
224 generation = c->generation + 1;
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
225
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
226 g_boxed_free(JINGLE_TYPE_RAWUDP_CANDIDATE, c);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
227 rawudp->priv->local_candidates = g_list_delete_link(
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
228 rawudp->priv->local_candidates, iter);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
229
33631
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
230 rawudp_candidate->generation = generation;
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
231
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
232 rawudp->priv->local_candidates = g_list_append(
33631
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
233 rawudp->priv->local_candidates, rawudp_candidate);
35065
2fe1b3f20c3c Added a few missing G_PARAM_STATIC_STRINGS and g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35061
diff changeset
234
35076
cadfc3f9a7cc jabber: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35065
diff changeset
235 g_object_notify_by_pspec(G_OBJECT(rawudp), properties[PROP_LOCAL_CANDIDATES]);
35065
2fe1b3f20c3c Added a few missing G_PARAM_STATIC_STRINGS and g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35061
diff changeset
236
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
237 return;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
238 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
239 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
240
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
241 rawudp->priv->local_candidates = g_list_append(
33631
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
242 rawudp->priv->local_candidates, rawudp_candidate);
35065
2fe1b3f20c3c Added a few missing G_PARAM_STATIC_STRINGS and g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35061
diff changeset
243
35076
cadfc3f9a7cc jabber: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35065
diff changeset
244 g_object_notify_by_pspec(G_OBJECT(rawudp), properties[PROP_LOCAL_CANDIDATES]);
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
245 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
246
33631
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
247 static GList *
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
248 jingle_rawudp_get_remote_candidates(JingleTransport *transport)
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
249 {
33631
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
250 JingleRawUdp *rawudp = JINGLE_RAWUDP(transport);
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
251 GList *candidates = rawudp->priv->remote_candidates;
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
252 GList *ret = NULL;
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
253
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
254 for (; candidates; candidates = g_list_next(candidates)) {
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
255 JingleRawUdpCandidate *candidate = candidates->data;
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
256 ret = g_list_append(ret, purple_media_candidate_new("",
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
257 candidate->component,
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
258 PURPLE_MEDIA_CANDIDATE_TYPE_SRFLX,
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
259 PURPLE_MEDIA_NETWORK_PROTOCOL_UDP,
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
260 candidate->ip, candidate->port));
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
261 }
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
262
21775fb6957a Abstract candidate translation for JingleTransports.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32053
diff changeset
263 return ret;
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
264 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
265
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
266 static JingleRawUdpCandidate *
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
267 jingle_rawudp_get_remote_candidate_by_id(JingleRawUdp *rawudp, gchar *id)
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
268 {
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
269 GList *iter = rawudp->priv->remote_candidates;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
270 for (; iter; iter = g_list_next(iter)) {
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
271 JingleRawUdpCandidate *candidate = iter->data;
38258
9a6551eba09c Replace !strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 32053
diff changeset
272 if (purple_strequal(candidate->id, id)) {
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
273 return candidate;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
274 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
275 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
276 return NULL;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
277 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
278
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
279 static void
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
280 jingle_rawudp_add_remote_candidate(JingleRawUdp *rawudp, JingleRawUdpCandidate *candidate)
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
281 {
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
282 JingleRawUdpPrivate *priv = JINGLE_RAWUDP_GET_PRIVATE(rawudp);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
283 JingleRawUdpCandidate *rawudp_candidate =
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
284 jingle_rawudp_get_remote_candidate_by_id(rawudp, candidate->id);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
285 if (rawudp_candidate != NULL) {
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
286 priv->remote_candidates = g_list_remove(
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
287 priv->remote_candidates, rawudp_candidate);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
288 g_boxed_free(JINGLE_TYPE_RAWUDP_CANDIDATE, rawudp_candidate);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
289 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
290 priv->remote_candidates = g_list_append(priv->remote_candidates, candidate);
35065
2fe1b3f20c3c Added a few missing G_PARAM_STATIC_STRINGS and g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35061
diff changeset
291
35076
cadfc3f9a7cc jabber: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35065
diff changeset
292 g_object_notify_by_pspec(G_OBJECT(rawudp), properties[PROP_REMOTE_CANDIDATES]);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
293 }
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
294
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
295 static JingleTransport *
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
296 jingle_rawudp_parse_internal(PurpleXmlNode *rawudp)
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
297 {
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
298 JingleTransport *transport = parent_class->parse(rawudp);
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
299 JingleRawUdpPrivate *priv = JINGLE_RAWUDP_GET_PRIVATE(transport);
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
300 PurpleXmlNode *candidate = purple_xmlnode_get_child(rawudp, "candidate");
26157
5cb0c7e003c0 Silence warning.
Michael Ruprecht <maiku@pidgin.im>
parents: 26154
diff changeset
301 JingleRawUdpCandidate *rawudp_candidate = NULL;
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
302
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
303 for (; candidate; candidate = purple_xmlnode_get_next_twin(candidate)) {
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
304 const gchar *id = purple_xmlnode_get_attrib(candidate, "id");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
305 const gchar *generation = purple_xmlnode_get_attrib(candidate, "generation");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
306 const gchar *component = purple_xmlnode_get_attrib(candidate, "component");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
307 const gchar *ip = purple_xmlnode_get_attrib(candidate, "ip");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
308 const gchar *port = purple_xmlnode_get_attrib(candidate, "port");
26980
42d365c0076f Don't crash on malicious candidates missing attributes
Paul Aurich <darkrain42@pidgin.im>
parents: 26415
diff changeset
309
42d365c0076f Don't crash on malicious candidates missing attributes
Paul Aurich <darkrain42@pidgin.im>
parents: 26415
diff changeset
310 if (!id || !generation || !component || !ip || !port)
42d365c0076f Don't crash on malicious candidates missing attributes
Paul Aurich <darkrain42@pidgin.im>
parents: 26415
diff changeset
311 continue;
42d365c0076f Don't crash on malicious candidates missing attributes
Paul Aurich <darkrain42@pidgin.im>
parents: 26415
diff changeset
312
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
313 rawudp_candidate = jingle_rawudp_candidate_new(
26980
42d365c0076f Don't crash on malicious candidates missing attributes
Paul Aurich <darkrain42@pidgin.im>
parents: 26415
diff changeset
314 id,
42d365c0076f Don't crash on malicious candidates missing attributes
Paul Aurich <darkrain42@pidgin.im>
parents: 26415
diff changeset
315 atoi(generation),
42d365c0076f Don't crash on malicious candidates missing attributes
Paul Aurich <darkrain42@pidgin.im>
parents: 26415
diff changeset
316 atoi(component),
42d365c0076f Don't crash on malicious candidates missing attributes
Paul Aurich <darkrain42@pidgin.im>
parents: 26415
diff changeset
317 ip,
42d365c0076f Don't crash on malicious candidates missing attributes
Paul Aurich <darkrain42@pidgin.im>
parents: 26415
diff changeset
318 atoi(port));
26415
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
319 rawudp_candidate->rem_known = TRUE;
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
320 jingle_rawudp_add_remote_candidate(JINGLE_RAWUDP(transport), rawudp_candidate);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
321 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
322
26157
5cb0c7e003c0 Silence warning.
Michael Ruprecht <maiku@pidgin.im>
parents: 26154
diff changeset
323 if (rawudp_candidate != NULL &&
5cb0c7e003c0 Silence warning.
Michael Ruprecht <maiku@pidgin.im>
parents: 26154
diff changeset
324 g_list_length(priv->remote_candidates) == 1) {
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
325 /* manufacture rtcp candidate */
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
326 rawudp_candidate = g_boxed_copy(JINGLE_TYPE_RAWUDP_CANDIDATE, rawudp_candidate);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
327 rawudp_candidate->component = 2;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
328 rawudp_candidate->port = rawudp_candidate->port + 1;
26415
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
329 rawudp_candidate->rem_known = TRUE;
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
330 jingle_rawudp_add_remote_candidate(JINGLE_RAWUDP(transport), rawudp_candidate);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
331 }
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
332
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
333 return transport;
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
334 }
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
335
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
336 static PurpleXmlNode *
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
337 jingle_rawudp_to_xml_internal(JingleTransport *transport, PurpleXmlNode *content, JingleActionType action)
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
338 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
339 PurpleXmlNode *node = parent_class->to_xml(transport, content, action);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
340
26408
08a40e516004 Make Jingle Raw-Udp send candidates in session-accept packet.
Michael Ruprecht <maiku@pidgin.im>
parents: 26221
diff changeset
341 if (action == JINGLE_SESSION_INITIATE ||
08a40e516004 Make Jingle Raw-Udp send candidates in session-accept packet.
Michael Ruprecht <maiku@pidgin.im>
parents: 26221
diff changeset
342 action == JINGLE_TRANSPORT_INFO ||
08a40e516004 Make Jingle Raw-Udp send candidates in session-accept packet.
Michael Ruprecht <maiku@pidgin.im>
parents: 26221
diff changeset
343 action == JINGLE_SESSION_ACCEPT) {
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
344 JingleRawUdpPrivate *priv = JINGLE_RAWUDP_GET_PRIVATE(transport);
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
345 GList *iter = priv->local_candidates;
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
346
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
347 for (; iter; iter = g_list_next(iter)) {
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
348 JingleRawUdpCandidate *candidate = iter->data;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
349 PurpleXmlNode *xmltransport;
26415
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
350 gchar *generation, *component, *port;
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
351
26415
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
352 if (candidate->rem_known == TRUE)
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
353 continue;
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
354 candidate->rem_known = TRUE;
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
355
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
356 xmltransport = purple_xmlnode_new_child(node, "candidate");
26415
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
357 generation = g_strdup_printf("%d", candidate->generation);
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
358 component = g_strdup_printf("%d", candidate->component);
8191f6b7e5e0 Make RawUdp candidates know if they have been sent to the remote client.
Michael Ruprecht <maiku@pidgin.im>
parents: 26411
diff changeset
359 port = g_strdup_printf("%d", candidate->port);
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
360
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
361 purple_xmlnode_set_attrib(xmltransport, "generation", generation);
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
362 purple_xmlnode_set_attrib(xmltransport, "component", component);
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
363 purple_xmlnode_set_attrib(xmltransport, "id", candidate->id);
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
364 purple_xmlnode_set_attrib(xmltransport, "ip", candidate->ip);
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33631
diff changeset
365 purple_xmlnode_set_attrib(xmltransport, "port", port);
26154
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
366
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
367 g_free(port);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
368 g_free(generation);
78fa18d44718 Update Jingle raw-udp to latest spec version.
Michael Ruprecht <maiku@pidgin.im>
parents: 26147
diff changeset
369 }
26147
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
370 }
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
371
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
372 return node;
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
373 }
791ee9c9a75e Add files I missed committing before and remove a few unnecessary functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
374

mercurial