1 $Id: Changelog.txt,v 1.415 2015/12/16 10:21:48 nanard Exp $
4 improve syslog message for incoming HTTP requests
7 --disable-pppconn to disable WanPPPConnection
8 more fixes in DeviceProtection service
11 add commandline option to genconfig.sh to set UPnP (UDA) version
12 advertise correct service and device versions when IGDv2 is enabled
13 fix action arguments for DeviceProtection service
14 fix event subscription renewal (include SID in response)
17 Fix bsd/getroute.c get_src_for_route_to() when args are NULL
20 use LOG_INFO instead of LOG_ERR for PCP PEER and MAP success
23 fix : properly call find_ipv6_addr() with the 1st LAN interface
24 use name server from query in SOAP responses (continued)
27 move SSDP_PACKET_MAX_LEN definition to config.h. also set default to 1024.
30 cleanup UPNP_VERSION macro / add UPNP_VERSION_MAJOR, UPNP_VERSION_MINOR
31 Dont use packed structs anymore to read/write PCP messages
34 use name server from query in SOAP responses
37 better bind socket to right interface(s),
38 using struct ip_mreqn, SO_BINDTODEVICE
41 Adding linux/nftables support
44 Remove dependency to libnfnetlink
45 fix typos in miniupnpd.conf
48 fix get_portmappings_in_range() for linux/netfilter
51 don't die when IPv6 is enabled and interface has no IPv4 address
54 IP wildcard for AddPinhole() is empty string
57 Checking Host: HTTP request header to prevent DNS rebinding attack
58 configurable BOOTID.UPNP.ORG SSDP header
59 use time for BOOTID.UPNP.ORG value
62 fix upnp_add_inboundpinhole() : check inet_pton() return
63 fix upnp_redirect() : check inet_aton() return
64 fix potential memory corruption in upnpsoap.c/GetListOfPortMappings()
65 fix buffer overrun in ParseHttpHeaders() if Content-Length doesn't contain any digit !
66 check if BuildHeader_upnphttp() failed to allocate memory
67 Credits goes to Stephen Röttger of the Google Security Team for identifying
71 check "sysctl -n net.ipv6.bindv6only" for linux
74 fixes ExecuteSoapAction if SoapAction value is not enclosed into
78 sockaddr_to_string() includes scope in IPv6 addresses
80 VERSION 1.9 : released on 2014/10/27
83 Properly implements NAT-PMP mapping removal according to RCF6886
86 Discard NAT-PMP packets coming from the WAN
87 Send SSDP announces to IPv6 link-local, site-local
88 and global multicast addresses
91 small modifications to compile with exotic C libraries
94 add comments in miniupnpd.conf regarding security
97 DeletePortMapping now checks for client IP in Securemode
101 e->ipv6.flags |= IP6T_F_PROTO; (netfilter)
102 fix natpmp.c byte order conversion
103 add small delay before SSDP response to prevent flooding
106 Add ipv6_bind_address (option "ipv6_listening_ip")
107 disable IPv6 when socket(PF_INTET6, ...) errors with EAFNOSUPPORT
108 Add IPV6 multicast membership only on selected "LAN" interfaces
111 be more strict when parsing LAN addresses / interface names
114 set source address for IPV6 packets sendto_schedule2() etc.
117 Fix deletePortMappingRange()
120 Fix PCP when request contain 0 IPv4 external address
121 Remove pointer casting in natpmp.c
124 rewrite iptables_*.sh scripts
127 Add FreeBSD support for CHECK_PORTINUSE
128 Add PCP support for CHECK_PORTINUSE
131 Add HTTPS support and skeleton of DeviceProtection implementation
134 start work to enable IPv6 PCP operations
137 reject renewal of subscribtion that already timeouted
138 Support for multiple URL in Callback: header (SUBSCRIBE)
141 fix getifaddr_in6() (used for PCP)
142 implement permissions with PCP Map
143 fix upnp_event_notify_connect() when ENABLE_IPV6 is set
146 Enable PCP by default.
147 Work in IPv6 on system where PF_INET6 are restricted to IPv6 only
148 change ipv6_enabled/ipv6fc_inbound_pinhole_allowed/ipv6fc_firewall_enabled
149 global vars to flags in runtime_flags
152 IPv6 support in testgetifaddr
155 NAT-PMP search an allowed eport instead of returning an error
156 if the original eport is not allowed.
159 Fix add_filter_rule2() for pf.
162 log message when shutting down
163 natpmp : avoid hang when all external ports in use
166 add implementation of scheduled sendto (asyncsendto) in order
167 to retry failed sendto() calls or schedule sending of packets
170 Defaulting to SSDP_RESPOND_SAME_VERSION
176 possibility to disable ipv6 at runtime
179 PCP : Add support for ANNOUNCE requests
180 minixml now handle XML comments
183 Attempt to compile with OS X/pf
186 Make all manufacturer info configurable thanks to Leo Moll
187 Merge PCP support (see https://github.com/miniupnp/miniupnp)
190 Have 3 UUID for the 3 devices (IGD, WAN Device, WAN Connection Device)
193 update upnpreplyparse to allow larger values (128 chars instead of 64)
196 check Service ID in SetDefaultConnectionService method
197 Don't advertise WANPPPConnection in UPNP_STRICT mode
200 Remove namespace from variable name elements in Events "propertyset"
201 to comply with UPNP DeviceArchitecture v1.1.
204 Adding support for IP Filter version 5.x
207 refuses non integer <NewPortMappingIndex> values
210 Update upnpreplyparse to take into account "empty" elements
213 Use pkg-config under linux to find libiptc. Thanks to Olivier Langlois
216 Add warning message when using IPv4 address for listening_ip with IPv6 enabled
219 Uses ifr_addr if ifr_netmask is not defined in struct ifreq
222 Correctly handle truncated snprintf() in SSDP code
225 to avoid build race conditions, genconfig.sh now uses a temporary file
228 use scope in get_lan_for_peer() for IPv6 addresses
231 autodetect LAN interface netmask instead of defaulting to /24
234 Use $(DESTDIR) in Makefile.linux.
235 see https://github.com/miniupnp/miniupnp/issues/26
238 Add DATE: header in SSDP packets
239 Fix SSDP packets sent with uuid as ST: header to conform to UDA
240 ignore SSDP packets missing the MX: header in UPNP_STRICT mode
241 Added Ext: header to HTTP responses to conform to UDA
242 Refactored SendSSDPNotifies() and SendSSDPGoodbye() and add
243 missing ssdp:alive and ssdp:byebye with NT uuid value.
245 VERSION 1.8 : released on 2013/02/06
248 Check source address of incomining HTTP connections and SSDP
249 packets in order to filter out WAN SSDP and HTTP trafic.
250 Implement get_src_for_route_to() for *BSD
251 fix 2 potential memory leaks in GetListOfPortMappings()
254 upnphttp.c: Fix and comment the findendheaders() function
255 upnphttp.c: remove strchr() call in ParseHttpHeaders()
256 add comments to explain how buffer is checked before calls
257 to ParseHttpHeaders()
260 upnphttp.c: ParseHttpHeaders() now checks atoi() return
263 More return value check for malloc() and realloc()
266 minor modifications to linux/getroute.c and testgetroute.c
269 updated DEFAULTCONNECTIONSERVICE_MAGICALVALUE for IGDv2
270 increased default buffer size for HTTP response
271 More argument check for SOAP actions in UPNP_STRICT mode
272 Better error checking after connect() in upnpevent
275 Fix atoi() on null pointer in upnpsoap.c
276 properly set service/device version in SSDP messages
277 fix newSubscriber() for IP6FirewallControl and DeviceProtection services
278 Enforce compliance for SUBSCRIBE messages (UPNP_STRICT mode)
279 Enforce compliance for UNSUBSCRIBE messages (UPNP_STRICT mode)
280 Ignore "-Wmissing-field-initializers" in upnpdescgen.c
281 check size of h->res_buf before building HTTP response
282 ENABLE_HTTP_DATE : add a Date: header to all HTTP responses
285 Fixes with DISABLE_CONFIG_FILE
287 UPC must be a 12 decimal digit code
288 SetDefaultConnectionService() checks its argumnents in UPNP_STRICT mode
289 Support for Accept-Language/Content-Language HTTP headers
290 Content-Type is now text/xml; charset="utf-8" to conform with UDA v1.1
291 Support Expect: 100-continue for POST HTTP requests
292 Manage services/devices versions in minissdp.c
293 Rename all include guards to not clash with C99.
294 (7.1.3 Reserved identifiers)
297 Cleaning code in ipfw (Jardel Weyrich)
300 Fixing a bug in clean_pinhole_list() under linux/netfilter
303 Adding an informational message at startup
306 Moved man page to section 8. miniupnpd.1 => miniupnpd.8
307 Added install of miniupnpd.8 man page in Makefile.linux
310 improved SubmitServicesToMiniSSDPD() function fiability
313 Add -A command line option to add permission rules
316 Add -z command line option to change friendly name (thanks to Shawn Fisher)
319 Detect port in use - patch by David Kerr
322 added DISABLE_CONFIG_FILE in options.h to disable miniupnpd.conf parsing
323 Add command line parsing for clean_ruleset_interval option
326 Only activate -L option for PF and IPF
327 -a option takes two arguments with MULTIPLE_EXTERNAL_IP defined
330 in UPNP_STRICT mode, the literal IPv6 address in "location:" of SSDP
331 messages is the source address used to send the message
334 Disable -ansi CFLAGS in Makefile.linux because recent iptables headers
335 make use of typeof keyword which is a GCC extension.
338 Improvements in autodetecting firewall under (Free)BSD
341 Cleanup HTTP request handling. Answer 405 when relevant
343 VERSION 1.7 : released the 2012/05/28
346 clean linux/ifacewatcher.c
347 set natpmp socket non blocking
353 Clean signal handling
356 Clean expired IPv6 pinholes correctly. and also with linux/netfilter.
359 Finalizing netfilter version of get_pinhole_info()
362 Move IPv6FirewallControl related code from upnpredirect.c to upnppinhole.c
363 Add netfilter implementation for
364 delete_pinhole()/update_pinhole()/get_pinhole_info()
367 Clean up settings of CFLAGS in Makefile's
368 Remove Warnings caused by signed/unsigned integer comparaisons
369 Also fix a couple of integer/pointer comparaisons.
370 Add UNUSED(arg) macro to remove unused argument warning.
371 Fix error handling in upnpevents.c (was causing segfault on Solaris !)
374 Started to implement add_pinhole() for netfilter (linux)
377 Fixed a bug in upnphttp that happened when POST is received in several
378 recv() calls and realloc() is called so the buffer used is moved.
381 Implement CheckPinholeWorking GetPinholePackets. WANIPv6FirewallControl
382 UpdatePinhole still to be done. And also netfilter/ipf/ipfw versions
385 Enough WANIPv6FirewallControl is implemented on pf so that AddPinhole() and
386 DeletePinhole() works !
389 First working experiment of IPv6 "pinhole" with pf
392 More C++ => ANSI C comments to compile with -ansi option
393 Add command line arguments to genconfig.sh config script.
396 Set TTL on SSDP Notify sockets (IPv4). TTL is set to 2 (recommendation from
397 UPnP Device Architecture v1.1)
400 Implementing IPv6 support :
401 Send SSDP NOTIFY ssdp:alive and ssdp:goodbye messages in IPv6.
402 Use UPnP/1.1 in SERVER: string as required in UPnP Device architecture 1.1.
403 Allow LAN interface to be given as interface names, instead of interface
404 IP addresses. It will allow IPv6 operations.
405 fix linux/getifstats.c when bitrate is unknown
408 Only remove pidfile if one was written in the first place.
411 Fix ipfilter support (thanks dhowland https://github.com/dhowland)
414 Changes to miniupnpd.init.d.script by Shawn Landden
417 fixed reload_from_lease_file().
420 Change parselanaddr() function to allow 192.168.1.1/255.255.255.0 in
422 Change read_permission_line() to allow 192.168.1.1/255.255.255.0 in
423 permission line (in configuration file).
426 More syntax checks in upnppermissions.c
429 Fix ipfw/Mac OS X specific source files to compile ok with -ansi flag
432 Make HTTP listen socket non blocking (so accept() can't block)
433 Make SSDP receive sockets non blocking
434 use sockaddr_to_string() in SendSSDPAnnonce2 to handle IPv6 addresses
437 Make HTTP (SOAP) sockets non blocking.
440 Compile ok with -ansi flag.
441 Save a few bytes in options.c using a string repository, instead of a fixed size
442 buffer for each option value.
445 Added friendly_name= option to config file
448 Anchor name (PF) is now configurable through the config file with anchor=
449 Added test of presence of /lib/libip4tc.so and /lib/libip6tc.so files in
450 Makefile.linux in order to add -lip4tc and -lip6tc to LIBS accordingly.
453 always handle EAGAIN, EWOULDBLOCK and EINTR after recv()/recvfrom() calls
456 Always #include <netinet/in.h> before #include <arpa/inet.h> (for OpenBSD)
457 .onrdomain field was added in pf with OpenBSD 5.0. Add PFRULE_HAS_ONRDOMAIN
460 Fixing netfilter/iptables_*.sh scripts for new ifconfig output format.
461 getifaddr.c: added additional checks on structure returned by getifaddrs()
462 Fixing Mac OS X makefile for installation
465 avoid infinite loop in SendResp_upnphttp() in case of error
466 Replaced SendResp_upnphttp() + CloseSocket_upnphttp() by
467 SendRespAndClose_upnphttp()
468 Tomato specifics in genconfig.sh
471 netfilter : Added a tiny_nf_nat.h file to compile with iptables
473 include xtables.h instead of iptables.h
475 VERSION 1.6 : released the 2011/07/25
478 Update doc for version 1.6
481 Fixing code with MULTIPLE_EXTERNAL_IP defined.
484 IPv6 support for UPnP events.
485 Security checks in UPnP events.
488 Remote host for GetListOfPortMappings
489 Remote host support for ipfw (tested on Mac OS X)
492 support for iptables-1.4.11.1
495 Remote host support for pf version
498 Supporting RemoteHost (mandatory in IGD v2)
501 Enabling events by default
504 Fixing Timeout missing in SUBSCRIBE renewal responses
505 (thanks to Pranesh Kulkarni)
506 Added comments about changes between IGD v1 and IGD v2
509 Description and leaseduration kept in ipfw version of the code.
510 Fixing ipfw code after testing under Mac OS X 10.6.7 (darwin 10.7.0)
513 Finishing and testing LeaseDuration support under OpenBSD.
514 Changing NAT-PMP port mapping lifetime support to match
515 lease duration support.
516 NAT-PMP address change announce broadcasted to both port
517 5350 and 5351 to be compatible with client following the
518 version of NAT PMP specification from 2008 or earlier.
519 writepidfile() Overwrite file if already existing
522 fix in linux/getifstats.c.
523 See http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=2212
524 Implementation of LeaseDuration support.
527 added get_wan_connection_status_str()
530 adding ifacewatcher thanks to Alexey Osipov
531 GET /DP.xml is now available. The description has to be completed.
534 Add getconnstatus.c/.h. Dont always have ConnectionStatus to "Connected"
535 Events for WANIPv6FirewallControll
538 patches for gentoo linux.
539 generation of the DeviceProtection service description.
542 Making the SSDP receiving socket work in IPv6 !
545 Support for HTTP in both IPv6 and IPv4.
546 IPv6 for SSDP receiving socket.
549 add new options in genconfig.sh (IGD_V2, ENABLE_DP_SERVICE)
550 add global vars ipv6fc_firewall_enabled and ipv6fc_inbound_pinhole_allowed
551 have MACROS for magical values in upnpdescgen.c, add eventing vars for WanIPv6FirewallControl.
552 applied 0001-Cosmetic-changes.patch(see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=764)
553 applied 0002-Remove-lan-addresses-limit-by-changing-storage-type-.patch
554 replaced some of the urn:schemas-upnp-org:device:* literal strings by macros.
555 adding some support for IP v6. #define ENABLE_IPV6
556 added -fno-strict-aliasing to compile options.
559 updating upnp descriptions for IGDv2
562 Adding WANIPv6FirewallContro to upnp description
565 adding a UPNP_STRICT config macro. Use it now for checking RemoteHost.
566 ENABLE_6FC_SERVICE : add the implementations of WANIPv6FirewallControl actions
569 preparing getifaddr() for IP v6
570 preparing SSDP stuff for IP v6. Trying to conform to UDA v1.1
573 Some modifications thanks to Daniel Dickinson to improve OpenWRT
578 Added code to generate devices/services descriptions for IGD v2
582 improved netfilter/delete_redirect_and_filter_rules() in order
583 to remove the right filter rule, even if it has another index than
587 clean up an fixes to make netfilter/testiptcrdr compile
590 Make "Makefile" work under Mac OS X with bsdmake.
591 added get_portmappings_in_range() in ipfwrdr.c
594 added get_portmappings_in_range() / upnp_get_portmappings_in_range()
597 Implementation of GetListOfPortMappings
600 Reverting "fixes" done in linux/iptables code the 2010/09/27.
601 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=741
604 added MINIUPNPD_VERSION in config.h. Taken from VERSION file.
606 VERSION 1.5 : released the 2011/01/01
609 Started to implement some of the new methods from WANIPConnection v2
612 Some fixes in the linux/iptables code when
613 miniupnpd_nat_chain <> miniupnpd_forward_chain
616 Patch to support nfqueue thanks to Colin McFarlane
619 Update Mac OS X / ipfw stuff from Jardel Weyrich
620 Fix in Makefile.linux for x86_64
623 Bugfix un CleanNATPMPRules() : see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=640
626 Fixing natpmp sockets.
629 Fix Makefile.linux to compile properly under Mandriva/rh/Fedora with
631 Workaround for bad uptime when started with a bad time set.
634 Tried to make a OpenBSD version 4.7 compatible code... still some
638 updates to testobsdrdr
641 -lip4tc in Makefile.linux.
644 some more error handling in set_startup_time()
645 silencing some warnings
648 Open Several sockets for NAT-PMP to make sure the source address
649 of NAT-PMP replies is right.
650 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=609
653 miniupnpdctl now output command line arguments.
654 added a -h option to get help. improved help.
657 using PRIu64 format to printf u_int64_t
658 Fixing calls to get_redirect_rule_by_index() : ifname should be initialized.
659 Add header lines to miniupnpdctl output
662 implementing sending of ip address change notification when receiving
665 VERSION 1.4 : released the 2009/10/30
668 Integrate IPfilter patch from Roy Marples.
669 Fix Netfilter code for old netfilter :
670 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=584
671 trim the description string in reload_from_lease_file()
674 Fixing unclosed raw sockets bug with netfilter code.
677 Fixes in ipf code thanks to Roy Marples
678 Enable DragonFly BSD Support thanks to Roy Marples.
679 Allow packager to define default location of config file via CFLAGS
680 Respect $DESTDIR when installing
683 Adding some support for MacOS X and IPFW
684 SO_REUSEADDR in minissdp.c for SSDP listening socket
687 unlink lease file in reload_from_lease_file()
690 Fixed a buffer overflow in ProcessSSDPRequest()
693 improving genconfig.sh for NetBSD : detecting use of pf or ipf
697 working support for iptables >= 1.4.3
700 work to support iptables-1.4.3 and up
703 fix in upnpevents_removeSubscriber()
706 added reload_from_lease_file()
709 Changes in upnpdescgen.c to allow to remove empty elements
710 strcasecmp instead of strcmp on path comparaisons to allow
711 bugged clients to work
714 Some minor changes to Makefile
715 improving Makefile.linux in order to build with iptables not properly
716 installed on the system.
719 Fixing upnpevents thanks to Justin Maggard
722 getifstats() return -1 when supplied with bad arguments
725 Fixed NAT-PMP response when IP not allocated to external interface
729 Reporting Unconnected status when the "external interface" has
730 no IP address assigned. Also added some comments
738 MiniUPnPd is now able to use MiniSSDPd to manage SSDP M-SEARCH answering
741 You can now let miniupnpd choose itself the HTTP port used.
744 Improvements in genconfig.sh for detecting ipf or pf (under FreeBSD)
745 and improve debian/ubuntu stuff.
746 custom chain name patch from :
747 http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=493
750 added USE_IFNAME_IN_RULES macro that can be disabled in order to
751 remove interface name from rules.
754 Fixed compilation without ENABLE_L3F_SERVICE
757 correct UNSUBSCRIBE processing
760 changed iptables_removeall.sh and iptables_init.sh in order
761 to remove IP from the rules
766 Eventing is allmost completly implemented
769 Correct event handling ?
772 enabling tag in PF rules. quick can be set off.
775 implementing event notify
778 fixing a command line parsing error
781 optimisations in upnpsoap.c
784 optimizing upnpsoap.c for size
787 Worked on the Eventing : generating XML event notifications
788 Send initial notification after subscribe
789 Improved pretty print of testupnpdescgen
790 Reduced Memory usage of upnpdescgen
791 fixed a small bug in the description
794 Fixed miniupnpd.c for compiling without natpmp support
795 fixed presentationURL not there with L3F
796 fixing lease file creation/modification
799 Rewrite of Send501() and Send404()
801 genconfig.sh autodetects pf/ipf
804 Started to implement UPnP Events. do NOT use it at the moment !
807 Added support for the Layer3Forwarding Service
808 added init_redirect() and shutdown_redirect() functions
811 Removed Ext: HTTP header when useless
812 enabled the dummy service by default to please windows XP !
815 upnp_enable patch by Nikos Mavrogiannopoulos.
816 lease_file patch by Nikos Mavrogiannopoulos.
819 some changes to Makefile.openwrt
820 use daemon() - daemonize() is still available for systems lacking daemon()
824 moved lan_addr to upnpglobalvars.h/.c
825 Adding experimental multiple external IP support.
828 removed dummy service from description to improve compatibility
830 Add "secure mode". put runtime flags in the same variable
833 Fixed a bug in options.c for the parsing of empty lines.
836 Fixed CleanExpiredNATPMP()
839 Adding a queue parameter for setting ALTQ in pf
842 improving some stuff with the PF_ENABLE_FILTER_RULE.
845 Adding a runtime option to enable/disable NAT-PMP
848 Added a cache in linux getifstats(). Please enable by editing config.h
851 Updating an existing NAT-PMP mapping now works
854 NAT-PMP code now remove expired mappings
855 TCP/UDP where swapped in NAT-PMP code
858 Adding details to the error message for sendto(udp_notify)
861 pf code doesn't generate filter rules by default anymore. The
862 #ifdef PF_ENABLE_FILTER_RULES must be uncommented in config.h.
865 moved some of the prototypes common to all firewalls to commonrdr.h
866 Added functionalities to NAT-PMP
869 Debugged NAT-PMP code
872 Cleaning and improving NAT-PMP code
875 improved the NAT-PMP experimental support
876 updated README and INSTALL files
879 Adding support for NAT-PMP (from apple !)
882 Checking the commandline for errors.
885 Improved the BSD/Solaris Makefile
886 Merging last code from Darren Reed. Solaris/IPF should work now !
890 Adding Darren Reed code for ipf.
893 Adding SunOS support thanks to Darren Reed.
894 Reorganizing os/firewall dependent code thanks to Darren Reed.
897 linux make install support PREFIX variable
900 reorganizing LAN sockets/address to improve multi LAN support.
901 SSDP announces are sent to all configured networks.
902 SSDP responses are "customized" by subnetwork.
905 prototype code to remove unused rules
906 miniupnpdctl now display current rules
907 synchronised add_filter_rule2() prototype between pf and netfilter code.
910 Correctly filling the Cache-control header in SSDP packets
913 update PFRULE_INOUT_COUNTS detection for FreeBSD
916 update version in genconfig.sh
917 do not error when a duplicate redirection is requested.
920 really fixed the compilation bug with linux>=2.6.22
923 fixed an error in options.c that prevented to use packet_log option
926 improved genconfig.sh
927 fixed a compilation bug with linux>=2.6.22
930 added PFRULE_INOUT_COUNTS macro to enable separate in/out packet and
931 bytes counts in pf for OpenBSD >= 3.8
934 removed a possible racecondition in writepidfile()
937 improved genconfig.sh : no more "echo -e", use lsb_release when available
940 get_redirect_rule*() functions now return some statistics about
941 rule usage (bytes and packets)
944 Fixed the get_redirect_desc() in the linux/netfilter code
947 Clean up init code in miniupnpd.c
948 Added a syslog message in SoapError()
951 Now store redirection descriptions in the linux/netfilter code
954 Answers to SSDP M-SEARCH requests with ST: ssdp:all
955 added make install to Makefile.linux
958 Fixed a bug int the DeletePortMapping linux/netfilter implementation
959 It was allways the 1st rule that was deleted.
962 Fixed config.h.openwrt
965 added something in the INSTALL file about the FreeBSD send(udp_notify)
966 problem fix (allowing 239.0.0.0/8 explicitely in pf.conf)
969 added setsockopt(s, SOL_SOCKET, SO_BROADCAST ...) for broadcasting
973 Fixed filter rule under linux : it was using wrong port !
974 thanks to Wesley W. Terpstra
977 Moved some of the SSDP code from miniupnpd.c to minissdp.c
980 creating miniupnpdctl
983 use LOG_MINIUPNPD macro for openlog()
984 simplify miniupndShutdown()
988 Added stuff to change the pf rule "rdr" to "rdr pass"
991 Corrected Bytes per seconds to bits per second.
992 Ryan cleaned up comments and typos.
993 Ryan cleaned up daemonize stuff.
994 Ryan added possibility to configure model number and serial number
997 ryan improved the robustness of most UPnP Soap methods
998 I added a target in the Makefiles to properly generate an uuid using
1000 Improved configuration file parsing.
1003 Adding uuid option in miniupnpd.conf
1006 Added upnppermissions stuff : adding some security to UPnP !
1007 fixed XML description thanks to Ryan Wagoner
1008 improved QueryStateVariable thanks to Ryan Wagoner
1011 use getifaddr() for each GetExtenalIPAddress() Call.
1012 We can change the ip during execution without pb
1015 Lots of code cleanup
1018 Fixed a nasty bug in the linux/netfilter version of get_filter_rule()
1021 Improved the handling of the miniupnpd.conf file.
1022 added -f option to choose which config file to read.
1025 Fixed potential bugs with ClearNameValueList()
1028 All by Ryan Wagoner :
1029 - coding style and comments cleanup
1030 - using now option file miniupnpd.conf
1033 changed "xx active incoming HTTP connections" msg
1036 Patch from Ryan Wagoner :
1037 - no need to open sockets if we can't set the error handlers
1038 - format the usage so it fits nicely on a standard size terminal
1039 - fix up log_err message so they have the same format and you know what
1041 - use same "white space" style throughout
1042 - on shutdown no need to continue if opening socket or setsockopt fails
1045 reduce amount of log lines (keeping the same information)
1050 version 1.0-RC1 released
1053 moved strings from upnpdescgen.c to upnpdescstrings.h for
1055 Server: HTTP header now comes from a #define
1056 added a compilation-time generated config.h
1059 minixml updated. should have no impact
1060 Added support for presentationURL with -w switch
1061 implemented getifstats() for linux. Added testgetifstats program
1062 improved error handling in getifstats() BSD
1065 no need to have miniupnpc sources to compile miniupnpd.
1066 Makefile.openwrt updated
1067 Closing sockets on exit thanks to Ryan Wagoner
1070 now handling signal SIGINT
1071 setting HTTP socket with REUSEADDR thanks to Ryan Wagoner
1072 daemon now tested on a Linksys WRT54G device running OpenWRT !
1075 disabling rtableid in pf code.
1078 Also responds on M-SEARCH with the uuid
1081 gaining some space in upnpsoap.c
1084 Cleaning up code to comply with ANSI C89
1087 Linux version now deleting both nat and accept rules
1088 implemented -U option under Linux
1091 implemented delete_redirect_rule() for linux
1092 returning error 714 in DeletePortMapping() when needed
1095 The linux/netfilter version should now WORK !
1096 fix in the writepidfile() function. open with a mode !
1099 fixing the XML description generation for big endian machines
1100 working on the linux/netfilter port
1103 improved a lot the handling of HTTP error cases
1106 Tried to make the Makefile compatible with both BSDmake
1107 and GNUmake. It was hard because of $^ and $<
1110 Makefile compatible with BSD make
1111 make install target.
1112 getifstats.c compatible with both OpenBSD and FreeBSD.
1115 added getifstats.c for openBSD. May not work under FreeBSD ?
1116 now reports bytes/packets sent/received
1118 possibility to report system uptime
1121 added a -L option to enable loggin (is off by default now).
1124 Patch by Ryan Wagoner to correct the XML description (was NewUpTime
1125 instead of NewUptime) and implement uptime.
1126 Trying to fix the memory leak. Added some comments
1127 added a -d option for debugging purpose
1128 Tnaks to valgrind (under linux!) I removed a small memory access error.
1131 Thanks to a patch sent by Michael van Tellingen, miniupnpd is
1132 now ignoring NOTIFY packets sent by other devices and is
1133 writing is own pid to /var/run/miniupnpd.pid
1136 Allways set sendEvents="no" in XML description (was causing
1137 pb with winXP as SUBSCRIBE is not implemented)
1140 added translation from hostname to IP in the AddPortMapping() method
1141 Thanks to Ryan Wagoner.
1144 Added an INSTALL file
1147 Added the possibility to change the notify interval
1150 Improved compliance of the XML Descriptions
1151 pretty print for testupnpdescgen
1154 improved the Error 404 response.
1155 Better serviceType and serviceId for dummy service...
1158 updating the XML description generator
1161 Thanks to Rick Richard, support for SSDP "alive" and "byebye" notifications
1162 was added. The -u options was also added. The SSDP response are now
1164 The -o option is now working (to force a specific external IP address).
1165 The Soap Methods errors are correctly responded (401 Invalid Action)
1168 Added code to handle filter rules. Thanks to Seth Mos (pfsense.com)
1169 storing the descriptions in the label of the rule
1172 improved the generation of the XML descriptions.
1173 I still need to add allowed values to variables.
1176 filtering SSDP requests and responding with same ST: field
1179 Added a dummy description for the WANDevice
1182 Command line arguments processing
1183 Added possibility to listen internally on several interfaces