From cdacb95846945bbb06b4911e544054459facd57a Mon Sep 17 00:00:00 2001 From: Logan-A <Logan.GBA@gmail.com> Date: Sat, 30 Dec 2023 11:35:35 -0500 Subject: [PATCH] update MiniUPnPc from 1.6 to 2.2.5 --- libs/miniupnpc/.gitattributes | 26 + libs/miniupnpc/CMakeLists.txt | 398 ++++--- libs/miniupnpc/Changelog.txt | 347 +++++- libs/miniupnpc/LICENSE | 40 +- libs/miniupnpc/MANIFEST.in | 11 +- libs/miniupnpc/Makefile | 440 ++++--- libs/miniupnpc/Makefile.mingw | 186 ++- libs/miniupnpc/README | 51 +- libs/miniupnpc/VERSION | 2 +- libs/miniupnpc/apiversions.txt | 178 +++ libs/miniupnpc/bsdqueue.h | 531 --------- libs/miniupnpc/codelength.h | 24 - libs/miniupnpc/connecthostport.h | 17 - libs/miniupnpc/declspec.h | 15 - libs/miniupnpc/external-ip.sh | 4 +- libs/miniupnpc/{ => include}/igd_desc_parse.h | 13 +- libs/miniupnpc/{ => include}/miniupnpc.h | 88 +- libs/miniupnpc/include/miniupnpc_declspec.h | 21 + libs/miniupnpc/{ => include}/miniupnpctypes.h | 12 +- libs/miniupnpc/include/miniwget.h | 27 + .../{ => include}/portlistingparse.h | 26 +- libs/miniupnpc/{ => include}/upnpcommands.h | 173 ++- libs/miniupnpc/include/upnpdev.h | 44 + libs/miniupnpc/{ => include}/upnperrors.h | 14 +- libs/miniupnpc/{ => include}/upnpreplyparse.h | 29 +- libs/miniupnpc/java/JavaBridgeTest.java | 8 +- libs/miniupnpc/java/testjava.bat | 8 + libs/miniupnpc/java/testjava.sh | 8 +- libs/miniupnpc/man3/miniupnpc.3 | 16 +- libs/miniupnpc/mingw32/libminiupnpc.a | Bin 2028512 -> 63762 bytes libs/miniupnpc/mingw64/libminiupnpc.a | Bin 135706 -> 72024 bytes libs/miniupnpc/minissdpc.c | 132 --- libs/miniupnpc/minissdpc.h | 15 - libs/miniupnpc/miniupnpc-config.cmake | 6 + libs/miniupnpc/miniupnpc.c | 943 --------------- libs/miniupnpc/miniupnpc.def | 6 + libs/miniupnpc/miniupnpc.pc.in | 18 + libs/miniupnpc/miniupnpc.rc | 36 + libs/miniupnpc/miniupnpcstrings.h.cmake | 12 +- libs/miniupnpc/miniupnpcstrings.h.in | 16 +- libs/miniupnpc/miniwget.h | 30 - libs/miniupnpc/msvc/genminiupnpcstrings.vbs | 112 ++ libs/miniupnpc/msvc/miniupnpc.vcproj | 24 +- libs/miniupnpc/msvc/miniupnpc.vcxproj | 215 ++++ libs/miniupnpc/msvc/miniupnpc.vcxproj.filters | 133 +++ libs/miniupnpc/msvc/miniupnpc_vs2010.sln | 36 + libs/miniupnpc/msvc/miniupnpc_vs2010.vcxproj | 209 ++++ .../msvc/miniupnpc_vs2010.vcxproj.filters | 133 +++ libs/miniupnpc/msvc/miniupnpc_vs2015.sln | 38 + libs/miniupnpc/msvc/upnpc-static.vcproj | 4 +- libs/miniupnpc/msvc/upnpc-static.vcxproj | 184 +++ .../msvc/upnpc-static.vcxproj.filters | 22 + .../msvc/upnpc-static_vs2010.vcxproj | 176 +++ libs/miniupnpc/pymoduletest.py | 79 +- libs/miniupnpc/receivedata.c | 81 -- libs/miniupnpc/receivedata.h | 17 - libs/miniupnpc/setup.py | 40 +- libs/miniupnpc/setupmingw32.py | 40 +- libs/miniupnpc/src/addr_is_reserved.c | 79 ++ libs/miniupnpc/src/addr_is_reserved.h | 14 + libs/miniupnpc/src/codelength.h | 54 + libs/miniupnpc/{ => src}/connecthostport.c | 147 ++- libs/miniupnpc/src/connecthostport.h | 20 + libs/miniupnpc/{ => src}/igd_desc_parse.c | 36 +- libs/miniupnpc/src/listdevices.c | 197 ++++ libs/miniupnpc/{ => src}/minihttptestserver.c | 343 +++++- libs/miniupnpc/{ => src}/minisoap.c | 36 +- libs/miniupnpc/{ => src}/minisoap.h | 12 +- libs/miniupnpc/src/minissdpc.c | 1019 +++++++++++++++++ libs/miniupnpc/src/minissdpc.h | 58 + libs/miniupnpc/src/miniupnpc.c | 698 +++++++++++ libs/miniupnpc/src/miniupnpc_socketdef.h | 44 + libs/miniupnpc/{ => src}/miniupnpcmodule.c | 309 ++++- libs/miniupnpc/{ => src}/miniwget.c | 412 ++++--- libs/miniupnpc/src/miniwget_private.h | 15 + libs/miniupnpc/{ => src}/minixml.c | 27 +- libs/miniupnpc/{ => src}/minixml.h | 8 +- libs/miniupnpc/{ => src}/minixmlvalid.c | 13 +- libs/miniupnpc/{ => src}/portlistingparse.c | 36 +- libs/miniupnpc/src/receivedata.c | 105 ++ libs/miniupnpc/src/receivedata.h | 21 + libs/miniupnpc/src/testaddr_is_reserved.c | 46 + libs/miniupnpc/src/testigddescparse.c | 187 +++ libs/miniupnpc/{ => src}/testminiwget.c | 19 +- libs/miniupnpc/{ => src}/testminixml.c | 25 +- libs/miniupnpc/src/testportlistingparse.c | 151 +++ libs/miniupnpc/src/testupnpreplyparse.c | 115 ++ libs/miniupnpc/{ => src}/upnpc.c | 466 +++++--- libs/miniupnpc/{ => src}/upnpcommands.c | 351 ++++-- libs/miniupnpc/src/upnpdev.c | 23 + libs/miniupnpc/{ => src}/upnperrors.c | 39 +- libs/miniupnpc/{ => src}/upnpreplyparse.c | 115 +- libs/miniupnpc/src/win32_snprintf.h | 71 ++ .../testdesc/linksys_WAG200G_desc.values | 14 + .../testdesc/linksys_WAG200G_desc.xml | 110 ++ .../testdesc/new_LiveBox_desc.values | 20 + libs/miniupnpc/testdesc/new_LiveBox_desc.xml | 90 ++ libs/miniupnpc/testigddescparse.c | 64 -- libs/miniupnpc/testminiwget.sh | 88 +- .../DeletePortMapping.namevalue | 3 + .../testreplyparse/DeletePortMapping.xml | 6 + .../GetExternalIPAddress.namevalue | 2 + .../testreplyparse/GetExternalIPAddress.xml | 2 + .../GetSpecificPortMappingEntryReq.namevalue | 3 + .../GetSpecificPortMappingEntryReq.xml | 3 + .../GetSpecificPortMappingEntryResp.namevalue | 5 + .../GetSpecificPortMappingEntryResp.xml | 2 + .../SetDefaultConnectionService.namevalue | 1 + .../SetDefaultConnectionService.xml | 1 + libs/miniupnpc/testreplyparse/readme.txt | 7 + libs/miniupnpc/testupnpigd.py | 48 +- libs/miniupnpc/testupnpreplyparse.c | 44 - libs/miniupnpc/testupnpreplyparse.sh | 17 + libs/miniupnpc/updateminiupnpcstrings.sh | 26 +- libs/miniupnpc/wingenminiupnpcstrings.c | 43 +- 115 files changed, 8276 insertions(+), 3148 deletions(-) create mode 100644 libs/miniupnpc/.gitattributes create mode 100644 libs/miniupnpc/apiversions.txt delete mode 100644 libs/miniupnpc/bsdqueue.h delete mode 100644 libs/miniupnpc/codelength.h delete mode 100644 libs/miniupnpc/connecthostport.h delete mode 100644 libs/miniupnpc/declspec.h rename libs/miniupnpc/{ => include}/igd_desc_parse.h (84%) rename libs/miniupnpc/{ => include}/miniupnpc.h (52%) create mode 100644 libs/miniupnpc/include/miniupnpc_declspec.h rename libs/miniupnpc/{ => include}/miniupnpctypes.h (56%) create mode 100644 libs/miniupnpc/include/miniwget.h rename libs/miniupnpc/{ => include}/portlistingparse.h (76%) rename libs/miniupnpc/{ => include}/upnpcommands.h (61%) create mode 100644 libs/miniupnpc/include/upnpdev.h rename libs/miniupnpc/{ => include}/upnperrors.h (52%) rename libs/miniupnpc/{ => include}/upnpreplyparse.h (71%) create mode 100644 libs/miniupnpc/java/testjava.bat delete mode 100644 libs/miniupnpc/minissdpc.c delete mode 100644 libs/miniupnpc/minissdpc.h create mode 100644 libs/miniupnpc/miniupnpc-config.cmake delete mode 100644 libs/miniupnpc/miniupnpc.c create mode 100644 libs/miniupnpc/miniupnpc.pc.in create mode 100644 libs/miniupnpc/miniupnpc.rc delete mode 100644 libs/miniupnpc/miniwget.h create mode 100644 libs/miniupnpc/msvc/genminiupnpcstrings.vbs create mode 100644 libs/miniupnpc/msvc/miniupnpc.vcxproj create mode 100644 libs/miniupnpc/msvc/miniupnpc.vcxproj.filters create mode 100644 libs/miniupnpc/msvc/miniupnpc_vs2010.sln create mode 100644 libs/miniupnpc/msvc/miniupnpc_vs2010.vcxproj create mode 100644 libs/miniupnpc/msvc/miniupnpc_vs2010.vcxproj.filters create mode 100644 libs/miniupnpc/msvc/miniupnpc_vs2015.sln create mode 100644 libs/miniupnpc/msvc/upnpc-static.vcxproj create mode 100644 libs/miniupnpc/msvc/upnpc-static.vcxproj.filters create mode 100644 libs/miniupnpc/msvc/upnpc-static_vs2010.vcxproj delete mode 100644 libs/miniupnpc/receivedata.c delete mode 100644 libs/miniupnpc/receivedata.h create mode 100644 libs/miniupnpc/src/addr_is_reserved.c create mode 100644 libs/miniupnpc/src/addr_is_reserved.h create mode 100644 libs/miniupnpc/src/codelength.h rename libs/miniupnpc/{ => src}/connecthostport.c (62%) create mode 100644 libs/miniupnpc/src/connecthostport.h rename libs/miniupnpc/{ => src}/igd_desc_parse.c (83%) create mode 100644 libs/miniupnpc/src/listdevices.c rename libs/miniupnpc/{ => src}/minihttptestserver.c (56%) rename libs/miniupnpc/{ => src}/minisoap.c (81%) rename libs/miniupnpc/{ => src}/minisoap.h (51%) create mode 100644 libs/miniupnpc/src/minissdpc.c create mode 100644 libs/miniupnpc/src/minissdpc.h create mode 100644 libs/miniupnpc/src/miniupnpc.c create mode 100644 libs/miniupnpc/src/miniupnpc_socketdef.h rename libs/miniupnpc/{ => src}/miniupnpcmodule.c (61%) rename libs/miniupnpc/{ => src}/miniwget.c (50%) create mode 100644 libs/miniupnpc/src/miniwget_private.h rename libs/miniupnpc/{ => src}/minixml.c (88%) rename libs/miniupnpc/{ => src}/minixml.h (83%) rename libs/miniupnpc/{ => src}/minixmlvalid.c (94%) rename libs/miniupnpc/{ => src}/portlistingparse.c (81%) create mode 100644 libs/miniupnpc/src/receivedata.c create mode 100644 libs/miniupnpc/src/receivedata.h create mode 100644 libs/miniupnpc/src/testaddr_is_reserved.c create mode 100644 libs/miniupnpc/src/testigddescparse.c rename libs/miniupnpc/{ => src}/testminiwget.c (70%) rename libs/miniupnpc/{ => src}/testminixml.c (82%) create mode 100644 libs/miniupnpc/src/testportlistingparse.c create mode 100644 libs/miniupnpc/src/testupnpreplyparse.c rename libs/miniupnpc/{ => src}/upnpc.c (59%) rename libs/miniupnpc/{ => src}/upnpcommands.c (79%) create mode 100644 libs/miniupnpc/src/upnpdev.c rename libs/miniupnpc/{ => src}/upnperrors.c (69%) rename libs/miniupnpc/{ => src}/upnpreplyparse.c (58%) create mode 100644 libs/miniupnpc/src/win32_snprintf.h create mode 100644 libs/miniupnpc/testdesc/linksys_WAG200G_desc.values create mode 100644 libs/miniupnpc/testdesc/linksys_WAG200G_desc.xml create mode 100644 libs/miniupnpc/testdesc/new_LiveBox_desc.values create mode 100644 libs/miniupnpc/testdesc/new_LiveBox_desc.xml delete mode 100644 libs/miniupnpc/testigddescparse.c create mode 100644 libs/miniupnpc/testreplyparse/DeletePortMapping.namevalue create mode 100644 libs/miniupnpc/testreplyparse/DeletePortMapping.xml create mode 100644 libs/miniupnpc/testreplyparse/GetExternalIPAddress.namevalue create mode 100644 libs/miniupnpc/testreplyparse/GetExternalIPAddress.xml create mode 100644 libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryReq.namevalue create mode 100644 libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryReq.xml create mode 100644 libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryResp.namevalue create mode 100644 libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryResp.xml create mode 100644 libs/miniupnpc/testreplyparse/SetDefaultConnectionService.namevalue create mode 100644 libs/miniupnpc/testreplyparse/SetDefaultConnectionService.xml create mode 100644 libs/miniupnpc/testreplyparse/readme.txt delete mode 100644 libs/miniupnpc/testupnpreplyparse.c create mode 100644 libs/miniupnpc/testupnpreplyparse.sh diff --git a/libs/miniupnpc/.gitattributes b/libs/miniupnpc/.gitattributes new file mode 100644 index 0000000000..513fc84912 --- /dev/null +++ b/libs/miniupnpc/.gitattributes @@ -0,0 +1,26 @@ +/*.cmake text=auto +/*.py text=auto +/*.rc -crlf -whitespace +/*.sh text eol=lf +/*.txt text=auto +/CMakeLists.txt text=auto +/LICENSE text=auto +/Makefile text=auto +/Makefile.mingw text=auto +/include/*.h text=auto +/java/*.bat -crlf -whitespace +/java/*.java text=auto +/java/*.sh text eol=lf +/man3/miniupnpc.3 eol=lf +/msvc/*.sln -crlf -whitespace +/msvc/*.vbs -crlf -whitespace +/msvc/*.vcproj -crlf -whitespace +/msvc/*.vcxproj* -crlf -whitespace +/src/*.c text=auto +/src/*.h text=auto +/testdesc/*.values text=auto +/testdesc/*.xml text=auto +/testreplyparse/*.namevalue text=auto +/testreplyparse/*.txt text=auto +/testreplyparse/*.xml text=auto +MANIFEST.in eol=lf diff --git a/libs/miniupnpc/CMakeLists.txt b/libs/miniupnpc/CMakeLists.txt index 082b653a9f..65eb89d08d 100644 --- a/libs/miniupnpc/CMakeLists.txt +++ b/libs/miniupnpc/CMakeLists.txt @@ -1,172 +1,308 @@ -cmake_minimum_required (VERSION 2.6) +cmake_minimum_required(VERSION 3.12 FATAL_ERROR) -project (miniupnpc C) -set (MINIUPNPC_VERSION 1.5) -set (MINIUPNPC_API_VERSION 8) +project (miniupnpc + VERSION 2.2.5 + DESCRIPTION "UPnP IGD client lightweight library" + HOMEPAGE_URL https://miniupnp.tuxfamily.org/ + LANGUAGES C) -if (NOT CMAKE_BUILD_TYPE) - if (WIN32) - set (DEFAULT_BUILD_TYPE MinSizeRel) - else (WIN32) - set (DEFAULT_BUILD_TYPE RelWithDebInfo) - endif(WIN32) - set (CMAKE_BUILD_TYPE ${DEFAULT_BUILD_TYPE} CACHE STRING - "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." - FORCE) -endif() +set (MINIUPNPC_API_VERSION 17) option (UPNPC_BUILD_STATIC "Build static library" TRUE) option (UPNPC_BUILD_SHARED "Build shared library" TRUE) -if (NOT WIN32) - option (UPNPC_BUILD_TESTS "Build test executables" TRUE) -endif (NOT WIN32) +option (UPNPC_BUILD_TESTS "Build test executables" TRUE) +option (UPNPC_BUILD_SAMPLE "Build sample executables" TRUE) option (NO_GETADDRINFO "Define NO_GETADDRINFO" FALSE) +option (UPNPC_NO_INSTALL "Disable installation" FALSE) + +if (NOT UPNPC_BUILD_STATIC AND NOT UPNPC_BUILD_SHARED) + message (FATAL "Both shared and static libraries are disabled!") +endif () -mark_as_advanced (NO_GETADDRINFO) +include(GNUInstallDirs) + +# Interface library for compile definitions, flags and option +add_library(miniupnpc-private INTERFACE) if (NO_GETADDRINFO) - add_definitions (-DNO_GETADDRINFO) -endif (NO_GETADDRINFO) + target_compile_definitions(miniupnpc-private INTERFACE NO_GETADDRINFO) +endif () if (NOT WIN32) - add_definitions (-DMINIUPNPC_SET_SOCKET_TIMEOUT) -else (NOT WIN32) - add_definitions (-D_WIN32_WINNT=0x0501) # XP or higher for getnameinfo and friends -endif (NOT WIN32) + target_compile_definitions(miniupnpc-private INTERFACE + MINIUPNPC_SET_SOCKET_TIMEOUT + _BSD_SOURCE _DEFAULT_SOURCE) + if (NOT APPLE AND NOT CMAKE_SYSTEM_NAME MATCHES ".*BSD" AND NOT CMAKE_SYSTEM_NAME STREQUAL "SunOS") + # add_definitions (-D_POSIX_C_SOURCE=200112L) + target_compile_definitions(miniupnpc-private INTERFACE _XOPEN_SOURCE=600) + endif () + if (CMAKE_SYSTEM_NAME STREQUAL "NetBSD") + target_compile_definitions(miniupnpc-private INTERFACE _NETBSD_SOURCE) + endif () +else () + target_compile_definitions(miniupnpc-private INTERFACE _WIN32_WINNT=0x0501) # XP or higher for getnameinfo and friends +endif () -if (CMAKE_SYSTEM_NAME STREQUAL "Darwin") - add_definitions (-DMACOSX -D_DARWIN_C_SOURCE) +if (APPLE) + target_compile_definitions(miniupnpc-private INTERFACE _DARWIN_C_SOURCE) endif () # Set compiler specific build flags -if (CMAKE_COMPILER_IS_GNUC) - # Set our own default flags at first run. - if (NOT CONFIGURED) - - if (NOT CMAKE_SYSTEM_NAME STREQUAL "AmigaOS") - set (_PIC -fPIC) - endif (CMAKE_SYSTEM_NAME STREQUAL "AmigaOS") - - set (CMAKE_C_FLAGS "${_PIC} -Wall $ENV{CFLAGS}" # CMAKE_C_FLAGS gets appended to the other C flags - CACHE STRING "Flags used by the C compiler during normal builds." FORCE) - set (CMAKE_C_FLAGS_DEBUG "-g -DDDEBUG" - CACHE STRING "Flags used by the C compiler during debug builds." FORCE) - set (CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG" - CACHE STRING "Flags used by the C compiler during release builds." FORCE) - set (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG" - CACHE STRING "Flags used by the C compiler during release builds." FORCE) - set (CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG" - CACHE STRING "Flags used by the C compiler during release builds." FORCE) - - endif (NOT CONFIGURED) +if (CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_SYSTEM_NAME STREQUAL "AmigaOS") + set(CMAKE_POSITION_INDEPENDENT_CODE ON) + target_compile_options(miniupnpc-private INTERFACE -Wall) endif () -configure_file (${CMAKE_SOURCE_DIR}/miniupnpcstrings.h.cmake ${CMAKE_BINARY_DIR}/miniupnpcstrings.h) -include_directories (${CMAKE_BINARY_DIR}) +# Suppress noise warnings +if (MSVC) + target_compile_definitions(miniupnpc-private INTERFACE _CRT_SECURE_NO_WARNINGS _WINSOCK_DEPRECATED_NO_WARNINGS) +endif() + +configure_file (${CMAKE_CURRENT_SOURCE_DIR}/miniupnpcstrings.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/miniupnpcstrings.h) +target_include_directories(miniupnpc-private INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>) set (MINIUPNPC_SOURCES - igd_desc_parse.c - miniupnpc.c - minixml.c - minisoap.c - miniwget.c - upnpc.c - upnpcommands.c - upnpreplyparse.c - upnperrors.c - connecthostport.c - portlistingparse.c + src/igd_desc_parse.c + src/miniupnpc.c + src/minixml.c + src/minisoap.c + src/minissdpc.c + src/miniwget.c + src/upnpcommands.c + src/upnpdev.c + src/upnpreplyparse.c + src/upnperrors.c + src/connecthostport.c + src/portlistingparse.c + src/receivedata.c + src/addr_is_reserved.c + ${CMAKE_CURRENT_BINARY_DIR}/miniupnpcstrings.h ) -if (NOT WIN32 AND NOT CMAKE_SYSTEM_NAME STREQUAL "AmigaOS") - set (MINIUPNPC_SOURCES ${MINIUPNPC_SOURCES} minissdpc.c) -endif (NOT WIN32 AND NOT CMAKE_SYSTEM_NAME STREQUAL "AmigaOS") - if (WIN32) - set_source_files_properties (${MINIUPNPC_SOURCES} PROPERTIES - COMPILE_DEFINITIONS STATICLIB - COMPILE_DEFINITIONS MINIUPNP_EXPORTS - ) -endif (WIN32) - -if (WIN32) - find_library (WINSOCK2_LIBRARY NAMES ws2_32 WS2_32 Ws2_32) - find_library (IPHLPAPI_LIBRARY NAMES iphlpapi) - set (LDLIBS ${WINSOCK2_LIBRARY} ${IPHLPAPI_LIBRARY} ${LDLIBS}) -#elseif (CMAKE_SYSTEM_NAME STREQUAL "Solaris") -# find_library (SOCKET_LIBRARY NAMES socket) -# find_library (NSL_LIBRARY NAMES nsl) -# find_library (RESOLV_LIBRARY NAMES resolv) -# set (LDLIBS ${SOCKET_LIBRARY} ${NSL_LIBRARY} ${RESOLV_LIBRARY} ${LDLIBS}) -endif (WIN32) + target_link_libraries(miniupnpc-private INTERFACE ws2_32 iphlpapi) +elseif (CMAKE_SYSTEM_NAME STREQUAL "SunOS") + target_link_libraries(miniupnpc-private INTERFACE socket nsl resolv) + find_library (SOCKET_LIBRARY NAMES socket) + find_library (NSL_LIBRARY NAMES nsl) + find_library (RESOLV_LIBRARY NAMES resolv) + set (LDLIBS ${SOCKET_LIBRARY} ${NSL_LIBRARY} ${RESOLV_LIBRARY} ${LDLIBS}) +elseif (HAIKU) + target_link_libraries(miniupnpc-private INTERFACE network) + find_library (SOCKET_LIBRARY NAMES network) + find_library (NSL_LIBRARY NAMES network) + find_library (RESOLV_LIBRARY NAMES network) + set (LDLIBS ${SOCKET_LIBRARY} ${NSL_LIBRARY} ${RESOLV_LIBRARY} ${LDLIBS}) +endif () -if (NOT UPNPC_BUILD_STATIC AND NOT UPNPC_BUILD_SHARED) - message (FATAL "Both shared and static libraries are disabled!") -endif (NOT UPNPC_BUILD_STATIC AND NOT UPNPC_BUILD_SHARED) if (UPNPC_BUILD_STATIC) - add_library (upnpc-static STATIC ${MINIUPNPC_SOURCES}) - set_target_properties (upnpc-static PROPERTIES OUTPUT_NAME "miniupnpc") - target_link_libraries (upnpc-static ${LDLIBS}) - set (UPNPC_INSTALL_TARGETS ${UPNPC_INSTALL_TARGETS} upnpc-static) - set (UPNPC_LIBRARY_TARGET upnpc-static) -endif (UPNPC_BUILD_STATIC) + add_library (libminiupnpc-static STATIC ${MINIUPNPC_SOURCES}) + target_include_directories (libminiupnpc-static PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> + $<INSTALL_INTERFACE:include/miniupnpc>) + if (NOT UPNPC_BUILD_SHARED) + add_library (miniupnpc::miniupnpc ALIAS libminiupnpc-static) + endif() + set_target_properties (libminiupnpc-static PROPERTIES EXPORT_NAME miniupnpc) + if (WIN32 AND NOT MINGW) + set_target_properties (libminiupnpc-static PROPERTIES OUTPUT_NAME "libminiupnpc") + else() + set_target_properties (libminiupnpc-static PROPERTIES OUTPUT_NAME "miniupnpc") + endif() + target_link_libraries (libminiupnpc-static PRIVATE miniupnpc-private) + target_include_directories(libminiupnpc-static INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) + target_compile_definitions(libminiupnpc-static PUBLIC MINIUPNP_STATICLIB) + + if (NOT UPNPC_NO_INSTALL) + install (TARGETS miniupnpc-private EXPORT miniupnpc-private) + + install (EXPORT miniupnpc-private + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/miniupnpc" + NAMESPACE miniupnpc::) + + install (TARGETS libminiupnpc-static + EXPORT libminiupnpc-static + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + + install (EXPORT libminiupnpc-static + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/miniupnpc" + NAMESPACE miniupnpc::) + endif() + + if (UPNPC_BUILD_SAMPLE) + add_executable (upnpc-static src/upnpc.c) + target_link_libraries (upnpc-static PRIVATE libminiupnpc-static) + target_include_directories(upnpc-static PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) + if (NOT UPNPC_NO_INSTALL) + install (TARGETS upnpc-static + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif() + endif () +endif () if (UPNPC_BUILD_SHARED) - add_library (upnpc-shared SHARED ${MINIUPNPC_SOURCES}) - set_target_properties (upnpc-shared PROPERTIES OUTPUT_NAME "miniupnpc") - set_target_properties (upnpc-shared PROPERTIES VERSION ${MINIUPNPC_VERSION}) - set_target_properties (upnpc-shared PROPERTIES SOVERSION ${MINIUPNPC_API_VERSION}) - target_link_libraries (upnpc-shared ${LDLIBS}) - set (UPNPC_INSTALL_TARGETS ${UPNPC_INSTALL_TARGETS} upnpc-shared) - set (UPNPC_LIBRARY_TARGET upnpc-shared) -endif (UPNPC_BUILD_SHARED) + add_library (libminiupnpc-shared SHARED ${MINIUPNPC_SOURCES}) + target_include_directories (libminiupnpc-shared PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> + $<INSTALL_INTERFACE:include/miniupnpc>) + add_library (miniupnpc::miniupnpc ALIAS libminiupnpc-shared) + set_target_properties (libminiupnpc-shared PROPERTIES EXPORT_NAME miniupnpc) + set_target_properties (libminiupnpc-shared PROPERTIES OUTPUT_NAME "miniupnpc") + set_target_properties (libminiupnpc-shared PROPERTIES VERSION ${PROJECT_VERSION}) + set_target_properties (libminiupnpc-shared PROPERTIES SOVERSION ${MINIUPNPC_API_VERSION}) + target_link_libraries (libminiupnpc-shared PRIVATE miniupnpc-private) + target_compile_definitions(libminiupnpc-shared PRIVATE MINIUPNP_EXPORTS) + + target_include_directories(libminiupnpc-shared INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) + if (WIN32) + target_link_libraries(libminiupnpc-shared INTERFACE ws2_32 iphlpapi) + endif() + + if (NOT UPNPC_NO_INSTALL) + install (TARGETS libminiupnpc-shared + EXPORT libminiupnpc-shared + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + + install (EXPORT libminiupnpc-shared + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/miniupnpc" + NAMESPACE miniupnpc::) + endif() + + if (UPNPC_BUILD_SAMPLE) + add_executable (upnpc-shared src/upnpc.c) + target_link_libraries (upnpc-shared PRIVATE libminiupnpc-shared) + target_include_directories(upnpc-shared PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) + if (NOT UPNPC_NO_INSTALL) + install (TARGETS upnpc-shared + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif() + endif () + + add_executable (listdevices src/listdevices.c) + target_link_libraries (listdevices PRIVATE libminiupnpc-shared) + target_include_directories(listdevices PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) + if (NOT UPNPC_NO_INSTALL) + install (TARGETS listdevices + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif() +endif () if (UPNPC_BUILD_TESTS) - add_executable (testminixml testminixml.c minixml.c igd_desc_parse.c) - target_link_libraries (testminixml ${LDLIBS}) + add_library(miniupnpc-tests INTERFACE) + target_link_libraries(miniupnpc-tests INTERFACE miniupnpc-private) + target_compile_definitions(miniupnpc-tests INTERFACE MINIUPNP_STATICLIB) - add_executable (minixmlvalid minixmlvalid.c minixml.c) - target_link_libraries (minixmlvalid ${LDLIBS}) + add_executable (testminixml src/testminixml.c src/minixml.c src/igd_desc_parse.c) + target_include_directories (testminixml PRIVATE + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>) + target_link_libraries (testminixml PRIVATE miniupnpc-tests) - add_executable (testupnpreplyparse testupnpreplyparse.c - minixml.c upnpreplyparse.c) - target_link_libraries (testupnpreplyparse ${LDLIBS}) + add_executable (minixmlvalid src/minixmlvalid.c src/minixml.c) + target_link_libraries (minixmlvalid PRIVATE miniupnpc-tests) - add_executable (testigddescparse testigddescparse.c - igd_desc_parse.c minixml.c miniupnpc.c miniwget.c minissdpc.c - upnpcommands.c upnpreplyparse.c minisoap.c connecthostport.c - portlistingparse.c + add_executable (testupnpreplyparse src/testupnpreplyparse.c + src/minixml.c src/upnpreplyparse.c) + target_include_directories (testupnpreplyparse PRIVATE + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>) + target_link_libraries (testupnpreplyparse PRIVATE miniupnpc-tests) + + add_executable (testigddescparse src/testigddescparse.c + src/igd_desc_parse.c src/minixml.c src/miniupnpc.c src/miniwget.c src/minissdpc.c + src/upnpcommands.c src/upnpreplyparse.c src/minisoap.c src/connecthostport.c + src/portlistingparse.c src/receivedata.c src/addr_is_reserved.c + ) + target_include_directories (testigddescparse PRIVATE + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>) + target_link_libraries (testigddescparse PRIVATE miniupnpc-tests) + + add_executable (testminiwget src/testminiwget.c + src/miniwget.c src/miniupnpc.c src/minisoap.c src/upnpcommands.c src/minissdpc.c + src/upnpreplyparse.c src/minixml.c src/igd_desc_parse.c src/connecthostport.c + src/portlistingparse.c src/receivedata.c src/addr_is_reserved.c ) - target_link_libraries (testigddescparse ${LDLIBS}) + target_include_directories (testminiwget PRIVATE + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>) + target_link_libraries (testminiwget PRIVATE miniupnpc-tests) - add_executable (testminiwget testminiwget.c - miniwget.c miniupnpc.c minisoap.c upnpcommands.c minissdpc.c - upnpreplyparse.c minixml.c igd_desc_parse.c connecthostport.c - portlistingparse.c + add_executable (testaddr_is_reserved src/testaddr_is_reserved.c + src/addr_is_reserved.c ) - target_link_libraries (testminiwget ${LDLIBS}) + target_link_libraries (testaddr_is_reserved PRIVATE miniupnpc-tests) + + add_executable (testportlistingparse src/testportlistingparse.c + src/minixml.c src/portlistingparse.c) + target_include_directories (testportlistingparse PRIVATE + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>) + target_link_libraries (testportlistingparse PRIVATE miniupnpc-tests) + + add_executable (minihttptestserver src/minihttptestserver.c) # set (UPNPC_INSTALL_TARGETS ${UPNPC_INSTALL_TARGETS} testminixml minixmlvalid testupnpreplyparse testigddescparse testminiwget) -endif (UPNPC_BUILD_TESTS) + include(CTest) + add_test(NAME validateminixml + COMMAND minixmlvalid) + add_test(NAME validateminiwget + COMMAND ${CMAKE_SOURCE_DIR}/testminiwget.sh) + set_property(TEST validateminiwget + PROPERTY ENVIRONMENT + TESTSERVER=${CMAKE_BINARY_DIR}/minihttptestserver + TESTMINIWGET=${CMAKE_BINARY_DIR}/testminiwget) + add_test(NAME validateupnpreplyparse + COMMAND ${CMAKE_SOURCE_DIR}/testupnpreplyparse.sh + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) + set_property(TEST validateupnpreplyparse + PROPERTY ENVIRONMENT + TESTUPNPREPLYPARSE=${CMAKE_BINARY_DIR}/testupnpreplyparse) + add_test(NAME validateportlistingparse + COMMAND testportlistingparse) + add_test(NAME validateigddescparse1 + COMMAND testigddescparse new_LiveBox_desc.xml new_LiveBox_desc.values + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/testdesc) + add_test(NAME validateigddescparse2 + COMMAND testigddescparse linksys_WAG200G_desc.xml linksys_WAG200G_desc.values + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/testdesc) + add_test(NAME validateaddr_is_reserved + COMMAND testaddr_is_reserved) +endif () -install (TARGETS ${UPNPC_INSTALL_TARGETS} - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib${LIB_SUFFIX} - ARCHIVE DESTINATION lib${LIB_SUFFIX} -) -install (FILES - miniupnpc.h - miniwget.h - upnpcommands.h - igd_desc_parse.h - upnpreplyparse.h - upnperrors.h - declspec.h - DESTINATION include/miniupnpc -) +configure_file(miniupnpc.pc.in miniupnpc.pc @ONLY) + +if (NOT UPNPC_NO_INSTALL) + install (FILES + include/miniupnpc.h + include/miniwget.h + include/upnpcommands.h + include/igd_desc_parse.h + include/upnpreplyparse.h + include/upnperrors.h + include/upnpdev.h + include/miniupnpctypes.h + include/portlistingparse.h + include/miniupnpc_declspec.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/miniupnpc + ) + + install(FILES miniupnpc-config.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/miniupnpc + ) -set (CONFIGURED YES CACHE INTERNAL "") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/miniupnpc.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + ) + + install(FILES man3/miniupnpc.3 + DESTINATION ${CMAKE_INSTALL_MANDIR}/man3 + ) + + install(FILES external-ip.sh + TYPE BIN + ) +endif() -# vim: ts=2:sw=2 +# vim: ts=2:sw=2:expandtab diff --git a/libs/miniupnpc/Changelog.txt b/libs/miniupnpc/Changelog.txt index 70b656498e..595b4f93d0 100644 --- a/libs/miniupnpc/Changelog.txt +++ b/libs/miniupnpc/Changelog.txt @@ -1,6 +1,343 @@ -$Id: Changelog.txt,v 1.152 2011/07/25 18:02:11 nanard Exp $ +$Id: Changelog.txt,v 1.256 2023/06/11 23:23:29 nanard Exp $ miniUPnP client Changelog. +2023/06/05: + GetListOfPortMappings NewStartPort 0 => 1 + +2023/05/30: + CheckPinholeWorking is optional + add 60x errors from UPnP Device Architecture + +2023/01/04: + cmake: install binaries, man pages and external-ip.sh + +VERSION 2.2.4 : released 2022/10/21 + +2022/02/20: + upnpc: use of @ to replace local lan address + +2021/11/09: + python module : Allow to specify the root description url + +VERSION 2.2.3 : released 2021/09/28 + +2021/08/13: + Change directory structure : include/ and src/ directories. + +VERSION 2.2.2 : released 2021/03/03 + +2021/01/15: + miniupnpcmodule.c: throw an exception in UPnP_discover() + +2020/12/30: + Fix usage of IP_MULTICAST_IF with struct ip_mreqn + +VERSION 2.2.1 : released 2020/12/20 + +2020/11/30: + Add miniupnpc.rc for .dll description + +VERSION 2.2.0 : released 2020/11/09 + +2020/09/24: + Check properly for reserved IP addresses + +2020/09/23: + prevent infinite loop in upnpDiscover() + +2020/02/16: + Add Haiku support + +2019/10/22: + testminiwget.sh can use either "ip addr" or "ifconfig -a + +2019/10/13: + fix UPNP_GetValidIGD() when several devices are found + which are reachable from != local address + +2019/08/24: + Allow Remote Host on upnpc command line + fix error 708 description in strupnperror() + +2019/04/05: + Fix memory leak in upnpreplyparse.c with NewPortListing element + +2019/03/10: + connecthostport.c: Code simplification, error trace fix + +2019/01/23: + set timeout for select() in connecthostport() + +2018/10/31: + miniupnpcmodule.c: check return of WSAStartup() + +2018/07/14: + Fix and improve MSVC project : + Add Dll configurations + improve genminiupnpcstrings.vbs + +2018/06/18: + Fixes for windows 64-bits. + +VERSION 2.1 : released 2018/05/07 + +2018/05/07: + CMake Modernize and cleanup CMakeLists.txt + Update MS Visual Studio projects + +2018/04/30: + listdevices: show devices sorted by XML desc URL + +2018/04/26: + Small fix in miniupnpcmodule.c (python module) + Support cross compiling in Makefile.mingw + +2018/04/06: + Use SOCKET type instead of int (for Win64 compilation) + Increments API_VERSION to 17 + +2018/02/22: + Disable usage of MiniSSDPd when using -m option + +2017/12/11: + Fix buffer over run in minixml.c + Fix uninitialized variable access in upnpreplyparse.c + +2017/05/05: + Fix CVE-2017-8798 Thanks to tin/Team OSTStrom + +2016/11/11: + check strlen before memcmp in XML parsing portlistingparse.c + fix build under SOLARIS and CYGWIN + +2016/10/11: + Add python 3 compatibility to IGD test + +VERSION 2.0 : released 2016/04/19 + +2016/01/24: + change miniwget to return HTTP status code + increments API_VERSION to 16 + +2016/01/22: + Improve UPNPIGD_IsConnected() to check if WAN address is not private. + parse HTTP response status line in miniwget.c + +2015/10/26: + snprintf() overflow check. check overflow in simpleUPnPcommand2() + +2015/10/25: + fix compilation with old macs + fix compilation with mingw32 (for Appveyor) + fix python module for python <= 2.3 + +2015/10/08: + Change sameport to localport + see https://github.com/miniupnp/miniupnp/pull/120 + increments API_VERSION to 15 + +2015/09/15: + Fix buffer overflow in igd_desc_parse.c/IGDstartelt() + Discovered by Aleksandar Nikolic of Cisco Talos + +2015/08/28: + move ssdpDiscoverDevices() to minissdpc.c + +2015/08/27: + avoid unix socket leak in getDevicesFromMiniSSDPD() + +2015/08/16: + Also accept "Up" as ConnectionStatus value + +2015/07/23: + split getDevicesFromMiniSSDPD + add ttl argument to upnpDiscover() functions + increments API_VERSION to 14 + +2015/07/22: + Read USN from SSDP messages. + +2015/07/15: + Check malloc/calloc + +2015/06/16: + update getDevicesFromMiniSSDPD() to process longer minissdpd + responses + +2015/05/22: + add searchalltypes param to upnpDiscoverDevices() + increments API_VERSION to 13 + +2015/04/30: + upnpc: output version on the terminal + +2015/04/27: + _BSD_SOURCE is deprecated in favor of _DEFAULT_SOURCE + fix CMakeLists.txt COMPILE_DEFINITIONS + fix getDevicesFromMiniSSDPD() not setting scope_id + improve -r command of upnpc command line tool + +2014/11/17: + search all : + upnpDiscoverDevices() / upnpDiscoverAll() functions + listdevices executable + increment API_VERSION to 12 + validate igd_desc_parse + +2014/11/13: + increment API_VERSION to 11 + +2014/11/05: + simplified function GetUPNPUrls() + +2014/09/11: + use remoteHost arg of DeletePortMapping + +2014/09/06: + Fix python3 build + +2014/07/01: + Fix parsing of IGD2 root descriptions + +2014/06/10: + rename LIBSPEC to MINIUPNP_LIBSPEC + +2014/05/15: + Add support for IGD2 AddAnyPortMapping and DeletePortMappingRange + +2014/02/05: + handle EINPROGRESS after connect() + +2014/02/03: + minixml now handle XML comments + +VERSION 1.9 : released 2014/01/31 + +2014/01/31: + added argument remoteHost to UPNP_GetSpecificPortMappingEntry() + increment API_VERSION to 10 + +2013/12/09: + --help and -h arguments in upnpc.c + +2013/10/07: + fixed potential buffer overrun in miniwget.c + Modified UPNP_GetValidIGD() to check for ExternalIpAddress + +2013/08/01: + define MAXHOSTNAMELEN if not already done + +2013/06/06: + update upnpreplyparse to allow larger values (128 chars instead of 64) + +2013/05/14: + Update upnpreplyparse to take into account "empty" elements + validate upnpreplyparse.c code with "make check" + +2013/05/03: + Fix Solaris build thanks to Maciej Małecki + +2013/04/27: + Fix testminiwget.sh for BSD + +2013/03/23: + Fixed Makefile for *BSD + +2013/03/11: + Update Makefile to use JNAerator version 0.11 + +2013/02/11: + Fix testminiwget.sh for use with dash + Use $(DESTDIR) in Makefile + +VERSION 1.8 : released 2013/02/06 + +2012/10/16: + fix testminiwget with no IPv6 support + +2012/09/27: + Rename all include guards to not clash with C99 + (7.1.3 Reserved identifiers). + +2012/08/30: + Added -e option to upnpc program (set description for port mappings) + +2012/08/29: + Python 3 support (thanks to Christopher Foo) + +2012/08/11: + Fix a memory link in UPNP_GetValidIGD() + Try to handle scope id in link local IPv6 URL under MS Windows + +2012/07/20: + Disable HAS_IP_MREQN on DragonFly BSD + +2012/06/28: + GetUPNPUrls() now inserts scope into link-local IPv6 addresses + +2012/06/23: + More error return checks in upnpc.c + #define MINIUPNPC_GET_SRC_ADDR enables receivedata() to get scope_id + parseURL() now parses IPv6 addresses scope + new parameter for miniwget() : IPv6 address scope + increment API_VERSION to 9 + +2012/06/20: + fixed CMakeLists.txt + +2012/05/29 + Improvements in testminiwget.sh + +VERSION 1.7 : released 2012/05/24 + +2012/05/01: + Cleanup settings of CFLAGS in Makefile + Fix signed/unsigned integer comparaisons + +2012/04/20: + Allow to specify protocol with TCP or UDP for -A option + +2012/04/09: + Only try to fetch XML description once in UPNP_GetValidIGD() + Added -ansi flag to compilation, and fixed C++ comments to ANSI C comments. + +2012/04/05: + minor improvements to minihttptestserver.c + +2012/03/15: + upnperrors.c returns valid error string for unrecognized error codes + +2012/03/08: + make minihttptestserver listen on loopback interface instead of 0.0.0.0 + +2012/01/25: + Maven installation thanks to Alexey Kuznetsov + +2012/01/21: + Replace WIN32 macro by _WIN32 + +2012/01/19: + Fixes in java wrappers thanks to Alexey Kuznetsov : + https://github.com/axet/miniupnp/tree/fix-javatest/miniupnpc + Make and install .deb packages (python) thanks to Alexey Kuznetsov : + https://github.com/axet/miniupnp/tree/feature-debbuild/miniupnpc + +2012/01/07: + The multicast interface can now be specified by name with IPv4. + +2012/01/02: + Install man page + +2011/11/25: + added header to Port Mappings list in upnpc.c + +2011/10/09: + Makefile : make clean now removes jnaerator generated files. + MINIUPNPC_VERSION in miniupnpc.h (updated by make) + +2011/09/12: + added rootdescURL to UPNPUrls structure. + VERSION 1.6 : released 2011/07/25 2011/07/25: @@ -236,7 +573,7 @@ VERSION 1.2 : small modif to make Clang happy :) 2008/07/17: - #define SOAPPREFIX "s" in miniupnpc.c in order to remove SOAP-ENV... + #define SOAPPREFIX "s" in miniupnpc.c in order to remove SOAP-ENV... 2008/07/14: include declspec.h in installation (to /usr/include/miniupnpc) @@ -258,7 +595,7 @@ VERSION 1.1 : improved python module error/exception reporting. 2008/04/23: - Completely rewrite igd_desc_parse.c in order to be compatible with + Completely rewrite igd_desc_parse.c in order to be compatible with Linksys WAG200G Added testigddescparse updated python module @@ -281,7 +618,7 @@ VERSION 1.0 : improved make install :) 2007/12/22: - Adding upnperrors.c/h to provide a strupnperror() function + Adding upnperrors.c/h to provide a strupnperror() function used to translate UPnP error codes to string. 2007/12/19: @@ -363,7 +700,7 @@ VERSION 1.0 : upnpc now displays external ip address with -s or -l 2007/04/11: - changed MINIUPNPC_URL_MAXSIZE to 128 to accomodate the "BT Voyager 210" + changed MINIUPNPC_URL_MAXSIZE to 128 to accommodate the "BT Voyager 210" 2007/03/19: cleanup in miniwget.c diff --git a/libs/miniupnpc/LICENSE b/libs/miniupnpc/LICENSE index 2434c86e40..6eff8d2683 100644 --- a/libs/miniupnpc/LICENSE +++ b/libs/miniupnpc/LICENSE @@ -1,27 +1,29 @@ -MiniUPnPc -Copyright (c) 2005-2011, Thomas BERNARD +BSD 3-Clause License + +Copyright (c) 2005-2023, Thomas BERNARD All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/libs/miniupnpc/MANIFEST.in b/libs/miniupnpc/MANIFEST.in index 54b86f95e3..84102e7285 100644 --- a/libs/miniupnpc/MANIFEST.in +++ b/libs/miniupnpc/MANIFEST.in @@ -1,5 +1,10 @@ include README -include miniupnpcmodule.c +include VERSION +include LICENSE +include src/miniupnpcmodule.c include setup.py -include *.h -include libminiupnpc.a +include Makefile +include src/*.[ch] +include include/*.h +include *.h.in +include *.sh diff --git a/libs/miniupnpc/Makefile b/libs/miniupnpc/Makefile index 2f46e6d198..a19363ad5c 100644 --- a/libs/miniupnpc/Makefile +++ b/libs/miniupnpc/Makefile @@ -1,214 +1,396 @@ -# $Id: Makefile,v 1.81 2011/06/21 15:24:14 nanard Exp $ +# $Id: Makefile,v 1.148 2022/10/19 22:46:06 nanard Exp $ # MiniUPnP Project # http://miniupnp.free.fr/ -# (c) 2005-2011 Thomas Bernard +# https://miniupnp.tuxfamily.org/ +# https://github.com/miniupnp/miniupnp +# (c) 2005-2022 Thomas Bernard # to install use : -# $ PREFIX=/tmp/dummylocation make install +# $ make DESTDIR=/tmp/dummylocation install # or # $ INSTALLPREFIX=/usr/local make install -# or -# make install (will go to /usr/bin, /usr/lib, etc...) -OS = $(shell uname -s) +# or +# $ make install (default INSTALLPREFIX is /usr) +OS = $(shell $(CC) -dumpmachine) +VERSION = $(shell cat VERSION) + +ifneq (, $(findstring darwin, $(OS))) +JARSUFFIX=mac +LIBTOOL ?= $(shell which libtool) +endif +ifneq (, $(findstring linux, $(OS))) +JARSUFFIX=linux +endif +ifneq (, $(findstring mingw, $(OS))$(findstring cygwin, $(OS))$(findstring msys, $(OS))) +JARSUFFIX=win32 +endif + +HAVE_IPV6 ?= yes +export HAVE_IPV6 + +# directories +INCDIR = include +SRCDIR = src +BUILD = build + CC ?= gcc #AR = gar -#CFLAGS = -O -Wall -g -DDEBUG -CFLAGS ?= -O -Wall -DNDEBUG -DMINIUPNPC_SET_SOCKET_TIMEOUT -Wstrict-prototypes -# -DNO_GETADDRINFO +#CFLAGS = -O -g +# to debug : +ASANFLAGS = -fsanitize=address -fsanitize=undefined -fsanitize=leak +#CFLAGS = -g -ggdb -O0 $(ASANFLAGS) -fno-omit-frame-pointer +#CPPFLAGS += -DDEBUG +#LDFLAGS += $(ASANFLAGS) +CFLAGS ?= -O +CFLAGS += -Wall +CFLAGS += -W -Wstrict-prototypes +CFLAGS += -fno-common +CPPFLAGS += -I$(BUILD) +CPPFLAGS += -DMINIUPNPC_SET_SOCKET_TIMEOUT +CPPFLAGS += -DMINIUPNPC_GET_SRC_ADDR +CPPFLAGS += -D_BSD_SOURCE +CPPFLAGS += -D_DEFAULT_SOURCE +ifneq (, $(findstring netbsd, $(OS))) +CPPFLAGS += -D_NETBSD_SOURCE +endif +ifeq (, $(findstring freebsd, $(OS))$(findstring darwin, $(OS))) +#CPPFLAGS += -D_POSIX_C_SOURCE=200112L +CPPFLAGS += -D_XOPEN_SOURCE=600 +endif +#CFLAGS += -ansi +#CPPFLAGS += -DNO_GETADDRINFO + +DEPFLAGS = -MM -MG + +MKDIR = mkdir -p INSTALL = install SH = /bin/sh JAVA = java # see http://code.google.com/p/jnaerator/ -JNAERATOR = jnaerator-0.9.3.jar -#following libs are needed on Solaris -#LDLIBS=-lsocket -lnsl -lresolv +#JNAERATOR = jnaerator-0.9.7.jar +#JNAERATOR = jnaerator-0.9.8-shaded.jar +#JNAERATORARGS = -library miniupnpc +#JNAERATOR = jnaerator-0.10-shaded.jar +#JNAERATOR = jnaerator-0.11-shaded.jar +# https://repo1.maven.org/maven2/com/nativelibs4java/jnaerator/0.12/jnaerator-0.12-shaded.jar +JNAERATOR = jnaerator-0.12-shaded.jar +JNAERATORARGS = -mode StandaloneJar -runtime JNAerator -library miniupnpc +#JNAERATORBASEURL = http://jnaerator.googlecode.com/files/ +JNAERATORBASEURL = https://repo1.maven.org/maven2/com/nativelibs4java/jnaerator/0.12 + +ifneq (, $(findstring sun, $(OS))$(findstring solaris, $(OS))) + LDLIBS=-lsocket -lnsl -lresolv + CPPFLAGS += -D__EXTENSIONS__ + CFLAGS += -std=c99 +endif # APIVERSION is used to build SONAME -APIVERSION = 8 +APIVERSION = 17 -SRCS = igd_desc_parse.c miniupnpc.c minixml.c minisoap.c miniwget.c \ - upnpc.c upnpcommands.c upnpreplyparse.c testminixml.c \ - minixmlvalid.c testupnpreplyparse.c minissdpc.c \ - upnperrors.c testigddescparse.c testminiwget.c \ - connecthostport.c portlistringparse.c receivedata.c +SRCS = $(wildcard $(SRCDIR)/*.c) -LIBOBJS = miniwget.o minixml.o igd_desc_parse.o minisoap.o \ +LIBOBJS = $(addprefix $(BUILD)/,miniwget.o minixml.o igd_desc_parse.o minisoap.o \ miniupnpc.o upnpreplyparse.o upnpcommands.o upnperrors.o \ - connecthostport.o portlistingparse.o receivedata.o + connecthostport.o portlistingparse.o receivedata.o upnpdev.o \ + addr_is_reserved.o) -ifneq ($(OS), AmigaOS) -CFLAGS := -fPIC $(CFLAGS) -LIBOBJS := $(LIBOBJS) minissdpc.o -endif +BUILDINCLUDES = $(addprefix $(BUILD)/, miniupnpcstrings.h) -OBJS = $(patsubst %.c,%.o,$(SRCS)) +OBJS = $(patsubst $(SRCDIR)/%.c,$(BUILD)/%.o,$(SRCS)) +DEPS = $(patsubst $(SRCDIR)/%.c,$(BUILD)/%.d,$(SRCS)) # HEADERS to install -HEADERS = miniupnpc.h miniwget.h upnpcommands.h igd_desc_parse.h \ - upnpreplyparse.h upnperrors.h miniupnpctypes.h \ - portlistingparse.h \ - declspec.h +CPPFLAGS += -I$(INCDIR) +HEADERS = $(wildcard $(INCDIR)/*.h) # library names -LIBRARY = libminiupnpc.a -ifeq ($(OS), Darwin) - SHAREDLIBRARY = libminiupnpc.dylib - SONAME = $(basename $(SHAREDLIBRARY)).$(APIVERSION).dylib - CFLAGS := -DMACOSX -D_DARWIN_C_SOURCE $(CFLAGS) -else - SHAREDLIBRARY = libminiupnpc.so - SONAME = $(SHAREDLIBRARY).$(APIVERSION) +LIBRARY = $(BUILD)/libminiupnpc.a +ifneq (, $(findstring darwin, $(OS))) + SHAREDLIBRARY = $(BUILD)/libminiupnpc.dylib + SONAME = $(notdir $(basename $(SHAREDLIBRARY))).$(APIVERSION).dylib + CPPFLAGS += -D_DARWIN_C_SOURCE +else +ifeq ($(JARSUFFIX), win32) + SHAREDLIBRARY = $(BUILD)/miniupnpc.dll +else + # Linux/BSD/etc. + SHAREDLIBRARY = $(BUILD)/libminiupnpc.so + SONAME = $(notdir $(SHAREDLIBRARY)).$(APIVERSION) endif +endif + +EXECUTABLES = $(addprefix $(BUILD)/, upnpc-static listdevices) +EXECUTABLES_ADDTESTS = $(addprefix $(BUILD)/, testminixml minixmlvalid \ + testupnpreplyparse testigddescparse testminiwget testportlistingparse) -EXECUTABLES = upnpc-static -EXECUTABLES_ADDTESTS = testminixml minixmlvalid testupnpreplyparse \ - testigddescparse testminiwget +TESTMINIXMLOBJS = $(addprefix $(BUILD)/, minixml.o igd_desc_parse.o testminixml.o) -TESTMINIXMLOBJS = minixml.o igd_desc_parse.o testminixml.o +TESTMINIWGETOBJS = $(addprefix $(BUILD)/, miniwget.o testminiwget.o connecthostport.o receivedata.o) -TESTMINIWGETOBJS = miniwget.o testminiwget.o connecthostport.o receivedata.o +TESTUPNPREPLYPARSE = $(addprefix $(BUILD)/, testupnpreplyparse.o minixml.o upnpreplyparse.o) -TESTUPNPREPLYPARSE = testupnpreplyparse.o minixml.o upnpreplyparse.o +TESTPORTLISTINGPARSE = $(addprefix $(BUILD)/, testportlistingparse.o minixml.o portlistingparse.o) -TESTIGDDESCPARSE = testigddescparse.o igd_desc_parse.o minixml.o \ +TESTADDR_IS_RESERVED = $(addprefix $(BUILD)/, testaddr_is_reserved.o addr_is_reserved.o) + +TESTIGDDESCPARSE = $(addprefix $(BUILD)/, testigddescparse.o igd_desc_parse.o minixml.o \ miniupnpc.o miniwget.o upnpcommands.o upnpreplyparse.o \ minisoap.o connecthostport.o receivedata.o \ - portlistingparse.o + portlistingparse.o addr_is_reserved.o) -ifneq ($(OS), AmigaOS) -EXECUTABLES := $(EXECUTABLES) upnpc-shared -TESTMINIWGETOBJS := $(TESTMINIWGETOBJS) minissdpc.o -TESTIGDDESCPARSE := $(TESTIGDDESCPARSE) minissdpc.o +ifeq (, $(findstring amiga, $(OS))) +ifeq (, $(findstring mingw, $(OS))$(findstring cygwin, $(OS))$(findstring msys, $(OS))) +CFLAGS += -fPIC +endif +EXECUTABLES += $(BUILD)/upnpc-shared +TESTMINIWGETOBJS += $(BUILD)/minissdpc.o +TESTIGDDESCPARSE += $(BUILD)/minissdpc.o +LIBOBJS += $(BUILD)/minissdpc.o endif +LIBDIR ?= lib # install directories -INSTALLPREFIX ?= $(PREFIX)/usr +ifeq ($(strip $(PREFIX)),) +INSTALLPREFIX ?= /usr +else +INSTALLPREFIX ?= $(PREFIX) +endif INSTALLDIRINC = $(INSTALLPREFIX)/include/miniupnpc -INSTALLDIRLIB = $(INSTALLPREFIX)/lib +INSTALLDIRLIB = $(INSTALLPREFIX)/$(LIBDIR) INSTALLDIRBIN = $(INSTALLPREFIX)/bin +INSTALLDIRMAN = $(INSTALLPREFIX)/share/man +PKGCONFIGDIR = $(INSTALLDIRLIB)/pkgconfig FILESTOINSTALL = $(LIBRARY) $(EXECUTABLES) -ifneq ($(OS), AmigaOS) -FILESTOINSTALL := $(FILESTOINSTALL) $(SHAREDLIBRARY) +ifeq (, $(findstring amiga, $(OS))) +FILESTOINSTALL += $(SHAREDLIBRARY) $(BUILD)/miniupnpc.pc endif -.PHONY: install clean depend all check everything \ - installpythonmodule -# validateminixml validateminiwget +.PHONY: install clean depend all check test everything \ + installpythonmodule updateversion all: $(LIBRARY) $(EXECUTABLES) -check: validateminixml validateminiwget +test: check + +check: validateminixml validateminiwget validateupnpreplyparse \ + validateportlistingparse validateigddescparse validateaddr_is_reserved everything: all $(EXECUTABLES_ADDTESTS) -pythonmodule: $(LIBRARY) miniupnpcmodule.c setup.py - python setup.py build +pythonmodule: $(LIBRARY) $(SRCDIR)/miniupnpcmodule.c setup.py + MAKE=$(MAKE) python setup.py build touch $@ installpythonmodule: pythonmodule - python setup.py install + MAKE=$(MAKE) python setup.py install + +pythonmodule3: $(LIBRARY) $(SRCDIR)/miniupnpcmodule.c setup.py + MAKE=$(MAKE) python3 setup.py build + touch $@ -validateminixml: minixmlvalid +installpythonmodule3: pythonmodule3 + MAKE=$(MAKE) python3 setup.py install + +validateminixml: $(BUILD)/minixmlvalid @echo "minixml validation test" - ./minixmlvalid + ./$< touch $@ -validateminiwget: testminiwget minihttptestserver testminiwget.sh +validateminiwget: testminiwget.sh $(BUILD)/testminiwget $(BUILD)/minihttptestserver @echo "miniwget validation test" - ./testminiwget.sh + ./$< + touch $@ + +validateupnpreplyparse: testupnpreplyparse.sh $(BUILD)/testupnpreplyparse + @echo "upnpreplyparse validation test" + ./$< + touch $@ + +validateportlistingparse: $(BUILD)/testportlistingparse + @echo "portlistingparse validation test" + ./$< + touch $@ + +validateigddescparse: $(BUILD)/testigddescparse + @echo "igd desc parse validation test" + ./$< testdesc/new_LiveBox_desc.xml testdesc/new_LiveBox_desc.values + ./$< testdesc/linksys_WAG200G_desc.xml testdesc/linksys_WAG200G_desc.values + touch $@ + +validateaddr_is_reserved: $(BUILD)/testaddr_is_reserved + @echo "addr_is_reserved() validation test" + ./$< touch $@ clean: - $(RM) $(LIBRARY) $(SHAREDLIBRARY) $(EXECUTABLES) $(OBJS) miniupnpcstrings.h + $(RM) $(LIBRARY) $(SHAREDLIBRARY) $(EXECUTABLES) $(OBJS) $(BUILDINCLUDES) + $(RM) $(EXECUTABLES_ADDTESTS) # clean python stuff - $(RM) pythonmodule validateminixml + $(RM) pythonmodule pythonmodule3 + $(RM) validateminixml validateminiwget validateupnpreplyparse + $(RM) validateigddescparse + $(RM) minihttptestserver + $(RM) testaddr_is_reserved $(RM) -r build/ dist/ #python setup.py clean - -install: $(FILESTOINSTALL) - $(INSTALL) -d $(INSTALLDIRINC) - $(INSTALL) -m 644 $(HEADERS) $(INSTALLDIRINC) - $(INSTALL) -d $(INSTALLDIRLIB) - $(INSTALL) -m 644 $(LIBRARY) $(INSTALLDIRLIB) -ifneq ($(OS), AmigaOS) - $(INSTALL) -m 644 $(SHAREDLIBRARY) $(INSTALLDIRLIB)/$(SONAME) - ln -fs $(SONAME) $(INSTALLDIRLIB)/$(SHAREDLIBRARY) -endif - $(INSTALL) -d $(INSTALLDIRBIN) -ifeq ($(OS), AmigaOS) - $(INSTALL) -m 755 upnpc-static $(INSTALLDIRBIN)/upnpc + # clean jnaerator stuff + $(RM) _jnaerator.* java/miniupnpc_$(OS).jar + +distclean: clean + $(RM) $(JNAERATOR) java/*.jar java/*.class out.errors.txt + +updateversion: include/miniupnpc.h + cp $< $<.bak + sed 's/\(.*MINIUPNPC_API_VERSION\s\+\)[0-9]\+/\1$(APIVERSION)/' < $<.bak > $< + +install: updateversion $(FILESTOINSTALL) + $(INSTALL) -d $(DESTDIR)$(INSTALLDIRINC) + $(INSTALL) -m 644 $(HEADERS) $(DESTDIR)$(INSTALLDIRINC) + $(INSTALL) -d $(DESTDIR)$(INSTALLDIRLIB) + $(INSTALL) -m 644 $(LIBRARY) $(DESTDIR)$(INSTALLDIRLIB) +ifeq (, $(findstring amiga, $(OS))) + $(INSTALL) -m 644 $(SHAREDLIBRARY) $(DESTDIR)$(INSTALLDIRLIB)/$(SONAME) + ln -fs $(SONAME) $(DESTDIR)$(INSTALLDIRLIB)/$(notdir $(SHAREDLIBRARY)) + $(INSTALL) -d $(DESTDIR)$(PKGCONFIGDIR) + $(INSTALL) -m 644 $(BUILD)/miniupnpc.pc $(DESTDIR)$(PKGCONFIGDIR) +endif + $(INSTALL) -d $(DESTDIR)$(INSTALLDIRBIN) +ifneq (, $(findstring amiga, $(OS))) + $(INSTALL) -m 755 $(BUILD)/upnpc-static $(DESTDIR)$(INSTALLDIRBIN)/upnpc else - $(INSTALL) -m 755 upnpc-shared $(INSTALLDIRBIN)/upnpc + $(INSTALL) -m 755 $(BUILD)/upnpc-shared $(DESTDIR)$(INSTALLDIRBIN)/upnpc +endif + $(INSTALL) -m 755 external-ip.sh $(DESTDIR)$(INSTALLDIRBIN)/external-ip +ifeq (, $(findstring amiga, $(OS))) + $(INSTALL) -d $(DESTDIR)$(INSTALLDIRMAN)/man3 + $(INSTALL) -m 644 man3/miniupnpc.3 $(DESTDIR)$(INSTALLDIRMAN)/man3/miniupnpc.3 +ifneq (, $(findstring linux, $(OS))) + gzip -f $(DESTDIR)$(INSTALLDIRMAN)/man3/miniupnpc.3 +endif endif - $(INSTALL) -m 755 external-ip.sh $(INSTALLDIRBIN)/external-ip -cleaninstall: - $(RM) -r $(INSTALLDIRINC) - $(RM) $(INSTALLDIRLIB)/$(LIBRARY) - $(RM) $(INSTALLDIRLIB)/$(SHAREDLIBRARY) +install-static: updateversion $(FILESTOINSTALL) + $(INSTALL) -d $(DESTDIR)$(INSTALLDIRINC) + $(INSTALL) -m 644 $(HEADERS) $(DESTDIR)$(INSTALLDIRINC) + $(INSTALL) -d $(DESTDIR)$(INSTALLDIRLIB) + $(INSTALL) -m 644 $(LIBRARY) $(DESTDIR)$(INSTALLDIRLIB) + $(INSTALL) -d $(DESTDIR)$(INSTALLDIRBIN) + $(INSTALL) -m 755 external-ip.sh $(DESTDIR)$(INSTALLDIRBIN)/external-ip -depend: - makedepend -Y -- $(CFLAGS) -- $(SRCS) 2>/dev/null +cleaninstall: + $(RM) -r $(DESTDIR)$(INSTALLDIRINC) + $(RM) $(DESTDIR)$(INSTALLDIRLIB)/$(LIBRARY) + $(RM) $(DESTDIR)$(INSTALLDIRLIB)/$(SHAREDLIBRARY) + +$(BUILD)/miniupnpc.pc: VERSION + @$(MKDIR) $(@D) + $(RM) $@ + echo "prefix=$(INSTALLPREFIX)" >> $@ + echo "exec_prefix=\$${prefix}" >> $@ + echo "libdir=\$${exec_prefix}/$(LIBDIR)" >> $@ + echo "includedir=\$${prefix}/include" >> $@ + echo "" >> $@ + echo "Name: miniUPnPc" >> $@ + echo "Description: UPnP IGD client lightweight library" >> $@ + echo "URL: https://miniupnp.tuxfamily.org/" >> $@ + echo "Version: $(VERSION)" >> $@ + echo "Libs: -L\$${libdir} -lminiupnpc" >> $@ + echo "Cflags: -I\$${includedir}" >> $@ + +depend: $(DEPS) $(LIBRARY): $(LIBOBJS) +ifneq (, $(findstring darwin, $(OS))) + $(LIBTOOL) -static -o $@ $? +else $(AR) crs $@ $? +endif $(SHAREDLIBRARY): $(LIBOBJS) -ifeq ($(OS), Darwin) - $(CC) -dynamiclib $(LDFLAGS) -Wl,-install_name,$(SONAME) -o $@ $^ +ifneq (, $(findstring darwin, $(OS))) +# $(CC) -dynamiclib $(LDFLAGS) -Wl,-install_name,$(SONAME) -o $@ $^ + $(CC) -dynamiclib $(LDFLAGS) -Wl,-install_name,$(INSTALLDIRLIB)/$(SONAME) -o $@ $^ else $(CC) -shared $(LDFLAGS) -Wl,-soname,$(SONAME) -o $@ $^ endif -upnpc-static: upnpc.o $(LIBRARY) $(LDLIBS) - $(CC) $(LDFLAGS) -o $@ $^ +$(BUILD)/%.o: $(SRCDIR)/%.c $(BUILD)/%.d + $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< -upnpc-shared: upnpc.o $(SHAREDLIBRARY) $(LDLIBS) - $(CC) $(LDFLAGS) -o $@ $^ +$(DEPS): $(BUILDINCLUDES) -testminixml: $(TESTMINIXMLOBJS) +$(BUILD)/%.d: $(SRCDIR)/%.c + @$(MKDIR) $(@D) + $(CC) $(CPPFLAGS) $(DEPFLAGS) -MT $@ -o $@ $< -testminiwget: $(TESTMINIWGETOBJS) +$(BUILD)/upnpc-static: $(BUILD)/upnpc.o $(LIBRARY) + $(CC) $(LDFLAGS) -o $@ $^ $(LOADLIBES) $(LDLIBS) -minixmlvalid: minixml.o minixmlvalid.o +$(BUILD)/upnpc-shared: $(BUILD)/upnpc.o $(SHAREDLIBRARY) + $(CC) $(LDFLAGS) -o $@ $^ $(LOADLIBES) $(LDLIBS) -testupnpreplyparse: $(TESTUPNPREPLYPARSE) +$(BUILD)/listdevices: $(BUILD)/listdevices.o $(LIBRARY) -testigddescparse: $(TESTIGDDESCPARSE) +$(BUILD)/testminixml: $(TESTMINIXMLOBJS) -miniupnpcstrings.h: miniupnpcstrings.h.in updateminiupnpcstrings.sh - $(SH) updateminiupnpcstrings.sh +$(BUILD)/testminiwget: $(TESTMINIWGETOBJS) -jar: $(SHAREDLIBRARY) - $(JAVA) -jar $(JNAERATOR) -library miniupnpc miniupnpc.h declspec.h upnpcommands.h upnpreplyparse.h igd_desc_parse.h miniwget.h upnperrors.h $(SHAREDLIBRARY) -package fr.free.miniupnp -o . -jar java/miniupnpc_$(OS).jar -v +$(BUILD)/minixmlvalid: $(addprefix $(BUILD)/, minixml.o minixmlvalid.o) + +$(BUILD)/testupnpreplyparse: $(TESTUPNPREPLYPARSE) + +$(BUILD)/testigddescparse: $(TESTIGDDESCPARSE) + +$(BUILD)/testportlistingparse: $(TESTPORTLISTINGPARSE) + +$(BUILD)/testaddr_is_reserved: $(TESTADDR_IS_RESERVED) + +$(BUILD)/miniupnpcstrings.h: miniupnpcstrings.h.in updateminiupnpcstrings.sh VERSION + @$(MKDIR) $(@D) + $(SH) updateminiupnpcstrings.sh $@ $< + +# ftp tool supplied with OpenBSD can download files from http. +jnaerator-%.jar: + wget $(JNAERATORBASEURL)/$@ || \ + curl -o $@ $(JNAERATORBASEURL)/$@ || \ + ftp $(JNAERATORBASEURL)/$@ + +jar: $(SHAREDLIBRARY) $(JNAERATOR) + $(JAVA) -jar $(JNAERATOR) $(JNAERATORARGS) \ + miniupnpc.h miniupnpc_declspec.h upnpcommands.h upnpreplyparse.h \ + igd_desc_parse.h miniwget.h upnperrors.h $(SHAREDLIBRARY) \ + -package fr.free.miniupnp -o . -jar java/miniupnpc_$(JARSUFFIX).jar -v + +mvn_install: + mvn install:install-file -Dfile=java/miniupnpc_$(JARSUFFIX).jar \ + -DgroupId=com.github \ + -DartifactId=miniupnp \ + -Dversion=$(VERSION) \ + -Dpackaging=jar \ + -Dclassifier=$(JARSUFFIX) \ + -DgeneratePom=true \ + -DcreateChecksum=true + +# make .deb packages +deb: /usr/share/pyshared/stdeb all + (python setup.py --command-packages=stdeb.command bdist_deb) + +# install .deb packages +ideb: + (sudo dpkg -i deb_dist/*.deb) + +/usr/share/pyshared/stdeb: /usr/share/doc/python-all-dev + (sudo apt-get install python-stdeb) + +/usr/share/doc/python-all-dev: + (sudo apt-get install python-all-dev) minihttptestserver: minihttptestserver.o -# DO NOT DELETE THIS LINE -- make depend depends on it. - -igd_desc_parse.o: igd_desc_parse.h -miniupnpc.o: miniupnpc.h declspec.h igd_desc_parse.h minissdpc.h miniwget.h -miniupnpc.o: minisoap.h minixml.h upnpcommands.h upnpreplyparse.h -miniupnpc.o: portlistingparse.h miniupnpctypes.h connecthostport.h -miniupnpc.o: receivedata.h -minixml.o: minixml.h -minisoap.o: minisoap.h miniupnpcstrings.h -miniwget.o: miniupnpcstrings.h miniwget.h declspec.h connecthostport.h -miniwget.o: receivedata.h -upnpc.o: miniwget.h declspec.h miniupnpc.h igd_desc_parse.h upnpcommands.h -upnpc.o: upnpreplyparse.h portlistingparse.h miniupnpctypes.h upnperrors.h -upnpcommands.o: upnpcommands.h upnpreplyparse.h portlistingparse.h declspec.h -upnpcommands.o: miniupnpctypes.h miniupnpc.h igd_desc_parse.h -upnpreplyparse.o: upnpreplyparse.h minixml.h -testminixml.o: minixml.h igd_desc_parse.h -minixmlvalid.o: minixml.h -testupnpreplyparse.o: upnpreplyparse.h -minissdpc.o: minissdpc.h miniupnpc.h declspec.h igd_desc_parse.h codelength.h -upnperrors.o: upnperrors.h declspec.h upnpcommands.h upnpreplyparse.h -upnperrors.o: portlistingparse.h miniupnpctypes.h miniupnpc.h -upnperrors.o: igd_desc_parse.h -testigddescparse.o: igd_desc_parse.h minixml.h miniupnpc.h declspec.h -testminiwget.o: miniwget.h declspec.h -connecthostport.o: connecthostport.h -receivedata.o: receivedata.h +print-%: + @echo "$* = $($*)" + +ifneq ($(MAKECMDGOALS),clean) +-include $(DEPS) +endif diff --git a/libs/miniupnpc/Makefile.mingw b/libs/miniupnpc/Makefile.mingw index 2b66211a75..8c7f1c1cb4 100644 --- a/libs/miniupnpc/Makefile.mingw +++ b/libs/miniupnpc/Makefile.mingw @@ -1,93 +1,181 @@ -# $Id: Makefile.mingw,v 1.16 2011/04/18 17:39:31 nanard Exp $ +# $Id: Makefile.mingw,v 1.35 2022/10/16 05:28:15 nanard Exp $ # Miniupnp project. -# http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ -# (c) 2005-2011 Thomas Bernard +# http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ +# (c) 2005-2020 Thomas Bernard # This Makefile is made for MinGW # -CC = gcc +# To cross compile on a *nix machine : +# make -f Makefile.mingw DLLWRAP=mingw32-dllwrap CC=mingw32-gcc AR=mingw32-ar WINDRES=mingw32-windres +# +SRCDIR = src +INCDIR = include + +CC ?= gcc +SETUP_COMPILER_FLAG?= DLLWRAP = dllwrap -#CFLAGS = -Wall -g -DDEBUG -D_WIN32_WINNT=0X501 -CFLAGS = -Wall -Os -DNDEBUG -D_WIN32_WINNT=0X501 -LDLIBS = -lws2_32 -liphlpapi +WINDRES = windres SH = /bin/sh -# -lwsock32 -# -liphlpapi is used for GetBestRoute() +ZIP = zip +ifeq ($(OS),Windows_NT) +RM = del +else +RM = rm -f +endif + +CFLAGS ?= -Os +CFLAGS += -Wall +CFLAGS += -W -Wstrict-prototypes + +CPPFLAGS += -DNDEBUG -D_WIN32_WINNT=0x501 +CPPFLAGS += -Iinclude +CPPFLAGS += -I. + +# -liphlpapi is needed for GetBestRoute() and GetIpAddrTable() +LDLIBS = -lws2_32 -liphlpapi + PYTHON=\utils\python25\python OBJS=miniwget.o minixml.o igd_desc_parse.o minisoap.o \ + minissdpc.o \ miniupnpc.o upnpreplyparse.o upnpcommands.o upnperrors.o \ - connecthostport.o portlistingparse.o receivedata.o -OBJSDLL=$(addprefix dll/, $(OBJS)) - -all: init upnpc-static upnpc-shared testminixml libminiupnpc.a miniupnpc.dll - -init: - mkdir dll - echo init > init + connecthostport.o portlistingparse.o receivedata.o \ + upnpdev.o addr_is_reserved.o +OBJSDLL=$(addprefix dll-, $(OBJS)) winres.o +BINARIES=upnpc-static.exe upnpc-shared.exe \ + listdevices-static.exe listdevices-shared.exe \ + miniupnpc.dll libminiupnpc.a \ + testminixml.exe +ifneq ($(GITHUB_SHA),) +COMMITREF=$(GITHUB_SHA) +else +ifneq ($(CI_COMMIT_SHORT_SHA),) +COMMITREF=$(CI_COMMIT_SHORT_SHA) +else +COMMITREF=$(shell git rev-parse --short HEAD) +endif +endif +DISTFILE:=$(shell echo "miniupnpc-bin-win32-`cat VERSION`-$(COMMITREF).zip") + +LIBDIR ?= lib +# install directories +ifeq ($(strip $(PREFIX)),) +INSTALLPREFIX ?= /usr +else +INSTALLPREFIX ?= $(PREFIX) +endif + +.PHONY: all dist clean + +all: $(BINARIES) + +dist: $(DISTFILE) clean: - $(RM) upnpc testminixml *.o - $(RM) dll\*.o + $(RM) miniupnpcstrings.h + $(RM) *.o $(RM) *.exe - $(RM) miniupnpc.dll + $(RM) miniupnpc.dll miniupnpc.lib miniupnpc.dll.def $(RM) libminiupnpc.a + $(RM) $(DISTFILE) + +$(DISTFILE): $(BINARIES) + $(ZIP) $@ *.exe *.dll *.lib *.def *.a LICENSE README Changelog.txt libminiupnpc.a: $(OBJS) $(AR) cr $@ $? pythonmodule: libminiupnpc.a - $(PYTHON) setupmingw32.py build --compiler=mingw32 + $(PYTHON) setupmingw32.py build $(SETUP_COMPILER_FLAG) $(PYTHON) setupmingw32.py install --skip-build + $(PYTHON) setupmingw32.py bdist_wheel --skip-build -miniupnpc.dll: libminiupnpc.a $(OBJSDLL) - $(DLLWRAP) -k --driver-name "$(CC)" \ +miniupnpc.dll: miniupnpc.def $(OBJSDLL) + $(DLLWRAP) -k --driver-name $(CC) \ --def miniupnpc.def \ --output-def miniupnpc.dll.def \ --implib miniupnpc.lib -o $@ \ $(OBJSDLL) $(LDLIBS) miniupnpc.lib: miniupnpc.dll - echo $@ generated with $< -dll/upnpc.o: upnpc.o - echo $@ generated with $< +%.o: $(SRCDIR)/%.c + $(CC) $(CFLAGS) $(CPPFLAGS) -DMINIUPNP_STATICLIB -c -o $@ $< -.c.o: - $(CC) $(CFLAGS) $(CPPFLAGS) -DSTATICLIB -c -o $@ $< - $(CC) $(CFLAGS) $(CPPFLAGS) -DMINIUPNP_EXPORTS -c -o dll/$@ $< +dll-%.o: $(SRCDIR)/%.c + $(CC) $(CFLAGS) $(CPPFLAGS) -DMINIUPNP_EXPORTS -c -o $@ $< -upnpc.o: - $(CC) $(CFLAGS) $(CPPFLAGS) -DSTATICLIB -c -o $@ $< - $(CC) $(CFLAGS) $(CPPFLAGS) -c -o dll/$@ $< +%-shared.o: $(SRCDIR)/%.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< -upnpc-static: upnpc.o libminiupnpc.a - $(CC) -o $@ $^ $(LDLIBS) +# --enable-stdcall-fixup +%-static.exe: %.o libminiupnpc.a + $(CC) -static -o $@ $^ $(LDLIBS) -upnpc-shared: dll/upnpc.o miniupnpc.lib +%-shared.exe: %-shared.o miniupnpc.lib $(CC) -o $@ $^ $(LDLIBS) -wingenminiupnpcstrings: wingenminiupnpcstrings.o +# To make miniupnpcstrings.h from miniupnpcstrings.h.in we either +# use a custom executable (if running make under windows) or use +# sed (if cross compiling from another platform). +ifeq ($(OS),Windows_NT) +wingenminiupnpcstrings.exe: wingenminiupnpcstrings.c + $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ + +miniupnpcstrings.h: miniupnpcstrings.h.in wingenminiupnpcstrings.exe VERSION + .\wingenminiupnpcstrings.exe $< $@ rc_version.h + +rc_version.h: miniupnpcstrings.h +else +miniupnpcstrings.h: miniupnpcstrings.h.in VERSION + sed 's|OS_STRING ".*"|OS_STRING "Windows/Mingw32"|' $< | \ + sed 's|MINIUPNPC_VERSION_STRING ".*"|MINIUPNPC_VERSION_STRING "$(shell cat VERSION)"|' > $@ + +rc_version.h: VERSION + echo "#define LIBMINIUPNPC_DOTTED_VERSION \"$(shell cat VERSION)\"" > $@.tmp + echo "#define LIBMINIUPNPC_MAJOR_VERSION $(shell cat VERSION|cut -d. -f1)" >> $@.tmp + echo "#define LIBMINIUPNPC_MINOR_VERSION $(shell cat VERSION|cut -d. -f2)" >> $@.tmp + echo "#define LIBMINIUPNPC_MICRO_VERSION $(shell cat VERSION|cut -d. -f3)" >> $@.tmp + mv $@.tmp $@ +endif + +miniupnpc.pc: VERSION + $(RM) $@ + echo "prefix=$(INSTALLPREFIX)" >> $@ + echo "exec_prefix=\$${prefix}" >> $@ + echo "libdir=\$${exec_prefix}/$(LIBDIR)" >> $@ + echo "includedir=\$${prefix}/include" >> $@ + echo "" >> $@ + echo "Name: miniUPnPc" >> $@ + echo "Description: UPnP IGD client lightweight library" >> $@ + echo "Version: $(shell cat VERSION)" >> $@ + echo "Libs: -L\$${libdir} -lminiupnpc" >> $@ + echo "Cflags: -I\$${includedir}" >> $@ + +winres.o: miniupnpc.rc rc_version.h + $(WINDRES) -D INTERNAL_NAME=\\\"miniupnpc.dll\\0\\\" -i $< -o $@ -wingenminiupnpcstrings.o: wingenminiupnpcstrings.c +testminixml.exe: testminixml.o minixml.o igd_desc_parse.o + $(CC) -static -o $@ $^ -miniupnpcstrings.h: miniupnpcstrings.h.in wingenminiupnpcstrings - -$(SH) updateminiupnpcstrings.sh - -wingenminiupnpcstrings $< $@ +minixml.o: $(SRCDIR)/minixml.c $(SRCDIR)/minixml.h -minixml.o: minixml.c minixml.h miniupnpcstrings.h +upnpc.o: include/miniwget.h $(SRCDIR)/minisoap.h include/miniupnpc.h include/igd_desc_parse.h +upnpc.o: include/upnpreplyparse.h include/upnpcommands.h include/upnperrors.h miniupnpcstrings.h -upnpc.o: upnpc.c miniwget.h minisoap.h miniupnpc.h igd_desc_parse.h upnpreplyparse.h upnpcommands.h upnperrors.h +miniwget.o: $(SRCDIR)/miniwget.c include/miniwget.h miniupnpcstrings.h $(SRCDIR)/connecthostport.h -miniwget.o: miniwget.c miniwget.h miniupnpcstrings.h connecthostport.h +minisoap.o: $(SRCDIR)/minisoap.c $(SRCDIR)/minisoap.h miniupnpcstrings.h -minisoap.o: minisoap.c minisoap.h miniupnpcstrings.h +miniupnpc.o: $(SRCDIR)/miniupnpc.c include/miniupnpc.h $(SRCDIR)/minisoap.h \ + include/miniwget.h $(SRCDIR)/minixml.h $(SRCDIR)/addr_is_reserved.h -miniupnpc.o: miniupnpc.c miniupnpc.h minisoap.h miniwget.h minixml.h +igd_desc_parse.o: $(SRCDIR)/igd_desc_parse.c include/igd_desc_parse.h -igd_desc_parse.o: igd_desc_parse.c igd_desc_parse.h +upnpreplyparse.o: $(SRCDIR)/upnpreplyparse.c include/upnpreplyparse.h $(SRCDIR)/minixml.h -testminixml: minixml.o igd_desc_parse.o testminixml.c +upnpcommands.o: $(SRCDIR)/upnpcommands.c include/upnpcommands.h include/upnpreplyparse.h \ + include/miniupnpc.h include/portlistingparse.h -upnpreplyparse.o: upnpreplyparse.c upnpreplyparse.h minixml.h +minissdpc.o: $(SRCDIR)/minissdpc.c $(SRCDIR)/minissdpc.h $(SRCDIR)/receivedata.h -upnpcommands.o: upnpcommands.c upnpcommands.h upnpreplyparse.h miniupnpc.h portlistingparse.h +upnpdev.o: $(SRCDIR)/upnpdev.c include/upnpdev.h diff --git a/libs/miniupnpc/README b/libs/miniupnpc/README index 12c7fed354..aa8ad2024a 100644 --- a/libs/miniupnpc/README +++ b/libs/miniupnpc/README @@ -1,18 +1,20 @@ Project: miniupnp -Project web page: http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ +Project web page: http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ +github: https://github.com/miniupnp/miniupnp Author: Thomas Bernard -Copyright (c) 2005-2011 Thomas Bernard +Copyright (c) 2005-2023 Thomas Bernard This software is subject to the conditions detailed in the LICENSE file provided within this distribution. -For the comfort of Win32 users, bsdqueue.h is included in the distribution. -Its licence is included in the header of the file. -bsdqueue.h is a copy of the sys/queue.h of an OpenBSD system. -* miniupnp Client * +* miniUPnP Client - miniUPnPc * To compile, simply run 'gmake' (could be 'make' on your system). Under win32, to compile with MinGW, type "mingw32make.bat". +MS Visual C solution and project files are supplied in the msvc/ subdirectory. +The miniupnpc library is available as a static library or as a DLL : +define MINIUPNP_STATICLIB if you want to link against the static library. + The compilation is known to work under linux, FreeBSD, OpenBSD, MacOS X, AmigaOS and cygwin. The official AmigaOS4.1 SDK was used for AmigaOS4 and GeekGadgets for AmigaOS3. @@ -23,7 +25,7 @@ To install the library and headers on the system use : > make install > exit -alternatively, to install in a specific location, use : +alternatively, to install into a specific location, use : > INSTALLPREFIX=/usr/local make install upnpc.c is a sample client using the libminiupnpc. @@ -31,6 +33,7 @@ To use the libminiupnpc in your application, link it with libminiupnpc.a (or .so) and use the following functions found in miniupnpc.h, upnpcommands.h and miniwget.h : - upnpDiscover() +- UPNP_GetValidIGD() - miniwget() - parserootdesc() - GetUPNPUrls() @@ -41,9 +44,10 @@ and -lminiupnpc for the link Discovery process is speeded up when MiniSSDPd is running on the machine. + * Python module * -you can build a python module with 'make pythonmodule' +you can build a python module with 'make pythonmodule' and install it with 'make installpythonmodule'. setup.py (and setupmingw32.py) are included in the distribution. @@ -55,5 +59,34 @@ If you are using libminiupnpc in your application, please send me an email ! For any question, you can use the web forum : -http://miniupnp.tuxfamily.org/forum/ +https://miniupnp.tuxfamily.org/forum/ + +Bugs should be reported on GitHub : +https://github.com/miniupnp/miniupnp/issues + +* Linux firewall configuration for UPnP clients * + +Due to how UPnP protocol is designed, unicast responses to UPnP multicast client +requests are not tracked by Linux netfilter. And therefore netfilter executes +default action for them (which is in most cases DROP response packet). + +To workaround this limitation, custom ipset hash table can be used. It is +supported since Linux kernel >= 2.6.39. + +Rules for IPv4: +$ ipset create upnp hash:ip,port timeout 3 +$ iptables -A OUTPUT -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j SET --add-set upnp src,src --exist +$ iptables -A INPUT -p udp -m set --match-set upnp dst,dst -j ACCEPT +$ iptables -A INPUT -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ACCEPT + +Rules for IPv6: +$ ipset create upnp6 hash:ip,port timeout 3 family inet6 +$ ip6tables -A OUTPUT -d ff02::c/128 -p udp -m udp --dport 1900 -j SET --add-set upnp6 src,src --exist +$ ip6tables -A OUTPUT -d ff05::c/128 -p udp -m udp --dport 1900 -j SET --add-set upnp6 src,src --exist +$ ip6tables -A INPUT -p udp -m set --match-set upnp6 dst,dst -j ACCEPT +$ ip6tables -A INPUT -d ff02::c/128 -p udp -m udp --dport 1900 -j ACCEPT +$ ip6tables -A INPUT -d ff05::c/128 -p udp -m udp --dport 1900 -j ACCEPT +Detailed description is available on: +https://serverfault.com/a/911286 +https://unix.stackexchange.com/a/444804 diff --git a/libs/miniupnpc/VERSION b/libs/miniupnpc/VERSION index 810ee4e91e..21bb5e156f 100644 --- a/libs/miniupnpc/VERSION +++ b/libs/miniupnpc/VERSION @@ -1 +1 @@ -1.6 +2.2.5 diff --git a/libs/miniupnpc/apiversions.txt b/libs/miniupnpc/apiversions.txt new file mode 100644 index 0000000000..d6a0bc3fc3 --- /dev/null +++ b/libs/miniupnpc/apiversions.txt @@ -0,0 +1,178 @@ +$Id: apiversions.txt,v 1.10 2018/04/06 10:53:13 nanard Exp $ + +Differences in API between miniUPnPc versions + +API version 17 + change struct UPNPDev + move getHTTPResponse() to miniwget_private.h + updated macro : + #define MINIUPNPC_API_VERSION 17 + +API version 16 + added "status_code" argument to getHTTPResponse(), miniwget() and miniwget_getaddr() + updated macro : + #define MINIUPNPC_API_VERSION 16 + +API version 15 + changed "sameport" argument of upnpDiscover() upnpDiscoverAll() upnpDiscoverDevice() + to "localport". When 0 or 1, behaviour is not changed, but it can take + any other value between 2 and 65535 + Existing programs should be compatible + updated macro : + #define MINIUPNPC_API_VERSION 15 + +API version 14 +miniupnpc.h + add ttl argument to upnpDiscover() upnpDiscoverAll() upnpDiscoverDevice() + upnpDiscoverDevices() + getDevicesFromMiniSSDPD() : + connectToMiniSSDPD() / disconnectFromMiniSSDPD() + requestDevicesFromMiniSSDPD() / receiveDevicesFromMiniSSDPD() + updated macro : + #define MINIUPNPC_API_VERSION 14 + +API version 13 +miniupnpc.h: + add searchalltype param to upnpDiscoverDevices() function + updated macro : + #define MINIUPNPC_API_VERSION 13 + +API version 12 +miniupnpc.h : + add upnpDiscoverAll() / upnpDiscoverDevice() / upnpDiscoverDevices() + functions + updated macros : + #define MINIUPNPC_API_VERSION 12 + +API version 11 + +upnpreplyparse.h / portlistingparse.h : + removed usage of sys/queue.h / bsdqueue.h + +miniupnpc.h: + updated macros : + #define MINIUPNPC_API_VERSION 11 + +====================== miniUPnPc version 1.9 ====================== +API version 10 + +upnpcommands.h: + added argument remoteHost to UPNP_GetSpecificPortMappingEntry() + +miniupnpc.h: + updated macros : + #define MINIUPNPC_VERSION "1.9" + #define MINIUPNPC_API_VERSION 10 + +====================== miniUPnPc version 1.8 ====================== +API version 9 + +miniupnpc.h: + updated macros : + #define MINIUPNPC_VERSION "1.8" + #define MINIUPNPC_API_VERSION 9 + added "unsigned int scope_id;" to struct UPNPDev + added scope_id argument to GetUPNPUrls() + + + +====================== miniUPnPc version 1.7 ====================== +API version 8 + +miniupnpc.h : + add new macros : + #define MINIUPNPC_VERSION "1.7" + #define MINIUPNPC_API_VERSION 8 + add rootdescURL to struct UPNPUrls + + + +====================== miniUPnPc version 1.6 ====================== +API version 8 + +Adding support for IPv6. +igd_desc_parse.h : + struct IGDdatas_service : + add char presentationurl[MINIUPNPC_URL_MAXSIZE]; + struct IGDdatas : + add struct IGDdatas_service IPv6FC; +miniupnpc.h : + new macros : + #define UPNPDISCOVER_SUCCESS (0) + #define UPNPDISCOVER_UNKNOWN_ERROR (-1) + #define UPNPDISCOVER_SOCKET_ERROR (-101) + #define UPNPDISCOVER_MEMORY_ERROR (-102) + simpleUPnPcommand() prototype changed (but is normaly not used by API users) + add arguments ipv6 and error to upnpDiscover() : + struct UPNPDev * + upnpDiscover(int delay, const char * multicastif, + const char * minissdpdsock, int sameport, + int ipv6, + int * error); + add controlURL_6FC member to struct UPNPUrls : + struct UPNPUrls { + char * controlURL; + char * ipcondescURL; + char * controlURL_CIF; + char * controlURL_6FC; + }; + +upnpcommands.h : + add leaseDuration argument to UPNP_AddPortMapping() + add desc, enabled and leaseDuration arguments to UPNP_GetSpecificPortMappingEntry() + add UPNP_GetListOfPortMappings() function (IGDv2) + add IGDv2 IPv6 related functions : + UPNP_GetFirewallStatus() + UPNP_GetOutboundPinholeTimeout() + UPNP_AddPinhole() + UPNP_UpdatePinhole() + UPNP_DeletePinhole() + UPNP_CheckPinholeWorking() + UPNP_GetPinholePackets() + + + +====================== miniUPnPc version 1.5 ====================== +API version 5 + +new function : +int UPNPIGD_IsConnected(struct UPNPUrls *, struct IGDdatas *); +new macro in upnpcommands.h : +#define UPNPCOMMAND_HTTP_ERROR + +====================== miniUPnPc version 1.4 ====================== +Same API as version 1.3 + +====================== miniUPnPc version 1.3 ====================== +API version 4 + +Use UNSIGNED_INTEGER type for +UPNP_GetTotalBytesSent(), UPNP_GetTotalBytesReceived(), +UPNP_GetTotalPacketsSent(), UPNP_GetTotalPacketsReceived() +Add remoteHost argument to UPNP_AddPortMapping() and UPNP_DeletePortMapping() + +====================== miniUPnPc version 1.2 ====================== +API version 3 + +added sameport argument to upnpDiscover() +struct UPNPDev * +upnpDiscover(int delay, const char * multicastif, + const char * minissdpdsock, int sameport); + +====================== miniUPnPc Version 1.1 ====================== +Same API as 1.0 + + +====================== miniUPnPc Version 1.0 ====================== +API version 2 + + +struct UPNPDev { + struct UPNPDev * pNext; + char * descURL; + char * st; + char buffer[2]; +}; +struct UPNPDev * upnpDiscover(int delay, const char * multicastif, + const char * minissdpdsock); + diff --git a/libs/miniupnpc/bsdqueue.h b/libs/miniupnpc/bsdqueue.h deleted file mode 100644 index 1fe0599f50..0000000000 --- a/libs/miniupnpc/bsdqueue.h +++ /dev/null @@ -1,531 +0,0 @@ -/* $OpenBSD: queue.h,v 1.31 2005/11/25 08:06:25 otto Exp $ */ -/* $NetBSD: queue.h,v 1.11 1996/05/16 05:17:14 mycroft Exp $ */ - -/* - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)queue.h 8.5 (Berkeley) 8/20/94 - */ - -#ifndef _SYS_QUEUE_H_ -#define _SYS_QUEUE_H_ - -/* - * This file defines five types of data structures: singly-linked lists, - * lists, simple queues, tail queues, and circular queues. - * - * - * A singly-linked list is headed by a single forward pointer. The elements - * are singly linked for minimum space and pointer manipulation overhead at - * the expense of O(n) removal for arbitrary elements. New elements can be - * added to the list after an existing element or at the head of the list. - * Elements being removed from the head of the list should use the explicit - * macro for this purpose for optimum efficiency. A singly-linked list may - * only be traversed in the forward direction. Singly-linked lists are ideal - * for applications with large datasets and few or no removals or for - * implementing a LIFO queue. - * - * A list is headed by a single forward pointer (or an array of forward - * pointers for a hash table header). The elements are doubly linked - * so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list before - * or after an existing element or at the head of the list. A list - * may only be traversed in the forward direction. - * - * A simple queue is headed by a pair of pointers, one the head of the - * list and the other to the tail of the list. The elements are singly - * linked to save space, so elements can only be removed from the - * head of the list. New elements can be added to the list before or after - * an existing element, at the head of the list, or at the end of the - * list. A simple queue may only be traversed in the forward direction. - * - * A tail queue is headed by a pair of pointers, one to the head of the - * list and the other to the tail of the list. The elements are doubly - * linked so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list before or - * after an existing element, at the head of the list, or at the end of - * the list. A tail queue may be traversed in either direction. - * - * A circle queue is headed by a pair of pointers, one to the head of the - * list and the other to the tail of the list. The elements are doubly - * linked so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list before or after - * an existing element, at the head of the list, or at the end of the list. - * A circle queue may be traversed in either direction, but has a more - * complex end of list detection. - * - * For details on the use of these macros, see the queue(3) manual page. - */ - -#ifdef QUEUE_MACRO_DEBUG -#define _Q_INVALIDATE(a) (a) = ((void *)-1) -#else -#define _Q_INVALIDATE(a) -#endif - -/* - * Singly-linked List definitions. - */ -#define SLIST_HEAD(name, type) \ -struct name { \ - struct type *slh_first; /* first element */ \ -} - -#define SLIST_HEAD_INITIALIZER(head) \ - { NULL } - -#ifdef SLIST_ENTRY -#undef SLIST_ENTRY -#endif - -#define SLIST_ENTRY(type) \ -struct { \ - struct type *sle_next; /* next element */ \ -} - -/* - * Singly-linked List access methods. - */ -#define SLIST_FIRST(head) ((head)->slh_first) -#define SLIST_END(head) NULL -#define SLIST_EMPTY(head) (SLIST_FIRST(head) == SLIST_END(head)) -#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) - -#define SLIST_FOREACH(var, head, field) \ - for((var) = SLIST_FIRST(head); \ - (var) != SLIST_END(head); \ - (var) = SLIST_NEXT(var, field)) - -#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ - for ((varp) = &SLIST_FIRST((head)); \ - ((var) = *(varp)) != SLIST_END(head); \ - (varp) = &SLIST_NEXT((var), field)) - -/* - * Singly-linked List functions. - */ -#define SLIST_INIT(head) { \ - SLIST_FIRST(head) = SLIST_END(head); \ -} - -#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ - (elm)->field.sle_next = (slistelm)->field.sle_next; \ - (slistelm)->field.sle_next = (elm); \ -} while (0) - -#define SLIST_INSERT_HEAD(head, elm, field) do { \ - (elm)->field.sle_next = (head)->slh_first; \ - (head)->slh_first = (elm); \ -} while (0) - -#define SLIST_REMOVE_NEXT(head, elm, field) do { \ - (elm)->field.sle_next = (elm)->field.sle_next->field.sle_next; \ -} while (0) - -#define SLIST_REMOVE_HEAD(head, field) do { \ - (head)->slh_first = (head)->slh_first->field.sle_next; \ -} while (0) - -#define SLIST_REMOVE(head, elm, type, field) do { \ - if ((head)->slh_first == (elm)) { \ - SLIST_REMOVE_HEAD((head), field); \ - } else { \ - struct type *curelm = (head)->slh_first; \ - \ - while (curelm->field.sle_next != (elm)) \ - curelm = curelm->field.sle_next; \ - curelm->field.sle_next = \ - curelm->field.sle_next->field.sle_next; \ - _Q_INVALIDATE((elm)->field.sle_next); \ - } \ -} while (0) - -/* - * List definitions. - */ -#define LIST_HEAD(name, type) \ -struct name { \ - struct type *lh_first; /* first element */ \ -} - -#define LIST_HEAD_INITIALIZER(head) \ - { NULL } - -#define LIST_ENTRY(type) \ -struct { \ - struct type *le_next; /* next element */ \ - struct type **le_prev; /* address of previous next element */ \ -} - -/* - * List access methods - */ -#define LIST_FIRST(head) ((head)->lh_first) -#define LIST_END(head) NULL -#define LIST_EMPTY(head) (LIST_FIRST(head) == LIST_END(head)) -#define LIST_NEXT(elm, field) ((elm)->field.le_next) - -#define LIST_FOREACH(var, head, field) \ - for((var) = LIST_FIRST(head); \ - (var)!= LIST_END(head); \ - (var) = LIST_NEXT(var, field)) - -/* - * List functions. - */ -#define LIST_INIT(head) do { \ - LIST_FIRST(head) = LIST_END(head); \ -} while (0) - -#define LIST_INSERT_AFTER(listelm, elm, field) do { \ - if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \ - (listelm)->field.le_next->field.le_prev = \ - &(elm)->field.le_next; \ - (listelm)->field.le_next = (elm); \ - (elm)->field.le_prev = &(listelm)->field.le_next; \ -} while (0) - -#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ - (elm)->field.le_prev = (listelm)->field.le_prev; \ - (elm)->field.le_next = (listelm); \ - *(listelm)->field.le_prev = (elm); \ - (listelm)->field.le_prev = &(elm)->field.le_next; \ -} while (0) - -#define LIST_INSERT_HEAD(head, elm, field) do { \ - if (((elm)->field.le_next = (head)->lh_first) != NULL) \ - (head)->lh_first->field.le_prev = &(elm)->field.le_next;\ - (head)->lh_first = (elm); \ - (elm)->field.le_prev = &(head)->lh_first; \ -} while (0) - -#define LIST_REMOVE(elm, field) do { \ - if ((elm)->field.le_next != NULL) \ - (elm)->field.le_next->field.le_prev = \ - (elm)->field.le_prev; \ - *(elm)->field.le_prev = (elm)->field.le_next; \ - _Q_INVALIDATE((elm)->field.le_prev); \ - _Q_INVALIDATE((elm)->field.le_next); \ -} while (0) - -#define LIST_REPLACE(elm, elm2, field) do { \ - if (((elm2)->field.le_next = (elm)->field.le_next) != NULL) \ - (elm2)->field.le_next->field.le_prev = \ - &(elm2)->field.le_next; \ - (elm2)->field.le_prev = (elm)->field.le_prev; \ - *(elm2)->field.le_prev = (elm2); \ - _Q_INVALIDATE((elm)->field.le_prev); \ - _Q_INVALIDATE((elm)->field.le_next); \ -} while (0) - -/* - * Simple queue definitions. - */ -#define SIMPLEQ_HEAD(name, type) \ -struct name { \ - struct type *sqh_first; /* first element */ \ - struct type **sqh_last; /* addr of last next element */ \ -} - -#define SIMPLEQ_HEAD_INITIALIZER(head) \ - { NULL, &(head).sqh_first } - -#define SIMPLEQ_ENTRY(type) \ -struct { \ - struct type *sqe_next; /* next element */ \ -} - -/* - * Simple queue access methods. - */ -#define SIMPLEQ_FIRST(head) ((head)->sqh_first) -#define SIMPLEQ_END(head) NULL -#define SIMPLEQ_EMPTY(head) (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head)) -#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next) - -#define SIMPLEQ_FOREACH(var, head, field) \ - for((var) = SIMPLEQ_FIRST(head); \ - (var) != SIMPLEQ_END(head); \ - (var) = SIMPLEQ_NEXT(var, field)) - -/* - * Simple queue functions. - */ -#define SIMPLEQ_INIT(head) do { \ - (head)->sqh_first = NULL; \ - (head)->sqh_last = &(head)->sqh_first; \ -} while (0) - -#define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ - if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \ - (head)->sqh_last = &(elm)->field.sqe_next; \ - (head)->sqh_first = (elm); \ -} while (0) - -#define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ - (elm)->field.sqe_next = NULL; \ - *(head)->sqh_last = (elm); \ - (head)->sqh_last = &(elm)->field.sqe_next; \ -} while (0) - -#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ - if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\ - (head)->sqh_last = &(elm)->field.sqe_next; \ - (listelm)->field.sqe_next = (elm); \ -} while (0) - -#define SIMPLEQ_REMOVE_HEAD(head, field) do { \ - if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \ - (head)->sqh_last = &(head)->sqh_first; \ -} while (0) - -/* - * Tail queue definitions. - */ -#define TAILQ_HEAD(name, type) \ -struct name { \ - struct type *tqh_first; /* first element */ \ - struct type **tqh_last; /* addr of last next element */ \ -} - -#define TAILQ_HEAD_INITIALIZER(head) \ - { NULL, &(head).tqh_first } - -#define TAILQ_ENTRY(type) \ -struct { \ - struct type *tqe_next; /* next element */ \ - struct type **tqe_prev; /* address of previous next element */ \ -} - -/* - * tail queue access methods - */ -#define TAILQ_FIRST(head) ((head)->tqh_first) -#define TAILQ_END(head) NULL -#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) -#define TAILQ_LAST(head, headname) \ - (*(((struct headname *)((head)->tqh_last))->tqh_last)) -/* XXX */ -#define TAILQ_PREV(elm, headname, field) \ - (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) -#define TAILQ_EMPTY(head) \ - (TAILQ_FIRST(head) == TAILQ_END(head)) - -#define TAILQ_FOREACH(var, head, field) \ - for((var) = TAILQ_FIRST(head); \ - (var) != TAILQ_END(head); \ - (var) = TAILQ_NEXT(var, field)) - -#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ - for((var) = TAILQ_LAST(head, headname); \ - (var) != TAILQ_END(head); \ - (var) = TAILQ_PREV(var, headname, field)) - -/* - * Tail queue functions. - */ -#define TAILQ_INIT(head) do { \ - (head)->tqh_first = NULL; \ - (head)->tqh_last = &(head)->tqh_first; \ -} while (0) - -#define TAILQ_INSERT_HEAD(head, elm, field) do { \ - if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \ - (head)->tqh_first->field.tqe_prev = \ - &(elm)->field.tqe_next; \ - else \ - (head)->tqh_last = &(elm)->field.tqe_next; \ - (head)->tqh_first = (elm); \ - (elm)->field.tqe_prev = &(head)->tqh_first; \ -} while (0) - -#define TAILQ_INSERT_TAIL(head, elm, field) do { \ - (elm)->field.tqe_next = NULL; \ - (elm)->field.tqe_prev = (head)->tqh_last; \ - *(head)->tqh_last = (elm); \ - (head)->tqh_last = &(elm)->field.tqe_next; \ -} while (0) - -#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ - if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\ - (elm)->field.tqe_next->field.tqe_prev = \ - &(elm)->field.tqe_next; \ - else \ - (head)->tqh_last = &(elm)->field.tqe_next; \ - (listelm)->field.tqe_next = (elm); \ - (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \ -} while (0) - -#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ - (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ - (elm)->field.tqe_next = (listelm); \ - *(listelm)->field.tqe_prev = (elm); \ - (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \ -} while (0) - -#define TAILQ_REMOVE(head, elm, field) do { \ - if (((elm)->field.tqe_next) != NULL) \ - (elm)->field.tqe_next->field.tqe_prev = \ - (elm)->field.tqe_prev; \ - else \ - (head)->tqh_last = (elm)->field.tqe_prev; \ - *(elm)->field.tqe_prev = (elm)->field.tqe_next; \ - _Q_INVALIDATE((elm)->field.tqe_prev); \ - _Q_INVALIDATE((elm)->field.tqe_next); \ -} while (0) - -#define TAILQ_REPLACE(head, elm, elm2, field) do { \ - if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != NULL) \ - (elm2)->field.tqe_next->field.tqe_prev = \ - &(elm2)->field.tqe_next; \ - else \ - (head)->tqh_last = &(elm2)->field.tqe_next; \ - (elm2)->field.tqe_prev = (elm)->field.tqe_prev; \ - *(elm2)->field.tqe_prev = (elm2); \ - _Q_INVALIDATE((elm)->field.tqe_prev); \ - _Q_INVALIDATE((elm)->field.tqe_next); \ -} while (0) - -/* - * Circular queue definitions. - */ -#define CIRCLEQ_HEAD(name, type) \ -struct name { \ - struct type *cqh_first; /* first element */ \ - struct type *cqh_last; /* last element */ \ -} - -#define CIRCLEQ_HEAD_INITIALIZER(head) \ - { CIRCLEQ_END(&head), CIRCLEQ_END(&head) } - -#define CIRCLEQ_ENTRY(type) \ -struct { \ - struct type *cqe_next; /* next element */ \ - struct type *cqe_prev; /* previous element */ \ -} - -/* - * Circular queue access methods - */ -#define CIRCLEQ_FIRST(head) ((head)->cqh_first) -#define CIRCLEQ_LAST(head) ((head)->cqh_last) -#define CIRCLEQ_END(head) ((void *)(head)) -#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) -#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) -#define CIRCLEQ_EMPTY(head) \ - (CIRCLEQ_FIRST(head) == CIRCLEQ_END(head)) - -#define CIRCLEQ_FOREACH(var, head, field) \ - for((var) = CIRCLEQ_FIRST(head); \ - (var) != CIRCLEQ_END(head); \ - (var) = CIRCLEQ_NEXT(var, field)) - -#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ - for((var) = CIRCLEQ_LAST(head); \ - (var) != CIRCLEQ_END(head); \ - (var) = CIRCLEQ_PREV(var, field)) - -/* - * Circular queue functions. - */ -#define CIRCLEQ_INIT(head) do { \ - (head)->cqh_first = CIRCLEQ_END(head); \ - (head)->cqh_last = CIRCLEQ_END(head); \ -} while (0) - -#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ - (elm)->field.cqe_next = (listelm)->field.cqe_next; \ - (elm)->field.cqe_prev = (listelm); \ - if ((listelm)->field.cqe_next == CIRCLEQ_END(head)) \ - (head)->cqh_last = (elm); \ - else \ - (listelm)->field.cqe_next->field.cqe_prev = (elm); \ - (listelm)->field.cqe_next = (elm); \ -} while (0) - -#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ - (elm)->field.cqe_next = (listelm); \ - (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \ - if ((listelm)->field.cqe_prev == CIRCLEQ_END(head)) \ - (head)->cqh_first = (elm); \ - else \ - (listelm)->field.cqe_prev->field.cqe_next = (elm); \ - (listelm)->field.cqe_prev = (elm); \ -} while (0) - -#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ - (elm)->field.cqe_next = (head)->cqh_first; \ - (elm)->field.cqe_prev = CIRCLEQ_END(head); \ - if ((head)->cqh_last == CIRCLEQ_END(head)) \ - (head)->cqh_last = (elm); \ - else \ - (head)->cqh_first->field.cqe_prev = (elm); \ - (head)->cqh_first = (elm); \ -} while (0) - -#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ - (elm)->field.cqe_next = CIRCLEQ_END(head); \ - (elm)->field.cqe_prev = (head)->cqh_last; \ - if ((head)->cqh_first == CIRCLEQ_END(head)) \ - (head)->cqh_first = (elm); \ - else \ - (head)->cqh_last->field.cqe_next = (elm); \ - (head)->cqh_last = (elm); \ -} while (0) - -#define CIRCLEQ_REMOVE(head, elm, field) do { \ - if ((elm)->field.cqe_next == CIRCLEQ_END(head)) \ - (head)->cqh_last = (elm)->field.cqe_prev; \ - else \ - (elm)->field.cqe_next->field.cqe_prev = \ - (elm)->field.cqe_prev; \ - if ((elm)->field.cqe_prev == CIRCLEQ_END(head)) \ - (head)->cqh_first = (elm)->field.cqe_next; \ - else \ - (elm)->field.cqe_prev->field.cqe_next = \ - (elm)->field.cqe_next; \ - _Q_INVALIDATE((elm)->field.cqe_prev); \ - _Q_INVALIDATE((elm)->field.cqe_next); \ -} while (0) - -#define CIRCLEQ_REPLACE(head, elm, elm2, field) do { \ - if (((elm2)->field.cqe_next = (elm)->field.cqe_next) == \ - CIRCLEQ_END(head)) \ - (head).cqh_last = (elm2); \ - else \ - (elm2)->field.cqe_next->field.cqe_prev = (elm2); \ - if (((elm2)->field.cqe_prev = (elm)->field.cqe_prev) == \ - CIRCLEQ_END(head)) \ - (head).cqh_first = (elm2); \ - else \ - (elm2)->field.cqe_prev->field.cqe_next = (elm2); \ - _Q_INVALIDATE((elm)->field.cqe_prev); \ - _Q_INVALIDATE((elm)->field.cqe_next); \ -} while (0) - -#endif /* !_SYS_QUEUE_H_ */ diff --git a/libs/miniupnpc/codelength.h b/libs/miniupnpc/codelength.h deleted file mode 100644 index f11e5e9367..0000000000 --- a/libs/miniupnpc/codelength.h +++ /dev/null @@ -1,24 +0,0 @@ -/* $Id: codelength.h,v 1.1 2008/10/06 22:04:06 nanard Exp $ */ -/* Project : miniupnp - * Author : Thomas BERNARD - * copyright (c) 2005-2008 Thomas Bernard - * This software is subjet to the conditions detailed in the - * provided LICENCE file. */ -#ifndef __CODELENGTH_H__ -#define __CODELENGTH_H__ - -/* Encode length by using 7bit per Byte : - * Most significant bit of each byte specifies that the - * following byte is part of the code */ -#define DECODELENGTH(n, p) n = 0; \ - do { n = (n << 7) | (*p & 0x7f); } \ - while(*(p++)&0x80); - -#define CODELENGTH(n, p) if(n>=268435456) *(p++) = (n >> 28) | 0x80; \ - if(n>=2097152) *(p++) = (n >> 21) | 0x80; \ - if(n>=16384) *(p++) = (n >> 14) | 0x80; \ - if(n>=128) *(p++) = (n >> 7) | 0x80; \ - *(p++) = n & 0x7f; - -#endif - diff --git a/libs/miniupnpc/connecthostport.h b/libs/miniupnpc/connecthostport.h deleted file mode 100644 index 57e24eb276..0000000000 --- a/libs/miniupnpc/connecthostport.h +++ /dev/null @@ -1,17 +0,0 @@ -/* $Id: connecthostport.h,v 1.1 2010/04/04 23:21:03 nanard Exp $ */ -/* Project: miniupnp - * http://miniupnp.free.fr/ - * Author: Thomas Bernard - * Copyright (c) 2010 Thomas Bernard - * This software is subjects to the conditions detailed - * in the LICENCE file provided within this distribution */ -#ifndef __CONNECTHOSTPORT_H__ -#define __CONNECTHOSTPORT_H__ - -/* connecthostport() - * return a socket connected (TCP) to the host and port - * or -1 in case of error */ -int connecthostport(const char * host, unsigned short port); - -#endif - diff --git a/libs/miniupnpc/declspec.h b/libs/miniupnpc/declspec.h deleted file mode 100644 index b804247d25..0000000000 --- a/libs/miniupnpc/declspec.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __DECLSPEC_H__ -#define __DECLSPEC_H__ - -#if defined(WIN32) && !defined(STATICLIB) - #ifdef MINIUPNP_EXPORTS - #define LIBSPEC __declspec(dllexport) - #else - #define LIBSPEC __declspec(dllimport) - #endif -#else - #define LIBSPEC -#endif - -#endif - diff --git a/libs/miniupnpc/external-ip.sh b/libs/miniupnpc/external-ip.sh index 965d86b2a6..3873bd7e17 100755 --- a/libs/miniupnpc/external-ip.sh +++ b/libs/miniupnpc/external-ip.sh @@ -1,4 +1,4 @@ #!/bin/sh -# $Id: external-ip.sh,v 1.1 2010/08/05 12:57:41 nanard Exp $ +# $Id: external-ip.sh,v 1.2 2017/11/02 15:33:09 nanard Exp $ # (c) 2010 Reuben Hawkins -upnpc -s | grep ExternalIPAddress | sed 's/[^0-9\.]//g' +upnpc -s | sed -n -e 's/^ExternalIPAddress = \([0-9.]*\)$/\1/p' diff --git a/libs/miniupnpc/igd_desc_parse.h b/libs/miniupnpc/include/igd_desc_parse.h similarity index 84% rename from libs/miniupnpc/igd_desc_parse.h rename to libs/miniupnpc/include/igd_desc_parse.h index bab1fd56fd..0de546b697 100644 --- a/libs/miniupnpc/igd_desc_parse.h +++ b/libs/miniupnpc/include/igd_desc_parse.h @@ -1,13 +1,13 @@ -/* $Id: igd_desc_parse.h,v 1.10 2011/04/11 09:19:24 nanard Exp $ */ +/* $Id: igd_desc_parse.h,v 1.12 2014/11/17 17:19:13 nanard Exp $ */ /* Project : miniupnp * http://miniupnp.free.fr/ * Author : Thomas Bernard - * Copyright (c) 2005-2010 Thomas Bernard + * Copyright (c) 2005-2014 Thomas Bernard * This software is subject to the conditions detailed in the * LICENCE file provided in this distribution. * */ -#ifndef __IGD_DESC_PARSE_H__ -#define __IGD_DESC_PARSE_H__ +#ifndef IGD_DESC_PARSE_H_INCLUDED +#define IGD_DESC_PARSE_H_INCLUDED /* Structure to store the result of the parsing of UPnP * descriptions of Internet Gateway Devices */ @@ -42,7 +42,8 @@ struct IGDdatas { void IGDstartelt(void *, const char *, int); void IGDendelt(void *, const char *, int); void IGDdata(void *, const char *, int); +#ifdef DEBUG void printIGD(struct IGDdatas *); +#endif /* DEBUG */ -#endif - +#endif /* IGD_DESC_PARSE_H_INCLUDED */ diff --git a/libs/miniupnpc/miniupnpc.h b/libs/miniupnpc/include/miniupnpc.h similarity index 52% rename from libs/miniupnpc/miniupnpc.h rename to libs/miniupnpc/include/miniupnpc.h index 50df017778..90537ed45d 100644 --- a/libs/miniupnpc/miniupnpc.h +++ b/libs/miniupnpc/include/miniupnpc.h @@ -1,15 +1,17 @@ -/* $Id: miniupnpc.h,v 1.23 2011/04/11 08:21:46 nanard Exp $ */ -/* Project: miniupnp - * http://miniupnp.free.fr/ +/* $Id: miniupnpc.h,v 1.61 2022/10/21 21:15:02 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * Project: miniupnp + * http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ * Author: Thomas Bernard - * Copyright (c) 2005-2011 Thomas Bernard + * Copyright (c) 2005-2022 Thomas Bernard * This software is subjects to the conditions detailed * in the LICENCE file provided within this distribution */ -#ifndef __MINIUPNPC_H__ -#define __MINIUPNPC_H__ +#ifndef MINIUPNPC_H_INCLUDED +#define MINIUPNPC_H_INCLUDED -#include "declspec.h" +#include "miniupnpc_declspec.h" #include "igd_desc_parse.h" +#include "upnpdev.h" /* error codes : */ #define UPNPDISCOVER_SUCCESS (0) @@ -17,6 +19,16 @@ #define UPNPDISCOVER_SOCKET_ERROR (-101) #define UPNPDISCOVER_MEMORY_ERROR (-102) +/* versions : */ +#define MINIUPNPC_VERSION "2.2.5" +#define MINIUPNPC_API_VERSION 17 + +/* Source port: + Using "1" as an alias for 1900 for backwards compatibility + (presuming one would have used that for the "sameport" parameter) */ +#define UPNP_LOCAL_PORT_ANY 0 +#define UPNP_LOCAL_PORT_SAME 1 + #ifdef __cplusplus extern "C" { #endif @@ -29,13 +41,6 @@ simpleUPnPcommand(int, const char *, const char *, const char *, struct UPNParg *, int *); -struct UPNPDev { - struct UPNPDev * pNext; - char * descURL; - char * st; - char buffer[2]; -}; - /* upnpDiscover() * discover UPnP devices on the network. * The discovered devices are returned as a chained list. @@ -47,21 +52,43 @@ struct UPNPDev { * is NULL. * If multicastif is not NULL, it will be used instead of the default * multicast interface for sending SSDP discover packets. - * If sameport is not null, SSDP packets will be sent from the source port - * 1900 (same as destination port) otherwise system assign a source port. */ -LIBSPEC struct UPNPDev * + * If localport is set to UPNP_LOCAL_PORT_SAME(1) SSDP packets will be sent + * from the source port 1900 (same as destination port), if set to + * UPNP_LOCAL_PORT_ANY(0) system assign a source port, any other value will + * be attempted as the source port. + * "searchalltypes" parameter is useful when searching several types, + * if 0, the discovery will stop with the first type returning results. + * TTL should default to 2. */ +MINIUPNP_LIBSPEC struct UPNPDev * upnpDiscover(int delay, const char * multicastif, - const char * minissdpdsock, int sameport, - int ipv6, + const char * minissdpdsock, int localport, + int ipv6, unsigned char ttl, int * error); -/* freeUPNPDevlist() - * free list returned by upnpDiscover() */ -LIBSPEC void freeUPNPDevlist(struct UPNPDev * devlist); + +MINIUPNP_LIBSPEC struct UPNPDev * +upnpDiscoverAll(int delay, const char * multicastif, + const char * minissdpdsock, int localport, + int ipv6, unsigned char ttl, + int * error); + +MINIUPNP_LIBSPEC struct UPNPDev * +upnpDiscoverDevice(const char * device, int delay, const char * multicastif, + const char * minissdpdsock, int localport, + int ipv6, unsigned char ttl, + int * error); + +MINIUPNP_LIBSPEC struct UPNPDev * +upnpDiscoverDevices(const char * const deviceTypes[], + int delay, const char * multicastif, + const char * minissdpdsock, int localport, + int ipv6, unsigned char ttl, + int * error, + int searchalltypes); /* parserootdesc() : * parse root XML description of a UPnP device and fill the IGDdatas * structure. */ -LIBSPEC void parserootdesc(const char *, int, struct IGDdatas *); +MINIUPNP_LIBSPEC void parserootdesc(const char *, int, struct IGDdatas *); /* structure used to get fast access to urls * controlURL: controlURL of the WANIPConnection @@ -74,6 +101,7 @@ struct UPNPUrls { char * ipcondescURL; char * controlURL_CIF; char * controlURL_6FC; + char * rootdescURL; }; /* UPNP_GetValidIGD() : @@ -88,7 +116,7 @@ struct UPNPUrls { * passed as parameters are set. Donc forget to call FreeUPNPUrls(urls) to * free allocated memory. */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetValidIGD(struct UPNPDev * devlist, struct UPNPUrls * urls, struct IGDdatas * data, @@ -96,21 +124,25 @@ UPNP_GetValidIGD(struct UPNPDev * devlist, /* UPNP_GetIGDFromUrl() * Used when skipping the discovery process. + * When succeding, urls, data, and lanaddr arguments are set. * return value : * 0 - Not ok * 1 - OK */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetIGDFromUrl(const char * rootdescurl, struct UPNPUrls * urls, struct IGDdatas * data, char * lanaddr, int lanaddrlen); -LIBSPEC void GetUPNPUrls(struct UPNPUrls *, struct IGDdatas *, const char *); +MINIUPNP_LIBSPEC void +GetUPNPUrls(struct UPNPUrls *, struct IGDdatas *, + const char *, unsigned int); -LIBSPEC void FreeUPNPUrls(struct UPNPUrls *); +MINIUPNP_LIBSPEC void +FreeUPNPUrls(struct UPNPUrls *); /* return 0 or 1 */ -LIBSPEC int UPNPIGD_IsConnected(struct UPNPUrls *, struct IGDdatas *); +MINIUPNP_LIBSPEC int UPNPIGD_IsConnected(struct UPNPUrls *, struct IGDdatas *); #ifdef __cplusplus diff --git a/libs/miniupnpc/include/miniupnpc_declspec.h b/libs/miniupnpc/include/miniupnpc_declspec.h new file mode 100644 index 0000000000..40adb922ec --- /dev/null +++ b/libs/miniupnpc/include/miniupnpc_declspec.h @@ -0,0 +1,21 @@ +#ifndef MINIUPNPC_DECLSPEC_H_INCLUDED +#define MINIUPNPC_DECLSPEC_H_INCLUDED + +#if defined(_WIN32) && !defined(MINIUPNP_STATICLIB) + /* for windows dll */ + #ifdef MINIUPNP_EXPORTS + #define MINIUPNP_LIBSPEC __declspec(dllexport) + #else + #define MINIUPNP_LIBSPEC __declspec(dllimport) + #endif +#else + #if defined(__GNUC__) && __GNUC__ >= 4 + /* fix dynlib for OS X 10.9.2 and Apple LLVM version 5.0 */ + #define MINIUPNP_LIBSPEC __attribute__ ((visibility ("default"))) + #else + #define MINIUPNP_LIBSPEC + #endif +#endif + +#endif /* MINIUPNPC_DECLSPEC_H_INCLUDED */ + diff --git a/libs/miniupnpc/miniupnpctypes.h b/libs/miniupnpc/include/miniupnpctypes.h similarity index 56% rename from libs/miniupnpc/miniupnpctypes.h rename to libs/miniupnpc/include/miniupnpctypes.h index 86081c3cc8..1ae978d70a 100644 --- a/libs/miniupnpc/miniupnpctypes.h +++ b/libs/miniupnpc/include/miniupnpctypes.h @@ -1,13 +1,15 @@ -/* $Id: miniupnpctypes.h,v 1.1 2011/02/15 11:10:40 nanard Exp $ */ +/* $Id: miniupnpctypes.h,v 1.3 2021/08/21 09:50:00 nanard Exp $ */ /* Miniupnp project : http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org * Author : Thomas Bernard - * Copyright (c) 2011 Thomas Bernard + * Copyright (c) 2021 Thomas Bernard * This software is subject to the conditions detailed in the * LICENCE file provided within this distribution */ -#ifndef __MINIUPNPCTYPES_H__ -#define __MINIUPNPCTYPES_H__ +#ifndef MINIUPNPCTYPES_H_INCLUDED +#define MINIUPNPCTYPES_H_INCLUDED -#if (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) +/* Use unsigned long long when available : + * strtoull is C99 */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define UNSIGNED_INTEGER unsigned long long #define STRTOUI strtoull #else diff --git a/libs/miniupnpc/include/miniwget.h b/libs/miniupnpc/include/miniwget.h new file mode 100644 index 0000000000..92943c1440 --- /dev/null +++ b/libs/miniupnpc/include/miniwget.h @@ -0,0 +1,27 @@ +/* $Id: miniwget.h,v 1.13 2018/04/06 10:53:15 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas Bernard + * Copyright (c) 2005-2016 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ +#ifndef MINIWGET_H_INCLUDED +#define MINIWGET_H_INCLUDED + +#include "miniupnpc_declspec.h" + +#ifdef __cplusplus +extern "C" { +#endif + +MINIUPNP_LIBSPEC void * miniwget(const char *, int *, unsigned int, int *); + +MINIUPNP_LIBSPEC void * miniwget_getaddr(const char *, int *, char *, int, unsigned int, int *); + +int parseURL(const char *, char *, unsigned short *, char * *, unsigned int *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/libs/miniupnpc/portlistingparse.h b/libs/miniupnpc/include/portlistingparse.h similarity index 76% rename from libs/miniupnpc/portlistingparse.h rename to libs/miniupnpc/include/portlistingparse.h index 18524786c7..661ad1faac 100644 --- a/libs/miniupnpc/portlistingparse.h +++ b/libs/miniupnpc/include/portlistingparse.h @@ -1,22 +1,16 @@ -/* $Id: portlistingparse.h,v 1.4 2011/02/15 23:03:56 nanard Exp $ */ +/* $Id: portlistingparse.h,v 1.11 2015/07/21 13:16:55 nanard Exp $ */ /* MiniUPnP project * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ - * (c) 2011 Thomas Bernard + * (c) 2011-2015 Thomas Bernard * This software is subject to the conditions detailed * in the LICENCE file provided within the distribution */ -#ifndef __PORTLISTINGPARSE_H__ -#define __PORTLISTINGPARSE_H__ +#ifndef PORTLISTINGPARSE_H_INCLUDED +#define PORTLISTINGPARSE_H_INCLUDED -#include "declspec.h" +#include "miniupnpc_declspec.h" /* for the definition of UNSIGNED_INTEGER */ #include "miniupnpctypes.h" -#if defined(NO_SYS_QUEUE_H) || defined(WIN32) || defined(__HAIKU__) -#include "bsdqueue.h" -#else -#include <sys/queue.h> -#endif - #ifdef __cplusplus extern "C" { #endif @@ -37,11 +31,11 @@ typedef enum { PortMappingEltNone, PortMappingEntry, NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, - NewEnabled, NewDescription, + NewEnabled, NewDescription, NewLeaseTime } portMappingElt; struct PortMapping { - LIST_ENTRY(PortMapping) entries; + struct PortMapping * l_next; /* list next element */ UNSIGNED_INTEGER leaseTime; unsigned short externalPort; unsigned short internalPort; @@ -53,15 +47,15 @@ struct PortMapping { }; struct PortMappingParserData { - LIST_HEAD(portmappinglisthead, PortMapping) head; + struct PortMapping * l_head; /* list head */ portMappingElt curelt; }; -LIBSPEC void +MINIUPNP_LIBSPEC void ParsePortListing(const char * buffer, int bufsize, struct PortMappingParserData * pdata); -LIBSPEC void +MINIUPNP_LIBSPEC void FreePortListing(struct PortMappingParserData * pdata); #ifdef __cplusplus diff --git a/libs/miniupnpc/upnpcommands.h b/libs/miniupnpc/include/upnpcommands.h similarity index 61% rename from libs/miniupnpc/upnpcommands.h rename to libs/miniupnpc/include/upnpcommands.h index 66d95e0ca8..994104e55a 100644 --- a/libs/miniupnpc/upnpcommands.h +++ b/libs/miniupnpc/include/upnpcommands.h @@ -1,15 +1,13 @@ -/* $Id: upnpcommands.h,v 1.23 2011/04/11 09:14:00 nanard Exp $ */ +/* $Id: upnpcommands.h,v 1.33 2019/02/10 12:29:25 nanard Exp $ */ /* Miniupnp project : http://miniupnp.free.fr/ * Author : Thomas Bernard - * Copyright (c) 2005-2011 Thomas Bernard + * Copyright (c) 2005-2018 Thomas Bernard * This software is subject to the conditions detailed in the * LICENCE file provided within this distribution */ -#ifndef __UPNPCOMMANDS_H__ -#define __UPNPCOMMANDS_H__ +#ifndef UPNPCOMMANDS_H_INCLUDED +#define UPNPCOMMANDS_H_INCLUDED -#include "upnpreplyparse.h" -#include "portlistingparse.h" -#include "declspec.h" +#include "miniupnpc_declspec.h" #include "miniupnpctypes.h" /* MiniUPnPc return codes : */ @@ -17,24 +15,28 @@ #define UPNPCOMMAND_UNKNOWN_ERROR (-1) #define UPNPCOMMAND_INVALID_ARGS (-2) #define UPNPCOMMAND_HTTP_ERROR (-3) +#define UPNPCOMMAND_INVALID_RESPONSE (-4) +#define UPNPCOMMAND_MEM_ALLOC_ERROR (-5) #ifdef __cplusplus extern "C" { #endif -LIBSPEC UNSIGNED_INTEGER +struct PortMappingParserData; + +MINIUPNP_LIBSPEC UNSIGNED_INTEGER UPNP_GetTotalBytesSent(const char * controlURL, const char * servicetype); -LIBSPEC UNSIGNED_INTEGER +MINIUPNP_LIBSPEC UNSIGNED_INTEGER UPNP_GetTotalBytesReceived(const char * controlURL, const char * servicetype); -LIBSPEC UNSIGNED_INTEGER +MINIUPNP_LIBSPEC UNSIGNED_INTEGER UPNP_GetTotalPacketsSent(const char * controlURL, const char * servicetype); -LIBSPEC UNSIGNED_INTEGER +MINIUPNP_LIBSPEC UNSIGNED_INTEGER UPNP_GetTotalPacketsReceived(const char * controlURL, const char * servicetype); @@ -43,7 +45,7 @@ UPNP_GetTotalPacketsReceived(const char * controlURL, * Return values : * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR * or a UPnP Error code */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetStatusInfo(const char * controlURL, const char * servicetype, char * status, @@ -55,23 +57,23 @@ UPNP_GetStatusInfo(const char * controlURL, * Return Values : * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR * or a UPnP Error code */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetConnectionTypeInfo(const char * controlURL, const char * servicetype, char * connectionType); /* UPNP_GetExternalIPAddress() call the corresponding UPNP method. * if the third arg is not null the value is copied to it. - * at least 16 bytes must be available + * at least 16 bytes must be available * * Return values : * 0 : SUCCESS * NON ZERO : ERROR Either an UPnP error code or an unknown error. - * + * * possible UPnP Errors : * 402 Invalid Args - See UPnP Device Architecture section on Control. * 501 Action Failed - See UPnP Device Architecture section on Control. */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetExternalIPAddress(const char * controlURL, const char * servicetype, char * extIpAdd); @@ -82,7 +84,7 @@ UPNP_GetExternalIPAddress(const char * controlURL, * return values : * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR * or a UPnP Error Code. */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetLinkLayerMaxBitRates(const char* controlURL, const char* servicetype, unsigned int * bitrateDown, @@ -95,33 +97,75 @@ UPNP_GetLinkLayerMaxBitRates(const char* controlURL, * Return values : * 0 : SUCCESS * NON ZERO : ERROR. Either an UPnP error code or an unknown error. - * + * * List of possible UPnP errors for AddPortMapping : * errorCode errorDescription (short) - Description (long) * 402 Invalid Args - See UPnP Device Architecture section on Control. * 501 Action Failed - See UPnP Device Architecture section on Control. + * 606 Action not authorized - The action requested REQUIRES authorization and + * the sender was not authorized. * 715 WildCardNotPermittedInSrcIP - The source IP address cannot be * wild-carded * 716 WildCardNotPermittedInExtPort - The external port cannot be wild-carded * 718 ConflictInMappingEntry - The port mapping entry specified conflicts * with a mapping assigned previously to another client * 724 SamePortValuesRequired - Internal and External port values - * must be the same + * must be the same * 725 OnlyPermanentLeasesSupported - The NAT implementation only supports * permanent lease times on port mappings * 726 RemoteHostOnlySupportsWildcard - RemoteHost must be a wildcard * and cannot be a specific IP address or DNS name * 727 ExternalPortOnlySupportsWildcard - ExternalPort must be a wildcard and - * cannot be a specific port value */ -LIBSPEC int + * cannot be a specific port value + * 728 NoPortMapsAvailable - There are not enough free ports available to + * complete port mapping. + * 729 ConflictWithOtherMechanisms - Attempted port mapping is not allowed + * due to conflict with other mechanisms. + * 732 WildCardNotPermittedInIntPort - The internal port cannot be wild-carded + */ +MINIUPNP_LIBSPEC int UPNP_AddPortMapping(const char * controlURL, const char * servicetype, - const char * extPort, - const char * inPort, - const char * inClient, - const char * desc, - const char * proto, - const char * remoteHost, - const char * leaseDuration); + const char * extPort, + const char * inPort, + const char * inClient, + const char * desc, + const char * proto, + const char * remoteHost, + const char * leaseDuration); + +/* UPNP_AddAnyPortMapping() + * if desc is NULL, it will be defaulted to "libminiupnpc" + * remoteHost is usually NULL because IGD don't support it. + * + * Return values : + * 0 : SUCCESS + * NON ZERO : ERROR. Either an UPnP error code or an unknown error. + * + * List of possible UPnP errors for AddPortMapping : + * errorCode errorDescription (short) - Description (long) + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 501 Action Failed - See UPnP Device Architecture section on Control. + * 606 Action not authorized - The action requested REQUIRES authorization and + * the sender was not authorized. + * 715 WildCardNotPermittedInSrcIP - The source IP address cannot be + * wild-carded + * 716 WildCardNotPermittedInExtPort - The external port cannot be wild-carded + * 728 NoPortMapsAvailable - There are not enough free ports available to + * complete port mapping. + * 729 ConflictWithOtherMechanisms - Attempted port mapping is not allowed + * due to conflict with other mechanisms. + * 732 WildCardNotPermittedInIntPort - The internal port cannot be wild-carded + */ +MINIUPNP_LIBSPEC int +UPNP_AddAnyPortMapping(const char * controlURL, const char * servicetype, + const char * extPort, + const char * inPort, + const char * inClient, + const char * desc, + const char * proto, + const char * remoteHost, + const char * leaseDuration, + char * reservedPort); /* UPNP_DeletePortMapping() * Use same argument values as what was used for AddPortMapping(). @@ -132,24 +176,46 @@ UPNP_AddPortMapping(const char * controlURL, const char * servicetype, * * List of possible UPnP errors for DeletePortMapping : * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 606 Action not authorized - The action requested REQUIRES authorization + * and the sender was not authorized. * 714 NoSuchEntryInArray - The specified value does not exist in the array */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_DeletePortMapping(const char * controlURL, const char * servicetype, - const char * extPort, const char * proto, - const char * remoteHost); + const char * extPort, const char * proto, + const char * remoteHost); + +/* UPNP_DeletePortRangeMapping() + * Use same argument values as what was used for AddPortMapping(). + * remoteHost is usually NULL because IGD don't support it. + * Return Values : + * 0 : SUCCESS + * NON ZERO : error. Either an UPnP error code or an undefined error. + * + * List of possible UPnP errors for DeletePortMapping : + * 606 Action not authorized - The action requested REQUIRES authorization + * and the sender was not authorized. + * 730 PortMappingNotFound - This error message is returned if no port + * mapping is found in the specified range. + * 733 InconsistentParameters - NewStartPort and NewEndPort values are not consistent. */ +MINIUPNP_LIBSPEC int +UPNP_DeletePortMappingRange(const char * controlURL, const char * servicetype, + const char * extPortStart, const char * extPortEnd, + const char * proto, + const char * manage); /* UPNP_GetPortMappingNumberOfEntries() * not supported by all routers */ -LIBSPEC int -UPNP_GetPortMappingNumberOfEntries(const char* controlURL, - const char* servicetype, - unsigned int * num); +MINIUPNP_LIBSPEC int +UPNP_GetPortMappingNumberOfEntries(const char * controlURL, + const char * servicetype, + unsigned int * numEntries); /* UPNP_GetSpecificPortMappingEntry() * retrieves an existing port mapping * params : * in extPort * in proto + * in remoteHost * out intClient (16 bytes) * out intPort (6 bytes) * out desc (80 bytes) @@ -158,12 +224,21 @@ UPNP_GetPortMappingNumberOfEntries(const char* controlURL, * * return value : * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR - * or a UPnP Error Code. */ -LIBSPEC int + * or a UPnP Error Code. + * + * List of possible UPnP errors for _GetSpecificPortMappingEntry : + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 501 Action Failed - See UPnP Device Architecture section on Control. + * 606 Action not authorized - The action requested REQUIRES authorization + * and the sender was not authorized. + * 714 NoSuchEntryInArray - The specified value does not exist in the array. + */ +MINIUPNP_LIBSPEC int UPNP_GetSpecificPortMappingEntry(const char * controlURL, const char * servicetype, const char * extPort, const char * proto, + const char * remoteHost, char * intClient, char * intPort, char * desc, @@ -188,9 +263,11 @@ UPNP_GetSpecificPortMappingEntry(const char * controlURL, * * Possible UPNP Error codes : * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 606 Action not authorized - The action requested REQUIRES authorization + * and the sender was not authorized. * 713 SpecifiedArrayIndexInvalid - The specified array index is out of bounds */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetGenericPortMappingEntry(const char * controlURL, const char * servicetype, const char * index, @@ -212,7 +289,7 @@ UPNP_GetGenericPortMappingEntry(const char * controlURL, * 733 InconsistantParameters - NewStartPort and NewEndPort values are not * consistent. */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetListOfPortMappings(const char * controlURL, const char * servicetype, const char * startPort, @@ -221,14 +298,14 @@ UPNP_GetListOfPortMappings(const char * controlURL, const char * numberOfPorts, struct PortMappingParserData * data); -/* IGD:2, functions for service WANIPv6FirewallControl:1 */ -LIBSPEC int +/* IGD:2, functions for service WANIPv6FirewallControl:1 */ +MINIUPNP_LIBSPEC int UPNP_GetFirewallStatus(const char * controlURL, const char * servicetype, - int * firewallEnabled, + int * firewallEnabled, int * inboundPinholeAllowed); -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype, const char * remoteHost, const char * remotePort, @@ -237,7 +314,7 @@ UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype const char * proto, int * opTimeout); -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_AddPinhole(const char * controlURL, const char * servicetype, const char * remoteHost, const char * remotePort, @@ -247,19 +324,19 @@ UPNP_AddPinhole(const char * controlURL, const char * servicetype, const char * leaseTime, char * uniqueID); -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_UpdatePinhole(const char * controlURL, const char * servicetype, const char * uniqueID, const char * leaseTime); -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char * uniqueID); -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype, const char * uniqueID, int * isWorking); -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetPinholePackets(const char * controlURL, const char * servicetype, const char * uniqueID, int * packets); diff --git a/libs/miniupnpc/include/upnpdev.h b/libs/miniupnpc/include/upnpdev.h new file mode 100644 index 0000000000..171d495be3 --- /dev/null +++ b/libs/miniupnpc/include/upnpdev.h @@ -0,0 +1,44 @@ +/* $Id: upnpdev.h,v 1.4 2021/08/21 09:45:01 nanard Exp $ */ +/* Project : miniupnp + * Web : http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ + * Author : Thomas BERNARD + * copyright (c) 2005-2021 Thomas Bernard + * This software is subjet to the conditions detailed in the + * provided LICENSE file. */ +#ifndef UPNPDEV_H_INCLUDED +#define UPNPDEV_H_INCLUDED + +#include "miniupnpc_declspec.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct UPNPDev { + struct UPNPDev * pNext; + char * descURL; + char * st; + char * usn; + unsigned int scope_id; +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + /* C99 flexible array member */ + char buffer[]; +#elif defined(__GNUC__) + char buffer[0]; +#else + /* Fallback to a hack */ + char buffer[1]; +#endif +}; + +/* freeUPNPDevlist() + * free list returned by upnpDiscover() */ +MINIUPNP_LIBSPEC void freeUPNPDevlist(struct UPNPDev * devlist); + + +#ifdef __cplusplus +} +#endif + + +#endif /* UPNPDEV_H_INCLUDED */ diff --git a/libs/miniupnpc/upnperrors.h b/libs/miniupnpc/include/upnperrors.h similarity index 52% rename from libs/miniupnpc/upnperrors.h rename to libs/miniupnpc/include/upnperrors.h index 2c544c97c3..3115aee5b1 100644 --- a/libs/miniupnpc/upnperrors.h +++ b/libs/miniupnpc/include/upnperrors.h @@ -1,23 +1,23 @@ -/* $Id: upnperrors.h,v 1.2 2008/07/02 23:31:15 nanard Exp $ */ -/* (c) 2007 Thomas Bernard +/* $Id: upnperrors.h,v 1.6 2015/07/21 13:16:55 nanard Exp $ */ +/* (c) 2007-2015 Thomas Bernard * All rights reserved. * MiniUPnP Project. * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ * This software is subjet to the conditions detailed in the * provided LICENCE file. */ -#ifndef __UPNPERRORS_H__ -#define __UPNPERRORS_H__ +#ifndef UPNPERRORS_H_INCLUDED +#define UPNPERRORS_H_INCLUDED -#include "declspec.h" +#include "miniupnpc_declspec.h" #ifdef __cplusplus extern "C" { #endif /* strupnperror() - * Return a string description of the UPnP error code + * Return a string description of the UPnP error code * or NULL for undefinded errors */ -LIBSPEC const char * strupnperror(int err); +MINIUPNP_LIBSPEC const char * strupnperror(int err); #ifdef __cplusplus } diff --git a/libs/miniupnpc/upnpreplyparse.h b/libs/miniupnpc/include/upnpreplyparse.h similarity index 71% rename from libs/miniupnpc/upnpreplyparse.h rename to libs/miniupnpc/include/upnpreplyparse.h index 267ea87835..6badd15b26 100644 --- a/libs/miniupnpc/upnpreplyparse.h +++ b/libs/miniupnpc/include/upnpreplyparse.h @@ -1,34 +1,31 @@ -/* $Id: upnpreplyparse.h,v 1.11 2011/02/07 16:17:06 nanard Exp $ */ +/* $Id: upnpreplyparse.h,v 1.19 2014/10/27 16:33:19 nanard Exp $ */ /* MiniUPnP project * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ - * (c) 2006-2011 Thomas Bernard + * (c) 2006-2013 Thomas Bernard * This software is subject to the conditions detailed * in the LICENCE file provided within the distribution */ -#ifndef __UPNPREPLYPARSE_H__ -#define __UPNPREPLYPARSE_H__ - -#if defined(NO_SYS_QUEUE_H) || defined(WIN32) || defined(__HAIKU__) -#include "bsdqueue.h" -#else -#include <sys/queue.h> -#endif +#ifndef UPNPREPLYPARSE_H_INCLUDED +#define UPNPREPLYPARSE_H_INCLUDED #ifdef __cplusplus extern "C" { #endif struct NameValue { - LIST_ENTRY(NameValue) entries; - char name[64]; - char value[64]; + struct NameValue * l_next; + char name[64]; + char value[128]; }; struct NameValueParserData { - LIST_HEAD(listhead, NameValue) head; - char curelt[64]; + struct NameValue * l_head; + char curelt[64]; char * portListing; int portListingLength; + int topelt; + const char * cdata; + int cdatalen; }; /* ParseNameValue() */ @@ -45,10 +42,12 @@ char * GetValueFromNameValueList(struct NameValueParserData * pdata, const char * Name); +#if 0 /* GetValueFromNameValueListIgnoreNS() */ char * GetValueFromNameValueListIgnoreNS(struct NameValueParserData * pdata, const char * Name); +#endif /* DisplayNameValueList() */ #ifdef DEBUG diff --git a/libs/miniupnpc/java/JavaBridgeTest.java b/libs/miniupnpc/java/JavaBridgeTest.java index 62bba345c6..c658c59905 100644 --- a/libs/miniupnpc/java/JavaBridgeTest.java +++ b/libs/miniupnpc/java/JavaBridgeTest.java @@ -1,4 +1,6 @@ import java.nio.ByteBuffer; +import java.nio.IntBuffer; + import fr.free.miniupnp.*; /** @@ -27,7 +29,7 @@ public class JavaBridgeTest { return; } - devlist = miniupnpc.upnpDiscover(UPNP_DELAY, (String) null, (String) null, 0, null); + devlist = miniupnpc.upnpDiscover(UPNP_DELAY, (String) null, (String) null, 0, 0, (byte)2, IntBuffer.allocate(1)); if (devlist != null) { System.out.println("List of UPNP devices found on the network :"); for (UPNPDev device = devlist; device != null; device = device.pNext) { @@ -70,12 +72,12 @@ public class JavaBridgeTest { System.out.println("AddPortMapping() failed with code " + ret); ret = miniupnpc.UPNP_GetSpecificPortMappingEntry( urls.controlURL.getString(0), new String(data.first.servicetype), - args[0], args[1], intClient, intPort, + args[0], args[1], null, intClient, intPort, desc, enabled, leaseDuration); if (ret != MiniupnpcLibrary.UPNPCOMMAND_SUCCESS) System.out.println("GetSpecificPortMappingEntry() failed with code " + ret); System.out.println("InternalIP:Port = " + - new String(intClient.array()) + ":" + new String(intPort.array()) + + new String(intClient.array()) + ":" + new String(intPort.array()) + " (" + new String(desc.array()) + ")"); ret = miniupnpc.UPNP_DeletePortMapping( urls.controlURL.getString(0), diff --git a/libs/miniupnpc/java/testjava.bat b/libs/miniupnpc/java/testjava.bat new file mode 100644 index 0000000000..b836da1491 --- /dev/null +++ b/libs/miniupnpc/java/testjava.bat @@ -0,0 +1,8 @@ +@echo off +set JAVA=java +set JAVAC=javac +REM notice the semicolon for Windows. Write once, run ... oh nevermind +set CP=miniupnpc_win32.jar;. + +%JAVAC% -cp "%CP%" JavaBridgeTest.java || exit 1 +%JAVA% -cp "%CP%" JavaBridgeTest 12345 UDP || exit 1 diff --git a/libs/miniupnpc/java/testjava.sh b/libs/miniupnpc/java/testjava.sh index c997baf9e8..9880523a10 100755 --- a/libs/miniupnpc/java/testjava.sh +++ b/libs/miniupnpc/java/testjava.sh @@ -1,8 +1,8 @@ -#! /bin/sh +#!/bin/bash JAVA=java JAVAC=javac +CP=$(for i in *.jar; do echo -n $i:; done). -$JAVAC -cp miniupnpc_Linux.jar JavaBridgeTest.java -$JAVA -cp miniupnpc_Linux.jar:. JavaBridgeTest 12345 UDP - +$JAVAC -cp $CP JavaBridgeTest.java || exit 1 +$JAVA -cp $CP JavaBridgeTest 12345 UDP || exit 1 diff --git a/libs/miniupnpc/man3/miniupnpc.3 b/libs/miniupnpc/man3/miniupnpc.3 index 0e35aaac51..e5c3ec88c4 100644 --- a/libs/miniupnpc/man3/miniupnpc.3 +++ b/libs/miniupnpc/man3/miniupnpc.3 @@ -1,5 +1,4 @@ -\" $Id: miniupnpc.3,v 1.3 2011/07/25 18:02:11 nanard Exp $ -.TH miniupnpc 3 +.TH MINIUPNPC 3 .SH NAME miniupnpc \- UPnP client library .SH SYNOPSIS @@ -26,25 +25,28 @@ through the miniupnpc API. The name of the C functions are matching the UPnP methods names. ie: GetGenericPortMappingEntry is UPNP_GetGenericPortMappingEntry. .SH "API FUNCTIONS" -.IP "struct UPNPDev * upnpDiscover(int delay, const char * multicastif, const char * minissdpdsock, int sameport, int ipv6, int * error);" +.IP "struct UPNPDev * upnpDiscover(int delay, const char * multicastif, const char * minissdpdsock, int localport, int ipv6, int * error);" execute the discovery process. delay (in millisecond) is the maximum time for waiting any device response. If available, device list will be obtained from MiniSSDPd. Default path for minissdpd socket will be used if minissdpdsock argument is NULL. If multicastif is not NULL, it will be used instead of the default multicast interface for sending SSDP discover packets. -If sameport is not null, SSDP packets will be sent from the source port 1900 (same as destination port) otherwise system assign a source port. +If localport is set to UPNP_LOCAL_PORT_SAME(1) SSDP packets will be sent +from the source port 1900 (same as destination port), if set to +UPNP_LOCAL_PORT_ANY(0) system assign a source port, any other value will +be attempted as the source port. If ipv6 is not 0, IPv6 is used instead of IPv4 for the discovery process. .IP "void freeUPNPDevlist(struct UPNPDev * devlist);" free the list returned by upnpDiscover(). .IP "int UPNP_GetValidIGD(struct UPNPDev * devlist, struct UPNPUrls * urls, struct IGDdatas * data, char * lanaddr, int lanaddrlen);" browse the list of device returned by upnpDiscover(), find a live UPnP internet gateway device and fill structures passed as arguments -with data used for UPNP methods invokation. +with data used for UPNP methods invocation. .IP "int UPNP_GetIGDFromUrl(const char * rootdescurl, struct UPNPUrls * urls, struct IGDdatas * data, char * lanaddr, int lanaddrlen);" -permit to bypass the upnpDiscover() call if the xml root description +permit one to bypass the upnpDiscover() call if the xml root description URL of the UPnP IGD is known. Fill structures passed as arguments -with data used for UPNP methods invokation. +with data used for UPNP methods invocation. .IP "void GetUPNPUrls(struct UPNPUrls *, struct IGDdatas *, const char *);" .IP "void FreeUPNPUrls(struct UPNPUrls *);" diff --git a/libs/miniupnpc/mingw32/libminiupnpc.a b/libs/miniupnpc/mingw32/libminiupnpc.a index fb2065753fa28f20bcdd5ee63634c9e1f10a37e5..063e379bdec80b0e574996b7bb9084ba23394f6d 100644 GIT binary patch literal 63762 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 literal 2028512 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�akw$%my_a7#N-)vHyVC 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%0DUP$h)e+1w>L<W^rZ`ctXh#v_u0^ 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%0Dd) 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�bzZ8$=P*57<>9 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�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∓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 diff --git a/libs/miniupnpc/mingw64/libminiupnpc.a b/libs/miniupnpc/mingw64/libminiupnpc.a index 4275196d37a8c9574d5c7f66e9938b8855dd7d87..afa9533fbd80786547c65c919872efa4b08e51ad 100644 GIT binary patch literal 72024 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	_%0MCa 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	HG&`;K9+)J>d_l5$6T*7bh}!B(+)@ha`U12 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 BXb1oR literal 135706 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 diff --git a/libs/miniupnpc/minissdpc.c b/libs/miniupnpc/minissdpc.c deleted file mode 100644 index e5e852855c..0000000000 --- a/libs/miniupnpc/minissdpc.c +++ /dev/null @@ -1,132 +0,0 @@ -/* $Id: minissdpc.c,v 1.14 2010/11/25 09:57:25 nanard Exp $ */ -/* Project : miniupnp - * Author : Thomas BERNARD - * copyright (c) 2005-2009 Thomas Bernard - * This software is subjet to the conditions detailed in the - * provided LICENCE file. */ -/*#include <syslog.h>*/ -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/types.h> -#if defined(WIN32) || defined(__amigaos__) || defined(__amigaos4__) -#ifdef WIN32 -#include <winsock2.h> -#include <ws2tcpip.h> -#include <io.h> -#include <winsock.h> -#include <stdint.h> -#endif -#if defined(__amigaos__) || defined(__amigaos4__) -#include <sys/socket.h> -#endif -#if defined(__amigaos__) -#define uint16_t unsigned short -#endif -/* Hack */ -#define UNIX_PATH_LEN 108 -struct sockaddr_un { - uint16_t sun_family; - char sun_path[UNIX_PATH_LEN]; -}; -#else -#include <sys/socket.h> -#include <sys/un.h> -#endif - -#include "minissdpc.h" -#include "miniupnpc.h" - -#include "codelength.h" - -struct UPNPDev * -getDevicesFromMiniSSDPD(const char * devtype, const char * socketpath) -{ - struct UPNPDev * tmp; - struct UPNPDev * devlist = NULL; - unsigned char buffer[2048]; - ssize_t n; - unsigned char * p; - unsigned char * url; - unsigned int i; - unsigned int urlsize, stsize, usnsize, l; - int s; - struct sockaddr_un addr; - - s = socket(AF_UNIX, SOCK_STREAM, 0); - if(s < 0) - { - /*syslog(LOG_ERR, "socket(unix): %m");*/ - perror("socket(unix)"); - return NULL; - } - addr.sun_family = AF_UNIX; - strncpy(addr.sun_path, socketpath, sizeof(addr.sun_path)); - /* TODO : check if we need to handle the EINTR */ - if(connect(s, (struct sockaddr *)&addr, sizeof(struct sockaddr_un)) < 0) - { - /*syslog(LOG_WARNING, "connect(\"%s\"): %m", socketpath);*/ - close(s); - return NULL; - } - stsize = strlen(devtype); - buffer[0] = 1; /* request type 1 : request devices/services by type */ - p = buffer + 1; - l = stsize; CODELENGTH(l, p); - if(p + stsize > buffer + sizeof(buffer)) - { - /* devtype is too long ! */ - close(s); - return NULL; - } - memcpy(p, devtype, stsize); - p += stsize; - if(write(s, buffer, p - buffer) < 0) - { - /*syslog(LOG_ERR, "write(): %m");*/ - perror("minissdpc.c: write()"); - close(s); - return NULL; - } - n = read(s, buffer, sizeof(buffer)); - if(n<=0) - { - perror("minissdpc.c: read()"); - close(s); - return NULL; - } - p = buffer + 1; - for(i = 0; i < buffer[0]; i++) - { - if(p+2>=buffer+sizeof(buffer)) - break; - DECODELENGTH(urlsize, p); - if(p+urlsize+2>=buffer+sizeof(buffer)) - break; - url = p; - p += urlsize; - DECODELENGTH(stsize, p); - if(p+stsize+2>=buffer+sizeof(buffer)) - break; - tmp = (struct UPNPDev *)malloc(sizeof(struct UPNPDev)+urlsize+stsize); - tmp->pNext = devlist; - tmp->descURL = tmp->buffer; - tmp->st = tmp->buffer + 1 + urlsize; - memcpy(tmp->buffer, url, urlsize); - tmp->buffer[urlsize] = '\0'; - memcpy(tmp->buffer + urlsize + 1, p, stsize); - p += stsize; - tmp->buffer[urlsize+1+stsize] = '\0'; - devlist = tmp; - /* added for compatibility with recent versions of MiniSSDPd - * >= 2007/12/19 */ - DECODELENGTH(usnsize, p); - p += usnsize; - if(p>buffer + sizeof(buffer)) - break; - } - close(s); - return devlist; -} - diff --git a/libs/miniupnpc/minissdpc.h b/libs/miniupnpc/minissdpc.h deleted file mode 100644 index 25e91ce319..0000000000 --- a/libs/miniupnpc/minissdpc.h +++ /dev/null @@ -1,15 +0,0 @@ -/* $Id: minissdpc.h,v 1.1 2007/08/31 15:15:33 nanard Exp $ */ -/* Project: miniupnp - * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ - * Author: Thomas Bernard - * Copyright (c) 2005-2007 Thomas Bernard - * This software is subjects to the conditions detailed - * in the LICENCE file provided within this distribution */ -#ifndef __MINISSDPC_H__ -#define __MINISSDPC_H__ - -struct UPNPDev * -getDevicesFromMiniSSDPD(const char * devtype, const char * socketpath); - -#endif - diff --git a/libs/miniupnpc/miniupnpc-config.cmake b/libs/miniupnpc/miniupnpc-config.cmake new file mode 100644 index 0000000000..116876a5de --- /dev/null +++ b/libs/miniupnpc/miniupnpc-config.cmake @@ -0,0 +1,6 @@ +if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/libminiupnpc-shared.cmake" OR MINIUPNPC_USE_STATIC_LIBS) + include("${CMAKE_CURRENT_LIST_DIR}/miniupnpc-private.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/libminiupnpc-static.cmake") +else() + include("${CMAKE_CURRENT_LIST_DIR}/libminiupnpc-shared.cmake") +endif() diff --git a/libs/miniupnpc/miniupnpc.c b/libs/miniupnpc/miniupnpc.c deleted file mode 100644 index 0a3aae33dc..0000000000 --- a/libs/miniupnpc/miniupnpc.c +++ /dev/null @@ -1,943 +0,0 @@ -/* $Id: miniupnpc.c,v 1.95 2011/05/15 21:42:26 nanard Exp $ */ -/* Project : miniupnp - * Author : Thomas BERNARD - * copyright (c) 2005-2011 Thomas Bernard - * This software is subjet to the conditions detailed in the - * provided LICENSE file. */ -#define __EXTENSIONS__ 1 -#if !defined(MACOSX) && !defined(__sun) -#if !defined(_XOPEN_SOURCE) && !defined(__OpenBSD__) && !defined(__NetBSD__) -#ifndef __cplusplus -#define _XOPEN_SOURCE 600 -#endif -#endif -#ifndef __BSD_VISIBLE -#define __BSD_VISIBLE 1 -#endif -#endif - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#ifdef WIN32 -/* Win32 Specific includes and defines */ -#include <winsock2.h> -#include <ws2tcpip.h> -#include <io.h> -#include <iphlpapi.h> -#define snprintf _snprintf -#ifndef strncasecmp -#if defined(_MSC_VER) && (_MSC_VER >= 1400) -#define strncasecmp _memicmp -#else /* defined(_MSC_VER) && (_MSC_VER >= 1400) */ -#define strncasecmp memicmp -#endif /* defined(_MSC_VER) && (_MSC_VER >= 1400) */ -#endif /* #ifndef strncasecmp */ -#define MAXHOSTNAMELEN 64 -#else /* #ifdef WIN32 */ -/* Standard POSIX includes */ -#include <unistd.h> -#if defined(__amigaos__) && !defined(__amigaos4__) -/* Amiga OS 3 specific stuff */ -#define socklen_t int -#else -#include <sys/select.h> -#endif -#include <sys/socket.h> -#include <sys/types.h> -#include <sys/param.h> -#include <netinet/in.h> -#include <arpa/inet.h> -#include <netdb.h> -#include <net/if.h> -#if !defined(__amigaos__) && !defined(__amigaos4__) -#include <poll.h> -#endif -#include <strings.h> -#include <errno.h> -#define closesocket close -#endif /* #else WIN32 */ -#ifdef MINIUPNPC_SET_SOCKET_TIMEOUT -#include <sys/time.h> -#endif -#if defined(__amigaos__) || defined(__amigaos4__) -/* Amiga OS specific stuff */ -#define TIMEVAL struct timeval -#endif - -#include "miniupnpc.h" -#include "minissdpc.h" -#include "miniwget.h" -#include "minisoap.h" -#include "minixml.h" -#include "upnpcommands.h" -#include "connecthostport.h" -#include "receivedata.h" - -#ifdef WIN32 -#define PRINT_SOCKET_ERROR(x) printf("Socket error: %s, %d\n", x, WSAGetLastError()); -#else -#define PRINT_SOCKET_ERROR(x) perror(x) -#endif - -#define SOAPPREFIX "s" -#define SERVICEPREFIX "u" -#define SERVICEPREFIX2 'u' - -/* root description parsing */ -LIBSPEC void parserootdesc(const char * buffer, int bufsize, struct IGDdatas * data) -{ - struct xmlparser parser; - /* xmlparser object */ - parser.xmlstart = buffer; - parser.xmlsize = bufsize; - parser.data = data; - parser.starteltfunc = IGDstartelt; - parser.endeltfunc = IGDendelt; - parser.datafunc = IGDdata; - parser.attfunc = 0; - parsexml(&parser); -#ifdef DEBUG - printIGD(data); -#endif -} - -/* simpleUPnPcommand2 : - * not so simple ! - * return values : - * pointer - OK - * NULL - error */ -char * simpleUPnPcommand2(int s, const char * url, const char * service, - const char * action, struct UPNParg * args, - int * bufsize, const char * httpversion) -{ - char hostname[MAXHOSTNAMELEN+1]; - unsigned short port = 0; - char * path; - char soapact[128]; - char soapbody[2048]; - char * buf; - int n; - - *bufsize = 0; - snprintf(soapact, sizeof(soapact), "%s#%s", service, action); - if(args==NULL) - { - /*soapbodylen = */snprintf(soapbody, sizeof(soapbody), - "<?xml version=\"1.0\"?>\r\n" - "<" SOAPPREFIX ":Envelope " - "xmlns:" SOAPPREFIX "=\"http://schemas.xmlsoap.org/soap/envelope/\" " - SOAPPREFIX ":encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" - "<" SOAPPREFIX ":Body>" - "<" SERVICEPREFIX ":%s xmlns:" SERVICEPREFIX "=\"%s\">" - "</" SERVICEPREFIX ":%s>" - "</" SOAPPREFIX ":Body></" SOAPPREFIX ":Envelope>" - "\r\n", action, service, action); - } - else - { - char * p; - const char * pe, * pv; - int soapbodylen; - soapbodylen = snprintf(soapbody, sizeof(soapbody), - "<?xml version=\"1.0\"?>\r\n" - "<" SOAPPREFIX ":Envelope " - "xmlns:" SOAPPREFIX "=\"http://schemas.xmlsoap.org/soap/envelope/\" " - SOAPPREFIX ":encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" - "<" SOAPPREFIX ":Body>" - "<" SERVICEPREFIX ":%s xmlns:" SERVICEPREFIX "=\"%s\">", - action, service); - p = soapbody + soapbodylen; - while(args->elt) - { - /* check that we are never overflowing the string... */ - if(soapbody + sizeof(soapbody) <= p + 100) - { - /* we keep a margin of at least 100 bytes */ - return NULL; - } - *(p++) = '<'; - pe = args->elt; - while(*pe) - *(p++) = *(pe++); - *(p++) = '>'; - if((pv = args->val)) - { - while(*pv) - *(p++) = *(pv++); - } - *(p++) = '<'; - *(p++) = '/'; - pe = args->elt; - while(*pe) - *(p++) = *(pe++); - *(p++) = '>'; - args++; - } - *(p++) = '<'; - *(p++) = '/'; - *(p++) = SERVICEPREFIX2; - *(p++) = ':'; - pe = action; - while(*pe) - *(p++) = *(pe++); - strncpy(p, "></" SOAPPREFIX ":Body></" SOAPPREFIX ":Envelope>\r\n", - soapbody + sizeof(soapbody) - p); - } - if(!parseURL(url, hostname, &port, &path)) return NULL; - if(s<0) - { - s = connecthostport(hostname, port); - if(s < 0) - { - return NULL; - } - } - - n = soapPostSubmit(s, path, hostname, port, soapact, soapbody, httpversion); - if(n<=0) { -#ifdef DEBUG - printf("Error sending SOAP request\n"); -#endif - closesocket(s); - return NULL; - } - - buf = getHTTPResponse(s, bufsize); -#ifdef DEBUG - if(*bufsize > 0 && buf) - { - printf("SOAP Response :\n%.*s\n", *bufsize, buf); - } -#endif - closesocket(s); - return buf; -} - -/* simpleUPnPcommand : - * not so simple ! - * return values : - * pointer - OK - * NULL - error */ -char * simpleUPnPcommand(int s, const char * url, const char * service, - const char * action, struct UPNParg * args, - int * bufsize) -{ - char * buf; - - buf = simpleUPnPcommand2(s, url, service, action, args, bufsize, "1.1"); -/* - buf = simpleUPnPcommand2(s, url, service, action, args, bufsize, "1.0"); - if (!buf || *bufsize == 0) - { -#if DEBUG - printf("Error or no result from SOAP request; retrying with HTTP/1.1\n"); -#endif - buf = simpleUPnPcommand2(s, url, service, action, args, bufsize, "1.1"); - } -*/ - return buf; -} - -/* parseMSEARCHReply() - * the last 4 arguments are filled during the parsing : - * - location/locationsize : "location:" field of the SSDP reply packet - * - st/stsize : "st:" field of the SSDP reply packet. - * The strings are NOT null terminated */ -static void -parseMSEARCHReply(const char * reply, int size, - const char * * location, int * locationsize, - const char * * st, int * stsize) -{ - int a, b, i; - i = 0; - a = i; /* start of the line */ - b = 0; /* end of the "header" (position of the colon) */ - while(i<size) - { - switch(reply[i]) - { - case ':': - if(b==0) - { - b = i; /* end of the "header" */ - /*for(j=a; j<b; j++) - { - putchar(reply[j]); - } - */ - } - break; - case '\x0a': - case '\x0d': - if(b!=0) - { - /*for(j=b+1; j<i; j++) - { - putchar(reply[j]); - } - putchar('\n');*/ - /* skip the colon and white spaces */ - do { b++; } while(reply[b]==' '); - if(0==strncasecmp(reply+a, "location", 8)) - { - *location = reply+b; - *locationsize = i-b; - } - else if(0==strncasecmp(reply+a, "st", 2)) - { - *st = reply+b; - *stsize = i-b; - } - b = 0; - } - a = i+1; - break; - default: - break; - } - i++; - } -} - -/* port upnp discover : SSDP protocol */ -#define PORT 1900 -#define XSTR(s) STR(s) -#define STR(s) #s -#define UPNP_MCAST_ADDR "239.255.255.250" -/* for IPv6 */ -#define UPNP_MCAST_LL_ADDR "FF02::C" /* link-local */ -#define UPNP_MCAST_SL_ADDR "FF05::C" /* site-local */ - -#if defined (WIN32) && defined (NO_GETADDRINFO) -static int inet_pton(int af, const char* src, void* dst) - { - int address_length; - struct sockaddr_storage sa; - struct sockaddr_in *sin = (struct sockaddr_in *)&sa; - struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&sa; - - switch (af) { - case AF_INET: - address_length = sizeof (struct sockaddr_in); - break; - case AF_INET6: - address_length = sizeof (struct sockaddr_in6); - break; - default: - return -1; - } - - if (WSAStringToAddress ((LPTSTR) src, af, NULL, (LPSOCKADDR) &sa, &address_length) == 0) { - switch (af) - { - case AF_INET: - memcpy (dst, &sin->sin_addr, sizeof (struct in_addr)); - break; - - case AF_INET6: - memcpy (dst, &sin6->sin6_addr, sizeof (struct in6_addr)); - break; - } - return 1; - } - - return 0; - } -#endif - -/* upnpDiscover() : - * return a chained list of all devices found or NULL if - * no devices was found. - * It is up to the caller to free the chained list - * delay is in millisecond (poll) */ -LIBSPEC struct UPNPDev * -upnpDiscover(int delay, const char * multicastif, - const char * minissdpdsock, int sameport, - int ipv6, - int * error) -{ - struct UPNPDev * tmp; - struct UPNPDev * devlist = 0; - int opt = 1; - static const char MSearchMsgFmt[] = - "M-SEARCH * HTTP/1.1\r\n" - "HOST: %s:" XSTR(PORT) "\r\n" - "ST: %s\r\n" - "MAN: \"ssdp:discover\"\r\n" - "MX: %u\r\n" - "\r\n"; - static const char * const deviceList[] = { -#if 0 - "urn:schemas-upnp-org:device:InternetGatewayDevice:2", - "urn:schemas-upnp-org:service:WANIPConnection:2", -#endif - "urn:schemas-upnp-org:device:InternetGatewayDevice:1", - "urn:schemas-upnp-org:service:WANIPConnection:1", - "urn:schemas-upnp-org:service:WANPPPConnection:1", - "upnp:rootdevice", - 0 - }; - int deviceIndex = 0; - char bufr[1536]; /* reception and emission buffer */ - int sudp; - int n; - struct sockaddr_storage sockudp_r; - unsigned int mx; -#ifdef NO_GETADDRINFO - struct sockaddr_storage sockudp_w; -#else - int rv; - struct addrinfo hints, *servinfo, *p; -#endif -#ifdef WIN32 - MIB_IPFORWARDROW ip_forward; -#endif - int linklocal = 1; - - if(error) - *error = UPNPDISCOVER_UNKNOWN_ERROR; -#if !defined(WIN32) && !defined(__amigaos__) && !defined(__amigaos4__) - /* first try to get infos from minissdpd ! */ - if(!minissdpdsock) - minissdpdsock = "/var/run/minissdpd.sock"; - while(!devlist && deviceList[deviceIndex]) { - devlist = getDevicesFromMiniSSDPD(deviceList[deviceIndex], - minissdpdsock); - /* We return what we have found if it was not only a rootdevice */ - if(devlist && !strstr(deviceList[deviceIndex], "rootdevice")) { - if(error) - *error = UPNPDISCOVER_SUCCESS; - return devlist; - } - deviceIndex++; - } - deviceIndex = 0; -#endif - /* fallback to direct discovery */ -#ifdef WIN32 - sudp = socket(ipv6 ? PF_INET6 : PF_INET, SOCK_DGRAM, IPPROTO_UDP); -#else - sudp = socket(ipv6 ? PF_INET6 : PF_INET, SOCK_DGRAM, 0); -#endif - if(sudp < 0) - { - if(error) - *error = UPNPDISCOVER_SOCKET_ERROR; - PRINT_SOCKET_ERROR("socket"); - return NULL; - } - /* reception */ - memset(&sockudp_r, 0, sizeof(struct sockaddr_storage)); - if(ipv6) { - struct sockaddr_in6 * p = (struct sockaddr_in6 *)&sockudp_r; - p->sin6_family = AF_INET6; - if(sameport) - p->sin6_port = htons(PORT); - p->sin6_addr = in6addr_any; /* in6addr_any is not available with MinGW32 3.4.2 */ - } else { - struct sockaddr_in * p = (struct sockaddr_in *)&sockudp_r; - p->sin_family = AF_INET; - if(sameport) - p->sin_port = htons(PORT); - p->sin_addr.s_addr = INADDR_ANY; - } -#ifdef WIN32 -/* This code could help us to use the right Network interface for - * SSDP multicast traffic */ -/* Get IP associated with the index given in the ip_forward struct - * in order to give this ip to setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_IF) */ - if(!ipv6 - && (GetBestRoute(inet_addr("223.255.255.255"), 0, &ip_forward) == NO_ERROR)) { - DWORD dwRetVal = 0; - PMIB_IPADDRTABLE pIPAddrTable; - DWORD dwSize = 0; -#ifdef DEBUG - IN_ADDR IPAddr; -#endif - int i; -#ifdef DEBUG - printf("ifIndex=%lu nextHop=%lx \n", ip_forward.dwForwardIfIndex, ip_forward.dwForwardNextHop); -#endif - pIPAddrTable = (MIB_IPADDRTABLE *) malloc(sizeof (MIB_IPADDRTABLE)); - if (GetIpAddrTable(pIPAddrTable, &dwSize, 0) == ERROR_INSUFFICIENT_BUFFER) { - free(pIPAddrTable); - pIPAddrTable = (MIB_IPADDRTABLE *) malloc(dwSize); - } - if(pIPAddrTable) { - dwRetVal = GetIpAddrTable( pIPAddrTable, &dwSize, 0 ); -#ifdef DEBUG - printf("\tNum Entries: %ld\n", pIPAddrTable->dwNumEntries); -#endif - for (i=0; i < (int) pIPAddrTable->dwNumEntries; i++) { -#ifdef DEBUG - printf("\n\tInterface Index[%d]:\t%ld\n", i, pIPAddrTable->table[i].dwIndex); - IPAddr.S_un.S_addr = (u_long) pIPAddrTable->table[i].dwAddr; - printf("\tIP Address[%d]: \t%s\n", i, inet_ntoa(IPAddr) ); - IPAddr.S_un.S_addr = (u_long) pIPAddrTable->table[i].dwMask; - printf("\tSubnet Mask[%d]: \t%s\n", i, inet_ntoa(IPAddr) ); - IPAddr.S_un.S_addr = (u_long) pIPAddrTable->table[i].dwBCastAddr; - printf("\tBroadCast[%d]: \t%s (%ld)\n", i, inet_ntoa(IPAddr), pIPAddrTable->table[i].dwBCastAddr); - printf("\tReassembly size[%d]:\t%ld\n", i, pIPAddrTable->table[i].dwReasmSize); - printf("\tType and State[%d]:", i); - printf("\n"); -#endif - if (pIPAddrTable->table[i].dwIndex == ip_forward.dwForwardIfIndex) { - /* Set the address of this interface to be used */ - struct in_addr mc_if; - memset(&mc_if, 0, sizeof(mc_if)); - mc_if.s_addr = pIPAddrTable->table[i].dwAddr; - if(setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_IF, (const char *)&mc_if, sizeof(mc_if)) < 0) { - PRINT_SOCKET_ERROR("setsockopt"); - } - ((struct sockaddr_in *)&sockudp_r)->sin_addr.s_addr = pIPAddrTable->table[i].dwAddr; -#ifndef DEBUG - break; -#endif - } - } - free(pIPAddrTable); - pIPAddrTable = NULL; - } - } -#endif - -#ifdef WIN32 - if (setsockopt(sudp, SOL_SOCKET, SO_REUSEADDR, (const char *)&opt, sizeof (opt)) < 0) -#else - if (setsockopt(sudp, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof (opt)) < 0) -#endif - { - if(error) - *error = UPNPDISCOVER_SOCKET_ERROR; - PRINT_SOCKET_ERROR("setsockopt"); - return NULL; - } - - if(multicastif) - { - if(ipv6) { -#if !defined(WIN32) - /* according to MSDN, if_nametoindex() is supported since - * MS Windows Vista and MS Windows Server 2008. - * http://msdn.microsoft.com/en-us/library/bb408409%28v=vs.85%29.aspx */ - unsigned int ifindex = if_nametoindex(multicastif); /* eth0, etc. */ - if(setsockopt(sudp, IPPROTO_IPV6, IPV6_MULTICAST_IF, &ifindex, sizeof(&ifindex)) < 0) - { - PRINT_SOCKET_ERROR("setsockopt"); - } -#else -#ifdef DEBUG - printf("Setting of multicast interface not supported in IPv6 under Windows.\n"); -#endif -#endif - } else { - struct in_addr mc_if; - mc_if.s_addr = inet_addr(multicastif); /* ex: 192.168.x.x */ - ((struct sockaddr_in *)&sockudp_r)->sin_addr.s_addr = mc_if.s_addr; - if(setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_IF, (const char *)&mc_if, sizeof(mc_if)) < 0) - { - PRINT_SOCKET_ERROR("setsockopt"); - } - } - } - - /* Avant d'envoyer le paquet on bind pour recevoir la reponse */ - if (bind(sudp, (const struct sockaddr *)&sockudp_r, - ipv6 ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in)) != 0) - { - if(error) - *error = UPNPDISCOVER_SOCKET_ERROR; - PRINT_SOCKET_ERROR("bind"); - closesocket(sudp); - return NULL; - } - - if(error) - *error = UPNPDISCOVER_SUCCESS; - /* Calculating maximum response time in seconds */ - mx = ((unsigned int)delay) / 1000u; - /* receiving SSDP response packet */ - for(n = 0; deviceList[deviceIndex]; deviceIndex++) - { - if(n == 0) - { - /* sending the SSDP M-SEARCH packet */ - n = snprintf(bufr, sizeof(bufr), - MSearchMsgFmt, - ipv6 ? - (linklocal ? "[" UPNP_MCAST_LL_ADDR "]" : "[" UPNP_MCAST_SL_ADDR "]") - : UPNP_MCAST_ADDR, - deviceList[deviceIndex], mx); -#ifdef DEBUG - printf("Sending %s", bufr); -#endif -#ifdef NO_GETADDRINFO - /* the following code is not using getaddrinfo */ - /* emission */ - memset(&sockudp_w, 0, sizeof(struct sockaddr_storage)); - if(ipv6) { - struct sockaddr_in6 * p = (struct sockaddr_in6 *)&sockudp_w; - p->sin6_family = AF_INET6; - p->sin6_port = htons(PORT); - inet_pton(AF_INET6, - linklocal ? UPNP_MCAST_LL_ADDR : UPNP_MCAST_SL_ADDR, - &(p->sin6_addr)); - } else { - struct sockaddr_in * p = (struct sockaddr_in *)&sockudp_w; - p->sin_family = AF_INET; - p->sin_port = htons(PORT); - p->sin_addr.s_addr = inet_addr(UPNP_MCAST_ADDR); - } - n = sendto(sudp, bufr, n, 0, - (const void *)&sockudp_w, - ipv6 ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in)); - if (n < 0) { - if(error) - *error = UPNPDISCOVER_SOCKET_ERROR; - PRINT_SOCKET_ERROR("sendto"); - break; - } -#else /* #ifdef NO_GETADDRINFO */ - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_UNSPEC; // AF_INET6 or AF_INET - hints.ai_socktype = SOCK_DGRAM; - /*hints.ai_flags = */ - if ((rv = getaddrinfo(ipv6 - ? (linklocal ? UPNP_MCAST_LL_ADDR : UPNP_MCAST_SL_ADDR) - : UPNP_MCAST_ADDR, - XSTR(PORT), &hints, &servinfo)) != 0) { - if(error) - *error = UPNPDISCOVER_SOCKET_ERROR; -#ifdef WIN32 - fprintf(stderr, "getaddrinfo() failed: %d\n", rv); -#else - fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(rv)); -#endif - break; - } - for(p = servinfo; p; p = p->ai_next) { - n = sendto(sudp, bufr, n, 0, p->ai_addr, p->ai_addrlen); - if (n < 0) { - PRINT_SOCKET_ERROR("sendto"); - continue; - } - } - freeaddrinfo(servinfo); - if(n < 0) { - if(error) - *error = UPNPDISCOVER_SOCKET_ERROR; - break; - } -#endif /* #ifdef NO_GETADDRINFO */ - } - /* Waiting for SSDP REPLY packet to M-SEARCH */ - n = receivedata(sudp, bufr, sizeof(bufr), delay); - if (n < 0) { - /* error */ - if(error) - *error = UPNPDISCOVER_SOCKET_ERROR; - break; - } else if (n == 0) { - /* no data or Time Out */ - if (devlist) { - /* no more device type to look for... */ - if(error) - *error = UPNPDISCOVER_SUCCESS; - break; - } - if(ipv6) { - if(linklocal) { - linklocal = 0; - --deviceIndex; - } else { - linklocal = 1; - } - } - } else { - const char * descURL=NULL; - int urlsize=0; - const char * st=NULL; - int stsize=0; - /*printf("%d byte(s) :\n%s\n", n, bufr);*/ /* affichage du message */ - parseMSEARCHReply(bufr, n, &descURL, &urlsize, &st, &stsize); - if(st&&descURL) - { -#ifdef DEBUG - printf("M-SEARCH Reply:\nST: %.*s\nLocation: %.*s\n", - stsize, st, urlsize, descURL); -#endif - for(tmp=devlist; tmp; tmp = tmp->pNext) { - if(memcmp(tmp->descURL, descURL, urlsize) == 0 && - tmp->descURL[urlsize] == '\0' && - memcmp(tmp->st, st, stsize) == 0 && - tmp->st[stsize] == '\0') - break; - } - /* at the exit of the loop above, tmp is null if - * no duplicate device was found */ - if(tmp) - continue; - tmp = (struct UPNPDev *)malloc(sizeof(struct UPNPDev)+urlsize+stsize); - if(!tmp) { - /* memory allocation error */ - if(error) - *error = UPNPDISCOVER_MEMORY_ERROR; - break; - } - tmp->pNext = devlist; - tmp->descURL = tmp->buffer; - tmp->st = tmp->buffer + 1 + urlsize; - memcpy(tmp->buffer, descURL, urlsize); - tmp->buffer[urlsize] = '\0'; - memcpy(tmp->buffer + urlsize + 1, st, stsize); - tmp->buffer[urlsize+1+stsize] = '\0'; - devlist = tmp; - } - } - } - closesocket(sudp); - return devlist; -} - -/* freeUPNPDevlist() should be used to - * free the chained list returned by upnpDiscover() */ -LIBSPEC void freeUPNPDevlist(struct UPNPDev * devlist) -{ - struct UPNPDev * next; - while(devlist) - { - next = devlist->pNext; - free(devlist); - devlist = next; - } -} - -static void -url_cpy_or_cat(char * dst, const char * src, int n) -{ - if( (src[0] == 'h') - &&(src[1] == 't') - &&(src[2] == 't') - &&(src[3] == 'p') - &&(src[4] == ':') - &&(src[5] == '/') - &&(src[6] == '/')) - { - strncpy(dst, src, n); - } - else - { - int l = strlen(dst); - if(src[0] != '/') - dst[l++] = '/'; - if(l<=n) - strncpy(dst + l, src, n - l); - } -} - -/* Prepare the Urls for usage... - */ -LIBSPEC void GetUPNPUrls(struct UPNPUrls * urls, struct IGDdatas * data, - const char * descURL) -{ - char * p; - int n1, n2, n3, n4; - n1 = strlen(data->urlbase); - if(n1==0) - n1 = strlen(descURL); - n1 += 2; /* 1 byte more for Null terminator, 1 byte for '/' if needed */ - n2 = n1; n3 = n1; n4 = n1; - n1 += strlen(data->first.scpdurl); - n2 += strlen(data->first.controlurl); - n3 += strlen(data->CIF.controlurl); - n4 += strlen(data->IPv6FC.controlurl); - - urls->ipcondescURL = (char *)malloc(n1); - urls->controlURL = (char *)malloc(n2); - urls->controlURL_CIF = (char *)malloc(n3); - urls->controlURL_6FC = (char *)malloc(n4); - /* maintenant on chope la desc du WANIPConnection */ - if(data->urlbase[0] != '\0') - strncpy(urls->ipcondescURL, data->urlbase, n1); - else - strncpy(urls->ipcondescURL, descURL, n1); - p = strchr(urls->ipcondescURL+7, '/'); - if(p) p[0] = '\0'; - strncpy(urls->controlURL, urls->ipcondescURL, n2); - strncpy(urls->controlURL_CIF, urls->ipcondescURL, n3); - strncpy(urls->controlURL_6FC, urls->ipcondescURL, n4); - - url_cpy_or_cat(urls->ipcondescURL, data->first.scpdurl, n1); - - url_cpy_or_cat(urls->controlURL, data->first.controlurl, n2); - - url_cpy_or_cat(urls->controlURL_CIF, data->CIF.controlurl, n3); - - url_cpy_or_cat(urls->controlURL_6FC, data->IPv6FC.controlurl, n4); - -#ifdef DEBUG - printf("urls->ipcondescURL='%s' %u n1=%d\n", urls->ipcondescURL, - (unsigned)strlen(urls->ipcondescURL), n1); - printf("urls->controlURL='%s' %u n2=%d\n", urls->controlURL, - (unsigned)strlen(urls->controlURL), n2); - printf("urls->controlURL_CIF='%s' %u n3=%d\n", urls->controlURL_CIF, - (unsigned)strlen(urls->controlURL_CIF), n3); - printf("urls->controlURL_6FC='%s' %u n4=%d\n", urls->controlURL_6FC, - (unsigned)strlen(urls->controlURL_6FC), n4); -#endif -} - -LIBSPEC void -FreeUPNPUrls(struct UPNPUrls * urls) -{ - if(!urls) - return; - free(urls->controlURL); - urls->controlURL = 0; - free(urls->ipcondescURL); - urls->ipcondescURL = 0; - free(urls->controlURL_CIF); - urls->controlURL_CIF = 0; - free(urls->controlURL_6FC); - urls->controlURL_6FC = 0; -} - -int -UPNPIGD_IsConnected(struct UPNPUrls * urls, struct IGDdatas * data) -{ - char status[64]; - unsigned int uptime; - status[0] = '\0'; - UPNP_GetStatusInfo(urls->controlURL, data->first.servicetype, - status, &uptime, NULL); - if(0 == strcmp("Connected", status)) - { - return 1; - } - else - return 0; -} - - -/* UPNP_GetValidIGD() : - * return values : - * 0 = NO IGD found - * 1 = A valid connected IGD has been found - * 2 = A valid IGD has been found but it reported as - * not connected - * 3 = an UPnP device has been found but was not recognized as an IGD - * - * In any non zero return case, the urls and data structures - * passed as parameters are set. Donc forget to call FreeUPNPUrls(urls) to - * free allocated memory. - */ -LIBSPEC int -UPNP_GetValidIGD(struct UPNPDev * devlist, - struct UPNPUrls * urls, - struct IGDdatas * data, - char * lanaddr, int lanaddrlen) -{ - char * descXML; - int descXMLsize = 0; - struct UPNPDev * dev; - int ndev = 0; - int state; /* state 1 : IGD connected. State 2 : IGD. State 3 : anything */ - if(!devlist) - { -#ifdef DEBUG - printf("Empty devlist\n"); -#endif - return 0; - } - for(state = 1; state <= 3; state++) - { - for(dev = devlist; dev; dev = dev->pNext) - { - /* we should choose an internet gateway device. - * with st == urn:schemas-upnp-org:device:InternetGatewayDevice:1 */ - descXML = miniwget_getaddr(dev->descURL, &descXMLsize, - lanaddr, lanaddrlen); - if(descXML) - { - ndev++; - memset(data, 0, sizeof(struct IGDdatas)); - memset(urls, 0, sizeof(struct UPNPUrls)); - parserootdesc(descXML, descXMLsize, data); - free(descXML); - descXML = NULL; - if(0==strcmp(data->CIF.servicetype, - "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1") - || state >= 3 ) - { - GetUPNPUrls(urls, data, dev->descURL); - -#ifdef DEBUG - printf("UPNPIGD_IsConnected(%s) = %d\n", - urls->controlURL, - UPNPIGD_IsConnected(urls, data)); -#endif - if((state >= 2) || UPNPIGD_IsConnected(urls, data)) - return state; - FreeUPNPUrls(urls); - if(data->second.servicetype[0] != '\0') { -#ifdef DEBUG - printf("We tried %s, now we try %s !\n", - data->first.servicetype, data->second.servicetype); -#endif - /* swaping WANPPPConnection and WANIPConnection ! */ - memcpy(&data->tmp, &data->first, sizeof(struct IGDdatas_service)); - memcpy(&data->first, &data->second, sizeof(struct IGDdatas_service)); - memcpy(&data->second, &data->tmp, sizeof(struct IGDdatas_service)); - GetUPNPUrls(urls, data, dev->descURL); -#ifdef DEBUG - printf("UPNPIGD_IsConnected(%s) = %d\n", - urls->controlURL, - UPNPIGD_IsConnected(urls, data)); -#endif - if((state >= 2) || UPNPIGD_IsConnected(urls, data)) - return state; - FreeUPNPUrls(urls); - } - } - memset(data, 0, sizeof(struct IGDdatas)); - } -#ifdef DEBUG - else - { - printf("error getting XML description %s\n", dev->descURL); - } -#endif - } - } - return 0; -} - -/* UPNP_GetIGDFromUrl() - * Used when skipping the discovery process. - * return value : - * 0 - Not ok - * 1 - OK */ -int -UPNP_GetIGDFromUrl(const char * rootdescurl, - struct UPNPUrls * urls, - struct IGDdatas * data, - char * lanaddr, int lanaddrlen) -{ - char * descXML; - int descXMLsize = 0; - descXML = miniwget_getaddr(rootdescurl, &descXMLsize, - lanaddr, lanaddrlen); - if(descXML) { - memset(data, 0, sizeof(struct IGDdatas)); - memset(urls, 0, sizeof(struct UPNPUrls)); - parserootdesc(descXML, descXMLsize, data); - free(descXML); - descXML = NULL; - GetUPNPUrls(urls, data, rootdescurl); - return 1; - } else { - return 0; - } -} - diff --git a/libs/miniupnpc/miniupnpc.def b/libs/miniupnpc/miniupnpc.def index 10b9f58002..baa841f20b 100644 --- a/libs/miniupnpc/miniupnpc.def +++ b/libs/miniupnpc/miniupnpc.def @@ -1,9 +1,13 @@ LIBRARY ; miniupnpc library + miniupnpc EXPORTS ; miniupnpc upnpDiscover + upnpDiscoverDevice + upnpDiscoverDevices + upnpDiscoverAll freeUPNPDevlist parserootdesc UPNP_GetValidIGD @@ -23,7 +27,9 @@ EXPORTS UPNP_GetExternalIPAddress UPNP_GetLinkLayerMaxBitRates UPNP_AddPortMapping + UPNP_AddAnyPortMapping UPNP_DeletePortMapping + UPNP_DeletePortMappingRange UPNP_GetPortMappingNumberOfEntries UPNP_GetSpecificPortMappingEntry UPNP_GetGenericPortMappingEntry diff --git a/libs/miniupnpc/miniupnpc.pc.in b/libs/miniupnpc/miniupnpc.pc.in new file mode 100644 index 0000000000..3d33cbdb00 --- /dev/null +++ b/libs/miniupnpc/miniupnpc.pc.in @@ -0,0 +1,18 @@ +# this template is filled-in by CMake `configure_file(... @ONLY)` +# the `@....@` are filled in by CMake configure_file(), +# from variables set in your CMakeLists.txt or by CMake itself +# +# Good tutoral for understanding .pc files: +# https://people.freedesktop.org/~dbn/pkg-config-guide.html + +prefix="@CMAKE_INSTALL_PREFIX@" +exec_prefix="${prefix}" +libdir="${prefix}/lib" +includedir="${prefix}/include" + +Name: @PROJECT_NAME@ +Description: @PROJECT_DESCRIPTION@ +URL: @PROJECT_HOMEPAGE_URL@ +Version: @PROJECT_VERSION@ +Libs: -L"${libdir}" -lminiupnpc +Cflags: -I"${includedir}" diff --git a/libs/miniupnpc/miniupnpc.rc b/libs/miniupnpc/miniupnpc.rc new file mode 100644 index 0000000000..92954afdaf --- /dev/null +++ b/libs/miniupnpc/miniupnpc.rc @@ -0,0 +1,36 @@ +#include <winver.h> +#include "rc_version.h" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION LIBMINIUPNPC_MAJOR_VERSION,LIBMINIUPNPC_MINOR_VERSION,LIBMINIUPNPC_MICRO_VERSION,0 + PRODUCTVERSION LIBMINIUPNPC_MAJOR_VERSION,LIBMINIUPNPC_MINOR_VERSION,LIBMINIUPNPC_MICRO_VERSION,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0 +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN // not used +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "04090000" /* Lang = US English, Charset = ASCII */ + BEGIN + VALUE "FileDescription", "MiniUPnPc library\0" + VALUE "FileVersion", LIBMINIUPNPC_DOTTED_VERSION "\0" + VALUE "InternalName", INTERNAL_NAME + VALUE "LegalCopyright", "Copyright (C) Thomas Bernard\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", INTERNAL_NAME + VALUE "ProductName", "MiniUPnPc\0" + VALUE "ProductVersion", LIBMINIUPNPC_DOTTED_VERSION "\0" + VALUE "Comments", "For more information visit https://miniupnp.tuxfamil.org/\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0 /* US English, ASCII */ + END +END diff --git a/libs/miniupnpc/miniupnpcstrings.h.cmake b/libs/miniupnpc/miniupnpcstrings.h.cmake index a3726350ce..78c8fe9c53 100644 --- a/libs/miniupnpc/miniupnpcstrings.h.cmake +++ b/libs/miniupnpc/miniupnpcstrings.h.cmake @@ -1,7 +1,15 @@ -#ifndef __MINIUPNPCSTRINGS_H__ -#define __MINIUPNPCSTRINGS_H__ +#ifndef MINIUPNPCSTRINGS_H_INCLUDED +#define MINIUPNPCSTRINGS_H_INCLUDED #define OS_STRING "${CMAKE_SYSTEM_NAME}" #define MINIUPNPC_VERSION_STRING "${MINIUPNPC_VERSION}" +#if 0 +/* according to "UPnP Device Architecture 1.0" */ +#define UPNP_VERSION_STRING "UPnP/1.0" +#else +/* according to "UPnP Device Architecture 1.1" */ +#define UPNP_VERSION_STRING "UPnP/1.1" +#endif + #endif diff --git a/libs/miniupnpc/miniupnpcstrings.h.in b/libs/miniupnpc/miniupnpcstrings.h.in index 201c9a862a..68bf4293df 100644 --- a/libs/miniupnpc/miniupnpcstrings.h.in +++ b/libs/miniupnpc/miniupnpcstrings.h.in @@ -1,15 +1,23 @@ -/* $Id: miniupnpcstrings.h.in,v 1.4 2011/01/04 11:41:53 nanard Exp $ */ +/* $Id: miniupnpcstrings.h.in,v 1.6 2014/11/04 22:31:55 nanard Exp $ */ /* Project: miniupnp * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ * Author: Thomas Bernard - * Copyright (c) 2005-2011 Thomas Bernard + * Copyright (c) 2005-2014 Thomas Bernard * This software is subjects to the conditions detailed * in the LICENCE file provided within this distribution */ -#ifndef __MINIUPNPCSTRINGS_H__ -#define __MINIUPNPCSTRINGS_H__ +#ifndef MINIUPNPCSTRINGS_H_INCLUDED +#define MINIUPNPCSTRINGS_H_INCLUDED #define OS_STRING "OS/version" #define MINIUPNPC_VERSION_STRING "version" +#if 0 +/* according to "UPnP Device Architecture 1.0" */ +#define UPNP_VERSION_STRING "UPnP/1.0" +#else +/* according to "UPnP Device Architecture 1.1" */ +#define UPNP_VERSION_STRING "UPnP/1.1" +#endif + #endif diff --git a/libs/miniupnpc/miniwget.h b/libs/miniupnpc/miniwget.h deleted file mode 100644 index 8314b40003..0000000000 --- a/libs/miniupnpc/miniwget.h +++ /dev/null @@ -1,30 +0,0 @@ -/* $Id: miniwget.h,v 1.6 2010/12/09 16:11:33 nanard Exp $ */ -/* Project : miniupnp - * Author : Thomas Bernard - * Copyright (c) 2005 Thomas Bernard - * This software is subject to the conditions detailed in the - * LICENCE file provided in this distribution. - * */ -#ifndef __MINIWGET_H__ -#define __MINIWGET_H__ - -#include "declspec.h" - -#ifdef __cplusplus -extern "C" { -#endif - -LIBSPEC void * getHTTPResponse(int s, int * size); - -LIBSPEC void * miniwget(const char *, int *); - -LIBSPEC void * miniwget_getaddr(const char *, int *, char *, int); - -int parseURL(const char *, char *, unsigned short *, char * *); - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/libs/miniupnpc/msvc/genminiupnpcstrings.vbs b/libs/miniupnpc/msvc/genminiupnpcstrings.vbs new file mode 100644 index 0000000000..415b2ee6b7 --- /dev/null +++ b/libs/miniupnpc/msvc/genminiupnpcstrings.vbs @@ -0,0 +1,112 @@ +' VBScript to generate miniupnpcstrings.h +' Copyright 2018 Thomas Bernard +'Set WshShell = CreateObject("WScript.Shell") +Set FSO = CreateObject("Scripting.FileSystemObject") +versionfile = "..\version" +infile = "..\miniupnpcstrings.h.in" +outfile = "..\miniupnpcstrings.h" +outfilerc = "..\rc_version.h" + +On Error Resume Next + +'Wscript.Echo revision + +Err.Clear +Set f = FSO.OpenTextFile(versionfile, 1, False) ' 1 = Read +If Err.Number = 0 Then + version = f.ReadLine + f.Close +Else + ' Exit error + WScript.Quit 1 +End If + +os_version = "0.0.0" +strComputer = "." +Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") +Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem") +For Each objOperatingSystem in colOperatingSystems + 'Wscript.Echo objOperatingSystem.Caption & " -- " + os_version = objOperatingSystem.Version +Next + +'Wscript.Echo os_version + +Dim array +needWrite = True + +' First Check if the file already contains the right versions +Err.Clear +Set f_in = FSO.OpenTextFile(outfile, 1, False) +If Err.Number = 0 Then + old_version = "" + old_os_version = "" + Do Until f_in.AtEndOfStream + line = f_in.ReadLine + If Len(line) > 0 Then + array = Split(line, " ") + If UBound(array) >= 2 And array(0) = "#define" Then + If array(1) = "OS_STRING" Then + old_os_version = Replace(array(2), Chr(34), "") + ElseIf array(1) = "MINIUPNPC_VERSION_STRING" Then + old_version = Replace(array(2), Chr(34), "") + End if + End if + End If + Loop + f_in.Close + If old_version = version And old_os_version = "MSWindows/" & os_version Then + needWrite = False + Else + needWrite = True + End If +End If + +If Not needWrite Then + ' check files dates + Set fIn1 = FSO.GetFile(versionfile) + Set fIn2 = FSO.GetFile(infile) + Set fOut = FSO.GetFile(outfile) + If DateDiff("s", fIn1.DateLastModified, fOut.DateLastModified) < 0 Then + needWrite = True + End If + If DateDiff("s", fIn2.DateLastModified, fOut.DateLastModified) < 0 Then + needWrite = True + End If +End If + +If Not needWrite Then + ' nothing to do + WScript.Quit 0 +End if + +' generate the file +Err.Clear +Set f_in = FSO.OpenTextFile(infile, 1, False) +If Err.Number = 0 Then + Set f_out = FSO.OpenTextFile(outfile, 2, True) ' 2 = Write + Do Until f_in.AtEndOfStream + line = f_in.ReadLine + If Len(line) > 0 Then + array = Split(line, " ") + If UBound(array) >= 2 And array(0) = "#define" Then + If array(1) = "OS_STRING" Then + line = "#define OS_STRING " & Chr(34) & "MSWindows/" & os_version & Chr(34) + ElseIf array(1) = "MINIUPNPC_VERSION_STRING" Then + line = "#define MINIUPNPC_VERSION_STRING " & Chr(34) & version & Chr(34) + End if + End if + End If + f_out.WriteLine line + Loop + f_in.Close + f_out.Close +End If + +Set f_out = FSO.OpenTextFile(outfilerc, 2, True) ' 2 = Write +f_out.WriteLine "#define LIBMINIUPNPC_DOTTED_VERSION " & Chr(34) & version & Chr(34) +ver = Split(version, ".") +f_out.WriteLine "#define LIBMINIUPNPC_MAJOR_VERSION " & ver(0) +f_out.WriteLine "#define LIBMINIUPNPC_MINOR_VERSION " & ver(1) +f_out.WriteLine "#define LIBMINIUPNPC_MICRO_VERSION " & ver(2) +f_out.Close diff --git a/libs/miniupnpc/msvc/miniupnpc.vcproj b/libs/miniupnpc/msvc/miniupnpc.vcproj index cce2de576f..90646c53f7 100644 --- a/libs/miniupnpc/msvc/miniupnpc.vcproj +++ b/libs/miniupnpc/msvc/miniupnpc.vcproj @@ -41,7 +41,7 @@ <Tool Name="VCCLCompilerTool" Optimization="0" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;WIN32;STATICLIB;DEBUG" + PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;MINIUPNP_STATICLIB;DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -104,7 +104,7 @@ Name="VCCLCompilerTool" Optimization="2" EnableIntrinsicFunctions="true" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;WIN32;STATICLIB" + PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;MINIUPNP_STATICLIB" RuntimeLibrary="2" EnableFunctionLevelLinking="true" UsePrecompiledHeader="0" @@ -160,6 +160,10 @@ RelativePath="..\minisoap.c" > </File> + <File + RelativePath="..\minissdpc.c" + > + </File> <File RelativePath="..\miniupnpc.c" > @@ -184,6 +188,10 @@ RelativePath="..\upnpcommands.c" > </File> + <File + RelativePath="..\upnpdev.c" + > + </File> <File RelativePath="..\upnperrors.c" > @@ -198,10 +206,6 @@ Filter="h;hpp;hxx;hm;inl;inc;xsd" UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" > - <File - RelativePath="..\bsdqueue.h" - > - </File> <File RelativePath="..\connecthostport.h" > @@ -218,6 +222,10 @@ RelativePath="..\minisoap.h" > </File> + <File + RelativePath="..\minissdpc.h" + > + </File> <File RelativePath="..\miniupnpc.h" > @@ -250,6 +258,10 @@ RelativePath="..\upnpcommands.h" > </File> + <File + RelativePath="..\upnpdev.h" + > + </File> <File RelativePath="..\upnperrors.h" > diff --git a/libs/miniupnpc/msvc/miniupnpc.vcxproj b/libs/miniupnpc/msvc/miniupnpc.vcxproj new file mode 100644 index 0000000000..24c24ea081 --- /dev/null +++ b/libs/miniupnpc/msvc/miniupnpc.vcxproj @@ -0,0 +1,215 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug Dll|Win32"> + <Configuration>Debug Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release Dll|Win32"> + <Configuration>Release Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{D28CE435-CB33-4BAE-8A52-C6EF915956F5}</ProjectGuid> + <RootNamespace>miniupnpc</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>14.0.25123.0</_ProjectFileVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <OutDir>$(SolutionDir)$(Configuration)\</OutDir> + <IntDir>$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'"> + <OutDir>$(SolutionDir)$(Configuration)\</OutDir> + <IntDir>$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>$(SolutionDir)$(Configuration)\</OutDir> + <IntDir>$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'"> + <OutDir>$(SolutionDir)$(Configuration)\</OutDir> + <IntDir>$(Configuration)\</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;MINIUPNP_STATICLIB;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader /> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <PreBuildEvent> + <Command>genminiupnpcstrings.vbs</Command> + </PreBuildEvent> + <ResourceCompile> + <PreprocessorDefinitions>INTERNAL_NAME="\"miniupnpc.dll\0\"";%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;MINIUPNP_EXPORTS;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <PreBuildEvent> + <Command>genminiupnpcstrings.vbs</Command> + </PreBuildEvent> + <Link> + <AdditionalDependencies>ws2_32.lib;IPHlpApi.Lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <ResourceCompile> + <PreprocessorDefinitions>INTERNAL_NAME="\"miniupnpc.dll\0\"";%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;MINIUPNP_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader /> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <PreBuildEvent> + <Command>genminiupnpcstrings.vbs</Command> + </PreBuildEvent> + <ResourceCompile> + <PreprocessorDefinitions>INTERNAL_NAME="\"miniupnpc.dll\0\"";%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;MINIUPNP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <PreBuildEvent> + <Command>genminiupnpcstrings.vbs</Command> + </PreBuildEvent> + <Link> + <AdditionalDependencies>ws2_32.lib;IPHlpApi.Lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <ResourceCompile> + <PreprocessorDefinitions>INTERNAL_NAME="\"miniupnpc.dll\0\"";%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\src\addr_is_reserved.c" /> + <ClCompile Include="..\src\connecthostport.c" /> + <ClCompile Include="..\src\igd_desc_parse.c" /> + <ClCompile Include="..\src\minisoap.c" /> + <ClCompile Include="..\src\minissdpc.c" /> + <ClCompile Include="..\src\miniupnpc.c" /> + <ClCompile Include="..\src\miniwget.c" /> + <ClCompile Include="..\src\minixml.c" /> + <ClCompile Include="..\src\portlistingparse.c" /> + <ClCompile Include="..\src\receivedata.c" /> + <ClCompile Include="..\src\upnpcommands.c" /> + <ClCompile Include="..\src\upnpdev.c" /> + <ClCompile Include="..\src\upnperrors.c" /> + <ClCompile Include="..\src\upnpreplyparse.c" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\src\addr_is_reserved.h" /> + <ClInclude Include="..\src\connecthostport.h" /> + <ClInclude Include="..\include\igd_desc_parse.h" /> + <ClInclude Include="..\src\minisoap.h" /> + <ClInclude Include="..\src\minissdpc.h" /> + <ClInclude Include="..\include\miniupnpc.h" /> + <ClInclude Include="..\miniupnpcstrings.h" /> + <ClInclude Include="..\include\miniupnpctypes.h" /> + <ClInclude Include="..\include\miniupnpc_declspec.h" /> + <ClInclude Include="..\include\miniwget.h" /> + <ClInclude Include="..\src\miniwget_private.h" /> + <ClInclude Include="..\src\minixml.h" /> + <ClInclude Include="..\include\portlistingparse.h" /> + <ClInclude Include="..\src\receivedata.h" /> + <ClInclude Include="..\include\upnpcommands.h" /> + <ClInclude Include="..\include\upnpdev.h" /> + <ClInclude Include="..\include\upnperrors.h" /> + <ClInclude Include="..\include\upnpreplyparse.h" /> + <ClInclude Include="..\src\win32_snprintf.h" /> + <ClInclude Include="..\rc_version.h" /> + </ItemGroup> + <ItemGroup> + <None Include="genminiupnpcstrings.vbs" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="../miniupnpc.rc" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/libs/miniupnpc/msvc/miniupnpc.vcxproj.filters b/libs/miniupnpc/msvc/miniupnpc.vcxproj.filters new file mode 100644 index 0000000000..245bc4c248 --- /dev/null +++ b/libs/miniupnpc/msvc/miniupnpc.vcxproj.filters @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Fichiers sources"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Fichiers d%27en-tête"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Fichiers de ressources"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> + </Filter> + <Filter Include="scripts"> + <UniqueIdentifier>{508da401-2f8e-4fdb-9a43-95baa95a91e7}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\src\addr_is_reserved.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\connecthostport.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\igd_desc_parse.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\minisoap.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\minissdpc.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\miniupnpc.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\miniwget.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\minixml.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\portlistingparse.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\receivedata.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\upnpcommands.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\upnpdev.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\upnperrors.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + <ClCompile Include="..\src\upnpreplyparse.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\rc_version.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\src\addr_is_reserved.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\src\connecthostport.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\include\igd_desc_parse.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\src\minisoap.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\src\minissdpc.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\include\miniupnpc.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\include\miniupnpcstrings.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\include\miniupnpctypes.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\include\miniupnpc_declspec.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\include\miniwget.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\src\minixml.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\include\portlistingparse.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\include\receivedata.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\include\upnpcommands.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\include\upnpdev.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\include\upnperrors.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\include\upnpreplyparse.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\src\win32_snprintf.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <None Include="genminiupnpcstrings.vbs"> + <Filter>scripts</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="../miniupnpc.rc"> + <Filter>Fichiers de ressources</Filter> + </ResourceCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/libs/miniupnpc/msvc/miniupnpc_vs2010.sln b/libs/miniupnpc/msvc/miniupnpc_vs2010.sln new file mode 100644 index 0000000000..2fdfe91abd --- /dev/null +++ b/libs/miniupnpc/msvc/miniupnpc_vs2010.sln @@ -0,0 +1,36 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C++ Express 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniupnpc_vs2010", "miniupnpc_vs2010.vcxproj", "{D28CE435-CB33-4BAE-8A52-C6EF915956F5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "upnpc-static_vs2010", "upnpc-static_vs2010.vcxproj", "{469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Dll|Win32 = Debug Dll|Win32 + Debug|Win32 = Debug|Win32 + Release Dll|Win32 = Release Dll|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Debug Dll|Win32.ActiveCfg = Debug Dll|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Debug Dll|Win32.Build.0 = Debug Dll|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Debug|Win32.ActiveCfg = Debug|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Debug|Win32.Build.0 = Debug|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Release Dll|Win32.ActiveCfg = Release Dll|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Release Dll|Win32.Build.0 = Release Dll|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Release|Win32.ActiveCfg = Release|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Release|Win32.Build.0 = Release|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Debug Dll|Win32.ActiveCfg = Debug Dll|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Debug Dll|Win32.Build.0 = Debug Dll|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Debug|Win32.ActiveCfg = Debug|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Debug|Win32.Build.0 = Debug|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Release Dll|Win32.ActiveCfg = Release Dll|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Release Dll|Win32.Build.0 = Release Dll|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Release|Win32.ActiveCfg = Release|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/libs/miniupnpc/msvc/miniupnpc_vs2010.vcxproj b/libs/miniupnpc/msvc/miniupnpc_vs2010.vcxproj new file mode 100644 index 0000000000..e5433fb369 --- /dev/null +++ b/libs/miniupnpc/msvc/miniupnpc_vs2010.vcxproj @@ -0,0 +1,209 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug Dll|Win32"> + <Configuration>Debug Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release Dll|Win32"> + <Configuration>Release Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{D28CE435-CB33-4BAE-8A52-C6EF915956F5}</ProjectGuid> + <RootNamespace>miniupnpc</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'">$(SolutionDir)$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'">$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'">$(SolutionDir)$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'">$(Configuration)\</IntDir> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">miniupnpc</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'">miniupnpc</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">miniupnpc</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'">miniupnpc</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;MINIUPNP_STATICLIB;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <PreBuildEvent> + <Command>genminiupnpcstrings.vbs</Command> + </PreBuildEvent> + <ResourceCompile> + <PreprocessorDefinitions>INTERNAL_NAME="\"miniupnpc.dll\0\"";%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;MINIUPNP_EXPORTS;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <PreBuildEvent> + <Command>genminiupnpcstrings.vbs</Command> + </PreBuildEvent> + <Link> + <AdditionalDependencies>ws2_32.lib;IPHlpApi.Lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <ResourceCompile> + <PreprocessorDefinitions>INTERNAL_NAME="\"miniupnpc.dll\0\"";%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;MINIUPNP_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <PreBuildEvent> + <Command>genminiupnpcstrings.vbs</Command> + </PreBuildEvent> + <ResourceCompile> + <PreprocessorDefinitions>INTERNAL_NAME="\"miniupnpc.dll\0\"";%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;MINIUPNP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <PreBuildEvent> + <Command>genminiupnpcstrings.vbs</Command> + </PreBuildEvent> + <Link> + <AdditionalDependencies>ws2_32.lib;IPHlpApi.Lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <ResourceCompile> + <PreprocessorDefinitions>INTERNAL_NAME="\"miniupnpc.dll\0\"";%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\src\addr_is_reserved.c" /> + <ClCompile Include="..\src\connecthostport.c" /> + <ClCompile Include="..\src\igd_desc_parse.c" /> + <ClCompile Include="..\src\minisoap.c" /> + <ClCompile Include="..\src\minissdpc.c" /> + <ClCompile Include="..\src\miniupnpc.c" /> + <ClCompile Include="..\src\miniwget.c" /> + <ClCompile Include="..\src\minixml.c" /> + <ClCompile Include="..\src\portlistingparse.c" /> + <ClCompile Include="..\src\receivedata.c" /> + <ClCompile Include="..\src\upnpcommands.c" /> + <ClCompile Include="..\src\upnpdev.c" /> + <ClCompile Include="..\src\upnperrors.c" /> + <ClCompile Include="..\src\upnpreplyparse.c" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\src\addr_is_reserved.h" /> + <ClInclude Include="..\src\connecthostport.h" /> + <ClInclude Include="..\include\igd_desc_parse.h" /> + <ClInclude Include="..\src\minisoap.h" /> + <ClInclude Include="..\src\minissdpc.h" /> + <ClInclude Include="..\include\miniupnpc.h" /> + <ClInclude Include="..\miniupnpcstrings.h" /> + <ClInclude Include="..\include\miniupnpctypes.h" /> + <ClInclude Include="..\include\miniupnpc_declspec.h" /> + <ClInclude Include="..\include\miniwget.h" /> + <ClInclude Include="..\src\miniwget_private.h" /> + <ClInclude Include="..\src\minixml.h" /> + <ClInclude Include="..\include\portlistingparse.h" /> + <ClInclude Include="..\src\receivedata.h" /> + <ClInclude Include="..\include\upnpcommands.h" /> + <ClInclude Include="..\include\upnpdev.h" /> + <ClInclude Include="..\include\upnperrors.h" /> + <ClInclude Include="..\include\upnpreplyparse.h" /> + <ClInclude Include="..\src\win32_snprintf.h" /> + <ClInclude Include="..\rc_version.h" /> + </ItemGroup> + <ItemGroup> + <None Include="genminiupnpcstrings.vbs" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="../miniupnpc.rc" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/libs/miniupnpc/msvc/miniupnpc_vs2010.vcxproj.filters b/libs/miniupnpc/msvc/miniupnpc_vs2010.vcxproj.filters new file mode 100644 index 0000000000..deb8688d4c --- /dev/null +++ b/libs/miniupnpc/msvc/miniupnpc_vs2010.vcxproj.filters @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <ClCompile Include="..\connecthostport.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\upnpreplyparse.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\igd_desc_parse.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\minisoap.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\minissdpc.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\miniupnpc.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\miniwget.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\minixml.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\portlistingparse.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\receivedata.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\upnpcommands.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\upnpdev.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\upnperrors.c"> + <Filter>sources</Filter> + </ClCompile> + <ClCompile Include="..\addr_is_reserved.c"> + <Filter>sources</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\connecthostport.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\igd_desc_parse.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\minisoap.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\minissdpc.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\miniupnpc.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\miniupnpcstrings.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\miniupnpctypes.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\miniwget.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\minixml.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\portlistingparse.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\receivedata.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\upnpcommands.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\upnpdev.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\upnperrors.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\upnpreplyparse.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\miniupnpc_socketdef.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\miniupnpc_declspec.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\miniwget_private.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\addr_is_reserved.h"> + <Filter>headers</Filter> + </ClInclude> + <ClInclude Include="..\win32_snprintf.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + <ClInclude Include="..\rc_version.h"> + <Filter>Fichiers d%27en-tête</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <Filter Include="sources"> + <UniqueIdentifier>{f2cbd46b-f63f-412e-80e5-b7c9048a1add}</UniqueIdentifier> + </Filter> + <Filter Include="headers"> + <UniqueIdentifier>{2b3996de-1bc4-418b-8a83-a5f34fdf0df5}</UniqueIdentifier> + </Filter> + <Filter Include="scripts"> + <UniqueIdentifier>{45dbc39d-c3ca-4a75-adf0-76070e20415a}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="genminiupnpcstrings.vbs"> + <Filter>scripts</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="../miniupnpc.rc"> + <Filter>Fichiers de ressources</Filter> + </ResourceCompile> + </ItemGroup> +</Project> diff --git a/libs/miniupnpc/msvc/miniupnpc_vs2015.sln b/libs/miniupnpc/msvc/miniupnpc_vs2015.sln new file mode 100644 index 0000000000..76318f69ce --- /dev/null +++ b/libs/miniupnpc/msvc/miniupnpc_vs2015.sln @@ -0,0 +1,38 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25123.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniupnpc", "miniupnpc.vcxproj", "{D28CE435-CB33-4BAE-8A52-C6EF915956F5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "upnpc-static", "upnpc-static.vcxproj", "{469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Dll|Win32 = Debug Dll|Win32 + Debug|Win32 = Debug|Win32 + Release Dll|Win32 = Release Dll|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Debug Dll|Win32.ActiveCfg = Debug Dll|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Debug Dll|Win32.Build.0 = Debug Dll|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Debug|Win32.ActiveCfg = Debug|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Debug|Win32.Build.0 = Debug|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Release Dll|Win32.ActiveCfg = Release Dll|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Release Dll|Win32.Build.0 = Release Dll|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Release|Win32.ActiveCfg = Release|Win32 + {D28CE435-CB33-4BAE-8A52-C6EF915956F5}.Release|Win32.Build.0 = Release|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Debug Dll|Win32.ActiveCfg = Debug Dll|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Debug Dll|Win32.Build.0 = Debug Dll|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Debug|Win32.ActiveCfg = Debug|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Debug|Win32.Build.0 = Debug|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Release Dll|Win32.ActiveCfg = Release Dll|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Release Dll|Win32.Build.0 = Release Dll|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Release|Win32.ActiveCfg = Release|Win32 + {469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/libs/miniupnpc/msvc/upnpc-static.vcproj b/libs/miniupnpc/msvc/upnpc-static.vcproj index 37fbbca272..f2246f57bd 100644 --- a/libs/miniupnpc/msvc/upnpc-static.vcproj +++ b/libs/miniupnpc/msvc/upnpc-static.vcproj @@ -41,7 +41,7 @@ <Tool Name="VCCLCompilerTool" Optimization="0" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;STATICLIB;DEBUG;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_DEBUG;_CONSOLE;MINIUPNP_STATICLIB;DEBUG;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -115,7 +115,7 @@ Name="VCCLCompilerTool" Optimization="2" EnableIntrinsicFunctions="true" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;STATICLIB" + PreprocessorDefinitions="NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;MINIUPNP_STATICLIB" RuntimeLibrary="2" EnableFunctionLevelLinking="true" UsePrecompiledHeader="0" diff --git a/libs/miniupnpc/msvc/upnpc-static.vcxproj b/libs/miniupnpc/msvc/upnpc-static.vcxproj new file mode 100644 index 0000000000..c3e58e74f6 --- /dev/null +++ b/libs/miniupnpc/msvc/upnpc-static.vcxproj @@ -0,0 +1,184 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug Dll|Win32"> + <Configuration>Debug Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release Dll|Win32"> + <Configuration>Release Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}</ProjectGuid> + <RootNamespace>upnpcstatic</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>14.0.25123.0</_ProjectFileVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <OutDir>$(SolutionDir)$(Configuration)\</OutDir> + <IntDir>$(Configuration)\</IntDir> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'"> + <OutDir>$(SolutionDir)$(Configuration)\</OutDir> + <IntDir>$(Configuration)\</IntDir> + <LinkIncremental>true</LinkIncremental> + <TargetName>upnpc-shared</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>$(SolutionDir)$(Configuration)\</OutDir> + <IntDir>$(Configuration)\</IntDir> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'"> + <OutDir>$(SolutionDir)$(Configuration)\</OutDir> + <IntDir>$(Configuration)\</IntDir> + <LinkIncremental>false</LinkIncremental> + <TargetName>upnpc-shared</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;MINIUPNP_STATICLIB;DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader /> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <AdditionalDependencies>ws2_32.lib;$(Configuration)\miniupnpc.lib;IPHlpApi.Lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;MINIUPNP_STATICLIB;DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <AdditionalDependencies>ws2_32.lib;$(Configuration)\miniupnpc.lib;$(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;MINIUPNP_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader /> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <AdditionalDependencies>ws2_32.lib;$(Configuration)\miniupnpc.lib;IPHlpApi.Lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <AdditionalDependencies>ws2_32.lib;$(Configuration)\miniupnpc.lib;IPHlpApi.Lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\src\upnpc.c" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="miniupnpc.vcxproj"> + <Project>{d28ce435-cb33-4bae-8a52-c6ef915956f5}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/libs/miniupnpc/msvc/upnpc-static.vcxproj.filters b/libs/miniupnpc/msvc/upnpc-static.vcxproj.filters new file mode 100644 index 0000000000..a67f6d3176 --- /dev/null +++ b/libs/miniupnpc/msvc/upnpc-static.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Fichiers sources"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Fichiers d%27en-tête"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Fichiers de ressources"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\src\upnpc.c"> + <Filter>Fichiers sources</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/libs/miniupnpc/msvc/upnpc-static_vs2010.vcxproj b/libs/miniupnpc/msvc/upnpc-static_vs2010.vcxproj new file mode 100644 index 0000000000..d97fb5887f --- /dev/null +++ b/libs/miniupnpc/msvc/upnpc-static_vs2010.vcxproj @@ -0,0 +1,176 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug Dll|Win32"> + <Configuration>Debug Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release Dll|Win32"> + <Configuration>Release Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{469E1CF6-08A2-4B7B-A2AA-5BDB089857C1}</ProjectGuid> + <RootNamespace>upnpcstatic</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'">$(SolutionDir)$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'">$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'">$(SolutionDir)$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'">$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'">false</LinkIncremental> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">upnpc-static</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'">upnpc-static</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">upnpc-static</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'">upnpc-static</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;MINIUPNP_STATICLIB;DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <AdditionalDependencies>ws2_32.lib;IPHlpApi.Lib;$(Configuration)\miniupnpc.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dll|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <AdditionalDependencies>ws2_32.lib;$(Configuration)\miniupnpc.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;MINIUPNP_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <AdditionalDependencies>ws2_32.lib;IPHlpApi.Lib;$(Configuration)\miniupnpc.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Dll|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <AdditionalIncludeDirectories>..;..\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <AdditionalDependencies>ws2_32.lib;$(Configuration)\miniupnpc.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\src\upnpc.c" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="miniupnpc_vs2010.vcxproj"> + <Project>{d28ce435-cb33-4bae-8a52-c6ef915956f5}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/libs/miniupnpc/pymoduletest.py b/libs/miniupnpc/pymoduletest.py index d35a3b0921..0bda1bf2e9 100644 --- a/libs/miniupnpc/pymoduletest.py +++ b/libs/miniupnpc/pymoduletest.py @@ -1,35 +1,70 @@ -#! /usr/bin/python +#! /usr/bin/env python +# vim: tabstop=2 shiftwidth=2 expandtab # MiniUPnP project # Author : Thomas Bernard +# Python 3 # This Sample code is public domain. -# website : http://miniupnp.tuxfamily.org/ +# website : https://miniupnp.tuxfamily.org/ # import the python miniupnpc module import miniupnpc import sys -# create the object -u = miniupnpc.UPnP() -print 'inital(default) values :' -print ' discoverdelay', u.discoverdelay -print ' lanaddr', u.lanaddr -print ' multicastif', u.multicastif -print ' minissdpdsocket', u.minissdpdsocket -u.discoverdelay = 200; +try: + import argparse + parser = argparse.ArgumentParser() + parser.add_argument('-m', '--multicastif') + parser.add_argument('-p', '--minissdpdsocket') + parser.add_argument('-d', '--discoverdelay', type=int, default=200) + parser.add_argument('-z', '--localport', type=int, default=0) + # create the object + u = miniupnpc.UPnP(**vars(parser.parse_args())) +except: + print('argparse not available') + i = 1 + multicastif = None + minissdpdsocket = None + discoverdelay = 200 + localport = 0 + while i < len(sys.argv): + print(sys.argv[i]) + if sys.argv[i] == '-m' or sys.argv[i] == '--multicastif': + multicastif = sys.argv[i+1] + elif sys.argv[i] == '-p' or sys.argv[i] == '--minissdpdsocket': + minissdpdsocket = sys.argv[i+1] + elif sys.argv[i] == '-d' or sys.argv[i] == '--discoverdelay': + discoverdelay = int(sys.argv[i+1]) + elif sys.argv[i] == '-z' or sys.argv[i] == '--localport': + localport = int(sys.argv[i+1]) + else: + raise Exception('invalid argument %s' % sys.argv[i]) + i += 2 + # create the object + u = miniupnpc.UPnP(multicastif, minissdpdsocket, discoverdelay, localport) + +print('inital(default) values :') +print(' discoverdelay', u.discoverdelay) +print(' lanaddr', u.lanaddr) +print(' multicastif', u.multicastif) +print(' minissdpdsocket', u.minissdpdsocket) #u.minissdpdsocket = '../minissdpd/minissdpd.sock' -# discovery process, it usualy takes several seconds (2 seconds or more) -print 'Discovering... delay=%ums' % u.discoverdelay -print u.discover(), 'device(s) detected' +# discovery process, it usually takes several seconds (2 seconds or more) +print('Discovering... delay=%ums' % u.discoverdelay) +print('%d device(s) detected' % u.discover()) # select an igd try: u.selectigd() -except Exception, e: - print 'Exception :', e +except Exception as e: + print('Exception :', e) sys.exit(1) +# it is also possible to pass the root description URL to u.selectigd() : +# u.selectigd('http://192.168.1.254:5678/desc/root') # display information about the IGD and the internet connection -print 'local ip address :', u.lanaddr -print 'external ip address :', u.externalipaddress() -print u.statusinfo(), u.connectiontype() +print('local ip address :', u.lanaddr) +print('external ip address :', u.externalipaddress()) +print( u.statusinfo(), u.connectiontype()) +print('total bytes : sent', u.totalbytesent(), 'received', u.totalbytereceived()) +print('total packets : sent', u.totalpacketsent(), 'received', u.totalpacketreceived()) #print u.addportmapping(64000, 'TCP', # '192.168.1.166', 63000, 'port mapping test', '') @@ -43,10 +78,14 @@ while True: p = u.getgenericportmapping(i) if p==None: break - print i, p + print(i, p) (port, proto, (ihost,iport), desc, c, d, e) = p #print port, desc i = i + 1 -print u.getspecificportmapping(port, proto) +print(u.getspecificportmapping(port, proto)) +try: + print(u.getportmappingnumberofentries()) +except Exception as e: + print('GetPortMappingNumberOfEntries() is not supported :', e) diff --git a/libs/miniupnpc/receivedata.c b/libs/miniupnpc/receivedata.c deleted file mode 100644 index a1eadfc462..0000000000 --- a/libs/miniupnpc/receivedata.c +++ /dev/null @@ -1,81 +0,0 @@ -/* $Id: receivedata.c,v 1.1 2011/04/11 08:21:47 nanard Exp $ */ -/* Project : miniupnp - * Author : Thomas Bernard - * Copyright (c) 2011 Thomas Bernard - * This software is subject to the conditions detailed in the - * LICENCE file provided in this distribution. */ - -#include <stdio.h> -#ifdef WIN32 -#include <winsock2.h> -#include <ws2tcpip.h> -#else -#include <unistd.h> -#if defined(__amigaos__) && !defined(__amigaos4__) -#define socklen_t int -#else /* #if defined(__amigaos__) && !defined(__amigaos4__) */ -#include <sys/select.h> -#endif /* #else defined(__amigaos__) && !defined(__amigaos4__) */ -#include <sys/socket.h> -#if !defined(__amigaos__) && !defined(__amigaos4__) -#include <poll.h> -#endif -#include <errno.h> -#define MINIUPNPC_IGNORE_EINTR -#endif - -#ifdef WIN32 -#define PRINT_SOCKET_ERROR(x) printf("Socket error: %s, %d\n", x, WSAGetLastError()); -#else -#define PRINT_SOCKET_ERROR(x) perror(x) -#endif - -#include "receivedata.h" - -int -receivedata(int socket, char * data, int length, int timeout) -{ - int n; -#if !defined(WIN32) && !defined(__amigaos__) && !defined(__amigaos4__) - /* using poll */ - struct pollfd fds[1]; /* for the poll */ -#ifdef MINIUPNPC_IGNORE_EINTR - do { -#endif - fds[0].fd = socket; - fds[0].events = POLLIN; - n = poll(fds, 1, timeout); -#ifdef MINIUPNPC_IGNORE_EINTR - } while(n < 0 && errno == EINTR); -#endif - if(n < 0) { - PRINT_SOCKET_ERROR("poll"); - return -1; - } else if(n == 0) { - /* timeout */ - return 0; - } -#else /* !defined(WIN32) && !defined(__amigaos__) && !defined(__amigaos4__) */ - /* using select under WIN32 and amigaos */ - fd_set socketSet; - TIMEVAL timeval; - FD_ZERO(&socketSet); - FD_SET(socket, &socketSet); - timeval.tv_sec = timeout / 1000; - timeval.tv_usec = (timeout % 1000) * 1000; - n = select(FD_SETSIZE, &socketSet, NULL, NULL, &timeval); - if(n < 0) { - PRINT_SOCKET_ERROR("select"); - return -1; - } else if(n == 0) { - return 0; - } -#endif - n = recv(socket, data, length, 0); - if(n<0) { - PRINT_SOCKET_ERROR("recv"); - } - return n; -} - - diff --git a/libs/miniupnpc/receivedata.h b/libs/miniupnpc/receivedata.h deleted file mode 100644 index 7a551b9acd..0000000000 --- a/libs/miniupnpc/receivedata.h +++ /dev/null @@ -1,17 +0,0 @@ -/* $Id: receivedata.h,v 1.1 2011/04/11 08:21:47 nanard Exp $ */ -/* Project: miniupnp - * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ - * Author: Thomas Bernard - * Copyright (c) 2011 Thomas Bernard - * This software is subjects to the conditions detailed - * in the LICENCE file provided within this distribution */ -#ifndef __RECEIVEDATA_H__ -#define __RECEIVEDATA_H__ - -/* Reads data from the specified socket. - * Returns the number of bytes read if successful, zero if no bytes were - * read or if we timed out. Returns negative if there was an error. */ -int receivedata(int socket, char * data, int length, int timeout); - -#endif - diff --git a/libs/miniupnpc/setup.py b/libs/miniupnpc/setup.py index ca31f96155..d54f924b58 100644 --- a/libs/miniupnpc/setup.py +++ b/libs/miniupnpc/setup.py @@ -1,15 +1,35 @@ -#! /usr/bin/python -# $Id: setup.py,v 1.6 2011/01/04 09:46:08 nanard Exp $ -# the MiniUPnP Project (c) 2007-2011 Thomas Bernard -# http://miniupnp.tuxfamily.org/ or http://miniupnp.free.fr/ +#! /usr/bin/env python +# vim: tabstop=8 shiftwidth=8 expandtab +# $Id: setup.py,v 1.15 2021/09/28 21:10:11 nanard Exp $ +# the MiniUPnP Project (c) 2007-2021 Thomas Bernard +# https://miniupnp.tuxfamily.org/ or http://miniupnp.free.fr/ # # python script to build the miniupnpc module under unix # -# replace libminiupnpc.a by libminiupnpc.so for shared library usage -from distutils.core import setup, Extension -setup(name="miniupnpc", version="1.5", +# Uses MAKE environment variable (defaulting to 'make') + +from setuptools import setup, Extension +from setuptools.command import build_ext +import subprocess +import os + +EXT = ['build/libminiupnpc.a'] + +class make_then_build_ext(build_ext.build_ext): + def run(self): + subprocess.check_call([os.environ.get('MAKE', 'make')] + EXT) + build_ext.build_ext.run(self) + +setup(name="miniupnpc", + version=open('VERSION').read().strip(), + author='Thomas BERNARD', + author_email='miniupnp@free.fr', + license=open('LICENSE').read(), + url='http://miniupnp.free.fr/', + description='miniUPnP client', + cmdclass={'build_ext': make_then_build_ext}, ext_modules=[ - Extension(name="miniupnpc", sources=["miniupnpcmodule.c"], - extra_objects=["libminiupnpc.a"]) - ]) + Extension(name="miniupnpc", sources=["src/miniupnpcmodule.c"], + include_dirs=['include'], extra_objects=EXT) + ]) diff --git a/libs/miniupnpc/setupmingw32.py b/libs/miniupnpc/setupmingw32.py index d0539e4505..26e85f0370 100644 --- a/libs/miniupnpc/setupmingw32.py +++ b/libs/miniupnpc/setupmingw32.py @@ -1,15 +1,35 @@ -#! /usr/bin/python -# $Id: setupmingw32.py,v 1.5 2011/05/15 21:18:43 nanard Exp $ -# the MiniUPnP Project (c) 2007-2011 Thomas Bernard -# http://miniupnp.tuxfamily.org/ or http://miniupnp.free.fr/ +#! /usr/bin/env python +# vim: tabstop=8 shiftwidth=8 expandtab +# $Id: setupmingw32.py,v 1.14 2021/09/28 21:10:11 nanard Exp $ +# the MiniUPnP Project (c) 2007-2021 Thomas Bernard +# https://miniupnp.tuxfamily.org/ or http://miniupnp.free.fr/ # # python script to build the miniupnpc module under windows (using mingw32) # -from distutils.core import setup, Extension -setup(name="miniupnpc", version="1.5", +import sys + +if (sys.version_info.major * 10 + sys.version_info.minor) >= 35: + compat_lib = ["legacy_stdio_definitions"] +else: + compat_lib = [] + +try: + from setuptools import setup, Extension +except ImportError: + from distutils.core import setup, Extension +from distutils import sysconfig +sysconfig.get_config_vars()["OPT"] = '' +sysconfig.get_config_vars()["CFLAGS"] = '' +setup(name="miniupnpc", + version=open('VERSION').read().strip(), + author='Thomas BERNARD', + author_email='miniupnp@free.fr', + license=open('LICENSE').read(), + url='http://miniupnp.free.fr/', + description='miniUPnP client', ext_modules=[ - Extension(name="miniupnpc", sources=["miniupnpcmodule.c"], - libraries=["ws2_32", "iphlpapi"], - extra_objects=["libminiupnpc.a"]) - ]) + Extension(name="miniupnpc", sources=["src/miniupnpcmodule.c"], + libraries=["ws2_32", "iphlpapi"] + compat_lib, + include_dirs=['include'], extra_objects=["miniupnpc.lib"]) + ]) diff --git a/libs/miniupnpc/src/addr_is_reserved.c b/libs/miniupnpc/src/addr_is_reserved.c new file mode 100644 index 0000000000..bd721c17c3 --- /dev/null +++ b/libs/miniupnpc/src/addr_is_reserved.c @@ -0,0 +1,79 @@ +/* $Id: addr_is_reserved.c,v 1.5 2021/05/10 20:53:02 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * Project : miniupnp + * Web : http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ + * Author : Thomas BERNARD + * copyright (c) 2005-2021 Thomas Bernard + * This software is subjet to the conditions detailed in the + * provided LICENSE file. */ +#ifdef _WIN32 +/* Win32 Specific includes and defines */ +#include <winsock2.h> +#include <ws2tcpip.h> +#if !defined(_MSC_VER) +#include <stdint.h> +#else /* !defined(_MSC_VER) */ +typedef unsigned long uint32_t; +#endif /* !defined(_MSC_VER) */ +#else /* _WIN32 */ +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> +#endif /* _WIN32 */ + +/* List of IP address blocks which are private / reserved and therefore not suitable for public external IP addresses */ +#define IP(a, b, c, d) (((a) << 24) + ((b) << 16) + ((c) << 8) + (d)) +#define MSK(m) (32-(m)) +static const struct { uint32_t address; uint32_t rmask; } reserved[] = { + { IP( 0, 0, 0, 0), MSK( 8) }, /* RFC1122 "This host on this network" */ + { IP( 10, 0, 0, 0), MSK( 8) }, /* RFC1918 Private-Use */ + { IP(100, 64, 0, 0), MSK(10) }, /* RFC6598 Shared Address Space */ + { IP(127, 0, 0, 0), MSK( 8) }, /* RFC1122 Loopback */ + { IP(169, 254, 0, 0), MSK(16) }, /* RFC3927 Link-Local */ + { IP(172, 16, 0, 0), MSK(12) }, /* RFC1918 Private-Use */ + { IP(192, 0, 0, 0), MSK(24) }, /* RFC6890 IETF Protocol Assignments */ + { IP(192, 0, 2, 0), MSK(24) }, /* RFC5737 Documentation (TEST-NET-1) */ + { IP(192, 31, 196, 0), MSK(24) }, /* RFC7535 AS112-v4 */ + { IP(192, 52, 193, 0), MSK(24) }, /* RFC7450 AMT */ + { IP(192, 88, 99, 0), MSK(24) }, /* RFC7526 6to4 Relay Anycast */ + { IP(192, 168, 0, 0), MSK(16) }, /* RFC1918 Private-Use */ + { IP(192, 175, 48, 0), MSK(24) }, /* RFC7534 Direct Delegation AS112 Service */ + { IP(198, 18, 0, 0), MSK(15) }, /* RFC2544 Benchmarking */ + { IP(198, 51, 100, 0), MSK(24) }, /* RFC5737 Documentation (TEST-NET-2) */ + { IP(203, 0, 113, 0), MSK(24) }, /* RFC5737 Documentation (TEST-NET-3) */ + { IP(224, 0, 0, 0), MSK( 4) }, /* RFC1112 Multicast */ + { IP(240, 0, 0, 0), MSK( 4) }, /* RFC1112 Reserved for Future Use + RFC919 Limited Broadcast */ +}; +#undef IP +#undef MSK + +/** + * @return 1 or 0 + */ +int addr_is_reserved(const char * addr_str) +{ + uint32_t addr_n, address; + size_t i; + +#if defined(_WIN32) && _WIN32_WINNT < 0x0600 // _WIN32_WINNT_VISTA + addr_n = inet_addr(addr_str); + if (addr_n == INADDR_NONE) + return 1; +#else + /* was : addr_n = inet_addr(addr_str); */ + if (inet_pton(AF_INET, addr_str, &addr_n) <= 0) { + /* error */ + return 1; + } +#endif + + address = ntohl(addr_n); + + for (i = 0; i < sizeof(reserved)/sizeof(reserved[0]); ++i) { + if ((address >> reserved[i].rmask) == (reserved[i].address >> reserved[i].rmask)) + return 1; + } + + return 0; +} diff --git a/libs/miniupnpc/src/addr_is_reserved.h b/libs/miniupnpc/src/addr_is_reserved.h new file mode 100644 index 0000000000..3286bc4c8c --- /dev/null +++ b/libs/miniupnpc/src/addr_is_reserved.h @@ -0,0 +1,14 @@ +/* $Id: addr_is_reserved.h,v 1.1 2020/09/28 21:11:19 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * Project: miniupnp + * http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ + * Author: Thomas Bernard + * Copyright (c) 2005-2020 Thomas Bernard + * This software is subjects to the conditions detailed + * in the LICENCE file provided within this distribution */ +#ifndef ADDR_IS_RESERVED_H_INCLUDED +#define ADDR_IS_RESERVED_H_INCLUDED + +int addr_is_reserved(const char * addr_str); + +#endif /* ADDR_IS_RESERVED_H_INCLUDED */ diff --git a/libs/miniupnpc/src/codelength.h b/libs/miniupnpc/src/codelength.h new file mode 100644 index 0000000000..f5f8e30f9a --- /dev/null +++ b/libs/miniupnpc/src/codelength.h @@ -0,0 +1,54 @@ +/* $Id: codelength.h,v 1.5 2015/07/09 12:40:18 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas BERNARD + * copyright (c) 2005-2015 Thomas Bernard + * This software is subjet to the conditions detailed in the + * provided LICENCE file. */ +#ifndef CODELENGTH_H_INCLUDED +#define CODELENGTH_H_INCLUDED + +/* Encode length by using 7bit per Byte : + * Most significant bit of each byte specifies that the + * following byte is part of the code */ + +/* n : unsigned + * p : unsigned char * + */ +#define DECODELENGTH(n, p) n = 0; \ + do { n = (n << 7) | (*p & 0x7f); } \ + while((*(p++)&0x80) && (n<(1<<25))); + +/* n : unsigned + * READ : function/macro to read one byte (unsigned char) + */ +#define DECODELENGTH_READ(n, READ) \ + n = 0; \ + do { \ + unsigned char c; \ + READ(c); \ + n = (n << 7) | (c & 0x07f); \ + if(!(c&0x80)) break; \ + } while(n<(1<<25)); + +/* n : unsigned + * p : unsigned char * + * p_limit : unsigned char * + */ +#define DECODELENGTH_CHECKLIMIT(n, p, p_limit) \ + n = 0; \ + do { \ + if((p) >= (p_limit)) break; \ + n = (n << 7) | (*(p) & 0x7f); \ + } while((*((p)++)&0x80) && (n<(1<<25))); + + +/* n : unsigned + * p : unsigned char * + */ +#define CODELENGTH(n, p) if(n>=268435456) *(p++) = (n >> 28) | 0x80; \ + if(n>=2097152) *(p++) = (n >> 21) | 0x80; \ + if(n>=16384) *(p++) = (n >> 14) | 0x80; \ + if(n>=128) *(p++) = (n >> 7) | 0x80; \ + *(p++) = n & 0x7f; + +#endif /* CODELENGTH_H_INCLUDED */ diff --git a/libs/miniupnpc/connecthostport.c b/libs/miniupnpc/src/connecthostport.c similarity index 62% rename from libs/miniupnpc/connecthostport.c rename to libs/miniupnpc/src/connecthostport.c index 76e8e374b8..79f832b8db 100644 --- a/libs/miniupnpc/connecthostport.c +++ b/libs/miniupnpc/src/connecthostport.c @@ -1,7 +1,8 @@ -/* $Id: connecthostport.c,v 1.5 2011/04/09 08:49:50 nanard Exp $ */ -/* Project : miniupnp +/* $Id: connecthostport.c,v 1.24 2020/11/09 19:26:53 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * Project : miniupnp * Author : Thomas Bernard - * Copyright (c) 2010-2011 Thomas Bernard + * Copyright (c) 2010-2020 Thomas Bernard * This software is subject to the conditions detailed in the * LICENCE file provided in this distribution. */ @@ -13,35 +14,32 @@ #include <string.h> #include <stdio.h> -#ifdef WIN32 +#ifdef _WIN32 #include <winsock2.h> #include <ws2tcpip.h> #include <io.h> #define MAXHOSTNAMELEN 64 -#define snprintf _snprintf +#include "win32_snprintf.h" #define herror #define socklen_t int -#else /* #ifdef WIN32 */ +#else /* #ifdef _WIN32 */ #include <unistd.h> +#include <sys/types.h> +#ifdef MINIUPNPC_SET_SOCKET_TIMEOUT +#include <sys/time.h> +#endif /* #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT */ #include <sys/param.h> +#include <sys/select.h> #include <errno.h> #define closesocket close #include <netdb.h> +#include <netinet/in.h> /* defining MINIUPNPC_IGNORE_EINTR enable the ignore of interruptions * during the connect() call */ #define MINIUPNPC_IGNORE_EINTR -#ifndef USE_GETHOSTBYNAME -#include <sys/types.h> #include <sys/socket.h> -#endif /* #ifndef USE_GETHOSTBYNAME */ -#endif /* #else WIN32 */ - -/* definition of PRINT_SOCKET_ERROR */ -#ifdef WIN32 -#define PRINT_SOCKET_ERROR(x) printf("Socket error: %s, %d\n", x, WSAGetLastError()); -#else -#define PRINT_SOCKET_ERROR(x) perror(x) -#endif +#include <sys/select.h> +#endif /* #else _WIN32 */ #if defined(__amigaos__) || defined(__amigaos4__) #define herror(A) printf("%s\n", A) @@ -49,12 +47,18 @@ #include "connecthostport.h" +#ifndef MAXHOSTNAMELEN +#define MAXHOSTNAMELEN 64 +#endif + /* connecthostport() * return a socket connected (TCP) to the host and port * or -1 in case of error */ -int connecthostport(const char * host, unsigned short port) +SOCKET connecthostport(const char * host, unsigned short port, + unsigned int scope_id) { - int s, n; + SOCKET s; + int n; #ifdef USE_GETHOSTBYNAME struct sockaddr_in dest; struct hostent *hp; @@ -67,21 +71,21 @@ int connecthostport(const char * host, unsigned short port) #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT struct timeval timeout; #endif /* #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT */ - + #ifdef USE_GETHOSTBYNAME hp = gethostbyname(host); if(hp == NULL) { herror(host); - return -1; + return INVALID_SOCKET; } memcpy(&dest.sin_addr, hp->h_addr, sizeof(dest.sin_addr)); memset(dest.sin_zero, 0, sizeof(dest.sin_zero)); s = socket(PF_INET, SOCK_STREAM, 0); - if(s < 0) + if(ISINVALID(s)) { PRINT_SOCKET_ERROR("socket"); - return -1; + return INVALID_SOCKET; } #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT /* setting a 3 seconds timeout for the connect() call */ @@ -89,35 +93,52 @@ int connecthostport(const char * host, unsigned short port) timeout.tv_usec = 0; if(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(struct timeval)) < 0) { - PRINT_SOCKET_ERROR("setsockopt"); + PRINT_SOCKET_ERROR("setsockopt SO_RCVTIMEO"); } timeout.tv_sec = 3; timeout.tv_usec = 0; if(setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(struct timeval)) < 0) { - PRINT_SOCKET_ERROR("setsockopt"); + PRINT_SOCKET_ERROR("setsockopt SO_SNDTIMEO"); } #endif /* #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT */ dest.sin_family = AF_INET; dest.sin_port = htons(port); n = connect(s, (struct sockaddr *)&dest, sizeof(struct sockaddr_in)); #ifdef MINIUPNPC_IGNORE_EINTR - while(n < 0 && errno == EINTR) + /* EINTR The system call was interrupted by a signal that was caught + * EINPROGRESS The socket is nonblocking and the connection cannot + * be completed immediately. */ + while(n < 0 && (errno == EINTR || errno == EINPROGRESS)) { socklen_t len; fd_set wset; int err; FD_ZERO(&wset); FD_SET(s, &wset); - if((n = select(s + 1, NULL, &wset, NULL, NULL)) == -1 && errno == EINTR) +#ifdef MINIUPNPC_SET_SOCKET_TIMEOUT + timeout.tv_sec = 3; + timeout.tv_usec = 0; + n = select(s + 1, NULL, &wset, NULL, &timeout); +#else + n = select(s + 1, NULL, &wset, NULL, NULL); +#endif + if(n == -1 && errno == EINTR) continue; +#ifdef MINIUPNPC_SET_SOCKET_TIMEOUT + if(n == 0) { + errno = ETIMEDOUT; + n = -1; + break; + } +#endif /*len = 0;*/ /*n = getpeername(s, NULL, &len);*/ len = sizeof(err); if(getsockopt(s, SOL_SOCKET, SO_ERROR, &err, &len) < 0) { PRINT_SOCKET_ERROR("getsockopt"); closesocket(s); - return -1; + return INVALID_SOCKET; } if(err != 0) { errno = err; @@ -129,7 +150,7 @@ int connecthostport(const char * host, unsigned short port) { PRINT_SOCKET_ERROR("connect"); closesocket(s); - return -1; + return INVALID_SOCKET; } #else /* #ifdef USE_GETHOSTBYNAME */ /* use getaddrinfo() instead of gethostbyname() */ @@ -145,10 +166,12 @@ int connecthostport(const char * host, unsigned short port) if(host[0] == '[') { /* literal ip v6 address */ - int i; - for(i = 0; host[i+1] && (host[i+1] != ']') && i < MAXHOSTNAMELEN; i++) + int i, j; + for(i = 0, j = 1; host[j] && (host[j] != ']') && i < MAXHOSTNAMELEN; i++, j++) { - tmp_host[i] = host[i+1]; + tmp_host[i] = host[j]; + if(0 == strncmp(host+j, "%25", 3)) /* %25 is just url encoding for '%' */ + j+=2; /* skip "25" */ } tmp_host[i] = '\0'; } @@ -160,19 +183,29 @@ int connecthostport(const char * host, unsigned short port) n = getaddrinfo(tmp_host, port_str, &hints, &ai); if(n != 0) { -#ifdef WIN32 +#ifdef _WIN32 fprintf(stderr, "getaddrinfo() error : %d\n", n); #else fprintf(stderr, "getaddrinfo() error : %s\n", gai_strerror(n)); #endif - return -1; + return INVALID_SOCKET; } - s = -1; + s = INVALID_SOCKET; for(p = ai; p; p = p->ai_next) { + if(!ISINVALID(s)) + closesocket(s); +#ifdef DEBUG + printf("ai_family=%d ai_socktype=%d ai_protocol=%d (PF_INET=%d, PF_INET6=%d)\n", + p->ai_family, p->ai_socktype, p->ai_protocol, PF_INET, PF_INET6); +#endif s = socket(p->ai_family, p->ai_socktype, p->ai_protocol); - if(s < 0) + if(ISINVALID(s)) continue; + if(p->ai_addr->sa_family == AF_INET6 && scope_id > 0) { + struct sockaddr_in6 * addr6 = (struct sockaddr_in6 *)p->ai_addr; + addr6->sin6_scope_id = scope_id; + } #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT /* setting a 3 seconds timeout for the connect() call */ timeout.tv_sec = 3; @@ -188,17 +221,34 @@ int connecthostport(const char * host, unsigned short port) PRINT_SOCKET_ERROR("setsockopt"); } #endif /* #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT */ - n = connect(s, p->ai_addr, p->ai_addrlen); + n = connect(s, p->ai_addr, MSC_CAST_INT p->ai_addrlen); #ifdef MINIUPNPC_IGNORE_EINTR - while(n < 0 && errno == EINTR) + /* EINTR The system call was interrupted by a signal that was caught + * EINPROGRESS The socket is nonblocking and the connection cannot + * be completed immediately. */ + while(n < 0 && (errno == EINTR || errno == EINPROGRESS)) { socklen_t len; fd_set wset; int err; FD_ZERO(&wset); FD_SET(s, &wset); - if((n = select(s + 1, NULL, &wset, NULL, NULL)) == -1 && errno == EINTR) +#ifdef MINIUPNPC_SET_SOCKET_TIMEOUT + timeout.tv_sec = 3; + timeout.tv_usec = 0; + n = select(s + 1, NULL, &wset, NULL, &timeout); +#else + n = select(s + 1, NULL, &wset, NULL, NULL); +#endif + if(n == -1 && errno == EINTR) continue; +#ifdef MINIUPNPC_SET_SOCKET_TIMEOUT + if(n == 0) { + errno = ETIMEDOUT; + n = -1; + break; + } +#endif /*len = 0;*/ /*n = getpeername(s, NULL, &len);*/ len = sizeof(err); @@ -206,7 +256,7 @@ int connecthostport(const char * host, unsigned short port) PRINT_SOCKET_ERROR("getsockopt"); closesocket(s); freeaddrinfo(ai); - return -1; + return INVALID_SOCKET; } if(err != 0) { errno = err; @@ -214,28 +264,21 @@ int connecthostport(const char * host, unsigned short port) } } #endif /* #ifdef MINIUPNPC_IGNORE_EINTR */ - if(n < 0) - { - closesocket(s); - continue; - } - else - { + if(n >= 0) /* connect() was successful */ break; - } } freeaddrinfo(ai); - if(s < 0) + if(ISINVALID(s)) { PRINT_SOCKET_ERROR("socket"); - return -1; + return INVALID_SOCKET; } if(n < 0) { PRINT_SOCKET_ERROR("connect"); - return -1; + closesocket(s); + return INVALID_SOCKET; } #endif /* #ifdef USE_GETHOSTBYNAME */ return s; } - diff --git a/libs/miniupnpc/src/connecthostport.h b/libs/miniupnpc/src/connecthostport.h new file mode 100644 index 0000000000..b1ce627ceb --- /dev/null +++ b/libs/miniupnpc/src/connecthostport.h @@ -0,0 +1,20 @@ +/* $Id: connecthostport.h,v 1.4 2018/04/06 10:53:13 nanard Exp $ */ +/* Project: miniupnp + * http://miniupnp.free.fr/ + * Author: Thomas Bernard + * Copyright (c) 2010-2018 Thomas Bernard + * This software is subjects to the conditions detailed + * in the LICENCE file provided within this distribution */ +#ifndef CONNECTHOSTPORT_H_INCLUDED +#define CONNECTHOSTPORT_H_INCLUDED + +#include "miniupnpc_socketdef.h" + +/* connecthostport() + * return a socket connected (TCP) to the host and port + * or INVALID_SOCKET in case of error */ +SOCKET connecthostport(const char * host, unsigned short port, + unsigned int scope_id); + +#endif + diff --git a/libs/miniupnpc/igd_desc_parse.c b/libs/miniupnpc/src/igd_desc_parse.c similarity index 83% rename from libs/miniupnpc/igd_desc_parse.c rename to libs/miniupnpc/src/igd_desc_parse.c index 6c3e65677d..d2999ad011 100644 --- a/libs/miniupnpc/igd_desc_parse.c +++ b/libs/miniupnpc/src/igd_desc_parse.c @@ -1,8 +1,8 @@ -/* $Id: igd_desc_parse.c,v 1.14 2011/04/11 09:19:24 nanard Exp $ */ +/* $Id: igd_desc_parse.c,v 1.17 2015/09/15 13:30:04 nanard Exp $ */ /* Project : miniupnp * http://miniupnp.free.fr/ * Author : Thomas Bernard - * Copyright (c) 2005-2010 Thomas Bernard + * Copyright (c) 2005-2015 Thomas Bernard * This software is subject to the conditions detailed in the * LICENCE file provided in this distribution. */ @@ -15,7 +15,9 @@ void IGDstartelt(void * d, const char * name, int l) { struct IGDdatas * datas = (struct IGDdatas *)d; - memcpy( datas->cureltname, name, l); + if(l >= MINIUPNPC_URL_MAXSIZE) + l = MINIUPNPC_URL_MAXSIZE-1; + memcpy(datas->cureltname, name, l); datas->cureltname[l] = '\0'; datas->level++; if( (l==7) && !memcmp(name, "service", l) ) { @@ -26,6 +28,8 @@ void IGDstartelt(void * d, const char * name, int l) } } +#define COMPARE(str, cstr) (0==memcmp(str, cstr, sizeof(cstr) - 1)) + /* End element handler : * update nesting level counter and update parser state if * service element is parsed */ @@ -36,23 +40,16 @@ void IGDendelt(void * d, const char * name, int l) /*printf("endelt %2d %.*s\n", datas->level, l, name);*/ if( (l==7) && !memcmp(name, "service", l) ) { - /* - if( datas->state < 1 - && !strcmp(datas->servicetype, - // "urn:schemas-upnp-org:service:WANIPConnection:1") ) - "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1")) - datas->state ++; - */ - if(0==strcmp(datas->tmp.servicetype, - "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1")) { + if(COMPARE(datas->tmp.servicetype, + "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:")) { memcpy(&datas->CIF, &datas->tmp, sizeof(struct IGDdatas_service)); - } else if(0==strcmp(datas->tmp.servicetype, - "urn:schemas-upnp-org:service:WANIPv6FirewallControl:1")) { + } else if(COMPARE(datas->tmp.servicetype, + "urn:schemas-upnp-org:service:WANIPv6FirewallControl:")) { memcpy(&datas->IPv6FC, &datas->tmp, sizeof(struct IGDdatas_service)); - } else if(0==strcmp(datas->tmp.servicetype, - "urn:schemas-upnp-org:service:WANIPConnection:1") - || 0==strcmp(datas->tmp.servicetype, - "urn:schemas-upnp-org:service:WANPPPConnection:1") ) { + } else if(COMPARE(datas->tmp.servicetype, + "urn:schemas-upnp-org:service:WANIPConnection:") + || COMPARE(datas->tmp.servicetype, + "urn:schemas-upnp-org:service:WANPPPConnection:") ) { if(datas->first.servicetype[0] == '\0') { memcpy(&datas->first, &datas->tmp, sizeof(struct IGDdatas_service)); } else { @@ -93,6 +90,7 @@ void IGDdata(void * d, const char * data, int l) } } +#ifdef DEBUG void printIGD(struct IGDdatas * d) { printf("urlbase = '%s'\n", d->urlbase); @@ -121,5 +119,5 @@ void printIGD(struct IGDdatas * d) printf(" eventSubURL = '%s'\n", d->IPv6FC.eventsuburl); printf(" SCPDURL = '%s'\n", d->IPv6FC.scpdurl); } - +#endif /* DEBUG */ diff --git a/libs/miniupnpc/src/listdevices.c b/libs/miniupnpc/src/listdevices.c new file mode 100644 index 0000000000..dabc056e98 --- /dev/null +++ b/libs/miniupnpc/src/listdevices.c @@ -0,0 +1,197 @@ +/* $Id: listdevices.c,v 1.8 2018/05/03 08:16:44 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas Bernard + * Copyright (c) 2013-2015 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. */ + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#ifdef _WIN32 +#include <winsock2.h> +#endif /* _WIN32 */ +#include "miniupnpc.h" + +struct upnp_dev_list { + struct upnp_dev_list * next; + char * descURL; + struct UPNPDev * * array; + size_t count; + size_t allocated_count; +}; + +#define ADD_DEVICE_COUNT_STEP 16 + +void add_device(struct upnp_dev_list * * list_head, struct UPNPDev * dev) +{ + struct upnp_dev_list * elt; + size_t i; + + if(dev == NULL) + return; + for(elt = *list_head; elt != NULL; elt = elt->next) { + if(strcmp(elt->descURL, dev->descURL) == 0) { + for(i = 0; i < elt->count; i++) { + if (strcmp(elt->array[i]->st, dev->st) == 0 && strcmp(elt->array[i]->usn, dev->usn) == 0) { + return; /* already found */ + } + } + if(elt->count >= elt->allocated_count) { + struct UPNPDev * * tmp; + elt->allocated_count += ADD_DEVICE_COUNT_STEP; + tmp = realloc(elt->array, elt->allocated_count * sizeof(struct UPNPDev *)); + if(tmp == NULL) { + fprintf(stderr, "Failed to realloc(%p, %lu)\n", elt->array, (unsigned long)(elt->allocated_count * sizeof(struct UPNPDev *))); + return; + } + elt->array = tmp; + } + elt->array[elt->count++] = dev; + return; + } + } + elt = malloc(sizeof(struct upnp_dev_list)); + if(elt == NULL) { + fprintf(stderr, "Failed to malloc(%lu)\n", (unsigned long)sizeof(struct upnp_dev_list)); + return; + } + elt->next = *list_head; + elt->descURL = strdup(dev->descURL); + if(elt->descURL == NULL) { + fprintf(stderr, "Failed to strdup(%s)\n", dev->descURL); + free(elt); + return; + } + elt->allocated_count = ADD_DEVICE_COUNT_STEP; + elt->array = malloc(ADD_DEVICE_COUNT_STEP * sizeof(struct UPNPDev *)); + if(elt->array == NULL) { + fprintf(stderr, "Failed to malloc(%lu)\n", (unsigned long)(ADD_DEVICE_COUNT_STEP * sizeof(struct UPNPDev *))); + free(elt->descURL); + free(elt); + return; + } + elt->array[0] = dev; + elt->count = 1; + *list_head = elt; +} + +void free_device(struct upnp_dev_list * elt) +{ + free(elt->descURL); + free(elt->array); + free(elt); +} + +int main(int argc, char * * argv) +{ + const char * searched_device = NULL; + const char * * searched_devices = NULL; + const char * multicastif = 0; + const char * minissdpdpath = 0; + int ipv6 = 0; + unsigned char ttl = 2; + int error = 0; + struct UPNPDev * devlist = 0; + struct UPNPDev * dev; + struct upnp_dev_list * sorted_list = NULL; + struct upnp_dev_list * dev_array; + int i; + +#ifdef _WIN32 + WSADATA wsaData; + int nResult = WSAStartup(MAKEWORD(2,2), &wsaData); + if(nResult != NO_ERROR) + { + fprintf(stderr, "WSAStartup() failed.\n"); + return -1; + } +#endif + + for(i = 1; i < argc; i++) { + if(strcmp(argv[i], "-6") == 0) + ipv6 = 1; + else if(strcmp(argv[i], "-d") == 0) { + if(++i >= argc) { + fprintf(stderr, "%s option needs one argument\n", "-d"); + return 1; + } + searched_device = argv[i]; + } else if(strcmp(argv[i], "-t") == 0) { + if(++i >= argc) { + fprintf(stderr, "%s option needs one argument\n", "-t"); + return 1; + } + ttl = (unsigned char)atoi(argv[i]); + } else if(strcmp(argv[i], "-l") == 0) { + if(++i >= argc) { + fprintf(stderr, "-l option needs at least one argument\n"); + return 1; + } + searched_devices = (const char * *)(argv + i); + break; + } else if(strcmp(argv[i], "-m") == 0) { + if(++i >= argc) { + fprintf(stderr, "-m option needs one argument\n"); + return 1; + } + multicastif = argv[i]; + } else { + printf("usage : %s [options] [-l <device1> <device2> ...]\n", argv[0]); + printf("options :\n"); + printf(" -6 : use IPv6\n"); + printf(" -m address/ifname : network interface to use for multicast\n"); + printf(" -d <device string> : search only for this type of device\n"); + printf(" -l <device1> <device2> ... : search only for theses types of device\n"); + printf(" -t ttl : set multicast TTL. Default value is 2.\n"); + printf(" -h : this help\n"); + return 1; + } + } + + if(searched_device) { + printf("searching UPnP device type %s\n", searched_device); + devlist = upnpDiscoverDevice(searched_device, + 2000, multicastif, minissdpdpath, + 0/*localport*/, ipv6, ttl, &error); + } else if(searched_devices) { + printf("searching UPnP device types :\n"); + for(i = 0; searched_devices[i]; i++) + printf("\t%s\n", searched_devices[i]); + devlist = upnpDiscoverDevices(searched_devices, + 2000, multicastif, minissdpdpath, + 0/*localport*/, ipv6, ttl, &error, 1); + } else { + printf("searching all UPnP devices\n"); + devlist = upnpDiscoverAll(2000, multicastif, minissdpdpath, + 0/*localport*/, ipv6, ttl, &error); + } + if(devlist) { + for(dev = devlist, i = 1; dev != NULL; dev = dev->pNext, i++) { + printf("%3d: %-48s\n", i, dev->st); + printf(" %s\n", dev->descURL); + printf(" %s\n", dev->usn); + add_device(&sorted_list, dev); + } + putchar('\n'); + for (dev_array = sorted_list; dev_array != NULL ; dev_array = dev_array->next) { + printf("%s :\n", dev_array->descURL); + for(i = 0; (unsigned)i < dev_array->count; i++) { + printf("%2d: %s\n", i+1, dev_array->array[i]->st); + printf(" %s\n", dev_array->array[i]->usn); + } + putchar('\n'); + } + freeUPNPDevlist(devlist); + while(sorted_list != NULL) { + dev_array = sorted_list; + sorted_list = sorted_list->next; + free_device(dev_array); + } + } else { + printf("no device found.\n"); + } + + return 0; +} + diff --git a/libs/miniupnpc/minihttptestserver.c b/libs/miniupnpc/src/minihttptestserver.c similarity index 56% rename from libs/miniupnpc/minihttptestserver.c rename to libs/miniupnpc/src/minihttptestserver.c index a1dddf0eaf..57235841eb 100644 --- a/libs/miniupnpc/minihttptestserver.c +++ b/libs/miniupnpc/src/minihttptestserver.c @@ -1,7 +1,7 @@ -/* $Id: minihttptestserver.c,v 1.6 2011/05/09 08:53:15 nanard Exp $ */ +/* $Id: minihttptestserver.c,v 1.25 2020/05/29 21:14:22 nanard Exp $ */ /* Project : miniUPnP * Author : Thomas Bernard - * Copyright (c) 2011 Thomas Bernard + * Copyright (c) 2011-2018 Thomas Bernard * This software is subject to the conditions detailed in the * LICENCE file provided in this distribution. * */ @@ -16,36 +16,43 @@ #include <netinet/in.h> #include <signal.h> #include <time.h> +#include <errno.h> + +#ifndef INADDR_LOOPBACK +#define INADDR_LOOPBACK 0x7f000001 +#endif #define CRAP_LENGTH (2048) -volatile int quit = 0; -volatile int child_to_wait_for = 0; +static int server(unsigned short port, const char * expected_file_name, int ipv6); + +volatile sig_atomic_t quit = 0; +volatile sig_atomic_t child_to_wait_for = 0; /** * signal handler for SIGCHLD (child status has changed) */ void handle_signal_chld(int sig) { - printf("handle_signal_chld(%d)\n", sig); + (void)sig; + /* printf("handle_signal_chld(%d)\n", sig); */ ++child_to_wait_for; } /** * signal handler for SIGINT (CRTL C) */ -#if 0 void handle_signal_int(int sig) { - printf("handle_signal_int(%d)\n", sig); + (void)sig; + /* printf("handle_signal_int(%d)\n", sig); */ quit = 1; } -#endif /** * build a text/plain content of the specified length */ -void build_content(char * p, int n) +void build_content(char * p, size_t n) { char line_buffer[80]; int k; @@ -74,10 +81,10 @@ void build_content(char * p, int n) /** * build crappy content */ -void build_crap(char * p, int n) +void build_crap(char * p, size_t n) { static const char crap[] = "_CRAP_\r\n"; - int i; + size_t i; while(n > 0) { i = sizeof(crap) - 1; @@ -93,15 +100,19 @@ void build_crap(char * p, int n) * build chunked response. * return a malloc'ed buffer */ -char * build_chunked_response(int content_length, int * response_len) { +char * build_chunked_response(size_t content_length, size_t * response_len) +{ char * response_buffer; char * content_buffer; - int buffer_length; - int i, n; + size_t buffer_length; + size_t i; + unsigned int n; /* allocate to have some margin */ buffer_length = 256 + content_length + (content_length >> 4); response_buffer = malloc(buffer_length); + if(response_buffer == NULL) + return NULL; *response_len = snprintf(response_buffer, buffer_length, "HTTP/1.1 200 OK\r\n" "Content-Type: text/plain\r\n" @@ -110,6 +121,10 @@ char * build_chunked_response(int content_length, int * response_len) { /* build the content */ content_buffer = malloc(content_length); + if(content_buffer == NULL) { + free(response_buffer); + return NULL; + } build_content(content_buffer, content_length); /* chunk it */ @@ -129,16 +144,126 @@ char * build_chunked_response(int content_length, int * response_len) { response_buffer[(*response_len)++] = '\r'; response_buffer[(*response_len)++] = '\n'; } - memcpy(response_buffer + *response_len, "0\r\n", 3); - *response_len += 3; + /* the last chunk : "0\r\n" a empty body and then + * the final "\r\n" */ + memcpy(response_buffer + *response_len, "0\r\n\r\n", 5); + *response_len += 5; free(content_buffer); - printf("resp_length=%d buffer_length=%d content_length=%d\n", + printf("resp_length=%lu buffer_length=%lu content_length=%lu\n", *response_len, buffer_length, content_length); return response_buffer; } -enum modes { MODE_INVALID, MODE_CHUNKED, MODE_ADDCRAP, MODE_NORMAL }; +/* favicon.ico generator */ +#ifdef OLD_HEADER +#define FAVICON_LENGTH (6 + 16 + 12 + 8 + 32 * 4) +#else +#define FAVICON_LENGTH (6 + 16 + 40 + 8 + 32 * 4) +#endif +void build_favicon_content(unsigned char * p, size_t n) +{ + int i; + if(n < FAVICON_LENGTH) + return; + /* header : 6 bytes */ + *p++ = 0; + *p++ = 0; + *p++ = 1; /* type : ICO */ + *p++ = 0; + *p++ = 1; /* number of images in file */ + *p++ = 0; + /* image directory (1 entry) : 16 bytes */ + *p++ = 16; /* width */ + *p++ = 16; /* height */ + *p++ = 2; /* number of colors in the palette. 0 = no palette */ + *p++ = 0; /* reserved */ + *p++ = 1; /* color planes */ + *p++ = 0; /* " */ + *p++ = 1; /* bpp */ + *p++ = 0; /* " */ +#ifdef OLD_HEADER + *p++ = 12 + 8 + 32 * 4; /* bmp size */ +#else + *p++ = 40 + 8 + 32 * 4; /* bmp size */ +#endif + *p++ = 0; /* " */ + *p++ = 0; /* " */ + *p++ = 0; /* " */ + *p++ = 6 + 16; /* bmp offset */ + *p++ = 0; /* " */ + *p++ = 0; /* " */ + *p++ = 0; /* " */ + /* BMP */ +#ifdef OLD_HEADER + /* BITMAPCOREHEADER */ + *p++ = 12; /* size of this header */ + *p++ = 0; /* " */ + *p++ = 0; /* " */ + *p++ = 0; /* " */ + *p++ = 16; /* width */ + *p++ = 0; /* " */ + *p++ = 16 * 2; /* height x 2 ! */ + *p++ = 0; /* " */ + *p++ = 1; /* color planes */ + *p++ = 0; /* " */ + *p++ = 1; /* bpp */ + *p++ = 0; /* " */ +#else + /* BITMAPINFOHEADER */ + *p++ = 40; /* size of this header */ + *p++ = 0; /* " */ + *p++ = 0; /* " */ + *p++ = 0; /* " */ + *p++ = 16; /* width */ + *p++ = 0; /* " */ + *p++ = 0; /* " */ + *p++ = 0; /* " */ + *p++ = 16 * 2; /* height x 2 ! */ + *p++ = 0; /* " */ + *p++ = 0; /* " */ + *p++ = 0; /* " */ + *p++ = 1; /* color planes */ + *p++ = 0; /* " */ + *p++ = 1; /* bpp */ + *p++ = 0; /* " */ + /* compression method, image size, ppm x, ppm y */ + /* colors in the palette ? */ + /* important colors */ + for(i = 4 * 6; i > 0; --i) + *p++ = 0; +#endif + /* palette */ + *p++ = 0; /* b */ + *p++ = 0; /* g */ + *p++ = 0; /* r */ + *p++ = 0; /* reserved */ + *p++ = 255; /* b */ + *p++ = 255; /* g */ + *p++ = 255; /* r */ + *p++ = 0; /* reserved */ + /* pixel data */ + for(i = 16; i > 0; --i) { + if(i & 1) { + *p++ = 0125; + *p++ = 0125; + } else { + *p++ = 0252; + *p++ = 0252; + } + *p++ = 0; + *p++ = 0; + } + /* Opacity MASK */ + for(i = 16 * 4; i > 0; --i) { + *p++ = 0; + } +} + +enum modes { + MODE_INVALID, MODE_CHUNKED, MODE_ADDCRAP, MODE_NORMAL, MODE_FAVICON, MODE_MALFORMED +}; + const struct { const enum modes mode; const char * text; @@ -146,28 +271,33 @@ const struct { {MODE_CHUNKED, "chunked"}, {MODE_ADDCRAP, "addcrap"}, {MODE_NORMAL, "normal"}, + {MODE_FAVICON, "favicon.ico"}, + {MODE_MALFORMED, "malformed"}, {MODE_INVALID, NULL} }; /** * write the response with random behaviour ! */ -void send_response(int c, const char * buffer, int len) +void send_response(int c, const char * buffer, size_t len) { - int n; + ssize_t n; while(len > 0) { n = (rand() % 99) + 1; - if(n > len) + if((size_t)n > len) n = len; n = write(c, buffer, n); if(n < 0) { - perror("write"); - return; + if(errno != EINTR) { + perror("write"); + return; + } + /* if errno == EINTR, try again */ } else { len -= n; buffer += n; + usleep(10000); /* 10ms */ } - usleep(10000); /* 10ms */ } } @@ -177,17 +307,18 @@ void send_response(int c, const char * buffer, int len) void handle_http_connection(int c) { char request_buffer[2048]; - int request_len = 0; + size_t request_len = 0; int headers_found = 0; - int n, i; + ssize_t n, m; + size_t i; char request_method[16]; char request_uri[256]; char http_version[16]; char * p; char * response_buffer; - int response_len; + size_t response_len; enum modes mode; - int content_length = 16*1024; + size_t content_length = 16*1024; /* read the request */ while(request_len < sizeof(request_buffer) && !headers_found) { @@ -195,6 +326,8 @@ void handle_http_connection(int c) request_buffer + request_len, sizeof(request_buffer) - request_len); if(n < 0) { + if(errno == EINTR) + continue; perror("read"); return; } else if(n==0) { @@ -213,9 +346,10 @@ void handle_http_connection(int c) } if(!headers_found) { /* error */ + printf("no HTTP header found in the request\n"); return; } - printf("headers :\n%.*s", request_len, request_buffer); + printf("headers :\n%.*s", (int)request_len, request_buffer); /* the request have been received, now parse the request line */ p = request_buffer; for(i = 0; i < sizeof(request_method) - 1; i++) { @@ -227,7 +361,7 @@ void handle_http_connection(int c) request_method[i] = '\0'; while(*p == ' ') p++; - for(i = 0; i < sizeof(request_uri) - 1; i++) { + for(i = 0; i < (int)sizeof(request_uri) - 1; i++) { if(*p == ' ' || *p == '\r') break; request_uri[i] = *p; @@ -236,7 +370,7 @@ void handle_http_connection(int c) request_uri[i] = '\0'; while(*p == ' ') p++; - for(i = 0; i < sizeof(http_version) - 1; i++) { + for(i = 0; i < (int)sizeof(http_version) - 1; i++) { if(*p == ' ' || *p == '\r') break; http_version[i] = *p; @@ -249,10 +383,24 @@ void handle_http_connection(int c) if(0 != strcmp(request_method, "GET")) { const char response405[] = "HTTP/1.1 405 Method Not Allowed\r\n" "Allow: GET\r\n\r\n"; + const char * pc; /* 405 Method Not Allowed */ /* The response MUST include an Allow header containing a list * of valid methods for the requested resource. */ - write(c, response405, sizeof(response405) - 1); + n = sizeof(response405) - 1; + pc = response405; + while(n > 0) { + m = write(c, pc, n); + if(m<0) { + if(errno != EINTR) { + perror("write"); + return; + } + } else { + n -= m; + pc += m; + } + } return; } @@ -266,33 +414,81 @@ void handle_http_connection(int c) } switch(mode) { + case MODE_MALFORMED: + response_len = 2048; + response_buffer = malloc(response_len); + if(!response_buffer) + break; + n = snprintf(response_buffer, response_len, + "HTTP/1.1 \r\n" + "\r\n" + /*"0000\r\n"*/); + for (i = n; i < response_len; i++) { + response_buffer[i] = ' '; + } + response_len = n; + break; case MODE_CHUNKED: response_buffer = build_chunked_response(content_length, &response_len); break; case MODE_ADDCRAP: response_len = content_length+256; response_buffer = malloc(response_len); + if(!response_buffer) + break; n = snprintf(response_buffer, response_len, "HTTP/1.1 200 OK\r\n" "Server: minihttptestserver\r\n" "Content-Type: text/plain\r\n" - "Content-Length: %d\r\n" + "Content-Length: %lu\r\n" "\r\n", content_length); response_len = content_length+n+CRAP_LENGTH; - response_buffer = realloc(response_buffer, response_len); + p = realloc(response_buffer, response_len); + if(p == NULL) { + /* error 500 */ + free(response_buffer); + response_buffer = NULL; + break; + } + response_buffer = p; build_content(response_buffer + n, content_length); build_crap(response_buffer + n + content_length, CRAP_LENGTH); break; + case MODE_FAVICON: + content_length = FAVICON_LENGTH; + response_len = content_length + 256; + response_buffer = malloc(response_len); + if(!response_buffer) + break; + n = snprintf(response_buffer, response_len, + "HTTP/1.1 200 OK\r\n" + "Server: minihttptestserver\r\n" + "Content-Type: image/vnd.microsoft.icon\r\n" + "Content-Length: %lu\r\n" + "\r\n", content_length); + /* image/x-icon */ + build_favicon_content((unsigned char *)(response_buffer + n), content_length); + response_len = content_length + n; + break; default: response_len = content_length+256; response_buffer = malloc(response_len); + if(!response_buffer) + break; n = snprintf(response_buffer, response_len, "HTTP/1.1 200 OK\r\n" "Server: minihttptestserver\r\n" "Content-Type: text/plain\r\n" "\r\n"); response_len = content_length+n; - response_buffer = realloc(response_buffer, response_len); + p = realloc(response_buffer, response_len); + if(p == NULL) { + /* Error 500 */ + free(response_buffer); + response_buffer = NULL; + break; + } + response_buffer = p; build_content(response_buffer + n, response_len - n); } @@ -308,15 +504,8 @@ void handle_http_connection(int c) */ int main(int argc, char * * argv) { int ipv6 = 0; - int s, c, i; + int r, i; unsigned short port = 0; - struct sockaddr_storage server_addr; - socklen_t server_addrlen; - struct sockaddr_storage client_addr; - socklen_t client_addrlen; - pid_t pid; - int child = 0; - int status; const char * expected_file_name = NULL; for(i = 1; i < argc; i++) { @@ -339,15 +528,46 @@ int main(int argc, char * * argv) { fprintf(stderr, "unknown command line switch '%s'\n", argv[i]); } } else { - fprintf(stderr, "unkown command line argument '%s'\n", argv[i]); + fprintf(stderr, "unknown command line argument '%s'\n", argv[i]); } } srand(time(NULL)); - signal(SIGCHLD, handle_signal_chld); -#if 0 - signal(SIGINT, handle_signal_int); -#endif + + r = server(port, expected_file_name, ipv6); + if(r != 0) { + printf("*** ERROR ***\n"); + } + return r; +} + +static int server(unsigned short port, const char * expected_file_name, int ipv6) +{ + int s, c; + int i; + struct sockaddr_storage server_addr; + socklen_t server_addrlen; + struct sockaddr_storage client_addr; + socklen_t client_addrlen; + pid_t pid; + int child = 0; + int status; + struct sigaction sa; + + memset(&sa, 0, sizeof(struct sigaction)); + + /*signal(SIGCHLD, handle_signal_chld);*/ + sa.sa_handler = handle_signal_chld; + if(sigaction(SIGCHLD, &sa, NULL) < 0) { + perror("sigaction"); + return 1; + } + /*signal(SIGINT, handle_signal_int);*/ + sa.sa_handler = handle_signal_int; + if(sigaction(SIGINT, &sa, NULL) < 0) { + perror("sigaction"); + return 1; + } s = socket(ipv6 ? AF_INET6 : AF_INET, SOCK_STREAM, 0); if(s < 0) { @@ -360,12 +580,12 @@ int main(int argc, char * * argv) { struct sockaddr_in6 * addr = (struct sockaddr_in6 *)&server_addr; addr->sin6_family = AF_INET6; addr->sin6_port = htons(port); - addr->sin6_addr = in6addr_any; + addr->sin6_addr = in6addr_loopback; } else { struct sockaddr_in * addr = (struct sockaddr_in *)&server_addr; addr->sin_family = AF_INET; addr->sin_port = htons(port); - addr->sin_addr.s_addr = htonl(INADDR_ANY); + addr->sin_addr.s_addr = htonl(INADDR_LOOPBACK); } if(bind(s, (struct sockaddr *)&server_addr, ipv6 ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in)) < 0) { @@ -399,10 +619,19 @@ int main(int argc, char * * argv) { if(f) { char * buffer; buffer = malloc(16*1024); - build_content(buffer, 16*1024); - fwrite(buffer, 1, 16*1024, f); - free(buffer); + if(buffer == NULL) { + fprintf(stderr, "memory allocation error\n"); + } else { + build_content(buffer, 16*1024); + i = fwrite(buffer, 1, 16*1024, f); + if(i != 16*1024) { + fprintf(stderr, "error writing to file %s : %dbytes written (out of %d)\n", expected_file_name, i, 16*1024); + } + free(buffer); + } fclose(f); + } else { + fprintf(stderr, "error opening file %s for writing\n", expected_file_name); } } @@ -413,16 +642,16 @@ int main(int argc, char * * argv) { if(pid < 0) { perror("wait"); } else { - printf("child(%d) terminated with status %d\n", pid, status); + printf("child(%d) terminated with status %d\n", (int)pid, status); } --child_to_wait_for; } - /* TODO : add a select() call in order to handle the case - * when a signal is caught */ client_addrlen = sizeof(struct sockaddr_storage); c = accept(s, (struct sockaddr *)&client_addr, &client_addrlen); if(c < 0) { + if(errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) + continue; perror("accept"); return 1; } @@ -450,7 +679,7 @@ int main(int argc, char * * argv) { if(pid < 0) { perror("wait"); } else { - printf("child(%d) terminated with status %d\n", pid, status); + printf("child(%d) terminated with status %d\n", (int)pid, status); } --child_to_wait_for; } diff --git a/libs/miniupnpc/minisoap.c b/libs/miniupnpc/src/minisoap.c similarity index 81% rename from libs/miniupnpc/minisoap.c rename to libs/miniupnpc/src/minisoap.c index 8889bf040d..78606672d5 100644 --- a/libs/miniupnpc/minisoap.c +++ b/libs/miniupnpc/src/minisoap.c @@ -1,7 +1,8 @@ -/* $Id: minisoap.c,v 1.21 2011/03/22 19:15:35 nanard Exp $ */ -/* Project : miniupnp +/* $Id: minisoap.c,v 1.30 2020/11/09 19:27:42 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * Project : miniupnp * Author : Thomas Bernard - * Copyright (c) 2005-2009 Thomas Bernard + * Copyright (c) 2005-2020 Thomas Bernard * This software is subject to the conditions detailed in the * LICENCE file provided in this distribution. * @@ -9,10 +10,10 @@ */ #include <stdio.h> #include <string.h> -#ifdef WIN32 +#ifdef _WIN32 #include <io.h> #include <winsock2.h> -#define snprintf _snprintf +#include "win32_snprintf.h" #else #include <unistd.h> #include <sys/types.h> @@ -24,16 +25,10 @@ /* only for malloc */ #include <stdlib.h> -#ifdef WIN32 -#define PRINT_SOCKET_ERROR(x) printf("Socket error: %s, %d\n", x, WSAGetLastError()); -#else -#define PRINT_SOCKET_ERROR(x) perror(x) -#endif - /* httpWrite sends the headers and the body to the socket * and returns the number of bytes sent */ static int -httpWrite(int fd, const char * body, int bodysize, +httpWrite(SOCKET fd, const char * body, int bodysize, const char * headers, int headerssize) { int n = 0; @@ -43,10 +38,10 @@ httpWrite(int fd, const char * body, int bodysize, /* Note : my old linksys router only took into account * soap request that are sent into only one packet */ char * p; - /* TODO: AVOID MALLOC */ + /* TODO: AVOID MALLOC, we could use writev() for that */ p = malloc(headerssize+bodysize); if(!p) - return 0; + return -1; memcpy(p, headers, headerssize); memcpy(p+headerssize, body, bodysize); /*n = write(fd, p, headerssize+bodysize);*/ @@ -55,9 +50,9 @@ httpWrite(int fd, const char * body, int bodysize, PRINT_SOCKET_ERROR("send"); } /* disable send on the socket */ - /* draytek routers dont seems to like that... */ + /* draytek routers don't seem to like that... */ #if 0 -#ifdef WIN32 +#ifdef _WIN32 if(shutdown(fd, SD_SEND)<0) { #else if(shutdown(fd, SHUT_WR)<0) { /*SD_SEND*/ @@ -70,7 +65,7 @@ httpWrite(int fd, const char * body, int bodysize, } /* self explanatory */ -int soapPostSubmit(int fd, +int soapPostSubmit(SOCKET fd, const char * url, const char * host, unsigned short port, @@ -78,11 +73,10 @@ int soapPostSubmit(int fd, const char * body, const char * httpversion) { - int bodysize; char headerbuf[512]; int headerssize; char portstr[8]; - bodysize = (int)strlen(body); + int bodysize = (int)strlen(body); /* We are not using keep-alive HTTP connections. * HTTP/1.1 needs the header Connection: close to do that. * This is the default with HTTP/1.0 @@ -96,7 +90,7 @@ int soapPostSubmit(int fd, headerssize = snprintf(headerbuf, sizeof(headerbuf), "POST %s HTTP/%s\r\n" "Host: %s%s\r\n" - "User-Agent: " OS_STRING ", UPnP/1.0, MiniUPnPc/" MINIUPNPC_VERSION_STRING "\r\n" + "User-Agent: " OS_STRING ", " UPNP_VERSION_STRING ", MiniUPnPc/" MINIUPNPC_VERSION_STRING "\r\n" "Content-Length: %d\r\n" "Content-Type: text/xml\r\n" "SOAPAction: \"%s\"\r\n" @@ -105,6 +99,8 @@ int soapPostSubmit(int fd, "Pragma: no-cache\r\n" "\r\n", url, httpversion, host, portstr, bodysize, action); + if ((unsigned int)headerssize >= sizeof(headerbuf)) + return -1; #ifdef DEBUG /*printf("SOAP request : headersize=%d bodysize=%d\n", headerssize, bodysize); diff --git a/libs/miniupnpc/minisoap.h b/libs/miniupnpc/src/minisoap.h similarity index 51% rename from libs/miniupnpc/minisoap.h rename to libs/miniupnpc/src/minisoap.h index 696725f625..f286842052 100644 --- a/libs/miniupnpc/minisoap.h +++ b/libs/miniupnpc/src/minisoap.h @@ -1,14 +1,16 @@ -/* $Id: minisoap.h,v 1.4 2010/04/12 20:39:41 nanard Exp $ */ +/* $Id: minisoap.h,v 1.6 2018/04/06 10:53:13 nanard Exp $ */ /* Project : miniupnp * Author : Thomas Bernard - * Copyright (c) 2005 Thomas Bernard + * Copyright (c) 2005-2018 Thomas Bernard * This software is subject to the conditions detailed in the * LICENCE file provided in this distribution. */ -#ifndef __MINISOAP_H__ -#define __MINISOAP_H__ +#ifndef MINISOAP_H_INCLUDED +#define MINISOAP_H_INCLUDED + +#include "miniupnpc_socketdef.h" /*int httpWrite(int, const char *, int, const char *);*/ -int soapPostSubmit(int, const char *, const char *, unsigned short, +int soapPostSubmit(SOCKET, const char *, const char *, unsigned short, const char *, const char *, const char *); #endif diff --git a/libs/miniupnpc/src/minissdpc.c b/libs/miniupnpc/src/minissdpc.c new file mode 100644 index 0000000000..edebb1600a --- /dev/null +++ b/libs/miniupnpc/src/minissdpc.c @@ -0,0 +1,1019 @@ +/* $Id: minissdpc.c,v 1.49 2021/05/13 11:00:36 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * Project : miniupnp + * Web : http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ + * Author : Thomas BERNARD + * copyright (c) 2005-2021 Thomas Bernard + * This software is subjet to the conditions detailed in the + * provided LICENCE file. */ +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <time.h> +#include <sys/types.h> +#if defined (__NetBSD__) +#include <net/if.h> +#endif +#if defined(_WIN32) || defined(__amigaos__) || defined(__amigaos4__) +#ifdef _WIN32 +#include <winsock2.h> +#include <ws2tcpip.h> +#include <io.h> +#include <iphlpapi.h> +#include "win32_snprintf.h" +#if !defined(_MSC_VER) +#include <stdint.h> +#else /* !defined(_MSC_VER) */ +typedef unsigned short uint16_t; +#endif /* !defined(_MSC_VER) */ +#ifndef strncasecmp +#if defined(_MSC_VER) && (_MSC_VER >= 1400) +#define strncasecmp _memicmp +#else /* defined(_MSC_VER) && (_MSC_VER >= 1400) */ +#define strncasecmp memicmp +#endif /* defined(_MSC_VER) && (_MSC_VER >= 1400) */ +#endif /* #ifndef strncasecmp */ +#if defined(WINAPI_FAMILY) && defined(WINAPI_FAMILY_PARTITION) +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP +#define in6addr_any in6addr_any_init +static const IN6_ADDR in6addr_any_init = {0}; +#endif +#endif +#endif /* _WIN32 */ +#if defined(__amigaos__) || defined(__amigaos4__) +#include <sys/socket.h> +#endif /* defined(__amigaos__) || defined(__amigaos4__) */ +#if defined(__amigaos__) +#define uint16_t unsigned short +#endif /* defined(__amigaos__) */ +/* Hack */ +#define UNIX_PATH_LEN 108 +struct sockaddr_un { + uint16_t sun_family; + char sun_path[UNIX_PATH_LEN]; +}; +#else /* defined(_WIN32) || defined(__amigaos__) || defined(__amigaos4__) */ +#include <strings.h> +#include <unistd.h> +#include <sys/socket.h> +#include <sys/param.h> +#include <sys/time.h> +#include <sys/un.h> +#include <netinet/in.h> +#include <arpa/inet.h> +#include <netdb.h> +#include <net/if.h> +#define closesocket close +#endif + +#include "miniupnpc_socketdef.h" + +#if !defined(__DragonFly__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__APPLE__) && !defined(_WIN32) && !defined(__CYGWIN__) && !defined(__sun) && !defined(__GNU__) && !defined(__FreeBSD_kernel__) && !defined(__HAIKU__) +#define HAS_IP_MREQN +#endif + +#ifndef _WIN32 +#include <sys/ioctl.h> +#if defined(__sun) || defined(__HAIKU__) +#include <sys/sockio.h> +#endif +#endif + +#if defined(HAS_IP_MREQN) && defined(NEED_STRUCT_IP_MREQN) +/* Several versions of glibc don't define this structure, + * define it here and compile with CFLAGS NEED_STRUCT_IP_MREQN */ +struct ip_mreqn +{ + struct in_addr imr_multiaddr; /* IP multicast address of group */ + struct in_addr imr_address; /* local IP address of interface */ + int imr_ifindex; /* Interface index */ +}; +#endif + +#if defined(__amigaos__) || defined(__amigaos4__) +/* Amiga OS specific stuff */ +#define TIMEVAL struct timeval +#endif + +#include "minissdpc.h" +#include "miniupnpc.h" +#include "receivedata.h" + +#if !(defined(_WIN32) || defined(__amigaos__) || defined(__amigaos4__)) + +#include "codelength.h" + +struct UPNPDev * +getDevicesFromMiniSSDPD(const char * devtype, const char * socketpath, int * error) +{ + struct UPNPDev * devlist = NULL; + int s; + int res; + + s = connectToMiniSSDPD(socketpath); + if (s < 0) { + if (error) + *error = s; + return NULL; + } + res = requestDevicesFromMiniSSDPD(s, devtype); + if (res < 0) { + if (error) + *error = res; + } else { + devlist = receiveDevicesFromMiniSSDPD(s, error); + } + disconnectFromMiniSSDPD(s); + return devlist; +} + +/* macros used to read from unix socket */ +#define READ_BYTE_BUFFER(c) \ + if((int)bufferindex >= n) { \ + n = read(s, buffer, sizeof(buffer)); \ + if(n<=0) break; \ + bufferindex = 0; \ + } \ + c = buffer[bufferindex++]; + +#ifndef MIN +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) +#endif /* MIN */ + +#define READ_COPY_BUFFER(dst, len) \ + for(l = len, p = (unsigned char *)dst; l > 0; ) { \ + unsigned int lcopy; \ + if((int)bufferindex >= n) { \ + n = read(s, buffer, sizeof(buffer)); \ + if(n<=0) break; \ + bufferindex = 0; \ + } \ + lcopy = MIN(l, (n - bufferindex)); \ + memcpy(p, buffer + bufferindex, lcopy); \ + l -= lcopy; \ + p += lcopy; \ + bufferindex += lcopy; \ + } + +#define READ_DISCARD_BUFFER(len) \ + for(l = len; l > 0; ) { \ + unsigned int lcopy; \ + if(bufferindex >= n) { \ + n = read(s, buffer, sizeof(buffer)); \ + if(n<=0) break; \ + bufferindex = 0; \ + } \ + lcopy = MIN(l, (n - bufferindex)); \ + l -= lcopy; \ + bufferindex += lcopy; \ + } + +int +connectToMiniSSDPD(const char * socketpath) +{ + int s; + struct sockaddr_un addr; +#if defined(MINIUPNPC_SET_SOCKET_TIMEOUT) && !defined(__sun) + struct timeval timeout; +#endif /* #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT */ + + s = socket(AF_UNIX, SOCK_STREAM, 0); + if(s < 0) + { + /*syslog(LOG_ERR, "socket(unix): %m");*/ + perror("socket(unix)"); + return MINISSDPC_SOCKET_ERROR; + } +#if defined(MINIUPNPC_SET_SOCKET_TIMEOUT) && !defined(__sun) + /* setting a 3 seconds timeout */ + /* not supported for AF_UNIX sockets under Solaris */ + timeout.tv_sec = 3; + timeout.tv_usec = 0; + if(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(struct timeval)) < 0) + { + perror("setsockopt SO_RCVTIMEO unix"); + } + timeout.tv_sec = 3; + timeout.tv_usec = 0; + if(setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(struct timeval)) < 0) + { + perror("setsockopt SO_SNDTIMEO unix"); + } +#endif /* #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT */ + if(!socketpath) + socketpath = "/var/run/minissdpd.sock"; + memset(&addr, 0, sizeof(addr)); + addr.sun_family = AF_UNIX; + strncpy(addr.sun_path, socketpath, sizeof(addr.sun_path)); + /* TODO : check if we need to handle the EINTR */ + if(connect(s, (struct sockaddr *)&addr, sizeof(struct sockaddr_un)) < 0) + { + /*syslog(LOG_WARNING, "connect(\"%s\"): %m", socketpath);*/ + close(s); + return MINISSDPC_SOCKET_ERROR; + } + return s; +} + +int +disconnectFromMiniSSDPD(int s) +{ + if (close(s) < 0) + return MINISSDPC_SOCKET_ERROR; + return MINISSDPC_SUCCESS; +} + +int +requestDevicesFromMiniSSDPD(int s, const char * devtype) +{ + unsigned char buffer[256]; + unsigned char * p; + unsigned int stsize, l; + + stsize = strlen(devtype); + if(stsize == 8 && 0 == memcmp(devtype, "ssdp:all", 8)) + { + buffer[0] = 3; /* request type 3 : everything */ + } + else + { + buffer[0] = 1; /* request type 1 : request devices/services by type */ + } + p = buffer + 1; + l = stsize; CODELENGTH(l, p); + if(p + stsize > buffer + sizeof(buffer)) + { + /* devtype is too long ! */ +#ifdef DEBUG + fprintf(stderr, "devtype is too long ! stsize=%u sizeof(buffer)=%u\n", + stsize, (unsigned)sizeof(buffer)); +#endif /* DEBUG */ + return MINISSDPC_INVALID_INPUT; + } + memcpy(p, devtype, stsize); + p += stsize; + if(write(s, buffer, p - buffer) < 0) + { + /*syslog(LOG_ERR, "write(): %m");*/ + perror("minissdpc.c: write()"); + return MINISSDPC_SOCKET_ERROR; + } + return MINISSDPC_SUCCESS; +} + +struct UPNPDev * +receiveDevicesFromMiniSSDPD(int s, int * error) +{ + struct UPNPDev * tmp; + struct UPNPDev * devlist = NULL; + unsigned char buffer[256]; + ssize_t n; + unsigned char * p; + unsigned char * url; + unsigned char * st; + unsigned int bufferindex; + unsigned int i, ndev; + unsigned int urlsize, stsize, usnsize, l; + + n = read(s, buffer, sizeof(buffer)); + if(n<=0) + { + perror("minissdpc.c: read()"); + if (error) + *error = MINISSDPC_SOCKET_ERROR; + return NULL; + } + ndev = buffer[0]; + bufferindex = 1; + for(i = 0; i < ndev; i++) + { + DECODELENGTH_READ(urlsize, READ_BYTE_BUFFER); + if(n<=0) { + if (error) + *error = MINISSDPC_INVALID_SERVER_REPLY; + return devlist; + } +#ifdef DEBUG + printf(" urlsize=%u", urlsize); +#endif /* DEBUG */ + url = malloc(urlsize); + if(url == NULL) { + if (error) + *error = MINISSDPC_MEMORY_ERROR; + return devlist; + } + READ_COPY_BUFFER(url, urlsize); + if(n<=0) { + if (error) + *error = MINISSDPC_INVALID_SERVER_REPLY; + goto free_url_and_return; + } + DECODELENGTH_READ(stsize, READ_BYTE_BUFFER); + if(n<=0) { + if (error) + *error = MINISSDPC_INVALID_SERVER_REPLY; + goto free_url_and_return; + } +#ifdef DEBUG + printf(" stsize=%u", stsize); +#endif /* DEBUG */ + st = malloc(stsize); + if (st == NULL) { + if (error) + *error = MINISSDPC_MEMORY_ERROR; + goto free_url_and_return; + } + READ_COPY_BUFFER(st, stsize); + if(n<=0) { + if (error) + *error = MINISSDPC_INVALID_SERVER_REPLY; + goto free_url_and_st_and_return; + } + DECODELENGTH_READ(usnsize, READ_BYTE_BUFFER); + if(n<=0) { + if (error) + *error = MINISSDPC_INVALID_SERVER_REPLY; + goto free_url_and_st_and_return; + } +#ifdef DEBUG + printf(" usnsize=%u\n", usnsize); +#endif /* DEBUG */ + tmp = (struct UPNPDev *)malloc(sizeof(struct UPNPDev)+urlsize+stsize+usnsize); + if(tmp == NULL) { + if (error) + *error = MINISSDPC_MEMORY_ERROR; + goto free_url_and_st_and_return; + } + tmp->pNext = devlist; + tmp->descURL = tmp->buffer; + tmp->st = tmp->buffer + 1 + urlsize; + memcpy(tmp->buffer, url, urlsize); + tmp->buffer[urlsize] = '\0'; + memcpy(tmp->st, st, stsize); + tmp->buffer[urlsize+1+stsize] = '\0'; + free(url); + free(st); + url = NULL; + st = NULL; + tmp->usn = tmp->buffer + 1 + urlsize + 1 + stsize; + READ_COPY_BUFFER(tmp->usn, usnsize); + if(n<=0) { + if (error) + *error = MINISSDPC_INVALID_SERVER_REPLY; + goto free_tmp_and_return; + } + tmp->buffer[urlsize+1+stsize+1+usnsize] = '\0'; + tmp->scope_id = 0; /* default value. scope_id is not available with MiniSSDPd */ + devlist = tmp; + } + if (error) + *error = MINISSDPC_SUCCESS; + return devlist; + +free_url_and_st_and_return: + free(st); +free_url_and_return: + free(url); + return devlist; + +free_tmp_and_return: + free(tmp); + return devlist; +} + +#endif /* !(defined(_WIN32) || defined(__amigaos__) || defined(__amigaos4__)) */ + +/* parseMSEARCHReply() + * the last 4 arguments are filled during the parsing : + * - location/locationsize : "location:" field of the SSDP reply packet + * - st/stsize : "st:" field of the SSDP reply packet. + * - usn/usnsize : "usn:" filed of the SSDP reply packet + * The strings are NOT null terminated */ +static void +parseMSEARCHReply(const char * reply, int size, + const char * * location, int * locationsize, + const char * * st, int * stsize, + const char * * usn, int * usnsize) +{ + int a, b, i; + i = 0; + a = i; /* start of the line */ + b = 0; /* end of the "header" (position of the colon) */ + while(i<size) + { + switch(reply[i]) + { + case ':': + if(b==0) + { + b = i; /* end of the "header" */ + /*for(j=a; j<b; j++) + { + putchar(reply[j]); + } + */ + } + break; + case '\x0a': + case '\x0d': + if(b!=0) + { + /*for(j=b+1; j<i; j++) + { + putchar(reply[j]); + } + putchar('\n');*/ + /* skip the colon and white spaces */ + do { b++; } while(reply[b]==' '); + if(0==strncasecmp(reply+a, "location:", 9)) + { + *location = reply+b; + *locationsize = i-b; + } + else if(0==strncasecmp(reply+a, "st:", 3)) + { + *st = reply+b; + *stsize = i-b; + } + else if(0==strncasecmp(reply+a, "usn:", 4)) + { + *usn = reply+b; + *usnsize = i-b; + } + b = 0; + } + a = i+1; + break; + default: + break; + } + i++; + } +} + +#if defined(CLOCK_MONOTONIC_FAST) +#define UPNP_CLOCKID CLOCK_MONOTONIC_FAST +#elif defined(CLOCK_MONOTONIC) +#define UPNP_CLOCKID CLOCK_MONOTONIC +#endif + +static int upnp_gettimeofday(struct timeval * tv) +{ +#if defined(_WIN32) +#if _WIN32_WINNT >= 0x0600 // _WIN32_WINNT_VISTA + ULONGLONG ts = GetTickCount64(); +#else + DWORD ts = GetTickCount(); +#endif + tv->tv_sec = (long)(ts / 1000); + tv->tv_usec = (ts % 1000) * 1000; + return 0; /* success */ +#elif defined(CLOCK_MONOTONIC_FAST) || defined(CLOCK_MONOTONIC) +#if defined(__APPLE__) +#if defined(__clang__) + if (__builtin_available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *)) { +#else /* !defined(__clang__) */ + if (clock_gettime != NULL) { +#endif /* defined(__clang__) */ +#endif /* defined(__APPLE__) */ + struct timespec ts; + int ret_code = clock_gettime(UPNP_CLOCKID, &ts); + if (ret_code == 0) + { + tv->tv_sec = ts.tv_sec; + tv->tv_usec = ts.tv_nsec / 1000; + } + return ret_code; +#if defined(__APPLE__) + } + else + { + /* fall-back for earlier Apple platforms */ + return gettimeofday(tv, NULL); + } +#endif /* defined(__APPLE__) */ +#else + return gettimeofday(tv, NULL); +#endif +} +/* port upnp discover : SSDP protocol */ +#define SSDP_PORT 1900 +#define XSTR(s) STR(s) +#define STR(s) #s +#define UPNP_MCAST_ADDR "239.255.255.250" +/* for IPv6 */ +#define UPNP_MCAST_LL_ADDR "FF02::C" /* link-local */ +#define UPNP_MCAST_SL_ADDR "FF05::C" /* site-local */ + +/* direct discovery if minissdpd responses are not sufficient */ +/* ssdpDiscoverDevices() : + * return a chained list of all devices found or NULL if + * no devices was found. + * It is up to the caller to free the chained list + * delay is in millisecond (poll). + * UDA v1.1 says : + * The TTL for the IP packet SHOULD default to 2 and + * SHOULD be configurable. */ +struct UPNPDev * +ssdpDiscoverDevices(const char * const deviceTypes[], + int delay, const char * multicastif, + int localport, + int ipv6, unsigned char ttl, + int * error, + int searchalltypes) +{ + struct UPNPDev * tmp; + struct UPNPDev * devlist = NULL; + unsigned int scope_id = 0; + int opt = 1; + static const char MSearchMsgFmt[] = + "M-SEARCH * HTTP/1.1\r\n" + "HOST: %s:" XSTR(SSDP_PORT) "\r\n" + "ST: %s\r\n" + "MAN: \"ssdp:discover\"\r\n" + "MX: %u\r\n" + "\r\n"; + int deviceIndex; + char bufr[1536]; /* reception and emission buffer */ + SOCKET sudp; + int n; + struct sockaddr_storage sockudp_r; + unsigned int mx; +#ifdef NO_GETADDRINFO + struct sockaddr_storage sockudp_w; +#else + int rv; + struct addrinfo hints, *servinfo; +#endif +#ifdef _WIN32 + unsigned long _ttl = (unsigned long)ttl; +#endif + int linklocal = 1; + int sentok; + + if(error) + *error = MINISSDPC_UNKNOWN_ERROR; + + if(localport==UPNP_LOCAL_PORT_SAME) + localport = SSDP_PORT; + +#ifdef _WIN32 + sudp = socket(ipv6 ? PF_INET6 : PF_INET, SOCK_DGRAM, IPPROTO_UDP); +#else + sudp = socket(ipv6 ? PF_INET6 : PF_INET, SOCK_DGRAM, 0); +#endif + if(ISINVALID(sudp)) + { + if(error) + *error = MINISSDPC_SOCKET_ERROR; + PRINT_SOCKET_ERROR("socket"); + return NULL; + } + /* reception */ + memset(&sockudp_r, 0, sizeof(struct sockaddr_storage)); + if(ipv6) { + struct sockaddr_in6 * p = (struct sockaddr_in6 *)&sockudp_r; + p->sin6_family = AF_INET6; + if(localport > 0 && localport < 65536) + p->sin6_port = htons((unsigned short)localport); + p->sin6_addr = in6addr_any; /* in6addr_any is not available with MinGW32 3.4.2 */ + } else { + struct sockaddr_in * p = (struct sockaddr_in *)&sockudp_r; + p->sin_family = AF_INET; + if(localport > 0 && localport < 65536) + p->sin_port = htons((unsigned short)localport); + p->sin_addr.s_addr = INADDR_ANY; + } +#ifdef _WIN32 +/* This code could help us to use the right Network interface for + * SSDP multicast traffic */ +/* Get IP associated with the index given in the ip_forward struct + * in order to give this ip to setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_IF) */ + if(!ipv6) { + DWORD ifbestidx; +#if _WIN32_WINNT >= 0x0600 // _WIN32_WINNT_VISTA + // While we don't need IPv6 support, the IPv4 only funciton is not available in UWP apps. + SOCKADDR_IN destAddr; + memset(&destAddr, 0, sizeof(destAddr)); + destAddr.sin_family = AF_INET; + destAddr.sin_addr.s_addr = inet_addr("223.255.255.255"); + destAddr.sin_port = 0; + if (GetBestInterfaceEx((struct sockaddr *)&destAddr, &ifbestidx) == NO_ERROR) { +#else + if (GetBestInterface(inet_addr("223.255.255.255"), &ifbestidx) == NO_ERROR) { +#endif + DWORD dwRetVal = NO_ERROR; + PIP_ADAPTER_ADDRESSES pAddresses = NULL; + ULONG outBufLen = 15360; + int Iterations; + PIP_ADAPTER_ADDRESSES pCurrAddresses = NULL; + PIP_ADAPTER_UNICAST_ADDRESS pUnicast = NULL; + + for (Iterations = 0; Iterations < 3; Iterations++) { + pAddresses = (IP_ADAPTER_ADDRESSES *) HeapAlloc(GetProcessHeap(), 0, outBufLen); + if (pAddresses == NULL) { + break; + } + + dwRetVal = GetAdaptersAddresses(AF_INET, GAA_FLAG_INCLUDE_PREFIX, NULL, pAddresses, &outBufLen); + + if (dwRetVal != ERROR_BUFFER_OVERFLOW) { + break; + } + HeapFree(GetProcessHeap(), 0, pAddresses); + pAddresses = NULL; + } + + if (dwRetVal == NO_ERROR) { + pCurrAddresses = pAddresses; + while (pCurrAddresses) { +#ifdef DEBUG + int i; + PIP_ADAPTER_MULTICAST_ADDRESS pMulticast = NULL; + PIP_ADAPTER_ANYCAST_ADDRESS pAnycast = NULL; + + printf("\tIfIndex (IPv4 interface): %u\n", pCurrAddresses->IfIndex); + printf("\tAdapter name: %s\n", pCurrAddresses->AdapterName); + pUnicast = pCurrAddresses->FirstUnicastAddress; + if (pUnicast != NULL) { + for (i = 0; pUnicast != NULL; i++) { + printf("\tIP Address[%d]: \t%s\n", i, inet_ntoa(((PSOCKADDR_IN)pUnicast->Address.lpSockaddr)->sin_addr) ); + pUnicast = pUnicast->Next; + } + printf("\tNumber of Unicast Addresses: %d\n", i); + } + pAnycast = pCurrAddresses->FirstAnycastAddress; + if (pAnycast) { + for (i = 0; pAnycast != NULL; i++) { + printf("\tAnycast Address[%d]: \t%s\n", i, inet_ntoa(((PSOCKADDR_IN)pAnycast->Address.lpSockaddr)->sin_addr) ); + pAnycast = pAnycast->Next; + } + printf("\tNumber of Anycast Addresses: %d\n", i); + } + pMulticast = pCurrAddresses->FirstMulticastAddress; + if (pMulticast) { + for (i = 0; pMulticast != NULL; i++) { + printf("\tMulticast Address[%d]: \t%s\n", i, inet_ntoa(((PSOCKADDR_IN)pMulticast->Address.lpSockaddr)->sin_addr) ); + pMulticast = pMulticast->Next; + } + } + printf("\n"); +#endif + pUnicast = pCurrAddresses->FirstUnicastAddress; + if (pCurrAddresses->IfIndex == ifbestidx && pUnicast != NULL) { + SOCKADDR_IN *ipv4 = (SOCKADDR_IN *)(pUnicast->Address.lpSockaddr); + /* Set the address of this interface to be used */ + struct in_addr mc_if; + memset(&mc_if, 0, sizeof(mc_if)); + mc_if.s_addr = ipv4->sin_addr.s_addr; + if(setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_IF, (const char *)&mc_if, sizeof(mc_if)) < 0) { + PRINT_SOCKET_ERROR("setsockopt"); + } + ((struct sockaddr_in *)&sockudp_r)->sin_addr.s_addr = ipv4->sin_addr.s_addr; +#ifndef DEBUG + break; +#endif + } + pCurrAddresses = pCurrAddresses->Next; + } + } + if (pAddresses != NULL) { + HeapFree(GetProcessHeap(), 0, pAddresses); + pAddresses = NULL; + } + } + } +#endif /* _WIN32 */ + +#ifdef _WIN32 + if (setsockopt(sudp, SOL_SOCKET, SO_REUSEADDR, (const char *)&opt, sizeof (opt)) < 0) +#else + if (setsockopt(sudp, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof (opt)) < 0) +#endif + { + if(error) + *error = MINISSDPC_SOCKET_ERROR; + PRINT_SOCKET_ERROR("setsockopt(SO_REUSEADDR,...)"); + goto error; + } + + if(ipv6) { +#ifdef _WIN32 + DWORD mcastHops = ttl; + if(setsockopt(sudp, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, (const char *)&mcastHops, sizeof(mcastHops)) < 0) +#else /* _WIN32 */ + int mcastHops = ttl; + if(setsockopt(sudp, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, &mcastHops, sizeof(mcastHops)) < 0) +#endif /* _WIN32 */ + { + PRINT_SOCKET_ERROR("setsockopt(IPV6_MULTICAST_HOPS,...)"); + } + } else { +#ifdef _WIN32 + if(setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_TTL, (const char *)&_ttl, sizeof(_ttl)) < 0) +#else /* _WIN32 */ + if(setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, sizeof(ttl)) < 0) +#endif /* _WIN32 */ + { + /* not a fatal error */ + PRINT_SOCKET_ERROR("setsockopt(IP_MULTICAST_TTL,...)"); + } + } + + if(multicastif && multicastif[0] != '\0') + { + if(ipv6) { +#if !defined(_WIN32) + /* according to MSDN, if_nametoindex() is supported since + * MS Windows Vista and MS Windows Server 2008. + * http://msdn.microsoft.com/en-us/library/bb408409%28v=vs.85%29.aspx */ + unsigned int ifindex = if_nametoindex(multicastif); /* eth0, etc. */ + if(ifindex == 0) + { + if(error) + *error = MINISSDPC_INVALID_INPUT; + fprintf(stderr, "Invalid multicast interface name %s\n", multicastif); + goto error; + } + if(setsockopt(sudp, IPPROTO_IPV6, IPV6_MULTICAST_IF, &ifindex, sizeof(ifindex)) < 0) + { + PRINT_SOCKET_ERROR("setsockopt IPV6_MULTICAST_IF"); + } +#else +#ifdef DEBUG + printf("Setting of multicast interface not supported in IPv6 under Windows.\n"); +#endif +#endif + } else { + struct in_addr mc_if; +#if defined(_WIN32) +#if _WIN32_WINNT >= 0x0600 // _WIN32_WINNT_VISTA + InetPtonA(AF_INET, multicastif, &mc_if); +#else + mc_if.s_addr = inet_addr(multicastif); /* old Windows SDK do not support InetPtoA() */ +#endif +#else + /* was : mc_if.s_addr = inet_addr(multicastif); */ /* ex: 192.168.x.x */ + if (inet_pton(AF_INET, multicastif, &mc_if.s_addr) <= 0) { + mc_if.s_addr = INADDR_NONE; + } +#endif + if(mc_if.s_addr != INADDR_NONE) + { + ((struct sockaddr_in *)&sockudp_r)->sin_addr.s_addr = mc_if.s_addr; + if(setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_IF, (const char *)&mc_if, sizeof(mc_if)) < 0) + { + PRINT_SOCKET_ERROR("setsockopt IP_MULTICAST_IF"); + } + } else { + /* was not an ip address, try with an interface name */ +#ifndef _WIN32 +#ifdef HAS_IP_MREQN + struct ip_mreqn reqn; /* only defined with -D_BSD_SOURCE or -D_GNU_SOURCE */ +#endif + struct ifreq ifr; + int ifrlen = sizeof(ifr); + strncpy(ifr.ifr_name, multicastif, IFNAMSIZ); + ifr.ifr_name[IFNAMSIZ-1] = '\0'; + if(ioctl(sudp, SIOCGIFADDR, &ifr, &ifrlen) < 0) + { + PRINT_SOCKET_ERROR("ioctl(...SIOCGIFADDR...)"); + goto error; + } + mc_if.s_addr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr.s_addr; +#ifdef HAS_IP_MREQN + memset(&reqn, 0, sizeof(struct ip_mreqn)); + reqn.imr_address.s_addr = mc_if.s_addr; + reqn.imr_ifindex = if_nametoindex(multicastif); + if(reqn.imr_ifindex == 0) + { + if(error) + *error = MINISSDPC_INVALID_INPUT; + fprintf(stderr, "Invalid multicast ip address / interface name %s\n", multicastif); + goto error; + } + if(setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_IF, (const char *)&reqn, sizeof(reqn)) < 0) + { + PRINT_SOCKET_ERROR("setsockopt IP_MULTICAST_IF"); + } +#else + if(setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_IF, (const char *)&mc_if, sizeof(mc_if)) < 0) + { + PRINT_SOCKET_ERROR("setsockopt IP_MULTICAST_IF"); + } +#endif +#else /* _WIN32 */ +#ifdef DEBUG + printf("Setting of multicast interface not supported with interface name.\n"); +#endif +#endif /* #ifdef HAS_IP_MREQN / !defined(_WIN32) */ + } + } + } + + /* Before sending the packed, we first "bind" in order to be able + * to receive the response */ + if (bind(sudp, (const struct sockaddr *)&sockudp_r, + ipv6 ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in)) != 0) + { + if(error) + *error = MINISSDPC_SOCKET_ERROR; + PRINT_SOCKET_ERROR("bind"); + closesocket(sudp); + return NULL; + } + + if(error) + *error = MINISSDPC_SUCCESS; + /* Calculating maximum response time in seconds */ + mx = ((unsigned int)delay) / 1000u; + if(mx == 0) { + mx = 1; + delay = 1000; + } + /* receiving SSDP response packet */ + for(deviceIndex = 0; deviceTypes[deviceIndex]; deviceIndex++) { + sentok = 0; + /* sending the SSDP M-SEARCH packet */ + n = snprintf(bufr, sizeof(bufr), + MSearchMsgFmt, + ipv6 ? + (linklocal ? "[" UPNP_MCAST_LL_ADDR "]" : "[" UPNP_MCAST_SL_ADDR "]") + : UPNP_MCAST_ADDR, + deviceTypes[deviceIndex], mx); + if ((unsigned int)n >= sizeof(bufr)) { + if(error) + *error = MINISSDPC_MEMORY_ERROR; + goto error; + } +#ifdef DEBUG + /*printf("Sending %s", bufr);*/ + printf("Sending M-SEARCH request to %s with ST: %s\n", + ipv6 ? + (linklocal ? "[" UPNP_MCAST_LL_ADDR "]" : "[" UPNP_MCAST_SL_ADDR "]") + : UPNP_MCAST_ADDR, + deviceTypes[deviceIndex]); +#endif +#ifdef NO_GETADDRINFO + /* the following code is not using getaddrinfo */ + /* emission */ + memset(&sockudp_w, 0, sizeof(struct sockaddr_storage)); + if(ipv6) { + struct sockaddr_in6 * p = (struct sockaddr_in6 *)&sockudp_w; + p->sin6_family = AF_INET6; + p->sin6_port = htons(SSDP_PORT); + inet_pton(AF_INET6, + linklocal ? UPNP_MCAST_LL_ADDR : UPNP_MCAST_SL_ADDR, + &(p->sin6_addr)); + } else { + struct sockaddr_in * p = (struct sockaddr_in *)&sockudp_w; + p->sin_family = AF_INET; + p->sin_port = htons(SSDP_PORT); + p->sin_addr.s_addr = inet_addr(UPNP_MCAST_ADDR); + } + n = sendto(sudp, bufr, n, 0, &sockudp_w, + ipv6 ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in)); + if (n < 0) { + if(error) + *error = MINISSDPC_SOCKET_ERROR; + PRINT_SOCKET_ERROR("sendto"); + } else { + sentok = 1; + } +#else /* #ifdef NO_GETADDRINFO */ + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_UNSPEC; /* AF_INET6 or AF_INET */ + hints.ai_socktype = SOCK_DGRAM; + /*hints.ai_flags = */ + if ((rv = getaddrinfo(ipv6 + ? (linklocal ? UPNP_MCAST_LL_ADDR : UPNP_MCAST_SL_ADDR) + : UPNP_MCAST_ADDR, + XSTR(SSDP_PORT), &hints, &servinfo)) != 0) { + if(error) + *error = MINISSDPC_SOCKET_ERROR; +#ifdef _WIN32 + fprintf(stderr, "getaddrinfo() failed: %d\n", rv); +#else + fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(rv)); +#endif + break; + } else { + struct addrinfo *p; + for(p = servinfo; p; p = p->ai_next) { + n = sendto(sudp, bufr, n, 0, p->ai_addr, MSC_CAST_INT p->ai_addrlen); + if (n < 0) { +#ifdef DEBUG + char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV]; + if (getnameinfo(p->ai_addr, (socklen_t)p->ai_addrlen, hbuf, sizeof(hbuf), sbuf, + sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV) == 0) { + fprintf(stderr, "host:%s port:%s\n", hbuf, sbuf); + } +#endif + PRINT_SOCKET_ERROR("sendto"); + continue; + } else { + sentok = 1; + } + } + freeaddrinfo(servinfo); + } + if(!sentok) { + if(error) + *error = MINISSDPC_SOCKET_ERROR; + } +#endif /* #ifdef NO_GETADDRINFO */ + /* Waiting for SSDP REPLY packet to M-SEARCH + * if searchalltypes is set, enter the loop only + * when the last deviceType is reached */ + if((sentok && !searchalltypes) || !deviceTypes[deviceIndex + 1]) { + struct timeval start = {0, 0}, current = {0, 0}; + upnp_gettimeofday(&start); + do { + n = receivedata(sudp, bufr, sizeof(bufr), delay, &scope_id); + if (n < 0) { + /* error */ + if(error) + *error = MINISSDPC_SOCKET_ERROR; + goto error; + } else if (n == 0) { + /* no data or Time Out */ +#ifdef DEBUG + printf("NODATA or TIMEOUT\n"); +#endif /* DEBUG */ + if (devlist && !searchalltypes) { + /* found some devices, stop now*/ + if(error) + *error = MINISSDPC_SUCCESS; + goto error; + } + } else { + const char * descURL=NULL; + int urlsize=0; + const char * st=NULL; + int stsize=0; + const char * usn=NULL; + int usnsize=0; + parseMSEARCHReply(bufr, n, &descURL, &urlsize, &st, &stsize, &usn, &usnsize); + if(st&&descURL) { +#ifdef DEBUG + printf("M-SEARCH Reply:\n ST: %.*s\n USN: %.*s\n Location: %.*s\n", + stsize, st, usnsize, (usn?usn:""), urlsize, descURL); +#endif /* DEBUG */ + for(tmp=devlist; tmp; tmp = tmp->pNext) { + if(strncmp(tmp->descURL, descURL, urlsize) == 0 && + tmp->descURL[urlsize] == '\0' && + strncmp(tmp->st, st, stsize) == 0 && + tmp->st[stsize] == '\0' && + (usnsize == 0 || strncmp(tmp->usn, usn, usnsize) == 0) && + tmp->usn[usnsize] == '\0') + break; + } + /* at the exit of the loop above, tmp is null if + * no duplicate device was found */ + if(tmp) + continue; + tmp = (struct UPNPDev *)malloc(sizeof(struct UPNPDev)+urlsize+stsize+usnsize+3); + if(!tmp) { + /* memory allocation error */ + if(error) + *error = MINISSDPC_MEMORY_ERROR; + goto error; + } + tmp->pNext = devlist; + tmp->descURL = tmp->buffer; + tmp->st = tmp->buffer + 1 + urlsize; + tmp->usn = tmp->st + 1 + stsize; + memcpy(tmp->buffer, descURL, urlsize); + tmp->buffer[urlsize] = '\0'; + memcpy(tmp->st, st, stsize); + tmp->buffer[urlsize+1+stsize] = '\0'; + if(usn != NULL) + memcpy(tmp->usn, usn, usnsize); + tmp->buffer[urlsize+1+stsize+1+usnsize] = '\0'; + tmp->scope_id = scope_id; + devlist = tmp; + } + if (upnp_gettimeofday(¤t) >= 0) { + /* exit the loop if delay is reached */ + long interval = (current.tv_sec - start.tv_sec) * 1000; + interval += (current.tv_usec - start.tv_usec) / 1000; + if (interval > (long)delay) + break; + } + } + } while(n > 0); + } + if(ipv6) { + /* switch linklocal flag */ + if(linklocal) { + linklocal = 0; + --deviceIndex; + } else { + linklocal = 1; + } + } + } +error: + closesocket(sudp); + return devlist; +} diff --git a/libs/miniupnpc/src/minissdpc.h b/libs/miniupnpc/src/minissdpc.h new file mode 100644 index 0000000000..04cdbf82c7 --- /dev/null +++ b/libs/miniupnpc/src/minissdpc.h @@ -0,0 +1,58 @@ +/* $Id: minissdpc.h,v 1.8 2019/02/10 12:29:23 nanard Exp $ */ +/* Project: miniupnp + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * Author: Thomas Bernard + * Copyright (c) 2005-2015 Thomas Bernard + * This software is subjects to the conditions detailed + * in the LICENCE file provided within this distribution */ +#ifndef MINISSDPC_H_INCLUDED +#define MINISSDPC_H_INCLUDED + +#include "miniupnpc_declspec.h" +#include "upnpdev.h" + +/* error codes : */ +#define MINISSDPC_SUCCESS (0) +#define MINISSDPC_UNKNOWN_ERROR (-1) +#define MINISSDPC_SOCKET_ERROR (-101) +#define MINISSDPC_MEMORY_ERROR (-102) +#define MINISSDPC_INVALID_INPUT (-103) +#define MINISSDPC_INVALID_SERVER_REPLY (-104) + +#ifdef __cplusplus +extern "C" { +#endif + +#if !(defined(_WIN32) || defined(__amigaos__) || defined(__amigaos4__)) + +MINIUPNP_LIBSPEC struct UPNPDev * +getDevicesFromMiniSSDPD(const char * devtype, const char * socketpath, int * error); + +MINIUPNP_LIBSPEC int +connectToMiniSSDPD(const char * socketpath); + +MINIUPNP_LIBSPEC int +disconnectFromMiniSSDPD(int s); + +MINIUPNP_LIBSPEC int +requestDevicesFromMiniSSDPD(int s, const char * devtype); + +MINIUPNP_LIBSPEC struct UPNPDev * +receiveDevicesFromMiniSSDPD(int s, int * error); + +#endif /* !(defined(_WIN32) || defined(__amigaos__) || defined(__amigaos4__)) */ + +MINIUPNP_LIBSPEC struct UPNPDev * +ssdpDiscoverDevices(const char * const deviceTypes[], + int delay, const char * multicastif, + int localport, + int ipv6, unsigned char ttl, + int * error, + int searchalltypes); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/libs/miniupnpc/src/miniupnpc.c b/libs/miniupnpc/src/miniupnpc.c new file mode 100644 index 0000000000..696af93237 --- /dev/null +++ b/libs/miniupnpc/src/miniupnpc.c @@ -0,0 +1,698 @@ +/* $Id: miniupnpc.c,v 1.159 2021/03/02 23:36:32 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * Project : miniupnp + * Web : http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ + * Author : Thomas BERNARD + * copyright (c) 2005-2021 Thomas Bernard + * This software is subjet to the conditions detailed in the + * provided LICENSE file. */ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#ifdef _WIN32 +/* Win32 Specific includes and defines */ +#include <winsock2.h> +#include <ws2tcpip.h> +#include <io.h> +#include <iphlpapi.h> +#include "win32_snprintf.h" +#define strdup _strdup +#ifndef strncasecmp +#if defined(_MSC_VER) && (_MSC_VER >= 1400) +#define strncasecmp _memicmp +#else /* defined(_MSC_VER) && (_MSC_VER >= 1400) */ +#define strncasecmp memicmp +#endif /* defined(_MSC_VER) && (_MSC_VER >= 1400) */ +#endif /* #ifndef strncasecmp */ +#define MAXHOSTNAMELEN 64 +#else /* #ifdef _WIN32 */ +/* Standard POSIX includes */ +#include <unistd.h> +#if defined(__amigaos__) && !defined(__amigaos4__) +/* Amiga OS 3 specific stuff */ +#define socklen_t int +#else +#include <sys/select.h> +#endif +#include <sys/socket.h> +#include <sys/types.h> +#include <sys/param.h> +#include <netinet/in.h> +#include <arpa/inet.h> +#include <netdb.h> +#include <net/if.h> +#if !defined(__amigaos__) && !defined(__amigaos4__) +#include <poll.h> +#endif +#include <strings.h> +#include <errno.h> +#define closesocket close +#endif /* #else _WIN32 */ +#ifdef __GNU__ +#define MAXHOSTNAMELEN 64 +#endif + + +#include "miniupnpc.h" +#include "minissdpc.h" +#include "miniwget.h" +#include "miniwget_private.h" +#include "minisoap.h" +#include "minixml.h" +#include "upnpcommands.h" +#include "connecthostport.h" +#include "addr_is_reserved.h" + +/* compare the beginning of a string with a constant string */ +#define COMPARE(str, cstr) (0==strncmp(str, cstr, sizeof(cstr) - 1)) + +#ifndef MAXHOSTNAMELEN +#define MAXHOSTNAMELEN 64 +#endif + +#define SOAPPREFIX "s" +#define SERVICEPREFIX "u" +#define SERVICEPREFIX2 'u' + +/* root description parsing */ +MINIUPNP_LIBSPEC void parserootdesc(const char * buffer, int bufsize, struct IGDdatas * data) +{ + struct xmlparser parser; + /* xmlparser object */ + parser.xmlstart = buffer; + parser.xmlsize = bufsize; + parser.data = data; + parser.starteltfunc = IGDstartelt; + parser.endeltfunc = IGDendelt; + parser.datafunc = IGDdata; + parser.attfunc = 0; + parsexml(&parser); +#ifdef DEBUG + printIGD(data); +#endif +} + +/* simpleUPnPcommand2 : + * not so simple ! + * return values : + * pointer - OK + * NULL - error */ +static char * +simpleUPnPcommand2(SOCKET s, const char * url, const char * service, + const char * action, struct UPNParg * args, + int * bufsize, const char * httpversion) +{ + char hostname[MAXHOSTNAMELEN+1]; + unsigned short port = 0; + char * path; + char soapact[128]; + char soapbody[2048]; + int soapbodylen; + char * buf; + int n; + int status_code; + + *bufsize = 0; + snprintf(soapact, sizeof(soapact), "%s#%s", service, action); + if(args==NULL) + { + soapbodylen = snprintf(soapbody, sizeof(soapbody), + "<?xml version=\"1.0\"?>\r\n" + "<" SOAPPREFIX ":Envelope " + "xmlns:" SOAPPREFIX "=\"http://schemas.xmlsoap.org/soap/envelope/\" " + SOAPPREFIX ":encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" + "<" SOAPPREFIX ":Body>" + "<" SERVICEPREFIX ":%s xmlns:" SERVICEPREFIX "=\"%s\">" + "</" SERVICEPREFIX ":%s>" + "</" SOAPPREFIX ":Body></" SOAPPREFIX ":Envelope>" + "\r\n", action, service, action); + if ((unsigned int)soapbodylen >= sizeof(soapbody)) + return NULL; + } + else + { + char * p; + const char * pe, * pv; + const char * const pend = soapbody + sizeof(soapbody); + soapbodylen = snprintf(soapbody, sizeof(soapbody), + "<?xml version=\"1.0\"?>\r\n" + "<" SOAPPREFIX ":Envelope " + "xmlns:" SOAPPREFIX "=\"http://schemas.xmlsoap.org/soap/envelope/\" " + SOAPPREFIX ":encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" + "<" SOAPPREFIX ":Body>" + "<" SERVICEPREFIX ":%s xmlns:" SERVICEPREFIX "=\"%s\">", + action, service); + if ((unsigned int)soapbodylen >= sizeof(soapbody)) + return NULL; + p = soapbody + soapbodylen; + while(args->elt) + { + if(p >= pend) /* check for space to write next byte */ + return NULL; + *(p++) = '<'; + + pe = args->elt; + while(p < pend && *pe) + *(p++) = *(pe++); + + if(p >= pend) /* check for space to write next byte */ + return NULL; + *(p++) = '>'; + + if((pv = args->val)) + { + while(p < pend && *pv) + *(p++) = *(pv++); + } + + if((p+2) > pend) /* check for space to write next 2 bytes */ + return NULL; + *(p++) = '<'; + *(p++) = '/'; + + pe = args->elt; + while(p < pend && *pe) + *(p++) = *(pe++); + + if(p >= pend) /* check for space to write next byte */ + return NULL; + *(p++) = '>'; + + args++; + } + if((p+4) > pend) /* check for space to write next 4 bytes */ + return NULL; + *(p++) = '<'; + *(p++) = '/'; + *(p++) = SERVICEPREFIX2; + *(p++) = ':'; + + pe = action; + while(p < pend && *pe) + *(p++) = *(pe++); + + strncpy(p, "></" SOAPPREFIX ":Body></" SOAPPREFIX ":Envelope>\r\n", + pend - p); + if(soapbody[sizeof(soapbody)-1]) /* strncpy pads buffer with 0s, so if it doesn't end in 0, could not fit full string */ + return NULL; + } + if(!parseURL(url, hostname, &port, &path, NULL)) return NULL; + if(ISINVALID(s)) { + s = connecthostport(hostname, port, 0); + if(ISINVALID(s)) { + /* failed to connect */ + return NULL; + } + } + + n = soapPostSubmit(s, path, hostname, port, soapact, soapbody, httpversion); + if(n<=0) { +#ifdef DEBUG + printf("Error sending SOAP request\n"); +#endif + closesocket(s); + return NULL; + } + + buf = getHTTPResponse(s, bufsize, &status_code); +#ifdef DEBUG + if(*bufsize > 0 && buf) + { + printf("HTTP %d SOAP Response :\n%.*s\n", status_code, *bufsize, buf); + } + else + { + printf("HTTP %d, empty SOAP response. size=%d\n", status_code, *bufsize); + } +#endif + closesocket(s); + return buf; +} + +/* simpleUPnPcommand : + * not so simple ! + * return values : + * pointer - OK + * NULL - error */ +char * +simpleUPnPcommand(int s, const char * url, const char * service, + const char * action, struct UPNParg * args, + int * bufsize) +{ + char * buf; + +#if 1 + buf = simpleUPnPcommand2((SOCKET)s, url, service, action, args, bufsize, "1.1"); +#else + buf = simpleUPnPcommand2((SOCKET)s, url, service, action, args, bufsize, "1.0"); + if (!buf || *bufsize == 0) + { +#if DEBUG + printf("Error or no result from SOAP request; retrying with HTTP/1.1\n"); +#endif + buf = simpleUPnPcommand2((SOCKET)s, url, service, action, args, bufsize, "1.1"); + } +#endif + return buf; +} + +/* upnpDiscoverDevices() : + * return a chained list of all devices found or NULL if + * no devices was found. + * It is up to the caller to free the chained list + * delay is in millisecond (poll). + * UDA v1.1 says : + * The TTL for the IP packet SHOULD default to 2 and + * SHOULD be configurable. */ +MINIUPNP_LIBSPEC struct UPNPDev * +upnpDiscoverDevices(const char * const deviceTypes[], + int delay, const char * multicastif, + const char * minissdpdsock, int localport, + int ipv6, unsigned char ttl, + int * error, + int searchalltypes) +{ + struct UPNPDev * tmp; + struct UPNPDev * devlist = 0; +#if !defined(_WIN32) && !defined(__amigaos__) && !defined(__amigaos4__) + int deviceIndex; +#endif /* !defined(_WIN32) && !defined(__amigaos__) && !defined(__amigaos4__) */ + + if(error) + *error = UPNPDISCOVER_UNKNOWN_ERROR; +#if !defined(_WIN32) && !defined(__amigaos__) && !defined(__amigaos4__) + /* first try to get infos from minissdpd ! */ + if(!minissdpdsock) + minissdpdsock = "/var/run/minissdpd.sock"; + if(minissdpdsock[0] != '\0') { + for(deviceIndex = 0; deviceTypes[deviceIndex]; deviceIndex++) { + struct UPNPDev * minissdpd_devlist; + int only_rootdevice = 1; + minissdpd_devlist = getDevicesFromMiniSSDPD(deviceTypes[deviceIndex], + minissdpdsock, 0); + if(minissdpd_devlist) { +#ifdef DEBUG + printf("returned by MiniSSDPD: %s\t%s\n", + minissdpd_devlist->st, minissdpd_devlist->descURL); +#endif /* DEBUG */ + if(!strstr(minissdpd_devlist->st, "rootdevice")) + only_rootdevice = 0; + for(tmp = minissdpd_devlist; tmp->pNext != NULL; tmp = tmp->pNext) { +#ifdef DEBUG + printf("returned by MiniSSDPD: %s\t%s\n", + tmp->pNext->st, tmp->pNext->descURL); +#endif /* DEBUG */ + if(!strstr(tmp->st, "rootdevice")) + only_rootdevice = 0; + } + tmp->pNext = devlist; + devlist = minissdpd_devlist; + if(!searchalltypes && !only_rootdevice) + break; + } + } + } + for(tmp = devlist; tmp != NULL; tmp = tmp->pNext) { + /* We return what we have found if it was not only a rootdevice */ + if(!strstr(tmp->st, "rootdevice")) { + if(error) + *error = UPNPDISCOVER_SUCCESS; + return devlist; + } + } +#else /* !defined(_WIN32) && !defined(__amigaos__) && !defined(__amigaos4__) */ + (void)minissdpdsock; /* unused */ +#endif /* !defined(_WIN32) && !defined(__amigaos__) && !defined(__amigaos4__) */ + + /* direct discovery if minissdpd responses are not sufficient */ + { + struct UPNPDev * discovered_devlist; + discovered_devlist = ssdpDiscoverDevices(deviceTypes, delay, multicastif, localport, + ipv6, ttl, error, searchalltypes); + if(devlist == NULL) + devlist = discovered_devlist; + else { + for(tmp = devlist; tmp->pNext != NULL; tmp = tmp->pNext); + tmp->pNext = discovered_devlist; + } + } + return devlist; +} + +/* upnpDiscover() Discover IGD device */ +MINIUPNP_LIBSPEC struct UPNPDev * +upnpDiscover(int delay, const char * multicastif, + const char * minissdpdsock, int localport, + int ipv6, unsigned char ttl, + int * error) +{ + static const char * const deviceList[] = { +#if 0 + "urn:schemas-upnp-org:device:InternetGatewayDevice:2", + "urn:schemas-upnp-org:service:WANIPConnection:2", +#endif + "urn:schemas-upnp-org:device:InternetGatewayDevice:1", + "urn:schemas-upnp-org:service:WANIPConnection:1", + "urn:schemas-upnp-org:service:WANPPPConnection:1", + "upnp:rootdevice", + /*"ssdp:all",*/ + 0 + }; + return upnpDiscoverDevices(deviceList, + delay, multicastif, minissdpdsock, localport, + ipv6, ttl, error, 0); +} + +/* upnpDiscoverAll() Discover all UPnP devices */ +MINIUPNP_LIBSPEC struct UPNPDev * +upnpDiscoverAll(int delay, const char * multicastif, + const char * minissdpdsock, int localport, + int ipv6, unsigned char ttl, + int * error) +{ + static const char * const deviceList[] = { + /*"upnp:rootdevice",*/ + "ssdp:all", + 0 + }; + return upnpDiscoverDevices(deviceList, + delay, multicastif, minissdpdsock, localport, + ipv6, ttl, error, 0); +} + +/* upnpDiscoverDevice() Discover a specific device */ +MINIUPNP_LIBSPEC struct UPNPDev * +upnpDiscoverDevice(const char * device, int delay, const char * multicastif, + const char * minissdpdsock, int localport, + int ipv6, unsigned char ttl, + int * error) +{ + const char * const deviceList[] = { + device, + 0 + }; + return upnpDiscoverDevices(deviceList, + delay, multicastif, minissdpdsock, localport, + ipv6, ttl, error, 0); +} + +static char * +build_absolute_url(const char * baseurl, const char * descURL, + const char * url, unsigned int scope_id) +{ + size_t l, n; + char * s; + const char * base; + char * p; +#if defined(IF_NAMESIZE) && !defined(_WIN32) + char ifname[IF_NAMESIZE]; +#else /* defined(IF_NAMESIZE) && !defined(_WIN32) */ + char scope_str[8]; +#endif /* defined(IF_NAMESIZE) && !defined(_WIN32) */ + + if( (url[0] == 'h') + &&(url[1] == 't') + &&(url[2] == 't') + &&(url[3] == 'p') + &&(url[4] == ':') + &&(url[5] == '/') + &&(url[6] == '/')) + return strdup(url); + base = (baseurl[0] == '\0') ? descURL : baseurl; + n = strlen(base); + if(n > 7) { + p = strchr(base + 7, '/'); + if(p) + n = p - base; + } + l = n + strlen(url) + 1; + if(url[0] != '/') + l++; + if(scope_id != 0) { +#if defined(IF_NAMESIZE) && !defined(_WIN32) + if(if_indextoname(scope_id, ifname)) { + l += 3 + strlen(ifname); /* 3 == strlen(%25) */ + } +#else /* defined(IF_NAMESIZE) && !defined(_WIN32) */ + /* under windows, scope is numerical */ + l += 3 + snprintf(scope_str, sizeof(scope_str), "%u", scope_id); +#endif /* defined(IF_NAMESIZE) && !defined(_WIN32) */ + } + s = malloc(l); + if(s == NULL) return NULL; + memcpy(s, base, n); + if(scope_id != 0) { + s[n] = '\0'; + if(n > 13 && 0 == memcmp(s, "http://[fe80:", 13)) { + /* this is a linklocal IPv6 address */ + p = strchr(s, ']'); + if(p) { + /* insert %25<scope> into URL */ +#if defined(IF_NAMESIZE) && !defined(_WIN32) + memmove(p + 3 + strlen(ifname), p, strlen(p) + 1); + memcpy(p, "%25", 3); + memcpy(p + 3, ifname, strlen(ifname)); + n += 3 + strlen(ifname); +#else /* defined(IF_NAMESIZE) && !defined(_WIN32) */ + memmove(p + 3 + strlen(scope_str), p, strlen(p) + 1); + memcpy(p, "%25", 3); + memcpy(p + 3, scope_str, strlen(scope_str)); + n += 3 + strlen(scope_str); +#endif /* defined(IF_NAMESIZE) && !defined(_WIN32) */ + } + } + } + if(url[0] != '/') + s[n++] = '/'; + memcpy(s + n, url, l - n); + return s; +} + +/* Prepare the Urls for usage... + */ +MINIUPNP_LIBSPEC void +GetUPNPUrls(struct UPNPUrls * urls, struct IGDdatas * data, + const char * descURL, unsigned int scope_id) +{ + /* strdup descURL */ + urls->rootdescURL = strdup(descURL); + + /* get description of WANIPConnection */ + urls->ipcondescURL = build_absolute_url(data->urlbase, descURL, + data->first.scpdurl, scope_id); + urls->controlURL = build_absolute_url(data->urlbase, descURL, + data->first.controlurl, scope_id); + urls->controlURL_CIF = build_absolute_url(data->urlbase, descURL, + data->CIF.controlurl, scope_id); + urls->controlURL_6FC = build_absolute_url(data->urlbase, descURL, + data->IPv6FC.controlurl, scope_id); + +#ifdef DEBUG + printf("urls->ipcondescURL='%s'\n", urls->ipcondescURL); + printf("urls->controlURL='%s'\n", urls->controlURL); + printf("urls->controlURL_CIF='%s'\n", urls->controlURL_CIF); + printf("urls->controlURL_6FC='%s'\n", urls->controlURL_6FC); +#endif +} + +MINIUPNP_LIBSPEC void +FreeUPNPUrls(struct UPNPUrls * urls) +{ + if(!urls) + return; + free(urls->controlURL); + urls->controlURL = 0; + free(urls->ipcondescURL); + urls->ipcondescURL = 0; + free(urls->controlURL_CIF); + urls->controlURL_CIF = 0; + free(urls->controlURL_6FC); + urls->controlURL_6FC = 0; + free(urls->rootdescURL); + urls->rootdescURL = 0; +} + +int +UPNPIGD_IsConnected(struct UPNPUrls * urls, struct IGDdatas * data) +{ + char status[64]; + unsigned int uptime; + status[0] = '\0'; + UPNP_GetStatusInfo(urls->controlURL, data->first.servicetype, + status, &uptime, NULL); + if(0 == strcmp("Connected", status)) + return 1; + else if(0 == strcmp("Up", status)) /* Also accept "Up" */ + return 1; + else + return 0; +} + + +/* UPNP_GetValidIGD() : + * return values : + * -1 = Internal error + * 0 = NO IGD found + * 1 = A valid connected IGD has been found + * 2 = A valid IGD has been found but it reported as + * not connected + * 3 = an UPnP device has been found but was not recognized as an IGD + * + * In any positive non zero return case, the urls and data structures + * passed as parameters are set. Don't forget to call FreeUPNPUrls(urls) to + * free allocated memory. + */ +MINIUPNP_LIBSPEC int +UPNP_GetValidIGD(struct UPNPDev * devlist, + struct UPNPUrls * urls, + struct IGDdatas * data, + char * lanaddr, int lanaddrlen) +{ + struct xml_desc { + char lanaddr[40]; + char * xml; + int size; + int is_igd; + } * desc = NULL; + struct UPNPDev * dev; + int ndev = 0; + int i; + int state = -1; /* state 1 : IGD connected. State 2 : IGD. State 3 : anything */ + char extIpAddr[16]; + int status_code = -1; + + if(!devlist) + { +#ifdef DEBUG + printf("Empty devlist\n"); +#endif + return 0; + } + /* counting total number of devices in the list */ + for(dev = devlist; dev; dev = dev->pNext) + ndev++; + /* ndev is always > 0 */ + desc = calloc(ndev, sizeof(struct xml_desc)); + if(!desc) + return -1; /* memory allocation error */ + /* Step 1 : downloading descriptions and testing type */ + for(dev = devlist, i = 0; dev; dev = dev->pNext, i++) + { + /* we should choose an internet gateway device. + * with st == urn:schemas-upnp-org:device:InternetGatewayDevice:1 */ + desc[i].xml = miniwget_getaddr(dev->descURL, &(desc[i].size), + desc[i].lanaddr, sizeof(desc[i].lanaddr), + dev->scope_id, &status_code); +#ifdef DEBUG + if(!desc[i].xml) + { + printf("error getting XML description %s\n", dev->descURL); + } +#endif + if(desc[i].xml) + { + memset(data, 0, sizeof(struct IGDdatas)); + memset(urls, 0, sizeof(struct UPNPUrls)); + parserootdesc(desc[i].xml, desc[i].size, data); + if(COMPARE(data->CIF.servicetype, + "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:")) + { + desc[i].is_igd = 1; + } + } + } + /* iterate the list to find a device depending on state */ + for(state = 1; state <= 3; state++) + { + for(dev = devlist, i = 0; dev; dev = dev->pNext, i++) + { + if(desc[i].xml) + { + memset(data, 0, sizeof(struct IGDdatas)); + memset(urls, 0, sizeof(struct UPNPUrls)); + parserootdesc(desc[i].xml, desc[i].size, data); + if(desc[i].is_igd || state >= 3 ) + { + int is_connected; + + GetUPNPUrls(urls, data, dev->descURL, dev->scope_id); + + /* in state 2 and 3 we don't test if device is connected ! */ + if(state >= 2) + goto free_and_return; + is_connected = UPNPIGD_IsConnected(urls, data); +#ifdef DEBUG + printf("UPNPIGD_IsConnected(%s) = %d\n", + urls->controlURL, is_connected); +#endif + /* checks that status is connected AND there is a external IP address assigned */ + if(is_connected && + (UPNP_GetExternalIPAddress(urls->controlURL, data->first.servicetype, extIpAddr) == 0)) { + if(!addr_is_reserved(extIpAddr)) + goto free_and_return; + } + FreeUPNPUrls(urls); + if(data->second.servicetype[0] != '\0') { +#ifdef DEBUG + printf("We tried %s, now we try %s !\n", + data->first.servicetype, data->second.servicetype); +#endif + /* swaping WANPPPConnection and WANIPConnection ! */ + memcpy(&data->tmp, &data->first, sizeof(struct IGDdatas_service)); + memcpy(&data->first, &data->second, sizeof(struct IGDdatas_service)); + memcpy(&data->second, &data->tmp, sizeof(struct IGDdatas_service)); + GetUPNPUrls(urls, data, dev->descURL, dev->scope_id); + is_connected = UPNPIGD_IsConnected(urls, data); +#ifdef DEBUG + printf("UPNPIGD_IsConnected(%s) = %d\n", + urls->controlURL, is_connected); +#endif + if(is_connected && + (UPNP_GetExternalIPAddress(urls->controlURL, data->first.servicetype, extIpAddr) == 0)) { + if(!addr_is_reserved(extIpAddr)) + goto free_and_return; + } + FreeUPNPUrls(urls); + } + } + memset(data, 0, sizeof(struct IGDdatas)); + } + } + } + state = 0; +free_and_return: + if (lanaddr != NULL && state >= 1 && state <= 3 && i < ndev) + strncpy(lanaddr, desc[i].lanaddr, lanaddrlen); + for(i = 0; i < ndev; i++) + free(desc[i].xml); + free(desc); + return state; +} + +/* UPNP_GetIGDFromUrl() + * Used when skipping the discovery process. + * return value : + * 0 - Not ok + * 1 - OK */ +int +UPNP_GetIGDFromUrl(const char * rootdescurl, + struct UPNPUrls * urls, + struct IGDdatas * data, + char * lanaddr, int lanaddrlen) +{ + char * descXML; + int descXMLsize = 0; + + descXML = miniwget_getaddr(rootdescurl, &descXMLsize, + lanaddr, lanaddrlen, 0, NULL); + if(descXML) { + memset(data, 0, sizeof(struct IGDdatas)); + memset(urls, 0, sizeof(struct UPNPUrls)); + parserootdesc(descXML, descXMLsize, data); + free(descXML); + GetUPNPUrls(urls, data, rootdescurl, 0); + return 1; + } else { + return 0; + } +} diff --git a/libs/miniupnpc/src/miniupnpc_socketdef.h b/libs/miniupnpc/src/miniupnpc_socketdef.h new file mode 100644 index 0000000000..2d5cac5c22 --- /dev/null +++ b/libs/miniupnpc/src/miniupnpc_socketdef.h @@ -0,0 +1,44 @@ +/* $Id: miniupnpc_socketdef.h,v 1.4 2021/03/02 23:35:29 nanard Exp $ */ +/* Miniupnp project : http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ + * Author : Thomas Bernard + * Copyright (c) 2018 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided within this distribution */ +#ifndef MINIUPNPC_SOCKETDEF_H_INCLUDED +#define MINIUPNPC_SOCKETDEF_H_INCLUDED + +#ifdef _WIN32 + +#define ISINVALID(s) (INVALID_SOCKET==(s)) + +#else + +#ifndef SOCKET +#define SOCKET int +#endif +#ifndef SSIZE_T +#define SSIZE_T ssize_t +#endif +#ifndef INVALID_SOCKET +#define INVALID_SOCKET (-1) +#endif +#ifndef ISINVALID +#define ISINVALID(s) ((s)<0) +#endif + +#endif + +#ifdef _MSC_VER +#define MSC_CAST_INT (int) +#else +#define MSC_CAST_INT +#endif + +/* definition of PRINT_SOCKET_ERROR */ +#ifdef _WIN32 +#define PRINT_SOCKET_ERROR(x) fprintf(stderr, "Socket error: %s, %d\n", x, WSAGetLastError()); +#else +#define PRINT_SOCKET_ERROR(x) perror(x) +#endif + +#endif /* MINIUPNPC_SOCKETDEF_H_INCLUDED */ diff --git a/libs/miniupnpc/miniupnpcmodule.c b/libs/miniupnpc/src/miniupnpcmodule.c similarity index 61% rename from libs/miniupnpc/miniupnpcmodule.c rename to libs/miniupnpc/src/miniupnpcmodule.c index 08a61d22f5..66a267073c 100644 --- a/libs/miniupnpc/miniupnpcmodule.c +++ b/libs/miniupnpc/src/miniupnpcmodule.c @@ -1,17 +1,22 @@ -/* $Id: miniupnpcmodule.c,v 1.18 2011/04/10 11:21:23 nanard Exp $*/ -/* Project : miniupnp +/* $Id: miniupnpcmodule.c,v 1.38 2021/11/09 18:46:49 nanard Exp $*/ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * Project : miniupnp * Author : Thomas BERNARD - * website : http://miniupnp.tuxfamily.org/ - * copyright (c) 2007-2009 Thomas Bernard + * website : https://miniupnp.tuxfamily.org/ + * copyright (c) 2007-2021 Thomas Bernard * This software is subjet to the conditions detailed in the * provided LICENCE file. */ #include <Python.h> -#define STATICLIB -#include "structmember.h" +#define MINIUPNP_STATICLIB +#include <structmember.h> #include "miniupnpc.h" #include "upnpcommands.h" #include "upnperrors.h" +#ifdef _WIN32 +#include <winsock2.h> +#endif + /* for compatibility with Python < 2.4 */ #ifndef Py_RETURN_NONE #define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None @@ -25,6 +30,16 @@ #define Py_RETURN_FALSE return Py_INCREF(Py_False), Py_False #endif +/* for compatibility with Python < 3.0 */ +#ifndef PyVarObject_HEAD_INIT +#define PyVarObject_HEAD_INIT(type, size) \ + PyObject_HEAD_INIT(type) size, +#endif + +#ifndef Py_TYPE +#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) +#endif + typedef struct { PyObject_HEAD /* Type-specific fields go here. */ @@ -32,6 +47,7 @@ typedef struct { struct UPNPUrls urls; struct IGDdatas data; unsigned int discoverdelay; /* value passed to upnpDiscover() */ + unsigned int localport; /* value passed to upnpDiscover() */ char lanaddr[40]; /* our ip address on the LAN */ char * multicastif; char * minissdpdsocket; @@ -44,57 +60,115 @@ static PyMemberDef UPnP_members[] = { {"discoverdelay", T_UINT, offsetof(UPnPObject, discoverdelay), 0/*READWRITE*/, "value in ms used to wait for SSDP responses" }, - /* T_STRING is allways readonly :( */ + {"localport", T_UINT, offsetof(UPnPObject, localport), + 0/*READWRITE*/, + "If localport is set to UPNP_LOCAL_PORT_SAME(1) " + "SSDP packets will be sent from the source port " + "1900 (same as destination port), if set to " + "UPNP_LOCAL_PORT_ANY(0) system assign a source " + "port, any other value will be attempted as the " + "source port" + }, + /* T_STRING is always readonly :( */ {"multicastif", T_STRING, offsetof(UPnPObject, multicastif), 0, "IP of the network interface to be used for multicast operations" }, - {"minissdpdsocket", T_STRING, offsetof(UPnPObject, multicastif), + {"minissdpdsocket", T_STRING, offsetof(UPnPObject, minissdpdsocket), 0, "path of the MiniSSDPd unix socket" }, {NULL} }; + +static int UPnP_init(UPnPObject *self, PyObject *args, PyObject *kwds) +{ + char* multicastif = NULL; + char* minissdpdsocket = NULL; + static char *kwlist[] = { + "multicastif", "minissdpdsocket", "discoverdelay", + "localport", NULL + }; + + if(!PyArg_ParseTupleAndKeywords(args, kwds, "|zzII", kwlist, + &multicastif, + &minissdpdsocket, + &self->discoverdelay, + &self->localport)) + return -1; + + if(self->localport>1 && + (self->localport>65534||self->localport<1024)) { + PyErr_SetString(PyExc_Exception, "Invalid localport value"); + return -1; + } + if(multicastif) + self->multicastif = strdup(multicastif); + if(minissdpdsocket) + self->minissdpdsocket = strdup(minissdpdsocket); + + return 0; +} + static void UPnPObject_dealloc(UPnPObject *self) { freeUPNPDevlist(self->devlist); FreeUPNPUrls(&self->urls); - self->ob_type->tp_free((PyObject*)self); + free(self->multicastif); + free(self->minissdpdsocket); + Py_TYPE(self)->tp_free((PyObject*)self); } static PyObject * UPnP_discover(UPnPObject *self) { - struct UPNPDev * dev; - int i; + int error = 0; PyObject *res = NULL; + if(self->devlist) { freeUPNPDevlist(self->devlist); self->devlist = 0; - } + } Py_BEGIN_ALLOW_THREADS self->devlist = upnpDiscover((int)self->discoverdelay/*timeout in ms*/, - 0/* multicast if*/, - 0/*minissdpd socket*/, - 0/*sameport flag*/, + self->multicastif, + self->minissdpdsocket, + (int)self->localport, 0/*ip v6*/, - 0/*error */); + 2/* TTL */, + &error); Py_END_ALLOW_THREADS /* Py_RETURN_NONE ??? */ - for(dev = self->devlist, i = 0; dev; dev = dev->pNext) - i++; - res = Py_BuildValue("i", i); - return res; + if (self->devlist != NULL) { + struct UPNPDev * dev; + int i = 0; + + for(dev = self->devlist; dev; dev = dev->pNext) + i++; + res = Py_BuildValue("i", i); + return res; + } else { + PyErr_SetString(PyExc_Exception, strupnperror(error)); + return NULL; + } } static PyObject * -UPnP_selectigd(UPnPObject *self) +UPnP_selectigd(UPnPObject *self, PyObject *args) { + const char * rootDescUrl = NULL; int r; + if(!PyArg_ParseTuple(args, "|z", &rootDescUrl)) + return NULL; Py_BEGIN_ALLOW_THREADS - r = UPNP_GetValidIGD(self->devlist, &self->urls, &self->data, - self->lanaddr, sizeof(self->lanaddr)); + if (rootDescUrl == NULL) { + r = UPNP_GetValidIGD(self->devlist, &self->urls, &self->data, + self->lanaddr, sizeof(self->lanaddr)); + } else { + r = UPNP_GetIGDFromUrl(rootDescUrl, &self->urls, &self->data, + self->lanaddr, sizeof(self->lanaddr)); + } Py_END_ALLOW_THREADS if(r) { @@ -116,7 +190,11 @@ Py_BEGIN_ALLOW_THREADS i = UPNP_GetTotalBytesSent(self->urls.controlURL_CIF, self->data.CIF.servicetype); Py_END_ALLOW_THREADS +#if (PY_MAJOR_VERSION >= 3) || (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 3) return Py_BuildValue("I", i); +#else + return Py_BuildValue("i", (int)i); +#endif } static PyObject * @@ -127,7 +205,11 @@ Py_BEGIN_ALLOW_THREADS i = UPNP_GetTotalBytesReceived(self->urls.controlURL_CIF, self->data.CIF.servicetype); Py_END_ALLOW_THREADS +#if (PY_MAJOR_VERSION >= 3) || (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 3) return Py_BuildValue("I", i); +#else + return Py_BuildValue("i", (int)i); +#endif } static PyObject * @@ -138,7 +220,11 @@ Py_BEGIN_ALLOW_THREADS i = UPNP_GetTotalPacketsSent(self->urls.controlURL_CIF, self->data.CIF.servicetype); Py_END_ALLOW_THREADS +#if (PY_MAJOR_VERSION >= 3) || (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 3) return Py_BuildValue("I", i); +#else + return Py_BuildValue("i", (int)i); +#endif } static PyObject * @@ -149,7 +235,11 @@ Py_BEGIN_ALLOW_THREADS i = UPNP_GetTotalPacketsReceived(self->urls.controlURL_CIF, self->data.CIF.servicetype); Py_END_ALLOW_THREADS +#if (PY_MAJOR_VERSION >= 3) || (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 3) return Py_BuildValue("I", i); +#else + return Py_BuildValue("i", (int)i); +#endif } static PyObject * @@ -166,7 +256,11 @@ Py_BEGIN_ALLOW_THREADS status, &uptime, lastconnerror); Py_END_ALLOW_THREADS if(r==UPNPCOMMAND_SUCCESS) { +#if (PY_MAJOR_VERSION >= 3) || (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 3) return Py_BuildValue("(s,I,s)", status, uptime, lastconnerror); +#else + return Py_BuildValue("(s,i,s)", status, (int)uptime, lastconnerror); +#endif } else { /* TODO: have our own exception type ! */ PyErr_SetString(PyExc_Exception, strupnperror(r)); @@ -215,7 +309,7 @@ Py_END_ALLOW_THREADS } /* AddPortMapping(externalPort, protocol, internalHost, internalPort, desc, - * remoteHost) + * remoteHost, leaseDuration) * protocol is 'UDP' or 'TCP' */ static PyObject * UPnP_addportmapping(UPnPObject *self, PyObject *args) @@ -228,17 +322,24 @@ UPnP_addportmapping(UPnPObject *self, PyObject *args) const char * host; const char * desc; const char * remoteHost; - const char * leaseDuration = "0"; + unsigned int intLeaseDuration = 0; + char strLeaseDuration[12]; int r; - if (!PyArg_ParseTuple(args, "HssHss", &ePort, &proto, - &host, &iPort, &desc, &remoteHost)) +#if (PY_MAJOR_VERSION >= 3) || (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 3) + if (!PyArg_ParseTuple(args, "HssHzz|I", &ePort, &proto, + &host, &iPort, &desc, &remoteHost, &intLeaseDuration)) +#else + if (!PyArg_ParseTuple(args, "HssHzz|i", &ePort, &proto, + &host, &iPort, &desc, &remoteHost, (int *)&intLeaseDuration)) +#endif return NULL; Py_BEGIN_ALLOW_THREADS sprintf(extPort, "%hu", ePort); sprintf(inPort, "%hu", iPort); + sprintf(strLeaseDuration, "%u", intLeaseDuration); r = UPNP_AddPortMapping(self->urls.controlURL, self->data.first.servicetype, extPort, inPort, host, desc, proto, - remoteHost, leaseDuration); + remoteHost, strLeaseDuration); Py_END_ALLOW_THREADS if(r==UPNPCOMMAND_SUCCESS) { @@ -255,6 +356,42 @@ Py_END_ALLOW_THREADS } } +/* AddAnyPortMapping(externalPort, protocol, internalHost, internalPort, desc, + * remoteHost) + * protocol is 'UDP' or 'TCP' */ +static PyObject * +UPnP_addanyportmapping(UPnPObject *self, PyObject *args) +{ + char extPort[6]; + unsigned short ePort; + char inPort[6]; + unsigned short iPort; + char reservedPort[6]; + const char * proto; + const char * host; + const char * desc; + const char * remoteHost; + const char * leaseDuration = "0"; + int r; + if (!PyArg_ParseTuple(args, "HssHzz", &ePort, &proto, &host, &iPort, &desc, &remoteHost)) + return NULL; +Py_BEGIN_ALLOW_THREADS + sprintf(extPort, "%hu", ePort); + sprintf(inPort, "%hu", iPort); + r = UPNP_AddAnyPortMapping(self->urls.controlURL, self->data.first.servicetype, + extPort, inPort, host, desc, proto, + remoteHost, leaseDuration, reservedPort); +Py_END_ALLOW_THREADS + if(r==UPNPCOMMAND_SUCCESS) { + return Py_BuildValue("i", atoi(reservedPort)); + } else { + /* TODO: have our own exception type ! */ + PyErr_SetString(PyExc_Exception, strupnperror(r)); + return NULL; + } +} + + /* DeletePortMapping(extPort, proto, removeHost='') * proto = 'UDP', 'TCP' */ static PyObject * @@ -281,6 +418,37 @@ Py_END_ALLOW_THREADS } } +/* DeletePortMappingRange(extPort, proto, removeHost='') + * proto = 'UDP', 'TCP' */ +static PyObject * +UPnP_deleteportmappingrange(UPnPObject *self, PyObject *args) +{ + char extPortStart[6]; + unsigned short ePortStart; + char extPortEnd[6]; + unsigned short ePortEnd; + const char * proto; + unsigned char manage; + char manageStr[6]; + int r; + if(!PyArg_ParseTuple(args, "HHsb", &ePortStart, &ePortEnd, &proto, &manage)) + return NULL; +Py_BEGIN_ALLOW_THREADS + sprintf(extPortStart, "%hu", ePortStart); + sprintf(extPortEnd, "%hu", ePortEnd); + sprintf(manageStr, "%hu", (unsigned short)manage); + r = UPNP_DeletePortMappingRange(self->urls.controlURL, self->data.first.servicetype, + extPortStart, extPortEnd, proto, manageStr); +Py_END_ALLOW_THREADS + if(r==UPNPCOMMAND_SUCCESS) { + Py_RETURN_TRUE; + } else { + /* TODO: have our own exception type ! */ + PyErr_SetString(PyExc_Exception, strupnperror(r)); + return NULL; + } +} + static PyObject * UPnP_getportmappingnumberofentries(UPnPObject *self) { @@ -292,7 +460,11 @@ Py_BEGIN_ALLOW_THREADS &n); Py_END_ALLOW_THREADS if(r==UPNPCOMMAND_SUCCESS) { +#if (PY_MAJOR_VERSION >= 3) || (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 3) return Py_BuildValue("I", n); +#else + return Py_BuildValue("i", (int)n); +#endif } else { /* TODO: have our own exception type ! */ PyErr_SetString(PyExc_Exception, strupnperror(r)); @@ -300,7 +472,7 @@ Py_END_ALLOW_THREADS } } -/* GetSpecificPortMapping(ePort, proto) +/* GetSpecificPortMapping(ePort, proto, remoteHost='') * proto = 'UDP' or 'TCP' */ static PyObject * UPnP_getspecificportmapping(UPnPObject *self, PyObject *args) @@ -308,13 +480,14 @@ UPnP_getspecificportmapping(UPnPObject *self, PyObject *args) char extPort[6]; unsigned short ePort; const char * proto; + const char * remoteHost = ""; char intClient[40]; char intPort[6]; unsigned short iPort; char desc[80]; char enabled[4]; char leaseDuration[16]; - if(!PyArg_ParseTuple(args, "Hs", &ePort, &proto)) + if(!PyArg_ParseTuple(args, "Hs|z", &ePort, &proto, &remoteHost)) return NULL; extPort[0] = '\0'; intClient[0] = '\0'; intPort[0] = '\0'; desc[0] = '\0'; enabled[0] = '\0'; leaseDuration[0] = '\0'; @@ -322,7 +495,7 @@ Py_BEGIN_ALLOW_THREADS sprintf(extPort, "%hu", ePort); UPNP_GetSpecificPortMappingEntry(self->urls.controlURL, self->data.first.servicetype, - extPort, proto, + extPort, proto, remoteHost, intClient, intPort, desc, enabled, leaseDuration); Py_END_ALLOW_THREADS @@ -376,9 +549,15 @@ Py_END_ALLOW_THREADS ePort = (unsigned short)atoi(extPort); iPort = (unsigned short)atoi(intPort); dur = (unsigned int)strtoul(duration, 0, 0); +#if (PY_MAJOR_VERSION >= 3) || (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 3) return Py_BuildValue("(H,s,(s,H),s,s,s,I)", ePort, protocol, intClient, iPort, desc, enabled, rHost, dur); +#else + return Py_BuildValue("(i,s,(s,i),s,s,s,i)", + (int)ePort, protocol, intClient, (int)iPort, + desc, enabled, rHost, (int)dur); +#endif } else { @@ -391,7 +570,7 @@ static PyMethodDef UPnP_methods[] = { {"discover", (PyCFunction)UPnP_discover, METH_NOARGS, "discover UPnP IGD devices on the network" }, - {"selectigd", (PyCFunction)UPnP_selectigd, METH_NOARGS, + {"selectigd", (PyCFunction)UPnP_selectigd, METH_VARARGS, "select a valid UPnP IGD among discovered devices" }, {"totalbytesent", (PyCFunction)UPnP_totalbytesent, METH_NOARGS, @@ -418,9 +597,15 @@ static PyMethodDef UPnP_methods[] = { {"addportmapping", (PyCFunction)UPnP_addportmapping, METH_VARARGS, "add a port mapping" }, + {"addanyportmapping", (PyCFunction)UPnP_addanyportmapping, METH_VARARGS, + "add a port mapping, IGD to select alternative if necessary" + }, {"deleteportmapping", (PyCFunction)UPnP_deleteportmapping, METH_VARARGS, "delete a port mapping" }, + {"deleteportmappingrange", (PyCFunction)UPnP_deleteportmappingrange, METH_VARARGS, + "delete a range of port mappings" + }, {"getportmappingnumberofentries", (PyCFunction)UPnP_getportmappingnumberofentries, METH_NOARGS, "-- non standard --" }, @@ -434,8 +619,8 @@ static PyMethodDef UPnP_methods[] = { }; static PyTypeObject UPnPType = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ + PyVarObject_HEAD_INIT(NULL, + 0) /*ob_size*/ "miniupnpc.UPnP", /*tp_name*/ sizeof(UPnPObject), /*tp_basicsize*/ 0, /*tp_itemsize*/ @@ -470,13 +655,14 @@ static PyTypeObject UPnPType = { 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ - 0,/*(initproc)UPnP_init,*/ /* tp_init */ + (initproc)UPnP_init, /* tp_init */ 0, /* tp_alloc */ -#ifndef WIN32 +#ifndef _WIN32 PyType_GenericNew,/*UPnP_new,*/ /* tp_new */ #else - 0, + 0, /* tp_new */ #endif + 0, /* tp_free */ }; /* module methods */ @@ -484,24 +670,69 @@ static PyMethodDef miniupnpc_methods[] = { {NULL} /* Sentinel */ }; +#if PY_MAJOR_VERSION >= 3 +static struct PyModuleDef moduledef = { + PyModuleDef_HEAD_INIT, + "miniupnpc", /* m_name */ + "miniupnpc module.", /* m_doc */ + -1, /* m_size */ + miniupnpc_methods, /* m_methods */ + NULL, /* m_reload */ + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL, /* m_free */ +}; +#endif + #ifndef PyMODINIT_FUNC /* declarations for DLL import/export */ #define PyMODINIT_FUNC void #endif + PyMODINIT_FUNC -initminiupnpc(void) +#if PY_MAJOR_VERSION >= 3 +PyInit_miniupnpc(void) +#else +initminiupnpc(void) +#endif { PyObject* m; -#ifdef WIN32 +#ifdef _WIN32 + /* initialize Winsock. */ + WSADATA wsaData; + int nResult = WSAStartup(MAKEWORD(2,2), &wsaData); + if (nResult != 0) + { + /* error code could be WSASYSNOTREADY WSASYSNOTREADY + * WSASYSNOTREADY WSASYSNOTREADY WSASYSNOTREADY */ +#if PY_MAJOR_VERSION >= 3 + return 0; +#else + return; +#endif + } + UPnPType.tp_new = PyType_GenericNew; #endif if (PyType_Ready(&UPnPType) < 0) +#if PY_MAJOR_VERSION >= 3 + return 0; +#else return; +#endif +#if PY_MAJOR_VERSION >= 3 + m = PyModule_Create(&moduledef); +#else m = Py_InitModule3("miniupnpc", miniupnpc_methods, "miniupnpc module."); +#endif Py_INCREF(&UPnPType); PyModule_AddObject(m, "UPnP", (PyObject *)&UPnPType); + +#if PY_MAJOR_VERSION >= 3 + return m; +#endif } diff --git a/libs/miniupnpc/miniwget.c b/libs/miniupnpc/src/miniwget.c similarity index 50% rename from libs/miniupnpc/miniwget.c rename to libs/miniupnpc/src/miniwget.c index 7c9cb3ad58..19c683e64c 100644 --- a/libs/miniupnpc/miniwget.c +++ b/libs/miniupnpc/src/miniwget.c @@ -1,21 +1,21 @@ -/* $Id: miniwget.c,v 1.52 2011/06/17 22:59:42 nanard Exp $ */ +/* $Id: miniwget.c,v 1.84 2020/11/09 19:41:18 nanard Exp $ */ /* Project : miniupnp + * Website : http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ * Author : Thomas Bernard - * Copyright (c) 2005-2011 Thomas Bernard + * Copyright (c) 2005-2020 Thomas Bernard * This software is subject to the conditions detailed in the * LICENCE file provided in this distribution. */ - + #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> -#ifdef WIN32 +#ifdef _WIN32 #include <winsock2.h> #include <ws2tcpip.h> #include <io.h> #define MAXHOSTNAMELEN 64 -#define MIN(x,y) (((x)<(y))?(x):(y)) -#define snprintf _snprintf +#include "win32_snprintf.h" #define socklen_t int #ifndef strncasecmp #if defined(_MSC_VER) && (_MSC_VER >= 1400) @@ -24,7 +24,7 @@ #define strncasecmp memicmp #endif /* defined(_MSC_VER) && (_MSC_VER >= 1400) */ #endif /* #ifndef strncasecmp */ -#else /* #ifdef WIN32 */ +#else /* #ifdef _WIN32 */ #include <unistd.h> #include <sys/param.h> #if defined(__amigaos__) && !defined(__amigaos4__) @@ -33,22 +33,31 @@ #include <sys/select.h> #endif /* #else defined(__amigaos__) && !defined(__amigaos4__) */ #include <sys/socket.h> +#include <netinet/in.h> #include <arpa/inet.h> +#include <net/if.h> #include <netdb.h> #define closesocket close -/* defining MINIUPNPC_IGNORE_EINTR enable the ignore of interruptions - * during the connect() call */ -#define MINIUPNPC_IGNORE_EINTR -#endif /* #else WIN32 */ -#if defined(__sun) || defined(sun) +#include <strings.h> +#endif /* #else _WIN32 */ +#ifdef __GNU__ +#define MAXHOSTNAMELEN 64 +#endif /* __GNU__ */ + +#ifndef MIN #define MIN(x,y) (((x)<(y))?(x):(y)) -#endif +#endif /* MIN */ + #include "miniupnpcstrings.h" #include "miniwget.h" #include "connecthostport.h" #include "receivedata.h" +#ifndef MAXHOSTNAMELEN +#define MAXHOSTNAMELEN 64 +#endif + /* * Read a HTTP response from a socket. * Process Content-Length and Transfer-encoding headers. @@ -56,7 +65,7 @@ * to the length parameter. */ void * -getHTTPResponse(int s, int * size) +getHTTPResponse(SOCKET s, int * size, int * status_code) { char buf[2048]; int n; @@ -67,20 +76,42 @@ getHTTPResponse(int s, int * size) unsigned int bytestocopy = 0; /* buffers : */ char * header_buf; - int header_buf_len = 2048; - int header_buf_used = 0; + unsigned int header_buf_len = 2048; + unsigned int header_buf_used = 0; char * content_buf; - int content_buf_len = 2048; - int content_buf_used = 0; + unsigned int content_buf_len = 2048; + unsigned int content_buf_used = 0; char chunksize_buf[32]; - int chunksize_buf_index; + unsigned int chunksize_buf_index; +#ifdef DEBUG + char * reason_phrase = NULL; + int reason_phrase_len = 0; +#endif + if(status_code) *status_code = -1; header_buf = malloc(header_buf_len); + if(header_buf == NULL) + { +#ifdef DEBUG + fprintf(stderr, "%s: Memory allocation error\n", "getHTTPResponse"); +#endif /* DEBUG */ + *size = -1; + return NULL; + } content_buf = malloc(content_buf_len); + if(content_buf == NULL) + { + free(header_buf); +#ifdef DEBUG + fprintf(stderr, "%s: Memory allocation error\n", "getHTTPResponse"); +#endif /* DEBUG */ + *size = -1; + return NULL; + } chunksize_buf[0] = '\0'; chunksize_buf_index = 0; - while((n = receivedata(s, buf, 2048, 5000)) > 0) + while((n = receivedata(s, buf, sizeof(buf), 5000, NULL)) > 0) { if(endofheaders == 0) { @@ -89,7 +120,15 @@ getHTTPResponse(int s, int * size) int colon=0; int valuestart=0; if(header_buf_used + n > header_buf_len) { - header_buf = realloc(header_buf, header_buf_used + n); + char * tmp = realloc(header_buf, header_buf_used + n); + if(tmp == NULL) { + /* memory allocation error */ + free(header_buf); + free(content_buf); + *size = -1; + return NULL; + } + header_buf = tmp; header_buf_len = header_buf_used + n; } memcpy(header_buf + header_buf_used, buf, n); @@ -97,14 +136,14 @@ getHTTPResponse(int s, int * size) /* search for CR LF CR LF (end of headers) * recognize also LF LF */ i = 0; - while(i < (header_buf_used-1) && (endofheaders == 0)) { + while(i < ((int)header_buf_used-1) && (endofheaders == 0)) { if(header_buf[i] == '\r') { i++; if(header_buf[i] == '\n') { i++; - if(i < header_buf_used && header_buf[i] == '\r') { + if(i < (int)header_buf_used && header_buf[i] == '\r') { i++; - if(i < header_buf_used && header_buf[i] == '\n') { + if(i < (int)header_buf_used && header_buf[i] == '\n') { endofheaders = i+1; } } @@ -121,7 +160,7 @@ getHTTPResponse(int s, int * size) continue; /* parse header lines */ for(i = 0; i < endofheaders - 1; i++) { - if(colon <= linestart && header_buf[i]==':') + if(linestart > 0 && colon <= linestart && header_buf[i]==':') { colon = i; while(i < (endofheaders-1) @@ -132,7 +171,34 @@ getHTTPResponse(int s, int * size) /* detecting end of line */ else if(header_buf[i]=='\r' || header_buf[i]=='\n') { - if(colon > linestart && valuestart > colon) + if(linestart == 0 && status_code) + { + /* Status line + * HTTP-Version SP Status-Code SP Reason-Phrase CRLF */ + int sp; + for(sp = 0; sp < i - 1; sp++) + if(header_buf[sp] == ' ') + { + if(*status_code < 0) + { + if (header_buf[sp+1] >= '1' && header_buf[sp+1] <= '9') + *status_code = atoi(header_buf + sp + 1); + } + else + { +#ifdef DEBUG + reason_phrase = header_buf + sp + 1; + reason_phrase_len = i - sp - 1; +#endif + break; + } + } +#ifdef DEBUG + printf("HTTP status code = %d, Reason phrase = %.*s\n", + *status_code, reason_phrase_len, reason_phrase); +#endif + } + else if(colon > linestart && valuestart > colon) { #ifdef DEBUG printf("header='%.*s', value='%.*s'\n", @@ -155,113 +221,130 @@ getHTTPResponse(int s, int * size) chunked = 1; } } - while(header_buf[i]=='\r' || header_buf[i] == '\n') + while((i < (int)header_buf_used) && (header_buf[i]=='\r' || header_buf[i] == '\n')) i++; linestart = i; colon = linestart; valuestart = 0; - } + } } /* copy the remaining of the received data back to buf */ n = header_buf_used - endofheaders; memcpy(buf, header_buf + endofheaders, n); /* if(headers) */ } - if(endofheaders) + /* if we get there, endofheaders != 0. + * In the other case, there was a continue above */ + /* content */ + if(chunked) { - /* content */ - if(chunked) + int i = 0; + while(i < n) { - int i = 0; - while(i < n) + if(chunksize == 0) { - if(chunksize == 0) + /* reading chunk size */ + if(chunksize_buf_index == 0) { + /* skipping any leading CR LF */ + if(buf[i] == '\r') i++; + if(i<n && buf[i] == '\n') i++; + } + while(i<n && isxdigit(buf[i]) + && chunksize_buf_index < (sizeof(chunksize_buf)-1)) { - /* reading chunk size */ - if(chunksize_buf_index == 0) { - /* skipping any leading CR LF */ - if(i<n && buf[i] == '\r') i++; - if(i<n && buf[i] == '\n') i++; - } - while(i<n && isxdigit(buf[i]) - && chunksize_buf_index < (sizeof(chunksize_buf)-1)) - { - chunksize_buf[chunksize_buf_index++] = buf[i]; - chunksize_buf[chunksize_buf_index] = '\0'; - i++; - } - while(i<n && buf[i] != '\r' && buf[i] != '\n') - i++; /* discarding chunk-extension */ - if(i<n && buf[i] == '\r') i++; - if(i<n && buf[i] == '\n') { - int j; - for(j = 0; j < chunksize_buf_index; j++) { - if(chunksize_buf[j] >= '0' - && chunksize_buf[j] <= '9') - chunksize = (chunksize << 4) + (chunksize_buf[j] - '0'); - else - chunksize = (chunksize << 4) + ((chunksize_buf[j] | 32) - 'a' + 10); - } - chunksize_buf[0] = '\0'; - chunksize_buf_index = 0; - i++; - } else { - /* not finished to get chunksize */ - continue; + chunksize_buf[chunksize_buf_index++] = buf[i]; + chunksize_buf[chunksize_buf_index] = '\0'; + i++; + } + while(i<n && buf[i] != '\r' && buf[i] != '\n') + i++; /* discarding chunk-extension */ + if(i<n && buf[i] == '\r') i++; + if(i<n && buf[i] == '\n') { + unsigned int j; + for(j = 0; j < chunksize_buf_index; j++) { + if(chunksize_buf[j] >= '0' + && chunksize_buf[j] <= '9') + chunksize = (chunksize << 4) + (chunksize_buf[j] - '0'); + else + chunksize = (chunksize << 4) + ((chunksize_buf[j] | 32) - 'a' + 10); } + chunksize_buf[0] = '\0'; + chunksize_buf_index = 0; + i++; + } else { + /* not finished to get chunksize */ + continue; + } #ifdef DEBUG - printf("chunksize = %u (%x)\n", chunksize, chunksize); + printf("chunksize = %u (%x)\n", chunksize, chunksize); #endif - if(chunksize == 0) - { + if(chunksize == 0) + { #ifdef DEBUG - printf("end of HTTP content - %d %d\n", i, n); - /*printf("'%.*s'\n", n-i, buf+i);*/ + printf("end of HTTP content - %d %d\n", i, n); + /*printf("'%.*s'\n", n-i, buf+i);*/ #endif - goto end_of_stream; - } + goto end_of_stream; } - bytestocopy = ((int)chunksize < n - i)?chunksize:(n - i); - if((int)(content_buf_used + bytestocopy) > content_buf_len) - { - if(content_length >= content_buf_used + (int)bytestocopy) { - content_buf_len = content_length; - } else { - content_buf_len = content_buf_used + (int)bytestocopy; - } - content_buf = (char *)realloc((void *)content_buf, - content_buf_len); - } - memcpy(content_buf + content_buf_used, buf + i, bytestocopy); - content_buf_used += bytestocopy; - i += bytestocopy; - chunksize -= bytestocopy; - } - } - else - { - /* not chunked */ - if(content_length > 0 - && (content_buf_used + n) > content_length) { - /* skipping additional bytes */ - n = content_length - content_buf_used; } - if(content_buf_used + n > content_buf_len) + /* it is guaranteed that (n >= i) */ + bytestocopy = (chunksize < (unsigned int)(n - i))?chunksize:(unsigned int)(n - i); + if((content_buf_used + bytestocopy) > content_buf_len) { - if(content_length >= content_buf_used + n) { + char * tmp; + if((content_length >= 0) && ((unsigned int)content_length >= (content_buf_used + bytestocopy))) { content_buf_len = content_length; } else { - content_buf_len = content_buf_used + n; + content_buf_len = content_buf_used + bytestocopy; + } + tmp = realloc(content_buf, content_buf_len); + if(tmp == NULL) { + /* memory allocation error */ + free(content_buf); + free(header_buf); + *size = -1; + return NULL; } - content_buf = (char *)realloc((void *)content_buf, - content_buf_len); + content_buf = tmp; } - memcpy(content_buf + content_buf_used, buf, n); - content_buf_used += n; + memcpy(content_buf + content_buf_used, buf + i, bytestocopy); + content_buf_used += bytestocopy; + i += bytestocopy; + chunksize -= bytestocopy; } } + else + { + /* not chunked */ + if(content_length > 0 + && (content_buf_used + n) > (unsigned int)content_length) { + /* skipping additional bytes */ + n = content_length - content_buf_used; + } + if(content_buf_used + n > content_buf_len) + { + char * tmp; + if(content_length >= 0 + && (unsigned int)content_length >= (content_buf_used + n)) { + content_buf_len = content_length; + } else { + content_buf_len = content_buf_used + n; + } + tmp = realloc(content_buf, content_buf_len); + if(tmp == NULL) { + /* memory allocation error */ + free(content_buf); + free(header_buf); + *size = -1; + return NULL; + } + content_buf = tmp; + } + memcpy(content_buf + content_buf_used, buf, n); + content_buf_used += n; + } /* use the Content-Length header value if available */ - if(content_length > 0 && content_buf_used >= content_length) + if(content_length > 0 && content_buf_used >= (unsigned int)content_length) { #ifdef DEBUG printf("End of HTTP content\n"); @@ -270,7 +353,7 @@ getHTTPResponse(int s, int * size) } } end_of_stream: - free(header_buf); header_buf = NULL; + free(header_buf); *size = content_buf_used; if(content_buf_used == 0) { @@ -284,21 +367,22 @@ end_of_stream: * do all the work. * Return NULL if something failed. */ static void * -miniwget3(const char * url, const char * host, +miniwget3(const char * host, unsigned short port, const char * path, int * size, char * addr_str, int addr_str_len, - const char * httpversion) + const char * httpversion, unsigned int scope_id, + int * status_code) { char buf[2048]; - int s; - int n = -1; + SOCKET s; + int n; int len; int sent; void * content; *size = 0; - s = connecthostport(host, port); - if(s < 0) + s = connecthostport(host, port, scope_id); + if(ISINVALID(s)) return NULL; /* get address for caller ! */ @@ -336,16 +420,14 @@ miniwget3(const char * url, const char * host, addr_str, addr_str_len); } #endif -#ifndef NO_GETADDRINFO /* getnameinfo return ip v6 address with the scope identifier * such as : 2a01:e35:8b2b:7330::%4281128194 */ n = getnameinfo((const struct sockaddr *)&saddr, saddrlen, addr_str, addr_str_len, NULL, 0, NI_NUMERICHOST | NI_NUMERICSERV); -#endif if(n != 0) { -#ifdef WIN32 +#ifdef _WIN32 fprintf(stderr, "getnameinfo() failed : %d\n", n); #else fprintf(stderr, "getnameinfo() failed : %s\n", gai_strerror(n)); @@ -362,10 +444,15 @@ miniwget3(const char * url, const char * host, "GET %s HTTP/%s\r\n" "Host: %s:%d\r\n" "Connection: Close\r\n" - "User-Agent: " OS_STRING ", UPnP/1.0, MiniUPnPc/" MINIUPNPC_VERSION_STRING "\r\n" + "User-Agent: " OS_STRING ", " UPNP_VERSION_STRING ", MiniUPnPc/" MINIUPNPC_VERSION_STRING "\r\n" "\r\n", path, httpversion, host, port); + if ((unsigned int)len >= sizeof(buf)) + { + closesocket(s); + return NULL; + } sent = 0; /* sending the HTTP request */ while(sent < len) @@ -382,7 +469,7 @@ miniwget3(const char * url, const char * host, sent += n; } } - content = getHTTPResponse(s, size); + content = getHTTPResponse(s, size, status_code); closesocket(s); return content; } @@ -390,24 +477,32 @@ miniwget3(const char * url, const char * host, /* miniwget2() : * Call miniwget3(); retry with HTTP/1.1 if 1.0 fails. */ static void * -miniwget2(const char * url, const char * host, - unsigned short port, const char * path, - int * size, char * addr_str, int addr_str_len) +miniwget2(const char * host, + unsigned short port, const char * path, + int * size, char * addr_str, int addr_str_len, + unsigned int scope_id, int * status_code) { char * respbuffer; - respbuffer = miniwget3(url, host, port, path, size, addr_str, addr_str_len, "1.1"); -/* - respbuffer = miniwget3(url, host, port, path, size, addr_str, addr_str_len, "1.0"); +#if 1 + respbuffer = miniwget3(host, port, path, size, + addr_str, addr_str_len, "1.1", + scope_id, status_code); +#else + respbuffer = miniwget3(host, port, path, size, + addr_str, addr_str_len, "1.0", + scope_id, status_code); if (*size == 0) { #ifdef DEBUG printf("Retrying with HTTP/1.1\n"); #endif free(respbuffer); - respbuffer = miniwget3(url, host, port, path, size, addr_str, addr_str_len, "1.1"); + respbuffer = miniwget3(host, port, path, size, + addr_str, addr_str_len, "1.1", + scope_id, status_code); } -*/ +#endif return respbuffer; } @@ -419,12 +514,15 @@ miniwget2(const char * url, const char * host, * url : source string not modified * hostname : hostname destination string (size of MAXHOSTNAMELEN+1) * port : port (destination) - * path : pointer to the path part of the URL + * path : pointer to the path part of the URL * * Return values : * 0 - Failure * 1 - Success */ -int parseURL(const char * url, char * hostname, unsigned short * port, char * * path) +int +parseURL(const char * url, + char * hostname, unsigned short * port, + char * * path, unsigned int * scope_id) { char * p1, *p2, *p3; if(!url) @@ -440,7 +538,43 @@ int parseURL(const char * url, char * hostname, unsigned short * port, char * * if(*p1 == '[') { /* IP v6 : http://[2a00:1450:8002::6a]/path/abc */ + char * scope; + scope = strchr(p1, '%'); p2 = strchr(p1, ']'); + if(p2 && scope && scope < p2 && scope_id) { + /* parse scope */ +#ifdef IF_NAMESIZE + char tmp[IF_NAMESIZE]; + int l; + scope++; + /* "%25" is just '%' in URL encoding */ + if(scope[0] == '2' && scope[1] == '5') + scope += 2; /* skip "25" */ + l = p2 - scope; + if(l >= IF_NAMESIZE) + l = IF_NAMESIZE - 1; + memcpy(tmp, scope, l); + tmp[l] = '\0'; + *scope_id = if_nametoindex(tmp); + if(*scope_id == 0) { + *scope_id = (unsigned int)strtoul(tmp, NULL, 10); + } +#else + /* under windows, scope is numerical */ + char tmp[8]; + size_t l; + scope++; + /* "%25" is just '%' in URL encoding */ + if(scope[0] == '2' && scope[1] == '5') + scope += 2; /* skip "25" */ + l = p2 - scope; + if(l >= sizeof(tmp)) + l = sizeof(tmp) - 1; + memcpy(tmp, scope, l); + tmp[l] = '\0'; + *scope_id = (unsigned int)strtoul(tmp, NULL, 10); +#endif + } p3 = strchr(p1, '/'); if(p2 && p3) { @@ -490,35 +624,41 @@ int parseURL(const char * url, char * hostname, unsigned short * port, char * * return 1; } -void * miniwget(const char * url, int * size) +void * +miniwget(const char * url, int * size, + unsigned int scope_id, int * status_code) { unsigned short port; char * path; /* protocol://host:port/chemin */ char hostname[MAXHOSTNAMELEN+1]; *size = 0; - if(!parseURL(url, hostname, &port, &path)) + if(!parseURL(url, hostname, &port, &path, &scope_id)) return NULL; #ifdef DEBUG - printf("parsed url : hostname='%s' port=%hu path='%s'\n", hostname, port, path); + printf("parsed url : hostname='%s' port=%hu path='%s' scope_id=%u\n", + hostname, port, path, scope_id); #endif - return miniwget2(url, hostname, port, path, size, 0, 0); + return miniwget2(hostname, port, path, size, 0, 0, scope_id, status_code); } -void * miniwget_getaddr(const char * url, int * size, char * addr, int addrlen) +void * +miniwget_getaddr(const char * url, int * size, + char * addr, int addrlen, unsigned int scope_id, + int * status_code) { unsigned short port; char * path; - /* protocol://host:port/chemin */ + /* protocol://host:port/path */ char hostname[MAXHOSTNAMELEN+1]; *size = 0; if(addr) addr[0] = '\0'; - if(!parseURL(url, hostname, &port, &path)) + if(!parseURL(url, hostname, &port, &path, &scope_id)) return NULL; #ifdef DEBUG - printf("parsed url : hostname='%s' port=%hu path='%s'\n", hostname, port, path); + printf("parsed url : hostname='%s' port=%hu path='%s' scope_id=%u\n", + hostname, port, path, scope_id); #endif - return miniwget2(url, hostname, port, path, size, addr, addrlen); + return miniwget2(hostname, port, path, size, addr, addrlen, scope_id, status_code); } - diff --git a/libs/miniupnpc/src/miniwget_private.h b/libs/miniupnpc/src/miniwget_private.h new file mode 100644 index 0000000000..e4eaac8085 --- /dev/null +++ b/libs/miniupnpc/src/miniwget_private.h @@ -0,0 +1,15 @@ +/* $Id: miniwget_private.h,v 1.1 2018/04/06 10:17:58 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas Bernard + * Copyright (c) 2018 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ +#ifndef MINIWGET_INTERNAL_H_INCLUDED +#define MINIWGET_INTERNAL_H_INCLUDED + +#include "miniupnpc_socketdef.h" + +void * getHTTPResponse(SOCKET s, int * size, int * status_code); + +#endif diff --git a/libs/miniupnpc/minixml.c b/libs/miniupnpc/src/minixml.c similarity index 88% rename from libs/miniupnpc/minixml.c rename to libs/miniupnpc/src/minixml.c index 8b5594c88d..935ec443e7 100644 --- a/libs/miniupnpc/minixml.c +++ b/libs/miniupnpc/src/minixml.c @@ -1,10 +1,11 @@ -/* $Id: minixml.c,v 1.9 2011/02/07 13:44:57 nanard Exp $ */ -/* minixml.c : the minimum size a xml parser can be ! */ +/* $Id: minixml.c,v 1.12 2017/12/12 11:17:40 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * minixml.c : the minimum size a xml parser can be ! */ /* Project : miniupnp * webpage: http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ * Author : Thomas Bernard -Copyright (c) 2005-2011, Thomas BERNARD +Copyright (c) 2005-2017, Thomas BERNARD All rights reserved. Redistribution and use in source and binary forms, with or without @@ -113,7 +114,20 @@ static void parseelt(struct xmlparser * p) const char * elementname; while(p->xml < (p->xmlend - 1)) { - if((p->xml)[0]=='<' && (p->xml)[1]!='?') + if((p->xml + 4) <= p->xmlend && (0 == memcmp(p->xml, "<!--", 4))) + { + p->xml += 3; + /* ignore comments */ + do + { + p->xml++; + if ((p->xml + 3) >= p->xmlend) + return; + } + while(memcmp(p->xml, "-->", 3) != 0); + p->xml += 3; + } + else if((p->xml)[0]=='<' && (p->xml)[1]!='?') { i = 0; elementname = ++p->xml; while( !IS_WHITE_SPACE(*p->xml) @@ -148,8 +162,9 @@ static void parseelt(struct xmlparser * p) if (p->xml >= p->xmlend) return; } - if(memcmp(p->xml, "<![CDATA[", 9) == 0) - { + /* CDATA are at least 9 + 3 characters long : <![CDATA[ ]]> */ + if((p->xmlend >= (p->xml + (9 + 3))) && (memcmp(p->xml, "<![CDATA[", 9) == 0)) + { /* CDATA handling */ p->xml += 9; data = p->xml; diff --git a/libs/miniupnpc/minixml.h b/libs/miniupnpc/src/minixml.h similarity index 83% rename from libs/miniupnpc/minixml.h rename to libs/miniupnpc/src/minixml.h index 857c70ee93..0a9fc08b72 100644 --- a/libs/miniupnpc/minixml.h +++ b/libs/miniupnpc/src/minixml.h @@ -1,4 +1,4 @@ -/* $Id: minixml.h,v 1.6 2006/11/30 11:47:21 nanard Exp $ */ +/* $Id: minixml.h,v 1.8 2019/02/10 12:29:25 nanard Exp $ */ /* minimal xml parser * * Project : miniupnp @@ -8,9 +8,9 @@ * This software is subject to the conditions detailed in the * LICENCE file provided in this distribution. * */ -#ifndef __MINIXML_H__ -#define __MINIXML_H__ -#define IS_WHITE_SPACE(c) ((c==' ') || (c=='\t') || (c=='\r') || (c=='\n')) +#ifndef MINIXML_H_INCLUDED +#define MINIXML_H_INCLUDED +#define IS_WHITE_SPACE(c) ((c)==' ' || (c)=='\t' || (c)=='\r' || (c)=='\n') /* if a callback function pointer is set to NULL, * the function is not called */ diff --git a/libs/miniupnpc/minixmlvalid.c b/libs/miniupnpc/src/minixmlvalid.c similarity index 94% rename from libs/miniupnpc/minixmlvalid.c rename to libs/miniupnpc/src/minixmlvalid.c index 766211bcfb..dad1488122 100644 --- a/libs/miniupnpc/minixmlvalid.c +++ b/libs/miniupnpc/src/minixmlvalid.c @@ -1,4 +1,4 @@ -/* $Id: minixmlvalid.c,v 1.4 2011/02/07 13:44:57 nanard Exp $ */ +/* $Id: minixmlvalid.c,v 1.7 2015/07/15 12:41:15 nanard Exp $ */ /* MiniUPnP Project * http://miniupnp.tuxfamily.org/ or http://miniupnp.free.fr/ * minixmlvalid.c : @@ -32,7 +32,7 @@ int evtlistcmp(struct eventlist * a, struct eventlist * b) if(a->n != b->n) { printf("event number not matching : %d != %d\n", a->n, b->n); - //return 1; + /*return 1;*/ } for(i=0; i<a->n; i++) { @@ -82,7 +82,7 @@ static const struct event evtref[] = {ELTEND, "elt2b", 5}, {ELTEND, "elt2a", 5}, {ELTEND, "xmlroot", 7} -}; +}; void startelt(void * data, const char * p, int l) { @@ -128,6 +128,11 @@ int testxmlparser(const char * xml, int size) struct xmlparser parser; evtlist.n = 0; evtlist.events = malloc(sizeof(struct event)*100); + if(evtlist.events == NULL) + { + fprintf(stderr, "Memory allocation error.\n"); + return -1; + } memset(&parser, 0, sizeof(parser)); parser.xmlstart = xml; parser.xmlsize = size; @@ -148,6 +153,8 @@ int testxmlparser(const char * xml, int size) int main(int argc, char * * argv) { int r; + (void)argc; (void)argv; + r = testxmlparser(xmldata, sizeof(xmldata)-1); if(r) printf("minixml validation test failed\n"); diff --git a/libs/miniupnpc/portlistingparse.c b/libs/miniupnpc/src/portlistingparse.c similarity index 81% rename from libs/miniupnpc/portlistingparse.c rename to libs/miniupnpc/src/portlistingparse.c index e09e80f39c..54e5696efa 100644 --- a/libs/miniupnpc/portlistingparse.c +++ b/libs/miniupnpc/src/portlistingparse.c @@ -1,14 +1,22 @@ -/* $Id: portlistingparse.c,v 1.4 2011/03/18 11:02:17 nanard Exp $ */ +/* $Id: portlistingparse.c,v 1.11 2020/03/22 22:43:44 nanard Exp $ */ /* MiniUPnP project * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ - * (c) 2011 Thomas Bernard + * (c) 2011-2020 Thomas Bernard * This software is subject to the conditions detailed * in the LICENCE file provided within the distribution */ #include <string.h> #include <stdlib.h> +#ifdef DEBUG +#include <stdio.h> +#endif /* DEBUG */ #include "portlistingparse.h" #include "minixml.h" +#if defined(__HAIKU__) +/* rename our private function because Haiku already defines a atoui() function */ +#define atoui atoui2 +#endif + /* list of the elements */ static const struct { const portMappingElt code; @@ -52,7 +60,7 @@ startelt(void * d, const char * name, int l) pdata->curelt = PortMappingEltNone; for(i = 0; elements[i].str; i++) { - if(memcmp(name, elements[i].str, l) == 0) + if(strlen(elements[i].str) == (size_t)l && memcmp(name, elements[i].str, l) == 0) { pdata->curelt = elements[i].code; break; @@ -62,7 +70,17 @@ startelt(void * d, const char * name, int l) { struct PortMapping * pm; pm = calloc(1, sizeof(struct PortMapping)); - LIST_INSERT_HEAD( &(pdata->head), pm, entries); + if(pm == NULL) + { + /* malloc error */ +#ifdef DEBUG + fprintf(stderr, "%s: error allocating memory", + "startelt"); +#endif /* DEBUG */ + return; + } + pm->l_next = pdata->l_head; /* insert in list */ + pdata->l_head = pm; } } @@ -71,6 +89,8 @@ static void endelt(void * d, const char * name, int l) { struct PortMappingParserData * pdata = (struct PortMappingParserData *)d; + (void)name; + (void)l; pdata->curelt = PortMappingEltNone; } @@ -80,7 +100,7 @@ data(void * d, const char * data, int l) { struct PortMapping * pm; struct PortMappingParserData * pdata = (struct PortMappingParserData *)d; - pm = pdata->head.lh_first; + pm = pdata->l_head; if(!pm) return; if(l > 63) @@ -132,7 +152,6 @@ ParsePortListing(const char * buffer, int bufsize, struct xmlparser parser; memset(pdata, 0, sizeof(struct PortMappingParserData)); - LIST_INIT(&(pdata->head)); /* init xmlparser */ parser.xmlstart = buffer; parser.xmlsize = bufsize; @@ -148,9 +167,10 @@ void FreePortListing(struct PortMappingParserData * pdata) { struct PortMapping * pm; - while((pm = pdata->head.lh_first) != NULL) + while((pm = pdata->l_head) != NULL) { - LIST_REMOVE(pm, entries); + /* remove from list */ + pdata->l_head = pm->l_next; free(pm); } } diff --git a/libs/miniupnpc/src/receivedata.c b/libs/miniupnpc/src/receivedata.c new file mode 100644 index 0000000000..7f187f6e56 --- /dev/null +++ b/libs/miniupnpc/src/receivedata.c @@ -0,0 +1,105 @@ +/* $Id: receivedata.c,v 1.10 2021/03/02 23:33:07 nanard Exp $ */ +/* Project : miniupnp + * Website : http://miniupnp.free.fr/ + * Author : Thomas Bernard + * Copyright (c) 2011-2021 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. */ + +#include <stdio.h> +#include <string.h> +#ifdef _WIN32 +#include <winsock2.h> +#include <ws2tcpip.h> +#else /* _WIN32 */ +#include <unistd.h> +#if defined(__amigaos__) && !defined(__amigaos4__) +#define socklen_t int +#else /* #if defined(__amigaos__) && !defined(__amigaos4__) */ +#include <sys/select.h> +#endif /* #else defined(__amigaos__) && !defined(__amigaos4__) */ +#include <sys/socket.h> +#include <netinet/in.h> +#if !defined(__amigaos__) && !defined(__amigaos4__) +#include <poll.h> +#endif /* !defined(__amigaos__) && !defined(__amigaos4__) */ +#include <errno.h> +#define MINIUPNPC_IGNORE_EINTR +#endif /* _WIN32 */ + +#include "receivedata.h" + +int +receivedata(SOCKET socket, + char * data, int length, + int timeout, unsigned int * scope_id) +{ +#ifdef MINIUPNPC_GET_SRC_ADDR + struct sockaddr_storage src_addr; + socklen_t src_addr_len = sizeof(src_addr); +#endif /* MINIUPNPC_GET_SRC_ADDR */ + int n; +#if !defined(_WIN32) && !defined(__amigaos__) && !defined(__amigaos4__) + /* using poll */ + struct pollfd fds[1]; /* for the poll */ +#ifdef MINIUPNPC_IGNORE_EINTR + do { +#endif /* MINIUPNPC_IGNORE_EINTR */ + fds[0].fd = socket; + fds[0].events = POLLIN; + n = poll(fds, 1, timeout); +#ifdef MINIUPNPC_IGNORE_EINTR + } while(n < 0 && errno == EINTR); +#endif /* MINIUPNPC_IGNORE_EINTR */ + if(n < 0) { + PRINT_SOCKET_ERROR("poll"); + return -1; + } else if(n == 0) { + /* timeout */ + return 0; + } +#else /* !defined(_WIN32) && !defined(__amigaos__) && !defined(__amigaos4__) */ + /* using select under _WIN32 and amigaos */ + fd_set socketSet; + TIMEVAL timeval; + FD_ZERO(&socketSet); + FD_SET(socket, &socketSet); + timeval.tv_sec = timeout / 1000; + timeval.tv_usec = (timeout % 1000) * 1000; + n = select(FD_SETSIZE, &socketSet, NULL, NULL, &timeval); + if(n < 0) { + PRINT_SOCKET_ERROR("select"); + return -1; + } else if(n == 0) { + return 0; + } +#endif /* !defined(_WIN32) && !defined(__amigaos__) && !defined(__amigaos4__) */ +#ifdef MINIUPNPC_GET_SRC_ADDR + memset(&src_addr, 0, sizeof(src_addr)); + n = recvfrom(socket, data, length, 0, + (struct sockaddr *)&src_addr, &src_addr_len); +#else /* MINIUPNPC_GET_SRC_ADDR */ + n = recv(socket, data, length, 0); +#endif /* MINIUPNPC_GET_SRC_ADDR */ + if(n<0) { + PRINT_SOCKET_ERROR("recv"); + } +#ifdef MINIUPNPC_GET_SRC_ADDR + if (src_addr.ss_family == AF_INET6) { + const struct sockaddr_in6 * src_addr6 = (struct sockaddr_in6 *)&src_addr; +#ifdef DEBUG + printf("scope_id=%u\n", src_addr6->sin6_scope_id); +#endif /* DEBUG */ + if(scope_id) + *scope_id = src_addr6->sin6_scope_id; + } else { + if(scope_id) + *scope_id = 0; + } +#else /* MINIUPNPC_GET_SRC_ADDR */ + if(scope_id) + *scope_id = 0; +#endif /* MINIUPNPC_GET_SRC_ADDR */ + return n; +} + diff --git a/libs/miniupnpc/src/receivedata.h b/libs/miniupnpc/src/receivedata.h new file mode 100644 index 0000000000..4dce3f3b4e --- /dev/null +++ b/libs/miniupnpc/src/receivedata.h @@ -0,0 +1,21 @@ +/* $Id: receivedata.h,v 1.5 2018/04/06 10:53:15 nanard Exp $ */ +/* Project: miniupnp + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * Author: Thomas Bernard + * Copyright (c) 2011-2018 Thomas Bernard + * This software is subjects to the conditions detailed + * in the LICENCE file provided within this distribution */ +#ifndef RECEIVEDATA_H_INCLUDED +#define RECEIVEDATA_H_INCLUDED + +#include "miniupnpc_socketdef.h" + +/* Reads data from the specified socket. + * Returns the number of bytes read if successful, zero if no bytes were + * read or if we timed out. Returns negative if there was an error. */ +int receivedata(SOCKET socket, + char * data, int length, + int timeout, unsigned int * scope_id); + +#endif + diff --git a/libs/miniupnpc/src/testaddr_is_reserved.c b/libs/miniupnpc/src/testaddr_is_reserved.c new file mode 100644 index 0000000000..313f0daa4a --- /dev/null +++ b/libs/miniupnpc/src/testaddr_is_reserved.c @@ -0,0 +1,46 @@ +/* $Id: testaddr_is_reserved.c,v 1.1 2020/10/15 22:12:51 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * Project : miniupnp + * Web : http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ + * Author : Thomas BERNARD + * copyright (c) 2005-2020 Thomas Bernard + * This software is subjet to the conditions detailed in the + * provided LICENSE file. */ +#include <stdio.h> +#include "addr_is_reserved.h" + +static const struct { + const char * str; + int expected_result; +} tests[] = { +{ "0.0.0.0", 1 }, +{ "8.8.8.8", 0 }, +{ "192.168.1.1", 1 }, +{ "10.250.42.12", 1 }, +{ "11.250.42.12", 0 }, +{ "172.31.1.1", 1 }, +{ "172.32.1.1", 0 }, +{ "169.254.42.42", 1 }, +{ "192.0.0.11", 1 }, +{ "198.0.0.11", 0 }, +{ "198.18.0.11", 1 }, +{ "100.64.1.1", 1 }, +{ "100.127.1.1", 1 }, +{ "100.128.1.1", 0 }, +{ NULL, 0 } +}; + +int main(int argc, char * * argv) { + int i, result; + (void)argc; (void)argv; + + for (i = 0; tests[i].str != NULL; i++) { + result = addr_is_reserved(tests[i].str); + printf("testing %s %d %d\n", tests[i].str, tests[i].expected_result, result); + if (result != tests[i].expected_result) { + fprintf(stderr, "*** FAILURE ***\n"); + return 1; /* Failure */ + } + } + return 0; /* success */ +} diff --git a/libs/miniupnpc/src/testigddescparse.c b/libs/miniupnpc/src/testigddescparse.c new file mode 100644 index 0000000000..cdc765de4f --- /dev/null +++ b/libs/miniupnpc/src/testigddescparse.c @@ -0,0 +1,187 @@ +/* $Id: testigddescparse.c,v 1.11 2019/02/10 12:33:32 nanard Exp $ */ +/* Project : miniupnp + * http://miniupnp.free.fr/ + * Author : Thomas Bernard + * Copyright (c) 2008-2015 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "igd_desc_parse.h" +#include "minixml.h" +#include "miniupnpc.h" + +/* count number of differences */ +int compare_service(struct IGDdatas_service * s, FILE * f) +{ + int n = 0; + char line[1024]; + + while(fgets(line, sizeof(line), f)) { + char * value; + char * equal; + char * name; + char * parsedvalue; + int l; + l = strlen(line); + while((l > 0) && ((line[l-1] == '\r') || (line[l-1] == '\n') || (line[l-1] == ' '))) + line[--l] = '\0'; + if(l == 0) + break; /* end on blank line */ + if(line[0] == '#') + continue; /* skip comments */ + equal = strchr(line, '='); + if(equal == NULL) { + fprintf(stderr, "Warning, line does not contain '=' : %s\n", line); + continue; + } + *equal = '\0'; + name = line; + while(*name == ' ' || *name == '\t') + name++; + l = strlen(name); + while((l > 0) && (name[l-1] == ' ' || name[l-1] == '\t')) + name[--l] = '\0'; + value = equal + 1; + while(*value == ' ' || *value == '\t') + value++; + if(strcmp(name, "controlurl") == 0) + parsedvalue = s->controlurl; + else if(strcmp(name, "eventsuburl") == 0) + parsedvalue = s->eventsuburl; + else if(strcmp(name, "scpdurl") == 0) + parsedvalue = s->scpdurl; + else if(strcmp(name, "servicetype") == 0) + parsedvalue = s->servicetype; + else { + fprintf(stderr, "unknown field '%s'\n", name); + continue; + } + if(0 != strcmp(parsedvalue, value)) { + fprintf(stderr, "difference : '%s' != '%s'\n", parsedvalue, value); + n++; + } + } + return n; +} + +int compare_igd(struct IGDdatas * p, FILE * f) +{ + int n = 0; + char line[1024]; + struct IGDdatas_service * s; + + while(fgets(line, sizeof(line), f)) { + char * colon; + int l = (int)strlen(line); + while((l > 0) && (line[l-1] == '\r' || (line[l-1] == '\n'))) + line[--l] = '\0'; + if(l == 0 || line[0] == '#') + continue; /* skip blank lines and comments */ + colon = strchr(line, ':'); + if(colon == NULL) { + fprintf(stderr, "Warning, no ':' : %s\n", line); + continue; + } + s = NULL; + *colon = '\0'; + if(strcmp(line, "CIF") == 0) + s = &p->CIF; + else if(strcmp(line, "first") == 0) + s = &p->first; + else if(strcmp(line, "second") == 0) + s = &p->second; + else if(strcmp(line, "IPv6FC") == 0) + s = &p->IPv6FC; + else { + s = NULL; + fprintf(stderr, "*** unknown service '%s' ***\n", line); + n++; + continue; + } + n += compare_service(s, f); + } + if(n > 0) + fprintf(stderr, "*** %d difference%s ***\n", n, (n > 1) ? "s" : ""); + return n; +} + +int test_igd_desc_parse(char * buffer, int len, FILE * f) +{ + int n; + struct IGDdatas igd; + struct xmlparser parser; + struct UPNPUrls urls; + + memset(&igd, 0, sizeof(struct IGDdatas)); + memset(&parser, 0, sizeof(struct xmlparser)); + parser.xmlstart = buffer; + parser.xmlsize = len; + parser.data = &igd; + parser.starteltfunc = IGDstartelt; + parser.endeltfunc = IGDendelt; + parser.datafunc = IGDdata; + parsexml(&parser); +#ifdef DEBUG + printIGD(&igd); +#endif /* DEBUG */ + GetUPNPUrls(&urls, &igd, "http://fake/desc/url/file.xml", 0); + printf("ipcondescURL='%s'\n", urls.ipcondescURL); + printf("controlURL='%s'\n", urls.controlURL); + printf("controlURL_CIF='%s'\n", urls.controlURL_CIF); + n = f ? compare_igd(&igd, f) : 0; + FreeUPNPUrls(&urls); + return n; +} + +int main(int argc, char * * argv) +{ + FILE * f; + char * buffer; + int len; + int r; + if(argc<2) { + fprintf(stderr, "Usage: %s file.xml [file.values]\n", argv[0]); + return 1; + } + f = fopen(argv[1], "rb"); + if(!f) { + fprintf(stderr, "Cannot open %s for reading.\n", argv[1]); + return 1; + } + fseek(f, 0, SEEK_END); + len = ftell(f); + fseek(f, 0, SEEK_SET); + buffer = malloc(len); + if(!buffer) { + fprintf(stderr, "Memory allocation error.\n"); + fclose(f); + return 1; + } + r = (int)fread(buffer, 1, len, f); + if(r != len) { + fprintf(stderr, "Failed to read file %s. %d out of %d bytes.\n", + argv[1], r, len); + fclose(f); + free(buffer); + return 1; + } + fclose(f); + f = NULL; + if(argc > 2) { + f = fopen(argv[2], "rb"); + if(!f) { + fprintf(stderr, "Cannot open %s for reading.\n", argv[2]); + free(buffer); + return 1; + } + } + r = test_igd_desc_parse(buffer, len, f); + free(buffer); + if(f) + fclose(f); + return r; +} + diff --git a/libs/miniupnpc/testminiwget.c b/libs/miniupnpc/src/testminiwget.c similarity index 70% rename from libs/miniupnpc/testminiwget.c rename to libs/miniupnpc/src/testminiwget.c index b68fbfeed6..cfbb224de7 100644 --- a/libs/miniupnpc/testminiwget.c +++ b/libs/miniupnpc/src/testminiwget.c @@ -1,7 +1,8 @@ -/* $Id: testminiwget.c,v 1.3 2011/05/06 16:33:53 nanard Exp $ */ -/* Project : miniupnp +/* $Id: testminiwget.c,v 1.7 2018/01/16 01:01:05 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * Project : miniupnp * Author : Thomas Bernard - * Copyright (c) 2005-2011 Thomas Bernard + * Copyright (c) 2005-2018 Thomas Bernard * This software is subject to the conditions detailed in the * LICENCE file provided in this distribution. * */ @@ -11,7 +12,7 @@ /** * This program uses the miniwget / miniwget_getaddr function - * from miniwget.c in order to retreive a web ressource using + * from miniwget.c in order to retrieve a web ressource using * a GET HTTP method, and store it in a file. */ int main(int argc, char * * argv) @@ -20,15 +21,17 @@ int main(int argc, char * * argv) int size, writtensize; FILE *f; char addr[64]; + int status_code = -1; + if(argc < 3) { fprintf(stderr, "Usage:\t%s url file\n", argv[0]); fprintf(stderr, "Example:\t%s http://www.google.com/ out.html\n", argv[0]); return 1; } - /*data = miniwget(argv[1], &size);*/ - data = miniwget_getaddr(argv[1], &size, addr, sizeof(addr)); - if(!data) { - fprintf(stderr, "Error fetching %s\n", argv[1]); + data = miniwget_getaddr(argv[1], &size, addr, sizeof(addr), 0, &status_code); + if(!data || (status_code != 200)) { + if(data) free(data); + fprintf(stderr, "Error %d fetching %s\n", status_code, argv[1]); return 1; } printf("local address : %s\n", addr); diff --git a/libs/miniupnpc/testminixml.c b/libs/miniupnpc/src/testminixml.c similarity index 82% rename from libs/miniupnpc/testminixml.c rename to libs/miniupnpc/src/testminixml.c index 3d82527b77..57c4a85eb2 100644 --- a/libs/miniupnpc/testminixml.c +++ b/libs/miniupnpc/src/testminixml.c @@ -1,7 +1,11 @@ -/* $Id: testminixml.c,v 1.6 2006/11/19 22:32:35 nanard Exp $ +/* $Id: testminixml.c,v 1.10 2014/11/17 17:19:13 nanard Exp $ + * MiniUPnP project + * Website : http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * Author : Thomas Bernard. + * Copyright (c) 2005-2014 Thomas Bernard + * * testminixml.c * test program for the "minixml" functions. - * Author : Thomas Bernard. */ #include <stdlib.h> #include <stdio.h> @@ -9,18 +13,11 @@ #include "minixml.h" #include "igd_desc_parse.h" -#ifdef WIN32 -#define NO_BZERO -#endif - -#ifdef NO_BZERO -#define bzero(p, n) memset(p, 0, n) -#endif - /* ---------------------------------------------------------------------- */ void printeltname1(void * d, const char * name, int l) { int i; + (void)d; printf("element "); for(i=0;i<l;i++) putchar(name[i]); @@ -28,6 +25,7 @@ void printeltname1(void * d, const char * name, int l) void printeltname2(void * d, const char * name, int l) { int i; + (void)d; putchar('/'); for(i=0;i<l;i++) putchar(name[i]); @@ -36,6 +34,7 @@ void printeltname2(void * d, const char * name, int l) void printdata(void *d, const char * data, int l) { int i; + (void)d; printf("data : "); for(i=0;i<l;i++) putchar(data[i]); @@ -47,7 +46,7 @@ void burptest(const char * buffer, int bufsize) struct IGDdatas data; struct xmlparser parser; /*objet IGDdatas */ - bzero(&data, sizeof(struct IGDdatas)); + memset(&data, 0, sizeof(struct IGDdatas)); /* objet xmlparser */ parser.xmlstart = buffer; parser.xmlsize = bufsize; @@ -57,9 +56,11 @@ void burptest(const char * buffer, int bufsize) parser.datafunc = printdata; */ parser.starteltfunc = IGDstartelt; parser.endeltfunc = IGDendelt; - parser.datafunc = IGDdata; + parser.datafunc = IGDdata; parsexml(&parser); +#ifdef DEBUG printIGD(&data); +#endif /* DEBUG */ } /* ----- main ---- */ diff --git a/libs/miniupnpc/src/testportlistingparse.c b/libs/miniupnpc/src/testportlistingparse.c new file mode 100644 index 0000000000..bd9247dca7 --- /dev/null +++ b/libs/miniupnpc/src/testportlistingparse.c @@ -0,0 +1,151 @@ +/* $Id: testportlistingparse.c,v 1.2 2014/11/01 10:37:32 nanard Exp $ */ +/* Project : miniupnp + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * Author : Thomas Bernard + * Copyright (c) 2014 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ + +#include <string.h> +#include <stdio.h> +#include "portlistingparse.h" + +struct port_mapping { + unsigned int leasetime; + unsigned short externalport; + unsigned short internalport; + const char * remotehost; + const char * client; + const char * proto; + const char * desc; + unsigned char enabled; +}; + +/* return the number of differences */ +int test(const char * portListingXml, int portListingXmlLen, + const struct port_mapping * ref, int count) +{ + int i; + int r = 0; + struct PortMappingParserData data; + struct PortMapping * pm; + + memset(&data, 0, sizeof(data)); + ParsePortListing(portListingXml, portListingXmlLen, &data); + for(i = 0, pm = data.l_head; + (pm != NULL) && (i < count); + i++, pm = pm->l_next) { + printf("%2d %s %5hu->%s:%-5hu '%s' '%s' %u\n", + i, pm->protocol, pm->externalPort, pm->internalClient, + pm->internalPort, + pm->description, pm->remoteHost, + (unsigned)pm->leaseTime); + if(0 != strcmp(pm->protocol, ref[i].proto)) { + printf("protocol : '%s' != '%s'\n", pm->protocol, ref[i].proto); + r++; + } + if(pm->externalPort != ref[i].externalport) { + printf("externalPort : %hu != %hu\n", + pm->externalPort, ref[i].externalport); + r++; + } + if(0 != strcmp(pm->internalClient, ref[i].client)) { + printf("client : '%s' != '%s'\n", + pm->internalClient, ref[i].client); + r++; + } + if(pm->internalPort != ref[i].internalport) { + printf("internalPort : %hu != %hu\n", + pm->internalPort, ref[i].internalport); + r++; + } + if(0 != strcmp(pm->description, ref[i].desc)) { + printf("description : '%s' != '%s'\n", + pm->description, ref[i].desc); + r++; + } + if(0 != strcmp(pm->remoteHost, ref[i].remotehost)) { + printf("remoteHost : '%s' != '%s'\n", + pm->remoteHost, ref[i].remotehost); + r++; + } + if((unsigned)pm->leaseTime != ref[i].leasetime) { + printf("leaseTime : %u != %u\n", + (unsigned)pm->leaseTime, ref[i].leasetime); + r++; + } + if(pm->enabled != ref[i].enabled) { + printf("enabled : %d != %d\n", + (int)pm->enabled, (int)ref[i].enabled); + r++; + } + } + if((i != count) || (pm != NULL)) { + printf("count mismatch : i=%d count=%d pm=%p\n", i, count, pm); + r++; + } + FreePortListing(&data); + return r; +} + +const char test_document[] = +"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +"<p:PortMappingList xmlns:p=\"urn:schemas-upnp-org:gw:WANIPConnection\"\n" +"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n" +"xsi:schemaLocation=\"urn:schemas-upnp-org:gw:WANIPConnection " +"http://www.upnp.org/schemas/gw/WANIPConnection-v2.xsd\">\n" +" <p:PortMappingEntry>\n" +" <p:NewRemoteHost></p:NewRemoteHost>\n" +" <p:NewExternalPort>5002</p:NewExternalPort>\n" +" <p:NewProtocol>UDP</p:NewProtocol>\n" +" <p:NewInternalPort>4001</p:NewInternalPort>\n" +" <p:NewInternalClient>192.168.1.123</p:NewInternalClient>\n" +" <p:NewEnabled>1</p:NewEnabled>\n" +" <p:NewDescription>xxx</p:NewDescription>\n" +" <p:NewLeaseTime>0</p:NewLeaseTime>\n" +" </p:PortMappingEntry>\n" +" <p:PortMappingEntry>\n" +" <p:NewRemoteHost>202.233.2.1</p:NewRemoteHost>\n" +" <p:NewExternalPort>2345</p:NewExternalPort>\n" +" <p:NewProtocol>TCP</p:NewProtocol>\n" +" <p:NewInternalPort>2349</p:NewInternalPort>\n" +" <p:NewInternalClient>192.168.1.137</p:NewInternalClient>\n" +" <p:NewEnabled>1</p:NewEnabled>\n" +" <p:NewDescription>dooom</p:NewDescription>\n" +" <p:NewLeaseTime>346</p:NewLeaseTime>\n" +" </p:PortMappingEntry>\n" +" <p:PortMappingEntry>\n" +" <p:NewRemoteHost>134.231.2.11</p:NewRemoteHost>\n" +" <p:NewExternalPort>12345</p:NewExternalPort>\n" +" <p:NewProtocol>TCP</p:NewProtocol>\n" +" <p:NewInternalPort>12345</p:NewInternalPort>\n" +" <p:NewInternalClient>192.168.1.137</p:NewInternalClient>\n" +" <p:NewEnabled>1</p:NewEnabled>\n" +" <p:NewDescription>dooom A</p:NewDescription>\n" +" <p:NewLeaseTime>347</p:NewLeaseTime>\n" +" </p:PortMappingEntry>\n" +"</p:PortMappingList>"; + +#define PORT_MAPPINGS_COUNT 3 +const struct port_mapping port_mappings[PORT_MAPPINGS_COUNT] = { +{347, 12345, 12345, "134.231.2.11", "192.168.1.137", "TCP", "dooom A", 1}, +{346, 2345, 2349, "202.233.2.1", "192.168.1.137", "TCP", "dooom", 1}, +{0, 5002, 4001, "", "192.168.1.123", "UDP", "xxx", 1} +}; + +/* --- main --- */ +int main(void) +{ + int r; + r = test(test_document, sizeof(test_document) - 1, + port_mappings, PORT_MAPPINGS_COUNT); + if(r == 0) { + printf("test of portlistingparse OK\n"); + return 0; + } else { + printf("test FAILED (%d differences counted)\n", r); + return 1; + } +} + diff --git a/libs/miniupnpc/src/testupnpreplyparse.c b/libs/miniupnpc/src/testupnpreplyparse.c new file mode 100644 index 0000000000..ed3c3fe0df --- /dev/null +++ b/libs/miniupnpc/src/testupnpreplyparse.c @@ -0,0 +1,115 @@ +/* $Id: testupnpreplyparse.c,v 1.5 2017/12/12 11:18:46 nanard Exp $ */ +/* MiniUPnP project + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * (c) 2006-2017 Thomas Bernard + * This software is subject to the conditions detailed + * in the LICENCE file provided within the distribution */ +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include "upnpreplyparse.h" + +int +test_parsing(const char * buf, int len, FILE * f) +{ + char line[1024]; + struct NameValueParserData pdata; + int ok = 1; + ParseNameValue(buf, len, &pdata); + /* check result */ + if(f != NULL) + { + while(fgets(line, sizeof(line), f)) + { + char * value; + char * equal; + char * parsedvalue; + int l; + l = strlen(line); + while((l > 0) && ((line[l-1] == '\r') || (line[l-1] == '\n'))) + line[--l] = '\0'; + /* skip empty lines */ + if(l == 0) + continue; + equal = strchr(line, '='); + if(equal == NULL) + { + fprintf(stderr, "Warning, line does not contain '=' : %s\n", line); + continue; + } + *equal = '\0'; + value = equal + 1; + parsedvalue = GetValueFromNameValueList(&pdata, line); + if((parsedvalue == NULL) || (strcmp(parsedvalue, value) != 0)) + { + fprintf(stderr, "Element <%s> : expecting value '%s', got '%s'\n", + line, value, parsedvalue ? parsedvalue : "<null string>"); + ok = 0; + } + } + } + ClearNameValueList(&pdata); + return ok; +} + +int main(int argc, char * * argv) +{ + FILE * f; + char * buffer; + long l; + int ok; + + if(argc<2) + { + fprintf(stderr, "Usage: %s file.xml [file.namevalues]\n", argv[0]); + return 1; + } + f = fopen(argv[1], "r"); + if(!f) + { + fprintf(stderr, "Error : can not open file %s\n", argv[1]); + return 2; + } + if(fseek(f, 0, SEEK_END) < 0) { + perror("fseek"); + return 1; + } + l = (int)ftell(f); + if(l < 0) { + perror("ftell"); + return 1; + } + if(fseek(f, 0, SEEK_SET) < 0) { + perror("fseek"); + return 1; + } + buffer = malloc(l + 1); + if(buffer == NULL) { + fprintf(stderr, "Error: failed to allocate %ld bytes\n", l+1); + return 1; + } + l = fread(buffer, 1, l, f); + fclose(f); + f = NULL; + buffer[l] = '\0'; + if(argc > 2) + { + f = fopen(argv[2], "r"); + if(!f) + { + fprintf(stderr, "Error : can not open file %s\n", argv[2]); + return 2; + } + } +#ifdef DEBUG + DisplayNameValueList(buffer, l); +#endif + ok = test_parsing(buffer, l, f); + if(f) + { + fclose(f); + } + free(buffer); + return ok ? 0 : 3; +} + diff --git a/libs/miniupnpc/upnpc.c b/libs/miniupnpc/src/upnpc.c similarity index 59% rename from libs/miniupnpc/upnpc.c rename to libs/miniupnpc/src/upnpc.c index b136d9d1ff..23bb27830b 100644 --- a/libs/miniupnpc/upnpc.c +++ b/libs/miniupnpc/src/upnpc.c @@ -1,7 +1,7 @@ -/* $Id: upnpc.c,v 1.88 2011/06/17 23:31:01 nanard Exp $ */ +/* $Id: upnpc.c,v 1.134 2023/06/11 23:23:10 nanard Exp $ */ /* Project : miniupnp * Author : Thomas Bernard - * Copyright (c) 2005-2011 Thomas Bernard + * Copyright (c) 2005-2023 Thomas Bernard * This software is subject to the conditions detailed in the * LICENCE file provided in this distribution. */ @@ -9,16 +9,22 @@ #include <stdlib.h> #include <string.h> #include <time.h> -#ifdef WIN32 +#ifdef _WIN32 #include <winsock2.h> -#define snprintf _snprintf +#include "win32_snprintf.h" +#else +/* for IPPROTO_TCP / IPPROTO_UDP */ +#include <netinet/in.h> #endif +#include <ctype.h> #include "miniwget.h" #include "miniupnpc.h" #include "upnpcommands.h" +#include "portlistingparse.h" #include "upnperrors.h" +#include "miniupnpcstrings.h" -/* protofix() checks if protocol is "UDP" or "TCP" +/* protofix() checks if protocol is "UDP" or "TCP" * returns NULL if not */ const char * protofix(const char * proto) { @@ -26,7 +32,7 @@ const char * protofix(const char * proto) static const char proto_udp[4] = { 'U', 'D', 'P', 0}; int i, b; for(i=0, b=1; i<4; i++) - b = b && ( (proto[i] == proto_tcp[i]) + b = b && ( (proto[i] == proto_tcp[i]) || (proto[i] == (proto_tcp[i] | 32)) ); if(b) return proto_tcp; @@ -38,6 +44,22 @@ const char * protofix(const char * proto) return 0; } +/* is_int() checks if parameter is an integer or not + * 1 for integer + * 0 for not an integer */ +int is_int(char const* s) +{ + if(s == NULL) + return 0; + while(*s) { + /* #define isdigit(c) ((c) >= '0' && (c) <= '9') */ + if(!isdigit(*s)) + return 0; + s++; + } + return 1; +} + static void DisplayInfos(struct UPNPUrls * urls, struct IGDdatas * data) { @@ -45,48 +67,55 @@ static void DisplayInfos(struct UPNPUrls * urls, char connectionType[64]; char status[64]; char lastconnerr[64]; - unsigned int uptime; + unsigned int uptime = 0; unsigned int brUp, brDown; time_t timenow, timestarted; int r; - UPNP_GetConnectionTypeInfo(urls->controlURL, - data->first.servicetype, - connectionType); - if(connectionType[0]) + if(UPNP_GetConnectionTypeInfo(urls->controlURL, + data->first.servicetype, + connectionType) != UPNPCOMMAND_SUCCESS) + printf("GetConnectionTypeInfo failed.\n"); + else printf("Connection Type : %s\n", connectionType); + if(UPNP_GetStatusInfo(urls->controlURL, data->first.servicetype, + status, &uptime, lastconnerr) != UPNPCOMMAND_SUCCESS) + printf("GetStatusInfo failed.\n"); else - printf("GetConnectionTypeInfo failed.\n"); - UPNP_GetStatusInfo(urls->controlURL, data->first.servicetype, - status, &uptime, lastconnerr); - printf("Status : %s, uptime=%us, LastConnectionError : %s\n", - status, uptime, lastconnerr); - timenow = time(NULL); - timestarted = timenow - uptime; - printf(" Time started : %s", ctime(×tarted)); - UPNP_GetLinkLayerMaxBitRates(urls->controlURL_CIF, data->CIF.servicetype, - &brDown, &brUp); - printf("MaxBitRateDown : %u bps", brDown); - if(brDown >= 1000000) { - printf(" (%u.%u Mbps)", brDown / 1000000, (brDown / 100000) % 10); - } else if(brDown >= 1000) { - printf(" (%u Kbps)", brDown / 1000); - } - printf(" MaxBitRateUp %u bps", brUp); - if(brUp >= 1000000) { - printf(" (%u.%u Mbps)", brUp / 1000000, (brUp / 100000) % 10); - } else if(brUp >= 1000) { - printf(" (%u Kbps)", brUp / 1000); - } - printf("\n"); + printf("Status : %s, uptime=%us, LastConnectionError : %s\n", + status, uptime, lastconnerr); + if(uptime > 0) { + timenow = time(NULL); + timestarted = timenow - uptime; + printf(" Time started : %s", ctime(×tarted)); + } + if(UPNP_GetLinkLayerMaxBitRates(urls->controlURL_CIF, data->CIF.servicetype, + &brDown, &brUp) != UPNPCOMMAND_SUCCESS) { + printf("GetLinkLayerMaxBitRates failed.\n"); + } else { + printf("MaxBitRateDown : %u bps", brDown); + if(brDown >= 1000000) { + printf(" (%u.%u Mbps)", brDown / 1000000, (brDown / 100000) % 10); + } else if(brDown >= 1000) { + printf(" (%u Kbps)", brDown / 1000); + } + printf(" MaxBitRateUp %u bps", brUp); + if(brUp >= 1000000) { + printf(" (%u.%u Mbps)", brUp / 1000000, (brUp / 100000) % 10); + } else if(brUp >= 1000) { + printf(" (%u Kbps)", brUp / 1000); + } + printf("\n"); + } r = UPNP_GetExternalIPAddress(urls->controlURL, data->first.servicetype, externalIPAddress); - if(r != UPNPCOMMAND_SUCCESS) - printf("GetExternalIPAddress() returned %d\n", r); - if(externalIPAddress[0]) + if(r != UPNPCOMMAND_SUCCESS) { + printf("GetExternalIPAddress failed. (errorcode=%d)\n", r); + } else if(!externalIPAddress[0]) { + printf("GetExternalIPAddress failed. (empty string)\n"); + } else { printf("ExternalIPAddress = %s\n", externalIPAddress); - else - printf("GetExternalIPAddress failed.\n"); + } } static void GetConnectionStatus(struct UPNPUrls * urls, @@ -106,7 +135,7 @@ static void ListRedirections(struct UPNPUrls * urls, struct IGDdatas * data) { int r; - int i = 0; + unsigned short i = 0; char index[6]; char intClient[40]; char intPort[6]; @@ -119,8 +148,9 @@ static void ListRedirections(struct UPNPUrls * urls, /*unsigned int num=0; UPNP_GetPortMappingNumberOfEntries(urls->controlURL, data->servicetype, &num); printf("PortMappingNumberOfEntries : %u\n", num);*/ + printf(" i protocol exPort->inAddr:inPort description remoteHost leaseTime\n"); do { - snprintf(index, 6, "%d", i); + snprintf(index, 6, "%hu", i); rHost[0] = '\0'; enabled[0] = '\0'; duration[0] = '\0'; desc[0] = '\0'; extPort[0] = '\0'; intPort[0] = '\0'; intClient[0] = '\0'; @@ -132,20 +162,19 @@ static void ListRedirections(struct UPNPUrls * urls, rHost, duration); if(r==0) /* - printf("%02d - %s %s->%s:%s\tenabled=%s leaseDuration=%s\n" + printf("%02hu - %s %s->%s:%s\tenabled=%s leaseDuration=%s\n" " desc='%s' rHost='%s'\n", i, protocol, extPort, intClient, intPort, enabled, duration, desc, rHost); */ - printf("%2d %s %5s->%s:%-5s '%s' '%s' %s\n", + printf("%2hu %s %5s->%s:%-5s '%s' '%s' %s\n", i, protocol, extPort, intClient, intPort, desc, rHost, duration); else printf("GetGenericPortMappingEntry() returned %d (%s)\n", r, strupnperror(r)); - i++; - } while(r==0); + } while(r == 0 && i++ < 65535); } static void NewListRedirections(struct UPNPUrls * urls, @@ -159,14 +188,15 @@ static void NewListRedirections(struct UPNPUrls * urls, memset(&pdata, 0, sizeof(struct PortMappingParserData)); r = UPNP_GetListOfPortMappings(urls->controlURL, data->first.servicetype, - "0", + "1", "65535", "TCP", "1000", &pdata); if(r == UPNPCOMMAND_SUCCESS) { - for(pm = pdata.head.lh_first; pm != NULL; pm = pm->entries.le_next) + printf(" i protocol exPort->inAddr:inPort description remoteHost leaseTime\n"); + for(pm = pdata.l_head; pm != NULL; pm = pm->l_next) { printf("%2d %s %5hu->%s:%-5hu '%s' '%s' %u\n", i, pm->protocol, pm->externalPort, pm->internalClient, @@ -184,14 +214,14 @@ static void NewListRedirections(struct UPNPUrls * urls, } r = UPNP_GetListOfPortMappings(urls->controlURL, data->first.servicetype, - "0", + "1", "65535", "UDP", "1000", &pdata); if(r == UPNPCOMMAND_SUCCESS) { - for(pm = pdata.head.lh_first; pm != NULL; pm = pm->entries.le_next) + for(pm = pdata.l_head; pm != NULL; pm = pm->l_next) { printf("%2d %s %5hu->%s:%-5hu '%s' '%s' %u\n", i, pm->protocol, pm->externalPort, pm->internalClient, @@ -209,87 +239,145 @@ static void NewListRedirections(struct UPNPUrls * urls, } } -/* Test function +/* Test function * 1 - get connection type * 2 - get extenal ip address * 3 - Add port mapping * 4 - get this port mapping from the IGD */ -static void SetRedirectAndTest(struct UPNPUrls * urls, - struct IGDdatas * data, - const char * iaddr, - const char * iport, - const char * eport, - const char * proto, - const char * leaseDuration) +static int SetRedirectAndTest(struct UPNPUrls * urls, + struct IGDdatas * data, + const char * iaddr, + const char * iport, + const char * eport, + const char * proto, + const char * leaseDuration, + const char * remoteHost, + const char * description, + int addAny) { char externalIPAddress[40]; char intClient[40]; char intPort[6]; + char reservedPort[6]; char duration[16]; int r; if(!iaddr || !iport || !eport || !proto) { fprintf(stderr, "Wrong arguments\n"); - return; + return -1; } proto = protofix(proto); if(!proto) { fprintf(stderr, "invalid protocol\n"); - return; + return -1; } - - UPNP_GetExternalIPAddress(urls->controlURL, - data->first.servicetype, - externalIPAddress); - if(externalIPAddress[0]) - printf("ExternalIPAddress = %s\n", externalIPAddress); - else - printf("GetExternalIPAddress failed.\n"); - - r = UPNP_AddPortMapping(urls->controlURL, data->first.servicetype, - eport, iport, iaddr, 0, proto, 0, leaseDuration); + + r = UPNP_GetExternalIPAddress(urls->controlURL, + data->first.servicetype, + externalIPAddress); if(r!=UPNPCOMMAND_SUCCESS) - printf("AddPortMapping(%s, %s, %s) failed with code %d (%s)\n", - eport, iport, iaddr, r, strupnperror(r)); + printf("GetExternalIPAddress failed.\n"); + else + printf("ExternalIPAddress = %s\n", externalIPAddress); + + if (addAny) { + r = UPNP_AddAnyPortMapping(urls->controlURL, data->first.servicetype, + eport, iport, iaddr, description, + proto, remoteHost, leaseDuration, reservedPort); + if(r==UPNPCOMMAND_SUCCESS) + eport = reservedPort; + else + printf("AddAnyPortMapping(%s, %s, %s) failed with code %d (%s)\n", + eport, iport, iaddr, r, strupnperror(r)); + } else { + r = UPNP_AddPortMapping(urls->controlURL, data->first.servicetype, + eport, iport, iaddr, description, + proto, remoteHost, leaseDuration); + if(r!=UPNPCOMMAND_SUCCESS) { + printf("AddPortMapping(%s, %s, %s) failed with code %d (%s)\n", + eport, iport, iaddr, r, strupnperror(r)); + return -2; + } + } r = UPNP_GetSpecificPortMappingEntry(urls->controlURL, - data->first.servicetype, - eport, proto, - intClient, intPort, NULL/*desc*/, - NULL/*enabled*/, duration); - if(r!=UPNPCOMMAND_SUCCESS) + data->first.servicetype, + eport, proto, remoteHost, + intClient, intPort, NULL/*desc*/, + NULL/*enabled*/, duration); + if(r!=UPNPCOMMAND_SUCCESS) { printf("GetSpecificPortMappingEntry() failed with code %d (%s)\n", r, strupnperror(r)); - - if(intClient[0]) { + return -2; + } else { printf("InternalIP:Port = %s:%s\n", intClient, intPort); printf("external %s:%s %s is redirected to internal %s:%s (duration=%s)\n", externalIPAddress, eport, proto, intClient, intPort, duration); } + return 0; } -static void +static int RemoveRedirect(struct UPNPUrls * urls, struct IGDdatas * data, - const char * eport, - const char * proto) + const char * eport, + const char * proto, + const char * remoteHost) { int r; if(!proto || !eport) { fprintf(stderr, "invalid arguments\n"); - return; + return -1; } proto = protofix(proto); if(!proto) { fprintf(stderr, "protocol invalid\n"); - return; + return -1; } - r = UPNP_DeletePortMapping(urls->controlURL, data->first.servicetype, eport, proto, 0); - printf("UPNP_DeletePortMapping() returned : %d\n", r); + r = UPNP_DeletePortMapping(urls->controlURL, data->first.servicetype, eport, proto, remoteHost); + if(r!=UPNPCOMMAND_SUCCESS) { + printf("UPNP_DeletePortMapping() failed with code : %d\n", r); + return -2; + }else { + printf("UPNP_DeletePortMapping() returned : %d\n", r); + } + return 0; +} + +static int +RemoveRedirectRange(struct UPNPUrls * urls, + struct IGDdatas * data, + const char * ePortStart, char const * ePortEnd, + const char * proto, const char * manage) +{ + int r; + + if (!manage) + manage = "0"; + + if(!proto || !ePortStart || !ePortEnd) + { + fprintf(stderr, "invalid arguments\n"); + return -1; + } + proto = protofix(proto); + if(!proto) + { + fprintf(stderr, "protocol invalid\n"); + return -1; + } + r = UPNP_DeletePortMappingRange(urls->controlURL, data->first.servicetype, ePortStart, ePortEnd, proto, manage); + if(r!=UPNPCOMMAND_SUCCESS) { + printf("UPNP_DeletePortMappingRange() failed with code : %d\n", r); + return -2; + }else { + printf("UPNP_DeletePortMappingRange() returned : %d\n", r); + } + return 0; } /* IGD:2, functions for service WANIPv6FirewallControl:1 */ @@ -301,7 +389,7 @@ static void GetFirewallStatus(struct UPNPUrls * urls, struct IGDdatas * data) UPNP_GetFirewallStatus(urls->controlURL_6FC, data->IPv6FC.servicetype, &firewallEnabled, &inboundPinholeAllowed); printf("FirewallEnabled: %d & Inbound Pinhole Allowed: %d\n", firewallEnabled, inboundPinholeAllowed); printf("GetFirewallStatus:\n Firewall Enabled: %s\n Inbound Pinhole Allowed: %s\n", (firewallEnabled)? "Yes":"No", (inboundPinholeAllowed)? "Yes":"No"); - + bytessent = UPNP_GetTotalBytesSent(urls->controlURL_CIF, data->CIF.servicetype); bytesreceived = UPNP_GetTotalBytesReceived(urls->controlURL_CIF, data->CIF.servicetype); packetssent = UPNP_GetTotalPacketsSent(urls->controlURL_CIF, data->CIF.servicetype); @@ -310,7 +398,7 @@ static void GetFirewallStatus(struct UPNPUrls * urls, struct IGDdatas * data) printf("Packets: Sent: %8u\tRecv: %8u\n", packetssent, packetsreceived); } -/* Test function +/* Test function * 1 - Add pinhole * 2 - Check if pinhole is working from the IGD side */ static void SetPinholeAndTest(struct UPNPUrls * urls, struct IGDdatas * data, @@ -319,27 +407,43 @@ static void SetPinholeAndTest(struct UPNPUrls * urls, struct IGDdatas * data, const char * proto, const char * lease_time) { char uniqueID[8]; - //int isWorking = 0; + /*int isWorking = 0;*/ int r; + char proto_tmp[8]; if(!intaddr || !remoteaddr || !iport || !eport || !proto || !lease_time) { fprintf(stderr, "Wrong arguments\n"); return; } - /*proto = protofix(proto); - if(!proto) + if(atoi(proto) == 0) { - fprintf(stderr, "invalid protocol\n"); - return; - }*/ + const char * protocol; + protocol = protofix(proto); + if(protocol && (strcmp("TCP", protocol) == 0)) + { + snprintf(proto_tmp, sizeof(proto_tmp), "%d", IPPROTO_TCP); + proto = proto_tmp; + } + else if(protocol && (strcmp("UDP", protocol) == 0)) + { + snprintf(proto_tmp, sizeof(proto_tmp), "%d", IPPROTO_UDP); + proto = proto_tmp; + } + else + { + fprintf(stderr, "invalid protocol\n"); + return; + } + } r = UPNP_AddPinhole(urls->controlURL_6FC, data->IPv6FC.servicetype, remoteaddr, eport, intaddr, iport, proto, lease_time, uniqueID); if(r!=UPNPCOMMAND_SUCCESS) printf("AddPinhole([%s]:%s -> [%s]:%s) failed with code %d (%s)\n", - intaddr, iport, remoteaddr, eport, r, strupnperror(r)); + remoteaddr, eport, intaddr, iport, r, strupnperror(r)); else { - printf("AddPinhole: ([%s]:%s -> [%s]:%s) / Pinhole ID = %s\n", intaddr, iport, remoteaddr, eport, uniqueID); + printf("AddPinhole: ([%s]:%s -> [%s]:%s) / Pinhole ID = %s\n", + remoteaddr, eport, intaddr, iport, uniqueID); /*r = UPNP_CheckPinholeWorking(urls->controlURL_6FC, data->servicetype_6FC, uniqueID, &isWorking); if(r!=UPNPCOMMAND_SUCCESS) printf("CheckPinholeWorking() failed with code %d (%s)\n", r, strupnperror(r)); @@ -361,11 +465,20 @@ static void GetPinholeAndUpdate(struct UPNPUrls * urls, struct IGDdatas * data, fprintf(stderr, "Wrong arguments\n"); return; } + /* CheckPinholeWorking is an Optional Action, error 602 should be + * returned if it is not implemented */ r = UPNP_CheckPinholeWorking(urls->controlURL_6FC, data->IPv6FC.servicetype, uniqueID, &isWorking); - printf("CheckPinholeWorking: Pinhole ID = %s / IsWorking = %s\n", uniqueID, (isWorking)? "Yes":"No"); - if(r!=UPNPCOMMAND_SUCCESS) - printf("CheckPinholeWorking() failed with code %d (%s)\n", r, strupnperror(r)); - if(isWorking || r==709) + if(r==UPNPCOMMAND_SUCCESS) + printf("CheckPinholeWorking: Pinhole ID = %s / IsWorking = %s\n", uniqueID, (isWorking)? "Yes":"No"); + else + printf("CheckPinholeWorking(%s) failed with code %d (%s)\n", uniqueID, r, strupnperror(r)); + /* 702 FirewallDisabled Firewall is disabled and this action is disabled + * 703 InboundPinholeNotAllowed Creation of inbound pinholes by UPnP CPs + * are not allowed and this action is disabled + * 704 NoSuchEntry There is no pinhole with the specified UniqueID. + * 709 NoTrafficReceived No traffic corresponding to this pinhole has + * been received by the gateway. */ + if(isWorking || (r!=702 && r!=703 && r!=704)) { r = UPNP_UpdatePinhole(urls->controlURL_6FC, data->IPv6FC.servicetype, uniqueID, lease_time); printf("UpdatePinhole: Pinhole ID = %s with Lease Time: %s\n", uniqueID, lease_time); @@ -374,7 +487,7 @@ static void GetPinholeAndUpdate(struct UPNPUrls * urls, struct IGDdatas * data, } } -/* Test function +/* Test function * Get pinhole timeout */ static void GetPinholeOutboundTimeout(struct UPNPUrls * urls, struct IGDdatas * data, @@ -455,16 +568,20 @@ int main(int argc, char ** argv) char ** commandargv = 0; int commandargc = 0; struct UPNPDev * devlist = 0; - char lanaddr[64]; /* my ip address on the LAN */ + char lanaddr[64] = "unset"; /* my ip address on the LAN */ int i; const char * rootdescurl = 0; const char * multicastif = 0; const char * minissdpdpath = 0; + int localport = UPNP_LOCAL_PORT_ANY; int retcode = 0; int error = 0; int ipv6 = 0; + int ignore = 0; + unsigned char ttl = 2; /* defaulting to 2 */ + const char * description = 0; -#ifdef WIN32 +#ifdef _WIN32 WSADATA wsaData; int nResult = WSAStartup(MAKEWORD(2,2), &wsaData); if(nResult != NO_ERROR) @@ -473,22 +590,49 @@ int main(int argc, char ** argv) return -1; } #endif - printf("upnpc : miniupnpc library test client. (c) 2006-2011 Thomas Bernard\n"); - printf("Go to http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/\n" + printf("upnpc : miniupnpc library test client, version %s.\n", MINIUPNPC_VERSION_STRING); + printf(" (c) 2005-2023 Thomas Bernard.\n"); + printf("Go to http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/\n" "for more information.\n"); /* command line processing */ for(i=1; i<argc; i++) { + if(0 == strcmp(argv[i], "--help") || 0 == strcmp(argv[i], "-h")) + { + command = 0; + break; + } if(argv[i][0] == '-') { if(argv[i][1] == 'u') rootdescurl = argv[++i]; else if(argv[i][1] == 'm') + { multicastif = argv[++i]; + minissdpdpath = ""; /* Disable usage of minissdpd */ + } + else if(argv[i][1] == 'z') + { + char junk; + if(sscanf(argv[++i], "%d%c", &localport, &junk)!=1 || + localport<0 || localport>65535 || + (localport >1 && localport < 1024)) + { + fprintf(stderr, "Invalid localport '%s'\n", argv[i]); + localport = UPNP_LOCAL_PORT_ANY; + break; + } + } else if(argv[i][1] == 'p') minissdpdpath = argv[++i]; else if(argv[i][1] == '6') ipv6 = 1; + else if(argv[i][1] == 'e') + description = argv[++i]; + else if(argv[i][1] == 't') + ttl = (unsigned char)atoi(argv[++i]); + else if(argv[i][1] == 'i') + ignore = 1; else { command = argv[i][1]; @@ -504,19 +648,22 @@ int main(int argc, char ** argv) } } - if(!command || (command == 'a' && commandargc<4) + if(!command + || (command == 'a' && commandargc<4) || (command == 'd' && argc<2) || (command == 'r' && argc<2) || (command == 'A' && commandargc<6) || (command == 'U' && commandargc<2) || (command == 'D' && commandargc<1)) { - fprintf(stderr, "Usage :\t%s [options] -a ip port external_port protocol [duration]\n\t\tAdd port redirection\n", argv[0]); - fprintf(stderr, " \t%s [options] -d external_port protocol [port2 protocol2] [...]\n\t\tDelete port redirection\n", argv[0]); + fprintf(stderr, "Usage :\t%s [options] -a ip port external_port protocol [duration] [remote host]\n\t\tAdd port redirection\n", argv[0]); + fprintf(stderr, " \t%s [options] -d external_port protocol [remote host]\n\t\tDelete port redirection\n", argv[0]); fprintf(stderr, " \t%s [options] -s\n\t\tGet Connection status\n", argv[0]); fprintf(stderr, " \t%s [options] -l\n\t\tList redirections\n", argv[0]); - fprintf(stderr, " \t%s [options] -L\n\t\tList redirections (using GetListOfPortMappings, IGD v2)\n", argv[0]); - fprintf(stderr, " \t%s [options] -r port1 protocol1 [port2 protocol2] [...]\n\t\tAdd all redirections to the current host\n", argv[0]); + fprintf(stderr, " \t%s [options] -L\n\t\tList redirections (using GetListOfPortMappings (for IGD:2 only)\n", argv[0]); + fprintf(stderr, " \t%s [options] -n ip port external_port protocol [duration] [remote host]\n\t\tAdd (any) port redirection allowing IGD to use alternative external_port (for IGD:2 only)\n", argv[0]); + fprintf(stderr, " \t%s [options] -N external_port_start external_port_end protocol [manage]\n\t\tDelete range of port redirections (for IGD:2 only)\n", argv[0]); + fprintf(stderr, " \t%s [options] -r port1 [external_port1] protocol1 [port2 [external_port2] protocol2] [...]\n\t\tAdd all redirections to the current host\n", argv[0]); fprintf(stderr, " \t%s [options] -A remote_ip remote_port internal_ip internal_port protocol lease_time\n\t\tAdd Pinhole (for IGD:2 only)\n", argv[0]); fprintf(stderr, " \t%s [options] -U uniqueID new_lease_time\n\t\tUpdate Pinhole (for IGD:2 only)\n", argv[0]); fprintf(stderr, " \t%s [options] -C uniqueID\n\t\tCheck if Pinhole is Working (for IGD:2 only)\n", argv[0]); @@ -526,17 +673,22 @@ int main(int argc, char ** argv) fprintf(stderr, " \t%s [options] -G remote_ip remote_port internal_ip internal_port protocol\n\t\tGet Outbound Pinhole Timeout (for IGD:2 only)\n", argv[0]); fprintf(stderr, " \t%s [options] -P\n\t\tGet Presentation url\n", argv[0]); fprintf(stderr, "\nprotocol is UDP or TCP\n"); + fprintf(stderr, "@ can be used in option -a, -n, -A and -G to represent local LAN address.\n"); fprintf(stderr, "Options:\n"); + fprintf(stderr, " -e description : set description for port mapping.\n"); fprintf(stderr, " -6 : use ip v6 instead of ip v4.\n"); fprintf(stderr, " -u url : bypass discovery process by providing the XML root description url.\n"); - fprintf(stderr, " -m address/interface : provide ip address (ip v4) or interface name (ip v6) to use for sending SSDP multicast packets.\n"); + fprintf(stderr, " -m address/interface : provide ip address (ip v4) or interface name (ip v4 or v6) to use for sending SSDP multicast packets.\n"); + fprintf(stderr, " -z localport : SSDP packets local (source) port (1024-65535).\n"); fprintf(stderr, " -p path : use this path for MiniSSDPd socket.\n"); + fprintf(stderr, " -t ttl : set multicast TTL. Default value is 2.\n"); + fprintf(stderr, " -i : ignore errors and try to use also disconnected IGD or non-IGD device.\n"); return 1; } if( rootdescurl || (devlist = upnpDiscover(2000, multicastif, minissdpdpath, - 0/*sameport*/, ipv6, &error))) + localport, ipv6, ttl, &error))) { struct UPNPDev * device; struct UPNPUrls urls; @@ -550,7 +702,7 @@ int main(int argc, char ** argv) device->descURL, device->st); } } - else + else if(!rootdescurl) { printf("upnpDiscover() error code=%d\n", error); } @@ -564,16 +716,18 @@ int main(int argc, char ** argv) break; case 2: printf("Found a (not connected?) IGD : %s\n", urls.controlURL); - printf("Trying to continue anyway\n"); + if (ignore) printf("Trying to continue anyway\n"); break; case 3: printf("UPnP device found. Is it an IGD ? : %s\n", urls.controlURL); - printf("Trying to continue anyway\n"); + if (ignore) printf("Trying to continue anyway\n"); break; default: printf("Found device (igd ?) : %s\n", urls.controlURL); - printf("Trying to continue anyway\n"); + if (ignore) printf("Trying to continue anyway\n"); } + if(i==1 || ignore) { + printf("Local LAN ip address : %s\n", lanaddr); #if 0 printf("getting \"%s\"\n", urls.ipcondescURL); @@ -585,6 +739,12 @@ int main(int argc, char ** argv) } #endif + /* replace '@' with the local LAN ip address */ + if ((command == 'a' || command == 'n') && 0 == strcmp(commandargv[0], "@")) + commandargv[0] = lanaddr; + else if ((command == 'A' || command == 'G') && 0 == strcmp(commandargv[2], "@")) + commandargv[2] = lanaddr; + switch(command) { case 'l': @@ -595,27 +755,65 @@ int main(int argc, char ** argv) NewListRedirections(&urls, &data); break; case 'a': - SetRedirectAndTest(&urls, &data, - commandargv[0], commandargv[1], - commandargv[2], commandargv[3], - (commandargc > 4)?commandargv[4]:"0"); + if (SetRedirectAndTest(&urls, &data, + commandargv[0], commandargv[1], + commandargv[2], commandargv[3], + (commandargc > 4) && is_int(commandargv[4]) ? commandargv[4] : "0", + (commandargc > 4) && !is_int(commandargv[4]) ? commandargv[4] : (commandargc > 5) ? commandargv[5] : NULL, + description, 0) < 0) + retcode = 2; break; case 'd': - for(i=0; i<commandargc; i+=2) - { - RemoveRedirect(&urls, &data, commandargv[i], commandargv[i+1]); - } + if (RemoveRedirect(&urls, &data, commandargv[0], commandargv[1], + commandargc > 2 ? commandargv[2] : NULL) < 0) + retcode = 2; + break; + case 'n': /* aNy */ + if (SetRedirectAndTest(&urls, &data, + commandargv[0], commandargv[1], + commandargv[2], commandargv[3], + (commandargc > 4) && is_int(commandargv[4]) ? commandargv[4] : "0", + (commandargc > 4) && !is_int(commandargv[4]) ? commandargv[4] : (commandargc > 5) ? commandargv[5] : NULL, + description, 1) < 0) + retcode = 2; + break; + case 'N': + if (commandargc < 3) + fprintf(stderr, "too few arguments\n"); + + if (RemoveRedirectRange(&urls, &data, commandargv[0], commandargv[1], commandargv[2], + commandargc > 3 ? commandargv[3] : NULL) < 0) + retcode = 2; break; case 's': GetConnectionStatus(&urls, &data); break; case 'r': - for(i=0; i<commandargc; i+=2) + i = 0; + while(i<commandargc) { - /*printf("port %s protocol %s\n", argv[i], argv[i+1]);*/ - SetRedirectAndTest(&urls, &data, - lanaddr, commandargv[i], - commandargv[i], commandargv[i+1], "0"); + if(!is_int(commandargv[i])) { + /* 1st parameter not an integer : error */ + fprintf(stderr, "command -r : %s is not an port number\n", commandargv[i]); + retcode = 1; + break; + } else if(is_int(commandargv[i+1])){ + /* 2nd parameter is an integer : <port> <external_port> <protocol> */ + if (SetRedirectAndTest(&urls, &data, + lanaddr, commandargv[i], + commandargv[i+1], commandargv[i+2], "0", NULL, + description, 0) < 0) + retcode = 2; + i+=3; /* 3 parameters parsed */ + } else { + /* 2nd parameter not an integer : <port> <protocol> */ + if (SetRedirectAndTest(&urls, &data, + lanaddr, commandargv[i], + commandargv[i], commandargv[i+1], "0", NULL, + description, 0) < 0) + retcode = 2; + i+=2; /* 2 parameters parsed */ + } } break; case 'A': @@ -664,6 +862,10 @@ int main(int argc, char ** argv) retcode = 1; } + } else { + fprintf(stderr, "No valid UPNP Internet Gateway Device found.\n"); + retcode = 1; + } FreeUPNPUrls(&urls); } else @@ -678,6 +880,12 @@ int main(int argc, char ** argv) fprintf(stderr, "No IGD UPnP Device found on the network !\n"); retcode = 1; } +#ifdef _WIN32 + nResult = WSACleanup(); + if(nResult != NO_ERROR) { + fprintf(stderr, "WSACleanup() failed.\n"); + } +#endif /* _WIN32 */ return retcode; } diff --git a/libs/miniupnpc/upnpcommands.c b/libs/miniupnpc/src/upnpcommands.c similarity index 79% rename from libs/miniupnpc/upnpcommands.c rename to libs/miniupnpc/src/upnpcommands.c index 1114759a0f..1e1ee6786f 100644 --- a/libs/miniupnpc/upnpcommands.c +++ b/libs/miniupnpc/src/upnpcommands.c @@ -1,7 +1,8 @@ -/* $Id: upnpcommands.c,v 1.37 2011/06/04 15:56:23 nanard Exp $ */ -/* Project : miniupnp +/* $Id: upnpcommands.c,v 1.51 2019/04/23 11:45:15 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * Project : miniupnp * Author : Thomas Bernard - * Copyright (c) 2005-2011 Thomas Bernard + * Copyright (c) 2005-2018 Thomas Bernard * This software is subject to the conditions detailed in the * LICENCE file provided in this distribution. * */ @@ -11,6 +12,7 @@ #include "upnpcommands.h" #include "miniupnpc.h" #include "portlistingparse.h" +#include "upnpreplyparse.h" static UNSIGNED_INTEGER my_atoui(const char * s) @@ -20,7 +22,7 @@ my_atoui(const char * s) /* * */ -LIBSPEC UNSIGNED_INTEGER +MINIUPNP_LIBSPEC UNSIGNED_INTEGER UPNP_GetTotalBytesSent(const char * controlURL, const char * servicetype) { @@ -31,11 +33,11 @@ UPNP_GetTotalBytesSent(const char * controlURL, char * p; if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype, "GetTotalBytesSent", 0, &bufsize))) { - return UPNPCOMMAND_HTTP_ERROR; + return (UNSIGNED_INTEGER)UPNPCOMMAND_HTTP_ERROR; } ParseNameValue(buffer, bufsize, &pdata); /*DisplayNameValueList(buffer, bufsize);*/ - free(buffer); buffer = NULL; + free(buffer); p = GetValueFromNameValueList(&pdata, "NewTotalBytesSent"); r = my_atoui(p); ClearNameValueList(&pdata); @@ -44,7 +46,7 @@ UPNP_GetTotalBytesSent(const char * controlURL, /* * */ -LIBSPEC UNSIGNED_INTEGER +MINIUPNP_LIBSPEC UNSIGNED_INTEGER UPNP_GetTotalBytesReceived(const char * controlURL, const char * servicetype) { @@ -55,11 +57,11 @@ UPNP_GetTotalBytesReceived(const char * controlURL, char * p; if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype, "GetTotalBytesReceived", 0, &bufsize))) { - return UPNPCOMMAND_HTTP_ERROR; + return (UNSIGNED_INTEGER)UPNPCOMMAND_HTTP_ERROR; } ParseNameValue(buffer, bufsize, &pdata); /*DisplayNameValueList(buffer, bufsize);*/ - free(buffer); buffer = NULL; + free(buffer); p = GetValueFromNameValueList(&pdata, "NewTotalBytesReceived"); r = my_atoui(p); ClearNameValueList(&pdata); @@ -68,7 +70,7 @@ UPNP_GetTotalBytesReceived(const char * controlURL, /* * */ -LIBSPEC UNSIGNED_INTEGER +MINIUPNP_LIBSPEC UNSIGNED_INTEGER UPNP_GetTotalPacketsSent(const char * controlURL, const char * servicetype) { @@ -79,11 +81,11 @@ UPNP_GetTotalPacketsSent(const char * controlURL, char * p; if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype, "GetTotalPacketsSent", 0, &bufsize))) { - return UPNPCOMMAND_HTTP_ERROR; + return (UNSIGNED_INTEGER)UPNPCOMMAND_HTTP_ERROR; } ParseNameValue(buffer, bufsize, &pdata); /*DisplayNameValueList(buffer, bufsize);*/ - free(buffer); buffer = NULL; + free(buffer); p = GetValueFromNameValueList(&pdata, "NewTotalPacketsSent"); r = my_atoui(p); ClearNameValueList(&pdata); @@ -92,7 +94,7 @@ UPNP_GetTotalPacketsSent(const char * controlURL, /* * */ -LIBSPEC UNSIGNED_INTEGER +MINIUPNP_LIBSPEC UNSIGNED_INTEGER UPNP_GetTotalPacketsReceived(const char * controlURL, const char * servicetype) { @@ -103,11 +105,11 @@ UPNP_GetTotalPacketsReceived(const char * controlURL, char * p; if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype, "GetTotalPacketsReceived", 0, &bufsize))) { - return UPNPCOMMAND_HTTP_ERROR; + return (UNSIGNED_INTEGER)UPNPCOMMAND_HTTP_ERROR; } ParseNameValue(buffer, bufsize, &pdata); /*DisplayNameValueList(buffer, bufsize);*/ - free(buffer); buffer = NULL; + free(buffer); p = GetValueFromNameValueList(&pdata, "NewTotalPacketsReceived"); r = my_atoui(p); ClearNameValueList(&pdata); @@ -116,10 +118,10 @@ UPNP_GetTotalPacketsReceived(const char * controlURL, /* UPNP_GetStatusInfo() call the corresponding UPNP method * returns the current status and uptime */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetStatusInfo(const char * controlURL, const char * servicetype, - char * status, + char * status, unsigned int * uptime, char * lastconnerror) { @@ -140,7 +142,7 @@ UPNP_GetStatusInfo(const char * controlURL, } ParseNameValue(buffer, bufsize, &pdata); /*DisplayNameValueList(buffer, bufsize);*/ - free(buffer); buffer = NULL; + free(buffer); up = GetValueFromNameValueList(&pdata, "NewUptime"); p = GetValueFromNameValueList(&pdata, "NewConnectionStatus"); err = GetValueFromNameValueList(&pdata, "NewLastConnectionError"); @@ -159,7 +161,7 @@ UPNP_GetStatusInfo(const char * controlURL, if(up) sscanf(up,"%u",uptime); else - uptime = 0; + *uptime = 0; } if(lastconnerror) { @@ -181,7 +183,7 @@ UPNP_GetStatusInfo(const char * controlURL, /* UPNP_GetConnectionTypeInfo() call the corresponding UPNP method * returns the connection type */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetConnectionTypeInfo(const char * controlURL, const char * servicetype, char * connectionType) @@ -200,7 +202,7 @@ UPNP_GetConnectionTypeInfo(const char * controlURL, return UPNPCOMMAND_HTTP_ERROR; } ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); p = GetValueFromNameValueList(&pdata, "NewConnectionType"); /*p = GetValueFromNameValueList(&pdata, "NewPossibleConnectionTypes");*/ /* PossibleConnectionTypes will have several values.... */ @@ -221,10 +223,10 @@ UPNP_GetConnectionTypeInfo(const char * controlURL, /* UPNP_GetLinkLayerMaxBitRate() call the corresponding UPNP method. * Returns 2 values: Downloadlink bandwidth and Uplink bandwidth. - * One of the values can be null - * Note : GetLinkLayerMaxBitRates belongs to WANPPPConnection:1 only + * One of the values can be null + * Note : GetLinkLayerMaxBitRates belongs to WANPPPConnection:1 only * We can use the GetCommonLinkProperties from WANCommonInterfaceConfig:1 */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetLinkLayerMaxBitRates(const char * controlURL, const char * servicetype, unsigned int * bitrateDown, @@ -249,7 +251,7 @@ UPNP_GetLinkLayerMaxBitRates(const char * controlURL, } /*DisplayNameValueList(buffer, bufsize);*/ ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); /*down = GetValueFromNameValueList(&pdata, "NewDownstreamMaxBitRate");*/ /*up = GetValueFromNameValueList(&pdata, "NewUpstreamMaxBitRate");*/ down = GetValueFromNameValueList(&pdata, "NewLayer1DownstreamMaxBitRate"); @@ -285,7 +287,7 @@ UPNP_GetLinkLayerMaxBitRates(const char * controlURL, /* UPNP_GetExternalIPAddress() call the corresponding UPNP method. * if the third arg is not null the value is copied to it. * at least 16 bytes must be available - * + * * Return values : * 0 : SUCCESS * NON ZERO : ERROR Either an UPnP error code or an unknown error. @@ -293,7 +295,7 @@ UPNP_GetLinkLayerMaxBitRates(const char * controlURL, * 402 Invalid Args - See UPnP Device Architecture section on Control. * 501 Action Failed - See UPnP Device Architecture section on Control. */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetExternalIPAddress(const char * controlURL, const char * servicetype, char * extIpAdd) @@ -313,7 +315,7 @@ UPNP_GetExternalIPAddress(const char * controlURL, } /*DisplayNameValueList(buffer, bufsize);*/ ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); /*printf("external ip = %s\n", GetValueFromNameValueList(&pdata, "NewExternalIPAddress") );*/ p = GetValueFromNameValueList(&pdata, "NewExternalIPAddress"); if(p) { @@ -333,15 +335,15 @@ UPNP_GetExternalIPAddress(const char * controlURL, return ret; } -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_AddPortMapping(const char * controlURL, const char * servicetype, - const char * extPort, - const char * inPort, - const char * inClient, - const char * desc, - const char * proto, - const char * remoteHost, - const char * leaseDuration) + const char * extPort, + const char * inPort, + const char * inClient, + const char * desc, + const char * proto, + const char * remoteHost, + const char * leaseDuration) { struct UPNParg * AddPortMappingArgs; char * buffer; @@ -354,6 +356,8 @@ UPNP_AddPortMapping(const char * controlURL, const char * servicetype, return UPNPCOMMAND_INVALID_ARGS; AddPortMappingArgs = calloc(9, sizeof(struct UPNParg)); + if(AddPortMappingArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; AddPortMappingArgs[0].elt = "NewRemoteHost"; AddPortMappingArgs[0].val = remoteHost; AddPortMappingArgs[1].elt = "NewExternalPort"; @@ -370,17 +374,18 @@ UPNP_AddPortMapping(const char * controlURL, const char * servicetype, AddPortMappingArgs[6].val = desc?desc:"libminiupnpc"; AddPortMappingArgs[7].elt = "NewLeaseDuration"; AddPortMappingArgs[7].val = leaseDuration?leaseDuration:"0"; - if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype, - "AddPortMapping", AddPortMappingArgs, - &bufsize))) { - free(AddPortMappingArgs); + buffer = simpleUPnPcommand(-1, controlURL, servicetype, + "AddPortMapping", AddPortMappingArgs, + &bufsize); + free(AddPortMappingArgs); + if(!buffer) { return UPNPCOMMAND_HTTP_ERROR; } /*DisplayNameValueList(buffer, bufsize);*/ /*buffer[bufsize] = '\0';*/ /*puts(buffer);*/ ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); resVal = GetValueFromNameValueList(&pdata, "errorCode"); if(resVal) { /*printf("AddPortMapping errorCode = '%s'\n", resVal); */ @@ -390,11 +395,79 @@ UPNP_AddPortMapping(const char * controlURL, const char * servicetype, ret = UPNPCOMMAND_SUCCESS; } ClearNameValueList(&pdata); + return ret; +} + +MINIUPNP_LIBSPEC int +UPNP_AddAnyPortMapping(const char * controlURL, const char * servicetype, + const char * extPort, + const char * inPort, + const char * inClient, + const char * desc, + const char * proto, + const char * remoteHost, + const char * leaseDuration, + char * reservedPort) +{ + struct UPNParg * AddPortMappingArgs; + char * buffer; + int bufsize; + struct NameValueParserData pdata; + const char * resVal; + int ret; + + if(!inPort || !inClient || !proto || !extPort) + return UPNPCOMMAND_INVALID_ARGS; + + AddPortMappingArgs = calloc(9, sizeof(struct UPNParg)); + if(AddPortMappingArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; + AddPortMappingArgs[0].elt = "NewRemoteHost"; + AddPortMappingArgs[0].val = remoteHost; + AddPortMappingArgs[1].elt = "NewExternalPort"; + AddPortMappingArgs[1].val = extPort; + AddPortMappingArgs[2].elt = "NewProtocol"; + AddPortMappingArgs[2].val = proto; + AddPortMappingArgs[3].elt = "NewInternalPort"; + AddPortMappingArgs[3].val = inPort; + AddPortMappingArgs[4].elt = "NewInternalClient"; + AddPortMappingArgs[4].val = inClient; + AddPortMappingArgs[5].elt = "NewEnabled"; + AddPortMappingArgs[5].val = "1"; + AddPortMappingArgs[6].elt = "NewPortMappingDescription"; + AddPortMappingArgs[6].val = desc?desc:"libminiupnpc"; + AddPortMappingArgs[7].elt = "NewLeaseDuration"; + AddPortMappingArgs[7].val = leaseDuration?leaseDuration:"0"; + buffer = simpleUPnPcommand(-1, controlURL, servicetype, + "AddAnyPortMapping", AddPortMappingArgs, + &bufsize); free(AddPortMappingArgs); + if(!buffer) { + return UPNPCOMMAND_HTTP_ERROR; + } + ParseNameValue(buffer, bufsize, &pdata); + free(buffer); + resVal = GetValueFromNameValueList(&pdata, "errorCode"); + if(resVal) { + ret = UPNPCOMMAND_UNKNOWN_ERROR; + sscanf(resVal, "%d", &ret); + } else { + char *p; + + p = GetValueFromNameValueList(&pdata, "NewReservedPort"); + if(p) { + strncpy(reservedPort, p, 6); + reservedPort[5] = '\0'; + ret = UPNPCOMMAND_SUCCESS; + } else { + ret = UPNPCOMMAND_INVALID_RESPONSE; + } + } + ClearNameValueList(&pdata); return ret; } -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_DeletePortMapping(const char * controlURL, const char * servicetype, const char * extPort, const char * proto, const char * remoteHost) @@ -411,21 +484,24 @@ UPNP_DeletePortMapping(const char * controlURL, const char * servicetype, return UPNPCOMMAND_INVALID_ARGS; DeletePortMappingArgs = calloc(4, sizeof(struct UPNParg)); + if(DeletePortMappingArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; DeletePortMappingArgs[0].elt = "NewRemoteHost"; DeletePortMappingArgs[0].val = remoteHost; DeletePortMappingArgs[1].elt = "NewExternalPort"; DeletePortMappingArgs[1].val = extPort; DeletePortMappingArgs[2].elt = "NewProtocol"; DeletePortMappingArgs[2].val = proto; - if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype, - "DeletePortMapping", - DeletePortMappingArgs, &bufsize))) { - free(DeletePortMappingArgs); + buffer = simpleUPnPcommand(-1, controlURL, servicetype, + "DeletePortMapping", + DeletePortMappingArgs, &bufsize); + free(DeletePortMappingArgs); + if(!buffer) { return UPNPCOMMAND_HTTP_ERROR; } /*DisplayNameValueList(buffer, bufsize);*/ ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); resVal = GetValueFromNameValueList(&pdata, "errorCode"); if(resVal) { ret = UPNPCOMMAND_UNKNOWN_ERROR; @@ -434,11 +510,58 @@ UPNP_DeletePortMapping(const char * controlURL, const char * servicetype, ret = UPNPCOMMAND_SUCCESS; } ClearNameValueList(&pdata); + return ret; +} + +MINIUPNP_LIBSPEC int +UPNP_DeletePortMappingRange(const char * controlURL, const char * servicetype, + const char * extPortStart, const char * extPortEnd, + const char * proto, + const char * manage) +{ + struct UPNParg * DeletePortMappingArgs; + char * buffer; + int bufsize; + struct NameValueParserData pdata; + const char * resVal; + int ret; + + if(!extPortStart || !extPortEnd || !proto || !manage) + return UPNPCOMMAND_INVALID_ARGS; + + DeletePortMappingArgs = calloc(5, sizeof(struct UPNParg)); + if(DeletePortMappingArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; + DeletePortMappingArgs[0].elt = "NewStartPort"; + DeletePortMappingArgs[0].val = extPortStart; + DeletePortMappingArgs[1].elt = "NewEndPort"; + DeletePortMappingArgs[1].val = extPortEnd; + DeletePortMappingArgs[2].elt = "NewProtocol"; + DeletePortMappingArgs[2].val = proto; + DeletePortMappingArgs[3].elt = "NewManage"; + DeletePortMappingArgs[3].val = manage; + + buffer = simpleUPnPcommand(-1, controlURL, servicetype, + "DeletePortMappingRange", + DeletePortMappingArgs, &bufsize); free(DeletePortMappingArgs); + if(!buffer) { + return UPNPCOMMAND_HTTP_ERROR; + } + ParseNameValue(buffer, bufsize, &pdata); + free(buffer); + resVal = GetValueFromNameValueList(&pdata, "errorCode"); + if(resVal) { + ret = UPNPCOMMAND_UNKNOWN_ERROR; + sscanf(resVal, "%d", &ret); + } else { + ret = UPNPCOMMAND_SUCCESS; + } + ClearNameValueList(&pdata); return ret; } -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetGenericPortMappingEntry(const char * controlURL, const char * servicetype, const char * index, @@ -462,16 +585,19 @@ UPNP_GetGenericPortMappingEntry(const char * controlURL, intClient[0] = '\0'; intPort[0] = '\0'; GetPortMappingArgs = calloc(2, sizeof(struct UPNParg)); + if(GetPortMappingArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; GetPortMappingArgs[0].elt = "NewPortMappingIndex"; GetPortMappingArgs[0].val = index; - if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype, - "GetGenericPortMappingEntry", - GetPortMappingArgs, &bufsize))) { - free(GetPortMappingArgs); + buffer = simpleUPnPcommand(-1, controlURL, servicetype, + "GetGenericPortMappingEntry", + GetPortMappingArgs, &bufsize); + free(GetPortMappingArgs); + if(!buffer) { return UPNPCOMMAND_HTTP_ERROR; } ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); p = GetValueFromNameValueList(&pdata, "NewRemoteHost"); if(p && rHost) @@ -493,14 +619,14 @@ UPNP_GetGenericPortMappingEntry(const char * controlURL, protocol[3] = '\0'; } p = GetValueFromNameValueList(&pdata, "NewInternalClient"); - if(p && intClient) + if(p) { strncpy(intClient, p, 16); intClient[15] = '\0'; r = 0; } p = GetValueFromNameValueList(&pdata, "NewInternalPort"); - if(p && intPort) + if(p) { strncpy(intPort, p, 6); intPort[5] = '\0'; @@ -529,11 +655,10 @@ UPNP_GetGenericPortMappingEntry(const char * controlURL, sscanf(p, "%d", &r); } ClearNameValueList(&pdata); - free(GetPortMappingArgs); return r; } -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetPortMappingNumberOfEntries(const char * controlURL, const char * servicetype, unsigned int * numEntries) @@ -552,7 +677,7 @@ UPNP_GetPortMappingNumberOfEntries(const char * controlURL, DisplayNameValueList(buffer, bufsize); #endif ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); p = GetValueFromNameValueList(&pdata, "NewPortMappingNumberOfEntries"); if(numEntries && p) { @@ -574,11 +699,12 @@ UPNP_GetPortMappingNumberOfEntries(const char * controlURL, /* UPNP_GetSpecificPortMappingEntry retrieves an existing port mapping * the result is returned in the intClient and intPort strings * please provide 16 and 6 bytes of data */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetSpecificPortMappingEntry(const char * controlURL, const char * servicetype, const char * extPort, - const char * proto, + const char * proto, + const char * remoteHost, char * intClient, char * intPort, char * desc, @@ -596,21 +722,24 @@ UPNP_GetSpecificPortMappingEntry(const char * controlURL, return UPNPCOMMAND_INVALID_ARGS; GetPortMappingArgs = calloc(4, sizeof(struct UPNParg)); + if(GetPortMappingArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; GetPortMappingArgs[0].elt = "NewRemoteHost"; - /* TODO : add remote host ? */ + GetPortMappingArgs[0].val = remoteHost; GetPortMappingArgs[1].elt = "NewExternalPort"; GetPortMappingArgs[1].val = extPort; GetPortMappingArgs[2].elt = "NewProtocol"; GetPortMappingArgs[2].val = proto; - if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype, - "GetSpecificPortMappingEntry", - GetPortMappingArgs, &bufsize))) { - free(GetPortMappingArgs); + buffer = simpleUPnPcommand(-1, controlURL, servicetype, + "GetSpecificPortMappingEntry", + GetPortMappingArgs, &bufsize); + free(GetPortMappingArgs); + if(!buffer) { return UPNPCOMMAND_HTTP_ERROR; } /*DisplayNameValueList(buffer, bufsize);*/ ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); p = GetValueFromNameValueList(&pdata, "NewInternalClient"); if(p) { @@ -653,7 +782,6 @@ UPNP_GetSpecificPortMappingEntry(const char * controlURL, } ClearNameValueList(&pdata); - free(GetPortMappingArgs); return ret; } @@ -665,7 +793,7 @@ UPNP_GetSpecificPortMappingEntry(const char * controlURL, * 733 InconsistantParameters - NewStartPort and NewEndPort values are not * consistent. */ -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetListOfPortMappings(const char * controlURL, const char * servicetype, const char * startPort, @@ -685,6 +813,8 @@ UPNP_GetListOfPortMappings(const char * controlURL, return UPNPCOMMAND_INVALID_ARGS; GetListOfPortMappingsArgs = calloc(6, sizeof(struct UPNParg)); + if(GetListOfPortMappingsArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; GetListOfPortMappingsArgs[0].elt = "NewStartPort"; GetListOfPortMappingsArgs[0].val = startPort; GetListOfPortMappingsArgs[1].elt = "NewEndPort"; @@ -696,17 +826,17 @@ UPNP_GetListOfPortMappings(const char * controlURL, GetListOfPortMappingsArgs[4].elt = "NewNumberOfPorts"; GetListOfPortMappingsArgs[4].val = numberOfPorts?numberOfPorts:"1000"; - if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype, - "GetListOfPortMappings", - GetListOfPortMappingsArgs, &bufsize))) { - free(GetListOfPortMappingsArgs); + buffer = simpleUPnPcommand(-1, controlURL, servicetype, + "GetListOfPortMappings", + GetListOfPortMappingsArgs, &bufsize); + free(GetListOfPortMappingsArgs); + if(!buffer) { return UPNPCOMMAND_HTTP_ERROR; } - free(GetListOfPortMappingsArgs); /*DisplayNameValueList(buffer, bufsize);*/ ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); /*p = GetValueFromNameValueList(&pdata, "NewPortListing");*/ /*if(p) { @@ -741,16 +871,16 @@ UPNP_GetListOfPortMappings(const char * controlURL, } ClearNameValueList(&pdata); - //printf("%.*s", bufsize, buffer); + /*printf("%.*s", bufsize, buffer);*/ return ret; } -/* IGD:2, functions for service WANIPv6FirewallControl:1 */ -LIBSPEC int +/* IGD:2, functions for service WANIPv6FirewallControl:1 */ +MINIUPNP_LIBSPEC int UPNP_GetFirewallStatus(const char * controlURL, const char * servicetype, - int * firewallEnabled, + int * firewallEnabled, int * inboundPinholeAllowed) { struct NameValueParserData pdata; @@ -759,7 +889,7 @@ UPNP_GetFirewallStatus(const char * controlURL, char * fe, *ipa, *p; int ret = UPNPCOMMAND_UNKNOWN_ERROR; - if(!firewallEnabled && !inboundPinholeAllowed) + if(!firewallEnabled || !inboundPinholeAllowed) return UPNPCOMMAND_INVALID_ARGS; buffer = simpleUPnPcommand(-1, controlURL, servicetype, @@ -768,7 +898,7 @@ UPNP_GetFirewallStatus(const char * controlURL, return UPNPCOMMAND_HTTP_ERROR; } ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); fe = GetValueFromNameValueList(&pdata, "FirewallEnabled"); ipa = GetValueFromNameValueList(&pdata, "InboundPinholeAllowed"); if(ipa && fe) @@ -791,7 +921,7 @@ UPNP_GetFirewallStatus(const char * controlURL, return ret; } -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype, const char * remoteHost, const char * remotePort, @@ -805,13 +935,14 @@ UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype int bufsize; struct NameValueParserData pdata; const char * resVal; - char * p; int ret; if(!intPort || !intClient || !proto || !remotePort || !remoteHost) return UPNPCOMMAND_INVALID_ARGS; GetOutboundPinholeTimeoutArgs = calloc(6, sizeof(struct UPNParg)); + if(GetOutboundPinholeTimeoutArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; GetOutboundPinholeTimeoutArgs[0].elt = "RemoteHost"; GetOutboundPinholeTimeoutArgs[0].val = remoteHost; GetOutboundPinholeTimeoutArgs[1].elt = "RemotePort"; @@ -824,10 +955,11 @@ UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype GetOutboundPinholeTimeoutArgs[4].val = intClient; buffer = simpleUPnPcommand(-1, controlURL, servicetype, "GetOutboundPinholeTimeout", GetOutboundPinholeTimeoutArgs, &bufsize); + free(GetOutboundPinholeTimeoutArgs); if(!buffer) return UPNPCOMMAND_HTTP_ERROR; ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); resVal = GetValueFromNameValueList(&pdata, "errorCode"); if(resVal) { @@ -836,17 +968,16 @@ UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype } else { - ret = UPNPCOMMAND_SUCCESS; - p = GetValueFromNameValueList(&pdata, "OutboundPinholeTimeout"); + const char * p = GetValueFromNameValueList(&pdata, "OutboundPinholeTimeout"); if(p) *opTimeout = my_atoui(p); + ret = UPNPCOMMAND_SUCCESS; } ClearNameValueList(&pdata); - free(GetOutboundPinholeTimeoutArgs); return ret; } -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_AddPinhole(const char * controlURL, const char * servicetype, const char * remoteHost, const char * remotePort, @@ -868,7 +999,9 @@ UPNP_AddPinhole(const char * controlURL, const char * servicetype, return UPNPCOMMAND_INVALID_ARGS; AddPinholeArgs = calloc(7, sizeof(struct UPNParg)); - // RemoteHost can be wilcarded + if(AddPinholeArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; + /* RemoteHost can be wilcarded */ if(strncmp(remoteHost, "empty", 5)==0) { AddPinholeArgs[0].elt = "RemoteHost"; @@ -899,10 +1032,11 @@ UPNP_AddPinhole(const char * controlURL, const char * servicetype, AddPinholeArgs[5].val = leaseTime; buffer = simpleUPnPcommand(-1, controlURL, servicetype, "AddPinhole", AddPinholeArgs, &bufsize); + free(AddPinholeArgs); if(!buffer) return UPNPCOMMAND_HTTP_ERROR; ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); p = GetValueFromNameValueList(&pdata, "UniqueID"); if(p) { @@ -912,7 +1046,7 @@ UPNP_AddPinhole(const char * controlURL, const char * servicetype, resVal = GetValueFromNameValueList(&pdata, "errorCode"); if(resVal) { - //printf("AddPortMapping errorCode = '%s'\n", resVal); + /*printf("AddPortMapping errorCode = '%s'\n", resVal);*/ ret = UPNPCOMMAND_UNKNOWN_ERROR; sscanf(resVal, "%d", &ret); } @@ -921,11 +1055,10 @@ UPNP_AddPinhole(const char * controlURL, const char * servicetype, ret = UPNPCOMMAND_SUCCESS; } ClearNameValueList(&pdata); - free(AddPinholeArgs); return ret; } -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_UpdatePinhole(const char * controlURL, const char * servicetype, const char * uniqueID, const char * leaseTime) @@ -941,16 +1074,19 @@ UPNP_UpdatePinhole(const char * controlURL, const char * servicetype, return UPNPCOMMAND_INVALID_ARGS; UpdatePinholeArgs = calloc(3, sizeof(struct UPNParg)); + if(UpdatePinholeArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; UpdatePinholeArgs[0].elt = "UniqueID"; UpdatePinholeArgs[0].val = uniqueID; UpdatePinholeArgs[1].elt = "NewLeaseTime"; UpdatePinholeArgs[1].val = leaseTime; buffer = simpleUPnPcommand(-1, controlURL, servicetype, "UpdatePinhole", UpdatePinholeArgs, &bufsize); + free(UpdatePinholeArgs); if(!buffer) return UPNPCOMMAND_HTTP_ERROR; ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); resVal = GetValueFromNameValueList(&pdata, "errorCode"); if(resVal) { @@ -963,11 +1099,10 @@ UPNP_UpdatePinhole(const char * controlURL, const char * servicetype, ret = UPNPCOMMAND_SUCCESS; } ClearNameValueList(&pdata); - free(UpdatePinholeArgs); return ret; } -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char * uniqueID) { /*struct NameValueParserData pdata;*/ @@ -982,15 +1117,18 @@ UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char return UPNPCOMMAND_INVALID_ARGS; DeletePinholeArgs = calloc(2, sizeof(struct UPNParg)); + if(DeletePinholeArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; DeletePinholeArgs[0].elt = "UniqueID"; DeletePinholeArgs[0].val = uniqueID; buffer = simpleUPnPcommand(-1, controlURL, servicetype, "DeletePinhole", DeletePinholeArgs, &bufsize); + free(DeletePinholeArgs); if(!buffer) return UPNPCOMMAND_HTTP_ERROR; /*DisplayNameValueList(buffer, bufsize);*/ ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); resVal = GetValueFromNameValueList(&pdata, "errorCode"); if(resVal) { @@ -1002,11 +1140,10 @@ UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char ret = UPNPCOMMAND_SUCCESS; } ClearNameValueList(&pdata); - free(DeletePinholeArgs); return ret; } -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype, const char * uniqueID, int * isWorking) { @@ -1021,14 +1158,19 @@ UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype, return UPNPCOMMAND_INVALID_ARGS; CheckPinholeWorkingArgs = calloc(4, sizeof(struct UPNParg)); + if(CheckPinholeWorkingArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; CheckPinholeWorkingArgs[0].elt = "UniqueID"; CheckPinholeWorkingArgs[0].val = uniqueID; buffer = simpleUPnPcommand(-1, controlURL, servicetype, "CheckPinholeWorking", CheckPinholeWorkingArgs, &bufsize); + free(CheckPinholeWorkingArgs); if(!buffer) + { return UPNPCOMMAND_HTTP_ERROR; + } ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); p = GetValueFromNameValueList(&pdata, "IsWorking"); if(p) @@ -1047,11 +1189,10 @@ UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype, } ClearNameValueList(&pdata); - free(CheckPinholeWorkingArgs); return ret; } -LIBSPEC int +MINIUPNP_LIBSPEC int UPNP_GetPinholePackets(const char * controlURL, const char * servicetype, const char * uniqueID, int * packets) { @@ -1066,14 +1207,17 @@ UPNP_GetPinholePackets(const char * controlURL, const char * servicetype, return UPNPCOMMAND_INVALID_ARGS; GetPinholePacketsArgs = calloc(4, sizeof(struct UPNParg)); + if(GetPinholePacketsArgs == NULL) + return UPNPCOMMAND_MEM_ALLOC_ERROR; GetPinholePacketsArgs[0].elt = "UniqueID"; GetPinholePacketsArgs[0].val = uniqueID; buffer = simpleUPnPcommand(-1, controlURL, servicetype, "GetPinholePackets", GetPinholePacketsArgs, &bufsize); + free(GetPinholePacketsArgs); if(!buffer) return UPNPCOMMAND_HTTP_ERROR; ParseNameValue(buffer, bufsize, &pdata); - free(buffer); buffer = NULL; + free(buffer); p = GetValueFromNameValueList(&pdata, "PinholePackets"); if(p) @@ -1090,8 +1234,5 @@ UPNP_GetPinholePackets(const char * controlURL, const char * servicetype, } ClearNameValueList(&pdata); - free(GetPinholePacketsArgs); return ret; } - - diff --git a/libs/miniupnpc/src/upnpdev.c b/libs/miniupnpc/src/upnpdev.c new file mode 100644 index 0000000000..d89a9934c3 --- /dev/null +++ b/libs/miniupnpc/src/upnpdev.c @@ -0,0 +1,23 @@ +/* $Id: upnpdev.c,v 1.1 2015/08/28 12:14:19 nanard Exp $ */ +/* Project : miniupnp + * Web : http://miniupnp.free.fr/ + * Author : Thomas BERNARD + * copyright (c) 2005-2015 Thomas Bernard + * This software is subjet to the conditions detailed in the + * provided LICENSE file. */ +#include <stdlib.h> +#include "upnpdev.h" + +/* freeUPNPDevlist() should be used to + * free the chained list returned by upnpDiscover() */ +void freeUPNPDevlist(struct UPNPDev * devlist) +{ + struct UPNPDev * next; + while(devlist) + { + next = devlist->pNext; + free(devlist); + devlist = next; + } +} + diff --git a/libs/miniupnpc/upnperrors.c b/libs/miniupnpc/src/upnperrors.c similarity index 69% rename from libs/miniupnpc/upnperrors.c rename to libs/miniupnpc/src/upnperrors.c index a48ae10d3e..eec4037389 100644 --- a/libs/miniupnpc/upnperrors.c +++ b/libs/miniupnpc/src/upnperrors.c @@ -1,9 +1,10 @@ -/* $Id: upnperrors.c,v 1.5 2011/04/10 11:19:36 nanard Exp $ */ -/* Project : miniupnp +/* $Id: upnperrors.c,v 1.11 2023/05/29 21:59:15 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * Project : miniupnp * Author : Thomas BERNARD - * copyright (c) 2007 Thomas Bernard + * copyright (c) 2007-2023 Thomas Bernard * All Right reserved. - * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ * This software is subjet to the conditions detailed in the * provided LICENCE file. */ #include <string.h> @@ -24,10 +25,17 @@ const char * strupnperror(int err) case UPNPCOMMAND_INVALID_ARGS: s = "Miniupnpc Invalid Arguments"; break; + case UPNPCOMMAND_INVALID_RESPONSE: + s = "Miniupnpc Invalid response"; + break; + case UPNPCOMMAND_HTTP_ERROR: + s = "Miniupnpc HTTP error"; + break; case UPNPDISCOVER_SOCKET_ERROR: s = "Miniupnpc Socket error"; break; case UPNPDISCOVER_MEMORY_ERROR: + case UPNPCOMMAND_MEM_ALLOC_ERROR: s = "Miniupnpc Memory allocation error"; break; case 401: @@ -39,6 +47,24 @@ const char * strupnperror(int err) case 501: s = "Action Failed"; break; + case 600: + s = "Argument Value Invalid"; + break; + case 601: + s = "Argument Value Out of Range"; + break; + case 602: + s = "Optional Action Not Implemented"; + break; + case 603: + s = "Out of Memory"; + break; + case 604: + s = "Human Intervention Required"; + break; + case 605: + s = "String Argument Too Long"; + break; case 606: s = "Action not authorized"; break; @@ -64,7 +90,7 @@ const char * strupnperror(int err) s = "ProtocolWildcardingNotAllowed"; break; case 708: - s = "WildcardNotPermittedInSrcIP"; + s = "InvalidLayer2Address"; break; case 709: s = "NoPacketSent"; @@ -97,7 +123,8 @@ const char * strupnperror(int err) s = "ExternalPortOnlySupportsWildcard"; break; default: - s = NULL; + s = "UnknownError"; + break; } return s; } diff --git a/libs/miniupnpc/upnpreplyparse.c b/libs/miniupnpc/src/upnpreplyparse.c similarity index 58% rename from libs/miniupnpc/upnpreplyparse.c rename to libs/miniupnpc/src/upnpreplyparse.c index 482030b358..afbfcc1af0 100644 --- a/libs/miniupnpc/upnpreplyparse.c +++ b/libs/miniupnpc/src/upnpreplyparse.c @@ -1,7 +1,8 @@ -/* $Id: upnpreplyparse.c,v 1.11 2011/02/07 16:17:06 nanard Exp $ */ -/* MiniUPnP project +/* $Id: upnpreplyparse.c,v 1.21 2019/04/08 13:30:51 nanard Exp $ */ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * MiniUPnP project * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ - * (c) 2006-2011 Thomas Bernard + * (c) 2006-2019 Thomas Bernard * This software is subject to the conditions detailed * in the LICENCE file provided within the distribution */ @@ -15,25 +16,77 @@ static void NameValueParserStartElt(void * d, const char * name, int l) { - struct NameValueParserData * data = (struct NameValueParserData *)d; + struct NameValueParserData * data = (struct NameValueParserData *)d; + data->topelt = 1; if(l>63) l = 63; memcpy(data->curelt, name, l); data->curelt[l] = '\0'; + data->cdata = NULL; + data->cdatalen = 0; } static void -NameValueParserGetData(void * d, const char * datas, int l) +NameValueParserEndElt(void * d, const char * name, int namelen) { struct NameValueParserData * data = (struct NameValueParserData *)d; struct NameValue * nv; + (void)name; + (void)namelen; + if(!data->topelt) + return; + if(strcmp(data->curelt, "NewPortListing") != 0) + { + int l; + /* standard case. Limited to n chars strings */ + l = data->cdatalen; + nv = malloc(sizeof(struct NameValue)); + if(nv == NULL) + { + /* malloc error */ +#ifdef DEBUG + fprintf(stderr, "%s: error allocating memory", + "NameValueParserEndElt"); +#endif /* DEBUG */ + return; + } + if(l>=(int)sizeof(nv->value)) + l = sizeof(nv->value) - 1; + strncpy(nv->name, data->curelt, 64); + nv->name[63] = '\0'; + if(data->cdata != NULL) + { + memcpy(nv->value, data->cdata, l); + nv->value[l] = '\0'; + } + else + { + nv->value[0] = '\0'; + } + nv->l_next = data->l_head; /* insert in list */ + data->l_head = nv; + } + data->cdata = NULL; + data->cdatalen = 0; + data->topelt = 0; +} + +static void +NameValueParserGetData(void * d, const char * datas, int l) +{ + struct NameValueParserData * data = (struct NameValueParserData *)d; if(strcmp(data->curelt, "NewPortListing") == 0) { /* specific case for NewPortListing which is a XML Document */ + free(data->portListing); data->portListing = malloc(l + 1); if(!data->portListing) { /* malloc error */ +#ifdef DEBUG + fprintf(stderr, "%s: error allocating memory", + "NameValueParserGetData"); +#endif /* DEBUG */ return; } memcpy(data->portListing, datas, l); @@ -42,15 +95,9 @@ NameValueParserGetData(void * d, const char * datas, int l) } else { - /* standard case. Limited to 63 chars strings */ - nv = malloc(sizeof(struct NameValue)); - if(l>63) - l = 63; - strncpy(nv->name, data->curelt, 64); - nv->name[63] = '\0'; - memcpy(nv->value, datas, l); - nv->value[l] = '\0'; - LIST_INSERT_HEAD( &(data->head), nv, entries); + /* standard case. */ + data->cdata = datas; + data->cdatalen = l; } } @@ -58,19 +105,17 @@ void ParseNameValue(const char * buffer, int bufsize, struct NameValueParserData * data) { - struct xmlparser parser; - LIST_INIT(&(data->head)); - data->portListing = NULL; - data->portListingLength = 0; - /* init xmlparser object */ - parser.xmlstart = buffer; - parser.xmlsize = bufsize; - parser.data = data; - parser.starteltfunc = NameValueParserStartElt; - parser.endeltfunc = 0; - parser.datafunc = NameValueParserGetData; + struct xmlparser parser; + memset(data, 0, sizeof(struct NameValueParserData)); + /* init xmlparser object */ + parser.xmlstart = buffer; + parser.xmlsize = bufsize; + parser.data = data; + parser.starteltfunc = NameValueParserStartElt; + parser.endeltfunc = NameValueParserEndElt; + parser.datafunc = NameValueParserGetData; parser.attfunc = 0; - parsexml(&parser); + parsexml(&parser); } void @@ -83,22 +128,22 @@ ClearNameValueList(struct NameValueParserData * pdata) pdata->portListing = NULL; pdata->portListingLength = 0; } - while((nv = pdata->head.lh_first) != NULL) + while((nv = pdata->l_head) != NULL) { - LIST_REMOVE(nv, entries); + pdata->l_head = nv->l_next; free(nv); } } -char * +char * GetValueFromNameValueList(struct NameValueParserData * pdata, const char * Name) { struct NameValue * nv; char * p = NULL; - for(nv = pdata->head.lh_first; + for(nv = pdata->l_head; (nv != NULL) && (p == NULL); - nv = nv->entries.le_next) + nv = nv->l_next) { if(strcmp(nv->name, Name) == 0) p = nv->value; @@ -131,7 +176,7 @@ GetValueFromNameValueListIgnoreNS(struct NameValueParserData * pdata, } #endif -/* debug all-in-one function +/* debug all-in-one function * do parsing then display to stdout */ #ifdef DEBUG void @@ -140,13 +185,13 @@ DisplayNameValueList(char * buffer, int bufsize) struct NameValueParserData pdata; struct NameValue * nv; ParseNameValue(buffer, bufsize, &pdata); - for(nv = pdata.head.lh_first; + for(nv = pdata.l_head; nv != NULL; - nv = nv->entries.le_next) + nv = nv->l_next) { printf("%s = %s\n", nv->name, nv->value); } ClearNameValueList(&pdata); } -#endif +#endif /* DEBUG */ diff --git a/libs/miniupnpc/src/win32_snprintf.h b/libs/miniupnpc/src/win32_snprintf.h new file mode 100644 index 0000000000..1fc284ecff --- /dev/null +++ b/libs/miniupnpc/src/win32_snprintf.h @@ -0,0 +1,71 @@ +/* vim: tabstop=4 shiftwidth=4 noexpandtab + * MiniUPnP project + * http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ + * (c) 2020 Pali Rohár + * This software is subject to the conditions detailed + * in the LICENCE file provided within the distribution */ + +#ifndef WIN32_SNPRINTF_H +#define WIN32_SNPRINTF_H + +#ifdef _WIN32 + +#include <stdio.h> + +/* snprintf is supported by: + * - Visual Studio 2015 or new + * - mingw32 with iso c ext + * - mingw-w64 with ansi stdio + * - mingw-w64 6.0.0 or new with ucrt + * - mingw-w64 8.0.0 or new with iso c ext + */ +#if ( \ + (defined(_MSC_VER) && _MSC_VER < 1900) /* Visual Studio older than 2015 */ || \ + (defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) && defined(__NO_ISOCEXT)) /* mingw32 without iso c ext */ || \ + (defined(__MINGW64_VERSION_MAJOR) && /* mingw-w64 not ... */ !( \ + (defined (__USE_MINGW_ANSI_STDIO) && __USE_MINGW_ANSI_STDIO != 0)) /* ... with ansi stdio */ || \ + (__MINGW64_VERSION_MAJOR >= 6 && defined(_UCRT)) /* ... at least 6.0.0 with ucrt */ || \ + (__MINGW64_VERSION_MAJOR >= 8 && !defined(__NO_ISOCEXT)) /* ... at least 8.0.0 with iso c ext */ || \ + 0) || \ +0) + +/* _scprintf is supported by: + * - Visual Studio 2002 or new + * - msvcr70.dll or new + * - msvcrt.dll on Windows XP or new + */ +#if ( \ + (defined(_MSC_VER) && _MSC_VER < 1300) /* Visual Studio older than 2002 */ || \ + (defined(__MSVCRT_VERSION__) && __MSVCRT_VERSION__ < 0x700) /* msvcrt older than 7.0 */ || \ +0) +#define CHECK_SCPRINTF 0 +#define IF_SCPRINTF(expr) 0 +#define ELSE_SCPRINTF(expr) expr +#else +#define CHECK_SCPRINTF 1 +#define IF_SCPRINTF(expr) expr +#define ELSE_SCPRINTF(expr) 0 +#endif + +/* Emulation of snprintf for win32 */ +#define snprintf(buf, size, fmt, ...) ( \ + (((size) != 0 && (buf) != NULL) ? ( /* _snprintf does not work with NULL buffer */ \ + _snprintf((buf), (size), (fmt), __VA_ARGS__), /* _snprintf returns -1 on overflow, so ignore its value */ \ + (((char *)buf)[(size_t)(size)-1] = 0), /* _snprintf does not fill nul byte on overflow */ \ + 0) : 0), \ + (CHECK_SCPRINTF ? IF_SCPRINTF( \ + _scprintf((fmt), __VA_ARGS__) /* calculate return value for snprintf via _scprintf */ \ + ) : ELSE_SCPRINTF( \ + ((size) != 0 && (buf) != NULL) ? \ + strlen((buf)) /* return just length of buffer */ \ + : \ + 1 /* no buffer, impossible to calculate, return just non-zero number */ \ + ) \ + ) \ +) + +#endif + +#endif /* _WIN32 */ + +#endif /* WIN32_SNPRINTF_H */ diff --git a/libs/miniupnpc/testdesc/linksys_WAG200G_desc.values b/libs/miniupnpc/testdesc/linksys_WAG200G_desc.values new file mode 100644 index 0000000000..cf42221878 --- /dev/null +++ b/libs/miniupnpc/testdesc/linksys_WAG200G_desc.values @@ -0,0 +1,14 @@ +# values for linksys_WAG200G_desc.xml + +CIF: + servicetype = urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1 + controlurl = /upnp/control/WANCommonIFC1 + eventsuburl = /upnp/event/WANCommonIFC1 + scpdurl = /cmnicfg.xml + +first: + servicetype = urn:schemas-upnp-org:service:WANPPPConnection:1 + controlurl = /upnp/control/WANPPPConn1 + eventsuburl = /upnp/event/WANPPPConn1 + scpdurl = /pppcfg.xml + diff --git a/libs/miniupnpc/testdesc/linksys_WAG200G_desc.xml b/libs/miniupnpc/testdesc/linksys_WAG200G_desc.xml new file mode 100644 index 0000000000..d428d73b0f --- /dev/null +++ b/libs/miniupnpc/testdesc/linksys_WAG200G_desc.xml @@ -0,0 +1,110 @@ +<?xml version="1.0"?> +<root xmlns="urn:schemas-upnp-org:device-1-0"> +<specVersion> +<major>1</major> +<minor>0</minor> +</specVersion> +<URLBase>http://192.168.1.1:49152</URLBase> +<device> +<deviceType>urn:schemas-upnp-org:device:InternetGatewayDevice:1</deviceType> +<friendlyName>LINKSYS WAG200G Gateway</friendlyName> +<manufacturer>LINKSYS</manufacturer> +<manufacturerURL>http://www.linksys.com</manufacturerURL> +<modelDescription>LINKSYS WAG200G Gateway</modelDescription> +<modelName>Wireless-G ADSL Home Gateway</modelName> +<modelNumber>WAG200G</modelNumber> +<modelURL>http://www.linksys.com</modelURL> +<serialNumber>123456789</serialNumber> +<UDN>uuid:8ca2eb37-1dd2-11b2-86f1-001a709b5aa8</UDN> +<UPC>WAG200G</UPC> +<serviceList> +<service> +<serviceType>urn:schemas-upnp-org:service:Layer3Forwarding:1</serviceType> +<serviceId>urn:upnp-org:serviceId:L3Forwarding1</serviceId> +<controlURL>/upnp/control/L3Forwarding1</controlURL> +<eventSubURL>/upnp/event/L3Forwarding1</eventSubURL> +<SCPDURL>/l3frwd.xml</SCPDURL> +</service> +</serviceList> +<deviceList> +<device> +<deviceType>urn:schemas-upnp-org:device:WANDevice:1</deviceType> +<friendlyName>WANDevice</friendlyName> +<manufacturer>LINKSYS</manufacturer> +<manufacturerURL>http://www.linksys.com/</manufacturerURL> +<modelDescription>Residential Gateway</modelDescription> +<modelName>Internet Connection Sharing</modelName> +<modelNumber>1</modelNumber> +<modelURL>http://www.linksys.com/</modelURL> +<serialNumber>0000001</serialNumber> +<UDN>uuid:8ca2eb36-1dd2-11b2-86f1-001a709b5aa8</UDN> +<UPC>WAG200G</UPC> +<serviceList> +<service> +<serviceType>urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1</serviceType> +<serviceId>urn:upnp-org:serviceId:WANCommonIFC1</serviceId> +<controlURL>/upnp/control/WANCommonIFC1</controlURL> +<eventSubURL>/upnp/event/WANCommonIFC1</eventSubURL> +<SCPDURL>/cmnicfg.xml</SCPDURL> +</service> +</serviceList> +<deviceList> +<device> +<deviceType>urn:schemas-upnp-org:device:WANConnectionDevice:1</deviceType> +<friendlyName>WANConnectionDevice</friendlyName> +<manufacturer>LINKSYS</manufacturer> +<manufacturerURL>http://www.linksys.com/</manufacturerURL> +<modelDescription>Residential Gateway</modelDescription> +<modelName>Internet Connection Sharing</modelName> +<modelNumber>1</modelNumber> +<modelURL>http://www.linksys.com/</modelURL> +<serialNumber>0000001</serialNumber> +<UDN>uuid:8ca2eb37-1dd2-11b2-86f0-001a709b5aa8</UDN> +<UPC>WAG200G</UPC> +<serviceList> +<service> +<serviceType>urn:schemas-upnp-org:service:WANEthernetLinkConfig:1</serviceType> +<serviceId>urn:upnp-org:serviceId:WANEthLinkC1</serviceId> +<controlURL>/upnp/control/WANEthLinkC1</controlURL> +<eventSubURL>/upnp/event/WANEthLinkC1</eventSubURL> +<SCPDURL>/wanelcfg.xml</SCPDURL> +</service> +<service> +<serviceType>urn:schemas-upnp-org:service:WANPPPConnection:1</serviceType> +<serviceId>urn:upnp-org:serviceId:WANPPPConn1</serviceId> +<controlURL>/upnp/control/WANPPPConn1</controlURL> +<eventSubURL>/upnp/event/WANPPPConn1</eventSubURL> +<SCPDURL>/pppcfg.xml</SCPDURL> +</service> +</serviceList> +</device> +</deviceList> +</device> +<device> +<deviceType>urn:schemas-upnp-org:device:LANDevice:1</deviceType> +<friendlyName>LANDevice</friendlyName> +<manufacturer>LINKSYS</manufacturer> +<manufacturerURL>http://www.linksys.com/</manufacturerURL> +<modelDescription>Residential Gateway</modelDescription> +<modelName>Residential Gateway</modelName> +<modelNumber>1</modelNumber> +<modelURL>http://www.linksys.com/</modelURL> +<serialNumber>0000001</serialNumber> +<UDN>uuid:8ca2eb36-1dd2-11b2-86f0-001a709b5aa +8</UDN> +<UPC>WAG200G</UPC> +<serviceList> +<service> +<serviceType>urn:schemas-upnp-org:service:LANHostConfigManagement:1</serviceType> +<serviceId>urn:upnp-org:serviceId:LANHostCfg1</serviceId> +<controlURL>/upnp/control/LANHostCfg1</controlURL> +<eventSubURL>/upnp/event/LANHostCfg1</eventSubURL> +<SCPDURL>/lanhostc.xml</SCPDURL> +</service> +</serviceList> +</device> +</deviceList> +<presentationURL>http://192.168.1.1/index.htm</presentationURL> +</device> +</root> + diff --git a/libs/miniupnpc/testdesc/new_LiveBox_desc.values b/libs/miniupnpc/testdesc/new_LiveBox_desc.values new file mode 100644 index 0000000000..c55552e589 --- /dev/null +++ b/libs/miniupnpc/testdesc/new_LiveBox_desc.values @@ -0,0 +1,20 @@ +# values for new_LiveBox_desc.xml + +CIF: + servicetype = urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1 + controlurl = /87895a19/upnp/control/WANCommonIFC1 + eventsuburl = /87895a19/upnp/control/WANCommonIFC1 + scpdurl = /87895a19/gateicfgSCPD.xml + +first: + servicetype = urn:schemas-upnp-org:service:WANPPPConnection:2 + controlurl = /87895a19/upnp/control/WANIPConn1 + eventsuburl = /87895a19/upnp/control/WANIPConn1 + scpdurl = /87895a19/gateconnSCPD_PPP.xml + +IPv6FC: + servicetype = urn:schemas-upnp-org:service:WANIPv6FirewallControl:1 + controlurl = /87895a19/upnp/control/WANIPv6FwCtrl1 + eventsuburl = /87895a19/upnp/control/WANIPv6FwCtrl1 + scpdurl = /87895a19/wanipv6fwctrlSCPD.xml + diff --git a/libs/miniupnpc/testdesc/new_LiveBox_desc.xml b/libs/miniupnpc/testdesc/new_LiveBox_desc.xml new file mode 100644 index 0000000000..3e522df597 --- /dev/null +++ b/libs/miniupnpc/testdesc/new_LiveBox_desc.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<root xmlns="urn:schemas-upnp-org:device-1-0"> + <specVersion> + <major>1</major> + <minor>0</minor> + </specVersion> + <device> + <pnpx:X_hardwareId xmlns:pnpx="http://schemas.microsoft.com/windows/pnpx/2005/11">VEN_0129&DEV_0000&SUBSYS_03&REV_250417</pnpx:X_hardwareId> + <pnpx:X_compatibleId xmlns:pnpx="http://schemas.microsoft.com/windows/pnpx/2005/11">GenericUmPass</pnpx:X_compatibleId> + <pnpx:X_deviceCategory xmlns:pnpx="http://schemas.microsoft.com/windows/pnpx/2005/11">NetworkInfrastructure.Gateway</pnpx:X_deviceCategory> + <df:X_deviceCategory xmlns:df="http://schemas.microsoft.com/windows/2008/09/devicefoundation">Network.Gateway</df:X_deviceCategory> + <deviceType>urn:schemas-upnp-org:device:InternetGatewayDevice:2</deviceType> + <friendlyName>Orange Livebox</friendlyName> + <manufacturer>Sagemcom</manufacturer> + <manufacturerURL>http://www.sagemcom.com/</manufacturerURL> + <modelName>Residential Livebox,(DSL,WAN Ethernet)</modelName> + <UDN>uuid:87895a19-50f9-3736-a87f-115c230155f8</UDN> + <modelDescription>Sagemcom,fr,SG30_sip-fr-4.28.35.1</modelDescription> + <modelNumber>3</modelNumber> + <serialNumber>LK14129DP441489</serialNumber> + <presentationURL>http://192.168.1.1</presentationURL> + <UPC></UPC> + <iconList> + <icon> + <mimetype>image/png</mimetype> + <width>16</width> + <height>16</height> + <depth>8</depth> + <url>/87895a19/ligd.png</url> + </icon> + </iconList> + <deviceList> + <device> + <deviceType>urn:schemas-upnp-org:device:WANDevice:2</deviceType> + <friendlyName>WANDevice</friendlyName> + <manufacturer>Sagemcom</manufacturer> + <manufacturerURL>http://www.sagemcom.com/</manufacturerURL> + <modelDescription>WAN Device on Sagemcom,fr,SG30_sip-fr-4.28.35.1</modelDescription> + <modelName>Residential Livebox,(DSL,WAN Ethernet)</modelName> + <modelNumber>3</modelNumber> + <modelURL>http://www.sagemcom.com/</modelURL> + <serialNumber>LK14129DP441489</serialNumber> + <presentationURL>http://192.168.1.1</presentationURL> + <UDN>uuid:e2397374-53d8-3fc6-8306-593ba1a34625</UDN> + <UPC></UPC> + <serviceList> + <service> + <serviceType>urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1</serviceType> + <serviceId>urn:upnp-org:serviceId:WANCommonIFC1</serviceId> + <controlURL>/87895a19/upnp/control/WANCommonIFC1</controlURL> + <eventSubURL>/87895a19/upnp/control/WANCommonIFC1</eventSubURL> + <SCPDURL>/87895a19/gateicfgSCPD.xml</SCPDURL> + </service> + </serviceList> + <deviceList> + <device> + <deviceType>urn:schemas-upnp-org:device:WANConnectionDevice:2</deviceType> + <friendlyName>WANConnectionDevice</friendlyName> + <manufacturer>Sagemcom</manufacturer> + <manufacturerURL>http://www.sagemcom.com/</manufacturerURL> + <modelDescription>WanConnectionDevice on Sagemcom,fr,SG30_sip-fr-4.28.35.1</modelDescription> + <modelName>Residential Livebox,(DSL,WAN Ethernet)</modelName> + <modelNumber>3</modelNumber> + <modelURL>http://www.sagemcom.com/</modelURL> + <serialNumber>LK14129DP441489</serialNumber> + <presentationURL>http://192.168.1.1</presentationURL> + <UDN>uuid:44598a08-288e-32c9-8a4d-d3c008ede331</UDN> + <UPC></UPC> + <serviceList> + <service> + <serviceType>urn:schemas-upnp-org:service:WANPPPConnection:2</serviceType> + <serviceId>urn:upnp-org:serviceId:WANIPConn1</serviceId> + <controlURL>/87895a19/upnp/control/WANIPConn1</controlURL> + <eventSubURL>/87895a19/upnp/control/WANIPConn1</eventSubURL> + <SCPDURL>/87895a19/gateconnSCPD_PPP.xml</SCPDURL> + </service> + <service> + <serviceType>urn:schemas-upnp-org:service:WANIPv6FirewallControl:1</serviceType> + <serviceId>urn:upnp-org:serviceId:WANIPv6FwCtrl1</serviceId> + <controlURL>/87895a19/upnp/control/WANIPv6FwCtrl1</controlURL> + <eventSubURL>/87895a19/upnp/control/WANIPv6FwCtrl1</eventSubURL> + <SCPDURL>/87895a19/wanipv6fwctrlSCPD.xml</SCPDURL> + </service> + </serviceList> + </device> + </deviceList> + </device> + </deviceList> + </device> +</root> \ No newline at end of file diff --git a/libs/miniupnpc/testigddescparse.c b/libs/miniupnpc/testigddescparse.c deleted file mode 100644 index 1b0cde90e2..0000000000 --- a/libs/miniupnpc/testigddescparse.c +++ /dev/null @@ -1,64 +0,0 @@ -/* $Id: testigddescparse.c,v 1.2 2009/12/03 13:50:06 nanard Exp $ */ -/* Project : miniupnp - * http://miniupnp.free.fr/ - * Author : Thomas Bernard - * Copyright (c) 2008-2009 Thomas Bernard - * This software is subject to the conditions detailed in the - * LICENCE file provided in this distribution. - * */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include "igd_desc_parse.h" -#include "minixml.h" -#include "miniupnpc.h" - -int test_igd_desc_parse(char * buffer, int len) -{ - struct IGDdatas igd; - struct xmlparser parser; - struct UPNPUrls urls; - memset(&igd, 0, sizeof(struct IGDdatas)); - memset(&parser, 0, sizeof(struct xmlparser)); - parser.xmlstart = buffer; - parser.xmlsize = len; - parser.data = &igd; - parser.starteltfunc = IGDstartelt; - parser.endeltfunc = IGDendelt; - parser.datafunc = IGDdata; - parsexml(&parser); - printIGD(&igd); - GetUPNPUrls(&urls, &igd, "http://fake/desc/url/file.xml"); - printf("ipcondescURL='%s'\n", urls.ipcondescURL); - printf("controlURL='%s'\n", urls.controlURL); - printf("controlURL_CIF='%s'\n", urls.controlURL_CIF); - FreeUPNPUrls(&urls); - return 0; -} - -int main(int argc, char * * argv) -{ - FILE * f; - char * buffer; - int len; - int r = 0; - if(argc<2) { - fprintf(stderr, "Usage: %s file.xml\n", argv[0]); - return 1; - } - f = fopen(argv[1], "r"); - if(!f) { - fprintf(stderr, "Cannot open %s for reading.\n", argv[1]); - return 1; - } - fseek(f, 0, SEEK_END); - len = ftell(f); - fseek(f, 0, SEEK_SET); - buffer = malloc(len); - fread(buffer, 1, len, f); - fclose(f); - r = test_igd_desc_parse(buffer, len); - free(buffer); - return r; -} - diff --git a/libs/miniupnpc/testminiwget.sh b/libs/miniupnpc/testminiwget.sh index c048e5bd13..80f90481ed 100755 --- a/libs/miniupnpc/testminiwget.sh +++ b/libs/miniupnpc/testminiwget.sh @@ -1,42 +1,91 @@ #!/bin/sh -# $Id: testminiwget.sh,v 1.4 2011/05/09 08:53:15 nanard Exp $ +# $Id: testminiwget.sh,v 1.20 2022/10/21 21:09:42 nanard Exp $ +# vim: tabstop=4 shiftwidth=4 noexpandtab # project miniupnp : http://miniupnp.free.fr/ -# (c) 2011 Thomas Bernard +# or https://miniupnp.tuxfamily.org/ +# (c) 2011-2022 Thomas Bernard # # test program for miniwget.c # is usually invoked by "make check" # # This test program : # 1 - launches a local HTTP server (minihttptestserver) -# 2 - uses testminiwget to retreive data from this server +# 2 - uses testminiwget to retrieve data from this server # 3 - compares served and received data # 4 - kills the local HTTP server and exits # +# The script was tested and works with ksh, bash +# it should now also run with dash -HTTPSERVEROUT=/tmp/httpserverout -EXPECTEDFILE=/tmp/expectedfile -DOWNLOADEDFILE=/tmp/downloadedfile -#ADDR=localhost -ADDR="[::1]" +TMPD=`mktemp -d -t miniwgetXXXXXXXXXX` +if [ -z "$TESTSERVER" ] ; then + TESTSERVER=./build/minihttptestserver +fi +if [ -z "$TESTMINIWGET" ] ; then + TESTMINIWGET=./build/testminiwget +fi +HTTPSERVEROUT="${TMPD}/httpserverout" +EXPECTEDFILE="${TMPD}/expectedfile" +DOWNLOADEDFILE="${TMPD}/downloadedfile" PORT= RET=0 +IPCONFIG=$(which ifconfig) +IP=$(which ip) +if [ "$IP" ] ; then + if ! $IP addr | grep inet6 ; then + HAVE_IPV6=no + fi +else + if [ -z "$IPCONFIG" ] ; then + IPCONFIG="/sbin/ifconfig" + fi + + if ! $IPCONFIG -a | grep inet6 ; then + HAVE_IPV6=no + fi +fi -#make minihttptestserver -#make testminiwget +case "$HAVE_IPV6" in + n|no|0) + ADDR=localhost + SERVERARGS="" + ;; + *) + ADDR="[::1]" + SERVERARGS="-6" + ;; + +esac + +if [ ! -x "$TESTSERVER" ] || [ ! -x "$TESTMINIWGET" ] ; then + echo "Please build $TESTSERVER and $TESTMINIWGET" + #make minihttptestserver + #make testminiwget + exit 1 +fi # launching the test HTTP server -./minihttptestserver -6 -e $EXPECTEDFILE > $HTTPSERVEROUT & -while [ "$PORT" == "" ]; do +$TESTSERVER $SERVERARGS -e $EXPECTEDFILE > $HTTPSERVEROUT & +SERVERPID=$! +while [ -z "$PORT" ]; do + sleep 1 PORT=`cat $HTTPSERVEROUT | sed 's/Listening on port \([0-9]*\)/\1/' ` done +if [ "$PORT" = "*** ERROR ***" ]; then + echo "HTTP test server error" + echo "Network config :" + $IPCONFIG -a + exit 2 +fi echo "Test HTTP server is listening on $PORT" URL1="http://$ADDR:$PORT/index.html" URL2="http://$ADDR:$PORT/chunked" URL3="http://$ADDR:$PORT/addcrap" +URL4="http://$ADDR:$PORT/malformed" echo "standard test ..." -./testminiwget $URL1 "${DOWNLOADEDFILE}.1" +$TESTMINIWGET $URL1 "${DOWNLOADEDFILE}.1" if cmp $EXPECTEDFILE "${DOWNLOADEDFILE}.1" ; then echo "ok" else @@ -45,7 +94,7 @@ else fi echo "chunked transfert encoding test ..." -./testminiwget $URL2 "${DOWNLOADEDFILE}.2" +$TESTMINIWGET $URL2 "${DOWNLOADEDFILE}.2" if cmp $EXPECTEDFILE "${DOWNLOADEDFILE}.2" ; then echo "ok" else @@ -54,7 +103,7 @@ else fi echo "response too long test ..." -./testminiwget $URL3 "${DOWNLOADEDFILE}.3" +$TESTMINIWGET $URL3 "${DOWNLOADEDFILE}.3" if cmp $EXPECTEDFILE "${DOWNLOADEDFILE}.3" ; then echo "ok" else @@ -62,9 +111,12 @@ else RET=1 fi +echo "malformed response test ..." +$TESTMINIWGET $URL4 "${DOWNLOADEDFILE}.4" + # kill the test HTTP server -kill %1 -wait %1 +kill $SERVERPID +wait $SERVERPID # remove temporary files (for success cases) if [ $RET -eq 0 ]; then @@ -72,8 +124,10 @@ if [ $RET -eq 0 ]; then rm -f "${DOWNLOADEDFILE}.2" rm -f "${DOWNLOADEDFILE}.3" rm -f $EXPECTEDFILE $HTTPSERVEROUT + rmdir ${TMPD} else echo "at least one of the test FAILED" + echo "directory ${TMPD} is left intact" fi exit $RET diff --git a/libs/miniupnpc/testreplyparse/DeletePortMapping.namevalue b/libs/miniupnpc/testreplyparse/DeletePortMapping.namevalue new file mode 100644 index 0000000000..48ca0cccbd --- /dev/null +++ b/libs/miniupnpc/testreplyparse/DeletePortMapping.namevalue @@ -0,0 +1,3 @@ +NewRemoteHost= +NewExternalPort=123 +NewProtocol=TCP diff --git a/libs/miniupnpc/testreplyparse/DeletePortMapping.xml b/libs/miniupnpc/testreplyparse/DeletePortMapping.xml new file mode 100644 index 0000000000..a955c53fcd --- /dev/null +++ b/libs/miniupnpc/testreplyparse/DeletePortMapping.xml @@ -0,0 +1,6 @@ +<?xml version="1.0"?> +<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:DeletePortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost><NewExternalPort>123</NewExternalPort> +<NewProtocol>TCP</NewProtocol></u:DeletePortMapping></s:Body> + +</s:Envelope> + diff --git a/libs/miniupnpc/testreplyparse/GetExternalIPAddress.namevalue b/libs/miniupnpc/testreplyparse/GetExternalIPAddress.namevalue new file mode 100644 index 0000000000..5aa75f882f --- /dev/null +++ b/libs/miniupnpc/testreplyparse/GetExternalIPAddress.namevalue @@ -0,0 +1,2 @@ +NewExternalIPAddress=1.2.3.4 + diff --git a/libs/miniupnpc/testreplyparse/GetExternalIPAddress.xml b/libs/miniupnpc/testreplyparse/GetExternalIPAddress.xml new file mode 100644 index 0000000000..db7ec1f9cb --- /dev/null +++ b/libs/miniupnpc/testreplyparse/GetExternalIPAddress.xml @@ -0,0 +1,2 @@ +<?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetExternalIPAddressResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewExternalIPAddress>1.2.3.4</NewExternalIPAddress></u:GetExternalIPAddressResponse></s:Body></s:Envelope> + diff --git a/libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryReq.namevalue b/libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryReq.namevalue new file mode 100644 index 0000000000..26b169c357 --- /dev/null +++ b/libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryReq.namevalue @@ -0,0 +1,3 @@ +NewProtocol=UDP +NewExternalPort=12345 +NewRemoteHost= diff --git a/libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryReq.xml b/libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryReq.xml new file mode 100644 index 0000000000..bbb540eace --- /dev/null +++ b/libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryReq.xml @@ -0,0 +1,3 @@ +<?xml version="1.0"?> +<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetSpecificPortMappingEntry xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost><NewExternalPort>12345</NewExternalPort><NewProtocol>UDP</NewProtocol></u:GetSpecificPortMappingEntry></s:Body></s:Envelope> + diff --git a/libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryResp.namevalue b/libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryResp.namevalue new file mode 100644 index 0000000000..2189789b4a --- /dev/null +++ b/libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryResp.namevalue @@ -0,0 +1,5 @@ +NewInternalPort=12345 +NewInternalClient=192.168.10.110 +NewEnabled=1 +NewPortMappingDescription=libminiupnpc +NewLeaseDuration=0 diff --git a/libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryResp.xml b/libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryResp.xml new file mode 100644 index 0000000000..77e8d9c7c6 --- /dev/null +++ b/libs/miniupnpc/testreplyparse/GetSpecificPortMappingEntryResp.xml @@ -0,0 +1,2 @@ +<?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetSpecificPortMappingEntryResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewInternalPort>12345</NewInternalPort><NewInternalClient>192.168.10.110</NewInternalClient><NewEnabled>1</NewEnabled><NewPortMappingDescription>libminiupnpc</NewPortMappingDescription><NewLeaseDuration>0</NewLeaseDuration></u:GetSpecificPortMappingEntryResponse></s:Body></s:Envelope> + diff --git a/libs/miniupnpc/testreplyparse/SetDefaultConnectionService.namevalue b/libs/miniupnpc/testreplyparse/SetDefaultConnectionService.namevalue new file mode 100644 index 0000000000..f78c7e2aec --- /dev/null +++ b/libs/miniupnpc/testreplyparse/SetDefaultConnectionService.namevalue @@ -0,0 +1 @@ +NewDefaultConnectionService=uuid:c6c05a33-f704-48df-9910-e099b3471d81:WANConnectionDevice:1,INVALID_SERVICE_ID diff --git a/libs/miniupnpc/testreplyparse/SetDefaultConnectionService.xml b/libs/miniupnpc/testreplyparse/SetDefaultConnectionService.xml new file mode 100644 index 0000000000..ac04c07a93 --- /dev/null +++ b/libs/miniupnpc/testreplyparse/SetDefaultConnectionService.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:SetDefaultConnectionService xmlns:u="urn:schemas-upnp-org:service:Layer3Forwarding:1"><NewDefaultConnectionService>uuid:c6c05a33-f704-48df-9910-e099b3471d81:WANConnectionDevice:1,INVALID_SERVICE_ID</NewDefaultConnectionService></u:SetDefaultConnectionService></s:Body></s:Envelope> diff --git a/libs/miniupnpc/testreplyparse/readme.txt b/libs/miniupnpc/testreplyparse/readme.txt new file mode 100644 index 0000000000..3eb1f015fe --- /dev/null +++ b/libs/miniupnpc/testreplyparse/readme.txt @@ -0,0 +1,7 @@ +This directory contains files used for validation of upnpreplyparse.c code. + +Each .xml file to parse should give the results which are in the .namevalue +file. + +A .namevalue file contain name=value lines. + diff --git a/libs/miniupnpc/testupnpigd.py b/libs/miniupnpc/testupnpigd.py index 6d167a4ce0..806b4f4f81 100644 --- a/libs/miniupnpc/testupnpigd.py +++ b/libs/miniupnpc/testupnpigd.py @@ -1,14 +1,18 @@ -#! /usr/bin/python -# $Id: testupnpigd.py,v 1.4 2008/10/11 10:27:20 nanard Exp $ +#! /usr/bin/env python +# $Id: testupnpigd.py,v 1.7 2020/04/06 10:23:02 nanard Exp $ # MiniUPnP project # Author : Thomas Bernard # This Sample code is public domain. -# website : http://miniupnp.tuxfamily.org/ +# website : https://miniupnp.tuxfamily.org/ # import the python miniupnpc module import miniupnpc import socket -import BaseHTTPServer + +try: + from http.server import BaseHTTPRequestHandler, HTTPServer +except ImportError: + from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer # function definition def list_redirections(): @@ -17,15 +21,15 @@ def list_redirections(): p = u.getgenericportmapping(i) if p==None: break - print i, p + print(i, p) i = i + 1 #define the handler class for HTTP connections -class handler_class(BaseHTTPServer.BaseHTTPRequestHandler): +class handler_class(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.end_headers() - self.wfile.write("OK MON GARS") + self.wfile.write(b"OK MON GARS") # create the object u = miniupnpc.UPnP() @@ -37,20 +41,20 @@ u = miniupnpc.UPnP() u.discoverdelay = 200; try: - print 'Discovering... delay=%ums' % u.discoverdelay + print('Discovering... delay=%ums' % u.discoverdelay) ndevices = u.discover() - print ndevices, 'device(s) detected' + print(ndevices, 'device(s) detected') # select an igd u.selectigd() # display information about the IGD and the internet connection - print 'local ip address :', u.lanaddr + print('local ip address :', u.lanaddr) externalipaddress = u.externalipaddress() - print 'external ip address :', externalipaddress - print u.statusinfo(), u.connectiontype() + print('external ip address :', externalipaddress) + print(u.statusinfo(), u.connectiontype()) #instanciate a HTTPd object. The port is assigned by the system. - httpd = BaseHTTPServer.HTTPServer((u.lanaddr, 0), handler_class) + httpd = HTTPServer((u.lanaddr, 0), handler_class) eport = httpd.server_port # find a free port for the redirection @@ -59,26 +63,26 @@ try: eport = eport + 1 r = u.getspecificportmapping(eport, 'TCP') - print 'trying to redirect %s port %u TCP => %s port %u TCP' % (externalipaddress, eport, u.lanaddr, httpd.server_port) + print('trying to redirect %s port %u TCP => %s port %u TCP' % (externalipaddress, eport, u.lanaddr, httpd.server_port)) b = u.addportmapping(eport, 'TCP', u.lanaddr, httpd.server_port, 'UPnP IGD Tester port %u' % eport, '') if b: - print 'Success. Now waiting for some HTTP request on http://%s:%u' % (externalipaddress ,eport) + print('Success. Now waiting for some HTTP request on http://%s:%u' % (externalipaddress ,eport)) try: httpd.handle_request() httpd.server_close() - except KeyboardInterrupt, details: - print "CTRL-C exception!", details + except KeyboardInterrupt as details: + print("CTRL-C exception!", details) b = u.deleteportmapping(eport, 'TCP') if b: - print 'Successfully deleted port mapping' + print('Successfully deleted port mapping') else: - print 'Failed to remove port mapping' + print('Failed to remove port mapping') else: - print 'Failed' + print('Failed') httpd.server_close() -except Exception, e: - print 'Exception :', e +except Exception as e: + print('Exception :', e) diff --git a/libs/miniupnpc/testupnpreplyparse.c b/libs/miniupnpc/testupnpreplyparse.c deleted file mode 100644 index a02e8f6a62..0000000000 --- a/libs/miniupnpc/testupnpreplyparse.c +++ /dev/null @@ -1,44 +0,0 @@ -/* $Id: testupnpreplyparse.c,v 1.2 2008/02/21 13:05:27 nanard Exp $ */ -/* MiniUPnP project - * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ - * (c) 2006-2007 Thomas Bernard - * This software is subject to the conditions detailed - * in the LICENCE file provided within the distribution */ -#include <stdio.h> -#include <stdlib.h> -#include "upnpreplyparse.h" - -void -test_parsing(const char * buf, int len) -{ - struct NameValueParserData pdata; - ParseNameValue(buf, len, &pdata); - ClearNameValueList(&pdata); -} - -int main(int argc, char * * argv) -{ - FILE * f; - char buffer[4096]; - int l; - if(argc<2) - { - fprintf(stderr, "Usage: %s file.xml\n", argv[0]); - return 1; - } - f = fopen(argv[1], "r"); - if(!f) - { - fprintf(stderr, "Error : can not open file %s\n", argv[1]); - return 2; - } - l = fread(buffer, 1, sizeof(buffer)-1, f); - fclose(f); - buffer[l] = '\0'; -#ifdef DEBUG - DisplayNameValueList(buffer, l); -#endif - test_parsing(buffer, l); - return 0; -} - diff --git a/libs/miniupnpc/testupnpreplyparse.sh b/libs/miniupnpc/testupnpreplyparse.sh new file mode 100644 index 0000000000..a917c4b844 --- /dev/null +++ b/libs/miniupnpc/testupnpreplyparse.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +if [ -z "$TESTUPNPREPLYPARSE" ] ; then + TESTUPNPREPLYPARSE=./build/testupnpreplyparse +fi + +for f in testreplyparse/*.xml ; do + bf="`dirname $f`/`basename $f .xml`" + if $TESTUPNPREPLYPARSE $f $bf.namevalue ; then + echo "$f : passed" + else + echo "$f : FAILED" + exit 1 + fi +done + +exit 0 diff --git a/libs/miniupnpc/updateminiupnpcstrings.sh b/libs/miniupnpc/updateminiupnpcstrings.sh index dde4354a8a..7c42eea5b5 100755 --- a/libs/miniupnpc/updateminiupnpcstrings.sh +++ b/libs/miniupnpc/updateminiupnpcstrings.sh @@ -1,12 +1,23 @@ #! /bin/sh -# $Id: updateminiupnpcstrings.sh,v 1.7 2011/01/04 11:41:53 nanard Exp $ +# $Id: updateminiupnpcstrings.sh,v 1.10 2022/10/16 05:28:15 nanard Exp $ # project miniupnp : http://miniupnp.free.fr/ -# (c) 2009 Thomas Bernard +# (c) 2009-2021 Thomas Bernard FILE=miniupnpcstrings.h -TMPFILE=miniupnpcstrings.h.tmp TEMPLATE_FILE=${FILE}.in +if [ -n "$1" ] ; then + FILE="$1" +fi +if [ -n "$2" ] ; then + TEMPLATE_FILE="$2" +fi +TMPFILE=`mktemp -t miniupnpcstringsXXXXXX` +if [ ! -f "$TMPFILE" ] ; then + echo "mktemp failure" + exit 1 +fi + # detecting the OS name and version OS_NAME=`uname -s` OS_VERSION=`uname -r` @@ -14,11 +25,14 @@ if [ -f /etc/debian_version ]; then OS_NAME=Debian OS_VERSION=`cat /etc/debian_version` fi + # use lsb_release (Linux Standard Base) when available LSB_RELEASE=`which lsb_release` if [ 0 -eq $? -a -x "${LSB_RELEASE}" ]; then - OS_NAME=`${LSB_RELEASE} -i -s` - OS_VERSION=`${LSB_RELEASE} -r -s` + # On NixOS, lsb_release returns strings such as "NixOS" (with quotes), + # so we need to stript them with the following xargs trick: + OS_NAME=`${LSB_RELEASE} -i -s | xargs echo` + OS_VERSION=`${LSB_RELEASE} -r -s | xargs echo` case $OS_NAME in Debian) #OS_VERSION=`${LSB_RELEASE} -c -s` @@ -49,5 +63,5 @@ sed -e "$EXPR" < $TEMPLATE_FILE > $TMPFILE EXPR="s|MINIUPNPC_VERSION_STRING \".*\"|MINIUPNPC_VERSION_STRING \"${MINIUPNPC_VERSION}\"|" echo "setting MINIUPNPC_VERSION_STRING macro value to ${MINIUPNPC_VERSION} in $FILE." sed -e "$EXPR" < $TMPFILE > $FILE -rm $TMPFILE +rm $TMPFILE && echo "$TMPFILE deleted" diff --git a/libs/miniupnpc/wingenminiupnpcstrings.c b/libs/miniupnpc/wingenminiupnpcstrings.c index 38dd01783c..6dcbfa4aea 100644 --- a/libs/miniupnpc/wingenminiupnpcstrings.c +++ b/libs/miniupnpc/wingenminiupnpcstrings.c @@ -1,8 +1,8 @@ -/* $Id: wingenminiupnpcstrings.c,v 1.2 2011/01/11 15:31:13 nanard Exp $ */ +/* $Id: wingenminiupnpcstrings.c,v 1.6 2021/08/21 09:43:40 nanard Exp $ */ /* Project: miniupnp - * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/ * Author: Thomas Bernard - * Copyright (c) 2005-2009 Thomas Bernard + * Copyright (c) 2005-2021 Thomas Bernard * This software is subjects to the conditions detailed * in the LICENSE file provided within this distribution */ #include <stdio.h> @@ -26,7 +26,7 @@ int main(int argc, char * * argv) { dwBuildNumber : The build number of the operating system. dwPlatformId - The operating system platform. This member can be the following value. + The operating system platform. This member can be the following value. szCSDVersion A null-terminated string, such as "Service Pack 3", that indicates the latest Service Pack installed on the system. If no Service Pack has @@ -44,7 +44,7 @@ int main(int argc, char * * argv) { fin = fopen("VERSION", "r"); fgets(miniupnpcVersion, sizeof(miniupnpcVersion), fin); fclose(fin); - for(n = 0; n < sizeof(miniupnpcVersion); n++) { + for(n = 0; n < (int)sizeof(miniupnpcVersion); n++) { if(miniupnpcVersion[n] < ' ') miniupnpcVersion[n] = '\0'; } @@ -59,6 +59,7 @@ int main(int argc, char * * argv) { fout = fopen(argv[2], "w"); if(!fout) { fprintf(stderr, "Cannot open %s for writing.\n", argv[2]); + fclose(fin); return 1; } n = 0; @@ -78,5 +79,37 @@ int main(int argc, char * * argv) { fclose(fout); printf("%d lines written to %s.\n", n, argv[2]); } + if(argc >= 4) { + fout = fopen(argv[3], "w"); + if(fout == NULL) { + fprintf(stderr, "Cannot open %s for writing.\n", argv[2]); + return 1; + } else { + char * cur, * next; + fprintf(fout, "#define LIBMINIUPNPC_DOTTED_VERSION \"%s\"\n", miniupnpcVersion); + next = strchr(miniupnpcVersion, '.'); + if (next && *next) { + *next = '\0'; + next++; + } + fprintf(fout, "#define LIBMINIUPNPC_MAJOR_VERSION %s\n", miniupnpcVersion); + cur = next; + next = strchr(cur, '.'); + if (next && *next) { + *next = '\0'; + next++; + } + fprintf(fout, "#define LIBMINIUPNPC_MINOR_VERSION %s\n", cur); + cur = next; + next = strchr(cur, '.'); + if (next && *next) { + *next = '\0'; + next++; + } + fprintf(fout, "#define LIBMINIUPNPC_MICRO_VERSION %s\n", cur); + fclose(fout); + printf("%s written\n", argv[3]); + } + } return 0; } -- GitLab