$Id: CHANGES,v 1.109 2011/01/07 17:40:20 reubenhwk Exp $

07/01/2011	make dist (for building tar.gz source packages) fixed.
		- 07/01: AdvSourceLLAddress fixed on FreeBSD when link
		layer token length is zero.

14/12/2010	Deprecate old, pre-RFC5006 parameters.
		Support RFC6106 by adding DNS Search List support.
		From Pierre Ossman.

14/12/2010      Integrate cleanup patches from Reuben Hawkins:
                - 14/05: patch configure.in to allow OSX 10.6 builds
		- 05/06: Unnecessary >255 test when using uint8_t
                - 06/06: fix fscanf parsing on Linux 
		- 10/12: Fix whitespaces; #includes; CLEANFILES
		From Ben Greear:
                - 05/11: Print errors on all exit() codepaths.
		From Iain J. Watson:
		- 09/12: Add '-c' flag to test configuration.
		From Pierre Ossman (idea):
                - 13/12: Remove automake-generated files.

04/05/2010	Fix a segmentation fault on reload_config() timer list
		corruption that only occurs with multiple interfaces.

10/03/2010	Fix radvd skipping multiple interfaces when
                UnicastOnly is on or AdvSendAdvert is off.
		This got broken in radvd 1.3. Patch from Cedric BAIL.

05/03/2010	Release 1.6.

05/03/2010	Update Redhat spec and init files from Fedora.

28/01/2010	Decrease MSG_SIZE from 4096 to about 1500B. Send buffer
                uses a smaller size in order to avoid sending out
                fragmented packets, yet being able to receive full-size
                frames.

28/01/2010	Keep track of buffer size and exit if the number of
		prefixes/routes/etc. would grow too much. Prevent a memory
                corruption due to wrong memset. Patches from Jan
                Görig, Red Hat bug #554125.

22/01/2010	On BSD use getifaddrs() also in setup_deviceinfo(),
		fixes a multiple interfaces problem on NetBSD 5 due to
		change in data structures. Patch from Michael Stapelberg.

07/11/2009	Allow radvd.conf prefix, clients, route, and RDNSS options
		to be in any order.  Patch from Michael Stapelberg.

10/09/2009	Release 1.5.

07/09/2009	Fix infinite loop/segmentation fault problems when cable
		plugged out/plugged back in, caused by reload_config()
		and subsequent timer list corruption.  Slightly modified
		patch from Teemu Torma.  For more information, see
		http://lists.litech.org/pipermail/radvd-devel-l/2009-August/000416.html

07/09/2009	Fix IgnoreIfMissing when cable is unplugged at startup.
		Radvd would keep skipping the interface.  Patch from
		Reuben Hawkins.

25/08/2009	Fix parallel make, from Robert Buchholz / Gentoo.

03/08/2009	Release 1.4.  Only restores original behaviour changed in
		1.3: RAs were accidentally often unicast to solicitors
		instead of being multicast.

07/07/2009	Release 1.3.

24/06/2009	Work around unaligned traps on Alpha, patch from:
		http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=456205

19/06/2009	Fixes and enhancements from Michael Stapelberg.  Add a new
		'clients' interface definition to allow configuring which
		address to send advertisements and accept from. Use
		getifaddrs() on BSD because ioctl didn't work on NetBSD 5.
		Use int instead of bool to make NetBSD 5 happy.

21/01/2009	Add a workaround for Linux in scenarios where libc is
		providing IPV6_RECV(PKTINFO|HOPLIMIT) has renumbered IPV6_PKTINFO,
		but kernel doesn't support it yet (<2.6.14).  Found out by
		Freetz (special thanks to Paul Oranje) and OpenWrt projects.
		See the source code and CVS changelog for more.

28/10/2008	Release 1.2.

14/10/2008	Accept virtually any interface name (up to 15 chars) instead of
		forcing a specific naming convention.  Patch from
		Michiel Brandenburg.

		If stale radvd.pid file exists, try to overwrite it unless
		the specified PID exists, from Fedora (Martin Nagy).

		Define _GNU_SOURCE on Linux, otherwise glibc >= 2.8
		compilation fails.

		Remove -Wconversion from default CFLAGS as it is very noisy.
		Fix some warnings, from Jim Paris.

31/03/2008	Update references to RFCs.  Give pointer to the "two hour rule".
		Decrease the default valid and preferred lifetimes from 30/1
		days to 1day/4hours, respectively.  See more info at:

		http://lists.litech.org/pipermail/radvd-devel-l/2007-October/000282.html

04/02/2008	Release 1.1.

24/01/2008	Implement privilege separation (Linux only) so that
		config_interface() works both with a user and root,
		even after HUP signal.  Work by Jim Paris.

24/01/2008      The old Linux retrans_timer proc value is given in
		USER_HZ, not in seconds.  Fix that, by Jim Paris.

