Commit Graph

653 Commits

Author SHA1 Message Date
Thomas Bernard 5861f92425
upnpc.c: CheckPinholeWorking is optional
Error 602 should be returned if it is not implemented

see #658
2023-05-30 00:29:15 +02:00
Thomas Bernard cd703d4cd0
upnperrors.c: add 60x errors from UPnP Device Architecture 2023-05-30 00:28:04 +02:00
scribam 836fba4684 cmake: define _NETBSD_SOURCE for NetBSD 2023-04-29 17:11:24 +02:00
Thomas Bernard 8ced59d384
2022 => 2023 2023-01-26 23:53:58 +01:00
Thomas Bernard ec57d80849
2022 => 2023 2023-01-26 23:49:41 +01:00
Thomas Bernard b10c247fb1
upnpc.c: prevent warning with gcc 10 and 11
src/upnpc.c:153:37: warning: ‘%d’ directive output may be truncated writing between 1 and 10 bytes into a region of size 6 [-Wformat-truncation=]
  153 |                 snprintf(index, 6, "%d", i);
      |                                     ^~
src/upnpc.c:153:36: note: directive argument in the range [0, 2147483647]
  153 |                 snprintf(index, 6, "%d", i);
      |                                    ^~~~

Somehow the static analyser fails to recognize that 0 <= i < 65536

see #643
2023-01-26 23:44:26 +01:00
Thomas Bernard 014c9df8ee cmake use CMAKE_INSTALL_INCLUDEDIR 2023-01-04 22:49:35 +01:00
Thomas Bernard deea33c2b9 cmake: install of external-ip.sh
see #637
2023-01-04 22:48:57 +01:00
Thomas Bernard 12f7201abe cmake: install man page
fixes #637
2023-01-04 22:42:10 +01:00
Thomas Bernard b9bbab490a cmake: install listdevices / upnpc-static / upnpc-shared
see #637
2023-01-04 22:33:19 +01:00
scribam ea67c29b64 miniupnpc: update cmake project version 2022-10-21 23:45:35 +02:00
Thomas Bernard 7d1d8bc386
miniupnpc version 2.2.4 2022-10-21 23:05:29 +02:00
Thomas Bernard aa7e399604
miniupnpc: make test with CMake
fixes #531
2022-10-21 22:49:49 +02:00
Thomas Bernard fef6d4d17c
miniupnpc/testminiwget.sh / testupnpreplyparse.sh: allow to define executables 2022-10-21 22:45:46 +02:00
Thomas Bernard ac5e908881
miniupnpc/CMakeLists.txt: use project VERSION/DESCRIPTION/HOMEPAGE_URL 2022-10-15 17:36:28 +02:00
Thomas Bernard 89ac1d6bf6
miniupnpc: add URL in generated miniupnpc.pc 2022-10-15 17:29:40 +02:00
Thomas Bernard 9350846757
miniupnpc: add Homepage url, version and desc in miniupnpc.pc generated by CMake build 2022-10-15 17:29:40 +02:00
Thomas Bernard 5a398006b9
miniupnpc/CMakeLists.txt: generate and install miniupnpc.pc
fixes #574
2022-10-15 17:29:39 +02:00
mmyjona 72d3183e2d
fix netbsd build 2022-09-15 04:51:57 -07:00
fanquake b62ae38f3c
build: use lowercase x in _WIN32_WINNT define
For consistency with all other usages of `_WIN32_WINNT` throughout the
code, and to match the mingw-w64 headers.
2022-09-10 10:44:30 +01:00
fanquake d66ff5e488
build: add distfile to miniupnpc make clean target 2022-08-31 12:50:47 +01:00
fanquake d40daa6f22
build: respect CFLAGS in makefile.mingw
Similar to the other Makefile.
2022-07-27 15:52:37 +01:00
Thomas Bernard 6d59337a57 MS VS project: upnpc-shared.exe for exe using the .dll 2022-05-15 16:38:15 +02:00
Abdullah 9ae617b232
Fix capitalisation of GitHub (#608)
* Fixed capitalisation of GitHub
2022-05-06 09:18:23 +02:00
Biswapriyo Nath 9e99c44adb
cmake: Fix static library name in mingw
This corrects the static library name to libminiupnpc.a.
Otherwise 'lib' is prepended twice, like liblibminiupnpc.a.
2022-04-01 20:41:28 +05:30
Zahary Karadjov 689d1fdd04 Fix the build on NixOS
On NixOS, the lsb_release command returns strings such as "NixOS"
and "22.04" (with the quotes included). This leads to compilation
problems because the updateminiupnpcstrings.sh scripts ends up
creating a C file with the following content:

The fix is to simply strip the quotes from the lsb_release output.
2022-03-21 19:37:25 +02:00
Thomas Bernard 51f185fd13
upnpc.c: use of @ to replace local lan address
example :
$ upnpc-static -a @ 9999 9999 TCP

fixes #532
2022-02-20 00:27:34 +01:00
Sergey Ponomarev af812c8775
Refine LICENSE so github can understand it ;)
see #592
also replace project specific files to symbolic link
2022-02-19 18:38:48 +01:00
Sergey Ponomarev 1479881003 minixml.c sync sources
In the commit a0573e2518
was fixed a buffer overflow in the minixml.c but it wasn't copied to upnpc-async.
To make comparison simpler the header was also synced
2022-01-27 11:29:16 +02:00
Thomas BERNARD 327c400e4f
Merge pull request #589 from scribam/winsock-deprecated-no-warnings
miniupnpc/cmake: add _WINSOCK_DEPRECATED_NO_WARNINGS definition
2022-01-22 18:01:25 +01:00
Thomas BERNARD 4509935d56
Merge pull request #587 from fanquake/mingw_pkg_config
mingw: add minimal pkg-config support
2022-01-22 17:55:33 +01:00
scribam bcaee022a3 miniupnpc/cmake: add _WINSOCK_DEPRECATED_NO_WARNINGS definition 2022-01-04 19:32:39 +01:00
fanquake 1f46c250d9
doc: add windres to mingw *nix build command 2022-01-03 10:08:45 +08:00
fanquake 30630daa22
mingw: add minimal pkg-config support 2022-01-03 10:02:12 +08:00
Thomas Bernard dc7dd30a0c pymoduletest.py: migrate to python 3 2021-11-09 19:56:15 +01:00
Thomas Bernard f1dc690c3d
pythonmodule: allow to specify root desc url as selectigd() argument
fixes #571
2021-11-09 19:55:22 +01:00
Thomas BERNARD 77876aea5f
Merge pull request #555 from SpaceIm/fix/cmake-cross-build-ios
CMake: fix cross-build to iOS/tvOS/watchOS
2021-10-17 10:42:35 +02:00
heitbaum f82b0563a7 miniupnpc/CMakeLists.txt: fix install for headers 2021-10-01 00:00:27 +10:00
Thomas Bernard dc82d25cb1
Makefile.mingw: use CI_COMMIT_SHORT_SHA from gitlab-ci 2021-09-30 01:49:30 +02:00
Michał Górny ed1dc4bb5c Makefile: fix install rules to account for $(BUILD)
Fix missing references to $(BUILD) in the install rules, as well
as incorrect shared library symlink name.  Otherwise, the 'install'
phase fails either being unable to find files:

    make: *** No rule to make target 'miniupnpc.pc', needed by 'install'.  Stop.

