-indentation
[oweals/gnunet.git] / src / nat / gnunet-helper-nat-server.c
index d3c890b9815ad06e4253af206654ba85223f4e83..aacae376a9360de18d6398b48dfcb78fe4b49d9f 100644 (file)
 #include <netinet/ip_icmp.h>
 #include <netinet/in.h>
 
+/* The following constant is missing from FreeBSD 9.2 */
+#ifndef ICMP_TIME_EXCEEDED
+#define ICMP_TIME_EXCEEDED 11
+#endif
+
 /**
  * Should we print some debug output?
  */
@@ -367,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);
@@ -403,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)));
@@ -456,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));
@@ -467,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;
@@ -602,7 +615,7 @@ main (int argc, char *const *argv)
   }
 
   /* select failed (internal error or OS out of resources) */
-  global_ret = 11; 
+  global_ret = 11;
 error_exit:
   if (-1 != icmpsock)
     (void) close (icmpsock);