miniupnp/miniupnpd
Thomas Bernard 9339f0e52c
miniupnpd: default NOTIFY interval of 900s minus a random value
fixes #698

As advised in UDA:
  Due to the unreliable nature of UDP, devices SHOULD send the entire set
  of discovery messages more than once with some delay between sets e.g. a
  few hundred milliseconds. To avoid network congestion discovery messages
  SHOULD NOT be sent more than three times. In addition, the device MUST
  re-send its advertisements periodically prior to expiration of the duration
  specified in the CACHE-CONTROL header field; it is RECOMMENDED that such
  refreshing of advertisements be done at a randomly-distributed interval
  of less than one-half of the advertisement expiration time.

(CACHE-CONTROL value is minimum 1800 seconds, so the interval should be
less than 900s
2024-06-09 00:04:06 +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/ipfw: make it clear it is not working under FreeBSD 2022-02-19 22:49:14 +01:00
linux miniupnpd.init.d.script: also run ip6tables_init/ip6tables_removeall scripts 2023-01-21 13:00:03 +01:00
mac miniupnpd: BSD: allow to build from another directory 2020-05-11 23:30:19 +02:00
netfilter iptpinhole.c: check inet_pton() return values 2022-03-19 18:50:58 +01:00
netfilter_nft 2024 ;) 2024-03-20 00:37:33 +01:00
pf pfpinhole.c: 2024 2024-01-15 00:50:55 +01:00
solaris
.gitignore fix .gitignore 2020-10-17 22:55:12 +02:00
Changelog.txt miniupnpd: default NOTIFY interval of 900s minus a random value 2024-06-09 00:04:06 +02:00
INSTALL default to /etc/miniupnpd/miniupnpd.conf under linux 2024-01-17 00:49:32 +01:00
LICENSE Refine LICENSE so github can understand it ;) 2022-02-19 18:38:48 +01:00
Makefile.bsd fix commit 5567e7c7e0 2021-06-18 00:31:27 +02:00
Makefile.linux Makefile.linux: fix install dependencies 2021-09-30 23:20:25 +02:00
Makefile.linux_nft miniupnpd.init.d.script: support nftables 2022-02-19 23:49:18 +01: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 miniupnpd version 2.3.4 2024-01-04 01:54:52 +01:00
TODO
VERSION version 2.3.6 2024-03-20 00:41:25 +01: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
commonrdr.h update (c) lines 2024-03-12 00:37:21 +01:00
configure miniupnpd: Fix RemoteHost filtering support not enabled on linux 2024-05-10 16:44:11 +02:00
daemonize.c no more strlen(xxx) == 0. 2018-04-20 17:19:52 +02:00
daemonize.h
getconnstatus.c
getconnstatus.h
getifaddr.c miniupnpd: find_ipv6_addr() avoid fc00::/7 if possible 2024-04-29 01:21:09 +02:00
getifaddr.h fix file headers (=>2018) 2018-07-06 14:16:49 +02:00
getifstats.h
getroute.h
gitrev.mk gitrev.mk: use gitlab-ci predefined variables 2021-09-30 01:49:29 +02:00
ifacewatcher.h
macros.h miniupnpd: move READNU32/WRITENU32/etc. to rw_unaligned.h 2022-10-16 07:54:38 +02:00
minissdp.c miniupnpd: add abstract from UPNP UDA 2.0 about IPV6 2024-05-16 01:50:00 +02:00
minissdp.h SSDP: use receiving interface index to check if from LAN 2017-05-25 00:44:29 +02:00
miniupnpd.8 default to /etc/miniupnpd/miniupnpd.conf under linux 2024-01-17 00:49:32 +01:00
miniupnpd.c miniupnpd: default NOTIFY interval of 900s minus a random value 2024-06-09 00:04:06 +02:00
miniupnpd.conf miniupnpd: default NOTIFY interval of 900s minus a random value 2024-06-09 00:04:06 +02: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
miniupnpdctl.txt
miniupnpdpath.h
miniupnpdtypes.h miniupnpd: fix for bridges 2020-04-29 00:03:54 +02:00
minixml.c minixml.c sync sources 2022-01-27 11:29:16 +02:00
minixml.h update miniupnpd/minixml.h 2019-02-10 16:10:07 +01:00
natpmp.c miniupnpd: Add option to match rules with regex 2022-10-21 21:26:39 +02:00
natpmp.h
objects.mk miniupnpd: update linux makefiles 2020-05-07 00:34:44 +02:00
options.c update (c) lines 2024-03-12 00:37:21 +01:00
options.h update (c) lines 2024-03-12 00:37:21 +01:00
pcp_msg_struct.h
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 pcpserver.c: fix "mapping removed" message for IPv6 pinhole 2024-05-30 01:40:37 +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
rw_unaligned.h miniupnpd: move READNU32/WRITENU32/etc. to rw_unaligned.h 2022-10-16 07:54:38 +02:00
testasyncsendto.c cast time_t to long long instead of long 2019-09-24 16:07:42 +02:00
testgetifaddr.c
testgetifaddr.sh replace 'which' with 'command -v' 2021-09-30 01:49:30 +02:00
testgetifstats.c
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
testupnppermissions.sh miniupnpd/testupnppermissions.sh: do not require bash or ksh anymore 2020-05-07 00:34:44 +02:00
upnpdescgen.c update (c) lines 2024-03-12 00:37:21 +01:00
upnpdescgen.h upnpdescgen.c: add force_igd1 param to XML description generation functions 2021-08-12 23:19:13 +02:00
upnpdescstrings.h miniupnpd: add miniupnpd version in XML descriptions 2024-03-02 11:51:52 +01: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: 2024 2024-01-15 00:54:13 +01:00
upnphttp.h upnphttp.c: detecting MS client and forcing IGD v1 2021-08-12 23:19:14 +02:00
upnppermissions.c upnppermissions.c: fix compilation when DEBUG is defined 2023-06-12 00:04:56 +02:00
upnppermissions.h upnppermissions.h: fix build, because #define ENABLE_REGEX is in config.h 2023-02-11 23:53:38 +01:00
upnppinhole.c upnppinhole.c: 2024 2024-05-08 15:38:02 +02:00
upnppinhole.h upnppinhole.c/.h: 2021 2021-08-21 10:14:28 +02:00
upnpredirect.c 2024 ;) 2024-03-20 00:37:33 +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
upnpsoap.c Deny secure mode violation with 606 action not authorized if supported 2024-01-04 02:36:38 +01:00
upnpsoap.h
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
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-2024 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