Subject: CVS commit: src/sbin/routed
To: None <source-changes@NetBSD.org>
From: Christos Zoulas <christos@netbsd.org>
List: source-changes
Date: 03/27/2004 20:50:44
Module Name:	src
Committed By:	christos
Date:		Sat Mar 27 20:50:44 UTC 2004

Modified Files:
	src/sbin/routed: main.c rdisc.c routed.8

Log Message:
From Vernon Schryver:

Wolfgang Solfrank has explained the problem with router discovery
in `routed` in a way I can understand.

Let's assume that the configured preference of the interface is 5.
This gets converted to 0x80000005 through the use of the UNSIGN_PREF
macro.  Later on, this value gets put into the PREF macro, which
compares it against the interface metric(s) (let's assume those
values to be 0 for now).  Of course the 0x80000005, cast to int,
is much less than 0, so the clamping rule is triggered, which
gives us a value of 1.  This is then converted via SIGN_PREF into
0x80000001 and put into the message.  Certainly, this isn't what
was intended.


To generate a diff of this commit:
cvs rdiff -r1.35 -r1.36 src/sbin/routed/main.c
cvs rdiff -r1.14 -r1.15 src/sbin/routed/rdisc.c
cvs rdiff -r1.42 -r1.43 src/sbin/routed/routed.8

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.