or trying to create the symlink in the wrong subdirectory:

    ln: failed to create symbolic link '/tmp/z/usr/lib/build/libminiupnpc.so': No such file or directory
2021-09-29 08:28:27 +02:00
Thomas Bernard 36a65e3d84 miniupnpc/Changelog.txt: VERSION 2.2.3 2021-09-28 23:55:53 +02:00
Thomas Bernard 2df8120326 miniupnpc version 2.2.3 2021-09-28 23:47:00 +02:00
Thomas Bernard d4610f4a38
updateminiupnpcstrings.sh: fix. "rm -v" is nonstandard 2021-09-28 23:46:17 +02:00
Thomas Bernard d61d3e6b66
miniupnpcmodules.c: #include <structmember.h>
à la place de #include "structmember.h"
2021-09-28 23:45:41 +02:00
Thomas Bernard ee071c62f0 Merge branch 'include-dir' 2021-09-28 22:48:47 +02:00
Thomas Bernard 6d8c22e82b miniupnpc/Makefile: clean testaddr_is_reserved 2021-09-28 22:45:41 +02:00
Thomas Bernard 1fa653117d
update MANIFEST.in 2021-08-22 23:26:10 +02:00
Thomas Bernard 811d9bc778
update Changelog.txt 2021-08-22 23:26:10 +02:00
Thomas Bernard 3cbb28b74a
fix setupmingw32.py 2021-08-22 23:26:10 +02:00
Thomas Bernard 6600cdf792
miniupnpc: fix Makefile.mingw 2021-08-22 23:26:09 +02:00
Thomas Bernard eba48d0f4e
update VC++ projects 2021-08-22 23:26:09 +02:00
Thomas Bernard 177cac1368
updateminiupnpcstrings.sh: mktemp 2021-08-22 23:26:09 +02:00
Thomas Bernard f1f3b6a5fc
fix build of miniupnpcstrings.h 2021-08-22 23:26:09 +02:00
Thomas Bernard 4975eeabe2
update CMakeLists.txt
CMakeLists.txt: always includes minissdpc.c
2021-08-22 23:26:09 +02:00
Thomas Bernard 92b1c8198d
WIP. Reorganize src build directories 2021-08-22 23:26:04 +02:00
Thomas Bernard 874a3aba9e
miniupnpc: move public .h files to include/ subdir
fixes #540
2021-08-22 23:21:54 +02:00
Thomas Bernard 384268ac46
LICENSE / README : 2021 2021-08-22 23:15:53 +02:00
Thomas Bernard 2066ccbbdb Makefile: flags for ASAN 2021-08-21 12:57:13 +02:00
Thomas Bernard 2c4acd0d50 Makefile: use CPPFLAGS instead of CFLAGS for -D 2021-08-21 12:40:11 +02:00
Thomas Bernard 2cc539ae27 upnpdev.h: 2021 2021-08-21 11:46:50 +02:00
Ștefan Talpalaru d04473c67f
miniupnpc: don't assume '.' is in the Windows PATH 2021-08-17 02:48:36 +02:00
SpaceIm da771539c1 fix cross-build to iOS/tvOS/watchOS 2021-07-19 22:35:31 +02:00
Thomas Bernard 97b7ec1ad2
normalize use of __STDC_VERSION__ 2021-06-17 09:25:26 +02:00
fanquake 8f9ce751ba
Fix __STDC_VERSION__ check in upnpdev.h 2021-06-17 14:48:34 +08:00
Thomas Bernard 479f6ed616
miniupnpc/CMakeLists.txt: TAB => SPACES 2021-05-22 00:09:09 +02:00
past-due 2c564135e1 [CMake] Build listdevices.c as part of the listdevices executable
Do not include it in MINIUPNPC_SOURCES
2021-05-21 17:06:33 -04:00
Thomas Bernard f3c0d52ca4
wingenminiupnpcstrings.c: fix -Wsign-compare warning 2021-05-19 10:33:33 +02:00
Thomas Bernard 69acdf3356
ssdpDiscoverDevices() ignore empty string multicastif
fixes #544
2021-05-13 13:01:38 +02:00
Thomas Bernard f13a79fabc Merge branch 'apple_clock_gettime_fallback_1'
see #516
2021-05-12 00:09:48 +02:00
Thomas Bernard 56aa707a75
use C style comments 2021-05-12 00:09:28 +02:00
Thomas Bernard 0c7579c9aa
2020 => 2021 2021-05-12 00:00:06 +02:00
Pali Rohár 20ee72f9c8 miniupnpc: Show error message when GetExternalIPAddress returns empty string
According to IGD v2.0 specification GetExternalIPAddress can return also
empty string in case of error.
2021-03-28 17:33:15 +02:00
Fabio Alessandrelli 3a08dd4b89 Use GetBestInterfaceEx when available.
Since GetBestInterface is not available in UWP apps.

