From: Ted Lemon Date: Wed, 8 Sep 1999 01:47:46 +0000 (+0000) Subject: Support 'never' as a possible lease expiry time. X-Git-Tag: V3-BETA-1-PATCH-2~5^2~122 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=be1ee858dbb2093b77ff693e1038537709be918f;p=thirdparty%2Fdhcp.git Support 'never' as a possible lease expiry time. --- diff --git a/common/conflex.c b/common/conflex.c index 34857e0ff..e504a50ca 100644 --- a/common/conflex.c +++ b/common/conflex.c @@ -22,7 +22,7 @@ #ifndef lint static char copyright[] = -"$Id: conflex.c,v 1.52 1999/08/01 14:26:48 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n"; +"$Id: conflex.c,v 1.53 1999/09/08 01:45:34 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -495,6 +495,8 @@ static enum dhcp_token intern (atom, dfv) case 'i': if (!strcasecmp (atom + 1, "nteger")) return INTEGER; + if (!strcasecmp (atom + 1, "nfinite")) + return INFINITE; if (!strcasecmp (atom + 1, "p-address")) return IP_ADDRESS; if (!strcasecmp (atom + 1, "nitial-interval")) @@ -557,6 +559,8 @@ static enum dhcp_token intern (atom, dfv) return NAMESERVER; if (!strcasecmp (atom + 1, "etmask")) return NETMASK; + if (!strcasecmp (atom + 1, "ever")) + return NEVER; if (!strcasecmp (atom + 1, "ext-server")) return NEXT_SERVER; if (!strcasecmp (atom + 1, "ot")) diff --git a/common/parse.c b/common/parse.c index 20806fd70..d43c41904 100644 --- a/common/parse.c +++ b/common/parse.c @@ -22,7 +22,7 @@ #ifndef lint static char copyright[] = -"$Id: parse.c,v 1.36 1999/08/01 14:26:49 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n"; +"$Id: parse.c,v 1.37 1999/09/08 01:45:29 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -536,6 +536,7 @@ void convert_num (buf, str, base, size) * NUMBER COLON NUMBER COLON NUMBER SEMI | * NUMBER NUMBER SLASH NUMBER SLASH NUMBER * NUMBER COLON NUMBER COLON NUMBER NUMBER SEMI | + * NEVER * * Dates are stored in GMT or with a timezone offset; first number is day * of week; next is year/month/day; next is hours:minutes:seconds on a @@ -554,8 +555,14 @@ TIME parse_date (cfile) static int months [11] = { 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; - /* Day of week... */ + /* Day of week, or "never"... */ token = next_token (&val, cfile); + if (token == NEVER) { + if (!parse_semi (cfile)) + return 0; + return MAX_TIME; + } + if (token != NUMBER) { parse_warn ("numeric day of week expected."); if (token != SEMI) diff --git a/includes/dhctoken.h b/includes/dhctoken.h index fd7820ad5..8927d7cdf 100644 --- a/includes/dhctoken.h +++ b/includes/dhctoken.h @@ -194,6 +194,8 @@ enum dhcp_token { DNS_UPDATE = 412, LEASE_TIME = 413, STATIC = 414, + NEVER = 415, + INFINITE = 416, }; #define is_identifier(x) ((x) >= FIRST_TOKEN && \