gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r9313 - gnunet/src/nat


From: gnunet
Subject: [GNUnet-SVN] r9313 - gnunet/src/nat
Date: Mon, 26 Oct 2009 05:09:08 -0600

Author: moon
Date: 2009-10-26 05:09:08 -0600 (Mon, 26 Oct 2009)
New Revision: 9313

Modified:
   gnunet/src/nat/nat.c
Log:
fix handling of NULL addr argument


Modified: gnunet/src/nat/nat.c
===================================================================
--- gnunet/src/nat/nat.c        2009-10-26 09:27:12 UTC (rev 9312)
+++ gnunet/src/nat/nat.c        2009-10-26 11:09:08 UTC (rev 9313)
@@ -312,17 +312,25 @@
     {
       GNUNET_assert (addr->sa_family == AF_INET
                      || addr->sa_family == AF_INET6);
+      nat->local_addr = GNUNET_malloc (addrlen);
+      memcpy (nat->local_addr, addr, addrlen);
+
       if (addr->sa_family == AF_INET)
         {
           nat->public_port = ntohs (((struct sockaddr_in *) addr)->sin_port);
-//          ((struct sockaddr_in *) addr)->sin_port = 0;
+          ((struct sockaddr_in *) nat->local_addr)->sin_port = 0;
         }
       else if (addr->sa_family == AF_INET6)
         {
           nat->public_port = ntohs (((struct sockaddr_in6 *) addr)->sin6_port);
-//          ((struct sockaddr_in6 *) addr)->sin6_port = 0;
+          ((struct sockaddr_in6 *) nat->local_addr)->sin6_port = 0;
         }
     }
+  else
+    {
+      nat->local_addr = NULL;
+      nat->public_port = 0;
+    }
 
   nat->should_change = GNUNET_YES;
   nat->sched = sched;
@@ -333,8 +341,6 @@
   nat->callback_cls = callback_cls;
   nat->ext_addr = NULL;
   nat->contact_addr = NULL;
-  nat->local_addr = GNUNET_malloc (addrlen);
-  memcpy (nat->local_addr, addr, addrlen);
   nat->natpmp = GNUNET_NAT_NATPMP_init (nat->local_addr, addrlen, 
nat->public_port);
   nat->upnp = GNUNET_NAT_UPNP_init (nat->local_addr, addrlen, 
nat->public_port);
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]