diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2013-07-15 09:57:23 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2013-07-15 09:57:23 +0000 |
commit | 5e6bbc1a120df550156ba92025cb896f803d4e07 (patch) | |
tree | 55a8e8a6ce9364d404f13dfa3d8144ffd029021c | |
parent | 71069ebdd306bbac39ec124d4d3d4d92eac6f730 (diff) | |
download | gnunet-5e6bbc1a120df550156ba92025cb896f803d4e07.tar.gz gnunet-5e6bbc1a120df550156ba92025cb896f803d4e07.zip |
udp returned addresses with 0-port
-rw-r--r-- | src/transport/plugin_transport_udp.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/transport/plugin_transport_udp.c b/src/transport/plugin_transport_udp.c index 46ea48d82..dcf47b7fa 100644 --- a/src/transport/plugin_transport_udp.c +++ b/src/transport/plugin_transport_udp.c | |||
@@ -1907,6 +1907,8 @@ udp_nat_port_map_callback (void *cls, int add_remove, | |||
1907 | u4.options = htonl(myoptions); | 1907 | u4.options = htonl(myoptions); |
1908 | u4.ipv4_addr = ((struct sockaddr_in *) addr)->sin_addr.s_addr; | 1908 | u4.ipv4_addr = ((struct sockaddr_in *) addr)->sin_addr.s_addr; |
1909 | u4.u4_port = ((struct sockaddr_in *) addr)->sin_port; | 1909 | u4.u4_port = ((struct sockaddr_in *) addr)->sin_port; |
1910 | if (0 == ((struct sockaddr_in *) addr)->sin_port) | ||
1911 | return; | ||
1910 | arg = &u4; | 1912 | arg = &u4; |
1911 | args = sizeof (struct IPv4UdpAddress); | 1913 | args = sizeof (struct IPv4UdpAddress); |
1912 | break; | 1914 | break; |
@@ -1914,6 +1916,8 @@ udp_nat_port_map_callback (void *cls, int add_remove, | |||
1914 | GNUNET_assert (addrlen == sizeof (struct sockaddr_in6)); | 1916 | GNUNET_assert (addrlen == sizeof (struct sockaddr_in6)); |
1915 | memset (&u4, 0, sizeof (u4)); | 1917 | memset (&u4, 0, sizeof (u4)); |
1916 | u6.options = htonl(myoptions); | 1918 | u6.options = htonl(myoptions); |
1919 | if (0 == ((struct sockaddr_in6 *) addr)->sin6_port) | ||
1920 | return; | ||
1917 | memcpy (&u6.ipv6_addr, &((struct sockaddr_in6 *) addr)->sin6_addr, | 1921 | memcpy (&u6.ipv6_addr, &((struct sockaddr_in6 *) addr)->sin6_addr, |
1918 | sizeof (struct in6_addr)); | 1922 | sizeof (struct in6_addr)); |
1919 | u6.u6_port = ((struct sockaddr_in6 *) addr)->sin6_port; | 1923 | u6.u6_port = ((struct sockaddr_in6 *) addr)->sin6_port; |