diff --git a/depends/packages/miniupnpc.mk b/depends/packages/miniupnpc.mk index fdbe22cd..33f7a37f 100644 --- a/depends/packages/miniupnpc.mk +++ b/depends/packages/miniupnpc.mk @@ -1,8 +1,8 @@ package=miniupnpc -$(package)_version=2.0.20180203 +$(package)_version=2.3.3 $(package)_download_path=https://miniupnp.tuxfamily.org/files/ $(package)_file_name=$(package)-$($(package)_version).tar.gz -$(package)_sha256_hash=90dda8c7563ca6cd4a83e23b3c66dbbea89603a1675bfdb852897c2c9cc220b7 +$(package)_sha256_hash=d52a0afa614ad6c088cc9ddff1ae7d29c8c595ac5fdd321170a05f41e634bd1a define $(package)_set_vars $(package)_build_opts=CC="$($(package)_cc)" @@ -12,17 +12,19 @@ $(package)_build_env+=CFLAGS="$($(package)_cflags) $($(package)_cppflags)" AR="$ endef define $(package)_preprocess_cmds - mkdir dll && \ - sed -e 's|MINIUPNPC_VERSION_STRING \"version\"|MINIUPNPC_VERSION_STRING \"$($(package)_version)\"|' -e 's|OS/version|$(host)|' miniupnpcstrings.h.in > miniupnpcstrings.h && \ - sed -i.old "s|miniupnpcstrings.h: miniupnpcstrings.h.in wingenminiupnpcstrings|miniupnpcstrings.h: miniupnpcstrings.h.in|" Makefile.mingw + mkdir -p dll endef define $(package)_build_cmds - $(MAKE) libminiupnpc.a $($(package)_build_opts) + $(MAKE) $(if $(findstring mingw32,$(host_os)),libminiupnpc.a,build/libminiupnpc.a) $($(package)_build_opts) endef define $(package)_stage_cmds mkdir -p $($(package)_staging_prefix_dir)/include/miniupnpc $($(package)_staging_prefix_dir)/lib &&\ - install *.h $($(package)_staging_prefix_dir)/include/miniupnpc &&\ - install libminiupnpc.a $($(package)_staging_prefix_dir)/lib + install include/*.h $($(package)_staging_prefix_dir)/include/miniupnpc &&\ + if test -f build/libminiupnpc.a; then \ + install build/libminiupnpc.a $($(package)_staging_prefix_dir)/lib; \ + else \ + install libminiupnpc.a $($(package)_staging_prefix_dir)/lib; \ + fi endef diff --git a/doc/dependencies.md b/doc/dependencies.md index 7513902b..662f1de4 100644 --- a/doc/dependencies.md +++ b/doc/dependencies.md @@ -21,7 +21,7 @@ branch. You can find instructions for installing or building them in the | libjpeg | | | | | [Yes](https://github.com/agrarian-project/agrarian/blob/master/depends/packages/qt.mk#L65) | | libpng | | | | | [Yes](https://github.com/agrarian-project/agrarian/blob/master/depends/packages/qt.mk#L64) | | librsvg | | | | | | -| MiniUPnPc | [2.0.20180203](http://miniupnp.free.fr/files) | | No | | | +| MiniUPnPc | [2.3.3](https://miniupnp.tuxfamily.org/files/) | | No | | | | OpenSSL | [3.5.6](https://www.openssl.org/source) | | No | | | | GMP | [6.1.2](https://gmplib.org/) | | No | | | | PCRE | | | | | [Yes](https://github.com/agrarian-project/agrarian/blob/master/depends/packages/qt.mk#L66) | diff --git a/doc/modernization.md b/doc/modernization.md index f529f5b8..e5225b4f 100644 --- a/doc/modernization.md +++ b/doc/modernization.md @@ -21,6 +21,7 @@ The current deterministic `depends/` baseline is: - qrencode 4.1.1 for Qt wallet QR code support - libevent 2.1.12-stable - GMP 6.1.2 +- MiniUPnPc 2.3.3 when UPnP support is enabled - ZeroMQ 4.3.5 when enabled The currently verified binaries are: diff --git a/src/net.cpp b/src/net.cpp index 66d3ade2..dce517b1 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1144,7 +1144,12 @@ void ThreadMapPort() struct IGDdatas data; int r; +#if defined(MINIUPNPC_API_VERSION) && MINIUPNPC_API_VERSION >= 18 + char wanaddr[64]; + r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr), wanaddr, sizeof(wanaddr)); +#else r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr)); +#endif if (r == 1) { if (fDiscover) { char externalIPAddress[40];