Do a simple test for linux/if_tun.h instead of no test at all.
authorGuus Sliepen <guus@tinc-vpn.org>
Sat, 16 Dec 2006 16:53:58 +0000 (16:53 +0000)
committerGuus Sliepen <guus@tinc-vpn.org>
Sat, 16 Dec 2006 16:53:58 +0000 (16:53 +0000)
configure.in
src/linux/device.c

index 181ff8f28195f6a5cafbf1375782373d36490715..3cb6a4de0efb1b6e8e94ad84d969fcbba0a91293 100644 (file)
@@ -91,7 +91,7 @@ dnl We do this in multiple stages, because unlike Linux all the other operating
 
 AC_HEADER_STDC
 AC_CHECK_HEADERS([stdbool.h syslog.h sys/file.h sys/ioctl.h sys/mman.h sys/param.h sys/socket.h sys/time.h sys/uio.h sys/wait.h netdb.h arpa/inet.h])
-AC_CHECK_HEADERS([net/if.h net/if_types.h net/if_tun.h net/if_tap.h net/ethernet.h net/if_arp.h netinet/in_systm.h netinet/in.h netinet/in6.h],
+AC_CHECK_HEADERS([net/if.h net/if_types.h linux/if_tun.h net/if_tun.h net/if_tap.h net/ethernet.h net/if_arp.h netinet/in_systm.h netinet/in.h netinet/in6.h],
   [], [], [#include "have.h"]
 )
 AC_CHECK_HEADERS([netinet/if_ether.h netinet/ip.h netinet/ip6.h],
index 3af8df09dc483c4cce869c9db0755d4d0555e639..302fa6288d946c66008987cdcc8d18b2f40b44b8 100644 (file)
 
 #include "system.h"
 
+#ifdef HAVE_LINUX_IF_TUN_H
 #include <linux/if_tun.h>
 #define DEFAULT_DEVICE "/dev/net/tun"
+#else
+#define DEFAULT_DEVICE "/dev/tap0"
+#endif
 
 #include "conf.h"
 #include "logger.h"
@@ -57,7 +61,7 @@ bool setup_device(void)
                device = DEFAULT_DEVICE;
 
        if(!get_config_string(lookup_config(config_tree, "Interface"), &iface))
-#ifdef HAVE_TUNTAP
+#ifdef HAVE_LINUX_IF_TUN_H
                iface = netname;
 #else
                iface = rindex(device, '/') ? rindex(device, '/') + 1 : device;
@@ -69,7 +73,7 @@ bool setup_device(void)
                return false;
        }
 
-#ifdef HAVE_TUNTAP
+#ifdef HAVE_LINUX_IF_TUN_H
        /* Ok now check if this is an old ethertap or a new tun/tap thingie */
 
        memset(&ifr, 0, sizeof(ifr));