summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2012-03-22 12:09:40 -0400
committerNick Mathewson <nickm@torproject.org>2012-04-24 10:56:39 -0400
commitcffc85bb0b606947b2368fa28bed03c066e1e686 (patch)
treebbafbb927851d5c97e0062eeed5720612e08d967 /configure.in
parentbdd7e2878b642e3ab06a62d9097ae5e7484240e9 (diff)
downloadtor-cffc85bb0b606947b2368fa28bed03c066e1e686.tar.gz
tor-cffc85bb0b606947b2368fa28bed03c066e1e686.zip
Fix compile error against miniupnpc-1.6 when --enable-upnp
The bump from miniupnpc-1.5 to 1.6 changes the definition of two functions used by tor-fw-helper-upnp.c, upnpDiscover() and UPNP_AddPortMapping(). This patch addresses this and adds a check in configure.in for backwards compatibility. Thanks to Nickolay Kolchin-Semyonov for some hints. X-Tor-Bug-URL: https://trac.torproject.org/projects/tor/ticket/5434 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=376621 Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in37
1 files changed, 28 insertions, 9 deletions
diff --git a/configure.in b/configure.in
index e2dc0f12fb..2a9e9b03f4 100644
--- a/configure.in
+++ b/configure.in
@@ -592,15 +592,34 @@ dnl There are no packages for Debian or Redhat as of this patch
if test "$upnp" = "true"; then
AC_DEFINE(MINIUPNPC, 1, [Define to 1 if we are building with UPnP.])
- TOR_SEARCH_LIBRARY(libminiupnpc, $trylibminiupnpcdir, [-lminiupnpc $TOR_LIB_WS32 $TOR_LIB_IPHLPAPI],
- [#include <miniupnpc/miniwget.h>
- #include <miniupnpc/miniupnpc.h>
- #include <miniupnpc/upnpcommands.h>],
- [void upnpDiscover(int delay, const char * multicastif,
- const char * minissdpdsock, int sameport);],
- [upnpDiscover(1, 0, 0, 0); exit(0);],
- [--with-libminiupnpc-dir],
- [/usr/lib/])
+
+ dnl Before we call TOR_SEARCH_LIBRARY we'll do a quick compile test
+ dnl to see if we have miniupnpc-1.5 or -1.6
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <miniupnpc/miniupnpc.h>],
+ [upnpDiscover(1, 0, 0, 0);exit(0);])],[miniupnpc15="true"],[miniupnpc15="false"])
+
+ if test "$miniupnpc15" = "true" ; then
+ AC_DEFINE([MINIUPNPC15],[1],[libminiupnpc version 1.5 found])
+ TOR_SEARCH_LIBRARY(libminiupnpc, $trylibminiupnpcdir, [-lminiupnpc $TOR_LIB_WS32 $TOR_LIB_IPHLPAPI],
+ [#include <miniupnpc/miniwget.h>
+ #include <miniupnpc/miniupnpc.h>
+ #include <miniupnpc/upnpcommands.h>],
+ [void upnpDiscover(int delay, const char * multicastif,
+ const char * minissdpdsock, int sameport);],
+ [upnpDiscover(1, 0, 0, 0); exit(0);],
+ [--with-libminiupnpc-dir],
+ [/usr/lib/])
+ else
+ TOR_SEARCH_LIBRARY(libminiupnpc, $trylibminiupnpcdir, [-lminiupnpc $TOR_LIB_WS32 $TOR_LIB_IPHLPAPI],
+ [#include <miniupnpc/miniwget.h>
+ #include <miniupnpc/miniupnpc.h>
+ #include <miniupnpc/upnpcommands.h>],
+ [void upnpDiscover(int delay, const char * multicastif,
+ const char * minissdpdsock, int sameport, int ipv6, int * error);],
+ [upnpDiscover(1, 0, 0, 0, 0, 0); exit(0);],
+ [--with-libminiupnpc-dir],
+ [/usr/lib/])
+ fi
fi
AC_SYS_LARGEFILE