#ifndef lint
static char copyright[] =
-"$Id: mdb.c,v 1.17 1999/10/28 15:53:05 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
+"$Id: mdb.c,v 1.18 1999/11/07 20:38:01 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
}
}
- lt = *lease;
- if (lt.ends > cur_time) {
+ if (lease -> ends > cur_time) {
+ lt = *lease;
+
+ /* Events are reference-counted, so we can't just randomly
+ make copies. */
+ lt.on_expiry = 0;
+ lt.on_release = 0;
+ lt.on_commit = 0;
+
lt.ends = cur_time;
lt.billing_class = (struct class *)0;
supersede_lease (lease, <, 1);
lease -> flags |= ABANDONED_LEASE;
lt = *lease;
+
+ /* Events are reference-counted, so we can't just randomly
+ make copies. */
+ lt.on_expiry = 0;
+ lt.on_release = 0;
+ lt.on_commit = 0;
+
lt.ends = cur_time; /* XXX */
log_error ("Abandoning IP address %s: %s",
piaddr (lease -> ip_addr), message);
struct lease lt;
lt = *lease;
+ /* Events are reference-counted, so we can't just randomly
+ make copies. */
+ lt.on_expiry = 0;
+ lt.on_release = 0;
+ lt.on_commit = 0;
+
if (lt.ends > cur_time)
lt.ends = cur_time;
lt.hardware_addr.htype = 0;