chiark / gitweb /
server/admin.c: Remove spurious `ping' in usage message.
[tripe] / pathmtu / pathmtu.c
index ad1f672c2ea0ad7e06a3b78c3b1e791317453c3b..9c5c829424da339ec9e72384b539d7fdac92d1e6 100644 (file)
 #include <netinet/icmp6.h>
 #include <netinet/udp.h>
 
-#include <net/if.h>
-#include <ifaddrs.h>
-#include <sys/ioctl.h>
+#ifdef HAVE_GETIFADDRS
+#  include <net/if.h>
+#  include <ifaddrs.h>
+#  include <sys/ioctl.h>
+#endif
 
 #include <mLib/alloc.h>
 #include <mLib/bits.h>
@@ -386,6 +388,8 @@ fail_0:
 
 /*----- Doing it the hard way ---------------------------------------------*/
 
+#ifdef HAVE_GETIFADDRS
+
 #if defined(linux) || defined(__OpenBSD__)
 #  define IPHDR_SANE
 #endif
@@ -794,6 +798,8 @@ static const struct probe_ops raw_ops = {
 #undef OPS_CHAIN
 #define OPS_CHAIN &raw_ops
 
+#endif
+
 /*----- Doing the job on Linux --------------------------------------------*/
 
 #if defined(linux)
@@ -963,12 +969,14 @@ int main(int argc, char *argv[])
 
 #define f_bogus 1u
 
+#ifdef HAVE_GETIFADDRS
   if ((rawicmp = socket(PF_INET, SOCK_RAW, IPPROTO_ICMP)) < 0 ||
       (rawudp = socket(PF_INET, SOCK_RAW, IPPROTO_UDP)) < 0)
     rawerr = errno;
   if ((rawicmp6 = socket(PF_INET6, SOCK_RAW, IPPROTO_ICMPV6)) < 0 ||
       (rawudp6 = socket(PF_INET6, SOCK_RAW, IPPROTO_RAW)) < 0)
     rawerr6 = errno;
+#endif
   if (setuid(getuid()))
     abort();