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.c9
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)) )