Miniupnpd v. 1.5 (20110618)
[tomato.git] / release / src / router / miniupnpd / Changelog.txt
blobba9d7bc857ffa4b2eefea19940c70b3d9b6ec83a
1 $Id: Changelog.txt,v 1.233 2011/06/17 22:51:50 nanard Exp $
3 2011/06/18:
4   Remote host support for pf version
6 2011/06/04:
7   Supporting RemoteHost (mandatory in IGD v2)
9 2011/06/03:
10   Enabling events by default
12 2011/06/01:
13   Fixing Timeout missing in SUBSCRIBE renewal responses
14   (thanks to Pranesh Kulkarni)
15   Added comments about changes between IGD v1 and IGD v2
17 2011/05/28:
18   Description and leaseduration kept in ipfw version of the code.
19   Fixing ipfw code after testing under Mac OS X 10.6.7 (darwin 10.7.0)
21 2011/05/27:
22   Finishing and testing LeaseDuration support under OpenBSD.
23   Changing NAT-PMP port mapping lifetime support to match
24   lease duration support.
25   NAT-PMP address change announce broadcasted to both port
26   5350 and 5351 to be compatible with client following the
27   version of NAT PMP specification from 2008 or earlier.
28   writepidfile() Overwrite file if already existing
30 2011/05/26:
31   fix in linux/getifstats.c.
32   See http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=2212
33   Implementation of LeaseDuration support.
35 2011/05/23:
36   added get_wan_connection_status_str()
38 2011/05/20:
39   adding ifacewatcher thanks to Alexey Osipov
40   GET /DP.xml is now available. The description has to be completed.
42 2011/05/19:
43   Add getconnstatus.c/.h. Dont always have ConnectionStatus to "Connected"
44   Events for WANIPv6FirewallControll
46 2011/05/16:
47   patches for gentoo linux.
48   generation of the DeviceProtection service description.
50 2011/05/15:
51   Making the SSDP receiving socket work in IPv6 !
53 2011/05/14:
54   Support for HTTP in both IPv6 and IPv4.
55   IPv6 for SSDP receiving socket.
57 2011/05/13:
58   add new options in genconfig.sh (IGD_V2, ENABLE_DP_SERVICE)
59   add global vars ipv6fc_firewall_enabled and ipv6fc_inbound_pinhole_allowed
60   have MACROS for magical values in upnpdescgen.c, add eventing vars for WanIPv6FirewallControl.
61   applied 0001-Cosmetic-changes.patch(see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=764)
62   applied 0002-Remove-lan-addresses-limit-by-changing-storage-type-.patch
63   replaced some of the urn:schemas-upnp-org:device:* literal strings by macros.
64   adding some support for IP v6. #define ENABLE_IPV6
65   added -fno-strict-aliasing to compile options.
67 2011/05/09:
68   updating upnp descriptions for IGDv2
70 2011/05/07:
71   Adding WANIPv6FirewallContro to upnp description
73 2011/04/30:
74   adding a UPNP_STRICT config macro. Use it now for checking RemoteHost.
75   ENABLE_6FC_SERVICE : add the implementations of WANIPv6FirewallControl actions
77 2011/04/11:
78   preparing getifaddr() for IP v6
79   preparing SSDP stuff for IP v6. Trying to conform to UDA v1.1
81 2011/03/09:
82   Some modifications thanks to Daniel Dickinson to improve OpenWRT
83   build.
84   Fixed some warnings.
86 2011/03/03:
87   Added code to generate devices/services descriptions for IGD v2
88   (to be continued)
90 2011/03/02:
91   improved netfilter/delete_redirect_and_filter_rules() in order
92   to remove the right filter rule, even if it has another index than
93   the nat rule.
95 2011/03/01:
96   clean up an fixes to make netfilter/testiptcrdr compile
98 2011/02/21:
99   Make "Makefile" work under Mac OS X with bsdmake.
100   added get_portmappings_in_range() in ipfwrdr.c
102 2011/02/07:
103   added get_portmappings_in_range() / upnp_get_portmappings_in_range()
105 2011/02/06:
106   Implementation of GetListOfPortMappings
108 2011/01/27:
109   Reverting "fixes" done in linux/iptables code the 2010/09/27.
110   see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=741
112 2011/01/04:
113   added MINIUPNPD_VERSION in config.h. Taken from VERSION file.
115 VERSION 1.5 : released the 2011/01/01
117 2011/01/01:
118   Started to implement some of the new methods from WANIPConnection v2
120 2010/09/27:
121   Some fixes in the linux/iptables code when
122   miniupnpd_nat_chain <> miniupnpd_forward_chain
124 2010/09/21:
125   Patch to support nfqueue thanks to Colin McFarlane
127 2010/08/07:
128   Update Mac OS X / ipfw stuff from Jardel Weyrich
129   Fix in Makefile.linux for x86_64
131 2010/05/06:
132   Bugfix un CleanNATPMPRules() : see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=640
134 2010/03/14:
135   Fixing natpmp sockets.
137 2010/03/08:
138   Fix Makefile.linux to compile properly under Mandriva/rh/Fedora with
139     Iptables >= 1.4.3
140   Workaround for bad uptime when started with a bad time set.
142 2010/03/07:
143   Tried to make a OpenBSD version 4.7 compatible code... still some
144   issues.
146 2010/03/06:
147   updates to testobsdrdr
149 2010/03/03:
150   -lip4tc in Makefile.linux.
152 2010/02/15:
153   some more error handling in set_startup_time()
154   silencing some warnings
156 2010/01/14:
157   Open Several sockets for NAT-PMP to make sure the source address
158   of NAT-PMP replies is right.
159   see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=609
161 2009/12/31:
162   miniupnpdctl now output command line arguments.
163   added a -h option to get help. improved help.
165 2009/12/22:
166   using PRIu64 format to printf u_int64_t
167   Fixing calls to get_redirect_rule_by_index() : ifname should be initialized.
168   Add header lines to miniupnpdctl output
170 2009/11/06:
171   implementing sending of ip address change notification when receiving
172     the signal SIGUSR1
174 VERSION 1.4 : released the 2009/10/30
176 2009/10/10:
177   Integrate IPfilter patch from Roy Marples.
178   Fix Netfilter code for old netfilter :
179     see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=584
180   trim the description string in reload_from_lease_file()
182 2009/09/21:
183   Fixing unclosed raw sockets bug with netfilter code.
185 2009/09/04:
186   Fixes in ipf code thanks to Roy Marples
187   Enable DragonFly BSD Support thanks to Roy Marples.
188   Allow packager to define default location of config file via CFLAGS
189   Respect $DESTDIR when installing
191 2009/08/20:
192   Adding some support for MacOS X and IPFW
193   SO_REUSEADDR in minissdp.c for SSDP listening socket
195 2009/06/05:
196   unlink lease file in reload_from_lease_file()
198 2009/05/16:
199   Fixed a buffer overflow in ProcessSSDPRequest()
201 2009/05/11:
202   improving genconfig.sh for NetBSD : detecting use of pf or ipf
204 VERSION 1.3 :
205 2009/04/17:
206   working support for iptables >= 1.4.3
208 2009/04/13:
209   work to support iptables-1.4.3 and up
211 2009/04/10:
212   fix in upnpevents_removeSubscriber() 
214 2009/02/14:
215   added reload_from_lease_file()
217 2009/02/13:
218   Changes in upnpdescgen.c to allow to remove empty elements
219   strcasecmp instead of strcmp on path comparaisons to allow
220   bugged clients to work
222 2009/01/29:
223   Some minor changes to Makefile
224   improving Makefile.linux in order to build with iptables not properly 
225   installed on the system.
227 2009/01/23:
228   Fixing upnpevents thanks to Justin Maggard
230 2008/10/15:
231   getifstats() return -1 when supplied with bad arguments
233 2008/10/11:
234   Fixed NAT-PMP response when IP not allocated to external interface
236 2008/10/09:
237   adding testgetifaddr
238   Reporting Unconnected status when the "external interface" has
239   no IP address assigned. Also added some comments
241 VERSION 1.2 :
243 2008/10/07:
244   updating docs
246 2008/10/06:
247   MiniUPnPd is now able to use MiniSSDPd to manage SSDP M-SEARCH answering
249 2008/10/03:
250   You can now let miniupnpd choose itself the HTTP port used.
252 2008/10/01:
253   Improvements in genconfig.sh for detecting ipf or pf (under FreeBSD)
254   and improve debian/ubuntu stuff.
255   custom chain name patch from : 
256     http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=493
258 2008/08/24:
259   added USE_IFNAME_IN_RULES macro that can be disabled in order to
260   remove interface name from rules.
262 2008/07/10:
263   Fixed compilation without ENABLE_L3F_SERVICE
265 2008/04/27:
266   correct UNSUBSCRIBE processing
268 2008/04/25(bis):
269   changed iptables_removeall.sh and iptables_init.sh in order
270   to remove IP from the rules
272 VERSION 1.1 :
274 2008/04/25:
275   Eventing is allmost completly implemented
277 2008/04/24:
278   Correct event handling ?
280 2008/04/08:
281   enabling tag in PF rules. quick can be set off.
283 2008/03/13:
284   implementing event notify
286 2008/03/11:
287   fixing a command line parsing error
289 2008/03/09:
290   optimisations in upnpsoap.c
292 2008/03/08:
293   optimizing upnpsoap.c for size
295 2008/03/06:
296   Worked on the Eventing : generating XML event notifications
297     Send initial notification after subscribe
298   Improved pretty print of testupnpdescgen
299   Reduced Memory usage of upnpdescgen
300   fixed a small bug in the description
302 2008/03/03:
303   Fixed miniupnpd.c for compiling without natpmp support 
304   fixed presentationURL not there with L3F
305   fixing lease file creation/modification
307 2008/02/25:
308   Rewrite of Send501() and Send404()
309   More work on events
310   genconfig.sh autodetects pf/ipf
312 2008/02/24:
313   Started to implement UPnP Events. do NOT use it at the moment !
315 2008/02/21:
316   Added support for the Layer3Forwarding Service
317   added init_redirect() and shutdown_redirect() functions
319 2008/02/20:
320   Removed Ext: HTTP header when useless
321   enabled the dummy service by default to please windows XP !
323 2008/02/07:
324   upnp_enable patch by Nikos Mavrogiannopoulos.
325   lease_file patch by Nikos Mavrogiannopoulos.
327 2008/01/29:
328   some changes to Makefile.openwrt
329   use daemon() - daemonize() is still available for systems lacking daemon()
331 VERSION 1.0 :
332 2008/01/27:
333   moved lan_addr to upnpglobalvars.h/.c
334   Adding experimental multiple external IP support.
336 2008/01/22:
337   removed dummy service from description to improve compatibility
338   with emule client
339   Add "secure mode". put runtime flags in the same variable
341 2008/01/14:
342   Fixed a bug in options.c for the parsing of empty lines.
344 2008/01/03:
345   Fixed CleanExpiredNATPMP()
347 2008/01/02:
348   Adding a queue parameter for setting ALTQ in pf
350 2007/12/27:
351   improving some stuff with the PF_ENABLE_FILTER_RULE.
353 2007/12/22:
354   Adding a runtime option to enable/disable NAT-PMP
356 2007/12/20:
357   Added a cache in linux getifstats(). Please enable by editing config.h
359 2007/12/14:
360   Updating an existing NAT-PMP mapping now works
362 2007/12/13:
363   NAT-PMP code now remove expired mappings
364   TCP/UDP where swapped in NAT-PMP code
366 2007/12/04:
367   Adding details to the error message for sendto(udp_notify)
369 2007/11/27:
370   pf code doesn't generate filter rules by default anymore. The
371   #ifdef PF_ENABLE_FILTER_RULES must be uncommented in config.h.
373 2007/11/02:
374   moved some of the prototypes common to all firewalls to commonrdr.h
375   Added functionalities to NAT-PMP
377 2007/11/01:
378   Debugged NAT-PMP code
380 2007/10/28:
381   Cleaning and improving NAT-PMP code
383 2007/10/25:
384   improved the NAT-PMP experimental support
385   updated README and INSTALL files
387 2007/10/24:
388   Adding support for NAT-PMP (from apple !)
390 2007/10/11:
391   Checking the commandline for errors.
393 2007/10/08:
394   Improved the BSD/Solaris Makefile
395   Merging last code from Darren Reed. Solaris/IPF should work now !
396   added a man page.
398 2007/10/07:
399   Adding Darren Reed code for ipf.
401 2007/10/06:
402   Adding SunOS support thanks to Darren Reed.
403   Reorganizing os/firewall dependent code thanks to Darren Reed.
405 2007/09/27:
406   linux make install support PREFIX variable
408 2007/09/25:
409   reorganizing LAN sockets/address to improve multi LAN support.
410   SSDP announces are sent to all configured networks.
411   SSDP responses are "customized" by subnetwork.
413 2007/09/24:
414   prototype code to remove unused rules
415   miniupnpdctl now display current rules
416   synchronised add_filter_rule2() prototype between pf and netfilter code.
418 2007/09/19:
419   Correctly filling the Cache-control header in SSDP packets
421 2007/08/28:
422   update PFRULE_INOUT_COUNTS detection for FreeBSD
424 2007/08/27:
425   update version in genconfig.sh
426   do not error when a duplicate redirection is requested.
428 2007/07/16:
429   really fixed the compilation bug with linux>=2.6.22
431 2007/07/04:
432   fixed an error in options.c that prevented to use packet_log option
434 2007/07/03:
435   improved genconfig.sh
436   fixed a compilation bug with linux>=2.6.22
438 2007/06/22:
439   added PFRULE_INOUT_COUNTS macro to enable separate in/out packet and
440   bytes counts in pf for OpenBSD >= 3.8
442 2007/06/15:
443   removed a possible racecondition in writepidfile()
445 2007/06/12:
446   improved genconfig.sh : no more "echo -e", use lsb_release when available
448 2007/06/11:
449   get_redirect_rule*() functions now return some statistics about
450   rule usage (bytes and packets)
452 2007/06/07:
453   Fixed the get_redirect_desc() in the linux/netfilter code
455 2007/06/05:
456   Clean up init code in miniupnpd.c
457   Added a syslog message in SoapError()
459 2007/06/04:
460   Now store redirection descriptions in the linux/netfilter code
462 2007/05/21:
463   Answers to SSDP M-SEARCH requests with ST: ssdp:all
464   added make install to Makefile.linux
466 2007/05/10:
467   Fixed a bug int the DeletePortMapping linux/netfilter implementation
468   It was allways the 1st rule that was deleted.
470 2007/04/26:
471   Fixed config.h.openwrt
473 2007/04/16:
474   added something in the INSTALL file about the FreeBSD send(udp_notify)
475   problem fix (allowing 239.0.0.0/8 explicitely in pf.conf)
477 2007/03/30:
478   added setsockopt(s, SOL_SOCKET, SO_BROADCAST ...) for broadcasting
479   socket
481 2007/03/17:
482   Fixed filter rule under linux : it was using wrong port !
483   thanks to Wesley W. Terpstra
485 2007/03/01:
486   Moved some of the SSDP code from miniupnpd.c to minissdp.c
488 2007/02/28:
489   creating miniupnpdctl
491 2007/02/26:
492   use LOG_MINIUPNPD macro for openlog()
493   simplify miniupndShutdown()
495 2007/02/09:
496   improved genconfig.h
497   Added stuff to change the pf rule "rdr" to "rdr pass"
499 2007/02/07:
500   Corrected Bytes per seconds to bits per second.
501   Ryan cleaned up comments and typos.
502   Ryan cleaned up daemonize stuff.
503   Ryan added possibility to configure model number and serial number
505 2007/01/30:
506   ryan improved the robustness of most UPnP Soap methods
507   I added a target in the Makefiles to properly generate an uuid using
508   command line tools.
509   Improved configuration file parsing.
511 2007/01/29:
512   Adding uuid option in miniupnpd.conf
514 2007/01/27:
515   Added upnppermissions stuff : adding some security to UPnP !
516   fixed XML description thanks to Ryan Wagoner
517   improved QueryStateVariable thanks to Ryan Wagoner
519 2007/01/22:
520   use getifaddr() for each GetExtenalIPAddress() Call.
521   We can change the ip during execution without pb
523 2007/01/17:
524   Lots of code cleanup
526 2007/01/12:
527   Fixed a nasty bug in the linux/netfilter version of get_filter_rule()
529 2007/01/11:
530   Improved the handling of the miniupnpd.conf file.
531   added -f option to choose which config file to read.
533 2007/01/10:
534   Fixed potential bugs with ClearNameValueList()
536 2007/01/08:
537   All by Ryan Wagoner :
538   - coding style and comments cleanup
539   - using now option file miniupnpd.conf
541 2007/01/03:
542   changed "xx active incoming HTTP connections" msg
544 2007/01/02:
545   Patch from Ryan Wagoner :
546   - no need to open sockets if we can't set the error handlers
547   - format the usage so it fits nicely on a standard size terminal
548   - fix up log_err message so they have the same format and you know what
549     they are related to
550   - use same "white space" style throughout
551   - on shutdown no need to continue if opening socket or setsockopt fails
553 2006/12/14:
554   reduce amount of log lines (keeping the same information)
556 2006/12/07:
557   Fixed Makefiles
558   fixed typos in logs
559   version 1.0-RC1 released
561 2006/12/02:
562   moved strings from upnpdescgen.c to upnpdescstrings.h for
563   easier modification
564   Server: HTTP header now comes from a #define
565   added a compilation-time generated config.h
567 2006/11/30:
568   minixml updated. should have no impact
569   Added support for presentationURL with -w switch
570   implemented getifstats() for linux. Added testgetifstats program
571   improved error handling in getifstats() BSD 
573 2006/11/26:
574   no need to have miniupnpc sources to compile miniupnpd.
575   Makefile.openwrt updated
576   Closing sockets on exit thanks to Ryan Wagoner
578 2006/11/23:
579   now handling signal SIGINT
580   setting HTTP socket with REUSEADDR thanks to Ryan Wagoner
581   daemon now tested on a Linksys WRT54G device running OpenWRT !
583 2006/11/21:
584   disabling rtableid in pf code.
586 2006/11/22:
587   Also responds on M-SEARCH with the uuid
589 2006/11/20:
590   gaining some space in upnpsoap.c
592 2006/11/19:
593   Cleaning up code to comply with ANSI C89
595 2006/11/17:
596   Linux version now deleting both nat and accept rules
597   implemented -U option under Linux
599 2006/11/16:
600   implemented delete_redirect_rule() for linux
601   returning error 714 in DeletePortMapping() when needed
603 2006/11/12:
604   The linux/netfilter version should now WORK !
605   fix in the writepidfile() function. open with a mode !
607 2006/11/10:
608   fixing the XML description generation for big endian machines
609   working on the linux/netfilter port
611 2006/11/09:
612   improved a lot the handling of HTTP error cases
614 2006/11/08:
615   Tried to make the Makefile compatible with both BSDmake
616   and GNUmake. It was hard because of $^ and $<
618 2006/11/07:
619   Makefile compatible with BSD make
620   make install target.
621   getifstats.c compatible with both OpenBSD and FreeBSD.
623 2006/11/06:
624   added getifstats.c for openBSD. May not work under FreeBSD ?
625   now reports bytes/packets sent/received
626   reporting bitrates
627   possibility to report system uptime
629 2006/10/29:
630   added a -L option to enable loggin (is off by default now).
632 2006/10/28:
633   Patch by Ryan Wagoner to correct the XML description (was NewUpTime
634   instead of NewUptime) and implement uptime.
635   Trying to fix the memory leak. Added some comments
636   added a -d option for debugging purpose
637   Tnaks to valgrind (under linux!) I removed a small memory access error.
639 2006/10/27:
640   Thanks to a patch sent by Michael van Tellingen, miniupnpd is
641   now ignoring NOTIFY packets sent by other devices and is
642   writing is own pid to /var/run/miniupnpd.pid
644 2006/10/23:
645   Allways set sendEvents="no" in XML description (was causing
646   pb with winXP as SUBSCRIBE is not implemented)
648 2006/10/22:
649   added translation from hostname to IP in the AddPortMapping() method
650   Thanks to Ryan Wagoner.
652 2006/10/18:
653   Added an INSTALL file
655 2006/10/13:
656   Added the possibility to change the notify interval
658 2006/09/29:
659   Improved compliance of the XML Descriptions
660   pretty print for testupnpdescgen
662 2006/09/25:
663   improved the Error 404 response.
664   Better serviceType and serviceId for dummy service...
666 2006/09/24:
667   updating the XML description generator
669 2006/09/18:
670   Thanks to Rick Richard, support for SSDP "alive" and "byebye" notifications
671   was added. The -u options was also added. The SSDP response are now
672   improved.
673   The -o option is now working (to force a specific external IP address).
674   The Soap Methods errors are correctly responded (401 Invalid Action)
676 2006/09/09:
677   Added code to handle filter rules. Thanks to Seth Mos (pfsense.com)
678   storing the descriptions in the label of the rule
680 2006/09/02:
681   improved the generation of the XML descriptions.
682   I still need to add allowed values to variables.
684 2006/07/29:
685   filtering SSDP requests and responding with same ST: field
687 2006/07/25:
688   Added a dummy description for the WANDevice 
690 2006/07/20:
691   Command line arguments processing
692   Added possibility to listen internally on several interfaces