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
29797cf607
2019 => 2020
2020-10-31 11:36:06 +01: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
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
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
c1eb7c0069
update Changelog
2020-09-28 23:25:23 +02:00
Thomas Bernard
6358882f19
check string passed to atoi()
2020-09-28 23:24:54 +02:00
Thomas Bernard
cce4407d9d
check for malformed HTTP response
2020-09-28 23:23:17 +02:00
Thomas Bernard
426f9a1835
fix warning
2020-09-24 10:38:05 +02:00
Thomas Bernard
2db013d891
use GetTickCount()/GetTickCount64() under windows
...
GetTickCount() when GetTickCount64() is not available
2020-09-24 10:19:09 +02:00
Thomas Bernard
af1ea9f60b
miniupnpc: use clock_gettime() instead of gettimeofday() if possible
2020-09-24 10:19:08 +02:00
Thomas Bernard
aa490867b3
prevent infinite loop in upnpDiscover()
...
fixes #488
2020-09-24 10:19:08 +02:00
Thomas Bernard
0c556655ea
Move addr_is_reserved() to a specific source file and test it
2020-09-24 09:57:25 +02:00
Pali Rohár
96aa863c78
Fix check for reserved IP addresses in miniupnpc
...
Check for 0.0.0.0, 192.168., 10. and 172. is not enough. Nowadays routers
behind NAT are getting IP address from shared CG-NAT space 100.64.0.0/10.
This patch adjust miniupnpc to check for all reserved IPv4 addresses.
2020-08-05 16:26:26 +02:00
Henrik Rydgård
7e229ddd63
Fix Windows UWP build.
2020-07-21 23:42:42 +02:00
Thomas Bernard
029383e5f4
initialize tp_free
2020-06-05 21:13:19 +02:00
Thomas Bernard
47a55b27c7
miniupnpc: use C99 flexible array member for struct UPNPDev
...
see #462
2020-05-29 17:59:38 +02:00
Thomas Bernard
f34241339e
miniupnpc: update *.py files headers
2020-04-06 12:25:34 +02:00
Thomas BERNARD
c5e8694746
Merge pull request #434 from pali/master
...
Fix and simplify Makefile.mingw for miniupnpc
2020-04-06 12:05:56 +02:00
Pali Rohár
8fc9a6d8ad
Compile static mingw executables with -static argument
2020-04-06 00:09:52 +02:00
Pali Rohár
2e3e6990db
Fix and simplify Makefile.mingw for miniupnpc
...
* Ensure that all executables would have .exe Windows extension
* Do not use dll subdirectory, so makefile would be slash agnostic
* Define common targets to simplify makefile
* Export required functions for listdevices executable
2020-04-02 18:45:46 +02:00
jaehong park
ad7c1db49a
fix: TypeError: a bytes-like object is required, not 'str'
2020-03-22 03:31:34 +09:00
Thomas Bernard
4436632866
2019=>2020
2020-02-20 09:04:23 +01:00
Thomas Bernard
443cb78e83
Haiku support
2020-02-20 09:03:53 +01:00
CodeforEvolution
bffb6a828f
Add Haiku Support
2020-02-19 16:07:56 -06:00
Thomas Bernard
f8a39b7fd5
miniupnpc/Changelog.txt: update
2019-12-24 00:36:49 +01:00
Thomas Bernard
0ab1d6725b
Merge branch 'issue396'
2019-11-01 00:04:23 +01:00
Thomas Bernard
efb6ec1b2f
testminiwget.sh: use either "ip addr" or "ifconfig -a"
2019-10-22 14:35:15 +02:00
Thomas Bernard
c2818392e1
fix UPNP_GetValidIGD()
...
lanaddr was the one used to connect to the last device.
fixes #396
2019-10-13 19:58:52 +02:00
Thomas Bernard
5f85321084
connecthostport.c: output to help debug
...
see #396
2019-10-13 19:22:59 +02:00
Thomas Bernard
7c35c5269c
update miniupnpc/Changelog.txt
2019-08-24 10:51:36 +02:00
Thomas Bernard
191b8bc106
upnperrors.c: update url and add vim modeline
2019-08-24 10:51:27 +02:00
Thomas Bernard
564464efdb
Merge remote-tracking branch 'jleyec/master'
2019-07-30 00:17:09 +02:00
Sibi Prabakaran
ea69474873
Fix error code for 708
...
According to the specification
http://upnp.org/specs/gw/UPnP-gw-WANIPConnection-v2-Service.pdf , the
708 error code corresponds to InvalidLayer2Address. Also
WildcardNotPermittedInSrcIP is for 715 which is already properly mapped.
2019-07-29 22:49:07 +05:30
jlayec
e1ff22b20d
manage [remote host]
2019-07-13 12:39:33 +02:00
Thomas Bernard
1d6b9ae38d
upnperrors.c: 2019 !
2019-06-25 23:21:26 +02:00
Thomas Bernard
14f6ed5111
python module: UPnP_addportmapping() lease duration is unsigned int
...
Also, this is the server that will check for the maximum value (604800 seconds)
2019-05-20 21:07:53 +02:00
Nathan Richard
d457eacec6
Added the leaseDuration parameter to the addportmapping python binding.
...
This parameter was already present in the C API but not exposed to the
python module.
For backward compatibility, leaseDuration was made optional with a
default value of 0 (unlimited duration).
2019-05-17 15:45:21 +02:00
Thomas Bernard
9132003aa0
simplify Win32 loop
...
thanks to irwir !
see https://github.com/miniupnp/miniupnp/pull/362
2019-05-08 15:46:52 +02:00
Ștefan Talpalaru
c8566d6ebd
strupnperror(): add 2 more error codes
2019-05-03 14:37:02 +02:00
Nathan Richard
8aec04e234
Add wheels as a distribution alternative for Windows builds.
2019-04-25 18:17:27 +02:00
Nathan Richard
b11f642b81
Creation a build matrix to support various python versions.
2019-04-25 17:28:49 +02:00
Nathan Richard
e1779d3518
Attempt to have a working build for Python 3.7 under windows with appveyor.
...
- Python 3.7 is built using Visual Studio 2017 so we use the corresponding image.
- Python 3.7 replaces Python 2.7 when building the module.
- Adding the library legacy_stdio_definitions to the linker input as starting with VS 2015 some symbols have been inlined but may be expected by older binaries. This compatibility library exposes these symbols so they can be dynamically linked when required (Cf. https://stackoverflow.com/a/32418900 ).
2019-04-25 17:07:26 +02:00
Thomas Bernard
f3a567cedf
best way to test for integer in [16;31]
2019-04-23 14:19:31 +02:00
Thomas Bernard
60ed85fe70
upnpcommands.c: restrict scope of variable p
...
see #362
2019-04-23 14:18:23 +02:00
Thomas Bernard
422d42357e
use strncmp() instead of memcmp() when needed
...
memcmp(s1, s2, l) is valid when both s1 and s2
have at least l bytes acccessible. So
memcmp("a", "abcdefgh", 8)
is not valid
see #362
2019-04-23 14:16:25 +02:00
Thomas Bernard
c1cbcd971b
remove space at end of line...
2019-04-23 12:56:28 +02:00
Rosen Penev
82b117ee7f
CMake: Add listdevices
...
Matches the Makefile
2019-04-23 12:56:15 +02:00
past-due
aea0a6093d
[CMake] Add UPNPC_NO_INSTALL option
2019-04-17 10:27:29 -04:00
Thomas Bernard
5ae326a95e
minissdpc.c: fix variable redeclaration of p
2019-04-10 14:15:33 +02:00
Thomas Bernard
922372bff3
2019
2019-04-08 14:46:11 +02:00
Thomas Bernard
e1b4f25bba
upnpreplyparse.c: Fix memory leak
...
If there are multiple NewPortListing tags,
there is a malloc() for each one.
fixes #357
2019-04-05 10:30:10 +02:00
Thomas Bernard
a9a764cea9
update Changlogs.
2019-04-03 17:38:33 +02:00
Thomas Bernard
b725f5114f
connecthostport.c: code simplification
2019-03-10 19:23:58 +01:00
Cameron Gutman
3d4661635e
Fix connect() socket error trace on Windows
...
closesocket() clobbers the Winsock last error value, so we must only call it after tracing.
2019-03-05 23:30:24 -08:00
Thomas Bernard
61a18d6b02
getnameinfo() 2nd arg is socklen_t
...
fixes #350
also fix ressource leak
2019-02-12 14:26:01 +01:00
Thomas Bernard
3e32ea04c8
fix ssdpDiscoverDevices() when building for DEBUG under WIN32
2019-02-11 16:08:55 +01:00
Thomas Bernard
08e955de40
Update Changelogs + 2019
2019-02-10 16:11:16 +01:00
Thomas Bernard
2656f41c7a
miniupnpc: set timeout for select() in connecthostport()
2019-01-23 09:44:21 +01:00
Thomas Bernard
e7d99e6b65
fix comment about parseMSEARCHReply()
2019-01-07 09:35:21 +01:00
Cameron Gutman
aaa0ed8c86
ensure SSDP reply headers are not partial matches
2019-01-05 12:24:46 -08:00
Thomas Bernard
6ae3445c2e
miniupnpcmodule.c: check return of WSAStartup()
2018-10-31 16:34:00 +01:00
Thomas Bernard
33de3996d7
Merge branch 'uwp_upnpc'
2018-10-31 16:30:56 +01:00
Thomas Bernard
4b87224e6f
fix WIN32 warnings introduced in a31c86b8db
2018-10-31 16:26:01 +01:00
Brett
9638371244
Update renamed file in MSVC Project ( #331 )
2018-10-20 08:56:12 +02:00
Fabio Alessandrelli
a31c86b8db
Replace GetBestRoute with UWP-compatible API
...
Everything should still work with Windows XP as minimum version.
Those API are, according to Microsoft docs, compatible with XP.
2018-09-21 14:56:59 +02:00
Thomas Bernard
ab4559a432
Make testigddescparse work under Win32
...
fixes #325
Line endings are CRLF
2018-09-02 18:50:58 +02:00
irwir
a7626af053
Fix conditions for Windows versions below Vista
2018-08-05 15:20:44 +03:00
Thomas Bernard
5ddf1e7edb
update miniupnpc README about MINIUPNP_STATICLIB
2018-08-03 02:52:10 +02:00
Thomas Bernard
c55d27f46e
InetPton() is not available with Win XP so use inet_addr()
...
see 8babc5d013
Signed-off-by: Thomas Bernard <miniupnp@free.fr>
2018-07-15 12:52:19 +02:00
Pali Rohár
a2cec1d868
miniupnp: Add information about iptables settings into README
2018-07-14 13:45:09 +02:00
irwir
d8c6433c2e
Move common definition to miniupnpc_socketdef.h
2018-07-14 13:39:01 +02:00
Thomas Bernard
c70a646a73
add genminiupnpcstrings.vbs to MSVC 2015 project
2018-07-14 13:34:44 +02:00
Thomas Bernard
6f99427d69
improve genminiupnpcstrings.vbs to generate file only if changed
2018-07-14 13:29:37 +02:00
Thomas Bernard
8babc5d013
Win32 : use InetPton() etc. to silence MSVC warnings
2018-07-14 12:53:42 +02:00
Thomas Bernard
fe73488e88
Add Debug Dll/Release Dll configurations to MSVC 2015 projects
...
also fix the link with miniupnpc.lib in MSVC 2010
2018-07-14 12:41:52 +02:00
Thomas Bernard
032ecf654a
Add Debug Dll / Release Dll configurations for MSVC 2010
2018-07-14 11:51:48 +02:00
Thomas Bernard
13a9c24d7f
declspec.h had been renamed miniupnpc_declspec.h
2018-07-14 11:29:07 +02:00
irwir
bded13f390
When code was updated for 64-bit Windows configurations, some changes were not applied.
...
Details :
cast for connect() sendto() arguments
remove unecessary p = NULL;
remove unecessary code
printf format fixes in ssdpDiscoverDevices()
fixes #311
Signed-off-by: Thomas Bernard <miniupnp@free.fr>
2018-07-06 11:35:12 +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
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
61703ad8b1
miniupnpc/lisdevices.c: remove warnings. fix leak
2018-04-30 16:44:15 +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
b7e1b2ef09
miniupnpc/miniupnpcmodule.c: small fix
2018-04-26 22:27:05 +02:00