megaglest/megaglest-3.7.1-miniupnpc-1.8.patch

159 lines
6.1 KiB
Diff

http://megaglest.svn.sourceforge.net/viewvc/megaglest?view=revision&revision=3958
https://bugs.gentoo.org/show_bug.cgi?id=456952
--- trunk/source/shared_lib/CMakeLists.txt 2012/12/24 18:05:13 3957
+++ trunk/source/shared_lib/CMakeLists.txt 2012/12/26 01:11:11 3958
@@ -297,7 +297,12 @@
ADD_DEFINITIONS(-DMINIUPNPC_VERSION_PRE1_6)
message(STATUS "Adding macro for miniupnpc version: pre v1.6")
ENDIF()
- IF(NOT MINIUPNPC_VERSION_PRE1_5 AND NOT MINIUPNPC_VERSION_PRE1_6)
+ IF(MINIUPNPC_VERSION_PRE1_7)
+ ADD_DEFINITIONS(-DMINIUPNPC_VERSION_PRE1_7)
+ message(STATUS "Adding macro for miniupnpc version: pre v1.7")
+ ENDIF()
+
+ IF(NOT MINIUPNPC_VERSION_PRE1_5 AND NOT MINIUPNPC_VERSION_PRE1_6 AND NOT MINIUPNPC_VERSION_PRE1_7)
message(STATUS "**No macros required for miniupnpc version")
ENDIF()
--- trunk/mk/cmake/Modules/FindMiniupnpc.cmake 2012/12/24 18:05:13 3957
+++ trunk/mk/cmake/Modules/FindMiniupnpc.cmake 2012/12/26 01:11:11 3958
@@ -58,20 +58,40 @@
#include <stdio.h>
int main()
{
- struct UPNPDev *devlist = NULL;
- int upnp_delay = 5000;
- const char *upnp_multicastif = NULL;
- const char *upnp_minissdpdsock = NULL;
- int upnp_sameport = 0;
- int upnp_ipv6 = 0;
- int upnp_error = 0;
- devlist = upnpDiscover(upnp_delay, upnp_multicastif, upnp_minissdpdsock, upnp_sameport, upnp_ipv6, &upnp_error);
+ static struct UPNPUrls urls;
+ static struct IGDdatas data;
+
+ GetUPNPUrls (&urls, &data, \"myurl\",0);
return 0;
}"
- MINIUPNPC_VERSION_1_6_OR_HIGHER)
-
- IF (NOT MINIUPNPC_VERSION_1_6_OR_HIGHER)
+ MINIUPNPC_VERSION_1_7_OR_HIGHER)
+
+ IF (NOT MINIUPNPC_VERSION_1_7_OR_HIGHER)
+ set(CMAKE_REQUIRED_INCLUDES ${MINIUPNP_INCLUDE_DIR})
+ set(CMAKE_REQUIRED_LIBRARIES ${MINIUPNP_LIBRARY})
+ check_cxx_source_runs("
+ #include <miniwget.h>
+ #include <miniupnpc.h>
+ #include <upnpcommands.h>
+ #include <stdio.h>
+ int main()
+ {
+ struct UPNPDev *devlist = NULL;
+ int upnp_delay = 5000;
+ const char *upnp_multicastif = NULL;
+ const char *upnp_minissdpdsock = NULL;
+ int upnp_sameport = 0;
+ int upnp_ipv6 = 0;
+ int upnp_error = 0;
+ devlist = upnpDiscover(upnp_delay, upnp_multicastif, upnp_minissdpdsock, upnp_sameport, upnp_ipv6, &upnp_error);
+
+ return 0;
+ }"
+ MINIUPNPC_VERSION_PRE1_7)
+ ENDIF()
+
+ IF (NOT MINIUPNPC_VERSION_PRE1_7 AND NOT MINIUPNPC_VERSION_1_7_OR_HIGHER)
set(CMAKE_REQUIRED_INCLUDES ${MINIUPNP_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${MINIUPNP_LIBRARY})
check_cxx_source_runs("
@@ -96,25 +116,27 @@
ENDIF()
- set(CMAKE_REQUIRED_INCLUDES ${MINIUPNP_INCLUDE_DIR})
- set(CMAKE_REQUIRED_LIBRARIES ${MINIUPNP_LIBRARY})
- check_cxx_source_runs("
- #include <miniwget.h>
- #include <miniupnpc.h>
- #include <upnpcommands.h>
- #include <stdio.h>
- static struct UPNPUrls urls;
- static struct IGDdatas data;
- int main()
- {
- char externalIP[16] = "";
- UPNP_GetExternalIPAddress(urls.controlURL, data.first.servicetype, externalIP);
+ IF (NOT MINIUPNPC_VERSION_PRE1_6 AND NOT MINIUPNPC_VERSION_PRE1_7 AND NOT MINIUPNPC_VERSION_1_7_OR_HIGHER)
+ set(CMAKE_REQUIRED_INCLUDES ${MINIUPNP_INCLUDE_DIR})
+ set(CMAKE_REQUIRED_LIBRARIES ${MINIUPNP_LIBRARY})
+ check_cxx_source_runs("
+ #include <miniwget.h>
+ #include <miniupnpc.h>
+ #include <upnpcommands.h>
+ #include <stdio.h>
+ static struct UPNPUrls urls;
+ static struct IGDdatas data;
+ int main()
+ {
+ char externalIP[16] = "";
+ UPNP_GetExternalIPAddress(urls.controlURL, data.first.servicetype, externalIP);
- return 0;
- }"
- MINIUPNPC_VERSION_1_5_OR_HIGHER)
+ return 0;
+ }"
+ MINIUPNPC_VERSION_1_5_OR_HIGHER)
+ ENDIF()
- IF (NOT MINIUPNPC_VERSION_1_5_OR_HIGHER)
+ IF (NOT MINIUPNPC_VERSION_1_5_OR_HIGHER AND NOT MINIUPNPC_VERSION_PRE1_6 AND NOT MINIUPNPC_VERSION_PRE1_7 AND NOT MINIUPNPC_VERSION_1_7_OR_HIGHER)
set(CMAKE_REQUIRED_INCLUDES ${MINIUPNP_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${MINIUPNP_LIBRARY})
check_cxx_source_runs("
@@ -141,8 +163,12 @@
IF(MINIUPNPC_VERSION_PRE1_6)
message(STATUS "Found miniupnpc version is pre v1.6")
ENDIF()
- IF(NOT MINIUPNPC_VERSION_PRE1_5 AND NOT MINIUPNPC_VERSION_PRE1_6)
- message(STATUS "Found miniupnpc version is v1.6 or higher")
+ IF(MINIUPNPC_VERSION_PRE1_7)
+ message(STATUS "Found miniupnpc version is pre v1.7")
+ ENDIF()
+
+ IF(NOT MINIUPNPC_VERSION_PRE1_5 AND NOT MINIUPNPC_VERSION_PRE1_6 AND NOT MINIUPNPC_VERSION_PRE1_7)
+ message(STATUS "Found miniupnpc version is v1.7 or higher")
ENDIF()
else ()
--- trunk/source/shared_lib/sources/platform/posix/socket.cpp 2012/12/24 18:05:13 3957
+++ trunk/source/shared_lib/sources/platform/posix/socket.cpp 2012/12/26 01:11:11 3958
@@ -2478,13 +2478,22 @@
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("UPnP device found: %s %s\n", dev->descURL, dev->st);
//printf("UPnP device found: [%s] [%s] lanaddr [%s]\n", dev->descURL, dev->st,lanaddr);
+#ifndef MINIUPNPC_VERSION_PRE1_7
+ descXML = (char *)miniwget_getaddr(dev->descURL, &descXMLsize, lanaddr, (sizeof(lanaddr) / sizeof(lanaddr[0])),0);
+#else
descXML = (char *)miniwget_getaddr(dev->descURL, &descXMLsize, lanaddr, (sizeof(lanaddr) / sizeof(lanaddr[0])));
+#endif
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"LAN address: %s\n", lanaddr);
if (descXML) {
parserootdesc (descXML, descXMLsize, &data);
free (descXML); descXML = 0;
+
+#ifndef MINIUPNPC_VERSION_PRE1_7
+ GetUPNPUrls (&urls, &data, dev->descURL,0);
+#else
GetUPNPUrls (&urls, &data, dev->descURL);
+#endif
}
snprintf(buf, 255,"UPnP device found: %s %s LAN address %s", dev->descURL, dev->st, lanaddr);