Fix dhclient to properly exit and teardown the configured lease when

link is lost.  devd will start a new dhclient instance when link is
restored.

PR:		bin/166656
Submitted by:	Peter Jeremy (mostly)
Reviewed by:	brooks (earlier version from Peter)
MFC after:	1 month
This commit is contained in:
jhb 2012-08-17 15:53:43 +00:00
parent d521b77bda
commit 5acd808491

View File

@ -278,6 +278,11 @@ routehandler(struct protocol *p)
ifi->name);
goto die;
}
if (!interface_link_status(ifi->name)) {
warning("Interface %s is down, dhclient exiting",
ifi->name);
goto die;
}
break;
case RTM_IFANNOUNCE:
ifan = (struct if_announcemsghdr *)rtm;
@ -316,6 +321,8 @@ routehandler(struct protocol *p)
die:
script_init("FAIL", NULL);
if (ifi->client->active)
script_write_params("old_", ifi->client->active);
if (ifi->client->alias)
script_write_params("alias_", ifi->client->alias);
script_go();