1 $Id: Changelog.txt,v 1.340 2013/05/20 00:12:49 nanard Exp $
4 Adding support for IP Filter version 5.x
7 refuses non integer <NewPortMappingIndex> values
10 Update upnpreplyparse to take into account "empty" elements
13 Use pkg-config under linux to find libiptc. Thanks to Olivier Langlois
16 Add warning message when using IPv4 address for listening_ip with IPv6 enabled
19 Uses ifr_addr if ifr_netmask is not defined in struct ifreq
22 Correctly handle truncated snprintf() in SSDP code
25 to avoid build race conditions, genconfig.sh now uses a temporary file
28 use scope in get_lan_for_peer() for IPv6 addresses
31 autodetect LAN interface netmask instead of defaulting to /24
34 Use $(DESTDIR) in Makefile.linux.
35 see https://github.com/miniupnp/miniupnp/issues/26
38 Add DATE: header in SSDP packets
39 Fix SSDP packets sent with uuid as ST: header to conform to UDA
40 ignore SSDP packets missing the MX: header in UPNP_STRICT mode
41 Added Ext: header to HTTP responses to conform to UDA
42 Refactored SendSSDPNotifies() and SendSSDPGoodbye() and add
43 missing ssdp:alive and ssdp:byebye with NT uuid value.
45 VERSION 1.8 : released on 2013/02/06
48 Check source address of incomining HTTP connections and SSDP
49 packets in order to filter out WAN SSDP and HTTP trafic.
50 Implement get_src_for_route_to() for *BSD
51 fix 2 potential memory leaks in GetListOfPortMappings()
54 upnphttp.c: Fix and comment the findendheaders() function
55 upnphttp.c: remove strchr() call in ParseHttpHeaders()
56 add comments to explain how buffer is checked before calls
60 upnphttp.c: ParseHttpHeaders() now checks atoi() return
63 More return value check for malloc() and realloc()
66 minor modifications to linux/getroute.c and testgetroute.c
69 updated DEFAULTCONNECTIONSERVICE_MAGICALVALUE for IGDv2
70 increased default buffer size for HTTP response
71 More argument check for SOAP actions in UPNP_STRICT mode
72 Better error checking after connect() in upnpevent
75 Fix atoi() on null pointer in upnpsoap.c
76 properly set service/device version in SSDP messages
77 fix newSubscriber() for IP6FirewallControl and DeviceProtection services
78 Enforce compliance for SUBSCRIBE messages (UPNP_STRICT mode)
79 Enforce compliance for UNSUBSCRIBE messages (UPNP_STRICT mode)
80 Ignore "-Wmissing-field-initializers" in upnpdescgen.c
81 check size of h->res_buf before building HTTP response
82 ENABLE_HTTP_DATE : add a Date: header to all HTTP responses
85 Fixes with DISABLE_CONFIG_FILE
87 UPC must be a 12 decimal digit code
88 SetDefaultConnectionService() checks its argumnents in UPNP_STRICT mode
89 Support for Accept-Language/Content-Language HTTP headers
90 Content-Type is now text/xml; charset="utf-8" to conform with UDA v1.1
91 Support Expect: 100-continue for POST HTTP requests
92 Manage services/devices versions in minissdp.c
93 Rename all include guards to not clash with C99.
94 (7.1.3 Reserved identifiers)
97 Cleaning code in ipfw (Jardel Weyrich)
100 Fixing a bug in clean_pinhole_list() under linux/netfilter
103 Adding an informational message at startup
106 Moved man page to section 8. miniupnpd.1 => miniupnpd.8
107 Added install of miniupnpd.8 man page in Makefile.linux
110 improved SubmitServicesToMiniSSDPD() function fiability
113 Add -A command line option to add permission rules
116 Add -z command line option to change friendly name (thanks to Shawn Fisher)
119 added DISABLE_CONFIG_FILE in options.h to disable miniupnpd.conf parsing
120 Add command line parsing for clean_ruleset_interval option
123 Only activate -L option for PF and IPF
124 -a option takes two arguments with MULTIPLE_EXTERNAL_IP defined
127 in UPNP_STRICT mode, the literal IPv6 address in "location:" of SSDP
128 messages is the source address used to send the message
131 Disable -ansi CFLAGS in Makefile.linux because recent iptables headers
132 make use of typeof keyword which is a GCC extension.
135 Improvements in autodetecting firewall under (Free)BSD
138 Cleanup HTTP request handling. Answer 405 when relevant
140 VERSION 1.7 : released the 2012/05/28
143 clean linux/ifacewatcher.c
144 set natpmp socket non blocking
150 Clean signal handling
153 Clean expired IPv6 pinholes correctly. and also with linux/netfilter.
156 Finalizing netfilter version of get_pinhole_info()
159 Move IPv6FirewallControl related code from upnpredirect.c to upnppinhole.c
160 Add netfilter implementation for
161 delete_pinhole()/update_pinhole()/get_pinhole_info()
164 Clean up settings of CFLAGS in Makefile's
165 Remove Warnings caused by signed/unsigned integer comparaisons
166 Also fix a couple of integer/pointer comparaisons.
167 Add UNUSED(arg) macro to remove unused argument warning.
168 Fix error handling in upnpevents.c (was causing segfault on Solaris !)
171 Started to implement add_pinhole() for netfilter (linux)
174 Fixed a bug in upnphttp that happened when POST is received in several
175 recv() calls and realloc() is called so the buffer used is moved.
178 Implement CheckPinholeWorking GetPinholePackets. WANIPv6FirewallControl
179 UpdatePinhole still to be done. And also netfilter/ipf/ipfw versions
182 Enough WANIPv6FirewallControl is implemented on pf so that AddPinhole() and
183 DeletePinhole() works !
186 First working experiment of IPv6 "pinhole" with pf
189 More C++ => ANSI C comments to compile with -ansi option
190 Add command line arguments to genconfig.sh config script.
193 Set TTL on SSDP Notify sockets (IPv4). TTL is set to 2 (recommendation from
194 UPnP Device Architecture v1.1)
197 Implementing IPv6 support :
198 Send SSDP NOTIFY ssdp:alive and ssdp:goodbye messages in IPv6.
199 Use UPnP/1.1 in SERVER: string as required in UPnP Device architecture 1.1.
200 Allow LAN interface to be given as interface names, instead of interface
201 IP addresses. It will allow IPv6 operations.
202 fix linux/getifstats.c when bitrate is unknown
205 Only remove pidfile if one was written in the first place.
208 Fix ipfilter support (thanks dhowland https://github.com/dhowland)
211 Changes to miniupnpd.init.d.script by Shawn Landden
214 fixed reload_from_lease_file().
217 Change parselanaddr() function to allow 192.168.1.1/255.255.255.0 in
219 Change read_permission_line() to allow 192.168.1.1/255.255.255.0 in
220 permission line (in configuration file).
223 More syntax checks in upnppermissions.c
226 Fix ipfw/Mac OS X specific source files to compile ok with -ansi flag
229 Make HTTP listen socket non blocking (so accept() can't block)
230 Make SSDP receive sockets non blocking
231 use sockaddr_to_string() in SendSSDPAnnonce2 to handle IPv6 addresses
234 Make HTTP (SOAP) sockets non blocking.
237 Compile ok with -ansi flag.
238 Save a few bytes in options.c using a string repository, instead of a fixed size
239 buffer for each option value.
242 Added friendly_name= option to config file
245 Anchor name (PF) is now configurable through the config file with anchor=
246 Added test of presence of /lib/libip4tc.so and /lib/libip6tc.so files in
247 Makefile.linux in order to add -lip4tc and -lip6tc to LIBS accordingly.
250 always handle EAGAIN, EWOULDBLOCK and EINTR after recv()/recvfrom() calls
253 Always #include <netinet/in.h> before #include <arpa/inet.h> (for OpenBSD)
254 .onrdomain field was added in pf with OpenBSD 5.0. Add PFRULE_HAS_ONRDOMAIN
257 Fixing netfilter/iptables_*.sh scripts for new ifconfig output format.
258 getifaddr.c: added additional checks on structure returned by getifaddrs()
259 Fixing Mac OS X makefile for installation
262 avoid infinite loop in SendResp_upnphttp() in case of error
263 Replaced SendResp_upnphttp() + CloseSocket_upnphttp() by
264 SendRespAndClose_upnphttp()
265 Tomato specifics in genconfig.sh
268 netfilter : Added a tiny_nf_nat.h file to compile with iptables
270 include xtables.h instead of iptables.h
272 VERSION 1.6 : released the 2011/07/25
275 Update doc for version 1.6
278 Fixing code with MULTIPLE_EXTERNAL_IP defined.
281 IPv6 support for UPnP events.
282 Security checks in UPnP events.
285 Remote host for GetListOfPortMappings
286 Remote host support for ipfw (tested on Mac OS X)
289 support for iptables-1.4.11.1
292 Remote host support for pf version
295 Supporting RemoteHost (mandatory in IGD v2)
298 Enabling events by default
301 Fixing Timeout missing in SUBSCRIBE renewal responses
302 (thanks to Pranesh Kulkarni)
303 Added comments about changes between IGD v1 and IGD v2
306 Description and leaseduration kept in ipfw version of the code.
307 Fixing ipfw code after testing under Mac OS X 10.6.7 (darwin 10.7.0)
310 Finishing and testing LeaseDuration support under OpenBSD.
311 Changing NAT-PMP port mapping lifetime support to match
312 lease duration support.
313 NAT-PMP address change announce broadcasted to both port
314 5350 and 5351 to be compatible with client following the
315 version of NAT PMP specification from 2008 or earlier.
316 writepidfile() Overwrite file if already existing
319 fix in linux/getifstats.c.
320 See http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=2212
321 Implementation of LeaseDuration support.
324 added get_wan_connection_status_str()
327 adding ifacewatcher thanks to Alexey Osipov
328 GET /DP.xml is now available. The description has to be completed.
331 Add getconnstatus.c/.h. Dont always have ConnectionStatus to "Connected"
332 Events for WANIPv6FirewallControll
335 patches for gentoo linux.
336 generation of the DeviceProtection service description.
339 Making the SSDP receiving socket work in IPv6 !
342 Support for HTTP in both IPv6 and IPv4.
343 IPv6 for SSDP receiving socket.
346 add new options in genconfig.sh (IGD_V2, ENABLE_DP_SERVICE)
347 add global vars ipv6fc_firewall_enabled and ipv6fc_inbound_pinhole_allowed
348 have MACROS for magical values in upnpdescgen.c, add eventing vars for WanIPv6FirewallControl.
349 applied 0001-Cosmetic-changes.patch(see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=764)
350 applied 0002-Remove-lan-addresses-limit-by-changing-storage-type-.patch
351 replaced some of the urn:schemas-upnp-org:device:* literal strings by macros.
352 adding some support for IP v6. #define ENABLE_IPV6
353 added -fno-strict-aliasing to compile options.
356 updating upnp descriptions for IGDv2
359 Adding WANIPv6FirewallContro to upnp description
362 adding a UPNP_STRICT config macro. Use it now for checking RemoteHost.
363 ENABLE_6FC_SERVICE : add the implementations of WANIPv6FirewallControl actions
366 preparing getifaddr() for IP v6
367 preparing SSDP stuff for IP v6. Trying to conform to UDA v1.1
370 Some modifications thanks to Daniel Dickinson to improve OpenWRT
375 Added code to generate devices/services descriptions for IGD v2
379 improved netfilter/delete_redirect_and_filter_rules() in order
380 to remove the right filter rule, even if it has another index than
384 clean up an fixes to make netfilter/testiptcrdr compile
387 Make "Makefile" work under Mac OS X with bsdmake.
388 added get_portmappings_in_range() in ipfwrdr.c
391 added get_portmappings_in_range() / upnp_get_portmappings_in_range()
394 Implementation of GetListOfPortMappings
397 Reverting "fixes" done in linux/iptables code the 2010/09/27.
398 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=741
401 added MINIUPNPD_VERSION in config.h. Taken from VERSION file.
403 VERSION 1.5 : released the 2011/01/01
406 Started to implement some of the new methods from WANIPConnection v2
409 Some fixes in the linux/iptables code when
410 miniupnpd_nat_chain <> miniupnpd_forward_chain
413 Patch to support nfqueue thanks to Colin McFarlane
416 Update Mac OS X / ipfw stuff from Jardel Weyrich
417 Fix in Makefile.linux for x86_64
420 Bugfix un CleanNATPMPRules() : see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=640
423 Fixing natpmp sockets.
426 Fix Makefile.linux to compile properly under Mandriva/rh/Fedora with
428 Workaround for bad uptime when started with a bad time set.
431 Tried to make a OpenBSD version 4.7 compatible code... still some
435 updates to testobsdrdr
438 -lip4tc in Makefile.linux.
441 some more error handling in set_startup_time()
442 silencing some warnings
445 Open Several sockets for NAT-PMP to make sure the source address
446 of NAT-PMP replies is right.
447 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=609
450 miniupnpdctl now output command line arguments.
451 added a -h option to get help. improved help.
454 using PRIu64 format to printf u_int64_t
455 Fixing calls to get_redirect_rule_by_index() : ifname should be initialized.
456 Add header lines to miniupnpdctl output
459 implementing sending of ip address change notification when receiving
462 VERSION 1.4 : released the 2009/10/30
465 Integrate IPfilter patch from Roy Marples.
466 Fix Netfilter code for old netfilter :
467 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=584
468 trim the description string in reload_from_lease_file()
471 Fixing unclosed raw sockets bug with netfilter code.
474 Fixes in ipf code thanks to Roy Marples
475 Enable DragonFly BSD Support thanks to Roy Marples.
476 Allow packager to define default location of config file via CFLAGS
477 Respect $DESTDIR when installing
480 Adding some support for MacOS X and IPFW
481 SO_REUSEADDR in minissdp.c for SSDP listening socket
484 unlink lease file in reload_from_lease_file()
487 Fixed a buffer overflow in ProcessSSDPRequest()
490 improving genconfig.sh for NetBSD : detecting use of pf or ipf
494 working support for iptables >= 1.4.3
497 work to support iptables-1.4.3 and up
500 fix in upnpevents_removeSubscriber()
503 added reload_from_lease_file()
506 Changes in upnpdescgen.c to allow to remove empty elements
507 strcasecmp instead of strcmp on path comparaisons to allow
508 bugged clients to work
511 Some minor changes to Makefile
512 improving Makefile.linux in order to build with iptables not properly
513 installed on the system.
516 Fixing upnpevents thanks to Justin Maggard
519 getifstats() return -1 when supplied with bad arguments
522 Fixed NAT-PMP response when IP not allocated to external interface
526 Reporting Unconnected status when the "external interface" has
527 no IP address assigned. Also added some comments
535 MiniUPnPd is now able to use MiniSSDPd to manage SSDP M-SEARCH answering
538 You can now let miniupnpd choose itself the HTTP port used.
541 Improvements in genconfig.sh for detecting ipf or pf (under FreeBSD)
542 and improve debian/ubuntu stuff.
543 custom chain name patch from :
544 http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=493
547 added USE_IFNAME_IN_RULES macro that can be disabled in order to
548 remove interface name from rules.
551 Fixed compilation without ENABLE_L3F_SERVICE
554 correct UNSUBSCRIBE processing
557 changed iptables_removeall.sh and iptables_init.sh in order
558 to remove IP from the rules
563 Eventing is allmost completly implemented
566 Correct event handling ?
569 enabling tag in PF rules. quick can be set off.
572 implementing event notify
575 fixing a command line parsing error
578 optimisations in upnpsoap.c
581 optimizing upnpsoap.c for size
584 Worked on the Eventing : generating XML event notifications
585 Send initial notification after subscribe
586 Improved pretty print of testupnpdescgen
587 Reduced Memory usage of upnpdescgen
588 fixed a small bug in the description
591 Fixed miniupnpd.c for compiling without natpmp support
592 fixed presentationURL not there with L3F
593 fixing lease file creation/modification
596 Rewrite of Send501() and Send404()
598 genconfig.sh autodetects pf/ipf
601 Started to implement UPnP Events. do NOT use it at the moment !
604 Added support for the Layer3Forwarding Service
605 added init_redirect() and shutdown_redirect() functions
608 Removed Ext: HTTP header when useless
609 enabled the dummy service by default to please windows XP !
612 upnp_enable patch by Nikos Mavrogiannopoulos.
613 lease_file patch by Nikos Mavrogiannopoulos.
616 some changes to Makefile.openwrt
617 use daemon() - daemonize() is still available for systems lacking daemon()
621 moved lan_addr to upnpglobalvars.h/.c
622 Adding experimental multiple external IP support.
625 removed dummy service from description to improve compatibility
627 Add "secure mode". put runtime flags in the same variable
630 Fixed a bug in options.c for the parsing of empty lines.
633 Fixed CleanExpiredNATPMP()
636 Adding a queue parameter for setting ALTQ in pf
639 improving some stuff with the PF_ENABLE_FILTER_RULE.
642 Adding a runtime option to enable/disable NAT-PMP
645 Added a cache in linux getifstats(). Please enable by editing config.h
648 Updating an existing NAT-PMP mapping now works
651 NAT-PMP code now remove expired mappings
652 TCP/UDP where swapped in NAT-PMP code
655 Adding details to the error message for sendto(udp_notify)
658 pf code doesn't generate filter rules by default anymore. The
659 #ifdef PF_ENABLE_FILTER_RULES must be uncommented in config.h.
662 moved some of the prototypes common to all firewalls to commonrdr.h
663 Added functionalities to NAT-PMP
666 Debugged NAT-PMP code
669 Cleaning and improving NAT-PMP code
672 improved the NAT-PMP experimental support
673 updated README and INSTALL files
676 Adding support for NAT-PMP (from apple !)
679 Checking the commandline for errors.
682 Improved the BSD/Solaris Makefile
683 Merging last code from Darren Reed. Solaris/IPF should work now !
687 Adding Darren Reed code for ipf.
690 Adding SunOS support thanks to Darren Reed.
691 Reorganizing os/firewall dependent code thanks to Darren Reed.
694 linux make install support PREFIX variable
697 reorganizing LAN sockets/address to improve multi LAN support.
698 SSDP announces are sent to all configured networks.
699 SSDP responses are "customized" by subnetwork.
702 prototype code to remove unused rules
703 miniupnpdctl now display current rules
704 synchronised add_filter_rule2() prototype between pf and netfilter code.
707 Correctly filling the Cache-control header in SSDP packets
710 update PFRULE_INOUT_COUNTS detection for FreeBSD
713 update version in genconfig.sh
714 do not error when a duplicate redirection is requested.
717 really fixed the compilation bug with linux>=2.6.22
720 fixed an error in options.c that prevented to use packet_log option
723 improved genconfig.sh
724 fixed a compilation bug with linux>=2.6.22
727 added PFRULE_INOUT_COUNTS macro to enable separate in/out packet and
728 bytes counts in pf for OpenBSD >= 3.8
731 removed a possible racecondition in writepidfile()
734 improved genconfig.sh : no more "echo -e", use lsb_release when available
737 get_redirect_rule*() functions now return some statistics about
738 rule usage (bytes and packets)
741 Fixed the get_redirect_desc() in the linux/netfilter code
744 Clean up init code in miniupnpd.c
745 Added a syslog message in SoapError()
748 Now store redirection descriptions in the linux/netfilter code
751 Answers to SSDP M-SEARCH requests with ST: ssdp:all
752 added make install to Makefile.linux
755 Fixed a bug int the DeletePortMapping linux/netfilter implementation
756 It was allways the 1st rule that was deleted.
759 Fixed config.h.openwrt
762 added something in the INSTALL file about the FreeBSD send(udp_notify)
763 problem fix (allowing 239.0.0.0/8 explicitely in pf.conf)
766 added setsockopt(s, SOL_SOCKET, SO_BROADCAST ...) for broadcasting
770 Fixed filter rule under linux : it was using wrong port !
771 thanks to Wesley W. Terpstra
774 Moved some of the SSDP code from miniupnpd.c to minissdp.c
777 creating miniupnpdctl
780 use LOG_MINIUPNPD macro for openlog()
781 simplify miniupndShutdown()
785 Added stuff to change the pf rule "rdr" to "rdr pass"
788 Corrected Bytes per seconds to bits per second.
789 Ryan cleaned up comments and typos.
790 Ryan cleaned up daemonize stuff.
791 Ryan added possibility to configure model number and serial number
794 ryan improved the robustness of most UPnP Soap methods
795 I added a target in the Makefiles to properly generate an uuid using
797 Improved configuration file parsing.
800 Adding uuid option in miniupnpd.conf
803 Added upnppermissions stuff : adding some security to UPnP !
804 fixed XML description thanks to Ryan Wagoner
805 improved QueryStateVariable thanks to Ryan Wagoner
808 use getifaddr() for each GetExtenalIPAddress() Call.
809 We can change the ip during execution without pb
815 Fixed a nasty bug in the linux/netfilter version of get_filter_rule()
818 Improved the handling of the miniupnpd.conf file.
819 added -f option to choose which config file to read.
822 Fixed potential bugs with ClearNameValueList()
825 All by Ryan Wagoner :
826 - coding style and comments cleanup
827 - using now option file miniupnpd.conf
830 changed "xx active incoming HTTP connections" msg
833 Patch from Ryan Wagoner :
834 - no need to open sockets if we can't set the error handlers
835 - format the usage so it fits nicely on a standard size terminal
836 - fix up log_err message so they have the same format and you know what
838 - use same "white space" style throughout
839 - on shutdown no need to continue if opening socket or setsockopt fails
842 reduce amount of log lines (keeping the same information)
847 version 1.0-RC1 released
850 moved strings from upnpdescgen.c to upnpdescstrings.h for
852 Server: HTTP header now comes from a #define
853 added a compilation-time generated config.h
856 minixml updated. should have no impact
857 Added support for presentationURL with -w switch
858 implemented getifstats() for linux. Added testgetifstats program
859 improved error handling in getifstats() BSD
862 no need to have miniupnpc sources to compile miniupnpd.
863 Makefile.openwrt updated
864 Closing sockets on exit thanks to Ryan Wagoner
867 now handling signal SIGINT
868 setting HTTP socket with REUSEADDR thanks to Ryan Wagoner
869 daemon now tested on a Linksys WRT54G device running OpenWRT !
872 disabling rtableid in pf code.
875 Also responds on M-SEARCH with the uuid
878 gaining some space in upnpsoap.c
881 Cleaning up code to comply with ANSI C89
884 Linux version now deleting both nat and accept rules
885 implemented -U option under Linux
888 implemented delete_redirect_rule() for linux
889 returning error 714 in DeletePortMapping() when needed
892 The linux/netfilter version should now WORK !
893 fix in the writepidfile() function. open with a mode !
896 fixing the XML description generation for big endian machines
897 working on the linux/netfilter port
900 improved a lot the handling of HTTP error cases
903 Tried to make the Makefile compatible with both BSDmake
904 and GNUmake. It was hard because of $^ and $<
907 Makefile compatible with BSD make
909 getifstats.c compatible with both OpenBSD and FreeBSD.
912 added getifstats.c for openBSD. May not work under FreeBSD ?
913 now reports bytes/packets sent/received
915 possibility to report system uptime
918 added a -L option to enable loggin (is off by default now).
921 Patch by Ryan Wagoner to correct the XML description (was NewUpTime
922 instead of NewUptime) and implement uptime.
923 Trying to fix the memory leak. Added some comments
924 added a -d option for debugging purpose
925 Tnaks to valgrind (under linux!) I removed a small memory access error.
928 Thanks to a patch sent by Michael van Tellingen, miniupnpd is
929 now ignoring NOTIFY packets sent by other devices and is
930 writing is own pid to /var/run/miniupnpd.pid
933 Allways set sendEvents="no" in XML description (was causing
934 pb with winXP as SUBSCRIBE is not implemented)
937 added translation from hostname to IP in the AddPortMapping() method
938 Thanks to Ryan Wagoner.
941 Added an INSTALL file
944 Added the possibility to change the notify interval
947 Improved compliance of the XML Descriptions
948 pretty print for testupnpdescgen
951 improved the Error 404 response.
952 Better serviceType and serviceId for dummy service...
955 updating the XML description generator
958 Thanks to Rick Richard, support for SSDP "alive" and "byebye" notifications
959 was added. The -u options was also added. The SSDP response are now
961 The -o option is now working (to force a specific external IP address).
962 The Soap Methods errors are correctly responded (401 Invalid Action)
965 Added code to handle filter rules. Thanks to Seth Mos (pfsense.com)
966 storing the descriptions in the label of the rule
969 improved the generation of the XML descriptions.
970 I still need to add allowed values to variables.
973 filtering SSDP requests and responding with same ST: field
976 Added a dummy description for the WANDevice
979 Command line arguments processing
980 Added possibility to listen internally on several interfaces