miniupnp/miniupnpd
Daniel Becker f4f4573f53 miniupnpd: fix eport selection and error handling
The find_available_eport function that was intended to check if
at least one eport is allowed for a given iaddr/iport does not
work as intended; for example, it does not properly handle rule
precedence (i.e., it considers allow rules even if they are
effectively masked by earlier deny rules), and it also does not
handle the case where no rules are specified at all (which
should default to accept in order to be consistent with
check_upnp_rule_against_permissions). The present change removes
this function and instead integrates the check into the existing
while loop that iterates over all eports.
2014-03-10 00:32:23 -07:00
..
bsd miniupnpd: Implement get_src_for_route_to() for *BSD 2013-02-06 15:08:10 +01:00
ipf miniupnpd/ipf: Adding support for IP Filter version 5.x 2013-05-20 02:14:04 +02:00
ipfw Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
linux add code to linux getifstats for wireless interfaces 2013-04-29 12:23:06 +02:00
mac remove trailing whitespace from miniupnpd 2012-02-29 17:48:41 -08:00
netfilter Add initial PCP support 2013-07-11 09:38:55 +02:00
pf Merge branch 'fix_pf_redirect' 2014-03-10 00:03:06 +01:00
solaris remove trailing whitespace from miniupnpd 2012-02-29 17:48:41 -08:00
.gitignore implementation of queuing of messages to send. 2014-02-18 09:34:42 +01:00
Changelog.txt miniupnpd/Changelog.txt: Catch up changes... 2014-03-10 00:12:20 +01:00
INSTALL miniupnpd/INSTALL: update infos 2014-01-14 09:26:24 +01:00
LICENSE remove trailing whitespace from miniupnpd 2012-02-29 17:48:41 -08:00
Makefile miniupnpd: add sendto() queuing 2014-02-25 11:10:05 +01:00
Makefile.linux miniupnpd/testgetifaddr.c: also test find_ipv6_addr() 2014-03-03 12:37:01 +01:00
Makefile.macosx miniupnpd: add sendto() queuing 2014-02-25 11:10:05 +01:00
README update README's to include PCP 2014-01-14 09:25:19 +01:00
TODO update todo 2012-05-28 01:15:27 +02:00
VERSION miniupnpd: prepare for version 1.8 2013-02-06 15:20:48 +01:00
asyncsendto.c miniupnpd: improve finalize_sendto() 2014-02-28 16:39:59 +01:00
asyncsendto.h miniupnpd/asyncsendto: finalize_sendto() 2014-02-25 11:36:58 +01:00
bsdqueue.h remove trailing whitespace from miniupnpd 2012-02-29 17:48:41 -08:00
codelength.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
commonrdr.h miniupnpd/commonrdr.h: improve comments 2014-02-11 10:38:50 +01:00
daemonize.c remove trailing whitespace from miniupnpd 2012-02-29 17:48:41 -08: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 Merge branch 'sendto_schedule' 2014-02-25 11:47:30 +01: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: more portable code (works with old OpenBSD) 2013-12-13 16:59:51 +01:00
getifaddr.h Add initial PCP support 2013-07-11 09:38:55 +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 Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
minissdp.c minissdp.c: try again write after EINTR in SubmitServicesToMiniSSDPD() 2014-02-26 02:02:34 +01:00
minissdp.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
miniupnpd.8 miniupnpd.8: uppercase MINIUPNPD in header 2012-08-24 20:12:26 +02:00
miniupnpd.c miniupnpd: log message when shutting down 2014-02-28 13:16:22 +01:00
miniupnpd.conf miniupnpd: Make all manufacturer info configurable 2013-12-13 12:03:28 +01: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 Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
minixml.c minixml.c: now handle XML comments 2014-02-03 11:28:31 +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: fix eport selection and error handling 2014-03-10 00:32:23 -07:00
natpmp.h miniupnpd: removed unused code 2014-02-03 10:45:59 +01:00
options.c remove C++ style comments 2013-12-13 17:01:41 +01:00
options.h miniupnpd: Make all manufacturer info configurable 2013-12-13 12:03:28 +01:00
pcp_msg_struct.h miniupnpd/pcpserver.c: Removed IPV6_ADDR_COPY and other simplifications 2013-12-16 17:04:00 +01:00
pcplearndscp.c Add initial PCP support 2013-07-11 09:38:55 +02:00
pcplearndscp.h remove C++ style comments 2013-12-13 17:01:41 +01:00
pcpserver.c miniupnpd/pcpserver.c: fix defines 2014-02-28 20:26:02 +01:00
pcpserver.h remove C++ style comments 2013-12-13 17:01:41 +01:00
testasyncsendto.c miniupnpd: minor stuff (remove warning, add debug log) 2014-02-28 16:40:20 +01:00
testgetifaddr.c miniupnpd/testgetifaddr.c: also test find_ipv6_addr() 2014-03-03 12:37:01 +01:00
testgetifstats.c fix tests for solaris 2012-05-31 15:22:52 +02:00
testgetroute.c miniupnpd: Implement get_src_for_route_to() for *BSD 2013-02-06 15:08:10 +01:00
testupnpdescgen.c testupnpdescgen.c: minor fix on getifaddr() 2013-12-13 12:35:36 +01:00
testupnppermissions.c Adding miniupnpd 2011-09-28 21:13:20 +02:00
upnpdescgen.c miniupnpd: Make all manufacturer info configurable 2013-12-13 12:03:28 +01: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 miniupnpd: Make all manufacturer info configurable 2013-12-13 12:03:28 +01:00
upnpevents.c Have distinct UUID for the 3 devices (IGD, WAN Device, WAN Connection Device) 2013-06-13 16:03:36 +02:00
upnpevents.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
upnpglobalvars.c miniupnpd: possibility to disable ipv6 at runtime 2014-02-06 10:57:39 +01:00
upnpglobalvars.h miniupnpd: possibility to disable ipv6 at runtime 2014-02-06 10:57:39 +01:00
upnphttp.c upnphttp.c: Added Ext: header to HTTP responses to conform to UDA 2013-02-07 11:26:48 +01:00
upnphttp.h miniupnpd/upnphttp: Check compliance of headers for (UN)SUBSCRIBE 2012-10-05 00:25:08 +02:00
upnppermissions.c miniupnpd: fix eport selection and error handling 2014-03-10 00:32:23 -07:00
upnppermissions.h miniupnpd: fix eport selection and error handling 2014-03-10 00:32:23 -07:00
upnppinhole.c Clean expired IPv6 pinholes correctly. and also with linux/netfilter 2012-05-08 22:51:23 +02:00
upnppinhole.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
upnpredirect.c miniupnpd/pf: replace delete_filter_rule() 2014-02-28 21:26:52 +01:00
upnpredirect.h Rename all include guards to not clash with C99 (7.1.3 Reserved identifiers). 2012-09-20 17:52:51 -03:00
upnpreplyparse.c update upnpreplyparse to allow larger values (128 chars instead of 64) 2013-06-06 23:41:23 +02:00
upnpreplyparse.h update upnpreplyparse to allow larger values (128 chars instead of 64) 2013-06-06 23:41:23 +02:00
upnpsoap.c miniupnpd: minor stuff (remove warning, add debug log) 2014-02-28 16:40:20 +01: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
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/upnputils.c: improve log in get_lan_for_peer() 2014-02-06 10:57:51 +01:00
upnputils.h miniupnpd: filter HTTP and SSDP based on source IP 2013-02-06 15:20:04 +01:00

README

MiniUPnP project
(c) 2006-2014 Thomas Bernard
webpage: http://miniupnp.free.fr/ or http://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.
It is not yes enabled by default because it still needs testing.

Support for the NAT Port Mapping Protocol (NAT-PMP) has been
added. See information about NAT-PMP here :
http://miniupnp.free.fr/nat-pmp.html

NAT-PMP is the precursor of Port Control Protocol (PCP).
In 2013, support for PCP has been added too.

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

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

Thomas Bernard