From 1c141194e3587cc8124e5f4512dc3030e5a104b1 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 28 Aug 2016 22:06:09 +0200 Subject: [PATCH] xio-tun: remove if_tun.h kernel header xio-tun mixes userspace and kernel headers. http://wiki.musl-libc.org/wiki/FAQ#Q:_why_am_i_getting_.22error:_redefinition_of_struct_ethhdr.2Ftcphdr.2Fetc.22_.3F Signed-off-by: Romain Naour --- config.h.in | 3 --- configure.in | 8 +------- sysincludes.h | 3 --- xio-tun.c | 6 ++++++ 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/config.h.in b/config.h.in index 9058bf8..ed0962c 100644 --- a/config.h.in +++ b/config.h.in @@ -258,9 +258,6 @@ /* Define if you have the header file. */ #undef HAVE_LINUX_ERRQUEUE_H -/* Define if you have the header file. */ -#undef HAVE_LINUX_IF_TUN_H - /* Define if you have the header file. */ #undef HAVE_NETPACKET_PACKET_H diff --git a/configure.in b/configure.in index 1d2e76f..27bb3d5 100644 --- a/configure.in +++ b/configure.in @@ -78,7 +78,7 @@ AC_CHECK_HEADERS(arpa/nameser.h) AC_HEADER_RESOLV() -AC_CHECK_HEADERS(termios.h linux/if_tun.h) +AC_CHECK_HEADERS(termios.h) AC_CHECK_HEADERS(net/if_dl.h) AC_CHECK_HEADERS(linux/types.h) AC_CHECK_HEADER(linux/errqueue.h, AC_DEFINE(HAVE_LINUX_ERRQUEUE_H), [], [#include @@ -680,12 +680,6 @@ AC_ARG_ENABLE(tun, [ --disable-tun disable TUN/TAP support], esac], [AC_MSG_RESULT(yes); WITH_TUN=1 ]) -# -if ! test "$ac_cv_header_linux_if_tun_h" = 'yes'; then - AC_MSG_WARN(include file linux/if_tun.h not found, disabling TUN) - WITH_TUN= -fi -# if test -n "$WITH_TUN"; then AC_DEFINE(WITH_TUN) fi diff --git a/sysincludes.h b/sysincludes.h index 98dff77..28067f4 100644 --- a/sysincludes.h +++ b/sysincludes.h @@ -142,9 +142,6 @@ #if HAVE_NETINET_IF_ETHER_H #include #endif -#if HAVE_LINUX_IF_TUN_H -#include -#endif #if HAVE_TERMIOS_H && _WITH_TERMIOS #include diff --git a/xio-tun.c b/xio-tun.c index 0628d27..f965a7e 100644 --- a/xio-tun.c +++ b/xio-tun.c @@ -14,6 +14,12 @@ #include "xio-tun.h" +/* TUNSETIFF flags from if_tun.h kernel header */ +#define IFF_TUN 0x0001 +#define IFF_TAP 0x0002 +#define IFF_NO_PI 0x1000 + +#define TUNSETIFF _IOW('T', 202, int) static int xioopen_tun(int argc, const char *argv[], struct opt *opts, int xioflags, xiofile_t *fd, unsigned groups, int dummy1, int dummy2, int dummy3); -- 2.5.5