#ifndef lint
static char copyright[] =
-"$Id: mdb.c,v 1.62 2001/04/24 01:02:24 mellon Exp $ Copyright (c) 1996-2000 The Internet Software Consortium. All rights reserved.\n";
+"$Id: mdb.c,v 1.63 2001/04/24 01:18:08 mellon Exp $ Copyright (c) 1996-2000 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
if (lease -> on_expiry)
executable_statement_dereference (&lease -> on_expiry, MDL);
- if (lease -> ends > cur_time) {
+ if (lease -> binding_state != FTS_FREE &&
+ lease -> binding_state != FTS_BACKUP &&
+ lease -> binding_state != FTS_RELEASED &&
+ lease -> binding_state != FTS_EXPIRED &&
+ lease -> binding_state != FTS_RESET) {
if (lease -> on_commit)
executable_statement_dereference (&lease -> on_commit,
MDL);
#else
lease -> next_binding_state = FTS_FREE;
#endif
- if (lease -> billing_class)
- unbill_class (&lease -> billing_class, MDL);
supersede_lease (lease, (struct lease *)0, 1, 1, 1);
}
}
if (!lease_copy (<, lease, MDL))
return;
-#if 0
- if (lt -> on_expiry)
- executable_statement_dereference (&lease -> on_expiry, MDL);
- if (lt -> on_release)
- executable_statement_dereference (&lease -> on_release, MDL);
- if (lt -> on_commit)
- executable_statement_dereference (&lease -> on_commit, MDL);
-
- /* Blow away any bindings. */
- if (lt -> scope)
- binding_scope_dereference (< -> scope, MDL);
-#endif
-
lt -> ends = cur_time; /* XXX */
lt -> next_binding_state = FTS_ABANDONED;
lt -> uid = (unsigned char *)0;
lt -> uid_len = 0;
lt -> uid_max = 0;
- if (lt -> billing_class)
- unbill_class (< -> billing_class, MDL);
supersede_lease (lease, lt, 1, 1, 1);
lease_dereference (<, MDL);
}
if (!lease_copy (<, lease, MDL))
return;
-#if 0
- if (lt -> on_expiry)
- executable_statement_dereference (&lease -> on_expiry, MDL);
- if (lt -> on_release)
- executable_statement_dereference (&lease -> on_release, MDL);
- if (lt -> on_commit)
- executable_statement_dereference (&lease -> on_commit, MDL);
-
- /* Blow away any bindings. */
- if (lt -> scope)
- binding_scope_dereference (< -> scope, MDL);
-#endif
-
#if defined (FAILOVER_PROTOCOL)
if (lease -> pool && lease -> pool -> failover_peer) {
lt -> next_binding_state = FTS_RESET;
lt -> uid = (unsigned char *)0;
lt -> uid_len = 0;
lt -> uid_max = 0;
- if (lt -> billing_class)
- unbill_class (< -> billing_class, MDL);
supersede_lease (lease, lt, 1, 1, 1);
lease_dereference (<, MDL);
}