Commit Graph

1918 Commits

Author SHA1 Message Date
Thomas Bernard 552c6c7297 build for both iptables and nftables 2020-11-05 00:03:54 +01:00
Thomas Bernard 168036c9ae add job for building win32 version 2020-11-05 00:03:17 +01:00
Pali Rohár d60349a9b1 Add different mingw cross-compile builds via Makefile.mingw for Travis CI
Include also build via i586-mingw32msvc-gcc cross compiler.
2020-11-05 00:01:04 +01:00
Pali Rohár 26e8f7831a Use GetBestInterface() instead of GetBestInterfaceEx()
GetBestInterfaceEx() is not supported by older i586-mingw32msvc-gcc
compiler. GetBestInterface() works only with IPv4 addresses but in this
case it is enough as it is needed only for IP address 223.255.255.255.
2020-11-04 23:59:03 +01:00
Pali Rohár 23f492fd1b Fix compilation when _WIN32_WINNT_VISTA macro is not defined
Older version of i586-mingw32msvc-gcc compiler does not define
_WIN32_WINNT_VISTA macro. Therefore preprocessor #if condition is
incorrectly evaluated.
2020-11-04 23:57:43 +01:00
Thomas Bernard 9d42d11779 update github workflows 2020-11-04 23:56:16 +01:00
Thomas BERNARD ab7ea5aadc
Create main.yml
github workflows
2020-11-04 23:48:28 +01:00
Thomas Bernard 8b44224b91 2020 2020-11-04 23:42:37 +01:00
Thomas Bernard 0a9750602d Merge branch 'win32_snprintf' 2020-11-04 23:40:37 +01:00
Thomas Bernard 25a78aa385 add win32_snprintf.h 2020-11-04 23:37:07 +01:00
Thomas Bernard 97fd716bd0
2020 2020-11-04 22:32:14 +01:00
Thomas Bernard 057368701e
fix warning 2020-11-04 22:31:47 +01:00
Thomas Bernard 32164d27d2
fix a couple of warnings 2020-11-02 00:26:13 +01:00
Thomas Bernard c41094c2af
exact same declaration for random_url[]
see #498
2020-11-01 23:29:08 +01:00
Thomas Bernard 29797cf607 2019 => 2020 2020-10-31 11:36:06 +01:00
Thomas Bernard 01d686078e
use tag as GITREF if available 2020-10-31 10:56:02 +01:00
Thomas Bernard 56c66b5472
miniupnpd version 2.2.0 2020-10-31 10:23:44 +01:00
Thomas Bernard 1331b42410
fix dd99f0eb75 2020-10-31 10:05:50 +01:00
Thomas Bernard dd99f0eb75
sysctl is not always in /sbin 2020-10-30 23:11:44 +01:00
Thomas Bernard 72ec9e1943
update changelog / comments 2020-10-30 22:44:02 +01:00
Thomas Bernard c9939cc01e
fix portinuse.c for OpenBSD 5.5+
all CIRCLEQ have been replaced by TAILQ
fixes #496
2020-10-30 22:14:45 +01:00
Thomas Bernard 1008ed1117 Merge branch 'issue-465' into master 2020-10-28 19:38:52 +01:00
Thomas Bernard 90259ae803
Fix undefined behaviour: shifting signed int by 31 place
see #465

     #0 0x555719469ec5 in AddAnyPortMapping.cfi /home/ryutaroh/miniupnpd-1018/miniupnp/miniupnpd/upnpsoap.c:703:42
     #1 0x5557194705a7 in ExecuteSoapAction /home/ryutaroh/miniupnpd-1018/miniupnp/miniupnpd/upnpsoap.c:2335:5
 SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior upnpsoap.c:703:42 in
2020-10-26 08:46:37 +01:00
Thomas Bernard 85f8123504 Merge branch 'issue-495' into master 2020-10-24 15:23:26 +02:00
Thomas Bernard 946f6c19bb
fix Makefile.bsd
fixes #495
2020-10-24 15:17:59 +02:00
Thomas Bernard 92ff8a6a7e
in_addr_t instead of struct in_addr 2020-10-22 23:20:50 +02:00
Thomas Bernard 6b2070c6e9
fix 18a6ab0201 2020-10-22 23:19:59 +02:00
Thomas Bernard 5e7f8b5183 netfilter_nft/nftnlrdr_misc.h: comment 2020-10-22 21:39:41 +02:00
Thomas Bernard 1b5cab1e87
update Changelog.txt 2020-10-22 21:27:04 +02:00
Thomas Bernard 68cc35156e
fix nftables shutdown_redirect()
see #481
2020-10-22 21:19:37 +02:00
Thomas Bernard 04e245258e
For FreeBSD ports
see #495
2020-10-22 20:45:15 +02:00
Pali Rohár 8cd542a809 Fix snprintf emulation for Windows
* Move it into separate win32_snprintf.h file to de-duplicate its
  implementation from all miniupnp source files.

