Commit Graph

1906 Commits

Author SHA1 Message Date
Nils Andreas Svee
5262990d8e miniupnpd: support newer libnftnl versions 2018-07-01 23:50:12 +02:00
Thomas Bernard
ef179a45e3 do not check empty string with strlen(s) == 0
see #292
2018-06-01 10:55:45 +02:00
Thomas Bernard
72005ce86a add -w option to iptables.
see https://miniupnp.tuxfamily.org/forum/viewtopic.php?p=5113

Signed-off-by: Thomas Bernard <miniupnp@free.fr>
2018-05-29 12:26:33 +02:00
Pali Rohár
c1472ffe4e miniupnpd: GetExternalIPAddress(): Instead of invalid IP address 0.0.0.0 returns error 501
IP address 0.0.0.0 is filled when it is not possible to retrieve IP address. According to specification, GetExternalIPAddress() can return error 501 when action failed.
2018-05-19 17:28:43 +02:00
Pali Rohár
8c97654d70 miniupnpd: When enabled perform STUN to learn external IP address and NAT type
Also enable port forwarding when direct (non-NAT) connection or unrestricted NAT 1:1 (without any filtering) is detected.
2018-05-19 13:32:42 +02:00
Pali Rohár
8e10a1aeab miniupnpd: Disable port forwarding when we are behind restrictive nat with reserved / private IP address
In this case port forwarding is impossible, so rather return error code to the client instead of silently trying to do something and informing clients that port forwarding is enabled.
2018-05-19 13:32:04 +02:00
Pali Rohár
cce19781e6 miniupnpd: Add validation that public ip address is not reserved and is really public
This ensures that all requests for getting public IP address (either via UPnP IGD or PCP/PMP) would contain correct public IP address or an error (instead of some invalid private/reserved IP address).
2018-05-19 13:31:26 +02:00
Pali Rohár
c35935c61d miniupnpd: Add function addr_is_reserved() to check if address is private/reserved and therefore not for public port forwarding 2018-05-19 13:31:14 +02:00
Pali Rohár
4f53b322fd miniupnpd: Add function perform_stun() for detecting external IP address and restrictive NAT via STUN protocol
It automatically unblock selected UDP ports for incoming responses and after finishing ports unblock is removed.
2018-05-19 13:31:08 +02:00
Pali Rohár
cd7284785b miniupnpd: Add function delete_filter_rule() also for PF and Linux Netfilter
It is needed for STUN implementation.
2018-05-19 13:31:02 +02:00
Tengiz Sharafiev
d3a7441aeb
Fix colliding of miniupnpc.lib files
Fix miniupnp/miniupnp#270

