miniupnp/miniupnpd
Pali Rohár 200d6c2509 miniupnpd: Add some missing checks when update_ext_ip_addr_from_stun() or getifaddr() fails
There is missing corner case check when these functions return failure.
Network in this case does not work, so disable port forwarding to prevent
returning incorrect response about port forwarding state.

Also explicitly set disable_port_forwarding to 0 on success to make code
more readable.
2021-08-31 21:34:27 +02:00
..
bsd miniupnpd: BSD: allow to build from another directory 2020-05-11 23:30:19 +02:00
ipf docs: fix simple typo, decription -> description 2020-12-10 05:26:04 +11:00
ipfw miniupnpd: BSD: allow to build from another directory 2020-05-11 23:30:19 +02:00
linux => 2020 2020-05-10 20:00:37 +02:00
mac miniupnpd: BSD: allow to build from another directory 2020-05-11 23:30:19 +02:00
netfilter Fix the cleanup of PREROUTING mangle chain 2021-02-26 15:15:09 +01:00
netfilter_nft nftnlrdr_misc.c: 2021 2021-08-21 10:26:31 +02:00
pf docs: fix simple typo, decription -> description 2020-12-10 05:26:04 +11:00
solaris Solaris 11 compilation fixes 2016-11-11 09:42:22 -05:00
.gitignore fix .gitignore 2020-10-17 22:55:12 +02:00
Changelog.txt miniupnpd version 2.2.3 2021-08-21 11:17:30 +02:00
INSTALL INSTALL: update 2021-02-26 15:14:03 +01:00
LICENSE 2021 2021-06-18 00:37:27 +02:00
Makefile.bsd fix commit 5567e7c7e0 2021-06-18 00:31:27 +02:00
Makefile.linux miniupnpd: don't check for glibc version with musl 2021-07-21 10:38:35 +02:00
Makefile.linux_nft keep memory of ./configure parameters 2020-06-03 23:54:24 +02:00
Makefile.macosx https://miniupnp.tuxfamily.org/ 2020-05-10 20:01:24 +02:00
Makefile.sunos genconfig.sh -> configure 2020-05-02 18:26:45 +02:00
README 2021 2021-06-18 00:37:27 +02:00
TODO miniupnpd: update some TODO 2016-02-12 15:02:06 +01:00
VERSION miniupnpd version 2.2.3 2021-08-21 11:17:30 +02:00
asyncsendto.c asyncsendto.c: use named enum. 2020-11-11 13:16:14 +01:00
asyncsendto.h copyright notice => 2017 2017-11-02 16:52:07 +01:00
check.mk minipnpd: move check target to check.mk 2020-05-07 01:02:48 +02:00
codelength.h DECODELENGTH_READ 2015-07-15 18:11:27 +02:00
commonrdr.h docs: fix simple typo, decription -> description 2020-12-10 05:26:04 +11:00
configure miniupnpd: dynamically retrieve `uname -r` 2021-05-22 00:16:40 +02:00
daemonize.c no more strlen(xxx) == 0. 2018-04-20 17:19:52 +02:00
daemonize.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
getconnstatus.c miniupnpd: autodetect LAN interface netmask instead of defaulting to /24 2013-03-23 11:50:57 +01:00
getconnstatus.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
getifaddr.c getifaddr.c: Fix mask for RFC7534 Direct Delegation AS112 Service 2020-07-12 13:45:30 +02:00
getifaddr.h fix file headers (=>2018) 2018-07-06 14:16:49 +02:00
getifstats.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
getroute.h miniupnpd: Implement get_src_for_route_to() for *BSD 2013-02-06 15:08:10 +01:00
gitrev.mk use tag as GITREF if available 2020-10-31 10:56:02 +01:00
ifacewatcher.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
macros.h miniupnpd: improves error handling during init. 2021-06-18 00:21:16 +02:00
minissdp.c miniupnpd: Better comment snprintf() used to build HTTP headers 2021-05-22 23:30:05 +02:00
minissdp.h SSDP: use receiving interface index to check if from LAN 2017-05-25 00:44:29 +02:00
miniupnpd.8 miniupnpd: Add --version commandline option 2019-10-05 22:44:31 +02:00
miniupnpd.c miniupnpd: Add some missing checks when update_ext_ip_addr_from_stun() or getifaddr() fails 2021-08-31 21:34:27 +02:00
miniupnpd.conf Update and extend description from STUN output 2020-12-30 11:22:12 +01:00
miniupnpd.doxyconf miniupnpd: allow to build in another directory. use .d for depends 2020-05-07 00:34:40 +02:00
miniupnpd.rc.once.d.script added rc-once script to initialize uuid on first start 2017-09-03 16:59:19 +02:00
miniupnpdctl.c Add UNUSED(arg) macro to remove unused argument warning. 2012-05-01 11:49:23 +02:00
miniupnpdctl.txt adding miniupnpdctl.txt file 2012-02-03 13:18:30 +01:00
miniupnpdpath.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
miniupnpdtypes.h miniupnpd: fix for bridges 2020-04-29 00:03:54 +02:00
minixml.c minixml.c: fix heap buffer overflow 2017-12-11 14:59:29 +01:00
minixml.h update miniupnpd/minixml.h 2019-02-10 16:10:07 +01:00
natpmp.c 2019 2019-09-24 16:05:44 +02:00
natpmp.h miniupnpd: Retreive PCP packed IPV6 destination address 2014-05-19 15:27:34 +02:00
objects.mk miniupnpd: update linux makefiles 2020-05-07 00:34:44 +02:00
options.c options.c: 2021 2021-08-21 10:24:22 +02:00
options.h IPv6 pinholes lease file 2021-08-18 11:06:12 +01:00
pcp_msg_struct.h add include guard 2015-09-22 10:24:47 +02:00
pcplearndscp.c miniupnpd: improves error handling during init. 2021-06-18 00:21:16 +02:00
pcplearndscp.h pcplearndscp.h: "new" website 2021-08-21 10:22:26 +02:00
pcpserver.c minor checks on PCPSendUnsolicitedAnnounce() 2020-06-04 00:56:16 +02:00
pcpserver.h miniupnpd/pcp: Send PCP announcment at startup 2018-05-08 23:06:19 +02:00
portinuse.c fix warning 2020-11-04 22:31:47 +01:00
portinuse.h miniupnpd/portinuse: port_in_use() returns -1 in case of error 2014-03-20 13:49:10 +01:00
testasyncsendto.c cast time_t to long long instead of long 2019-09-24 16:07:42 +02:00
testgetifaddr.c miniupnpd/testgetifaddr.c: also test find_ipv6_addr() 2014-03-03 12:37:01 +01:00
testgetifaddr.sh testgetifaddr.sh: Always use the first IP addr from 'ip -4 addr' 2021-08-22 09:53:31 +02:00
testgetifstats.c fix tests for solaris 2012-05-31 15:22:52 +02:00
testgetroute.c miniupnpd: use monotonic clock for timeouts, etc. 2018-03-13 11:43:07 +01:00
testminissdp.c miniupnpd/testminissdp.c: int => size_t. 2018 2018-01-15 17:47:22 +01:00
testportinuse.c Move chain name variables to netfilter/* 2020-09-28 22:44:24 +02:00
testssdppktgen.c miniupnpd: dynamically retrieve `uname -r` 2021-05-22 00:16:40 +02:00
testupnpdescgen.c upnpdescgen.c: add force_igd1 param to XML description generation functions 2021-08-12 23:19:13 +02:00
testupnppermissions.c add "make check" to miniupnpd 2015-09-22 16:02:19 +02:00
testupnppermissions.sh miniupnpd/testupnppermissions.sh: do not require bash or ksh anymore 2020-05-07 00:34:44 +02:00
upnpdescgen.c upnpdescgen.c: rootDesc.xml skip DeviceProtection and WANIPv6FirewallControl when force_igd1 2021-08-12 23:19:14 +02:00
upnpdescgen.h upnpdescgen.c: add force_igd1 param to XML description generation functions 2021-08-12 23:19:13 +02:00
upnpdescstrings.h rename macro UPNP_VERSION to MINIUPNPD_DATE 2015-09-21 22:37:50 +02:00
upnpevents.c include <sys/select.h> for fd_set 2019-09-24 16:06:12 +02:00
upnpevents.h copyright notice => 2017 2017-11-02 16:52:07 +01:00
upnpglobalvars.c IPv6 pinholes lease file 2021-08-18 11:06:12 +01:00
upnpglobalvars.h IPv6 pinholes lease file 2021-08-18 11:06:12 +01:00
upnphttp.c upnphttp.c: detecting MS client and forcing IGD v1 2021-08-12 23:19:14 +02:00
upnphttp.h upnphttp.c: detecting MS client and forcing IGD v1 2021-08-12 23:19:14 +02:00
upnppermissions.c update changelog / comments 2020-10-30 22:44:02 +01:00
upnppermissions.h update changelog / comments 2020-10-30 22:44:02 +01:00
upnppinhole.c upnppinhole.c/.h: 2021 2021-08-21 10:14:28 +02:00
upnppinhole.h upnppinhole.c/.h: 2021 2021-08-21 10:14:28 +02:00
upnpredirect.c protocol[] can be "UDPLITE" 2020-11-12 08:59:47 +01:00
upnpredirect.h add option LEASEFILE_USE_REMAINING_TIME 2018-05-02 09:40:12 +02:00
upnpreplyparse.c upnpreplyparse.c: Fix memory leak 2019-04-05 10:30:10 +02:00
upnpreplyparse.h remove need of sys/queue.h or bsdqueue.h in upnpreplyparse.c/.h 2014-10-27 17:38:26 +01:00
upnpsoap.c upnpsoap.c: comment and improve GetExternalIPAddress() 2021-03-31 09:43:28 +02:00
upnpsoap.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
upnpstun.c Update and extend description from STUN output 2020-12-30 11:22:12 +01:00
upnpstun.h miniupnpd: Add function perform_stun() for detecting external IP address and restrictive NAT via STUN protocol 2018-05-19 13:31:08 +02:00
upnpurns.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
upnputils.c miniupnpd: introduce upnp_gettimeofday() which is monotonic :) 2018-04-12 10:07:11 +02:00
upnputils.h miniupnpd: introduce upnp_gettimeofday() which is monotonic :) 2018-04-12 10:07:11 +02:00

README

MiniUPnP project
(c) 2006-2021 Thomas Bernard
webpage: http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/
github: https://github.com/miniupnp/miniupnp
freecode: http://freecode.com/projects/miniupnp
contact: miniupnp@free.fr

This directory contain the miniUPnP daemon software, aka miniUPnPd.
This software is subject to the conditions detailed in
the LICENSE file provided with this distribution.


The miniUPnP daemon is an UPnP IGD (internet gateway device)
which provide NAT traversal services to any UPnP enabled client on
the network.
See http://www.upnp.org/ for more details on UPnP.
During the year 2011, support for IGD v2 has been added.
In 2012, IGD v2 WANIPv6FirewallControl has been implemented.

IGD2 is still not enabled by default because of interoperability
issues.

In addition to UPnP IGD, miniUPnPd supports NAT-PMP and PCP :

See information about NAT Port Mapping Protocol (NAT-PMP) here :
http://miniupnp.free.fr/nat-pmp.html
NAT-PMP is the precursor of Port Control Protocol (PCP, RFC 6887).
In 2013, support for PCP has been added too.

Read the INSTALL file for instructions to compile, install and
configure miniupnpd on your system.

Report bugs to miniupnp@free.fr or on the web forum
https://miniupnp.tuxfamily.org/forum/
or using https://github.com/miniupnp/miniupnp/issues

Thomas Bernard