aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Murdoch <Steven.Murdoch@cl.cam.ac.uk>2011-11-30 19:37:17 +0000
committerSteven Murdoch <Steven Murdoch@cl.cam.ac.uk>2011-11-30 19:46:38 +0000
commit5dbfb1b3e0efc95be34ba7d69852511c9bac1f4b (patch)
tree482852e387aafd10e7e6695db513ae96af69a4ea
parentb5a306e82c684bdd30b832fdfd9e2b55c06b54ae (diff)
downloadtor-5dbfb1b3e0efc95be34ba7d69852511c9bac1f4b.tar.gz
tor-5dbfb1b3e0efc95be34ba7d69852511c9bac1f4b.zip
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
-rw-r--r--configure.in7
-rw-r--r--src/tools/tor-fw-helper/Makefile.am2
-rw-r--r--src/tools/tor-fw-helper/tor-fw-helper-natpmp.c4
3 files changed, 9 insertions, 4 deletions
diff --git a/configure.in b/configure.in
index 64d9d6db7b..0de15b4b5a 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 8f64ad2ba3..393562db03 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 f9d5d0d586..a8cdbbf24a 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>