commit 5dbfb1b3e0efc95be34ba7d69852511c9bac1f4b Author: Steven Murdoch Steven.Murdoch@cl.cam.ac.uk Date: Wed Nov 30 19:37:17 2011 +0000
Support NAT-PMP on Windows
- Link in libws32 and libiphlpapi, needed for libnatpmp (both in ./configure and when compiling tor-fw-helper-natpmp.c) - Define STATICLIB under Windows, to allow tor-fw-helper-natpmp.c to link - Don't include arpa/inet.h which isn't present in Mingw32 and doesn't appear to be needed on either Windows or MacOS X --- configure.in | 7 +++++-- src/tools/tor-fw-helper/Makefile.am | 2 +- src/tools/tor-fw-helper/tor-fw-helper-natpmp.c | 4 +++- 3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/configure.in b/configure.in index 64d9d6d..0de15b4 100644 --- a/configure.in +++ b/configure.in @@ -548,9 +548,12 @@ dnl There are no packages for Debian or Redhat as of this patch
if test "$natpmp" = "true"; then AC_DEFINE(NAT_PMP, 1, [Define to 1 if we are building with nat-pmp.]) - TOR_SEARCH_LIBRARY(libnatpmp, $trylibnatpmpdir, [-lnatpmp], - [#include <natpmp.h>], + TOR_SEARCH_LIBRARY(libnatpmp, $trylibnatpmpdir, [-lnatpmp $TOR_LIB_WS32 $TOR_LIB_IPHLPAPI], [#include <natpmp.h>], + [#ifdef MS_WINDOWS + #define STATICLIB + #endif + #include <natpmp.h>], [ int r; natpmp_t natpmp; natpmpresp_t response; diff --git a/src/tools/tor-fw-helper/Makefile.am b/src/tools/tor-fw-helper/Makefile.am index 8f64ad2..393562d 100644 --- a/src/tools/tor-fw-helper/Makefile.am +++ b/src/tools/tor-fw-helper/Makefile.am @@ -15,7 +15,7 @@ noinst_HEADERS = \
if NAT_PMP nat_pmp_ldflags = @TOR_LDFLAGS_libnatpmp@ -nat_pmp_ldadd = -lnatpmp +nat_pmp_ldadd = -lnatpmp @TOR_LIB_IPHLPAPI@ nat_pmp_cppflags = @TOR_CPPFLAGS_libnatpmp@ else nat_pmp_ldflags = diff --git a/src/tools/tor-fw-helper/tor-fw-helper-natpmp.c b/src/tools/tor-fw-helper/tor-fw-helper-natpmp.c index f9d5d0d..a8cdbbf 100644 --- a/src/tools/tor-fw-helper/tor-fw-helper-natpmp.c +++ b/src/tools/tor-fw-helper/tor-fw-helper-natpmp.c @@ -9,11 +9,13 @@
#include "orconfig.h" #ifdef NAT_PMP +#ifdef MS_WINDOWS +#define STATICLIB +#endif #include <stdint.h> #include <stdio.h> #include <string.h> #include <errno.h> -#include <arpa/inet.h>
// debugging stuff #include <assert.h>
tor-commits@lists.torproject.org