Brooks Davis wrote:
On Fri, Aug 25, 2006 at 12:06:31AM +0200, Fredrik Lindberg wrote:
Brooks Davis wrote:
It just occured to me that the daemon could handle this without any
interaction with dhclient or the static interface configuration. In the
mode where you only want an LLA if there isn't another address it's a
simple matter of watching the routing socket for messages and a)
removing the LLA if an IPv4 address other than 0.0.0.0 is configured on
the interface and b) (re)starting the process of obtaining an LLA when
all other addresses have been removed. The daemon should be listening
to the routing socket anyway because it should only run when the
interface has link which requires it to exit when the link goes down
similar to dhclient. I really need to go look at the code and see what
you're doing now. :)
Well, I'm doing just that...except it's not the routing socket but the
netdev filter of the kqueue system. Could be change to the routing
socket.
It looks like you'd need to switch to the routing socket to be able to
make decisions based on address changes, but the basic flow should be
the same.
It is doing decisions based on address changes...
The difference is that instead of doing a read each time something
arrives at the routing socket it just refreshes its data on whats
on the interface when an address event takes place and then makes
a descisions.
Yes, you could see this as a potential race condition, but, it
doesn't care if it was an address removal or address addition event
that triggered it, it will do the same logic that should eliminate
any race condition.
However, I might change it to a routing socket anyway, haven't really
decided yet.
Fredrik Lindberg
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"