1 $Id: Changelog.txt,v 1.428 2016/04/19 21:10:36 nanard Exp $
3 VERSION 2.0 : released on 2016/04/19
6 linux/netfilter: fix compile time detection of iptables version >= 1.4.3
9 linux/netfilter: do not add MASQUERADE rule if ports are equals
12 set IPv6 Hop limit to 10
13 fix HOST: header of event notifications in IPv6
14 be more compliant on 64bit machines : ui4 in [0;2^32-1]
17 minor changes to follow UDA 1.1 more closely.
18 more argument checking in Soap methods.
21 return error 729 - ConflictWithOtherMechanisms if IGD v2 is enabled.
22 add iptc_init() check in iptcrdr.c/init_redirect()
23 add update_portmapping() / update_portmapping_desc_timestamp() functions
26 use Linux libuuid uuid_generate() / BSD uuid_create() API
29 renamed iptables chain MINIUPNPD-PCP-PEER to MINIUPNPD-POSTROUTING
30 implemented "IGD2 Port Triggering" with netfilter/iptables
33 fix pcpserver.c CreatePCPMap_FW() : check pinhole before adding
36 improve syslog message for incoming HTTP requests
39 --disable-pppconn to disable WanPPPConnection
40 more fixes in DeviceProtection service
43 add commandline option to genconfig.sh to set UPnP (UDA) version
44 advertise correct service and device versions when IGDv2 is enabled
45 fix action arguments for DeviceProtection service
46 fix event subscription renewal (include SID in response)
49 Fix bsd/getroute.c get_src_for_route_to() when args are NULL
52 use LOG_INFO instead of LOG_ERR for PCP PEER and MAP success
55 fix : properly call find_ipv6_addr() with the 1st LAN interface
56 use name server from query in SOAP responses (continued)
59 move SSDP_PACKET_MAX_LEN definition to config.h. also set default to 1024.
62 cleanup UPNP_VERSION macro / add UPNP_VERSION_MAJOR, UPNP_VERSION_MINOR
63 Dont use packed structs anymore to read/write PCP messages
66 use name server from query in SOAP responses
69 better bind socket to right interface(s),
70 using struct ip_mreqn, SO_BINDTODEVICE
73 Adding linux/nftables support
76 Remove dependency to libnfnetlink
77 fix typos in miniupnpd.conf
80 fix get_portmappings_in_range() for linux/netfilter
83 don't die when IPv6 is enabled and interface has no IPv4 address
86 IP wildcard for AddPinhole() is empty string
89 Checking Host: HTTP request header to prevent DNS rebinding attack
90 configurable BOOTID.UPNP.ORG SSDP header
91 use time for BOOTID.UPNP.ORG value
94 fix upnp_add_inboundpinhole() : check inet_pton() return
95 fix upnp_redirect() : check inet_aton() return
96 fix potential memory corruption in upnpsoap.c/GetListOfPortMappings()
97 fix buffer overrun in ParseHttpHeaders() if Content-Length doesn't contain any digit !
98 check if BuildHeader_upnphttp() failed to allocate memory
99 Credits goes to Stephen Röttger of the Google Security Team for identifying
103 check "sysctl -n net.ipv6.bindv6only" for linux
106 fixes ExecuteSoapAction if SoapAction value is not enclosed into
110 sockaddr_to_string() includes scope in IPv6 addresses
112 VERSION 1.9 : released on 2014/10/27
115 Properly implements NAT-PMP mapping removal according to RCF6886
118 Discard NAT-PMP packets coming from the WAN
119 Send SSDP announces to IPv6 link-local, site-local
120 and global multicast addresses
123 small modifications to compile with exotic C libraries
126 add comments in miniupnpd.conf regarding security
129 DeletePortMapping now checks for client IP in Securemode
133 e->ipv6.flags |= IP6T_F_PROTO; (netfilter)
134 fix natpmp.c byte order conversion
135 add small delay before SSDP response to prevent flooding
138 Add ipv6_bind_address (option "ipv6_listening_ip")
139 disable IPv6 when socket(PF_INTET6, ...) errors with EAFNOSUPPORT
140 Add IPV6 multicast membership only on selected "LAN" interfaces
143 be more strict when parsing LAN addresses / interface names
146 set source address for IPV6 packets sendto_schedule2() etc.
149 Fix deletePortMappingRange()
152 Fix PCP when request contain 0 IPv4 external address
153 Remove pointer casting in natpmp.c
156 rewrite iptables_*.sh scripts
159 Add FreeBSD support for CHECK_PORTINUSE
160 Add PCP support for CHECK_PORTINUSE
163 Add HTTPS support and skeleton of DeviceProtection implementation
166 start work to enable IPv6 PCP operations
169 reject renewal of subscribtion that already timeouted
170 Support for multiple URL in Callback: header (SUBSCRIBE)
173 fix getifaddr_in6() (used for PCP)
174 implement permissions with PCP Map
175 fix upnp_event_notify_connect() when ENABLE_IPV6 is set
178 Enable PCP by default.
179 Work in IPv6 on system where PF_INET6 are restricted to IPv6 only
180 change ipv6_enabled/ipv6fc_inbound_pinhole_allowed/ipv6fc_firewall_enabled
181 global vars to flags in runtime_flags
184 IPv6 support in testgetifaddr
187 NAT-PMP search an allowed eport instead of returning an error
188 if the original eport is not allowed.
191 Fix add_filter_rule2() for pf.
194 log message when shutting down
195 natpmp : avoid hang when all external ports in use
198 add implementation of scheduled sendto (asyncsendto) in order
199 to retry failed sendto() calls or schedule sending of packets
202 Defaulting to SSDP_RESPOND_SAME_VERSION
208 possibility to disable ipv6 at runtime
211 PCP : Add support for ANNOUNCE requests
212 minixml now handle XML comments
215 Attempt to compile with OS X/pf
218 Make all manufacturer info configurable thanks to Leo Moll
219 Merge PCP support (see https://github.com/miniupnp/miniupnp)
222 Have 3 UUID for the 3 devices (IGD, WAN Device, WAN Connection Device)
225 update upnpreplyparse to allow larger values (128 chars instead of 64)
228 check Service ID in SetDefaultConnectionService method
229 Don't advertise WANPPPConnection in UPNP_STRICT mode
232 Remove namespace from variable name elements in Events "propertyset"
233 to comply with UPNP DeviceArchitecture v1.1.
236 Adding support for IP Filter version 5.x
239 refuses non integer <NewPortMappingIndex> values
242 Update upnpreplyparse to take into account "empty" elements
245 Use pkg-config under linux to find libiptc. Thanks to Olivier Langlois
248 Add warning message when using IPv4 address for listening_ip with IPv6 enabled
251 Uses ifr_addr if ifr_netmask is not defined in struct ifreq
254 Correctly handle truncated snprintf() in SSDP code
257 to avoid build race conditions, genconfig.sh now uses a temporary file
260 use scope in get_lan_for_peer() for IPv6 addresses
263 autodetect LAN interface netmask instead of defaulting to /24
266 Use $(DESTDIR) in Makefile.linux.
267 see https://github.com/miniupnp/miniupnp/issues/26
270 Add DATE: header in SSDP packets
271 Fix SSDP packets sent with uuid as ST: header to conform to UDA
272 ignore SSDP packets missing the MX: header in UPNP_STRICT mode
273 Added Ext: header to HTTP responses to conform to UDA
274 Refactored SendSSDPNotifies() and SendSSDPGoodbye() and add
275 missing ssdp:alive and ssdp:byebye with NT uuid value.
277 VERSION 1.8 : released on 2013/02/06
280 Check source address of incomining HTTP connections and SSDP
281 packets in order to filter out WAN SSDP and HTTP trafic.
282 Implement get_src_for_route_to() for *BSD
283 fix 2 potential memory leaks in GetListOfPortMappings()
286 upnphttp.c: Fix and comment the findendheaders() function
287 upnphttp.c: remove strchr() call in ParseHttpHeaders()
288 add comments to explain how buffer is checked before calls
289 to ParseHttpHeaders()
292 upnphttp.c: ParseHttpHeaders() now checks atoi() return
295 More return value check for malloc() and realloc()
298 minor modifications to linux/getroute.c and testgetroute.c
301 updated DEFAULTCONNECTIONSERVICE_MAGICALVALUE for IGDv2
302 increased default buffer size for HTTP response
303 More argument check for SOAP actions in UPNP_STRICT mode
304 Better error checking after connect() in upnpevent
307 Fix atoi() on null pointer in upnpsoap.c
308 properly set service/device version in SSDP messages
309 fix newSubscriber() for IP6FirewallControl and DeviceProtection services
310 Enforce compliance for SUBSCRIBE messages (UPNP_STRICT mode)
311 Enforce compliance for UNSUBSCRIBE messages (UPNP_STRICT mode)
312 Ignore "-Wmissing-field-initializers" in upnpdescgen.c
313 check size of h->res_buf before building HTTP response
314 ENABLE_HTTP_DATE : add a Date: header to all HTTP responses
317 Fixes with DISABLE_CONFIG_FILE
319 UPC must be a 12 decimal digit code
320 SetDefaultConnectionService() checks its argumnents in UPNP_STRICT mode
321 Support for Accept-Language/Content-Language HTTP headers
322 Content-Type is now text/xml; charset="utf-8" to conform with UDA v1.1
323 Support Expect: 100-continue for POST HTTP requests
324 Manage services/devices versions in minissdp.c
325 Rename all include guards to not clash with C99.
326 (7.1.3 Reserved identifiers)
329 Cleaning code in ipfw (Jardel Weyrich)
332 Fixing a bug in clean_pinhole_list() under linux/netfilter
335 Adding an informational message at startup
338 Moved man page to section 8. miniupnpd.1 => miniupnpd.8
339 Added install of miniupnpd.8 man page in Makefile.linux
342 improved SubmitServicesToMiniSSDPD() function fiability
345 Add -A command line option to add permission rules
348 Add -z command line option to change friendly name (thanks to Shawn Fisher)
351 Detect port in use - patch by David Kerr
354 added DISABLE_CONFIG_FILE in options.h to disable miniupnpd.conf parsing
355 Add command line parsing for clean_ruleset_interval option
358 Only activate -L option for PF and IPF
359 -a option takes two arguments with MULTIPLE_EXTERNAL_IP defined
362 in UPNP_STRICT mode, the literal IPv6 address in "location:" of SSDP
363 messages is the source address used to send the message
366 Disable -ansi CFLAGS in Makefile.linux because recent iptables headers
367 make use of typeof keyword which is a GCC extension.
370 Improvements in autodetecting firewall under (Free)BSD
373 Cleanup HTTP request handling. Answer 405 when relevant
375 VERSION 1.7 : released the 2012/05/28
378 clean linux/ifacewatcher.c
379 set natpmp socket non blocking
385 Clean signal handling
388 Clean expired IPv6 pinholes correctly. and also with linux/netfilter.
391 Finalizing netfilter version of get_pinhole_info()
394 Move IPv6FirewallControl related code from upnpredirect.c to upnppinhole.c
395 Add netfilter implementation for
396 delete_pinhole()/update_pinhole()/get_pinhole_info()
399 Clean up settings of CFLAGS in Makefile's
400 Remove Warnings caused by signed/unsigned integer comparaisons
401 Also fix a couple of integer/pointer comparaisons.
402 Add UNUSED(arg) macro to remove unused argument warning.
403 Fix error handling in upnpevents.c (was causing segfault on Solaris !)
406 Started to implement add_pinhole() for netfilter (linux)
409 Fixed a bug in upnphttp that happened when POST is received in several
410 recv() calls and realloc() is called so the buffer used is moved.
413 Implement CheckPinholeWorking GetPinholePackets. WANIPv6FirewallControl
414 UpdatePinhole still to be done. And also netfilter/ipf/ipfw versions
417 Enough WANIPv6FirewallControl is implemented on pf so that AddPinhole() and
418 DeletePinhole() works !
421 First working experiment of IPv6 "pinhole" with pf
424 More C++ => ANSI C comments to compile with -ansi option
425 Add command line arguments to genconfig.sh config script.
428 Set TTL on SSDP Notify sockets (IPv4). TTL is set to 2 (recommendation from
429 UPnP Device Architecture v1.1)
432 Implementing IPv6 support :
433 Send SSDP NOTIFY ssdp:alive and ssdp:goodbye messages in IPv6.
434 Use UPnP/1.1 in SERVER: string as required in UPnP Device architecture 1.1.
435 Allow LAN interface to be given as interface names, instead of interface
436 IP addresses. It will allow IPv6 operations.
437 fix linux/getifstats.c when bitrate is unknown
440 Only remove pidfile if one was written in the first place.
443 Fix ipfilter support (thanks dhowland https://github.com/dhowland)
446 Changes to miniupnpd.init.d.script by Shawn Landden
449 fixed reload_from_lease_file().
452 Change parselanaddr() function to allow 192.168.1.1/255.255.255.0 in
454 Change read_permission_line() to allow 192.168.1.1/255.255.255.0 in
455 permission line (in configuration file).
458 More syntax checks in upnppermissions.c
461 Fix ipfw/Mac OS X specific source files to compile ok with -ansi flag
464 Make HTTP listen socket non blocking (so accept() can't block)
465 Make SSDP receive sockets non blocking
466 use sockaddr_to_string() in SendSSDPAnnonce2 to handle IPv6 addresses
469 Make HTTP (SOAP) sockets non blocking.
472 Compile ok with -ansi flag.
473 Save a few bytes in options.c using a string repository, instead of a fixed size
474 buffer for each option value.
477 Added friendly_name= option to config file
480 Anchor name (PF) is now configurable through the config file with anchor=
481 Added test of presence of /lib/libip4tc.so and /lib/libip6tc.so files in
482 Makefile.linux in order to add -lip4tc and -lip6tc to LIBS accordingly.
485 always handle EAGAIN, EWOULDBLOCK and EINTR after recv()/recvfrom() calls
488 Always #include <netinet/in.h> before #include <arpa/inet.h> (for OpenBSD)
489 .onrdomain field was added in pf with OpenBSD 5.0. Add PFRULE_HAS_ONRDOMAIN
492 Fixing netfilter/iptables_*.sh scripts for new ifconfig output format.
493 getifaddr.c: added additional checks on structure returned by getifaddrs()
494 Fixing Mac OS X makefile for installation
497 avoid infinite loop in SendResp_upnphttp() in case of error
498 Replaced SendResp_upnphttp() + CloseSocket_upnphttp() by
499 SendRespAndClose_upnphttp()
500 Tomato specifics in genconfig.sh
503 netfilter : Added a tiny_nf_nat.h file to compile with iptables
505 include xtables.h instead of iptables.h
507 VERSION 1.6 : released the 2011/07/25
510 Update doc for version 1.6
513 Fixing code with MULTIPLE_EXTERNAL_IP defined.
516 IPv6 support for UPnP events.
517 Security checks in UPnP events.
520 Remote host for GetListOfPortMappings
521 Remote host support for ipfw (tested on Mac OS X)
524 support for iptables-1.4.11.1
527 Remote host support for pf version
530 Supporting RemoteHost (mandatory in IGD v2)
533 Enabling events by default
536 Fixing Timeout missing in SUBSCRIBE renewal responses
537 (thanks to Pranesh Kulkarni)
538 Added comments about changes between IGD v1 and IGD v2
541 Description and leaseduration kept in ipfw version of the code.
542 Fixing ipfw code after testing under Mac OS X 10.6.7 (darwin 10.7.0)
545 Finishing and testing LeaseDuration support under OpenBSD.
546 Changing NAT-PMP port mapping lifetime support to match
547 lease duration support.
548 NAT-PMP address change announce broadcasted to both port
549 5350 and 5351 to be compatible with client following the
550 version of NAT PMP specification from 2008 or earlier.
551 writepidfile() Overwrite file if already existing
554 fix in linux/getifstats.c.
555 See http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=2212
556 Implementation of LeaseDuration support.
559 added get_wan_connection_status_str()
562 adding ifacewatcher thanks to Alexey Osipov
563 GET /DP.xml is now available. The description has to be completed.
566 Add getconnstatus.c/.h. Dont always have ConnectionStatus to "Connected"
567 Events for WANIPv6FirewallControll
570 patches for gentoo linux.
571 generation of the DeviceProtection service description.
574 Making the SSDP receiving socket work in IPv6 !
577 Support for HTTP in both IPv6 and IPv4.
578 IPv6 for SSDP receiving socket.
581 add new options in genconfig.sh (IGD_V2, ENABLE_DP_SERVICE)
582 add global vars ipv6fc_firewall_enabled and ipv6fc_inbound_pinhole_allowed
583 have MACROS for magical values in upnpdescgen.c, add eventing vars for WanIPv6FirewallControl.
584 applied 0001-Cosmetic-changes.patch(see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=764)
585 applied 0002-Remove-lan-addresses-limit-by-changing-storage-type-.patch
586 replaced some of the urn:schemas-upnp-org:device:* literal strings by macros.
587 adding some support for IP v6. #define ENABLE_IPV6
588 added -fno-strict-aliasing to compile options.
591 updating upnp descriptions for IGDv2
594 Adding WANIPv6FirewallContro to upnp description
597 adding a UPNP_STRICT config macro. Use it now for checking RemoteHost.
598 ENABLE_6FC_SERVICE : add the implementations of WANIPv6FirewallControl actions
601 preparing getifaddr() for IP v6
602 preparing SSDP stuff for IP v6. Trying to conform to UDA v1.1
605 Some modifications thanks to Daniel Dickinson to improve OpenWRT
610 Added code to generate devices/services descriptions for IGD v2
614 improved netfilter/delete_redirect_and_filter_rules() in order
615 to remove the right filter rule, even if it has another index than
619 clean up an fixes to make netfilter/testiptcrdr compile
622 Make "Makefile" work under Mac OS X with bsdmake.
623 added get_portmappings_in_range() in ipfwrdr.c
626 added get_portmappings_in_range() / upnp_get_portmappings_in_range()
629 Implementation of GetListOfPortMappings
632 Reverting "fixes" done in linux/iptables code the 2010/09/27.
633 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=741
636 added MINIUPNPD_VERSION in config.h. Taken from VERSION file.
638 VERSION 1.5 : released the 2011/01/01
641 Started to implement some of the new methods from WANIPConnection v2
644 Some fixes in the linux/iptables code when
645 miniupnpd_nat_chain <> miniupnpd_forward_chain
648 Patch to support nfqueue thanks to Colin McFarlane
651 Update Mac OS X / ipfw stuff from Jardel Weyrich
652 Fix in Makefile.linux for x86_64
655 Bugfix un CleanNATPMPRules() : see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=640
658 Fixing natpmp sockets.
661 Fix Makefile.linux to compile properly under Mandriva/rh/Fedora with
663 Workaround for bad uptime when started with a bad time set.
666 Tried to make a OpenBSD version 4.7 compatible code... still some
670 updates to testobsdrdr
673 -lip4tc in Makefile.linux.
676 some more error handling in set_startup_time()
677 silencing some warnings
680 Open Several sockets for NAT-PMP to make sure the source address
681 of NAT-PMP replies is right.
682 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=609
685 miniupnpdctl now output command line arguments.
686 added a -h option to get help. improved help.
689 using PRIu64 format to printf u_int64_t
690 Fixing calls to get_redirect_rule_by_index() : ifname should be initialized.
691 Add header lines to miniupnpdctl output
694 implementing sending of ip address change notification when receiving
697 VERSION 1.4 : released the 2009/10/30
700 Integrate IPfilter patch from Roy Marples.
701 Fix Netfilter code for old netfilter :
702 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=584
703 trim the description string in reload_from_lease_file()
706 Fixing unclosed raw sockets bug with netfilter code.
709 Fixes in ipf code thanks to Roy Marples
710 Enable DragonFly BSD Support thanks to Roy Marples.
711 Allow packager to define default location of config file via CFLAGS
712 Respect $DESTDIR when installing
715 Adding some support for MacOS X and IPFW
716 SO_REUSEADDR in minissdp.c for SSDP listening socket
719 unlink lease file in reload_from_lease_file()
722 Fixed a buffer overflow in ProcessSSDPRequest()
725 improving genconfig.sh for NetBSD : detecting use of pf or ipf
729 working support for iptables >= 1.4.3
732 work to support iptables-1.4.3 and up
735 fix in upnpevents_removeSubscriber()
738 added reload_from_lease_file()
741 Changes in upnpdescgen.c to allow to remove empty elements
742 strcasecmp instead of strcmp on path comparaisons to allow
743 bugged clients to work
746 Some minor changes to Makefile
747 improving Makefile.linux in order to build with iptables not properly
748 installed on the system.
751 Fixing upnpevents thanks to Justin Maggard
754 getifstats() return -1 when supplied with bad arguments
757 Fixed NAT-PMP response when IP not allocated to external interface
761 Reporting Unconnected status when the "external interface" has
762 no IP address assigned. Also added some comments
770 MiniUPnPd is now able to use MiniSSDPd to manage SSDP M-SEARCH answering
773 You can now let miniupnpd choose itself the HTTP port used.
776 Improvements in genconfig.sh for detecting ipf or pf (under FreeBSD)
777 and improve debian/ubuntu stuff.
778 custom chain name patch from :
779 http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=493
782 added USE_IFNAME_IN_RULES macro that can be disabled in order to
783 remove interface name from rules.
786 Fixed compilation without ENABLE_L3F_SERVICE
789 correct UNSUBSCRIBE processing
792 changed iptables_removeall.sh and iptables_init.sh in order
793 to remove IP from the rules
798 Eventing is allmost completly implemented
801 Correct event handling ?
804 enabling tag in PF rules. quick can be set off.
807 implementing event notify
810 fixing a command line parsing error
813 optimisations in upnpsoap.c
816 optimizing upnpsoap.c for size
819 Worked on the Eventing : generating XML event notifications
820 Send initial notification after subscribe
821 Improved pretty print of testupnpdescgen
822 Reduced Memory usage of upnpdescgen
823 fixed a small bug in the description
826 Fixed miniupnpd.c for compiling without natpmp support
827 fixed presentationURL not there with L3F
828 fixing lease file creation/modification
831 Rewrite of Send501() and Send404()
833 genconfig.sh autodetects pf/ipf
836 Started to implement UPnP Events. do NOT use it at the moment !
839 Added support for the Layer3Forwarding Service
840 added init_redirect() and shutdown_redirect() functions
843 Removed Ext: HTTP header when useless
844 enabled the dummy service by default to please windows XP !
847 upnp_enable patch by Nikos Mavrogiannopoulos.
848 lease_file patch by Nikos Mavrogiannopoulos.
851 some changes to Makefile.openwrt
852 use daemon() - daemonize() is still available for systems lacking daemon()
856 moved lan_addr to upnpglobalvars.h/.c
857 Adding experimental multiple external IP support.
860 removed dummy service from description to improve compatibility
862 Add "secure mode". put runtime flags in the same variable
865 Fixed a bug in options.c for the parsing of empty lines.
868 Fixed CleanExpiredNATPMP()
871 Adding a queue parameter for setting ALTQ in pf
874 improving some stuff with the PF_ENABLE_FILTER_RULE.
877 Adding a runtime option to enable/disable NAT-PMP
880 Added a cache in linux getifstats(). Please enable by editing config.h
883 Updating an existing NAT-PMP mapping now works
886 NAT-PMP code now remove expired mappings
887 TCP/UDP where swapped in NAT-PMP code
890 Adding details to the error message for sendto(udp_notify)
893 pf code doesn't generate filter rules by default anymore. The
894 #ifdef PF_ENABLE_FILTER_RULES must be uncommented in config.h.
897 moved some of the prototypes common to all firewalls to commonrdr.h
898 Added functionalities to NAT-PMP
901 Debugged NAT-PMP code
904 Cleaning and improving NAT-PMP code
907 improved the NAT-PMP experimental support
908 updated README and INSTALL files
911 Adding support for NAT-PMP (from apple !)
914 Checking the commandline for errors.
917 Improved the BSD/Solaris Makefile
918 Merging last code from Darren Reed. Solaris/IPF should work now !
922 Adding Darren Reed code for ipf.
925 Adding SunOS support thanks to Darren Reed.
926 Reorganizing os/firewall dependent code thanks to Darren Reed.
929 linux make install support PREFIX variable
932 reorganizing LAN sockets/address to improve multi LAN support.
933 SSDP announces are sent to all configured networks.
934 SSDP responses are "customized" by subnetwork.
937 prototype code to remove unused rules
938 miniupnpdctl now display current rules
939 synchronised add_filter_rule2() prototype between pf and netfilter code.
942 Correctly filling the Cache-control header in SSDP packets
945 update PFRULE_INOUT_COUNTS detection for FreeBSD
948 update version in genconfig.sh
949 do not error when a duplicate redirection is requested.
952 really fixed the compilation bug with linux>=2.6.22
955 fixed an error in options.c that prevented to use packet_log option
958 improved genconfig.sh
959 fixed a compilation bug with linux>=2.6.22
962 added PFRULE_INOUT_COUNTS macro to enable separate in/out packet and
963 bytes counts in pf for OpenBSD >= 3.8
966 removed a possible racecondition in writepidfile()
969 improved genconfig.sh : no more "echo -e", use lsb_release when available
972 get_redirect_rule*() functions now return some statistics about
973 rule usage (bytes and packets)
976 Fixed the get_redirect_desc() in the linux/netfilter code
979 Clean up init code in miniupnpd.c
980 Added a syslog message in SoapError()
983 Now store redirection descriptions in the linux/netfilter code
986 Answers to SSDP M-SEARCH requests with ST: ssdp:all
987 added make install to Makefile.linux
990 Fixed a bug int the DeletePortMapping linux/netfilter implementation
991 It was allways the 1st rule that was deleted.
994 Fixed config.h.openwrt
997 added something in the INSTALL file about the FreeBSD send(udp_notify)
998 problem fix (allowing 239.0.0.0/8 explicitely in pf.conf)
1001 added setsockopt(s, SOL_SOCKET, SO_BROADCAST ...) for broadcasting
1005 Fixed filter rule under linux : it was using wrong port !
1006 thanks to Wesley W. Terpstra
1009 Moved some of the SSDP code from miniupnpd.c to minissdp.c
1012 creating miniupnpdctl
1015 use LOG_MINIUPNPD macro for openlog()
1016 simplify miniupndShutdown()
1019 improved genconfig.h
1020 Added stuff to change the pf rule "rdr" to "rdr pass"
1023 Corrected Bytes per seconds to bits per second.
1024 Ryan cleaned up comments and typos.
1025 Ryan cleaned up daemonize stuff.
1026 Ryan added possibility to configure model number and serial number
1029 ryan improved the robustness of most UPnP Soap methods
1030 I added a target in the Makefiles to properly generate an uuid using
1032 Improved configuration file parsing.
1035 Adding uuid option in miniupnpd.conf
1038 Added upnppermissions stuff : adding some security to UPnP !
1039 fixed XML description thanks to Ryan Wagoner
1040 improved QueryStateVariable thanks to Ryan Wagoner
1043 use getifaddr() for each GetExtenalIPAddress() Call.
1044 We can change the ip during execution without pb
1047 Lots of code cleanup
1050 Fixed a nasty bug in the linux/netfilter version of get_filter_rule()
1053 Improved the handling of the miniupnpd.conf file.
1054 added -f option to choose which config file to read.
1057 Fixed potential bugs with ClearNameValueList()
1060 All by Ryan Wagoner :
1061 - coding style and comments cleanup
1062 - using now option file miniupnpd.conf
1065 changed "xx active incoming HTTP connections" msg
1068 Patch from Ryan Wagoner :
1069 - no need to open sockets if we can't set the error handlers
1070 - format the usage so it fits nicely on a standard size terminal
1071 - fix up log_err message so they have the same format and you know what
1073 - use same "white space" style throughout
1074 - on shutdown no need to continue if opening socket or setsockopt fails
1077 reduce amount of log lines (keeping the same information)
1082 version 1.0-RC1 released
1085 moved strings from upnpdescgen.c to upnpdescstrings.h for
1087 Server: HTTP header now comes from a #define
1088 added a compilation-time generated config.h
1091 minixml updated. should have no impact
1092 Added support for presentationURL with -w switch
1093 implemented getifstats() for linux. Added testgetifstats program
1094 improved error handling in getifstats() BSD
1097 no need to have miniupnpc sources to compile miniupnpd.
1098 Makefile.openwrt updated
1099 Closing sockets on exit thanks to Ryan Wagoner
1102 now handling signal SIGINT
1103 setting HTTP socket with REUSEADDR thanks to Ryan Wagoner
1104 daemon now tested on a Linksys WRT54G device running OpenWRT !
1107 disabling rtableid in pf code.
1110 Also responds on M-SEARCH with the uuid
1113 gaining some space in upnpsoap.c
1116 Cleaning up code to comply with ANSI C89
1119 Linux version now deleting both nat and accept rules
1120 implemented -U option under Linux
1123 implemented delete_redirect_rule() for linux
1124 returning error 714 in DeletePortMapping() when needed
1127 The linux/netfilter version should now WORK !
1128 fix in the writepidfile() function. open with a mode !
1131 fixing the XML description generation for big endian machines
1132 working on the linux/netfilter port
1135 improved a lot the handling of HTTP error cases
1138 Tried to make the Makefile compatible with both BSDmake
1139 and GNUmake. It was hard because of $^ and $<
1142 Makefile compatible with BSD make
1143 make install target.
1144 getifstats.c compatible with both OpenBSD and FreeBSD.
1147 added getifstats.c for openBSD. May not work under FreeBSD ?
1148 now reports bytes/packets sent/received
1150 possibility to report system uptime
1153 added a -L option to enable loggin (is off by default now).
1156 Patch by Ryan Wagoner to correct the XML description (was NewUpTime
1157 instead of NewUptime) and implement uptime.
1158 Trying to fix the memory leak. Added some comments
1159 added a -d option for debugging purpose
1160 Tnaks to valgrind (under linux!) I removed a small memory access error.
1163 Thanks to a patch sent by Michael van Tellingen, miniupnpd is
1164 now ignoring NOTIFY packets sent by other devices and is
1165 writing is own pid to /var/run/miniupnpd.pid
1168 Allways set sendEvents="no" in XML description (was causing
1169 pb with winXP as SUBSCRIBE is not implemented)
1172 added translation from hostname to IP in the AddPortMapping() method
1173 Thanks to Ryan Wagoner.
1176 Added an INSTALL file
1179 Added the possibility to change the notify interval
1182 Improved compliance of the XML Descriptions
1183 pretty print for testupnpdescgen
1186 improved the Error 404 response.
1187 Better serviceType and serviceId for dummy service...
1190 updating the XML description generator
1193 Thanks to Rick Richard, support for SSDP "alive" and "byebye" notifications
1194 was added. The -u options was also added. The SSDP response are now
1196 The -o option is now working (to force a specific external IP address).
1197 The Soap Methods errors are correctly responded (401 Invalid Action)
1200 Added code to handle filter rules. Thanks to Seth Mos (pfsense.com)
1201 storing the descriptions in the label of the rule
1204 improved the generation of the XML descriptions.
1205 I still need to add allowed values to variables.
1208 filtering SSDP requests and responding with same ST: field
1211 Added a dummy description for the WANDevice
1214 Command line arguments processing
1215 Added possibility to listen internally on several interfaces