1 $Id: Changelog.txt,v 1.211 2011/03/09 15:27:41 nanard Exp $
4 Some modifications thanks to Daniel Dickinson to improve OpenWRT
9 Added code to generate devices/services descriptions for IGD v2
13 improved netfilter/delete_redirect_and_filter_rules() in order
14 to remove the right filter rule, even if it has another index than
18 clean up an fixes to make netfilter/testiptcrdr compile
21 Make "Makefile" work under Mac OS X with bsdmake.
22 added get_portmappings_in_range() in ipfwrdr.c
25 added get_portmappings_in_range() / upnp_get_portmappings_in_range()
28 Implementation of GetListOfPortMappings
31 Reverting "fixes" done in linux/iptables code the 2010/09/27.
32 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=741
35 added MINIUPNPD_VERSION in config.h. Taken from VERSION file.
37 VERSION 1.5 : released the 2011/01/01
40 Started to implement some of the new methods from WANIPConnection v2
43 Some fixes in the linux/iptables code when
44 miniupnpd_nat_chain <> miniupnpd_forward_chain
47 Patch to support nfqueue thanks to Colin McFarlane
50 Update Mac OS X / ipfw stuff from Jardel Weyrich
51 Fix in Makefile.linux for x86_64
54 Bugfix un CleanNATPMPRules() : see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=640
57 Fixing natpmp sockets.
60 Fix Makefile.linux to compile properly under Mandriva/rh/Fedora with
62 Workaround for bad uptime when started with a bad time set.
65 Tried to make a OpenBSD version 4.7 compatible code... still some
69 updates to testobsdrdr
72 -lip4tc in Makefile.linux.
75 some more error handling in set_startup_time()
76 silencing some warnings
79 Open Several sockets for NAT-PMP to make sure the source address
80 of NAT-PMP replies is right.
81 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=609
84 miniupnpdctl now output command line arguments.
85 added a -h option to get help. improved help.
88 using PRIu64 format to printf u_int64_t
89 Fixing calls to get_redirect_rule_by_index() : ifname should be initialized.
90 Add header lines to miniupnpdctl output
93 implementing sending of ip address change notification when receiving
96 VERSION 1.4 : released the 2009/10/30
99 Integrate IPfilter patch from Roy Marples.
100 Fix Netfilter code for old netfilter :
101 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=584
102 trim the description string in reload_from_lease_file()
105 Fixing unclosed raw sockets bug with netfilter code.
108 Fixes in ipf code thanks to Roy Marples
109 Enable DragonFly BSD Support thanks to Roy Marples.
110 Allow packager to define default location of config file via CFLAGS
111 Respect $DESTDIR when installing
114 Adding some support for MacOS X and IPFW
115 SO_REUSEADDR in minissdp.c for SSDP listening socket
118 unlink lease file in reload_from_lease_file()
121 Fixed a buffer overflow in ProcessSSDPRequest()
124 improving genconfig.sh for NetBSD : detecting use of pf or ipf
128 working support for iptables >= 1.4.3
131 work to support iptables-1.4.3 and up
134 fix in upnpevents_removeSubscriber()
137 added reload_from_lease_file()
140 Changes in upnpdescgen.c to allow to remove empty elements
141 strcasecmp instead of strcmp on path comparaisons to allow
142 bugged clients to work
145 Some minor changes to Makefile
146 improving Makefile.linux in order to build with iptables not properly
147 installed on the system.
150 Fixing upnpevents thanks to Justin Maggard
153 getifstats() return -1 when supplied with bad arguments
156 Fixed NAT-PMP response when IP not allocated to external interface
160 Reporting Unconnected status when the "external interface" has
161 no IP address assigned. Also added some comments
169 MiniUPnPd is now able to use MiniSSDPd to manage SSDP M-SEARCH answering
172 You can now let miniupnpd choose itself the HTTP port used.
175 Improvements in genconfig.sh for detecting ipf or pf (under FreeBSD)
176 and improve debian/ubuntu stuff.
177 custom chain name patch from :
178 http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=493
181 added USE_IFNAME_IN_RULES macro that can be disabled in order to
182 remove interface name from rules.
185 Fixed compilation without ENABLE_L3F_SERVICE
188 correct UNSUBSCRIBE processing
191 changed iptables_removeall.sh and iptables_init.sh in order
192 to remove IP from the rules
197 Eventing is allmost completly implemented
200 Correct event handling ?
203 enabling tag in PF rules. quick can be set off.
206 implementing event notify
209 fixing a command line parsing error
212 optimisations in upnpsoap.c
215 optimizing upnpsoap.c for size
218 Worked on the Eventing : generating XML event notifications
219 Send initial notification after subscribe
220 Improved pretty print of testupnpdescgen
221 Reduced Memory usage of upnpdescgen
222 fixed a small bug in the description
225 Fixed miniupnpd.c for compiling without natpmp support
226 fixed presentationURL not there with L3F
227 fixing lease file creation/modification
230 Rewrite of Send501() and Send404()
232 genconfig.sh autodetects pf/ipf
235 Started to implement UPnP Events. do NOT use it at the moment !
238 Added support for the Layer3Forwarding Service
239 added init_redirect() and shutdown_redirect() functions
242 Removed Ext: HTTP header when useless
243 enabled the dummy service by default to please windows XP !
246 upnp_enable patch by Nikos Mavrogiannopoulos.
247 lease_file patch by Nikos Mavrogiannopoulos.
250 some changes to Makefile.openwrt
251 use daemon() - daemonize() is still available for systems lacking daemon()
255 moved lan_addr to upnpglobalvars.h/.c
256 Adding experimental multiple external IP support.
259 removed dummy service from description to improve compatibility
261 Add "secure mode". put runtime flags in the same variable
264 Fixed a bug in options.c for the parsing of empty lines.
267 Fixed CleanExpiredNATPMP()
270 Adding a queue parameter for setting ALTQ in pf
273 improving some stuff with the PF_ENABLE_FILTER_RULE.
276 Adding a runtime option to enable/disable NAT-PMP
279 Added a cache in linux getifstats(). Please enable by editing config.h
282 Updating an existing NAT-PMP mapping now works
285 NAT-PMP code now remove expired mappings
286 TCP/UDP where swapped in NAT-PMP code
289 Adding details to the error message for sendto(udp_notify)
292 pf code doesn't generate filter rules by default anymore. The
293 #ifdef PF_ENABLE_FILTER_RULES must be uncommented in config.h.
296 moved some of the prototypes common to all firewalls to commonrdr.h
297 Added functionalities to NAT-PMP
300 Debugged NAT-PMP code
303 Cleaning and improving NAT-PMP code
306 improved the NAT-PMP experimental support
307 updated README and INSTALL files
310 Adding support for NAT-PMP (from apple !)
313 Checking the commandline for errors.
316 Improved the BSD/Solaris Makefile
317 Merging last code from Darren Reed. Solaris/IPF should work now !
321 Adding Darren Reed code for ipf.
324 Adding SunOS support thanks to Darren Reed.
325 Reorganizing os/firewall dependent code thanks to Darren Reed.
328 linux make install support PREFIX variable
331 reorganizing LAN sockets/address to improve multi LAN support.
332 SSDP announces are sent to all configured networks.
333 SSDP responses are "customized" by subnetwork.
336 prototype code to remove unused rules
337 miniupnpdctl now display current rules
338 synchronised add_filter_rule2() prototype between pf and netfilter code.
341 Correctly filling the Cache-control header in SSDP packets
344 update PFRULE_INOUT_COUNTS detection for FreeBSD
347 update version in genconfig.sh
348 do not error when a duplicate redirection is requested.
351 really fixed the compilation bug with linux>=2.6.22
354 fixed an error in options.c that prevented to use packet_log option
357 improved genconfig.sh
358 fixed a compilation bug with linux>=2.6.22
361 added PFRULE_INOUT_COUNTS macro to enable separate in/out packet and
362 bytes counts in pf for OpenBSD >= 3.8
365 removed a possible racecondition in writepidfile()
368 improved genconfig.sh : no more "echo -e", use lsb_release when available
371 get_redirect_rule*() functions now return some statistics about
372 rule usage (bytes and packets)
375 Fixed the get_redirect_desc() in the linux/netfilter code
378 Clean up init code in miniupnpd.c
379 Added a syslog message in SoapError()
382 Now store redirection descriptions in the linux/netfilter code
385 Answers to SSDP M-SEARCH requests with ST: ssdp:all
386 added make install to Makefile.linux
389 Fixed a bug int the DeletePortMapping linux/netfilter implementation
390 It was allways the 1st rule that was deleted.
393 Fixed config.h.openwrt
396 added something in the INSTALL file about the FreeBSD send(udp_notify)
397 problem fix (allowing 239.0.0.0/8 explicitely in pf.conf)
400 added setsockopt(s, SOL_SOCKET, SO_BROADCAST ...) for broadcasting
404 Fixed filter rule under linux : it was using wrong port !
405 thanks to Wesley W. Terpstra
408 Moved some of the SSDP code from miniupnpd.c to minissdp.c
411 creating miniupnpdctl
414 use LOG_MINIUPNPD macro for openlog()
415 simplify miniupndShutdown()
419 Added stuff to change the pf rule "rdr" to "rdr pass"
422 Corrected Bytes per seconds to bits per second.
423 Ryan cleaned up comments and typos.
424 Ryan cleaned up daemonize stuff.
425 Ryan added possibility to configure model number and serial number
428 ryan improved the robustness of most UPnP Soap methods
429 I added a target in the Makefiles to properly generate an uuid using
431 Improved configuration file parsing.
434 Adding uuid option in miniupnpd.conf
437 Added upnppermissions stuff : adding some security to UPnP !
438 fixed XML description thanks to Ryan Wagoner
439 improved QueryStateVariable thanks to Ryan Wagoner
442 use getifaddr() for each GetExtenalIPAddress() Call.
443 We can change the ip during execution without pb
449 Fixed a nasty bug in the linux/netfilter version of get_filter_rule()
452 Improved the handling of the miniupnpd.conf file.
453 added -f option to choose which config file to read.
456 Fixed potential bugs with ClearNameValueList()
459 All by Ryan Wagoner :
460 - coding style and comments cleanup
461 - using now option file miniupnpd.conf
464 changed "xx active incoming HTTP connections" msg
467 Patch from Ryan Wagoner :
468 - no need to open sockets if we can't set the error handlers
469 - format the usage so it fits nicely on a standard size terminal
470 - fix up log_err message so they have the same format and you know what
472 - use same "white space" style throughout
473 - on shutdown no need to continue if opening socket or setsockopt fails
476 reduce amount of log lines (keeping the same information)
481 version 1.0-RC1 released
484 moved strings from upnpdescgen.c to upnpdescstrings.h for
486 Server: HTTP header now comes from a #define
487 added a compilation-time generated config.h
490 minixml updated. should have no impact
491 Added support for presentationURL with -w switch
492 implemented getifstats() for linux. Added testgetifstats program
493 improved error handling in getifstats() BSD
496 no need to have miniupnpc sources to compile miniupnpd.
497 Makefile.openwrt updated
498 Closing sockets on exit thanks to Ryan Wagoner
501 now handling signal SIGINT
502 setting HTTP socket with REUSEADDR thanks to Ryan Wagoner
503 daemon now tested on a Linksys WRT54G device running OpenWRT !
506 disabling rtableid in pf code.
509 Also responds on M-SEARCH with the uuid
512 gaining some space in upnpsoap.c
515 Cleaning up code to comply with ANSI C89
518 Linux version now deleting both nat and accept rules
519 implemented -U option under Linux
522 implemented delete_redirect_rule() for linux
523 returning error 714 in DeletePortMapping() when needed
526 The linux/netfilter version should now WORK !
527 fix in the writepidfile() function. open with a mode !
530 fixing the XML description generation for big endian machines
531 working on the linux/netfilter port
534 improved a lot the handling of HTTP error cases
537 Tried to make the Makefile compatible with both BSDmake
538 and GNUmake. It was hard because of $^ and $<
541 Makefile compatible with BSD make
543 getifstats.c compatible with both OpenBSD and FreeBSD.
546 added getifstats.c for openBSD. May not work under FreeBSD ?
547 now reports bytes/packets sent/received
549 possibility to report system uptime
552 added a -L option to enable loggin (is off by default now).
555 Patch by Ryan Wagoner to correct the XML description (was NewUpTime
556 instead of NewUptime) and implement uptime.
557 Trying to fix the memory leak. Added some comments
558 added a -d option for debugging purpose
559 Tnaks to valgrind (under linux!) I removed a small memory access error.
562 Thanks to a patch sent by Michael van Tellingen, miniupnpd is
563 now ignoring NOTIFY packets sent by other devices and is
564 writing is own pid to /var/run/miniupnpd.pid
567 Allways set sendEvents="no" in XML description (was causing
568 pb with winXP as SUBSCRIBE is not implemented)
571 added translation from hostname to IP in the AddPortMapping() method
572 Thanks to Ryan Wagoner.
575 Added an INSTALL file
578 Added the possibility to change the notify interval
581 Improved compliance of the XML Descriptions
582 pretty print for testupnpdescgen
585 improved the Error 404 response.
586 Better serviceType and serviceId for dummy service...
589 updating the XML description generator
592 Thanks to Rick Richard, support for SSDP "alive" and "byebye" notifications
593 was added. The -u options was also added. The SSDP response are now
595 The -o option is now working (to force a specific external IP address).
596 The Soap Methods errors are correctly responded (401 Invalid Action)
599 Added code to handle filter rules. Thanks to Seth Mos (pfsense.com)
600 storing the descriptions in the label of the rule
603 improved the generation of the XML descriptions.
604 I still need to add allowed values to variables.
607 filtering SSDP requests and responding with same ST: field
610 Added a dummy description for the WANDevice
613 Command line arguments processing
614 Added possibility to listen internally on several interfaces