From: Ted Lemon Date: Thu, 6 Mar 1997 22:20:17 +0000 (+0000) Subject: If a lease is abandoned, write it out even though it doesn't appear to be assigned... X-Git-Tag: DHCP-970328~32 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7a08716481c9eaa548eb8de4fb76b8b91eb67278;p=thirdparty%2Fdhcp.git If a lease is abandoned, write it out even though it doesn't appear to be assigned. When abandoning a lease, set hardware type to zero, not -1 --- diff --git a/common/memory.c b/common/memory.c index ac6d9c45d..2e094deb4 100644 --- a/common/memory.c +++ b/common/memory.c @@ -42,7 +42,7 @@ #ifndef lint static char copyright[] = -"$Id: memory.c,v 1.29 1997/03/06 20:21:32 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n"; +"$Id: memory.c,v 1.30 1997/03/06 22:20:17 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -639,7 +639,7 @@ void abandon_lease (lease, message) lt.ends = 0xFFFFFFFF; warn ("Abandoning IP address %s: %s", piaddr (lease -> ip_addr), message); - lt.hardware_addr.htype = -1; + lt.hardware_addr.htype = 0; lt.hardware_addr.hlen = 0; lt.uid = (unsigned char *)0; lt.uid_len = 0; @@ -872,7 +872,9 @@ void write_leases () for (s = shared_networks; s; s = s -> next) { for (l = s -> leases; l; l = l -> next) { - if (l -> hardware_addr.hlen || l -> uid_len) + if (l -> hardware_addr.hlen || + l -> uid_len || + (l -> flags & ABANDONED_LEASE)) if (!write_lease (l)) error ("Can't rewrite lease database"); }