GetBestInterface:
https://docs.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getbestinterface#requirements

GetBestInterfaceEx:
https://docs.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getbestinterfaceex#requirements
2021-03-18 17:30:46 +01:00
Fabio Alessandrelli c1b64740fb Use WINVER values instead of _WIN32_WINNT_[NAME].
WINVER values are well defined, see:

https://docs.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=msvc-160
2021-03-18 17:11:48 +01:00
Thomas Bernard 81029a860b
miniupnpc: version 2.2.2 2021-03-03 00:50:51 +01:00
Thomas Bernard 200cf4cd75
miniupnpc: update Changelog.txt + 2021 2021-03-03 00:41:49 +01:00
Thomas BERNARD 94f72a63b5
Merge pull request #486 from hrydgard/fix-uwp-build
Fix Windows UWP build.
2021-02-26 15:41:11 +01:00
Thomas Bernard bfc5eab6be
fix #522 for MS VS 2010 too 2021-02-05 20:37:15 +01:00
Pali Rohár b6d8a4545b miniupnpc: Enable -W -Wstrict-prototypes compile flags also for MinGW builds 2021-01-27 13:14:33 +01:00
Pali Rohár c8883e8491 miniupnpc: Fix compile warning: comparison between signed and unsigned
receivedata.c: In function ‘receivedata’:
receivedata.c:66: warning: comparison between signed and unsigned