* Do not use this emulation with mingw32 SDK when __NO_ISOCEXT is not
  defined as in this case mingw32 provides working snprintf function.

* Fix detection for mingw-w64 variants, when __NO_ISOCEXT is defined or
  when older version without UCRT is used.

* Add check if _scprintf function is available. In case it is not available
  just returns length of filled buffer to prevent buffer overflow.
2020-10-18 20:29:53 +02:00
Thomas Bernard 18a6ab0201
AddAnyPortMapping(): Only try allowed ports
build an array of all allowed ports.
should fix #465
2020-10-18 00:20:24 +02:00
Thomas Bernard 3a17dea056 pass rule type to the private arg of mnl_cb_run() callback
should fix #481
2020-10-17 23:20:29 +02:00
Thomas Bernard a3522723ae fix .gitignore 2020-10-17 22:55:12 +02:00
Thomas Bernard 2595275eb5 netfilter_nft: build testing 2020-10-17 22:52:34 +02:00
Thomas Bernard bd71e2e279
miniupnpc/addr_is_reserved.c: include sys/types.h 2020-10-17 22:13:32 +02:00
Thomas Bernard 138b4ff3aa
Fix for compiling with old windows SDK 2020-10-17 22:03:22 +02:00
Thomas Bernard 7a66f373fc inet_pton() instead of inet_addr() 2020-10-17 15:19:58 +02:00
Thomas Bernard 69fc376929 add addr_is_reserved.c/.h to MSVC project files
fixes #489
2020-10-17 15:15:59 +02:00
Thomas Bernard 63bf239a3e remove unused definitions
see #489
2020-10-17 14:56:58 +02:00
Thomas Bernard 062b562c37 ignore *.opendb 2020-10-17 14:49:43 +02:00
Thomas Bernard ad056c3629 update thanks list 2020-10-07 00:19:45 +02:00
Thomas Bernard 9ec4351829
Fix solaris build
fixes #490
2020-10-07 00:17:16 +02:00
Pali Rohár f5f693876d miniupnpc: By default skip invalid, disconnected and non-IGD devices
Allow to use such IGD devices by new -i option.
2020-10-05 22:30:30 +02:00
Thomas Bernard 11c479fb2a Merge remote-tracking branch 'pali/master' 2020-10-05 22:02:29 +02:00
Thomas Bernard c7cfe2c51a
fix compilation warning (WIN32) 2020-10-05 21:56:32 +02:00
Pali Rohár fc74c42864 miniupnpc: Fix name of miniupnpc import library in setupmingw32.py 2020-10-02 22:52:26 +02:00
Pali Rohár 7d5fdf0743 miniupnpc: Fix usage of Windows _snprintf() function
_snprintf() differs from snprintf() in:

* on overflow it returns -1 instead of required buffer size
* on overflow it does not fill nul byte
* does not accept NULL/0 as a buffer

Microsoft implemented snprintf() in Visual Studio 2015 as part of UCRT.

Mingw32 contains snprintf() implementation only when __USE_MINGW_ANSI_STDIO
is defined.

Mingw-w64 versions prior to 8.0.0. contain snprintf() implementation when
__USE_MINGW_ANSI_STDIO or _UCRT is defined. Since version 8.0.0 it is
always supported.

Mingw-w64 defines both __MINGW32__ and __MINGW64_VERSION_MAJOR macros.
Mingw32 defines only __MINGW32__.

_scprintf() just count number of bytes needed for formatting string, so it
is basically return value of snprintf().

This change updates miniupnpc code to use snprintf() when is provided by
compiler/runtime to avoid usage _snprintf().

And also this changes updates miniupnpc emulation of snprintf() by
_snprintf() and _scprintf() functions to avoid buffer overflows.

For inspiration full emulation of snprintf() by _snprintf() is available in
mingw-w64 stdio library:

https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-crt/stdio/snprintf.c
2020-10-02 22:32:36 +02:00
Thomas Bernard 992565201b fix testnftnlrdr.c 2020-09-29 01:00:29 +02:00