diff options
| -rw-r--r-- | common/spio.c | 16 | ||||
| -rw-r--r-- | configure.in | 25 | 
2 files changed, 26 insertions, 15 deletions
| diff --git a/common/spio.c b/common/spio.c index 01993fb..992e2df 100644 --- a/common/spio.c +++ b/common/spio.c @@ -35,6 +35,8 @@   *  Stef Walter <stef@memberwebs.com>   */ +#include "config.h" +  /*   * select() and stdio are basically mutually exclusive.   * Hence all of this code to try to get some buffering @@ -47,13 +49,6 @@  #include <sys/param.h>  #include <sys/stat.h> -#include <netinet/in.h> - -#ifdef HAVE_IP_TRANSPARENT -#include <linux/types.h> -#include <linux/netfilter_ipv4.h> -#endif -  #include <ctype.h>  #include <stdio.h>  #include <unistd.h> @@ -64,6 +59,13 @@  #include <unistd.h>  #include <errno.h> +#include <netinet/in.h> + +#ifdef HAVE_IP_TRANSPARENT +#include <linux/types.h> +#include <linux/netfilter_ipv4.h> +#endif +  #include "compat.h"  #include "usuals.h"  #include "sock_any.h" diff --git a/configure.in b/configure.in index c6adc86..c5de976 100644 --- a/configure.in +++ b/configure.in @@ -122,20 +122,29 @@ if test "$enable_tproxy" = "yes"; then  		[have_tproxy="yes"],  		[have_tproxy="no"],  		[[ -		#ifdef HAVE_LIMITS_H -		#include <limits.h> -		#endif  		#include <sys/socket.h>  		#include <netinet/in.h> -		#include <linux/types.h> -		#include <linux/netfilter_ipv4.h>  		]]  	) -	if test "$enable_tproxy" = "yes"; then -		AC_DEFINE(HAVE_IP_TRANSPARENT, $have_tproxy, "Linux transparent proxy") +	if test "$have_tproxy" = "yes"; then +		AC_DEFINE(HAVE_IP_TRANSPARENT, 1, [Linux transparent proxy]) +  	else -		AC_MSG_ERROR([Only linux 2.6.28 and later support true transparent proxy. See --disable-tproxy]) +		AC_MSG_CHECKING([whether broken IP_TRANSPARENT definition is present]) +		AC_COMPILE_IFELSE([[ +			#include <sys/socket.h> +			#include <linux/in.h> +			int main (void) { return IP_TRANSPARENT == 19; } +		]], [have_tproxy="yes"], [have_tproxy="no"]) +		AC_MSG_RESULT([$have_tproxy]) + +		if test "$have_tproxy" = "yes"; then +			AC_DEFINE(HAVE_IP_TRANSPARENT, 1, [Linux transparent proxy]) +			AC_DEFINE(IP_TRANSPARENT, 19, [Fix missing linux header definition]) +		else +			AC_MSG_ERROR([Only linux 2.6.28 and later support true transparent proxy. See --disable-tproxy]) +		fi  	fi  fi | 