Macro ISINVALID needs to be defined via INVALID_SOCKET on all WIN32 targets, not only for MSVC.
2021-01-27 13:12:24 +01:00
Pali Rohár d693584fdb miniupnpc: Fix compile warning: unused parameter
receivedata.c: In function ‘receivedata’:
receivedata.c:35:41: warning: unused parameter ‘scope_id’ [-Wunused-parameter]
             int timeout, unsigned int * scope_id)
                          ~~~~~~~~~~~~~~~^~~~~~~~
2021-01-27 13:10:49 +01:00
Pali Rohár e768e1555e miniupnpc: Fix compile warning: unused parameter
miniupnpc.c: In function ‘upnpDiscoverDevices’:
miniupnpc.c:270:34: warning: unused parameter ‘minissdpdsock’ [-Wunused-parameter]
                     const char * minissdpdsock, int localport,
                     ~~~~~~~~~~~~~^~~~~~~~~~~~~
2021-01-27 13:10:03 +01:00
Thomas Bernard 36cc66edda Visual Studio : define INTERNAL_NAME
fixes #522
2021-01-23 00:05:38 +01:00
pastdue 1d38b37732 Fallback for earlier Apple platforms that lack clock_gettime 2021-01-15 17:15:54 -05:00
Thomas Bernard 2adcf3f432
miniupnpcmodule.c: throw an exception in UPnP_discover()
fixes #521
2021-01-15 20:21:02 +01:00
Thomas Bernard 474658716f
miniupnpc: update Changelog.txt
regarding bfbe42d392
2021-01-04 01:17:50 +01:00
Thomas Bernard 184ed52069
upnpc.c: fix SetRedirectAndTest() args. 2021-01-04 01:16:02 +01:00
Pali Rohár bfbe42d392 miniupnpc: Fix usage of IP_MULTICAST_IF with struct ip_mreqn
When struct ip_mreqn is passed to IP_MULTICAST_IF setsockopt option it is
always required to set also ipv4 source address. Otherwise Linux kernel
will choose default system multicast ipv4 address which does not have to
belong to chosen interface specified in struct ip_mreqn.

Therefore on system with more multicast interfaces and more ipv4 addresses,
it may happen that interface chosen by upnpc -m option would use ipv4
address which does not belong to this interface.

This change is fixing above issue and ensure that if interface is chosen by
upnpc -m option then source address which belongs to this interface would
be used.

Without this change upnpc -m eth1 can send multicast traffic over interface
eth1 but with source ipv4 address of interface eth0, which obviously would
be rejected by upnp gateway.
2021-01-04 00:29:58 +01:00
Pali Rohár 36a6913970 miniupnpc: Add missing checks for if_nametoindex() return value
if_nametoindex() returns zero value on failure. Add missing error handling.
2020-12-30 13:41:20 +01:00
Pali Rohár 0d5b416e05 miniupnpc: Fix checking for inet_pton() errors
inet_pton() indicates error by zero or negative return value.
2020-12-30 13:39:36 +01:00
Thomas Bernard 544e6fcc73
miniupnpc: version 2.2.1 2020-12-20 19:11:18 +01:00
Thomas Bernard ba130320f4
.gitignore: wingenminiupnpcstrings 2020-11-30 01:59:15 +01:00
Thomas Bernard ca4e0342bf
genminiupnpcstrings.vbs: generates rc_version.h as well
see #512
2020-11-30 01:55:06 +01:00
Thomas Bernard b28462b62a
wingenminiupnpcstrings also generates rc_version.h 2020-11-30 01:48:15 +01:00
Thomas Bernard f04dbafe09
mingw32: build resources for .dll 2020-11-30 01:21:26 +01:00
Stanislas Dolcini 44dd54051c Add RC file 2020-11-28 11:49:59 +01:00
Cristian Morales Vega 677e0db636 Install cmake config file
miniupnpc::miniupnpc becomes an ALIAS for the shared library, if
available, and the static library otherwise.
Users of the installed library can use MINIUPNPC_USE_STATIC_LIBS to
force the use of the static library.
2020-11-27 18:49:51 +00:00
Thomas Bernard 5b5ce9e49e Merge remote-tracking branch 'RedDwarf69/stuff' into master 2020-11-27 19:08:35 +01:00
Cristian Morales Vega f1f8ae3659 cmake: use GNUInstallDirs 2020-11-25 11:09:21 +00:00
Cristian Morales Vega efcc616110 cmake: remove wrong target_include_directories() 2020-11-24 16:37:35 +00:00