Both libminiupnpc-static and libminiupnpc-shared targets
were generated miniupnpc.lib files.
Now libminiupnpc-static generates libminiupnpc.lib whereas
libminiupnpc-shared generates miniupnpc.lib and miniupnpc.dll
2018-05-09 13:52:41 +03:00
Tengiz Sharafiev
891b15b789
Fix copy-paste typo 2018-05-09 13:51:30 +03:00
Thomas Bernard
582375b64f
miniupnpd: VERSION 2.1 2018-05-08 23:40:27 +02:00
Thomas Bernard
e11bbf0bc0
miniupnpd/pcp: Send PCP announcment at startup
fixes #254
2018-05-08 23:06:19 +02:00
yangfl
b3849ef311 Fix OS detection for Debian kFreeBSD 2018-05-08 21:59:15 +08:00
Thomas Bernard
bd836936f7 miniupnpc: VERSION 2.1 2018-05-07 13:12:58 +02:00
Thomas Bernard
4a9c12ca20 VBscript to generate miniupnpcstrings.h
fixes #297
2018-05-07 12:51:59 +02:00
Thomas BERNARD
943e28bdaa
Merge pull request #296 from btolfa/miniupnpc-modern-cmake
Modernize and cleanup CMakeLists.txt
2018-05-07 11:24:22 +02:00
Thomas Bernard
d2bbdee995 fix typo introduced in 00abd9e6c8 2018-05-03 09:54:02 +02:00
Thomas Bernard
a92138345b add option LEASEFILE_USE_REMAINING_TIME
new function lease_file_rewrite()
that is called just before exiting, and when SIGUSR2 is received
see #295
2018-05-02 09:40:12 +02:00
Thomas Bernard
d0e7958617 lease_file_remove(): replace strncpy/strncat by snprintf() 2018-05-01 13:04:20 +02:00
Thomas Bernard
f6ac854f0f miniupnpd: fix storing of unlimited lease time in lease_file
see #295
2018-05-01 11:26:49 +02:00
Thomas Bernard
17773f0a72 if LEASEFILE_USE_REMAINING_TIME is defined, only the remaining time is stored
see #295
2018-04-30 17:25:26 +02:00
Thomas Bernard
00abd9e6c8 miniupnpd: store UNIX time in lease_file
fixes #295
2018-04-30 16:59:40 +02:00
Thomas Bernard
61703ad8b1 miniupnpc/lisdevices.c: remove warnings. fix leak 2018-04-30 16:44:15 +02:00
Thomas Bernard
073642d7e4 test2 2018-04-30 16:39:28 +02:00
Thomas Bernard
cc3541e6cf appveyor: version 2018-04-30 16:35:07 +02:00
Thomas Bernard
f65d34433f miniupnpc/listdevices: remove duplicates 2018-04-30 16:26:29 +02:00
Thomas BERNARD
bdfd7bb562 miniupnpc/listdevices: show devices sorted by XML desc URL 2018-04-30 01:59:38 +02:00
Tengiz Sharafiev
530b272350
Modernize and cleanup CMakeLists.txt
[Effective Modern CMake](https://gist.github.com/mbinna/c61dbb39bca0e4fb7d1f73b0d66a4fd1)

- Set the minimum required version for CMake to 3.5
- Added `UPNPC_BUILD_SAMPLE` option for building sample client application (upnpc.c)
- Added interface target library `miniupnpc-private` for common settings like compile
  definitions, flags and include directories. It helps to keep global scope clean.
  https://cmake.org/cmake/help/v3.11/manual/cmake-buildsystem.7.html#interface-libraries
- Replaced `-fPIC` compile option with `POSITION_INDEPENDENT_CODE` target property
  https://cmake.org/cmake/help/v3.11/prop_tgt/POSITION_INDEPENDENT_CODE.html#prop_tgt:POSITION_INDEPENDENT_CODE
- Set usage requirements for `libminiupnpc-*` targets for more convenient
  usage through `add_subdirectory()` (as cmake subproject)
  https://cmake.org/cmake/help/v3.11/manual/cmake-buildsystem.7.html#build-specification-and-usage-requirements
- Removed old and outdated code from CMakeLists.txt
2018-04-27 21:38:25 +07:00
Thomas Bernard
491ee9f8bf miniupnpd/upnpevents.c: Add log when error 2018-04-27 00:08:06 +02:00
Thomas Bernard
0e3dd7b3fa appveyor: message 2018-04-26 22:49:06 +02:00
Thomas Bernard
a78750c6ca appveyor: push artifacts 2018-04-26 22:38:24 +02:00
Thomas Bernard
b7e1b2ef09 miniupnpc/miniupnpcmodule.c: small fix 2018-04-26 22:27:05 +02:00
Thomas Bernard
4931404b8a miniupnpc: build python module with appveyor 2018-04-26 22:17:53 +02:00
Thomas Bernard
9663c55c61 miniupnpc/Makefile.mingw: Support cross compiling for Ming32
fixes #293
2018-04-26 22:13:06 +02:00
Thomas Bernard
239d048489 Merge branch 'pf_use_ext_ip_addr' 2018-04-22 21:27:44 +02:00
Thomas Bernard
5dcd40aece netfilter/iptpinhole.c: remove warning: implicit declaration of function 'upnp_time'
fixes ef94635100
2018-04-22 21:24:30 +02:00
Thomas Bernard
0366cd0ba0 replace strlen(s) > 0 by s[0] != '\0'
see #292
2018-04-22 21:21:58 +02:00
Thomas Bernard
2b6fa0839f no more strlen(xxx) == 0.
Fixes #292
2018-04-20 17:19:52 +02:00
Thomas Bernard
9d569438d3 update MS VS 2010 project files 2018-04-20 16:34:44 +02:00
Thomas Bernard
154d27c773 miniupnpc/upnpc.c: 2017=>2018 2018-04-20 16:34:42 +02:00
Thomas Bernard
53e8185725 miniupnpd/pf: set dst address in rule if use_ext_ip_addr is set
fixes #231
2018-04-12 11:36:12 +02:00
Thomas Bernard
1fe8d21cf2 fixes #272 2018-04-12 10:49:53 +02:00
Thomas Bernard
eaaf4f10ae miniupnpd: introduce upnp_gettimeofday() which is monotonic :)
fixes #288
2018-04-12 10:07:11 +02:00
Thomas Bernard
0d0b4d2372 .gitignore: add miniupnpc.pc 2018-04-10 09:47:18 +02:00
Thomas Bernard
0bbff2bb0f miniupnpd: update Changelog
see 82ec7bc3df
2018-04-06 13:00:23 +02:00
Thomas Bernard
f8acab6d38 miniupnpc: increments API_VERSION to 17 2018-04-06 12:48:24 +02:00
Thomas Bernard
284db0bb49 miniupnpc: use SOCKET type instead of int for copilation under Win64
see #289
2018-04-06 12:21:36 +02:00
yangfl
82ec7bc3df miniupnpd: Add options for netfilter scripts 2018-03-16 23:57:39 +08:00