aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_udp.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2011-11-23 15:10:10 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2011-11-23 15:10:10 +0000
commit68621a1c1481126790d308c97dda6981f17e8b9e (patch)
treedce8b9ae108420c6932af6d085ec15e1878ebc19 /src/transport/plugin_transport_udp.c
parent012a2fb048225012e3f07461ba4aa1238e78392f (diff)
downloadgnunet-68621a1c1481126790d308c97dda6981f17e8b9e.tar.gz
gnunet-68621a1c1481126790d308c97dda6981f17e8b9e.zip
fix shutdown order + disable broadcast in testcase
Diffstat (limited to 'src/transport/plugin_transport_udp.c')
-rw-r--r--src/transport/plugin_transport_udp.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/transport/plugin_transport_udp.c b/src/transport/plugin_transport_udp.c
index 9ad97449c..87ee25005 100644
--- a/src/transport/plugin_transport_udp.c
+++ b/src/transport/plugin_transport_udp.c
@@ -2335,16 +2335,6 @@ libgnunet_plugin_transport_udp_done (void *cls)
2335 GNUNET_SCHEDULER_cancel (plugin->select_task); 2335 GNUNET_SCHEDULER_cancel (plugin->select_task);
2336 plugin->select_task = GNUNET_SCHEDULER_NO_TASK; 2336 plugin->select_task = GNUNET_SCHEDULER_NO_TASK;
2337 } 2337 }
2338 if (plugin->sockv4 != NULL)
2339 {
2340 GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (plugin->sockv4));
2341 plugin->sockv4 = NULL;
2342 }
2343 if (plugin->sockv6 != NULL)
2344 {
2345 GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (plugin->sockv6));
2346 plugin->sockv6 = NULL;
2347 }
2348 2338
2349 if (plugin->broadcast_ipv4) 2339 if (plugin->broadcast_ipv4)
2350 { 2340 {
@@ -2377,10 +2367,6 @@ libgnunet_plugin_transport_udp_done (void *cls)
2377 if ( GNUNET_NETWORK_socket_setsockopt( plugin->sockv6, IPPROTO_IPV6, IPV6_LEAVE_GROUP, (char*) &multicastRequest, sizeof(multicastRequest)) == 0 ) 2367 if ( GNUNET_NETWORK_socket_setsockopt( plugin->sockv6, IPPROTO_IPV6, IPV6_LEAVE_GROUP, (char*) &multicastRequest, sizeof(multicastRequest)) == 0 )
2378 { 2368 {
2379 LOG (GNUNET_ERROR_TYPE_DEBUG, "IPv6 Broadcasting stopped\n"); 2369 LOG (GNUNET_ERROR_TYPE_DEBUG, "IPv6 Broadcasting stopped\n");
2380
2381 plugin->send_ipv6_broadcast_task =
2382 GNUNET_SCHEDULER_add_now (&udp_ipv6_broadcast_send, plugin);
2383 plugin->broadcast_ipv6 = GNUNET_YES;
2384 } 2370 }
2385 else 2371 else
2386 GNUNET_log_strerror(GNUNET_ERROR_TYPE_ERROR, setsockopt); 2372 GNUNET_log_strerror(GNUNET_ERROR_TYPE_ERROR, setsockopt);
@@ -2394,6 +2380,18 @@ libgnunet_plugin_transport_udp_done (void *cls)
2394 GNUNET_SERVER_mst_destroy (plugin->broadcast_ipv6_mst); 2380 GNUNET_SERVER_mst_destroy (plugin->broadcast_ipv6_mst);
2395 } 2381 }
2396 2382
2383
2384 if (plugin->sockv4 != NULL)
2385 {
2386 GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (plugin->sockv4));
2387 plugin->sockv4 = NULL;
2388 }
2389 if (plugin->sockv6 != NULL)
2390 {
2391 GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (plugin->sockv6));
2392 plugin->sockv6 = NULL;
2393 }
2394
2397 GNUNET_SERVER_mst_destroy (plugin->mst); 2395 GNUNET_SERVER_mst_destroy (plugin->mst);
2398 GNUNET_NETWORK_fdset_destroy (plugin->rs); 2396 GNUNET_NETWORK_fdset_destroy (plugin->rs);
2399 2397