1 $Id: Changelog.txt,v 1.391 2014/12/09 09:48:04 nanard Exp $
4 fix upnp_add_inboundpinhole() : check inet_pton() return
5 fix upnp_redirect() : check inet_aton() return
6 fix potential memory corruption in upnpsoap.c/GetListOfPortMappings()
7 fix buffer overrun in ParseHttpHeaders() if Content-Length doesn't contain any digit !
8 check if BuildHeader_upnphttp() failed to allocate memory
9 Credits goes to Stephen Röttger of the Google Security Team for identifying
13 check "sysctl -n net.ipv6.bindv6only" for linux
16 fixes ExecuteSoapAction if SoapAction value is not enclosed into
20 sockaddr_to_string() includes scope in IPv6 addresses
22 VERSION 1.9 : released on 2014/10/27
25 Properly implements NAT-PMP mapping removal according to RCF6886
28 Discard NAT-PMP packets coming from the WAN
29 Send SSDP announces to IPv6 link-local, site-local
30 and global multicast addresses
33 small modifications to compile with exotic C libraries
36 add comments in miniupnpd.conf regarding security
39 DeletePortMapping now checks for client IP in Securemode
43 e->ipv6.flags |= IP6T_F_PROTO; (netfilter)
44 fix natpmp.c byte order conversion
45 add small delay before SSDP response to prevent flooding
48 Add ipv6_bind_address (option "ipv6_listening_ip")
49 disable IPv6 when socket(PF_INTET6, ...) errors with EAFNOSUPPORT
50 Add IPV6 multicast membership only on selected "LAN" interfaces
53 be more strict when parsing LAN addresses / interface names
56 set source address for IPV6 packets sendto_schedule2() etc.
59 Fix deletePortMappingRange()
62 Fix PCP when request contain 0 IPv4 external address
63 Remove pointer casting in natpmp.c
66 rewrite iptables_*.sh scripts
69 Add FreeBSD support for CHECK_PORTINUSE
70 Add PCP support for CHECK_PORTINUSE
73 Add HTTPS support and skeleton of DeviceProtection implementation
76 start work to enable IPv6 PCP operations
79 reject renewal of subscribtion that already timeouted
80 Support for multiple URL in Callback: header (SUBSCRIBE)
83 fix getifaddr_in6() (used for PCP)
84 implement permissions with PCP Map
85 fix upnp_event_notify_connect() when ENABLE_IPV6 is set
88 Enable PCP by default.
89 Work in IPv6 on system where PF_INET6 are restricted to IPv6 only
90 change ipv6_enabled/ipv6fc_inbound_pinhole_allowed/ipv6fc_firewall_enabled
91 global vars to flags in runtime_flags
94 IPv6 support in testgetifaddr
97 NAT-PMP search an allowed eport instead of returning an error
98 if the original eport is not allowed.
101 Fix add_filter_rule2() for pf.
104 log message when shutting down
105 natpmp : avoid hang when all external ports in use
108 add implementation of scheduled sendto (asyncsendto) in order
109 to retry failed sendto() calls or schedule sending of packets
112 Defaulting to SSDP_RESPOND_SAME_VERSION
118 possibility to disable ipv6 at runtime
121 PCP : Add support for ANNOUNCE requests
122 minixml now handle XML comments
125 Attempt to compile with OS X/pf
128 Make all manufacturer info configurable thanks to Leo Moll
129 Merge PCP support (see https://github.com/miniupnp/miniupnp)
132 Have 3 UUID for the 3 devices (IGD, WAN Device, WAN Connection Device)
135 update upnpreplyparse to allow larger values (128 chars instead of 64)
138 check Service ID in SetDefaultConnectionService method
139 Don't advertise WANPPPConnection in UPNP_STRICT mode
142 Remove namespace from variable name elements in Events "propertyset"
143 to comply with UPNP DeviceArchitecture v1.1.
146 Adding support for IP Filter version 5.x
149 refuses non integer <NewPortMappingIndex> values
152 Update upnpreplyparse to take into account "empty" elements
155 Use pkg-config under linux to find libiptc. Thanks to Olivier Langlois
158 Add warning message when using IPv4 address for listening_ip with IPv6 enabled
161 Uses ifr_addr if ifr_netmask is not defined in struct ifreq
164 Correctly handle truncated snprintf() in SSDP code
167 to avoid build race conditions, genconfig.sh now uses a temporary file
170 use scope in get_lan_for_peer() for IPv6 addresses
173 autodetect LAN interface netmask instead of defaulting to /24
176 Use $(DESTDIR) in Makefile.linux.
177 see https://github.com/miniupnp/miniupnp/issues/26
180 Add DATE: header in SSDP packets
181 Fix SSDP packets sent with uuid as ST: header to conform to UDA
182 ignore SSDP packets missing the MX: header in UPNP_STRICT mode
183 Added Ext: header to HTTP responses to conform to UDA
184 Refactored SendSSDPNotifies() and SendSSDPGoodbye() and add
185 missing ssdp:alive and ssdp:byebye with NT uuid value.
187 VERSION 1.8 : released on 2013/02/06
190 Check source address of incomining HTTP connections and SSDP
191 packets in order to filter out WAN SSDP and HTTP trafic.
192 Implement get_src_for_route_to() for *BSD
193 fix 2 potential memory leaks in GetListOfPortMappings()
196 upnphttp.c: Fix and comment the findendheaders() function
197 upnphttp.c: remove strchr() call in ParseHttpHeaders()
198 add comments to explain how buffer is checked before calls
199 to ParseHttpHeaders()
202 upnphttp.c: ParseHttpHeaders() now checks atoi() return
205 More return value check for malloc() and realloc()
208 minor modifications to linux/getroute.c and testgetroute.c
211 updated DEFAULTCONNECTIONSERVICE_MAGICALVALUE for IGDv2
212 increased default buffer size for HTTP response
213 More argument check for SOAP actions in UPNP_STRICT mode
214 Better error checking after connect() in upnpevent
217 Fix atoi() on null pointer in upnpsoap.c
218 properly set service/device version in SSDP messages
219 fix newSubscriber() for IP6FirewallControl and DeviceProtection services
220 Enforce compliance for SUBSCRIBE messages (UPNP_STRICT mode)
221 Enforce compliance for UNSUBSCRIBE messages (UPNP_STRICT mode)
222 Ignore "-Wmissing-field-initializers" in upnpdescgen.c
223 check size of h->res_buf before building HTTP response
224 ENABLE_HTTP_DATE : add a Date: header to all HTTP responses
227 Fixes with DISABLE_CONFIG_FILE
229 UPC must be a 12 decimal digit code
230 SetDefaultConnectionService() checks its argumnents in UPNP_STRICT mode
231 Support for Accept-Language/Content-Language HTTP headers
232 Content-Type is now text/xml; charset="utf-8" to conform with UDA v1.1
233 Support Expect: 100-continue for POST HTTP requests
234 Manage services/devices versions in minissdp.c
235 Rename all include guards to not clash with C99.
236 (7.1.3 Reserved identifiers)
239 Cleaning code in ipfw (Jardel Weyrich)
242 Fixing a bug in clean_pinhole_list() under linux/netfilter
245 Adding an informational message at startup
248 Moved man page to section 8. miniupnpd.1 => miniupnpd.8
249 Added install of miniupnpd.8 man page in Makefile.linux
252 improved SubmitServicesToMiniSSDPD() function fiability
255 Add -A command line option to add permission rules
258 Add -z command line option to change friendly name (thanks to Shawn Fisher)
261 Detect port in use - patch by David Kerr
264 added DISABLE_CONFIG_FILE in options.h to disable miniupnpd.conf parsing
265 Add command line parsing for clean_ruleset_interval option
268 Only activate -L option for PF and IPF
269 -a option takes two arguments with MULTIPLE_EXTERNAL_IP defined
272 in UPNP_STRICT mode, the literal IPv6 address in "location:" of SSDP
273 messages is the source address used to send the message
276 Disable -ansi CFLAGS in Makefile.linux because recent iptables headers
277 make use of typeof keyword which is a GCC extension.
280 Improvements in autodetecting firewall under (Free)BSD
283 Cleanup HTTP request handling. Answer 405 when relevant
285 VERSION 1.7 : released the 2012/05/28
288 clean linux/ifacewatcher.c
289 set natpmp socket non blocking
295 Clean signal handling
298 Clean expired IPv6 pinholes correctly. and also with linux/netfilter.
301 Finalizing netfilter version of get_pinhole_info()
304 Move IPv6FirewallControl related code from upnpredirect.c to upnppinhole.c
305 Add netfilter implementation for
306 delete_pinhole()/update_pinhole()/get_pinhole_info()
309 Clean up settings of CFLAGS in Makefile's
310 Remove Warnings caused by signed/unsigned integer comparaisons
311 Also fix a couple of integer/pointer comparaisons.
312 Add UNUSED(arg) macro to remove unused argument warning.
313 Fix error handling in upnpevents.c (was causing segfault on Solaris !)
316 Started to implement add_pinhole() for netfilter (linux)
319 Fixed a bug in upnphttp that happened when POST is received in several
320 recv() calls and realloc() is called so the buffer used is moved.
323 Implement CheckPinholeWorking GetPinholePackets. WANIPv6FirewallControl
324 UpdatePinhole still to be done. And also netfilter/ipf/ipfw versions
327 Enough WANIPv6FirewallControl is implemented on pf so that AddPinhole() and
328 DeletePinhole() works !
331 First working experiment of IPv6 "pinhole" with pf
334 More C++ => ANSI C comments to compile with -ansi option
335 Add command line arguments to genconfig.sh config script.
338 Set TTL on SSDP Notify sockets (IPv4). TTL is set to 2 (recommendation from
339 UPnP Device Architecture v1.1)
342 Implementing IPv6 support :
343 Send SSDP NOTIFY ssdp:alive and ssdp:goodbye messages in IPv6.
344 Use UPnP/1.1 in SERVER: string as required in UPnP Device architecture 1.1.
345 Allow LAN interface to be given as interface names, instead of interface
346 IP addresses. It will allow IPv6 operations.
347 fix linux/getifstats.c when bitrate is unknown
350 Only remove pidfile if one was written in the first place.
353 Fix ipfilter support (thanks dhowland https://github.com/dhowland)
356 Changes to miniupnpd.init.d.script by Shawn Landden
359 fixed reload_from_lease_file().
362 Change parselanaddr() function to allow 192.168.1.1/255.255.255.0 in
364 Change read_permission_line() to allow 192.168.1.1/255.255.255.0 in
365 permission line (in configuration file).
368 More syntax checks in upnppermissions.c
371 Fix ipfw/Mac OS X specific source files to compile ok with -ansi flag
374 Make HTTP listen socket non blocking (so accept() can't block)
375 Make SSDP receive sockets non blocking
376 use sockaddr_to_string() in SendSSDPAnnonce2 to handle IPv6 addresses
379 Make HTTP (SOAP) sockets non blocking.
382 Compile ok with -ansi flag.
383 Save a few bytes in options.c using a string repository, instead of a fixed size
384 buffer for each option value.
387 Added friendly_name= option to config file
390 Anchor name (PF) is now configurable through the config file with anchor=
391 Added test of presence of /lib/libip4tc.so and /lib/libip6tc.so files in
392 Makefile.linux in order to add -lip4tc and -lip6tc to LIBS accordingly.
395 always handle EAGAIN, EWOULDBLOCK and EINTR after recv()/recvfrom() calls
398 Always #include <netinet/in.h> before #include <arpa/inet.h> (for OpenBSD)
399 .onrdomain field was added in pf with OpenBSD 5.0. Add PFRULE_HAS_ONRDOMAIN
402 Fixing netfilter/iptables_*.sh scripts for new ifconfig output format.
403 getifaddr.c: added additional checks on structure returned by getifaddrs()
404 Fixing Mac OS X makefile for installation
407 avoid infinite loop in SendResp_upnphttp() in case of error
408 Replaced SendResp_upnphttp() + CloseSocket_upnphttp() by
409 SendRespAndClose_upnphttp()
410 Tomato specifics in genconfig.sh
413 netfilter : Added a tiny_nf_nat.h file to compile with iptables
415 include xtables.h instead of iptables.h
417 VERSION 1.6 : released the 2011/07/25
420 Update doc for version 1.6
423 Fixing code with MULTIPLE_EXTERNAL_IP defined.
426 IPv6 support for UPnP events.
427 Security checks in UPnP events.
430 Remote host for GetListOfPortMappings
431 Remote host support for ipfw (tested on Mac OS X)
434 support for iptables-1.4.11.1
437 Remote host support for pf version
440 Supporting RemoteHost (mandatory in IGD v2)
443 Enabling events by default
446 Fixing Timeout missing in SUBSCRIBE renewal responses
447 (thanks to Pranesh Kulkarni)
448 Added comments about changes between IGD v1 and IGD v2
451 Description and leaseduration kept in ipfw version of the code.
452 Fixing ipfw code after testing under Mac OS X 10.6.7 (darwin 10.7.0)
455 Finishing and testing LeaseDuration support under OpenBSD.
456 Changing NAT-PMP port mapping lifetime support to match
457 lease duration support.
458 NAT-PMP address change announce broadcasted to both port
459 5350 and 5351 to be compatible with client following the
460 version of NAT PMP specification from 2008 or earlier.
461 writepidfile() Overwrite file if already existing
464 fix in linux/getifstats.c.
465 See http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=2212
466 Implementation of LeaseDuration support.
469 added get_wan_connection_status_str()
472 adding ifacewatcher thanks to Alexey Osipov
473 GET /DP.xml is now available. The description has to be completed.
476 Add getconnstatus.c/.h. Dont always have ConnectionStatus to "Connected"
477 Events for WANIPv6FirewallControll
480 patches for gentoo linux.
481 generation of the DeviceProtection service description.
484 Making the SSDP receiving socket work in IPv6 !
487 Support for HTTP in both IPv6 and IPv4.
488 IPv6 for SSDP receiving socket.
491 add new options in genconfig.sh (IGD_V2, ENABLE_DP_SERVICE)
492 add global vars ipv6fc_firewall_enabled and ipv6fc_inbound_pinhole_allowed
493 have MACROS for magical values in upnpdescgen.c, add eventing vars for WanIPv6FirewallControl.
494 applied 0001-Cosmetic-changes.patch(see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=764)
495 applied 0002-Remove-lan-addresses-limit-by-changing-storage-type-.patch
496 replaced some of the urn:schemas-upnp-org:device:* literal strings by macros.
497 adding some support for IP v6. #define ENABLE_IPV6
498 added -fno-strict-aliasing to compile options.
501 updating upnp descriptions for IGDv2
504 Adding WANIPv6FirewallContro to upnp description
507 adding a UPNP_STRICT config macro. Use it now for checking RemoteHost.
508 ENABLE_6FC_SERVICE : add the implementations of WANIPv6FirewallControl actions
511 preparing getifaddr() for IP v6
512 preparing SSDP stuff for IP v6. Trying to conform to UDA v1.1
515 Some modifications thanks to Daniel Dickinson to improve OpenWRT
520 Added code to generate devices/services descriptions for IGD v2
524 improved netfilter/delete_redirect_and_filter_rules() in order
525 to remove the right filter rule, even if it has another index than
529 clean up an fixes to make netfilter/testiptcrdr compile
532 Make "Makefile" work under Mac OS X with bsdmake.
533 added get_portmappings_in_range() in ipfwrdr.c
536 added get_portmappings_in_range() / upnp_get_portmappings_in_range()
539 Implementation of GetListOfPortMappings
542 Reverting "fixes" done in linux/iptables code the 2010/09/27.
543 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=741
546 added MINIUPNPD_VERSION in config.h. Taken from VERSION file.
548 VERSION 1.5 : released the 2011/01/01
551 Started to implement some of the new methods from WANIPConnection v2
554 Some fixes in the linux/iptables code when
555 miniupnpd_nat_chain <> miniupnpd_forward_chain
558 Patch to support nfqueue thanks to Colin McFarlane
561 Update Mac OS X / ipfw stuff from Jardel Weyrich
562 Fix in Makefile.linux for x86_64
565 Bugfix un CleanNATPMPRules() : see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=640
568 Fixing natpmp sockets.
571 Fix Makefile.linux to compile properly under Mandriva/rh/Fedora with
573 Workaround for bad uptime when started with a bad time set.
576 Tried to make a OpenBSD version 4.7 compatible code... still some
580 updates to testobsdrdr
583 -lip4tc in Makefile.linux.
586 some more error handling in set_startup_time()
587 silencing some warnings
590 Open Several sockets for NAT-PMP to make sure the source address
591 of NAT-PMP replies is right.
592 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=609
595 miniupnpdctl now output command line arguments.
596 added a -h option to get help. improved help.
599 using PRIu64 format to printf u_int64_t
600 Fixing calls to get_redirect_rule_by_index() : ifname should be initialized.
601 Add header lines to miniupnpdctl output
604 implementing sending of ip address change notification when receiving
607 VERSION 1.4 : released the 2009/10/30
610 Integrate IPfilter patch from Roy Marples.
611 Fix Netfilter code for old netfilter :
612 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=584
613 trim the description string in reload_from_lease_file()
616 Fixing unclosed raw sockets bug with netfilter code.
619 Fixes in ipf code thanks to Roy Marples
620 Enable DragonFly BSD Support thanks to Roy Marples.
621 Allow packager to define default location of config file via CFLAGS
622 Respect $DESTDIR when installing
625 Adding some support for MacOS X and IPFW
626 SO_REUSEADDR in minissdp.c for SSDP listening socket
629 unlink lease file in reload_from_lease_file()
632 Fixed a buffer overflow in ProcessSSDPRequest()
635 improving genconfig.sh for NetBSD : detecting use of pf or ipf
639 working support for iptables >= 1.4.3
642 work to support iptables-1.4.3 and up
645 fix in upnpevents_removeSubscriber()
648 added reload_from_lease_file()
651 Changes in upnpdescgen.c to allow to remove empty elements
652 strcasecmp instead of strcmp on path comparaisons to allow
653 bugged clients to work
656 Some minor changes to Makefile
657 improving Makefile.linux in order to build with iptables not properly
658 installed on the system.
661 Fixing upnpevents thanks to Justin Maggard
664 getifstats() return -1 when supplied with bad arguments
667 Fixed NAT-PMP response when IP not allocated to external interface
671 Reporting Unconnected status when the "external interface" has
672 no IP address assigned. Also added some comments
680 MiniUPnPd is now able to use MiniSSDPd to manage SSDP M-SEARCH answering
683 You can now let miniupnpd choose itself the HTTP port used.
686 Improvements in genconfig.sh for detecting ipf or pf (under FreeBSD)
687 and improve debian/ubuntu stuff.
688 custom chain name patch from :
689 http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=493
692 added USE_IFNAME_IN_RULES macro that can be disabled in order to
693 remove interface name from rules.
696 Fixed compilation without ENABLE_L3F_SERVICE
699 correct UNSUBSCRIBE processing
702 changed iptables_removeall.sh and iptables_init.sh in order
703 to remove IP from the rules
708 Eventing is allmost completly implemented
711 Correct event handling ?
714 enabling tag in PF rules. quick can be set off.
717 implementing event notify
720 fixing a command line parsing error
723 optimisations in upnpsoap.c
726 optimizing upnpsoap.c for size
729 Worked on the Eventing : generating XML event notifications
730 Send initial notification after subscribe
731 Improved pretty print of testupnpdescgen
732 Reduced Memory usage of upnpdescgen
733 fixed a small bug in the description
736 Fixed miniupnpd.c for compiling without natpmp support
737 fixed presentationURL not there with L3F
738 fixing lease file creation/modification
741 Rewrite of Send501() and Send404()
743 genconfig.sh autodetects pf/ipf
746 Started to implement UPnP Events. do NOT use it at the moment !
749 Added support for the Layer3Forwarding Service
750 added init_redirect() and shutdown_redirect() functions
753 Removed Ext: HTTP header when useless
754 enabled the dummy service by default to please windows XP !
757 upnp_enable patch by Nikos Mavrogiannopoulos.
758 lease_file patch by Nikos Mavrogiannopoulos.
761 some changes to Makefile.openwrt
762 use daemon() - daemonize() is still available for systems lacking daemon()
766 moved lan_addr to upnpglobalvars.h/.c
767 Adding experimental multiple external IP support.
770 removed dummy service from description to improve compatibility
772 Add "secure mode". put runtime flags in the same variable
775 Fixed a bug in options.c for the parsing of empty lines.
778 Fixed CleanExpiredNATPMP()
781 Adding a queue parameter for setting ALTQ in pf
784 improving some stuff with the PF_ENABLE_FILTER_RULE.
787 Adding a runtime option to enable/disable NAT-PMP
790 Added a cache in linux getifstats(). Please enable by editing config.h
793 Updating an existing NAT-PMP mapping now works
796 NAT-PMP code now remove expired mappings
797 TCP/UDP where swapped in NAT-PMP code
800 Adding details to the error message for sendto(udp_notify)
803 pf code doesn't generate filter rules by default anymore. The
804 #ifdef PF_ENABLE_FILTER_RULES must be uncommented in config.h.
807 moved some of the prototypes common to all firewalls to commonrdr.h
808 Added functionalities to NAT-PMP
811 Debugged NAT-PMP code
814 Cleaning and improving NAT-PMP code
817 improved the NAT-PMP experimental support
818 updated README and INSTALL files
821 Adding support for NAT-PMP (from apple !)
824 Checking the commandline for errors.
827 Improved the BSD/Solaris Makefile
828 Merging last code from Darren Reed. Solaris/IPF should work now !
832 Adding Darren Reed code for ipf.
835 Adding SunOS support thanks to Darren Reed.
836 Reorganizing os/firewall dependent code thanks to Darren Reed.
839 linux make install support PREFIX variable
842 reorganizing LAN sockets/address to improve multi LAN support.
843 SSDP announces are sent to all configured networks.
844 SSDP responses are "customized" by subnetwork.
847 prototype code to remove unused rules
848 miniupnpdctl now display current rules
849 synchronised add_filter_rule2() prototype between pf and netfilter code.
852 Correctly filling the Cache-control header in SSDP packets
855 update PFRULE_INOUT_COUNTS detection for FreeBSD
858 update version in genconfig.sh
859 do not error when a duplicate redirection is requested.
862 really fixed the compilation bug with linux>=2.6.22
865 fixed an error in options.c that prevented to use packet_log option
868 improved genconfig.sh
869 fixed a compilation bug with linux>=2.6.22
872 added PFRULE_INOUT_COUNTS macro to enable separate in/out packet and
873 bytes counts in pf for OpenBSD >= 3.8
876 removed a possible racecondition in writepidfile()
879 improved genconfig.sh : no more "echo -e", use lsb_release when available
882 get_redirect_rule*() functions now return some statistics about
883 rule usage (bytes and packets)
886 Fixed the get_redirect_desc() in the linux/netfilter code
889 Clean up init code in miniupnpd.c
890 Added a syslog message in SoapError()
893 Now store redirection descriptions in the linux/netfilter code
896 Answers to SSDP M-SEARCH requests with ST: ssdp:all
897 added make install to Makefile.linux
900 Fixed a bug int the DeletePortMapping linux/netfilter implementation
901 It was allways the 1st rule that was deleted.
904 Fixed config.h.openwrt
907 added something in the INSTALL file about the FreeBSD send(udp_notify)
908 problem fix (allowing 239.0.0.0/8 explicitely in pf.conf)
911 added setsockopt(s, SOL_SOCKET, SO_BROADCAST ...) for broadcasting
915 Fixed filter rule under linux : it was using wrong port !
916 thanks to Wesley W. Terpstra
919 Moved some of the SSDP code from miniupnpd.c to minissdp.c
922 creating miniupnpdctl
925 use LOG_MINIUPNPD macro for openlog()
926 simplify miniupndShutdown()
930 Added stuff to change the pf rule "rdr" to "rdr pass"
933 Corrected Bytes per seconds to bits per second.
934 Ryan cleaned up comments and typos.
935 Ryan cleaned up daemonize stuff.
936 Ryan added possibility to configure model number and serial number
939 ryan improved the robustness of most UPnP Soap methods
940 I added a target in the Makefiles to properly generate an uuid using
942 Improved configuration file parsing.
945 Adding uuid option in miniupnpd.conf
948 Added upnppermissions stuff : adding some security to UPnP !
949 fixed XML description thanks to Ryan Wagoner
950 improved QueryStateVariable thanks to Ryan Wagoner
953 use getifaddr() for each GetExtenalIPAddress() Call.
954 We can change the ip during execution without pb
960 Fixed a nasty bug in the linux/netfilter version of get_filter_rule()
963 Improved the handling of the miniupnpd.conf file.
964 added -f option to choose which config file to read.
967 Fixed potential bugs with ClearNameValueList()
970 All by Ryan Wagoner :
971 - coding style and comments cleanup
972 - using now option file miniupnpd.conf
975 changed "xx active incoming HTTP connections" msg
978 Patch from Ryan Wagoner :
979 - no need to open sockets if we can't set the error handlers
980 - format the usage so it fits nicely on a standard size terminal
981 - fix up log_err message so they have the same format and you know what
983 - use same "white space" style throughout
984 - on shutdown no need to continue if opening socket or setsockopt fails
987 reduce amount of log lines (keeping the same information)
992 version 1.0-RC1 released
995 moved strings from upnpdescgen.c to upnpdescstrings.h for
997 Server: HTTP header now comes from a #define
998 added a compilation-time generated config.h
1001 minixml updated. should have no impact
1002 Added support for presentationURL with -w switch
1003 implemented getifstats() for linux. Added testgetifstats program
1004 improved error handling in getifstats() BSD
1007 no need to have miniupnpc sources to compile miniupnpd.
1008 Makefile.openwrt updated
1009 Closing sockets on exit thanks to Ryan Wagoner
1012 now handling signal SIGINT
1013 setting HTTP socket with REUSEADDR thanks to Ryan Wagoner
1014 daemon now tested on a Linksys WRT54G device running OpenWRT !
1017 disabling rtableid in pf code.
1020 Also responds on M-SEARCH with the uuid
1023 gaining some space in upnpsoap.c
1026 Cleaning up code to comply with ANSI C89
1029 Linux version now deleting both nat and accept rules
1030 implemented -U option under Linux
1033 implemented delete_redirect_rule() for linux
1034 returning error 714 in DeletePortMapping() when needed
1037 The linux/netfilter version should now WORK !
1038 fix in the writepidfile() function. open with a mode !
1041 fixing the XML description generation for big endian machines
1042 working on the linux/netfilter port
1045 improved a lot the handling of HTTP error cases
1048 Tried to make the Makefile compatible with both BSDmake
1049 and GNUmake. It was hard because of $^ and $<
1052 Makefile compatible with BSD make
1053 make install target.
1054 getifstats.c compatible with both OpenBSD and FreeBSD.
1057 added getifstats.c for openBSD. May not work under FreeBSD ?
1058 now reports bytes/packets sent/received
1060 possibility to report system uptime
1063 added a -L option to enable loggin (is off by default now).
1066 Patch by Ryan Wagoner to correct the XML description (was NewUpTime
1067 instead of NewUptime) and implement uptime.
1068 Trying to fix the memory leak. Added some comments
1069 added a -d option for debugging purpose
1070 Tnaks to valgrind (under linux!) I removed a small memory access error.
1073 Thanks to a patch sent by Michael van Tellingen, miniupnpd is
1074 now ignoring NOTIFY packets sent by other devices and is
1075 writing is own pid to /var/run/miniupnpd.pid
1078 Allways set sendEvents="no" in XML description (was causing
1079 pb with winXP as SUBSCRIBE is not implemented)
1082 added translation from hostname to IP in the AddPortMapping() method
1083 Thanks to Ryan Wagoner.
1086 Added an INSTALL file
1089 Added the possibility to change the notify interval
1092 Improved compliance of the XML Descriptions
1093 pretty print for testupnpdescgen
1096 improved the Error 404 response.
1097 Better serviceType and serviceId for dummy service...
1100 updating the XML description generator
1103 Thanks to Rick Richard, support for SSDP "alive" and "byebye" notifications
1104 was added. The -u options was also added. The SSDP response are now
1106 The -o option is now working (to force a specific external IP address).
1107 The Soap Methods errors are correctly responded (401 Invalid Action)
1110 Added code to handle filter rules. Thanks to Seth Mos (pfsense.com)
1111 storing the descriptions in the label of the rule
1114 improved the generation of the XML descriptions.
1115 I still need to add allowed values to variables.
1118 filtering SSDP requests and responding with same ST: field
1121 Added a dummy description for the WANDevice
1124 Command line arguments processing
1125 Added possibility to listen internally on several interfaces