From 355d84d1225c8185b06ce251ffd2be0a8c884218 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 7 Aug 2008 19:41:54 +0000 Subject: [PATCH] Backport: On recent linux kernels we were not detecting the linux/netfilter_ipv4.h header properly, since we needed to have in_addr and in6_addr and __u32 defined before trying to include it. Fix that. svn:r16461 --- ChangeLog | 2 ++ configure.in | 11 ++++++++++- src/or/connection_edge.c | 3 +++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index e8e0e37d9c..87865dab95 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,8 @@ Changes in version 0.2.0.31 - 2008-08-?? by rovv. - Recover 3-7 bytes that were wasted per memory chunk. Fixes bug 794; bug spotted by rovv. Bugfix on 0.2.0.1-alpha. + - Correctly detect the presence of the linux/netfilter_ipv4.h header + when building against recent kernels. Bugfix on 0.1.2.1-alpha. Changes in version 0.2.0.30 - 2008-07-15 diff --git a/configure.in b/configure.in index 024881bb37..72ec2a312b 100644 --- a/configure.in +++ b/configure.in @@ -301,7 +301,7 @@ AC_CHECK_HEADERS(netdb.h sys/ioctl.h sys/socket.h arpa/inet.h netinet/in.h pwd.h dnl These headers are not essential -AC_CHECK_HEADERS(stdint.h sys/types.h inttypes.h sys/param.h sys/wait.h limits.h sys/limits.h netinet/in.h arpa/inet.h machine/limits.h syslog.h sys/time.h sys/resource.h inttypes.h utime.h sys/utime.h sys/mman.h netinet/in6.h malloc.h sys/syslimits.h malloc/malloc.h) +AC_CHECK_HEADERS(stdint.h sys/types.h inttypes.h sys/param.h sys/wait.h limits.h sys/limits.h netinet/in.h arpa/inet.h machine/limits.h syslog.h sys/time.h sys/resource.h inttypes.h utime.h sys/utime.h sys/mman.h netinet/in6.h malloc.h sys/syslimits.h malloc/malloc.h linux/types.h) TOR_CHECK_PROTOTYPE(malloc_good_size, HAVE_MALLOC_GOOD_SIZE_PROTOTYPE, [#ifdef HAVE_MALLOC_H @@ -336,6 +336,15 @@ AC_CHECK_HEADERS(linux/netfilter_ipv4.h, #ifdef HAVE_SYS_SOCKET_H #include #endif +#ifdef HAVE_LIMITS_H +#include +#endif +#ifdef HAVE_LINUX_TYPES_H +#include +#endif +#ifdef HAVE_NETINET_IN6_H +#include +#endif #ifdef HAVE_NETINET_IN_H #include #endif]) diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 161a70d0ae..64f8ceb9f4 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -14,6 +14,9 @@ const char connection_edge_c_id[] = #include "or.h" +#ifdef HAVE_LINUX_TYPES_H +#include +#endif #ifdef HAVE_LINUX_NETFILTER_IPV4_H #include #define TRANS_NETFILTER