diff options
Diffstat (limited to 'src/transport/plugin_transport_udp_broadcasting.c')
-rw-r--r-- | src/transport/plugin_transport_udp_broadcasting.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/transport/plugin_transport_udp_broadcasting.c b/src/transport/plugin_transport_udp_broadcasting.c index 669ebdb01..7dfe86944 100644 --- a/src/transport/plugin_transport_udp_broadcasting.c +++ b/src/transport/plugin_transport_udp_broadcasting.c | |||
@@ -473,6 +473,7 @@ iface_proc (void *cls, | |||
473 | { | 473 | { |
474 | struct Plugin *plugin = cls; | 474 | struct Plugin *plugin = cls; |
475 | struct BroadcastAddress *ba; | 475 | struct BroadcastAddress *ba; |
476 | struct GNUNET_ATS_Information network; | ||
476 | 477 | ||
477 | if (NULL == addr) | 478 | if (NULL == addr) |
478 | return GNUNET_OK; | 479 | return GNUNET_OK; |
@@ -487,11 +488,19 @@ iface_proc (void *cls, | |||
487 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "netmask %s for interface %s %p\n ", | 488 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "netmask %s for interface %s %p\n ", |
488 | GNUNET_a2s (netmask, addrlen), name, netmask); | 489 | GNUNET_a2s (netmask, addrlen), name, netmask); |
489 | 490 | ||
491 | network = plugin->env->get_address_type (plugin->env->cls, broadcast_addr, addrlen); | ||
492 | if (GNUNET_ATS_NET_LOOPBACK == ntohl(network.value)) | ||
493 | { | ||
494 | /* Broadcasting on loopback does not make sense */ | ||
495 | return GNUNET_YES; | ||
496 | } | ||
497 | |||
490 | ba = GNUNET_new (struct BroadcastAddress); | 498 | ba = GNUNET_new (struct BroadcastAddress); |
491 | ba->plugin = plugin; | 499 | ba->plugin = plugin; |
492 | ba->addr = GNUNET_malloc (addrlen); | 500 | ba->addr = GNUNET_malloc (addrlen); |
493 | memcpy (ba->addr, broadcast_addr, addrlen); | 501 | memcpy (ba->addr, broadcast_addr, addrlen); |
494 | ba->addrlen = addrlen; | 502 | ba->addrlen = addrlen; |
503 | |||
495 | if ( (GNUNET_YES == plugin->enable_ipv4) && | 504 | if ( (GNUNET_YES == plugin->enable_ipv4) && |
496 | (NULL != plugin->sockv4) && | 505 | (NULL != plugin->sockv4) && |
497 | (addrlen == sizeof (struct sockaddr_in)) ) | 506 | (addrlen == sizeof (struct sockaddr_in)) ) |