aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2013-07-15 09:57:23 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2013-07-15 09:57:23 +0000
commit5e6bbc1a120df550156ba92025cb896f803d4e07 (patch)
tree55a8e8a6ce9364d404f13dfa3d8144ffd029021c
parent71069ebdd306bbac39ec124d4d3d4d92eac6f730 (diff)
downloadgnunet-5e6bbc1a120df550156ba92025cb896f803d4e07.tar.gz
gnunet-5e6bbc1a120df550156ba92025cb896f803d4e07.zip
udp returned addresses with 0-port
-rw-r--r--src/transport/plugin_transport_udp.c4
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;