diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-02-19 20:31:12 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-02-19 20:31:12 +0100 |
commit | 3902d240e408e85f08d9c444356eb18fc6ea44e7 (patch) | |
tree | a92c4b953d8a719ebb8a9f567d053352bff9933b /src/transport/plugin_transport_udp.c | |
parent | 8802f213c67692abebebdf9fe2d4a77afe2b1fcb (diff) | |
download | gnunet-3902d240e408e85f08d9c444356eb18fc6ea44e7.tar.gz gnunet-3902d240e408e85f08d9c444356eb18fc6ea44e7.zip |
mostly logging, avoid having more than one typemap in transmission queue, accept port=0 as not an error, tolerate link-local addrs
Diffstat (limited to 'src/transport/plugin_transport_udp.c')
-rw-r--r-- | src/transport/plugin_transport_udp.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/transport/plugin_transport_udp.c b/src/transport/plugin_transport_udp.c index fd8493e5f..76132523b 100644 --- a/src/transport/plugin_transport_udp.c +++ b/src/transport/plugin_transport_udp.c | |||
@@ -1271,10 +1271,7 @@ udp_plugin_check_address (void *cls, | |||
1271 | 1271 | ||
1272 | v6 = (const struct IPv6UdpAddress *) addr; | 1272 | v6 = (const struct IPv6UdpAddress *) addr; |
1273 | if (IN6_IS_ADDR_LINKLOCAL (&v6->ipv6_addr)) | 1273 | if (IN6_IS_ADDR_LINKLOCAL (&v6->ipv6_addr)) |
1274 | { | 1274 | return GNUNET_OK; /* plausible, if unlikely... */ |
1275 | GNUNET_break_op (0); | ||
1276 | return GNUNET_SYSERR; | ||
1277 | } | ||
1278 | memset (&s6, 0, sizeof (s6)); | 1275 | memset (&s6, 0, sizeof (s6)); |
1279 | s6.sin6_family = AF_INET6; | 1276 | s6.sin6_family = AF_INET6; |
1280 | #if HAVE_SOCKADDR_IN_SIN_LEN | 1277 | #if HAVE_SOCKADDR_IN_SIN_LEN |
@@ -1338,10 +1335,7 @@ udp_nat_port_map_callback (void *cls, | |||
1338 | GNUNET_assert (sizeof(struct sockaddr_in) == addrlen); | 1335 | GNUNET_assert (sizeof(struct sockaddr_in) == addrlen); |
1339 | i4 = (const struct sockaddr_in *) addr; | 1336 | i4 = (const struct sockaddr_in *) addr; |
1340 | if (0 == ntohs (i4->sin_port)) | 1337 | if (0 == ntohs (i4->sin_port)) |
1341 | { | 1338 | return; /* Port = 0 means unmapped, ignore these for UDP. */ |
1342 | GNUNET_break (0); | ||
1343 | return; | ||
1344 | } | ||
1345 | memset (&u4, | 1339 | memset (&u4, |
1346 | 0, | 1340 | 0, |
1347 | sizeof(u4)); | 1341 | sizeof(u4)); |
@@ -1359,10 +1353,7 @@ udp_nat_port_map_callback (void *cls, | |||
1359 | GNUNET_assert (sizeof(struct sockaddr_in6) == addrlen); | 1353 | GNUNET_assert (sizeof(struct sockaddr_in6) == addrlen); |
1360 | i6 = (const struct sockaddr_in6 *) addr; | 1354 | i6 = (const struct sockaddr_in6 *) addr; |
1361 | if (0 == ntohs (i6->sin6_port)) | 1355 | if (0 == ntohs (i6->sin6_port)) |
1362 | { | 1356 | return; /* Port = 0 means unmapped, ignore these for UDP. */ |
1363 | GNUNET_break (0); | ||
1364 | return; | ||
1365 | } | ||
1366 | memset (&u6, | 1357 | memset (&u6, |
1367 | 0, | 1358 | 0, |
1368 | sizeof(u6)); | 1359 | sizeof(u6)); |