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