aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-communicator-udp.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-12-20 12:06:20 +0100
committerChristian Grothoff <christian@grothoff.org>2020-12-20 12:06:20 +0100
commit096728973eb9d140606b392d5009d5ffc3206272 (patch)
treea105943a88eb5f159734e8537b1766e18e534808 /src/transport/gnunet-communicator-udp.c
parentb5e9bdbdde10102023074d57086975b354019a22 (diff)
downloadgnunet-096728973eb9d140606b392d5009d5ffc3206272.tar.gz
gnunet-096728973eb9d140606b392d5009d5ffc3206272.zip
fix broadcast logic: needed port number
Diffstat (limited to 'src/transport/gnunet-communicator-udp.c')
-rw-r--r--src/transport/gnunet-communicator-udp.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/transport/gnunet-communicator-udp.c b/src/transport/gnunet-communicator-udp.c
index 7e353e4b1..018da8f0e 100644
--- a/src/transport/gnunet-communicator-udp.c
+++ b/src/transport/gnunet-communicator-udp.c
@@ -3461,10 +3461,6 @@ ifc_broadcast (void *cls)
3461 sizeof(int))) 3461 sizeof(int)))
3462 GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, 3462 GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING,
3463 "setsockopt"); 3463 "setsockopt");
3464 fprintf (stderr,
3465 "BC to %s\n",
3466 GNUNET_a2s (bi->ba,
3467 bi->salen));
3468 sent = GNUNET_NETWORK_socket_sendto (udp_sock, 3464 sent = GNUNET_NETWORK_socket_sendto (udp_sock,
3469 &bi->bcm, 3465 &bi->bcm,
3470 sizeof(bi->bcm), 3466 sizeof(bi->bcm),
@@ -3561,10 +3557,18 @@ iface_proc (void *cls,
3561 return GNUNET_OK; /* not using IPv6 */ 3557 return GNUNET_OK; /* not using IPv6 */
3562 3558
3563 bi = GNUNET_new (struct BroadcastInterface); 3559 bi = GNUNET_new (struct BroadcastInterface);
3564 bi->sa = GNUNET_memdup (addr, addrlen); 3560 bi->sa = GNUNET_memdup (addr,
3565 if (NULL != broadcast_addr) 3561 addrlen);
3566 bi->ba = GNUNET_memdup (broadcast_addr, 3562 if ( (NULL != broadcast_addr) &&
3567 addrlen); 3563 (addrlen == sizeof (struct sockaddr_in)) )
3564 {
3565 struct sockaddr_in *ba;
3566
3567 ba = GNUNET_memdup (broadcast_addr,
3568 addrlen);
3569 ba->sin_port = htons (2086); /* always GNUnet port, ignore configuration! */
3570 bi->ba = (struct sockaddr *) ba;
3571 }
3568 bi->salen = addrlen; 3572 bi->salen = addrlen;
3569 bi->found = GNUNET_YES; 3573 bi->found = GNUNET_YES;
3570 bi->bcm.sender = my_identity; 3574 bi->bcm.sender = my_identity;
@@ -3575,7 +3579,7 @@ iface_proc (void *cls,
3575 GNUNET_CRYPTO_eddsa_sign (my_private_key, 3579 GNUNET_CRYPTO_eddsa_sign (my_private_key,
3576 &ubs, 3580 &ubs,
3577 &bi->bcm.sender_sig); 3581 &bi->bcm.sender_sig);
3578 if (NULL != broadcast_addr) 3582 if (NULL != bi->ba)
3579 { 3583 {
3580 bi->broadcast_task = GNUNET_SCHEDULER_add_now (&ifc_broadcast, bi); 3584 bi->broadcast_task = GNUNET_SCHEDULER_add_now (&ifc_broadcast, bi);
3581 GNUNET_CONTAINER_DLL_insert (bi_head, bi_tail, bi); 3585 GNUNET_CONTAINER_DLL_insert (bi_head, bi_tail, bi);