Merge branch 'credentials' of git+ssh://gnunet.org/gnunet into credentials
[oweals/gnunet.git] / src / nat / gnunet-helper-nat-server.c
index 71057beec1d2717fff5fbce45eca54fde5026a56..8c3df749d161314aea51e0aa0107df1bd863cdd9 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2010 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2010 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
@@ -372,6 +372,9 @@ process_icmp_response ()
     /* different type than what we want */
     return;
   }
+  /* grab source IP of 1st IP header */
+  source_ip.s_addr = ip_pkt.src_ip;
+
   /* skip 2nd IP header */
   memcpy (&ip_pkt, &buf[off], sizeof (struct ip_header));
   off += sizeof (struct ip_header);
@@ -408,7 +411,6 @@ process_icmp_response ()
     return;
   }
 
-  source_ip.s_addr = ip_pkt.src_ip;
   if (port == 0)
     fprintf (stdout, "%s\n",
              inet_ntop (AF_INET, &source_ip, buf, sizeof (buf)));
@@ -461,7 +463,9 @@ make_udp_socket (const struct in_addr *my_ip)
   ret = socket (AF_INET, SOCK_DGRAM, 0);
   if (-1 == ret)
   {
-    fprintf (stderr, "Error opening UDP socket: %s\n", strerror (errno));
+    fprintf (stderr,
+             "Error opening UDP socket: %s\n",
+             strerror (errno));
     return -1;
   }
   memset (&addr, 0, sizeof (addr));
@@ -472,9 +476,13 @@ make_udp_socket (const struct in_addr *my_ip)
   addr.sin_addr = *my_ip;
   addr.sin_port = htons (NAT_TRAV_PORT);
 
-  if (0 != bind (ret, &addr, sizeof (addr)))
+  if (0 != bind (ret,
+                 (struct sockaddr *) &addr,
+                 sizeof (addr)))
   {
-    fprintf (stderr, "Error binding UDP socket to port %u: %s\n", NAT_TRAV_PORT,
+    fprintf (stderr,
+             "Error binding UDP socket to port %u: %s\n",
+             NAT_TRAV_PORT,
              strerror (errno));
     (void) close (ret);
     return -1;