iptunnel: fix building w/older linux headers
[platform/upstream/net-tools.git] / iptunnel.c
index 68f6bdf..b2e74d1 100644 (file)
 #include <sys/ioctl.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#if defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1))
 #include <net/if.h>
 #include <net/if_arp.h>
-#else
-#include <linux/if.h>
-#include <linux/if_arp.h>
-#endif
+/* We only care about linux/if_tunnel.h.  Unfortunately, older Linux headers
+ * (pre linux-4.8) did not include all the proper headers leading to missing
+ * structs and types.
+ */
 #include <linux/types.h>
+#include <linux/ip.h>
 #include <linux/if_tunnel.h>
 
 #include "config.h"
@@ -377,7 +377,7 @@ static int do_add(int cmd, int argc, char **argv)
                return do_add_ioctl(cmd, "gre0", &p);
        case IPPROTO_IPV6:
                return do_add_ioctl(cmd, "sit0", &p);
-       default:        
+       default:
                fprintf(stderr, _("cannot determine tunnel mode (ipip, gre or sit)\n"));
                return -1;
        }
@@ -392,13 +392,13 @@ int do_del(int argc, char **argv)
                return -1;
 
        switch (p.iph.protocol) {
-       case IPPROTO_IPIP:      
+       case IPPROTO_IPIP:
                return do_del_ioctl(p.name[0] ? p.name : "tunl0", &p);
-       case IPPROTO_GRE:       
+       case IPPROTO_GRE:
                return do_del_ioctl(p.name[0] ? p.name : "gre0", &p);
-       case IPPROTO_IPV6:      
+       case IPPROTO_IPV6:
                return do_del_ioctl(p.name[0] ? p.name : "sit0", &p);
-       default:        
+       default:
                return do_del_ioctl(p.name, &p);
        }
        return -1;
@@ -539,7 +539,7 @@ static int do_show(int argc, char **argv)
                return -1;
 
        switch (p.iph.protocol) {
-       case IPPROTO_IPIP:      
+       case IPPROTO_IPIP:
                err = do_get_ioctl(p.name[0] ? p.name : "tunl0", &p);
                break;
        case IPPROTO_GRE:
@@ -598,7 +598,7 @@ int main(int argc, char **argv)
                basename = argv[0];
        else
                basename++;
-       
+
        while (argc > 1) {
                if (argv[1][0] != '-')
                        break;