- We can get there from any state if a link state change happens.
Fixes a problem where we'd continue to send (corrupted) discover
packets after binding.
Taken-from: OpenBSD
-/* $OpenBSD: src/sbin/dhclient/dhclient.c,v 1.142 2011/12/10 15:55:43 krw Exp $ */
+/* $OpenBSD: src/sbin/dhclient/dhclient.c,v 1.143 2012/06/20 21:53:51 kettenis Exp $ */
/*
* Copyright 2004 Henning Brauer <henning@openbsd.org>
/*
* Copyright 2004 Henning Brauer <henning@openbsd.org>
void
state_reboot(void)
{
void
state_reboot(void)
{
+ /* Cancel all timeouts, since a link state change gets us here
+ and can happen anytime. */
+ cancel_timeout(state_init);
+ cancel_timeout(state_selecting);
+ cancel_timeout(state_bound);
+ cancel_timeout(send_discover);
+ cancel_timeout(send_request);
+
/* If we don't remember an active lease, go straight to INIT. */
if (!client->active || client->active->is_bootp) {
state_init();
/* If we don't remember an active lease, go straight to INIT. */
if (!client->active || client->active->is_bootp) {
state_init();