#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.
*/
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;
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;