1 $Id: Changelog.txt,v 1.180 2009/10/10 19:08:32 nanard Exp $
4 Integrate IPfilter patch from Roy Marples.
5 Fix Netfilter code for old netfilter :
6 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=584
7 trim the description string in reload_from_lease_file()
10 Fixing unclosed raw sockets bug with netfilter code.
13 Fixes in ipf code thanks to Roy Marples
14 Enable DragonFly BSD Support thanks to Roy Marples.
15 Allow packager to define default location of config file via CFLAGS
16 Respect $DESTDIR when installing
19 Adding some support for MacOS X and IPFW
20 SO_REUSEADDR in minissdp.c for SSDP listening socket
23 unlink lease file in reload_from_lease_file()
26 Fixed a buffer overflow in ProcessSSDPRequest()
29 improving genconfig.sh for NetBSD : detecting use of pf or ipf
33 working support for iptables >= 1.4.3
36 work to support iptables-1.4.3 and up
39 fix in upnpevents_removeSubscriber()
42 added reload_from_lease_file()
45 Changes in upnpdescgen.c to allow to remove empty elements
46 strcasecmp instead of strcmp on path comparaisons to allow
47 bugged clients to work
50 Some minor changes to Makefile
51 improving Makefile.linux in order to build with iptables not properly
52 installed on the system.
55 Fixing upnpevents thanks to Justin Maggard
58 getifstats() return -1 when supplied with bad arguments
61 Fixed NAT-PMP response when IP not allocated to external interface
65 Reporting Unconnected status when the "external interface" has
66 no IP address assigned. Also added some comments
74 MiniUPnPd is now able to use MiniSSDPd to manage SSDP M-SEARCH answering
77 You can now let miniupnpd choose itself the HTTP port used.
80 Improvements in genconfig.sh for detecting ipf or pf (under FreeBSD)
81 and improve debian/ubuntu stuff.
82 custom chain name patch from :
83 http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=493
86 added USE_IFNAME_IN_RULES macro that can be disabled in order to
87 remove interface name from rules.
90 Fixed compilation without ENABLE_L3F_SERVICE
93 correct UNSUBSCRIBE processing
96 changed iptables_removeall.sh and iptables_init.sh in order
97 to remove IP from the rules
102 Eventing is allmost completly implemented
105 Correct event handling ?
108 enabling tag in PF rules. quick can be set off.
111 implementing event notify
114 fixing a command line parsing error
117 optimisations in upnpsoap.c
120 optimizing upnpsoap.c for size
123 Worked on the Eventing : generating XML event notifications
124 Send initial notification after subscribe
125 Improved pretty print of testupnpdescgen
126 Reduced Memory usage of upnpdescgen
127 fixed a small bug in the description
130 Fixed miniupnpd.c for compiling without natpmp support
131 fixed presentationURL not there with L3F
132 fixing lease file creation/modification
135 Rewrite of Send501() and Send404()
137 genconfig.sh autodetects pf/ipf
140 Started to implement UPnP Events. do NOT use it at the moment !
143 Added support for the Layer3Forwarding Service
144 added init_redirect() and shutdown_redirect() functions
147 Removed Ext: HTTP header when useless
148 enabled the dummy service by default to please windows XP !
151 upnp_enable patch by Nikos Mavrogiannopoulos.
152 lease_file patch by Nikos Mavrogiannopoulos.
155 some changes to Makefile.openwrt
156 use daemon() - daemonize() is still available for systems lacking daemon()
160 moved lan_addr to upnpglobalvars.h/.c
161 Adding experimental multiple external IP support.
164 removed dummy service from description to improve compatibility
166 Add "secure mode". put runtime flags in the same variable
169 Fixed a bug in options.c for the parsing of empty lines.
172 Fixed CleanExpiredNATPMP()
175 Adding a queue parameter for setting ALTQ in pf
178 improving some stuff with the PF_ENABLE_FILTER_RULE.
181 Adding a runtime option to enable/disable NAT-PMP
184 Added a cache in linux getifstats(). Please enable by editing config.h
187 Updating an existing NAT-PMP mapping now works
190 NAT-PMP code now remove expired mappings
191 TCP/UDP where swapped in NAT-PMP code
194 Adding details to the error message for sendto(udp_notify)
197 pf code doesn't generate filter rules by default anymore. The
198 #ifdef PF_ENABLE_FILTER_RULES must be uncommented in config.h.
201 moved some of the prototypes common to all firewalls to commonrdr.h
202 Added functionalities to NAT-PMP
205 Debugged NAT-PMP code
208 Cleaning and improving NAT-PMP code
211 improved the NAT-PMP experimental support
212 updated README and INSTALL files
215 Adding support for NAT-PMP (from apple !)
218 Checking the commandline for errors.
221 Improved the BSD/Solaris Makefile
222 Merging last code from Darren Reed. Solaris/IPF should work now !
226 Adding Darren Reed code for ipf.
229 Adding SunOS support thanks to Darren Reed.
230 Reorganizing os/firewall dependent code thanks to Darren Reed.
233 linux make install support PREFIX variable
236 reorganizing LAN sockets/address to improve multi LAN support.
237 SSDP announces are sent to all configured networks.
238 SSDP responses are "customized" by subnetwork.
241 prototype code to remove unused rules
242 miniupnpdctl now display current rules
243 synchronised add_filter_rule2() prototype between pf and netfilter code.
246 Correctly filling the Cache-control header in SSDP packets
249 update PFRULE_INOUT_COUNTS detection for FreeBSD
252 update version in genconfig.sh
253 do not error when a duplicate redirection is requested.
256 really fixed the compilation bug with linux>=2.6.22
259 fixed an error in options.c that prevented to use packet_log option
262 improved genconfig.sh
263 fixed a compilation bug with linux>=2.6.22
266 added PFRULE_INOUT_COUNTS macro to enable separate in/out packet and
267 bytes counts in pf for OpenBSD >= 3.8
270 removed a possible racecondition in writepidfile()
273 improved genconfig.sh : no more "echo -e", use lsb_release when available
276 get_redirect_rule*() functions now return some statistics about
277 rule usage (bytes and packets)
280 Fixed the get_redirect_desc() in the linux/netfilter code
283 Clean up init code in miniupnpd.c
284 Added a syslog message in SoapError()
287 Now store redirection descriptions in the linux/netfilter code
290 Answers to SSDP M-SEARCH requests with ST: ssdp:all
291 added make install to Makefile.linux
294 Fixed a bug int the DeletePortMapping linux/netfilter implementation
295 It was allways the 1st rule that was deleted.
298 Fixed config.h.openwrt
301 added something in the INSTALL file about the FreeBSD send(udp_notify)
302 problem fix (allowing 239.0.0.0/8 explicitely in pf.conf)
305 added setsockopt(s, SOL_SOCKET, SO_BROADCAST ...) for broadcasting
309 Fixed filter rule under linux : it was using wrong port !
310 thanks to Wesley W. Terpstra
313 Moved some of the SSDP code from miniupnpd.c to minissdp.c
316 creating miniupnpdctl
319 use LOG_MINIUPNPD macro for openlog()
320 simplify miniupndShutdown()
324 Added stuff to change the pf rule "rdr" to "rdr pass"
327 Corrected Bytes per seconds to bits per second.
328 Ryan cleaned up comments and typos.
329 Ryan cleaned up daemonize stuff.
330 Ryan added possibility to configure model number and serial number
333 ryan improved the robustness of most UPnP Soap methods
334 I added a target in the Makefiles to properly generate an uuid using
336 Improved configuration file parsing.
339 Adding uuid option in miniupnpd.conf
342 Added upnppermissions stuff : adding some security to UPnP !
343 fixed XML description thanks to Ryan Wagoner
344 improved QueryStateVariable thanks to Ryan Wagoner
347 use getifaddr() for each GetExtenalIPAddress() Call.
348 We can change the ip during execution without pb
354 Fixed a nasty bug in the linux/netfilter version of get_filter_rule()
357 Improved the handling of the miniupnpd.conf file.
358 added -f option to choose which config file to read.
361 Fixed potential bugs with ClearNameValueList()
364 All by Ryan Wagoner :
365 - coding style and comments cleanup
366 - using now option file miniupnpd.conf
369 changed "xx active incoming HTTP connections" msg
372 Patch from Ryan Wagoner :
373 - no need to open sockets if we can't set the error handlers
374 - format the usage so it fits nicely on a standard size terminal
375 - fix up log_err message so they have the same format and you know what
377 - use same "white space" style throughout
378 - on shutdown no need to continue if opening socket or setsockopt fails
381 reduce amount of log lines (keeping the same information)
386 version 1.0-RC1 released
389 moved strings from upnpdescgen.c to upnpdescstrings.h for
391 Server: HTTP header now comes from a #define
392 added a compilation-time generated config.h
395 minixml updated. should have no impact
396 Added support for presentationURL with -w switch
397 implemented getifstats() for linux. Added testgetifstats program
398 improved error handling in getifstats() BSD
401 no need to have miniupnpc sources to compile miniupnpd.
402 Makefile.openwrt updated
403 Closing sockets on exit thanks to Ryan Wagoner
406 now handling signal SIGINT
407 setting HTTP socket with REUSEADDR thanks to Ryan Wagoner
408 daemon now tested on a Linksys WRT54G device running OpenWRT !
411 disabling rtableid in pf code.
414 Also responds on M-SEARCH with the uuid
417 gaining some space in upnpsoap.c
420 Cleaning up code to comply with ANSI C89
423 Linux version now deleting both nat and accept rules
424 implemented -U option under Linux
427 implemented delete_redirect_rule() for linux
428 returning error 714 in DeletePortMapping() when needed
431 The linux/netfilter version should now WORK !
432 fix in the writepidfile() function. open with a mode !
435 fixing the XML description generation for big endian machines
436 working on the linux/netfilter port
439 improved a lot the handling of HTTP error cases
442 Tried to make the Makefile compatible with both BSDmake
443 and GNUmake. It was hard because of $^ and $<
446 Makefile compatible with BSD make
448 getifstats.c compatible with both OpenBSD and FreeBSD.
451 added getifstats.c for openBSD. May not work under FreeBSD ?
452 now reports bytes/packets sent/received
454 possibility to report system uptime
457 added a -L option to enable loggin (is off by default now).
460 Patch by Ryan Wagoner to correct the XML description (was NewUpTime
461 instead of NewUptime) and implement uptime.
462 Trying to fix the memory leak. Added some comments
463 added a -d option for debugging purpose
464 Tnaks to valgrind (under linux!) I removed a small memory access error.
467 Thanks to a patch sent by Michael van Tellingen, miniupnpd is
468 now ignoring NOTIFY packets sent by other devices and is
469 writing is own pid to /var/run/miniupnpd.pid
472 Allways set sendEvents="no" in XML description (was causing
473 pb with winXP as SUBSCRIBE is not implemented)
476 added translation from hostname to IP in the AddPortMapping() method
477 Thanks to Ryan Wagoner.
480 Added an INSTALL file
483 Added the possibility to change the notify interval
486 Improved compliance of the XML Descriptions
487 pretty print for testupnpdescgen
490 improved the Error 404 response.
491 Better serviceType and serviceId for dummy service...
494 updating the XML description generator
497 Thanks to Rick Richard, support for SSDP "alive" and "byebye" notifications
498 was added. The -u options was also added. The SSDP response are now
500 The -o option is now working (to force a specific external IP address).
501 The Soap Methods errors are correctly responded (401 Invalid Action)
504 Added code to handle filter rules. Thanks to Seth Mos (pfsense.com)
505 storing the descriptions in the label of the rule
508 improved the generation of the XML descriptions.
509 I still need to add allowed values to variables.
512 filtering SSDP requests and responding with same ST: field
515 Added a dummy description for the WANDevice
518 Command line arguments processing
519 Added possibility to listen internally on several interfaces