Commit Graph

2347 Commits

Author SHA1 Message Date
Thomas Bernard 3a87be33e7
upnpsoap.c: comment and improve GetExternalIPAddress()
GetExternalIPAddress returns empty string when the External IP address can
not be retrieved.
2021-03-31 09:43:28 +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
Pali Rohár 79ca440f73 miniupnpd: When ExternalIPAddress is unknown returns empty string in GetExternalIPAddress
IGD v2.0 specification for WANIPConnection:2 says:

  When the external IP address could not be retrieved by the gateway (for
  example, because the interface is down or because there was a failure in
  the last connection setup attempt), then the ExternalIPAddress MUST be
  equal to the empty string.

So instead of Error 501 "Action Failed" returns empty string to be
compliant with IGD v2.0 specification.
2021-03-28 17:20:34 +02:00
Thomas Bernard 2254e8928e
(try to) fix miniupnpc mingw build in gitlab-ci 2021-03-19 10:20:42 +01: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 6677180885
iptables-dev => libiptc-dev + libxtables-dev 2021-02-26 15:24:46 +01:00
Thomas Bernard 9239cf28c1
Fix the cleanup of PREROUTING mangle chain
it was changed iby mistake to FORWARD by 82ec7bc3df

see discussion in PR #530
2021-02-26 15:15:09 +01:00
Thomas Bernard 3b6b0ba1e3
INSTALL: update 2021-02-26 15:14:03 +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 71830c711a
show version
fixes #503
2021-01-15 20:25:03 +01:00
Thomas Bernard 2adcf3f432
miniupnpcmodule.c: throw an exception in UPnP_discover()
fixes #521
2021-01-15 20:21:02 +01:00
Thomas Bernard ef03e1bc21 Add submit_to_minissdpd.py 2021-01-15 20:01:28 +01:00
Sander Jonkers 0ac25c1a92 Comment: module, and MiniSSDPd reference 2021-01-15 19:58:57 +01:00
Sander Jonkers 1ae60f2a6c codelength() now also accepts ASCII strings 2021-01-15 19:58:57 +01:00
Sander Jonkers 475dc0a902 PEP8: Function names should be snake_case
universal naming for module and function: submit_to_minissdpd
2021-01-15 19:58:53 +01:00
Sander Jonkers 884f17c8db rc and message. __name__ check, so usable as module 2021-01-15 19:52:58 +01:00
Sander Jonkers f1ba1a6adb black-formatting 2021-01-15 19:51:06 +01:00
Thomas Bernard 207d1849e4 miniupnpd.c: typo and ip -> IP 2021-01-15 19:33:29 +01:00
Thomas Bernard 4540d160d9
merge remote-tracking branch 'pali/master' into master 2021-01-12 01:12:42 +01:00
Thomas Bernard f8b45ab854
fix encoding of length > 128 2021-01-12 01:10:05 +01:00
Thomas Bernard 6ce08c5871 python3 2021-01-12 01:01:28 +01:00
Thomas Bernard 7fc8d3268d igonre vim files 2021-01-07 19:43:54 +01:00
Thomas Bernard b24d44c7f5
minissdpd: sample code in Python 2021-01-07 19:43:31 +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
Pali Rohár e6bf74a691 Add check that miniupnpd is not going to listen on WAN interface with public IP address
Option listen= is used for LAN interface/address and option ext_addr= is
used for public IP address. If users by mistake swap WAN and LAN interface
or public and private IP addresses then miniupnpd obviously would not work
and instead of hacking miniupnpd code users should rather check their
miniupnpd configuration or local firewall settings.

So add checks and hints which prevents security issues like swapping LAN
and WAN interfaces/addresses and therefore prevent exposing port forwarding
and firewall configuration on public Internet.
2020-12-30 11:23:29 +01:00
Pali Rohár 304ff79dc5 Update and extend description from STUN output
People sometimes do not understand where is the problem, so include also
hints what they needs to check, change and re-configure.
2020-12-30 11:22:12 +01:00
Thomas Bernard 9ef311d235
miniupnpd: version 2.2.1 2020-12-20 19:12:47 +01:00
Thomas Bernard 544e6fcc73
miniupnpc: version 2.2.1 2020-12-20 19:11:18 +01:00
Pali Rohár 49a715df6e Fix compilation on Travis, add missing WINDRES 2020-12-12 12:41:37 +01:00
Pali Rohár 610ef8d936 Fix syntax error in Travis YAML file
Travis YAML file cannot be currently parsed and therefore Travis was not started, see:
https://travis-ci.org/github/miniupnp/miniupnp/requests
2020-12-12 01:20:48 +01:00
Tim Gates 341d0f51a2
docs: fix simple typo, decription -> description
There is a small typo in miniupnpd/commonrdr.h, miniupnpd/ipf/ipfrdr.c, miniupnpd/pf/obsdrdr.c.

Should read `description` rather than `decription`.
2020-12-10 05:26:04 +11: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