-indent, doxygen
[oweals/gnunet.git] / src / nat / gnunet-helper-nat-client.c
index bb31570b546495eb3e00b5d9fdf869e322bd03ef..5d9d25f487fc773af3e3db2966206dfd26cd7b03 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
+
 /**
  * Must match IP given in the server.
  */
@@ -232,7 +237,11 @@ send_icmp_udp (const struct in_addr *my_ip, const struct in_addr *other)
   off = 0;
   ip_pkt.vers_ihl = 0x45;
   ip_pkt.tos = 0;
+#ifdef FREEBSD
+  ip_pkt.pkt_len = sizeof (packet); /* Workaround PR kern/21737 */
+#else
   ip_pkt.pkt_len = htons (sizeof (packet));
+#endif
   ip_pkt.id = htons (PACKET_ID);
   ip_pkt.flags_frag_offset = 0;
   ip_pkt.ttl = 128;
@@ -329,7 +338,11 @@ send_icmp (const struct in_addr *my_ip, const struct in_addr *other)
   off = 0;
   ip_pkt.vers_ihl = 0x45;
   ip_pkt.tos = 0;
+#ifdef FREEBSD
+  ip_pkt.pkt_len = sizeof (packet); /* Workaround PR kern/21737 */
+#else
   ip_pkt.pkt_len = htons (sizeof (packet));
+#endif
   ip_pkt.id = htons (PACKET_ID);
   ip_pkt.flags_frag_offset = 0;
   ip_pkt.ttl = IPDEFTTL;