1$Id: CHANGES,v 1.84 2009/07/07 04:33:59 psavola Exp $ 2 307/07/2009 Release 1.3. 4 524/06/2009 Work around unaligned traps on Alpha, patch from: 6 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=456205 7 819/06/2009 Fixes and enhancements from Michael Stapelberg. Add a new 9 'clients' interface definition to allow configuring which 10 address to send advertisements and accept from. Use 11 getifaddrs() on BSD because ioctl didn't work on NetBSD 5. 12 Use int instead of bool to make NetBSD 5 happy. 13 1421/01/2009 Add a workaround for Linux in scenarios where libc is 15 providing IPV6_RECV(PKTINFO|HOPLIMIT) has renumbered IPV6_PKTINFO, 16 but kernel doesn't support it yet (<2.6.14). Found out by 17 Freetz (special thanks to Paul Oranje) and OpenWrt projects. 18 See the source code and CVS changelog for more. 19 2028/10/2008 Release 1.2. 21 2214/10/2008 Accept virtually any interface name (up to 15 chars) instead of 23 forcing a specific naming convention. Patch from 24 Michiel Brandenburg. 25 26 If stale radvd.pid file exists, try to overwrite it unless 27 the specified PID exists, from Fedora (Martin Nagy). 28 29 Define _GNU_SOURCE on Linux, otherwise glibc >= 2.8 30 compilation fails. 31 32 Remove -Wconversion from default CFLAGS as it is very noisy. 33 Fix some warnings, from Jim Paris. 34 3531/03/2008 Update references to RFCs. Give pointer to the "two hour rule". 36 Decrease the default valid and preferred lifetimes from 30/1 37 days to 1day/4hours, respectively. See more info at: 38 39 http://lists.litech.org/pipermail/radvd-devel-l/2007-October/000282.html 40 4104/02/2008 Release 1.1. 42 4324/01/2008 Implement privilege separation (Linux only) so that 44 config_interface() works both with a user and root, 45 even after HUP signal. Work by Jim Paris. 46 4724/01/2008 The old Linux retrans_timer proc value is given in 48 USER_HZ, not in seconds. Fix that, by Jim Paris. 49 5021/01/2008 Fix stderr+syslog logging crash (on non-i386). Analysis and 51 patch by Jim Paris (Debian bug #409600). 52 5301/12/2007 Require that interface is also 'RUNNING' instead of just 54 'UP', except if IgnoreIfMissing is enabled. The reason is 55 that at least some recent Linux kernels do not generate 56 link-local addresses before interface is running and as 57 a result, the startup may fail if network cable is unplugged 58 in any case. 59 60 Note: this could break deployments with some very old 61 kernels, see more info at: 62 63 http://lists.litech.org/pipermail/radvd-devel-l/2007-October/000280.html 64 6525/10/2007 Implement automatically selecting and advertising an 66 interface address, see radvd.conf(5) for more. Add 67 a warning about not being able to set interface 68 variables with non-root user. Relax interface naming 69 a bit. 70 7125/06/2007 Send prefix, route and RDNSS options (matters if there 72 are many RDNSS options) in the same order they appear 73 in the configuration; add support for AdvDefaultLifetime 74 in radvdump (patches from C. Scott Ananian) 75 7611/01/2006 Release 1.0. 77 7810/09/2006 Perform a static/dynamic code audit; plug some minor 79 bugs (see CVS changelogs for more information) and 80 perform minor clean-up. 81 8208/07/2006 Implement MAX_INITIAL_RTR_ADVERT_INTERVAL handling, 83 patch from Yoshifuji Hideaki / USAGI. 84 8505/23/2006 Unblock SIGALRM signals at startup. Some scripts/programs 86 seem to run radvd from ALRM-blocked context which breaks 87 the timers. 88 8905/23/2006 Redefined IgnoreIfMissing: by default, radvd will now 90 try to reinitialize failed interfaces automatically. 91 IgnoreIfMissing is still needed if radvd is started when the 92 interface isn't up, and it also quenches some messages 93 relating to missing interfaces. 94 9503/29/2006 Implement RDNSS draft, using non-allocated 96 IANA ND type value 25, by Laur�line Provost, 97 Micka�l Gu�rin, Adrien Clerc, Gaetan Eleouet, 98 Bahattin Demirplak, Lionel Guilmin (at the 99 ENSEEIHT, Toulouse) 100 10103/06/2006 Fix the default STDERR+syslog logging methods, so 102 we don't try to unnecessarily log to STDERR after 103 forking. 104 10501/18/2006 radvd-0.9.1 did not initialize AdvDefaultLifetime (etc.) 106 appropriately, unbreak the "clean-up". 107 10801/13/2006 Release 0.9.1. 109 11012/30/2005 Great cleanup of signed/unsigned values, add 111 -Wall and a number of other warnings to CFLAGS 112 by default. Do not allow signed values for 113 HomeAgentPreference anymore. 114 11512/30/2005 Fix a couple of IPv6 Ready Logo Phase-2 IPv6 Core 116 Protocols Self Test issues, patches from Yoshifuji 117 Hideaki / USAGI. 118 11911/13/2005 Create a short FAQ in README file. 120 12110/28/2005 Get interface MTU automatically, so that you can 122 use jumboframes and advertise MTU >1500. 123 12410/19/2005 Release 0.9. 125 12610/18/2005 Transfer sole maintainership of radvd to Pekka Savola. 127 12810/18/2005 Make the radvd.conf syntax dump default 129 in radvdump and remove the previous default to 130 reduce code duplication. 131 13209/28/2005 Add NEMO Basic support (RFC3961) and fix default 133 HomeAgentLifetime, from Ville Nuorvala. 134 13508/18/2005 Implement more robust timer handler, especially 136 because some Linux kernels don't seem to behave 137 all that well; see http://lkml.org/lkml/2005/4/29/163. 138 Based on extensive testing & reports by 139 Tomasz Grobelny. NB: the bug report was caused by 140 a bad timer patch in PLD's kernel package, and this 141 should not occur often with standard kernels. 142 14307/24/2005 Implement a new logging method "stderr_syslog" which is 144 now also the default. Everything is logged on syslog, 145 while the most important messages (i.e., start-up failures) 146 are also logged on stderr. 147 14807/08/2005 Release 0.8. 149 15007/05/2005 Change the more-specific route ND option code 151 from de-facto '9' to the official '24'. Change 152 back in defaults.h if you need old behaviour. 153 15407/05/2005 Fix wrongly calculated prefix with Base6to4Interface 155 on ppc and maybe other big endian arches, from 156 Debian #301543 by Sam Hathaway. 157 15807/05/2005 Fix Linux-2.6.12-bk4+ error with HUP signal, 159 from YOSHIFUJI Hideaki / USAGI. 160 16103/29/2005 Merge a part of MIPv6/non-MIPv6 code, make printing 162 error messages nicer. 163 16403/22/2005 Be a bit more informative about config file parsing 165 errors. 166 16702/21/2005 Release 0.7.3. 168 16902/19/2005 Fix crash when reloading config with AdvSendAdvert off. 170 17102/15/2005 Merge a few fixes and improvements from USAGI: 172 - support microsecond scheduling and fix RA intervals 173 - send zero router lifetime when forwarding is disabled 174 - use a more flexible inter-RA delay 175 17601/07/2005 Accomodate interface indexes > 9999, from Hagen Fritsch. 177 17812/15/2004 Advertise zero Router Lifetime when shutting down; 179 implements a SHOULD in RFC2461 section 6.2.5. 180 18110/16/2004 Update Mobile IPv6 to match RFC 3775, from Greg Daley. 182 18308/20/2004 Minor documentation cleanups. 184 18503/09/2004 Implement "IgnoreIfMissing" interface flag, which can be 186 used on interfaces which aren't enabled when radvd starts 187 but will later become available (e.g., Bluetooth) -- 188 and then you wish to send HUP to radvd to activate the 189 configs. 190 19102/21/2004 Further cleanups, to fix autoconf/autoheader problems 192 with newer toolchain; mostly by Marko Myllynen. 193 19402/20/2004 Clean up a bit: remove old junk from configure.in, 195 rename "log()" to "flog()" to satisfy newer GCCs, 196 allow underscores in the interface names (the last two 197 fixes already committed earlier). 198 19901/19/2004 Make radvd check for forwarding status using procfs on 200 Linux; needed with 2.6 kernels. Loosely based on 201 a patch by USAGI. 202 20311/21/2003 Add support for Router Preferences and More Specific 204 Routes from Markku Savela <msa@burp.tkv.asdf.org>. 205 NOTE! The specification is not final yet, there will be 206 changes! (Man page, documentation and radvdump support 207 by Pekka Savola.) 208 20909/11/2003 When starting up, check if the MAC address is all zero 210 (could happen e.g. with bridge interfaces with no attached 211 physical interfaces), and warn if so. For more information, 212 http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=103469 213 21406/10/2003 When chrooting, check the possible return code 215 from chdir("/"). 216 21703/08/2003 Add patch from MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com> 218 to discard RS's from the unspecied source address with 219 link-layer address option, as required by RFC2461. 220 22110/28/2002 Release 0.7.2: 222 - add support for VLANs (from USAGI) 223 - make it compile better on newer NetBSD's (NetBSD) 224 - fix a syntax error in radvd.conf(5) sample documentation 225 - use IPV6_RECV{HOPLIMIT,PKTINFO} not 226 IPV6_{HOPLIMIT,PKTINFO} if supported 227 - (in Red Hat spec file) don't create radvd gid explicitly 228 - a lot of coding style cleanups 229 23001/16/2002 Release 0.7.1. 231 23201/12/2002 Update config.{guess,sub} from ftp.gnu.org; update INTRO. 233 Marko Myllynen and Debian bug #115992. 234 23501/02/2002 Ensure NULL-termination with strncpy. 236 23712/31/2001 Radvdump fixes: eliminate a warning of Prefix Information 238 sections with '-d -f'; add a note that 239 {Min,Max}RtrAdvInterval cannot be obtained with '-f'; 240 implement '-e' to be used with '-f' which omits all 241 advertised default settings. Mostly by Marko Myllynen. 242 24312/28/2001 Small cleanups. AdvSendAdvert is implicitly off by 244 default. Check configuration file permissions; must 245 not be writable by others, and if non-root, 246 not by self/own group. By Marko Myllynen. 247 24812/21/2001 Check via sysctl that IPv6 forwarding is enabled; 249 exit unless debugging is enabled. Triggered by 250 Marko Myllynen. 251 25211/22/2001 MinRtrAdvInterval for MIPv6 is 0.05 seconds, not 0.5. 253 (Note: untested). 254 25511/20/2001 Rework BSD device memory management a bit, minor cleanups. 256 Version bumped to 0.7.0. 257 25811/14/2001 Maintainership of radvd transferred from Lars Fenneberg 259 to Pekka Savola and Nathan Lutchansky. Lars' CVS 260 repository adopted, and changes merged from the -pX 261 branch. 262 26308/29/2001 Minor change for NetBSD 1.5.1 compatibility. 264 (Nathan Lutchansky) 265 26607/20/2001 Support for non-multicast links, like ISATAP. 267 (Nathan Lutchansky) 268 26907/03/2001 Minimum MTU has been changed to 1280 in the latest RFC's. 270 (Pekka Savola) 271 27206/30/2001 Check for possible buffer overflows; replace strcpy with 273 strncpy. No fatals found. Remove redunant radvd -t check. 274 (Pekka Savola) 275 27606/24/2001 Fix 1-byte overflow in /proc/net/igmp6 handling, 277 clean out possible memory garbage when sending RA's 278 (patch from <yoshfuji@linux-ipv6.org>). 279 28006/19/2001 When dropping root, also set up supplementary groups 281 properly. On Linux, when sending RA's, check that the 282 interface has joined all-routers multicast group. Add a few 283 RFC2461 MUST sanity checks when receiving datagrams. Clean 284 out non-EUI64 addressing scheme and other minor bits. 285 (Pekka Savola) 286 28704/28/2001 Misc cleanup and bugfixes, automake support. 288 28903/28/2001 Grammar cleanup. Integrated 6to4 support through 290 "Base6to4Interface" option in prefix configuration. Signal 291 handling fixed by blocking on select() rather than recvmsg() 292 so SIGTERM/HUP take effect immediately now. (Nathan Lutchansky) 293 29403/27/2001 Security fixes: close stdin/out and chdir("/") via 295 daemon() to prevent possible exploits, and a flag to allow 296 radvd to set[ug]id to an unprivileged user (from Pekka Savola). 297 29802/01/2001 scope_id is not supported in glibc2.1. So it is now 299 compiled conditionally. 300 30101/31/2001 Add CC variable to Makefile. Fix bug with IPV6_ADD_MEMBERSHIP 302 handling. Set scope_id when sending packets. 303 30412/02/2000 man pages update, rewritten pid file handling, rewritten 305 signal handling (SIGHUP and SIGTERM), gcc warnings cleanup, 306 new radvdump option -f: print received RAs in config file 307 format (by Marko) 308 30911/19/2000 integrated the last two change entries into the main source 310 (patches by Marko Myllynen), fixed bug in log.c, fixed file 311 description leak in readin_config, rewrote code in timer.c, 312 updated man pages again (from Marko Myllynen, too), PID 313 file support (patch from Marko Myllynen, based on a patch 314 from Tommi.Komulainen@iki.fi) 315 31615/08/2000 RFC 2461 updates, Mobile IPv6 extensions added 317 31814/07/2000 added RA interval option and modified some default values 319 for timers 320 32106/15/99 changed to run with glibc 2.1 on RedHat 6.0. 322 32303/03/98 radvd now joins ipv6-allrouters on Linux. Fix contributed 324 by A.N.Kuznetsov <kuznet@ms2.inr.ac.ru>. 325 32610/23/97 radvd will now accept any prefix length in its config 327 file but will warn about unusual ones 328 32910/19/97 removed backwards compatibility code in recv.c. 330 IPV6_HOPLIMIT support is now assumed to exist. 331 33210/19/97 fixed alignment problems in recv.c and send.c. 333 33410/16/97 the Makefile install target now uses mkinstalldirs. 335 33610/16/97 changed all u_int*_t to uint*_t for better POSIX 337 compliance and portability. Needs 2.1.57-CVS or glibc. 338 BSD seems to need patches. 339 34010/16/97 more intelligent configure; tries to figure out 341 where the IPv6 libraries and inclues are (if not in 342 the standard places). Searches in /usr/inet6 and /usr/ipv6. 343 34410/15/97 integrated small patches for glibc and BSD from Craig and 345 Philip 346 34709/14/97 EUI-64 "support" 348 34909/01/97 centralized all includes into includes.h for easier 350 maintainance 351 35208/25/97 changed all occurences of IPV6_TXINFO/IPV6_RXINFO 353 to IPV6_PKTINFO 354 35508/25/97 removed some compatibility stuff for older Linux kernels 356 35703/17/97 changed linux/if_arp.h to net/if_arp.h in device-linux.c 358 and configure.in (for glibc compatibility) 359 36003/17/97 integrated patch from Philip Blundell <pjb27@cam.ac.uk> 361 into configure.in to check for inet_* in libc first and 362 then for libinet6 (for glibc compatibility). 363 36403/16/97 corrected small error in radvd.conf(5) man page and other 365 small changes 366 36703/16/97 removed linklocal.c source file from the distribution 368 because it wasn't used anymore 369 37003/16/97 added html version of the INTRO, removed ascii version. 371 37202/12/97 missing directories are now created on make install 373 37401/19/97 now also the rest of a line followed by a '#' is treated 375 as a comment in the config file 376 37701/16/97 added IPPROTO_IPV6/IPV6_HOPLIMIT support, so now incoming 378 RS' and RAs are checked if there hoplimit is 255 (on Linux 379 this only works with kernel version 2.1.21 and above) 380 38101/15/97 lots of portability cleanups; radvd is now using autoconf 382 for automatic configuration; removed support for the 383 in. prefix 384 38501/05/97 integrated BSD 4.4 patches from Craig <cmetz@inner.net> 386 38712/21/96 release of version 0.3 388 38912/15/96 the AdvSendAdvert flag works now 390 39112/14/96 added radvdump, dumps all received RAs in a human 392 readable form 393 39412/13/96 rewrote radvd to use new advanced API headers 395 39612/08/96 added radvd.conf(5) man page 397 39812/03/96 changed RAW_CHECKSUM to IPV6_CHECKSUM for kernels 399 2.1.14 and above 400 40111/24/96 added checking of received RAs according to RFC 1970 402 40311/20/96 rewrote the default handling, now it should conform 404 to RFC 1970 405 40611/17/96 release of version 0.2 407 40811/17/96 added -h (--help) and -f (--facility) option 409 41011/17/96 added setsockopt(..., SOL_IPV6, IPV6_MULTICAST_HOPS), so 411 that radvd works for kernel versions >2.1.7 (without this 412 you get "NDISC: fake router advertisment received" on your 413 hosts) 414 41511/17/96 added a man page for radvd(8) 416 41711/17/96 some minor filename changes 418 41911/13/96 first release of this version of in.radvd (0.1) 420