port was missing, udp broadcast for ipv4 is now complete
authorMatthias Wachs <wachs@net.in.tum.de>
Fri, 18 Nov 2011 13:00:55 +0000 (13:00 +0000)
committerMatthias Wachs <wachs@net.in.tum.de>
Fri, 18 Nov 2011 13:00:55 +0000 (13:00 +0000)
src/transport/plugin_transport_udp.c

index 949023fd1e653da2e5a34a2a4dae72a1dc1b6014..4fbd3f0ac49d50370d2681fdc557d98858f82b21 100644 (file)
@@ -1539,15 +1539,19 @@ udp_broadcast_send (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   sent = 0;
 
   baddr = plugin->head;
-  while (baddr != NULL)
+  /* just IPv4 */
+  while ((baddr != NULL) && (baddr->addrlen == sizeof (struct sockaddr_in)))
   {
+    struct sockaddr_in * addr = (struct sockaddr_in * ) baddr->addr;
+    addr->sin_port = htons (plugin->broadcast_port);
+
     sent = GNUNET_NETWORK_socket_sendto (plugin->sockv4_broadcast, msg, msg_size,
-                                      baddr->addr,
-                                      baddr->addrlen);
+                                        (const struct sockaddr *) addr,
+                                        baddr->addrlen);
     if (sent == GNUNET_SYSERR)
       GNUNET_log_strerror(GNUNET_ERROR_TYPE_ERROR, "sendto");
     else
-      LOG (GNUNET_ERROR_TYPE_ERROR, "Sent HELLO beacon broadcast with  %i bytes to address %s\n",
+      LOG (GNUNET_ERROR_TYPE_DEBUG, "Sent HELLO beacon broadcast with  %i bytes to address %s\n",
            sent, GNUNET_a2s(baddr->addr, baddr->addrlen));
       baddr = baddr->next;
   }