1 $Id: Changelog.txt,v 1.233 2011/06/17 22:51:50 nanard Exp $
4 Remote host support for pf version
7 Supporting RemoteHost (mandatory in IGD v2)
10 Enabling events by default
13 Fixing Timeout missing in SUBSCRIBE renewal responses
14 (thanks to Pranesh Kulkarni)
15 Added comments about changes between IGD v1 and IGD v2
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)
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
31 fix in linux/getifstats.c.
32 See http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=2212
33 Implementation of LeaseDuration support.
36 added get_wan_connection_status_str()
39 adding ifacewatcher thanks to Alexey Osipov
40 GET /DP.xml is now available. The description has to be completed.
43 Add getconnstatus.c/.h. Dont always have ConnectionStatus to "Connected"
44 Events for WANIPv6FirewallControll
47 patches for gentoo linux.
48 generation of the DeviceProtection service description.
51 Making the SSDP receiving socket work in IPv6 !
54 Support for HTTP in both IPv6 and IPv4.
55 IPv6 for SSDP receiving socket.
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.
68 updating upnp descriptions for IGDv2
71 Adding WANIPv6FirewallContro to upnp description
74 adding a UPNP_STRICT config macro. Use it now for checking RemoteHost.
75 ENABLE_6FC_SERVICE : add the implementations of WANIPv6FirewallControl actions
78 preparing getifaddr() for IP v6
79 preparing SSDP stuff for IP v6. Trying to conform to UDA v1.1
82 Some modifications thanks to Daniel Dickinson to improve OpenWRT
87 Added code to generate devices/services descriptions for IGD v2
91 improved netfilter/delete_redirect_and_filter_rules() in order
92 to remove the right filter rule, even if it has another index than
96 clean up an fixes to make netfilter/testiptcrdr compile
99 Make "Makefile" work under Mac OS X with bsdmake.
100 added get_portmappings_in_range() in ipfwrdr.c
103 added get_portmappings_in_range() / upnp_get_portmappings_in_range()
106 Implementation of GetListOfPortMappings
109 Reverting "fixes" done in linux/iptables code the 2010/09/27.
110 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=741
113 added MINIUPNPD_VERSION in config.h. Taken from VERSION file.
115 VERSION 1.5 : released the 2011/01/01
118 Started to implement some of the new methods from WANIPConnection v2
121 Some fixes in the linux/iptables code when
122 miniupnpd_nat_chain <> miniupnpd_forward_chain
125 Patch to support nfqueue thanks to Colin McFarlane
128 Update Mac OS X / ipfw stuff from Jardel Weyrich
129 Fix in Makefile.linux for x86_64
132 Bugfix un CleanNATPMPRules() : see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=640
135 Fixing natpmp sockets.
138 Fix Makefile.linux to compile properly under Mandriva/rh/Fedora with
140 Workaround for bad uptime when started with a bad time set.
143 Tried to make a OpenBSD version 4.7 compatible code... still some
147 updates to testobsdrdr
150 -lip4tc in Makefile.linux.
153 some more error handling in set_startup_time()
154 silencing some warnings
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
162 miniupnpdctl now output command line arguments.
163 added a -h option to get help. improved help.
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
171 implementing sending of ip address change notification when receiving
174 VERSION 1.4 : released the 2009/10/30
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()
183 Fixing unclosed raw sockets bug with netfilter code.
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
192 Adding some support for MacOS X and IPFW
193 SO_REUSEADDR in minissdp.c for SSDP listening socket
196 unlink lease file in reload_from_lease_file()
199 Fixed a buffer overflow in ProcessSSDPRequest()
202 improving genconfig.sh for NetBSD : detecting use of pf or ipf
206 working support for iptables >= 1.4.3
209 work to support iptables-1.4.3 and up
212 fix in upnpevents_removeSubscriber()
215 added reload_from_lease_file()
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
223 Some minor changes to Makefile
224 improving Makefile.linux in order to build with iptables not properly
225 installed on the system.
228 Fixing upnpevents thanks to Justin Maggard
231 getifstats() return -1 when supplied with bad arguments
234 Fixed NAT-PMP response when IP not allocated to external interface
238 Reporting Unconnected status when the "external interface" has
239 no IP address assigned. Also added some comments
247 MiniUPnPd is now able to use MiniSSDPd to manage SSDP M-SEARCH answering
250 You can now let miniupnpd choose itself the HTTP port used.
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
259 added USE_IFNAME_IN_RULES macro that can be disabled in order to
260 remove interface name from rules.
263 Fixed compilation without ENABLE_L3F_SERVICE
266 correct UNSUBSCRIBE processing
269 changed iptables_removeall.sh and iptables_init.sh in order
270 to remove IP from the rules
275 Eventing is allmost completly implemented
278 Correct event handling ?
281 enabling tag in PF rules. quick can be set off.
284 implementing event notify
287 fixing a command line parsing error
290 optimisations in upnpsoap.c
293 optimizing upnpsoap.c for size
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
303 Fixed miniupnpd.c for compiling without natpmp support
304 fixed presentationURL not there with L3F
305 fixing lease file creation/modification
308 Rewrite of Send501() and Send404()
310 genconfig.sh autodetects pf/ipf
313 Started to implement UPnP Events. do NOT use it at the moment !
316 Added support for the Layer3Forwarding Service
317 added init_redirect() and shutdown_redirect() functions
320 Removed Ext: HTTP header when useless
321 enabled the dummy service by default to please windows XP !
324 upnp_enable patch by Nikos Mavrogiannopoulos.
325 lease_file patch by Nikos Mavrogiannopoulos.
328 some changes to Makefile.openwrt
329 use daemon() - daemonize() is still available for systems lacking daemon()
333 moved lan_addr to upnpglobalvars.h/.c
334 Adding experimental multiple external IP support.
337 removed dummy service from description to improve compatibility
339 Add "secure mode". put runtime flags in the same variable
342 Fixed a bug in options.c for the parsing of empty lines.
345 Fixed CleanExpiredNATPMP()
348 Adding a queue parameter for setting ALTQ in pf
351 improving some stuff with the PF_ENABLE_FILTER_RULE.
354 Adding a runtime option to enable/disable NAT-PMP
357 Added a cache in linux getifstats(). Please enable by editing config.h
360 Updating an existing NAT-PMP mapping now works
363 NAT-PMP code now remove expired mappings
364 TCP/UDP where swapped in NAT-PMP code
367 Adding details to the error message for sendto(udp_notify)
370 pf code doesn't generate filter rules by default anymore. The
371 #ifdef PF_ENABLE_FILTER_RULES must be uncommented in config.h.
374 moved some of the prototypes common to all firewalls to commonrdr.h
375 Added functionalities to NAT-PMP
378 Debugged NAT-PMP code
381 Cleaning and improving NAT-PMP code
384 improved the NAT-PMP experimental support
385 updated README and INSTALL files
388 Adding support for NAT-PMP (from apple !)
391 Checking the commandline for errors.
394 Improved the BSD/Solaris Makefile
395 Merging last code from Darren Reed. Solaris/IPF should work now !
399 Adding Darren Reed code for ipf.
402 Adding SunOS support thanks to Darren Reed.
403 Reorganizing os/firewall dependent code thanks to Darren Reed.
406 linux make install support PREFIX variable
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.
414 prototype code to remove unused rules
415 miniupnpdctl now display current rules
416 synchronised add_filter_rule2() prototype between pf and netfilter code.
419 Correctly filling the Cache-control header in SSDP packets
422 update PFRULE_INOUT_COUNTS detection for FreeBSD
425 update version in genconfig.sh
426 do not error when a duplicate redirection is requested.
429 really fixed the compilation bug with linux>=2.6.22
432 fixed an error in options.c that prevented to use packet_log option
435 improved genconfig.sh
436 fixed a compilation bug with linux>=2.6.22
439 added PFRULE_INOUT_COUNTS macro to enable separate in/out packet and
440 bytes counts in pf for OpenBSD >= 3.8
443 removed a possible racecondition in writepidfile()
446 improved genconfig.sh : no more "echo -e", use lsb_release when available
449 get_redirect_rule*() functions now return some statistics about
450 rule usage (bytes and packets)
453 Fixed the get_redirect_desc() in the linux/netfilter code
456 Clean up init code in miniupnpd.c
457 Added a syslog message in SoapError()
460 Now store redirection descriptions in the linux/netfilter code
463 Answers to SSDP M-SEARCH requests with ST: ssdp:all
464 added make install to Makefile.linux
467 Fixed a bug int the DeletePortMapping linux/netfilter implementation
468 It was allways the 1st rule that was deleted.
471 Fixed config.h.openwrt
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)
478 added setsockopt(s, SOL_SOCKET, SO_BROADCAST ...) for broadcasting
482 Fixed filter rule under linux : it was using wrong port !
483 thanks to Wesley W. Terpstra
486 Moved some of the SSDP code from miniupnpd.c to minissdp.c
489 creating miniupnpdctl
492 use LOG_MINIUPNPD macro for openlog()
493 simplify miniupndShutdown()
497 Added stuff to change the pf rule "rdr" to "rdr pass"
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
506 ryan improved the robustness of most UPnP Soap methods
507 I added a target in the Makefiles to properly generate an uuid using
509 Improved configuration file parsing.
512 Adding uuid option in miniupnpd.conf
515 Added upnppermissions stuff : adding some security to UPnP !
516 fixed XML description thanks to Ryan Wagoner
517 improved QueryStateVariable thanks to Ryan Wagoner
520 use getifaddr() for each GetExtenalIPAddress() Call.
521 We can change the ip during execution without pb
527 Fixed a nasty bug in the linux/netfilter version of get_filter_rule()
530 Improved the handling of the miniupnpd.conf file.
531 added -f option to choose which config file to read.
534 Fixed potential bugs with ClearNameValueList()
537 All by Ryan Wagoner :
538 - coding style and comments cleanup
539 - using now option file miniupnpd.conf
542 changed "xx active incoming HTTP connections" msg
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
550 - use same "white space" style throughout
551 - on shutdown no need to continue if opening socket or setsockopt fails
554 reduce amount of log lines (keeping the same information)
559 version 1.0-RC1 released
562 moved strings from upnpdescgen.c to upnpdescstrings.h for
564 Server: HTTP header now comes from a #define
565 added a compilation-time generated config.h
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
574 no need to have miniupnpc sources to compile miniupnpd.
575 Makefile.openwrt updated
576 Closing sockets on exit thanks to Ryan Wagoner
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 !
584 disabling rtableid in pf code.
587 Also responds on M-SEARCH with the uuid
590 gaining some space in upnpsoap.c
593 Cleaning up code to comply with ANSI C89
596 Linux version now deleting both nat and accept rules
597 implemented -U option under Linux
600 implemented delete_redirect_rule() for linux
601 returning error 714 in DeletePortMapping() when needed
604 The linux/netfilter version should now WORK !
605 fix in the writepidfile() function. open with a mode !
608 fixing the XML description generation for big endian machines
609 working on the linux/netfilter port
612 improved a lot the handling of HTTP error cases
615 Tried to make the Makefile compatible with both BSDmake
616 and GNUmake. It was hard because of $^ and $<
619 Makefile compatible with BSD make
621 getifstats.c compatible with both OpenBSD and FreeBSD.
624 added getifstats.c for openBSD. May not work under FreeBSD ?
625 now reports bytes/packets sent/received
627 possibility to report system uptime
630 added a -L option to enable loggin (is off by default now).
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.
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
645 Allways set sendEvents="no" in XML description (was causing
646 pb with winXP as SUBSCRIBE is not implemented)
649 added translation from hostname to IP in the AddPortMapping() method
650 Thanks to Ryan Wagoner.
653 Added an INSTALL file
656 Added the possibility to change the notify interval
659 Improved compliance of the XML Descriptions
660 pretty print for testupnpdescgen
663 improved the Error 404 response.
664 Better serviceType and serviceId for dummy service...
667 updating the XML description generator
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
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)
677 Added code to handle filter rules. Thanks to Seth Mos (pfsense.com)
678 storing the descriptions in the label of the rule
681 improved the generation of the XML descriptions.
682 I still need to add allowed values to variables.
685 filtering SSDP requests and responding with same ST: field
688 Added a dummy description for the WANDevice
691 Command line arguments processing
692 Added possibility to listen internally on several interfaces