miniupnp/miniupnpd
Thomas Bernard b2343c87a7 Add STUN support
see #307
2018-07-06 13:33:33 +02:00
..
bsd miniupnpd: time() => upnp_time() 2018-03-14 00:09:42 +01:00
ipf Solaris 11 compilation fixes 2016-11-11 09:42:22 -05:00
ipfw add update_portmapping() / update_portmapping_desc_timestamp() functions 2016-02-12 15:01:30 +01:00
linux miniupnpd: time() => upnp_time() 2018-03-14 00:09:42 +01:00
mac miniupnpd: time() => upnp_time() 2018-03-14 00:09:42 +01:00
netfilter miniupnpd: Add function delete_filter_rule() also for PF and Linux Netfilter 2018-05-19 13:31:02 +02:00
netfilter_nft Merge remote-tracking branch 's1061123/nft_support' into nft_support 2015-04-30 10:49:11 +02:00
pf miniupnpd: Add function delete_filter_rule() also for PF and Linux Netfilter 2018-05-19 13:31:02 +02:00
solaris Solaris 11 compilation fixes 2016-11-11 09:42:22 -05:00
.gitignore miniupnpd: add a test for ProcessSSDPData() 2017-12-12 10:08:44 +01:00
Changelog.txt Add STUN support 2018-07-06 13:33:33 +02:00
INSTALL add option LEASEFILE_USE_REMAINING_TIME 2018-05-02 09:40:12 +02:00
LICENSE => 2017 2017-05-25 00:53:55 +02:00
Makefile miniupnpd: Add function perform_stun() for detecting external IP address and restrictive NAT via STUN protocol 2018-05-19 13:31:08 +02:00
Makefile.linux miniupnpd: Add function perform_stun() for detecting external IP address and restrictive NAT via STUN protocol 2018-05-19 13:31:08 +02:00
Makefile.linux_nft miniupnpd: Add function perform_stun() for detecting external IP address and restrictive NAT via STUN protocol 2018-05-19 13:31:08 +02:00
Makefile.macosx miniupnpd: Add function perform_stun() for detecting external IP address and restrictive NAT via STUN protocol 2018-05-19 13:31:08 +02:00
Makefile.sunos miniupnpd: Add function perform_stun() for detecting external IP address and restrictive NAT via STUN protocol 2018-05-19 13:31:08 +02:00
README => 2017 2017-05-25 00:53:55 +02:00
TODO miniupnpd: update some TODO 2016-02-12 15:02:06 +01:00
VERSION miniupnpd: VERSION 2.1 2018-05-08 23:40:27 +02:00
asyncsendto.c asyncsendto.c: 2018 2018-07-06 13:31:44 +02:00
asyncsendto.h copyright notice => 2017 2017-11-02 16:52:07 +01:00
codelength.h DECODELENGTH_READ 2015-07-15 18:11:27 +02:00
commonrdr.h add update_portmapping() / update_portmapping_desc_timestamp() functions 2016-02-12 15:01:30 +01: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
genconfig.sh Fix OS detection for Debian kFreeBSD 2018-05-08 21:59:15 +08: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 reserved[] is const 2018-07-06 13:20:30 +02:00
getifaddr.h 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
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
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 Solaris 11 compilation fixes 2016-11-11 09:42:22 -05:00
minissdp.c replace strlen(s) > 0 by s[0] != '\0' 2018-04-22 21:21:58 +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 -1 option 2018-02-22 14:02:52 +01:00
miniupnpd.c fixes in update_ext_ip_addr_from_stun() 2018-07-06 13:29:33 +02:00
miniupnpd.conf miniupnpd: When enabled perform STUN to learn external IP address and NAT type 2018-05-19 13:32:42 +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 SSDP: use receiving interface index to check if from LAN 2017-05-25 00:44:29 +02:00
minixml.c minixml.c: fix heap buffer overflow 2017-12-11 14:59:29 +01:00
minixml.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
natpmp.c miniupnpd: Add validation that public ip address is not reserved and is really public 2018-05-19 13:31:26 +02:00
natpmp.h miniupnpd: Retreive PCP packed IPV6 destination address 2014-05-19 15:27:34 +02:00
options.c miniupnpd: When enabled perform STUN to learn external IP address and NAT type 2018-05-19 13:32:42 +02:00
options.h miniupnpd: When enabled perform STUN to learn external IP address and NAT type 2018-05-19 13:32:42 +02:00
pcp_msg_struct.h add include guard 2015-09-22 10:24:47 +02:00
pcplearndscp.c Fix output specifier 2016-01-04 12:13:00 +08:00
pcplearndscp.h remove C++ style comments 2013-12-13 17:01:41 +01:00
pcpserver.c miniupnpd/pcp: Send PCP announcment at startup 2018-05-08 23:06:19 +02:00
pcpserver.h miniupnpd/pcp: Send PCP announcment at startup 2018-05-08 23:06:19 +02:00
portinuse.c => 2017 2017-07-05 23:06:16 +02:00
portinuse.h miniupnpd/portinuse: port_in_use() returns -1 in case of error 2014-03-20 13:49:10 +01:00
testasyncsendto.c miniupnpd: use monotonic clock for timeouts, etc. 2018-03-13 11:43:07 +01:00
testgetifaddr.c miniupnpd/testgetifaddr.c: also test find_ipv6_addr() 2014-03-03 12:37:01 +01:00
testgetifaddr.sh Fix OS detection for Debian kFreeBSD 2018-05-08 21:59:15 +08: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 MINIUPNPD-PCP-PEER => MINIUPNPD-POSTROUTING 2016-01-26 16:50:48 +01:00
testssdppktgen.c add a validation of SSDP packet generation 2015-10-24 17:02:11 +02:00
testupnpdescgen.c 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
testupnppermissions.c add "make check" to miniupnpd 2015-09-22 16:02:19 +02:00
testupnppermissions.sh fix testupnppermissions.sh for non DEBUG builds 2015-09-22 17:13:26 +02:00
upnpdescgen.c miniupnpd: Add validation that public ip address is not reserved and is really public 2018-05-19 13:31:26 +02:00
upnpdescgen.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
upnpdescstrings.h rename macro UPNP_VERSION to MINIUPNPD_DATE 2015-09-21 22:37:50 +02:00
upnpevents.c miniupnpd/upnpevents.c: Add log when error 2018-04-27 00:08:06 +02:00
upnpevents.h copyright notice => 2017 2017-11-02 16:52:07 +01:00
upnpglobalvars.c miniupnpd: When enabled perform STUN to learn external IP address and NAT type 2018-05-19 13:32:42 +02:00
upnpglobalvars.h PERFORMSTUN => PERFORMSTUNMASK. allow to specify stun using -o option 2018-07-06 13:23:22 +02:00
upnphttp.c Update file headers. 2017 => 2018 etc. 2018-01-16 02:06:46 +01:00
upnphttp.h cleanup 2015-12-16 11:26:40 +01:00
upnppermissions.c miniupnpd/upnppermissions.c: disable match_permission_internal() 2014-03-13 09:53:44 +01:00
upnppermissions.h miniupnpd: fix eport selection and error handling 2014-03-10 00:32:23 -07:00
upnppinhole.c miniupnpd: fix warnings 2018-03-13 11:53:33 +01:00
upnppinhole.h PCP: check pinhole before adding in CreatePCPMap_FW() 2016-01-18 20:16:06 +01:00
upnpredirect.c miniupnpd: Disable port forwarding when we are behind restrictive nat with reserved / private IP address 2018-05-19 13:32:04 +02:00
upnpredirect.h add option LEASEFILE_USE_REMAINING_TIME 2018-05-02 09:40:12 +02:00
upnpreplyparse.c upnpreplyparse.c: NameValueParserEndElt() rename arg to avoid confusion 2017-12-12 12:47:33 +01: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 miniupnpd: GetExternalIPAddress(): Instead of invalid IP address 0.0.0.0 returns error 501 2018-05-19 17:28:43 +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 fixes in upnpstun.c 2018-07-06 13:31:26 +02: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-2017 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