diff options
author | Christian Grothoff <christian@grothoff.org> | 2020-09-24 10:43:13 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2020-09-24 10:43:13 +0200 |
commit | 8fd7531e5841c9d9f80f821a3490a05934fee933 (patch) | |
tree | c36fcef38f75a7dcaf6db2b85d65c508f22c313b /src | |
parent | 1725714fabf838e699147b8f77ad6f808f7112b4 (diff) | |
parent | 87467c4aa2cfb5385d09caa021e701a419b9a9fe (diff) | |
download | gnunet-8fd7531e5841c9d9f80f821a3490a05934fee933.tar.gz gnunet-8fd7531e5841c9d9f80f821a3490a05934fee933.zip |
Merge branch 'master' of git+ssh://gnunet.org/gnunet
Diffstat (limited to 'src')
-rw-r--r-- | src/transport/gnunet-communicator-udp.c | 272 |
1 files changed, 148 insertions, 124 deletions
diff --git a/src/transport/gnunet-communicator-udp.c b/src/transport/gnunet-communicator-udp.c index 03c120cc9..5ca5a4e86 100644 --- a/src/transport/gnunet-communicator-udp.c +++ b/src/transport/gnunet-communicator-udp.c | |||
@@ -1383,6 +1383,10 @@ static void | |||
1383 | consider_ss_ack (struct SharedSecret *ss) | 1383 | consider_ss_ack (struct SharedSecret *ss) |
1384 | { | 1384 | { |
1385 | GNUNET_assert (NULL != ss->sender); | 1385 | GNUNET_assert (NULL != ss->sender); |
1386 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1387 | "Considering SS UDPAck %s\n", | ||
1388 | GNUNET_i2s_full (&ss->sender->target)); | ||
1389 | |||
1386 | /* drop ancient KeyCacheEntries */ | 1390 | /* drop ancient KeyCacheEntries */ |
1387 | while ((NULL != ss->kce_head) && | 1391 | while ((NULL != ss->kce_head) && |
1388 | (MAX_SQN_DELTA < | 1392 | (MAX_SQN_DELTA < |
@@ -1392,8 +1396,19 @@ consider_ss_ack (struct SharedSecret *ss) | |||
1392 | { | 1396 | { |
1393 | struct UDPAck ack; | 1397 | struct UDPAck ack; |
1394 | 1398 | ||
1395 | while (ss->active_kce_count < KCN_TARGET) | 1399 | /** |
1400 | * If we previously have seen this ss | ||
1401 | * we now generate KCN_TARGET KCEs. | ||
1402 | * For the initial KX (active_kce_count==0), | ||
1403 | * we only generate a single KCE to prevent | ||
1404 | * unnecessary overhead. | ||
1405 | */ | ||
1406 | if (0 < ss->active_kce_count) { | ||
1407 | while (ss->active_kce_count < KCN_TARGET) | ||
1408 | kce_generate (ss, ++ss->sequence_allowed); | ||
1409 | } else { | ||
1396 | kce_generate (ss, ++ss->sequence_allowed); | 1410 | kce_generate (ss, ++ss->sequence_allowed); |
1411 | } | ||
1397 | ack.header.type = htons (GNUNET_MESSAGE_TYPE_COMMUNICATOR_UDP_ACK); | 1412 | ack.header.type = htons (GNUNET_MESSAGE_TYPE_COMMUNICATOR_UDP_ACK); |
1398 | ack.header.size = htons (sizeof(ack)); | 1413 | ack.header.size = htons (sizeof(ack)); |
1399 | ack.sequence_max = htonl (ss->sequence_allowed); | 1414 | ack.sequence_max = htonl (ss->sequence_allowed); |
@@ -1515,8 +1530,8 @@ setup_sender (const struct GNUNET_PeerIdentity *target, | |||
1515 | { | 1530 | { |
1516 | struct SenderAddress *sender; | 1531 | struct SenderAddress *sender; |
1517 | struct SearchContext sc = { .address = address, | 1532 | struct SearchContext sc = { .address = address, |
1518 | .address_len = address_len, | 1533 | .address_len = address_len, |
1519 | .sender = NULL }; | 1534 | .sender = NULL }; |
1520 | 1535 | ||
1521 | GNUNET_CONTAINER_multipeermap_get_multiple (senders, | 1536 | GNUNET_CONTAINER_multipeermap_get_multiple (senders, |
1522 | target, | 1537 | target, |
@@ -1532,10 +1547,10 @@ setup_sender (const struct GNUNET_PeerIdentity *target, | |||
1532 | sender->address = GNUNET_memdup (address, address_len); | 1547 | sender->address = GNUNET_memdup (address, address_len); |
1533 | sender->address_len = address_len; | 1548 | sender->address_len = address_len; |
1534 | (void) GNUNET_CONTAINER_multipeermap_put ( | 1549 | (void) GNUNET_CONTAINER_multipeermap_put ( |
1535 | senders, | 1550 | senders, |
1536 | &sender->target, | 1551 | &sender->target, |
1537 | sender, | 1552 | sender, |
1538 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); | 1553 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); |
1539 | GNUNET_STATISTICS_set (stats, | 1554 | GNUNET_STATISTICS_set (stats, |
1540 | "# senders active", | 1555 | "# senders active", |
1541 | GNUNET_CONTAINER_multipeermap_size (receivers), | 1556 | GNUNET_CONTAINER_multipeermap_size (receivers), |
@@ -1572,10 +1587,10 @@ verify_confirmation (const struct GNUNET_CRYPTO_EcdhePublicKey *ephemeral, | |||
1572 | uhs.ephemeral = *ephemeral; | 1587 | uhs.ephemeral = *ephemeral; |
1573 | uhs.monotonic_time = uc->monotonic_time; | 1588 | uhs.monotonic_time = uc->monotonic_time; |
1574 | return GNUNET_CRYPTO_eddsa_verify ( | 1589 | return GNUNET_CRYPTO_eddsa_verify ( |
1575 | GNUNET_SIGNATURE_COMMUNICATOR_UDP_HANDSHAKE, | 1590 | GNUNET_SIGNATURE_COMMUNICATOR_UDP_HANDSHAKE, |
1576 | &uhs, | 1591 | &uhs, |
1577 | &uc->sender_sig, | 1592 | &uc->sender_sig, |
1578 | &uc->sender.public_key); | 1593 | &uc->sender.public_key); |
1579 | } | 1594 | } |
1580 | 1595 | ||
1581 | 1596 | ||
@@ -1595,22 +1610,22 @@ sockaddr_to_udpaddr_string (const struct sockaddr *address, | |||
1595 | 1610 | ||
1596 | switch (address->sa_family) | 1611 | switch (address->sa_family) |
1597 | { | 1612 | { |
1598 | case AF_INET: | 1613 | case AF_INET: |
1599 | GNUNET_asprintf (&ret, | 1614 | GNUNET_asprintf (&ret, |
1600 | "%s-%s", | 1615 | "%s-%s", |
1601 | COMMUNICATOR_ADDRESS_PREFIX, | 1616 | COMMUNICATOR_ADDRESS_PREFIX, |
1602 | GNUNET_a2s (address, address_len)); | 1617 | GNUNET_a2s (address, address_len)); |
1603 | break; | 1618 | break; |
1604 | 1619 | ||
1605 | case AF_INET6: | 1620 | case AF_INET6: |
1606 | GNUNET_asprintf (&ret, | 1621 | GNUNET_asprintf (&ret, |
1607 | "%s-%s", | 1622 | "%s-%s", |
1608 | COMMUNICATOR_ADDRESS_PREFIX, | 1623 | COMMUNICATOR_ADDRESS_PREFIX, |
1609 | GNUNET_a2s (address, address_len)); | 1624 | GNUNET_a2s (address, address_len)); |
1610 | break; | 1625 | break; |
1611 | 1626 | ||
1612 | default: | 1627 | default: |
1613 | GNUNET_assert (0); | 1628 | GNUNET_assert (0); |
1614 | } | 1629 | } |
1615 | return ret; | 1630 | return ret; |
1616 | } | 1631 | } |
@@ -1715,6 +1730,9 @@ sock_read (void *cls) | |||
1715 | 1730 | ||
1716 | kx = (const struct InitialKX *) buf; | 1731 | kx = (const struct InitialKX *) buf; |
1717 | ss = setup_shared_secret_dec (&kx->ephemeral); | 1732 | ss = setup_shared_secret_dec (&kx->ephemeral); |
1733 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1734 | "Before DEC\n"); | ||
1735 | |||
1718 | if (GNUNET_OK != try_decrypt (ss, | 1736 | if (GNUNET_OK != try_decrypt (ss, |
1719 | kx->gcm_tag, | 1737 | kx->gcm_tag, |
1720 | 0, | 1738 | 0, |
@@ -1726,12 +1744,15 @@ sock_read (void *cls) | |||
1726 | "Unable to decrypt tag, dropping...\n"); | 1744 | "Unable to decrypt tag, dropping...\n"); |
1727 | GNUNET_free (ss); | 1745 | GNUNET_free (ss); |
1728 | GNUNET_STATISTICS_update ( | 1746 | GNUNET_STATISTICS_update ( |
1729 | stats, | 1747 | stats, |
1730 | "# messages dropped (no kid, AEAD decryption failed)", | 1748 | "# messages dropped (no kid, AEAD decryption failed)", |
1731 | 1, | 1749 | 1, |
1732 | GNUNET_NO); | 1750 | GNUNET_NO); |
1733 | return; | 1751 | return; |
1734 | } | 1752 | } |
1753 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1754 | "Before VERIFY\n"); | ||
1755 | |||
1735 | uc = (const struct UDPConfirmation *) pbuf; | 1756 | uc = (const struct UDPConfirmation *) pbuf; |
1736 | if (GNUNET_OK != verify_confirmation (&kx->ephemeral, uc)) | 1757 | if (GNUNET_OK != verify_confirmation (&kx->ephemeral, uc)) |
1737 | { | 1758 | { |
@@ -1743,6 +1764,9 @@ sock_read (void *cls) | |||
1743 | GNUNET_NO); | 1764 | GNUNET_NO); |
1744 | return; | 1765 | return; |
1745 | } | 1766 | } |
1767 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1768 | "Before SETUP_SENDER\n"); | ||
1769 | |||
1746 | calculate_cmac (ss); | 1770 | calculate_cmac (ss); |
1747 | sender = setup_sender (&uc->sender, (const struct sockaddr *) &sa, salen); | 1771 | sender = setup_sender (&uc->sender, (const struct sockaddr *) &sa, salen); |
1748 | ss->sender = sender; | 1772 | ss->sender = sender; |
@@ -1835,9 +1859,9 @@ udp_address_to_sockaddr (const char *bindto, socklen_t *sock_len) | |||
1835 | else | 1859 | else |
1836 | { | 1860 | { |
1837 | GNUNET_log ( | 1861 | GNUNET_log ( |
1838 | GNUNET_ERROR_TYPE_ERROR, | 1862 | GNUNET_ERROR_TYPE_ERROR, |
1839 | "BINDTO specification `%s' invalid: last ':' not followed by number\n", | 1863 | "BINDTO specification `%s' invalid: last ':' not followed by number\n", |
1840 | bindto); | 1864 | bindto); |
1841 | GNUNET_free (cp); | 1865 | GNUNET_free (cp); |
1842 | return NULL; | 1866 | return NULL; |
1843 | } | 1867 | } |
@@ -1915,8 +1939,8 @@ do_pad (gcry_cipher_hd_t out_cipher, char *dgram, size_t pad_size) | |||
1915 | memcpy (pad, &hdr, sizeof(hdr)); | 1939 | memcpy (pad, &hdr, sizeof(hdr)); |
1916 | } | 1940 | } |
1917 | GNUNET_assert ( | 1941 | GNUNET_assert ( |
1918 | 0 == | 1942 | 0 == |
1919 | gcry_cipher_encrypt (out_cipher, dgram, sizeof(pad), pad, sizeof(pad))); | 1943 | gcry_cipher_encrypt (out_cipher, dgram, sizeof(pad), pad, sizeof(pad))); |
1920 | } | 1944 | } |
1921 | 1945 | ||
1922 | 1946 | ||
@@ -1983,13 +2007,13 @@ mq_send_kx (struct GNUNET_MQ_Handle *mq, | |||
1983 | dpos += sizeof(uc); | 2007 | dpos += sizeof(uc); |
1984 | /* Append encrypted payload to dgram */ | 2008 | /* Append encrypted payload to dgram */ |
1985 | GNUNET_assert ( | 2009 | GNUNET_assert ( |
1986 | 0 == gcry_cipher_encrypt (out_cipher, &dgram[dpos], msize, msg, msize)); | 2010 | 0 == gcry_cipher_encrypt (out_cipher, &dgram[dpos], msize, msg, msize)); |
1987 | dpos += msize; | 2011 | dpos += msize; |
1988 | do_pad (out_cipher, &dgram[dpos], sizeof(dgram) - dpos); | 2012 | do_pad (out_cipher, &dgram[dpos], sizeof(dgram) - dpos); |
1989 | /* Datagram starts with kx */ | 2013 | /* Datagram starts with kx */ |
1990 | kx.ephemeral = uhs.ephemeral; | 2014 | kx.ephemeral = uhs.ephemeral; |
1991 | GNUNET_assert ( | 2015 | GNUNET_assert ( |
1992 | 0 == gcry_cipher_gettag (out_cipher, kx.gcm_tag, sizeof(kx.gcm_tag))); | 2016 | 0 == gcry_cipher_gettag (out_cipher, kx.gcm_tag, sizeof(kx.gcm_tag))); |
1993 | gcry_cipher_close (out_cipher); | 2017 | gcry_cipher_close (out_cipher); |
1994 | memcpy (dgram, &kx, sizeof(kx)); | 2018 | memcpy (dgram, &kx, sizeof(kx)); |
1995 | if (-1 == GNUNET_NETWORK_socket_sendto (udp_sock, | 2019 | if (-1 == GNUNET_NETWORK_socket_sendto (udp_sock, |
@@ -2050,7 +2074,7 @@ mq_send_d (struct GNUNET_MQ_Handle *mq, | |||
2050 | /* Append encrypted payload to dgram */ | 2074 | /* Append encrypted payload to dgram */ |
2051 | dpos = sizeof(struct UDPBox); | 2075 | dpos = sizeof(struct UDPBox); |
2052 | GNUNET_assert ( | 2076 | GNUNET_assert ( |
2053 | 0 == gcry_cipher_encrypt (out_cipher, &dgram[dpos], msize, msg, msize)); | 2077 | 0 == gcry_cipher_encrypt (out_cipher, &dgram[dpos], msize, msg, msize)); |
2054 | dpos += msize; | 2078 | dpos += msize; |
2055 | do_pad (out_cipher, &dgram[dpos], sizeof(dgram) - dpos); | 2079 | do_pad (out_cipher, &dgram[dpos], sizeof(dgram) - dpos); |
2056 | GNUNET_assert (0 == gcry_cipher_gettag (out_cipher, | 2080 | GNUNET_assert (0 == gcry_cipher_gettag (out_cipher, |
@@ -2169,37 +2193,37 @@ setup_receiver_mq (struct ReceiverAddress *receiver) | |||
2169 | size_t base_mtu; | 2193 | size_t base_mtu; |
2170 | 2194 | ||
2171 | /*if (NULL != receiver->kx_qh) | 2195 | /*if (NULL != receiver->kx_qh) |
2172 | { | 2196 | { |
2173 | GNUNET_TRANSPORT_communicator_mq_del (receiver->kx_qh); | 2197 | GNUNET_TRANSPORT_communicator_mq_del (receiver->kx_qh); |
2174 | receiver->kx_qh = NULL; | 2198 | receiver->kx_qh = NULL; |
2175 | } | 2199 | } |
2176 | if (NULL != receiver->d_qh) | 2200 | if (NULL != receiver->d_qh) |
2177 | { | 2201 | { |
2178 | GNUNET_TRANSPORT_communicator_mq_del (receiver->d_qh); | 2202 | GNUNET_TRANSPORT_communicator_mq_del (receiver->d_qh); |
2179 | receiver->d_qh = NULL; | 2203 | receiver->d_qh = NULL; |
2180 | }*/ | 2204 | }*/ |
2181 | // GNUNET_assert (NULL == receiver->mq); | 2205 | // GNUNET_assert (NULL == receiver->mq); |
2182 | switch (receiver->address->sa_family) | 2206 | switch (receiver->address->sa_family) |
2183 | { | 2207 | { |
2184 | case AF_INET: | 2208 | case AF_INET: |
2185 | base_mtu = 1480 /* Ethernet MTU, 1500 - Ethernet header - VLAN tag */ | 2209 | base_mtu = 1480 /* Ethernet MTU, 1500 - Ethernet header - VLAN tag */ |
2186 | - sizeof(struct GNUNET_TUN_IPv4Header) /* 20 */ | 2210 | - sizeof(struct GNUNET_TUN_IPv4Header) /* 20 */ |
2187 | - sizeof(struct GNUNET_TUN_UdpHeader) /* 8 */; | 2211 | - sizeof(struct GNUNET_TUN_UdpHeader) /* 8 */; |
2188 | break; | 2212 | break; |
2189 | 2213 | ||
2190 | case AF_INET6: | 2214 | case AF_INET6: |
2191 | base_mtu = 1280 /* Minimum MTU required by IPv6 */ | 2215 | base_mtu = 1280 /* Minimum MTU required by IPv6 */ |
2192 | - sizeof(struct GNUNET_TUN_IPv6Header) /* 40 */ | 2216 | - sizeof(struct GNUNET_TUN_IPv6Header) /* 40 */ |
2193 | - sizeof(struct GNUNET_TUN_UdpHeader) /* 8 */; | 2217 | - sizeof(struct GNUNET_TUN_UdpHeader) /* 8 */; |
2194 | break; | 2218 | break; |
2195 | 2219 | ||
2196 | default: | 2220 | default: |
2197 | GNUNET_assert (0); | 2221 | GNUNET_assert (0); |
2198 | break; | 2222 | break; |
2199 | } | 2223 | } |
2200 | /* MTU based on full KX messages */ | 2224 | /* MTU based on full KX messages */ |
2201 | receiver->kx_mtu = base_mtu - sizeof(struct InitialKX) /* 48 */ | 2225 | receiver->kx_mtu = base_mtu - sizeof(struct InitialKX) /* 48 */ |
2202 | - sizeof(struct UDPConfirmation); /* 104 */ | 2226 | - sizeof(struct UDPConfirmation); /* 104 */ |
2203 | /* MTU based on BOXed messages */ | 2227 | /* MTU based on BOXed messages */ |
2204 | receiver->d_mtu = base_mtu - sizeof(struct UDPBox); | 2228 | receiver->d_mtu = base_mtu - sizeof(struct UDPBox); |
2205 | 2229 | ||
@@ -2290,10 +2314,10 @@ mq_init (void *cls, const struct GNUNET_PeerIdentity *peer, const char *address) | |||
2290 | receiver->target = *peer; | 2314 | receiver->target = *peer; |
2291 | receiver->nt = GNUNET_NT_scanner_get_type (is, in, in_len); | 2315 | receiver->nt = GNUNET_NT_scanner_get_type (is, in, in_len); |
2292 | (void) GNUNET_CONTAINER_multipeermap_put ( | 2316 | (void) GNUNET_CONTAINER_multipeermap_put ( |
2293 | receivers, | 2317 | receivers, |
2294 | &receiver->target, | 2318 | &receiver->target, |
2295 | receiver, | 2319 | receiver, |
2296 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); | 2320 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); |
2297 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 2321 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
2298 | "Added %s to receivers\n", | 2322 | "Added %s to receivers\n", |
2299 | GNUNET_i2s_full (&receiver->target)); | 2323 | GNUNET_i2s_full (&receiver->target)); |
@@ -2529,55 +2553,55 @@ ifc_broadcast (void *cls) | |||
2529 | 2553 | ||
2530 | switch (bi->sa->sa_family) | 2554 | switch (bi->sa->sa_family) |
2531 | { | 2555 | { |
2532 | case AF_INET: { | 2556 | case AF_INET: { |
2533 | static int yes = 1; | 2557 | static int yes = 1; |
2534 | static int no = 0; | 2558 | static int no = 0; |
2535 | ssize_t sent; | 2559 | ssize_t sent; |
2536 | 2560 | ||
2537 | if (GNUNET_OK != GNUNET_NETWORK_socket_setsockopt (udp_sock, | 2561 | if (GNUNET_OK != GNUNET_NETWORK_socket_setsockopt (udp_sock, |
2538 | SOL_SOCKET, | 2562 | SOL_SOCKET, |
2539 | SO_BROADCAST, | 2563 | SO_BROADCAST, |
2540 | &yes, | 2564 | &yes, |
2541 | sizeof(int))) | 2565 | sizeof(int))) |
2542 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "setsockopt"); | 2566 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "setsockopt"); |
2543 | sent = GNUNET_NETWORK_socket_sendto (udp_sock, | 2567 | sent = GNUNET_NETWORK_socket_sendto (udp_sock, |
2544 | &bi->bcm, | 2568 | &bi->bcm, |
2545 | sizeof(bi->bcm), | 2569 | sizeof(bi->bcm), |
2546 | bi->ba, | 2570 | bi->ba, |
2547 | bi->salen); | 2571 | bi->salen); |
2548 | if (-1 == sent) | 2572 | if (-1 == sent) |
2549 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "sendto"); | 2573 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "sendto"); |
2550 | if (GNUNET_OK != GNUNET_NETWORK_socket_setsockopt (udp_sock, | 2574 | if (GNUNET_OK != GNUNET_NETWORK_socket_setsockopt (udp_sock, |
2551 | SOL_SOCKET, | 2575 | SOL_SOCKET, |
2552 | SO_BROADCAST, | 2576 | SO_BROADCAST, |
2553 | &no, | 2577 | &no, |
2554 | sizeof(int))) | 2578 | sizeof(int))) |
2555 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "setsockopt"); | 2579 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "setsockopt"); |
2556 | break; | 2580 | break; |
2557 | } | 2581 | } |
2558 | 2582 | ||
2559 | case AF_INET6: { | 2583 | case AF_INET6: { |
2560 | ssize_t sent; | 2584 | ssize_t sent; |
2561 | struct sockaddr_in6 dst; | 2585 | struct sockaddr_in6 dst; |
2562 | 2586 | ||
2563 | dst.sin6_family = AF_INET6; | 2587 | dst.sin6_family = AF_INET6; |
2564 | dst.sin6_port = htons (my_port); | 2588 | dst.sin6_port = htons (my_port); |
2565 | dst.sin6_addr = bi->mcreq.ipv6mr_multiaddr; | 2589 | dst.sin6_addr = bi->mcreq.ipv6mr_multiaddr; |
2566 | dst.sin6_scope_id = ((struct sockaddr_in6 *) bi->ba)->sin6_scope_id; | 2590 | dst.sin6_scope_id = ((struct sockaddr_in6 *) bi->ba)->sin6_scope_id; |
2567 | 2591 | ||
2568 | sent = GNUNET_NETWORK_socket_sendto (udp_sock, | 2592 | sent = GNUNET_NETWORK_socket_sendto (udp_sock, |
2569 | &bi->bcm, | 2593 | &bi->bcm, |
2570 | sizeof(bi->bcm), | 2594 | sizeof(bi->bcm), |
2571 | (const struct sockaddr *) &dst, | 2595 | (const struct sockaddr *) &dst, |
2572 | sizeof(dst)); | 2596 | sizeof(dst)); |
2573 | if (-1 == sent) | 2597 | if (-1 == sent) |
2574 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "sendto"); | 2598 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "sendto"); |
2575 | break; | 2599 | break; |
2576 | } | 2600 | } |
2577 | 2601 | ||
2578 | default: | 2602 | default: |
2579 | GNUNET_break (0); | 2603 | GNUNET_break (0); |
2580 | break; | 2604 | break; |
2581 | } | 2605 | } |
2582 | } | 2606 | } |
2583 | 2607 | ||
@@ -2659,7 +2683,7 @@ iface_proc (void *cls, | |||
2659 | (const struct sockaddr_in6 *) broadcast_addr; | 2683 | (const struct sockaddr_in6 *) broadcast_addr; |
2660 | 2684 | ||
2661 | GNUNET_assert ( | 2685 | GNUNET_assert ( |
2662 | 1 == inet_pton (AF_INET6, "FF05::13B", &bi->mcreq.ipv6mr_multiaddr)); | 2686 | 1 == inet_pton (AF_INET6, "FF05::13B", &bi->mcreq.ipv6mr_multiaddr)); |
2663 | 2687 | ||
2664 | /* http://tools.ietf.org/html/rfc2553#section-5.2: | 2688 | /* http://tools.ietf.org/html/rfc2553#section-5.2: |
2665 | * | 2689 | * |
@@ -2796,17 +2820,17 @@ run (void *cls, | |||
2796 | GNUNET_a2s ((const struct sockaddr *) &in_sto, sto_len)); | 2820 | GNUNET_a2s ((const struct sockaddr *) &in_sto, sto_len)); |
2797 | switch (in->sa_family) | 2821 | switch (in->sa_family) |
2798 | { | 2822 | { |
2799 | case AF_INET: | 2823 | case AF_INET: |
2800 | my_port = ntohs (((struct sockaddr_in *) in)->sin_port); | 2824 | my_port = ntohs (((struct sockaddr_in *) in)->sin_port); |
2801 | break; | 2825 | break; |
2802 | 2826 | ||
2803 | case AF_INET6: | 2827 | case AF_INET6: |
2804 | my_port = ntohs (((struct sockaddr_in6 *) in)->sin6_port); | 2828 | my_port = ntohs (((struct sockaddr_in6 *) in)->sin6_port); |
2805 | break; | 2829 | break; |
2806 | 2830 | ||
2807 | default: | 2831 | default: |
2808 | GNUNET_break (0); | 2832 | GNUNET_break (0); |
2809 | my_port = 0; | 2833 | my_port = 0; |
2810 | } | 2834 | } |
2811 | stats = GNUNET_STATISTICS_create ("C-UDP", cfg); | 2835 | stats = GNUNET_STATISTICS_create ("C-UDP", cfg); |
2812 | senders = GNUNET_CONTAINER_multipeermap_create (32, GNUNET_YES); | 2836 | senders = GNUNET_CONTAINER_multipeermap_create (32, GNUNET_YES); |
@@ -2821,9 +2845,9 @@ run (void *cls, | |||
2821 | if (NULL == my_private_key) | 2845 | if (NULL == my_private_key) |
2822 | { | 2846 | { |
2823 | GNUNET_log ( | 2847 | GNUNET_log ( |
2824 | GNUNET_ERROR_TYPE_ERROR, | 2848 | GNUNET_ERROR_TYPE_ERROR, |
2825 | _ ( | 2849 | _ ( |
2826 | "Transport service is lacking key configuration settings. Exiting.\n")); | 2850 | "Transport service is lacking key configuration settings. Exiting.\n")); |
2827 | GNUNET_SCHEDULER_shutdown (); | 2851 | GNUNET_SCHEDULER_shutdown (); |
2828 | return; | 2852 | return; |
2829 | } | 2853 | } |
@@ -2899,8 +2923,8 @@ main (int argc, char *const *argv) | |||
2899 | options, | 2923 | options, |
2900 | &run, | 2924 | &run, |
2901 | NULL)) | 2925 | NULL)) |
2902 | ? 0 | 2926 | ? 0 |
2903 | : 1; | 2927 | : 1; |
2904 | GNUNET_free_nz ((void *) argv); | 2928 | GNUNET_free_nz ((void *) argv); |
2905 | return ret; | 2929 | return ret; |
2906 | } | 2930 | } |