]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
When dhclient obtains a lease, it runs dhclient-script and expects
authorbrian <brian@FreeBSD.org>
Wed, 7 Jul 2010 06:06:54 +0000 (06:06 +0000)
committerbrian <brian@FreeBSD.org>
Wed, 7 Jul 2010 06:06:54 +0000 (06:06 +0000)
commit66f8be2c3a44856f9342483b3faef76f2dcd65ae
tree3573f2212fa9ca97fd950b071dc1a991c65a89eb
parentf4fc64678d8ff2c564159100087fb32bfd35563d
When dhclient obtains a lease, it runs dhclient-script and expects
it to configure the interface.  When the script is complete, dhclient
monitors the routing socket and will terminate if its address is
deleted or if its interface is removed or brought down.

Because the routing socket is already open when dhclient-script is
run, dhclient ignores address deletions for 10 seconds after the
script was run.

If the address that will be obtained is already configured on the
interface before dhclient starts, and if dhclient-script takes more
than 10 seconds (perhaps due to dhclient-*-hooks latencies), on script
completion, dhclient will immediately and silently exit when it sees
the RTM_DELADDR routing message resulting from the script reassigning
the address to the interface.

This change logs dhclient's reason for exiting and also changes the
10 second timeout to be effective from completion of dhclient-script
rather than from when it was started.

We now ignore RTM_DELADDR and RTM_NEWADDR messages when the message
contains no interface address (which should not happen) rather than
exiting.

Not reviewed by: brooks (timeout)
MFC after: 3 weeks
sbin/dhclient/dhclient.c