From: Ted Lemon Date: Wed, 5 Jul 2000 07:32:13 +0000 (+0000) Subject: - Give the lease a binding state if it doesn't have one. X-Git-Tag: V3-BETA-2-PATCH-1~103 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8afe078753834f14529443e60aa1933ca8fd7c2d;p=thirdparty%2Fdhcp.git - Give the lease a binding state if it doesn't have one. - Don't dereference events from parsed lease, since that lease is now kept. --- diff --git a/server/confpars.c b/server/confpars.c index 503b570fb..356cc6a75 100644 --- a/server/confpars.c +++ b/server/confpars.c @@ -43,7 +43,7 @@ #ifndef lint static char copyright[] = -"$Id: confpars.c,v 1.117 2000/06/12 20:14:16 mellon Exp $ Copyright (c) 1995-2000 The Internet Software Consortium. All rights reserved.\n"; +"$Id: confpars.c,v 1.118 2000/07/05 07:32:13 mellon Exp $ Copyright (c) 1995-2000 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -137,15 +137,6 @@ isc_result_t read_leases () struct lease *lease = (struct lease *)0; if (parse_lease_declaration (&lease, cfile)) { enter_lease (lease); - if (lease -> on_expiry) - executable_statement_dereference - (&lease -> on_expiry, MDL); - if (lease -> on_commit) - executable_statement_dereference - (&lease -> on_commit, MDL); - if (lease -> on_release) - executable_statement_dereference - (&lease -> on_release, MDL); lease_dereference (&lease, MDL); } else parse_warn (cfile, @@ -2690,6 +2681,16 @@ int parse_lease_declaration (struct lease **lp, struct parse *cfile) seenmask |= seenbit; } while (1); + + /* If no binding state is specified, make one up. */ + if (!(seenmask & 256)) { + if (lease -> ends > cur_time) + lease -> binding_state = FTS_ACTIVE; + else + lease -> binding_state = FTS_FREE; + lease -> next_binding_state = lease -> binding_state; + } + lease_reference (lp, lease, MDL); lease_dereference (&lease, MDL); return 1;