diff options
Diffstat (limited to 'src/transport/plugin_transport_udp_broadcasting.c')
-rw-r--r-- | src/transport/plugin_transport_udp_broadcasting.c | 29 |
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 | |||
120 | struct Mstv6Context | 122 | struct 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; |