1 $Id: Changelog.txt,v 1.399 2015/04/30 09:05:07 nanard Exp $
4 Adding linux/nftables support
7 Remove dependency to libnfnetlink
8 fix typos in miniupnpd.conf
11 fix get_portmappings_in_range() for linux/netfilter
14 don't die when IPv6 is enabled and interface has no IPv4 address
17 IP wildcard for AddPinhole() is empty string
20 Checking Host: HTTP request header to prevent DNS rebinding attack
21 configurable BOOTID.UPNP.ORG SSDP header
22 use time for BOOTID.UPNP.ORG value
25 fix upnp_add_inboundpinhole() : check inet_pton() return
26 fix upnp_redirect() : check inet_aton() return
27 fix potential memory corruption in upnpsoap.c/GetListOfPortMappings()
28 fix buffer overrun in ParseHttpHeaders() if Content-Length doesn't contain any digit !
29 check if BuildHeader_upnphttp() failed to allocate memory
30 Credits goes to Stephen Röttger of the Google Security Team for identifying
34 check "sysctl -n net.ipv6.bindv6only" for linux
37 fixes ExecuteSoapAction if SoapAction value is not enclosed into
41 sockaddr_to_string() includes scope in IPv6 addresses
43 VERSION 1.9 : released on 2014/10/27
46 Properly implements NAT-PMP mapping removal according to RCF6886
49 Discard NAT-PMP packets coming from the WAN
50 Send SSDP announces to IPv6 link-local, site-local
51 and global multicast addresses
54 small modifications to compile with exotic C libraries
57 add comments in miniupnpd.conf regarding security
60 DeletePortMapping now checks for client IP in Securemode
64 e->ipv6.flags |= IP6T_F_PROTO; (netfilter)
65 fix natpmp.c byte order conversion
66 add small delay before SSDP response to prevent flooding
69 Add ipv6_bind_address (option "ipv6_listening_ip")
70 disable IPv6 when socket(PF_INTET6, ...) errors with EAFNOSUPPORT
71 Add IPV6 multicast membership only on selected "LAN" interfaces
74 be more strict when parsing LAN addresses / interface names
77 set source address for IPV6 packets sendto_schedule2() etc.
80 Fix deletePortMappingRange()
83 Fix PCP when request contain 0 IPv4 external address
84 Remove pointer casting in natpmp.c
87 rewrite iptables_*.sh scripts
90 Add FreeBSD support for CHECK_PORTINUSE
91 Add PCP support for CHECK_PORTINUSE
94 Add HTTPS support and skeleton of DeviceProtection implementation
97 start work to enable IPv6 PCP operations
100 reject renewal of subscribtion that already timeouted
101 Support for multiple URL in Callback: header (SUBSCRIBE)
104 fix getifaddr_in6() (used for PCP)
105 implement permissions with PCP Map
106 fix upnp_event_notify_connect() when ENABLE_IPV6 is set
109 Enable PCP by default.
110 Work in IPv6 on system where PF_INET6 are restricted to IPv6 only
111 change ipv6_enabled/ipv6fc_inbound_pinhole_allowed/ipv6fc_firewall_enabled
112 global vars to flags in runtime_flags
115 IPv6 support in testgetifaddr
118 NAT-PMP search an allowed eport instead of returning an error
119 if the original eport is not allowed.
122 Fix add_filter_rule2() for pf.
125 log message when shutting down
126 natpmp : avoid hang when all external ports in use
129 add implementation of scheduled sendto (asyncsendto) in order
130 to retry failed sendto() calls or schedule sending of packets
133 Defaulting to SSDP_RESPOND_SAME_VERSION
139 possibility to disable ipv6 at runtime
142 PCP : Add support for ANNOUNCE requests
143 minixml now handle XML comments
146 Attempt to compile with OS X/pf
149 Make all manufacturer info configurable thanks to Leo Moll
150 Merge PCP support (see https://github.com/miniupnp/miniupnp)
153 Have 3 UUID for the 3 devices (IGD, WAN Device, WAN Connection Device)
156 update upnpreplyparse to allow larger values (128 chars instead of 64)
159 check Service ID in SetDefaultConnectionService method
160 Don't advertise WANPPPConnection in UPNP_STRICT mode
163 Remove namespace from variable name elements in Events "propertyset"
164 to comply with UPNP DeviceArchitecture v1.1.
167 Adding support for IP Filter version 5.x
170 refuses non integer <NewPortMappingIndex> values
173 Update upnpreplyparse to take into account "empty" elements
176 Use pkg-config under linux to find libiptc. Thanks to Olivier Langlois
179 Add warning message when using IPv4 address for listening_ip with IPv6 enabled
182 Uses ifr_addr if ifr_netmask is not defined in struct ifreq
185 Correctly handle truncated snprintf() in SSDP code
188 to avoid build race conditions, genconfig.sh now uses a temporary file
191 use scope in get_lan_for_peer() for IPv6 addresses
194 autodetect LAN interface netmask instead of defaulting to /24
197 Use $(DESTDIR) in Makefile.linux.
198 see https://github.com/miniupnp/miniupnp/issues/26
201 Add DATE: header in SSDP packets
202 Fix SSDP packets sent with uuid as ST: header to conform to UDA
203 ignore SSDP packets missing the MX: header in UPNP_STRICT mode
204 Added Ext: header to HTTP responses to conform to UDA
205 Refactored SendSSDPNotifies() and SendSSDPGoodbye() and add
206 missing ssdp:alive and ssdp:byebye with NT uuid value.
208 VERSION 1.8 : released on 2013/02/06
211 Check source address of incomining HTTP connections and SSDP
212 packets in order to filter out WAN SSDP and HTTP trafic.
213 Implement get_src_for_route_to() for *BSD
214 fix 2 potential memory leaks in GetListOfPortMappings()
217 upnphttp.c: Fix and comment the findendheaders() function
218 upnphttp.c: remove strchr() call in ParseHttpHeaders()
219 add comments to explain how buffer is checked before calls
220 to ParseHttpHeaders()
223 upnphttp.c: ParseHttpHeaders() now checks atoi() return
226 More return value check for malloc() and realloc()
229 minor modifications to linux/getroute.c and testgetroute.c
232 updated DEFAULTCONNECTIONSERVICE_MAGICALVALUE for IGDv2
233 increased default buffer size for HTTP response
234 More argument check for SOAP actions in UPNP_STRICT mode
235 Better error checking after connect() in upnpevent
238 Fix atoi() on null pointer in upnpsoap.c
239 properly set service/device version in SSDP messages
240 fix newSubscriber() for IP6FirewallControl and DeviceProtection services
241 Enforce compliance for SUBSCRIBE messages (UPNP_STRICT mode)
242 Enforce compliance for UNSUBSCRIBE messages (UPNP_STRICT mode)
243 Ignore "-Wmissing-field-initializers" in upnpdescgen.c
244 check size of h->res_buf before building HTTP response
245 ENABLE_HTTP_DATE : add a Date: header to all HTTP responses
248 Fixes with DISABLE_CONFIG_FILE
250 UPC must be a 12 decimal digit code
251 SetDefaultConnectionService() checks its argumnents in UPNP_STRICT mode
252 Support for Accept-Language/Content-Language HTTP headers
253 Content-Type is now text/xml; charset="utf-8" to conform with UDA v1.1
254 Support Expect: 100-continue for POST HTTP requests
255 Manage services/devices versions in minissdp.c
256 Rename all include guards to not clash with C99.
257 (7.1.3 Reserved identifiers)
260 Cleaning code in ipfw (Jardel Weyrich)
263 Fixing a bug in clean_pinhole_list() under linux/netfilter
266 Adding an informational message at startup
269 Moved man page to section 8. miniupnpd.1 => miniupnpd.8
270 Added install of miniupnpd.8 man page in Makefile.linux
273 improved SubmitServicesToMiniSSDPD() function fiability
276 Add -A command line option to add permission rules
279 Add -z command line option to change friendly name (thanks to Shawn Fisher)
282 Detect port in use - patch by David Kerr
285 added DISABLE_CONFIG_FILE in options.h to disable miniupnpd.conf parsing
286 Add command line parsing for clean_ruleset_interval option
289 Only activate -L option for PF and IPF
290 -a option takes two arguments with MULTIPLE_EXTERNAL_IP defined
293 in UPNP_STRICT mode, the literal IPv6 address in "location:" of SSDP
294 messages is the source address used to send the message
297 Disable -ansi CFLAGS in Makefile.linux because recent iptables headers
298 make use of typeof keyword which is a GCC extension.
301 Improvements in autodetecting firewall under (Free)BSD
304 Cleanup HTTP request handling. Answer 405 when relevant
306 VERSION 1.7 : released the 2012/05/28
309 clean linux/ifacewatcher.c
310 set natpmp socket non blocking
316 Clean signal handling
319 Clean expired IPv6 pinholes correctly. and also with linux/netfilter.
322 Finalizing netfilter version of get_pinhole_info()
325 Move IPv6FirewallControl related code from upnpredirect.c to upnppinhole.c
326 Add netfilter implementation for
327 delete_pinhole()/update_pinhole()/get_pinhole_info()
330 Clean up settings of CFLAGS in Makefile's
331 Remove Warnings caused by signed/unsigned integer comparaisons
332 Also fix a couple of integer/pointer comparaisons.
333 Add UNUSED(arg) macro to remove unused argument warning.
334 Fix error handling in upnpevents.c (was causing segfault on Solaris !)
337 Started to implement add_pinhole() for netfilter (linux)
340 Fixed a bug in upnphttp that happened when POST is received in several
341 recv() calls and realloc() is called so the buffer used is moved.
344 Implement CheckPinholeWorking GetPinholePackets. WANIPv6FirewallControl
345 UpdatePinhole still to be done. And also netfilter/ipf/ipfw versions
348 Enough WANIPv6FirewallControl is implemented on pf so that AddPinhole() and
349 DeletePinhole() works !
352 First working experiment of IPv6 "pinhole" with pf
355 More C++ => ANSI C comments to compile with -ansi option
356 Add command line arguments to genconfig.sh config script.
359 Set TTL on SSDP Notify sockets (IPv4). TTL is set to 2 (recommendation from
360 UPnP Device Architecture v1.1)
363 Implementing IPv6 support :
364 Send SSDP NOTIFY ssdp:alive and ssdp:goodbye messages in IPv6.
365 Use UPnP/1.1 in SERVER: string as required in UPnP Device architecture 1.1.
366 Allow LAN interface to be given as interface names, instead of interface
367 IP addresses. It will allow IPv6 operations.
368 fix linux/getifstats.c when bitrate is unknown
371 Only remove pidfile if one was written in the first place.
374 Fix ipfilter support (thanks dhowland https://github.com/dhowland)
377 Changes to miniupnpd.init.d.script by Shawn Landden
380 fixed reload_from_lease_file().
383 Change parselanaddr() function to allow 192.168.1.1/255.255.255.0 in
385 Change read_permission_line() to allow 192.168.1.1/255.255.255.0 in
386 permission line (in configuration file).
389 More syntax checks in upnppermissions.c
392 Fix ipfw/Mac OS X specific source files to compile ok with -ansi flag
395 Make HTTP listen socket non blocking (so accept() can't block)
396 Make SSDP receive sockets non blocking
397 use sockaddr_to_string() in SendSSDPAnnonce2 to handle IPv6 addresses
400 Make HTTP (SOAP) sockets non blocking.
403 Compile ok with -ansi flag.
404 Save a few bytes in options.c using a string repository, instead of a fixed size
405 buffer for each option value.
408 Added friendly_name= option to config file
411 Anchor name (PF) is now configurable through the config file with anchor=
412 Added test of presence of /lib/libip4tc.so and /lib/libip6tc.so files in
413 Makefile.linux in order to add -lip4tc and -lip6tc to LIBS accordingly.
416 always handle EAGAIN, EWOULDBLOCK and EINTR after recv()/recvfrom() calls
419 Always #include <netinet/in.h> before #include <arpa/inet.h> (for OpenBSD)
420 .onrdomain field was added in pf with OpenBSD 5.0. Add PFRULE_HAS_ONRDOMAIN
423 Fixing netfilter/iptables_*.sh scripts for new ifconfig output format.
424 getifaddr.c: added additional checks on structure returned by getifaddrs()
425 Fixing Mac OS X makefile for installation
428 avoid infinite loop in SendResp_upnphttp() in case of error
429 Replaced SendResp_upnphttp() + CloseSocket_upnphttp() by
430 SendRespAndClose_upnphttp()
431 Tomato specifics in genconfig.sh
434 netfilter : Added a tiny_nf_nat.h file to compile with iptables
436 include xtables.h instead of iptables.h
438 VERSION 1.6 : released the 2011/07/25
441 Update doc for version 1.6
444 Fixing code with MULTIPLE_EXTERNAL_IP defined.
447 IPv6 support for UPnP events.
448 Security checks in UPnP events.
451 Remote host for GetListOfPortMappings
452 Remote host support for ipfw (tested on Mac OS X)
455 support for iptables-1.4.11.1
458 Remote host support for pf version
461 Supporting RemoteHost (mandatory in IGD v2)
464 Enabling events by default
467 Fixing Timeout missing in SUBSCRIBE renewal responses
468 (thanks to Pranesh Kulkarni)
469 Added comments about changes between IGD v1 and IGD v2
472 Description and leaseduration kept in ipfw version of the code.
473 Fixing ipfw code after testing under Mac OS X 10.6.7 (darwin 10.7.0)
476 Finishing and testing LeaseDuration support under OpenBSD.
477 Changing NAT-PMP port mapping lifetime support to match
478 lease duration support.
479 NAT-PMP address change announce broadcasted to both port
480 5350 and 5351 to be compatible with client following the
481 version of NAT PMP specification from 2008 or earlier.
482 writepidfile() Overwrite file if already existing
485 fix in linux/getifstats.c.
486 See http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=2212
487 Implementation of LeaseDuration support.
490 added get_wan_connection_status_str()
493 adding ifacewatcher thanks to Alexey Osipov
494 GET /DP.xml is now available. The description has to be completed.
497 Add getconnstatus.c/.h. Dont always have ConnectionStatus to "Connected"
498 Events for WANIPv6FirewallControll
501 patches for gentoo linux.
502 generation of the DeviceProtection service description.
505 Making the SSDP receiving socket work in IPv6 !
508 Support for HTTP in both IPv6 and IPv4.
509 IPv6 for SSDP receiving socket.
512 add new options in genconfig.sh (IGD_V2, ENABLE_DP_SERVICE)
513 add global vars ipv6fc_firewall_enabled and ipv6fc_inbound_pinhole_allowed
514 have MACROS for magical values in upnpdescgen.c, add eventing vars for WanIPv6FirewallControl.
515 applied 0001-Cosmetic-changes.patch(see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=764)
516 applied 0002-Remove-lan-addresses-limit-by-changing-storage-type-.patch
517 replaced some of the urn:schemas-upnp-org:device:* literal strings by macros.
518 adding some support for IP v6. #define ENABLE_IPV6
519 added -fno-strict-aliasing to compile options.
522 updating upnp descriptions for IGDv2
525 Adding WANIPv6FirewallContro to upnp description
528 adding a UPNP_STRICT config macro. Use it now for checking RemoteHost.
529 ENABLE_6FC_SERVICE : add the implementations of WANIPv6FirewallControl actions
532 preparing getifaddr() for IP v6
533 preparing SSDP stuff for IP v6. Trying to conform to UDA v1.1
536 Some modifications thanks to Daniel Dickinson to improve OpenWRT
541 Added code to generate devices/services descriptions for IGD v2
545 improved netfilter/delete_redirect_and_filter_rules() in order
546 to remove the right filter rule, even if it has another index than
550 clean up an fixes to make netfilter/testiptcrdr compile
553 Make "Makefile" work under Mac OS X with bsdmake.
554 added get_portmappings_in_range() in ipfwrdr.c
557 added get_portmappings_in_range() / upnp_get_portmappings_in_range()
560 Implementation of GetListOfPortMappings
563 Reverting "fixes" done in linux/iptables code the 2010/09/27.
564 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=741
567 added MINIUPNPD_VERSION in config.h. Taken from VERSION file.
569 VERSION 1.5 : released the 2011/01/01
572 Started to implement some of the new methods from WANIPConnection v2
575 Some fixes in the linux/iptables code when
576 miniupnpd_nat_chain <> miniupnpd_forward_chain
579 Patch to support nfqueue thanks to Colin McFarlane
582 Update Mac OS X / ipfw stuff from Jardel Weyrich
583 Fix in Makefile.linux for x86_64
586 Bugfix un CleanNATPMPRules() : see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=640
589 Fixing natpmp sockets.
592 Fix Makefile.linux to compile properly under Mandriva/rh/Fedora with
594 Workaround for bad uptime when started with a bad time set.
597 Tried to make a OpenBSD version 4.7 compatible code... still some
601 updates to testobsdrdr
604 -lip4tc in Makefile.linux.
607 some more error handling in set_startup_time()
608 silencing some warnings
611 Open Several sockets for NAT-PMP to make sure the source address
612 of NAT-PMP replies is right.
613 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=609
616 miniupnpdctl now output command line arguments.
617 added a -h option to get help. improved help.
620 using PRIu64 format to printf u_int64_t
621 Fixing calls to get_redirect_rule_by_index() : ifname should be initialized.
622 Add header lines to miniupnpdctl output
625 implementing sending of ip address change notification when receiving
628 VERSION 1.4 : released the 2009/10/30
631 Integrate IPfilter patch from Roy Marples.
632 Fix Netfilter code for old netfilter :
633 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=584
634 trim the description string in reload_from_lease_file()
637 Fixing unclosed raw sockets bug with netfilter code.
640 Fixes in ipf code thanks to Roy Marples
641 Enable DragonFly BSD Support thanks to Roy Marples.
642 Allow packager to define default location of config file via CFLAGS
643 Respect $DESTDIR when installing
646 Adding some support for MacOS X and IPFW
647 SO_REUSEADDR in minissdp.c for SSDP listening socket
650 unlink lease file in reload_from_lease_file()
653 Fixed a buffer overflow in ProcessSSDPRequest()
656 improving genconfig.sh for NetBSD : detecting use of pf or ipf
660 working support for iptables >= 1.4.3
663 work to support iptables-1.4.3 and up
666 fix in upnpevents_removeSubscriber()
669 added reload_from_lease_file()
672 Changes in upnpdescgen.c to allow to remove empty elements
673 strcasecmp instead of strcmp on path comparaisons to allow
674 bugged clients to work
677 Some minor changes to Makefile
678 improving Makefile.linux in order to build with iptables not properly
679 installed on the system.
682 Fixing upnpevents thanks to Justin Maggard
685 getifstats() return -1 when supplied with bad arguments
688 Fixed NAT-PMP response when IP not allocated to external interface
692 Reporting Unconnected status when the "external interface" has
693 no IP address assigned. Also added some comments
701 MiniUPnPd is now able to use MiniSSDPd to manage SSDP M-SEARCH answering
704 You can now let miniupnpd choose itself the HTTP port used.
707 Improvements in genconfig.sh for detecting ipf or pf (under FreeBSD)
708 and improve debian/ubuntu stuff.
709 custom chain name patch from :
710 http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=493
713 added USE_IFNAME_IN_RULES macro that can be disabled in order to
714 remove interface name from rules.
717 Fixed compilation without ENABLE_L3F_SERVICE
720 correct UNSUBSCRIBE processing
723 changed iptables_removeall.sh and iptables_init.sh in order
724 to remove IP from the rules
729 Eventing is allmost completly implemented
732 Correct event handling ?
735 enabling tag in PF rules. quick can be set off.
738 implementing event notify
741 fixing a command line parsing error
744 optimisations in upnpsoap.c
747 optimizing upnpsoap.c for size
750 Worked on the Eventing : generating XML event notifications
751 Send initial notification after subscribe
752 Improved pretty print of testupnpdescgen
753 Reduced Memory usage of upnpdescgen
754 fixed a small bug in the description
757 Fixed miniupnpd.c for compiling without natpmp support
758 fixed presentationURL not there with L3F
759 fixing lease file creation/modification
762 Rewrite of Send501() and Send404()
764 genconfig.sh autodetects pf/ipf
767 Started to implement UPnP Events. do NOT use it at the moment !
770 Added support for the Layer3Forwarding Service
771 added init_redirect() and shutdown_redirect() functions
774 Removed Ext: HTTP header when useless
775 enabled the dummy service by default to please windows XP !
778 upnp_enable patch by Nikos Mavrogiannopoulos.
779 lease_file patch by Nikos Mavrogiannopoulos.
782 some changes to Makefile.openwrt
783 use daemon() - daemonize() is still available for systems lacking daemon()
787 moved lan_addr to upnpglobalvars.h/.c
788 Adding experimental multiple external IP support.
791 removed dummy service from description to improve compatibility
793 Add "secure mode". put runtime flags in the same variable
796 Fixed a bug in options.c for the parsing of empty lines.
799 Fixed CleanExpiredNATPMP()
802 Adding a queue parameter for setting ALTQ in pf
805 improving some stuff with the PF_ENABLE_FILTER_RULE.
808 Adding a runtime option to enable/disable NAT-PMP
811 Added a cache in linux getifstats(). Please enable by editing config.h
814 Updating an existing NAT-PMP mapping now works
817 NAT-PMP code now remove expired mappings
818 TCP/UDP where swapped in NAT-PMP code
821 Adding details to the error message for sendto(udp_notify)
824 pf code doesn't generate filter rules by default anymore. The
825 #ifdef PF_ENABLE_FILTER_RULES must be uncommented in config.h.
828 moved some of the prototypes common to all firewalls to commonrdr.h
829 Added functionalities to NAT-PMP
832 Debugged NAT-PMP code
835 Cleaning and improving NAT-PMP code
838 improved the NAT-PMP experimental support
839 updated README and INSTALL files
842 Adding support for NAT-PMP (from apple !)
845 Checking the commandline for errors.
848 Improved the BSD/Solaris Makefile
849 Merging last code from Darren Reed. Solaris/IPF should work now !
853 Adding Darren Reed code for ipf.
856 Adding SunOS support thanks to Darren Reed.
857 Reorganizing os/firewall dependent code thanks to Darren Reed.
860 linux make install support PREFIX variable
863 reorganizing LAN sockets/address to improve multi LAN support.
864 SSDP announces are sent to all configured networks.
865 SSDP responses are "customized" by subnetwork.
868 prototype code to remove unused rules
869 miniupnpdctl now display current rules
870 synchronised add_filter_rule2() prototype between pf and netfilter code.
873 Correctly filling the Cache-control header in SSDP packets
876 update PFRULE_INOUT_COUNTS detection for FreeBSD
879 update version in genconfig.sh
880 do not error when a duplicate redirection is requested.
883 really fixed the compilation bug with linux>=2.6.22
886 fixed an error in options.c that prevented to use packet_log option
889 improved genconfig.sh
890 fixed a compilation bug with linux>=2.6.22
893 added PFRULE_INOUT_COUNTS macro to enable separate in/out packet and
894 bytes counts in pf for OpenBSD >= 3.8
897 removed a possible racecondition in writepidfile()
900 improved genconfig.sh : no more "echo -e", use lsb_release when available
903 get_redirect_rule*() functions now return some statistics about
904 rule usage (bytes and packets)
907 Fixed the get_redirect_desc() in the linux/netfilter code
910 Clean up init code in miniupnpd.c
911 Added a syslog message in SoapError()
914 Now store redirection descriptions in the linux/netfilter code
917 Answers to SSDP M-SEARCH requests with ST: ssdp:all
918 added make install to Makefile.linux
921 Fixed a bug int the DeletePortMapping linux/netfilter implementation
922 It was allways the 1st rule that was deleted.
925 Fixed config.h.openwrt
928 added something in the INSTALL file about the FreeBSD send(udp_notify)
929 problem fix (allowing 239.0.0.0/8 explicitely in pf.conf)
932 added setsockopt(s, SOL_SOCKET, SO_BROADCAST ...) for broadcasting
936 Fixed filter rule under linux : it was using wrong port !
937 thanks to Wesley W. Terpstra
940 Moved some of the SSDP code from miniupnpd.c to minissdp.c
943 creating miniupnpdctl
946 use LOG_MINIUPNPD macro for openlog()
947 simplify miniupndShutdown()
951 Added stuff to change the pf rule "rdr" to "rdr pass"
954 Corrected Bytes per seconds to bits per second.
955 Ryan cleaned up comments and typos.
956 Ryan cleaned up daemonize stuff.
957 Ryan added possibility to configure model number and serial number
960 ryan improved the robustness of most UPnP Soap methods
961 I added a target in the Makefiles to properly generate an uuid using
963 Improved configuration file parsing.
966 Adding uuid option in miniupnpd.conf
969 Added upnppermissions stuff : adding some security to UPnP !
970 fixed XML description thanks to Ryan Wagoner
971 improved QueryStateVariable thanks to Ryan Wagoner
974 use getifaddr() for each GetExtenalIPAddress() Call.
975 We can change the ip during execution without pb
981 Fixed a nasty bug in the linux/netfilter version of get_filter_rule()
984 Improved the handling of the miniupnpd.conf file.
985 added -f option to choose which config file to read.
988 Fixed potential bugs with ClearNameValueList()
991 All by Ryan Wagoner :
992 - coding style and comments cleanup
993 - using now option file miniupnpd.conf
996 changed "xx active incoming HTTP connections" msg
999 Patch from Ryan Wagoner :
1000 - no need to open sockets if we can't set the error handlers
1001 - format the usage so it fits nicely on a standard size terminal
1002 - fix up log_err message so they have the same format and you know what
1004 - use same "white space" style throughout
1005 - on shutdown no need to continue if opening socket or setsockopt fails
1008 reduce amount of log lines (keeping the same information)
1013 version 1.0-RC1 released
1016 moved strings from upnpdescgen.c to upnpdescstrings.h for
1018 Server: HTTP header now comes from a #define
1019 added a compilation-time generated config.h
1022 minixml updated. should have no impact
1023 Added support for presentationURL with -w switch
1024 implemented getifstats() for linux. Added testgetifstats program
1025 improved error handling in getifstats() BSD
1028 no need to have miniupnpc sources to compile miniupnpd.
1029 Makefile.openwrt updated
1030 Closing sockets on exit thanks to Ryan Wagoner
1033 now handling signal SIGINT
1034 setting HTTP socket with REUSEADDR thanks to Ryan Wagoner
1035 daemon now tested on a Linksys WRT54G device running OpenWRT !
1038 disabling rtableid in pf code.
1041 Also responds on M-SEARCH with the uuid
1044 gaining some space in upnpsoap.c
1047 Cleaning up code to comply with ANSI C89
1050 Linux version now deleting both nat and accept rules
1051 implemented -U option under Linux
1054 implemented delete_redirect_rule() for linux
1055 returning error 714 in DeletePortMapping() when needed
1058 The linux/netfilter version should now WORK !
1059 fix in the writepidfile() function. open with a mode !
1062 fixing the XML description generation for big endian machines
1063 working on the linux/netfilter port
1066 improved a lot the handling of HTTP error cases
1069 Tried to make the Makefile compatible with both BSDmake
1070 and GNUmake. It was hard because of $^ and $<
1073 Makefile compatible with BSD make
1074 make install target.
1075 getifstats.c compatible with both OpenBSD and FreeBSD.
1078 added getifstats.c for openBSD. May not work under FreeBSD ?
1079 now reports bytes/packets sent/received
1081 possibility to report system uptime
1084 added a -L option to enable loggin (is off by default now).
1087 Patch by Ryan Wagoner to correct the XML description (was NewUpTime
1088 instead of NewUptime) and implement uptime.
1089 Trying to fix the memory leak. Added some comments
1090 added a -d option for debugging purpose
1091 Tnaks to valgrind (under linux!) I removed a small memory access error.
1094 Thanks to a patch sent by Michael van Tellingen, miniupnpd is
1095 now ignoring NOTIFY packets sent by other devices and is
1096 writing is own pid to /var/run/miniupnpd.pid
1099 Allways set sendEvents="no" in XML description (was causing
1100 pb with winXP as SUBSCRIBE is not implemented)
1103 added translation from hostname to IP in the AddPortMapping() method
1104 Thanks to Ryan Wagoner.
1107 Added an INSTALL file
1110 Added the possibility to change the notify interval
1113 Improved compliance of the XML Descriptions
1114 pretty print for testupnpdescgen
1117 improved the Error 404 response.
1118 Better serviceType and serviceId for dummy service...
1121 updating the XML description generator
1124 Thanks to Rick Richard, support for SSDP "alive" and "byebye" notifications
1125 was added. The -u options was also added. The SSDP response are now
1127 The -o option is now working (to force a specific external IP address).
1128 The Soap Methods errors are correctly responded (401 Invalid Action)
1131 Added code to handle filter rules. Thanks to Seth Mos (pfsense.com)
1132 storing the descriptions in the label of the rule
1135 improved the generation of the XML descriptions.
1136 I still need to add allowed values to variables.
1139 filtering SSDP requests and responding with same ST: field
1142 Added a dummy description for the WANDevice
1145 Command line arguments processing
1146 Added possibility to listen internally on several interfaces