aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_udp_broadcasting.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/plugin_transport_udp_broadcasting.c')
-rw-r--r--src/transport/plugin_transport_udp_broadcasting.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/transport/plugin_transport_udp_broadcasting.c b/src/transport/plugin_transport_udp_broadcasting.c
index 6566245cd..3ef9ecaaf 100644
--- a/src/transport/plugin_transport_udp_broadcasting.c
+++ b/src/transport/plugin_transport_udp_broadcasting.c
@@ -111,21 +111,24 @@ struct Mstv4Context
111 struct Plugin *plugin; 111 struct Plugin *plugin;
112 112
113 struct IPv4UdpAddress addr; 113 struct IPv4UdpAddress addr;
114
114 /** 115 /**
115 * ATS network type in NBO 116 * ATS network type.
116 */ 117 */
117 uint32_t ats_address_network_type; 118 enum GNUNET_ATS_Network_Type ats_address_network_type;
118}; 119};
119 120
121
120struct Mstv6Context 122struct Mstv6Context
121{ 123{
122 struct Plugin *plugin; 124 struct Plugin *plugin;
123 125
124 struct IPv6UdpAddress addr; 126 struct IPv6UdpAddress addr;
127
125 /** 128 /**
126 * ATS network type in NBO 129 * ATS network type.
127 */ 130 */
128 uint32_t ats_address_network_type; 131 enum GNUNET_ATS_Network_Type ats_address_network_type;
129}; 132};
130 133
131 134
@@ -152,7 +155,7 @@ broadcast_ipv6_mst_cb (void *cls, void *client,
152 155
153 /* setup ATS */ 156 /* setup ATS */
154 atsi.type = htonl (GNUNET_ATS_NETWORK_TYPE); 157 atsi.type = htonl (GNUNET_ATS_NETWORK_TYPE);
155 atsi.value = mc->ats_address_network_type; 158 atsi.value = htonl (mc->ats_address_network_type);
156 GNUNET_break (ntohl(mc->ats_address_network_type) != GNUNET_ATS_NET_UNSPECIFIED); 159 GNUNET_break (ntohl(mc->ats_address_network_type) != GNUNET_ATS_NET_UNSPECIFIED);
157 160
158 hello = (struct GNUNET_MessageHeader *) &msg[1]; 161 hello = (struct GNUNET_MessageHeader *) &msg[1];
@@ -195,7 +198,7 @@ broadcast_ipv4_mst_cb (void *cls, void *client,
195 198
196 /* setup ATS */ 199 /* setup ATS */
197 atsi.type = htonl (GNUNET_ATS_NETWORK_TYPE); 200 atsi.type = htonl (GNUNET_ATS_NETWORK_TYPE);
198 atsi.value = mc->ats_address_network_type; 201 atsi.value = htonl (mc->ats_address_network_type);
199 GNUNET_break (ntohl(mc->ats_address_network_type) != GNUNET_ATS_NET_UNSPECIFIED); 202 GNUNET_break (ntohl(mc->ats_address_network_type) != GNUNET_ATS_NET_UNSPECIFIED);
200 203
201 hello = (struct GNUNET_MessageHeader *) &msg[1]; 204 hello = (struct GNUNET_MessageHeader *) &msg[1];
@@ -221,8 +224,6 @@ udp_broadcast_receive (struct Plugin *plugin,
221 const struct sockaddr *addr, 224 const struct sockaddr *addr,
222 size_t addrlen) 225 size_t addrlen)
223{ 226{
224 struct GNUNET_ATS_Information ats;
225
226 if (addrlen == sizeof (struct sockaddr_in)) 227 if (addrlen == sizeof (struct sockaddr_in))
227 { 228 {
228 LOG (GNUNET_ERROR_TYPE_DEBUG, 229 LOG (GNUNET_ERROR_TYPE_DEBUG,
@@ -235,8 +236,9 @@ udp_broadcast_receive (struct Plugin *plugin,
235 236
236 mc->addr.ipv4_addr = av4->sin_addr.s_addr; 237 mc->addr.ipv4_addr = av4->sin_addr.s_addr;
237 mc->addr.u4_port = av4->sin_port; 238 mc->addr.u4_port = av4->sin_port;
238 ats = plugin->env->get_address_type (plugin->env->cls, (const struct sockaddr *) addr, addrlen); 239 mc->ats_address_network_type = plugin->env->get_address_type (plugin->env->cls,
239 mc->ats_address_network_type = ats.value; 240 (const struct sockaddr *) addr,
241 addrlen);
240 242
241 GNUNET_assert (NULL != plugin->broadcast_ipv4_mst); 243 GNUNET_assert (NULL != plugin->broadcast_ipv4_mst);
242 if (GNUNET_OK != 244 if (GNUNET_OK !=
@@ -256,8 +258,7 @@ udp_broadcast_receive (struct Plugin *plugin,
256 258
257 mc->addr.ipv6_addr = av6->sin6_addr; 259 mc->addr.ipv6_addr = av6->sin6_addr;
258 mc->addr.u6_port = av6->sin6_port; 260 mc->addr.u6_port = av6->sin6_port;
259 ats = plugin->env->get_address_type (plugin->env->cls, (const struct sockaddr *) addr, addrlen); 261 mc->ats_address_network_type = plugin->env->get_address_type (plugin->env->cls, (const struct sockaddr *) addr, addrlen);
260 mc->ats_address_network_type = ats.value;
261 GNUNET_assert (NULL != plugin->broadcast_ipv4_mst); 262 GNUNET_assert (NULL != plugin->broadcast_ipv4_mst);
262 if (GNUNET_OK != 263 if (GNUNET_OK !=
263 GNUNET_SERVER_mst_receive (plugin->broadcast_ipv6_mst, mc, buf, size, 264 GNUNET_SERVER_mst_receive (plugin->broadcast_ipv6_mst, mc, buf, size,
@@ -473,7 +474,7 @@ iface_proc (void *cls,
473{ 474{
474 struct Plugin *plugin = cls; 475 struct Plugin *plugin = cls;
475 struct BroadcastAddress *ba; 476 struct BroadcastAddress *ba;
476 struct GNUNET_ATS_Information network; 477 enum GNUNET_ATS_Network_Type network;
477 478
478 if (NULL == addr) 479 if (NULL == addr)
479 return GNUNET_OK; 480 return GNUNET_OK;
@@ -489,7 +490,7 @@ iface_proc (void *cls,
489 GNUNET_a2s (netmask, addrlen), name, netmask); 490 GNUNET_a2s (netmask, addrlen), name, netmask);
490 491
491 network = plugin->env->get_address_type (plugin->env->cls, broadcast_addr, addrlen); 492 network = plugin->env->get_address_type (plugin->env->cls, broadcast_addr, addrlen);
492 if (GNUNET_ATS_NET_LOOPBACK == ntohl(network.value)) 493 if (GNUNET_ATS_NET_LOOPBACK == network)
493 { 494 {
494 /* Broadcasting on loopback does not make sense */ 495 /* Broadcasting on loopback does not make sense */
495 return GNUNET_YES; 496 return GNUNET_YES;