From 03b1a5b47dff98f9bd6bf6e5369b55d822fb8675 Mon Sep 17 00:00:00 2001 From: Antonio Huete Jimenez Date: Wed, 1 Aug 2012 21:06:34 +0200 Subject: [PATCH] dhclient - Lets state_panic() check the rest of valid leases. Taken-from: OpenBSD --- sbin/dhclient/dhclient.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sbin/dhclient/dhclient.c b/sbin/dhclient/dhclient.c index a5d8d9f8ac..ff7e5b0528 100644 --- a/sbin/dhclient/dhclient.c +++ b/sbin/dhclient/dhclient.c @@ -1,4 +1,4 @@ -/* $OpenBSD: src/sbin/dhclient/dhclient.c,v 1.129 2009/06/06 04:02:42 krw Exp $ */ +/* $OpenBSD: src/sbin/dhclient/dhclient.c,v 1.130 2009/06/12 20:07:35 stevesk Exp $ */ /* * Copyright 2004 Henning Brauer @@ -197,7 +197,10 @@ routehandler(void) if (addr_eq(a, defaddr)) break; - for (l = client->active; l != NULL; l = l->next) + /* state_panic() can try unexpired existing leases */ + if (client->active && addr_eq(a, client->active->address)) + break; + for (l = client->leases; l != NULL; l = l->next) if (addr_eq(a, l->address)) break; @@ -215,6 +218,7 @@ routehandler(void) break; if (findproto((char *)(ifam + 1), ifam->ifam_addrs) != AF_INET) break; + /* XXX check addrs like RTM_NEWADDR instead of this? */ if (scripttime == 0 || t < scripttime + 10) break; errmsg = "interface address deleted"; -- 2.41.0