[tor-commits] [tor/master] Support NAT-PMP on Windows

nickm at torproject.org nickm at torproject.org
Wed Nov 30 22:49:38 UTC 2011


commit 5dbfb1b3e0efc95be34ba7d69852511c9bac1f4b
Author: Steven Murdoch <Steven.Murdoch at 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>





More information about the tor-commits mailing list