- Encapsulated option spaces within encapsulated option spaces is now
formally supported.
+ Changes since 3.0.5rc1
+
+- A bug was repaired in fixes to the dhclient, which sought to run the
+ dhclient-script with the 'EXPIRE' state should it receive a NAK in
+ response to a REQUEST. The client now iterates the PREINIT state
+ after the EXPIRE state, so that interfaces that might be configured
+ 'down' can be brought back 'up' and initialized.
+
Changes since 3.0.4
- A warning that host statements declared within subnet or shared-network
#ifndef lint
static char ocopyright[] =
-"$Id: dhclient.c,v 1.143 2006/08/09 14:57:47 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
+"$Id: dhclient.c,v 1.144 2006/08/22 15:01:47 shane Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
/* Stop sending DHCPREQUEST packets... */
cancel_timeout (send_request, client);
+ /* On some scripts, 'EXPIRE' causes the interface to be ifconfig'd
+ * down (this expunges any routes and arp cache). This makes the
+ * interface unusable by state_init(), which we call next. So, we
+ * need to 'PREINIT' the interface to bring it back up.
+ */
+ script_init(client, "PREINIT", NULL);
+ if (client->alias)
+ script_write_params(client, "alias_", client->alias);
+ script_go(client);
+
client -> state = S_INIT;
state_init (client);
}