21/01/2008	Fix stderr+syslog logging crash (on non-i386).  Analysis and
		patch by Jim Paris (Debian bug #409600).

01/12/2007	Require that interface is also 'RUNNING' instead of just
		'UP', except if IgnoreIfMissing is enabled.  The reason is
		that at least some recent Linux kernels do not generate
		link-local addresses before interface is running and as
		a result, the startup may fail if network cable is unplugged
		in any case.

		Note: this could break deployments with some very old 
                kernels, see more info at:

		http://lists.litech.org/pipermail/radvd-devel-l/2007-October/000280.html

25/10/2007	Implement automatically selecting and advertising an
                interface address, see radvd.conf(5) for more.  Add
		a warning about not being able to set interface
		variables with non-root user.  Relax interface naming
                a bit.

25/06/2007	Send prefix, route and RDNSS options (matters if there
		are many RDNSS options) in the same order they appear
		in the configuration; add support for AdvDefaultLifetime
		in radvdump (patches from C. Scott Ananian)

11/01/2006	Release 1.0.

10/09/2006	Perform a static/dynamic code audit; plug some minor
		bugs (see CVS changelogs for more information) and
		perform minor clean-up.

08/07/2006	Implement MAX_INITIAL_RTR_ADVERT_INTERVAL handling,
		patch from Yoshifuji Hideaki / USAGI.

05/23/2006	Unblock SIGALRM signals at startup.  Some scripts/programs
		seem to run radvd from ALRM-blocked context which breaks
		the timers.

05/23/2006	Redefined IgnoreIfMissing: by default, radvd will now
		try to reinitialize failed interfaces automatically.
		IgnoreIfMissing is still needed if radvd is started when the
		interface isn't up, and it also quenches some messages
		relating to missing interfaces.

03/29/2006	Implement RDNSS draft, using non-allocated
		IANA ND type value 25, by Lauréline Provost,
                Mickaël Guérin, Adrien Clerc, Gaetan Eleouet,
                Bahattin Demirplak, Lionel Guilmin (at the
                ENSEEIHT, Toulouse)

03/06/2006	Fix the default STDERR+syslog logging methods, so
		we don't try to unnecessarily log to STDERR after
		forking.

01/18/2006	radvd-0.9.1 did not initialize AdvDefaultLifetime (etc.)
		appropriately, unbreak the "clean-up".

01/13/2006	Release 0.9.1.

12/30/2005	Great cleanup of signed/unsigned values, add
		-Wall and a number of other warnings to CFLAGS
		by default.  Do not allow signed values for
		HomeAgentPreference anymore.

12/30/2005	Fix a couple of  IPv6 Ready Logo Phase-2 IPv6 Core
		Protocols Self Test issues, patches from Yoshifuji
		Hideaki / USAGI.

11/13/2005	Create a short FAQ in README file.

10/28/2005	Get interface MTU automatically, so that you can
		use jumboframes and advertise MTU >1500.

10/19/2005	Release 0.9.

10/18/2005	Transfer sole maintainership of radvd to Pekka Savola.

10/18/2005	Make the radvd.conf syntax dump default
		in radvdump and remove the previous default to
		reduce code duplication.

09/28/2005	Add NEMO Basic support (RFC3961) and fix default
		HomeAgentLifetime, from Ville Nuorvala.

08/18/2005	Implement more robust timer handler, especially
		because some Linux kernels don't seem to behave
		all that well; see http://lkml.org/lkml/2005/4/29/163.
		Based on extensive testing & reports by
		Tomasz Grobelny.  NB: the bug report was caused by
		a bad timer patch in PLD's kernel package, and this
		should not occur often with standard kernels.

07/24/2005	Implement a new logging method "stderr_syslog" which is
		now also the default.  Everything is logged on syslog,
		while the most important messages (i.e., start-up failures)
		are also logged on stderr.

07/08/2005	Release 0.8.

07/05/2005	Change the more-specific route ND option code
		from de-facto '9' to the official '24'.  Change
		back in defaults.h if you need old behaviour.

07/05/2005	Fix wrongly calculated prefix with Base6to4Interface
                on ppc and maybe other big endian arches, from
		Debian #301543 by Sam Hathaway.

07/05/2005	Fix Linux-2.6.12-bk4+ error with HUP signal,
		from YOSHIFUJI Hideaki / USAGI.

03/29/2005	Merge a part of MIPv6/non-MIPv6 code, make printing
		error messages nicer.

03/22/2005	Be a bit more informative about config file parsing
		errors.

02/21/2005	Release 0.7.3.

02/19/2005	Fix crash when reloading config with AdvSendAdvert off.

02/15/2005	Merge a few fixes and improvements from USAGI:
		 - support microsecond scheduling and fix RA intervals
		 - send zero router lifetime when forwarding is disabled
		 - use a more flexible inter-RA delay

01/07/2005	Accomodate interface indexes > 9999, from Hagen Fritsch.

12/15/2004	Advertise zero Router Lifetime when shutting down;
		implements a SHOULD in RFC2461 section 6.2.5.

10/16/2004	Update Mobile IPv6 to match RFC 3775, from Greg Daley.

08/20/2004	Minor documentation cleanups.

03/09/2004      Implement "IgnoreIfMissing" interface flag, which can be
                used on interfaces which aren't enabled when radvd starts
                but will later become available (e.g., Bluetooth) --
                and then you wish to send HUP to radvd to activate the
                configs.

02/21/2004      Further cleanups, to fix autoconf/autoheader problems
                with newer toolchain; mostly by Marko Myllynen.

02/20/2004      Clean up a bit: remove old junk from configure.in,
                rename "log()" to "flog()" to satisfy newer GCCs,
                allow underscores in the interface names (the last two
                fixes already committed earlier).
                                                                                
01/19/2004      Make radvd check for forwarding status using procfs on
                Linux; needed with 2.6 kernels.  Loosely based on
                a patch by USAGI.

11/21/2003	Add support for Router Preferences and More Specific
		Routes from Markku Savela <msa@burp.tkv.asdf.org>.
		NOTE! The specification is not final yet, there will be
		changes!  (Man page, documentation and radvdump support
		by Pekka Savola.)

09/11/2003	When starting up, check if the MAC address is all zero
		(could happen e.g. with bridge interfaces with no attached
		physical interfaces), and warn if so. For more information,
		http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=103469

06/10/2003	When chrooting, check the possible return code 
		from chdir("/").

03/08/2003	Add patch from MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>
		to discard RS's from the unspecied source address with
		link-layer address option, as required by RFC2461.

10/28/2002	Release 0.7.2:
		 - add support for VLANs (from USAGI)
		 - make it compile better on newer NetBSD's (NetBSD)
		 - fix a syntax error in radvd.conf(5) sample documentation
		 - use IPV6_RECV{HOPLIMIT,PKTINFO} not 
                       IPV6_{HOPLIMIT,PKTINFO} if supported
		 - (in Red Hat spec file) don't create radvd gid explicitly
		 - a lot of coding style cleanups

01/16/2002	Release 0.7.1.

01/12/2002	Update config.{guess,sub} from ftp.gnu.org; update INTRO.
		Marko Myllynen and Debian bug #115992.

01/02/2002	Ensure NULL-termination with strncpy.

12/31/2001	Radvdump fixes: eliminate a warning of Prefix Information
		sections with '-d -f'; add a note that
		{Min,Max}RtrAdvInterval cannot be obtained with '-f';
		implement '-e' to be used with '-f' which omits all
		advertised default settings. Mostly by Marko Myllynen.

12/28/2001	Small cleanups.  AdvSendAdvert is implicitly off by
		default.  Check configuration file permissions; must
		not be writable by others, and if non-root,
		not by self/own group.  By Marko Myllynen.

12/21/2001	Check via sysctl that IPv6 forwarding is enabled;
		exit unless debugging is enabled.  Triggered by
		Marko Myllynen.

11/22/2001	MinRtrAdvInterval for MIPv6 is 0.05 seconds, not 0.5.
		(Note: untested).

11/20/2001	Rework BSD device memory management a bit, minor cleanups.
		Version bumped to 0.7.0.

11/14/2001	Maintainership of radvd transferred from Lars Fenneberg
		to Pekka Savola and Nathan Lutchansky.  Lars' CVS
		repository adopted, and changes merged from the -pX
		branch.

08/29/2001	Minor change for NetBSD 1.5.1 compatibility.
		(Nathan Lutchansky)

07/20/2001	Support for non-multicast links, like ISATAP.
		(Nathan Lutchansky)

07/03/2001	Minimum MTU has been changed to 1280 in the latest RFC's.
		(Pekka Savola)

06/30/2001	Check for possible buffer overflows; replace strcpy with
		strncpy.  No fatals found.  Remove redunant radvd -t check.
		(Pekka Savola)

06/24/2001	Fix 1-byte overflow in /proc/net/igmp6 handling,
                clean out possible memory garbage when sending RA's
		(patch from <yoshfuji@linux-ipv6.org>).

06/19/2001	When dropping root, also set up supplementary groups
		properly.  On Linux, when sending RA's, check that the
		interface has joined all-routers multicast group.  Add a few
		RFC2461 MUST sanity checks when receiving datagrams.  Clean
		out non-EUI64 addressing scheme and other minor bits.
		(Pekka Savola)

04/28/2001	Misc cleanup and bugfixes, automake support.

03/28/2001	Grammar cleanup. Integrated 6to4 support through
		"Base6to4Interface" option in prefix configuration. Signal
		handling fixed by blocking on select() rather than recvmsg()
		so SIGTERM/HUP take effect immediately now. (Nathan Lutchansky)

03/27/2001	Security fixes: close stdin/out and chdir("/") via
		daemon() to prevent possible exploits, and a flag to allow
		radvd to set[ug]id to an unprivileged user (from Pekka Savola).

02/01/2001	scope_id is not supported in glibc2.1. So it is now
		compiled conditionally.

01/31/2001	Add CC variable to Makefile. Fix bug with IPV6_ADD_MEMBERSHIP
		handling. Set scope_id when sending packets.

12/02/2000	man pages update, rewritten pid file handling, rewritten
		signal handling (SIGHUP and SIGTERM), gcc warnings cleanup,
		new radvdump option -f: print received RAs in config file
		format (by Marko)

11/19/2000	integrated the last two change entries into the main source
		(patches by Marko Myllynen), fixed bug in log.c, fixed file
		description leak in readin_config, rewrote code in timer.c,
		updated man pages again (from Marko Myllynen, too), PID
		file support (patch from Marko Myllynen, based on a patch
		from Tommi.Komulainen@iki.fi)

15/08/2000	RFC 2461 updates, Mobile IPv6 extensions added

14/07/2000 	added RA interval option and modified some default values
		for timers

06/15/99	changed to run with glibc 2.1 on RedHat 6.0.

03/03/98	radvd now joins ipv6-allrouters on Linux.  Fix contributed
		by A.N.Kuznetsov <kuznet@ms2.inr.ac.ru>.

10/23/97	radvd will now accept any prefix length in its config
		file but will warn about unusual ones

10/19/97	removed backwards compatibility code in recv.c.
		IPV6_HOPLIMIT support is now assumed to exist.

10/19/97	fixed alignment problems in recv.c and send.c.

10/16/97	the Makefile install target now uses mkinstalldirs.

10/16/97	changed all u_int*_t to uint*_t for better POSIX
		compliance and portability. Needs 2.1.57-CVS or glibc.
		BSD seems to need patches.

10/16/97	more intelligent configure; tries to figure out
		where the IPv6 libraries and inclues are (if not in
		the standard places). Searches in /usr/inet6 and /usr/ipv6.

10/15/97	integrated small patches for glibc and BSD from Craig and
		Philip

09/14/97	EUI-64 "support"

09/01/97	centralized all includes into includes.h for easier
		maintainance

08/25/97	changed all occurences of IPV6_TXINFO/IPV6_RXINFO
		to IPV6_PKTINFO

08/25/97	removed some compatibility stuff for older Linux kernels

03/17/97	changed linux/if_arp.h to net/if_arp.h in device-linux.c
		and configure.in (for glibc compatibility)

03/17/97	integrated patch from Philip Blundell <pjb27@cam.ac.uk>
		into configure.in to check for inet_* in libc first and
		then for libinet6 (for glibc compatibility).

03/16/97	corrected small error in radvd.conf(5) man page and other
		small changes

03/16/97	removed linklocal.c source file from the distribution
		because it wasn't used anymore

03/16/97	added html version of the INTRO, removed ascii version.

02/12/97	missing directories are now created on make install

01/19/97	now also the rest of a line followed by a '#' is treated
		as a comment in the config file

01/16/97	added IPPROTO_IPV6/IPV6_HOPLIMIT support, so now incoming
		RS' and RAs are checked if there hoplimit is 255 (on Linux
		this only works with kernel version 2.1.21 and above)

01/15/97	lots of portability cleanups; radvd is now using autoconf
		for automatic configuration; removed support for the
		in. prefix

01/05/97	integrated BSD 4.4 patches from Craig <cmetz@inner.net>

12/21/96	release of version 0.3

12/15/96	the AdvSendAdvert flag works now

12/14/96	added radvdump, dumps all received RAs in a human
		readable form	

12/13/96	rewrote radvd to use new advanced API headers

12/08/96	added radvd.conf(5) man page

12/03/96	changed RAW_CHECKSUM to IPV6_CHECKSUM for kernels
		2.1.14 and above

11/24/96	added checking of received RAs according to RFC 1970

11/20/96	rewrote the default handling, now it should conform
		to RFC 1970

11/17/96	release of version 0.2
	
11/17/96	added -h (--help) and -f (--facility) option

11/17/96	added setsockopt(..., SOL_IPV6, IPV6_MULTICAST_HOPS), so
	 	that radvd works for kernel versions >2.1.7 (without this
	 	you get "NDISC: fake router advertisment received" on your
	 	hosts)
	
11/17/96	added a man page for radvd(8)

11/17/96	some minor filename changes

11/13/96	first release of this version of in.radvd (0.1)
