diff options
-rw-r--r-- | RELNOTES | 6 | ||||
-rw-r--r-- | server/confpars.c | 21 | ||||
-rw-r--r-- | server/dhcp.c | 11 |
3 files changed, 27 insertions, 11 deletions
@@ -123,6 +123,12 @@ and for prodding me into improving it. 'address' parameter (the server's local address) did not resolve to an IPv4 address. +- When server is configured with options that it overrides, a warning is + issued when the configuration file is read, rather than at the time the + option is overridden. This was important, because the warning was given + every time the option was overridden, which could create a lot of + unnecessary logging. + - When a failover server suspects it has encountered a peer running a version 3.1.x failover server, a warning that the failover wire protocol is incompatible is printed. diff --git a/server/confpars.c b/server/confpars.c index 97880279..122672a6 100644 --- a/server/confpars.c +++ b/server/confpars.c @@ -34,7 +34,7 @@ #ifndef lint static char copyright[] = -"$Id: confpars.c,v 1.143.2.38 2007/07/11 16:11:28 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n"; +"$Id: confpars.c,v 1.143.2.39 2008/01/22 17:19:30 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -644,6 +644,25 @@ int parse_statement (cfile, group, type, host_decl, declaration) return declaration; } + /* + * If the configuration attempts to define on option + * that we ignore, then warn about it now. + * + * In DHCPv4 we do not use dhcp-renewal-time or + * dhcp-rebinding-time, but we use these in DHCPv6. + * + * XXX: We may want to include a "blacklist" of + * options we ignore in the future, as a table. + */ + if ((option->code == DHO_DHCP_LEASE_TIME) || + (option->code == DHO_DHCP_RENEWAL_TIME) || + (option->code == DHO_DHCP_REBINDING_TIME)) + { + log_error("WARNING: server ignoring option %s " + "in configuration file.", + option->name); + } + finish_option: et = (struct executable_statement *)0; if (!parse_option_statement diff --git a/server/dhcp.c b/server/dhcp.c index 40e4f6b3..9f0c506d 100644 --- a/server/dhcp.c +++ b/server/dhcp.c @@ -34,7 +34,7 @@ #ifndef lint static char copyright[] = -"$Id: dhcp.c,v 1.192.2.70 2008/01/22 17:13:16 dhankins Exp $ Copyright (c) 2004-2007 Internet Systems Consortium. All rights reserved.\n"; +"$Id: dhcp.c,v 1.192.2.71 2008/01/22 17:19:30 dhankins Exp $ Copyright (c) 2004-2007 Internet Systems Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -2471,9 +2471,6 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp) putULong(state->expiry, (u_int32_t)offered_lease_time); i = DHO_DHCP_LEASE_TIME; - if (lookup_option (&dhcp_universe, state -> options, i)) - log_error ("dhcp-lease-time option for %s overridden.", - inet_ntoa (state -> ciaddr)); oc = (struct option_cache *)0; if (option_cache_allocate (&oc, MDL)) { if (make_const_data(&oc->expression, state->expiry, @@ -2489,9 +2486,6 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp) offered_lease_time /= 2; putULong(state->renewal, (u_int32_t)offered_lease_time); i = DHO_DHCP_RENEWAL_TIME; - if (lookup_option (&dhcp_universe, state -> options, i)) - log_error ("overriding dhcp-renewal-time for %s.", - inet_ntoa (state -> ciaddr)); oc = (struct option_cache *)0; if (option_cache_allocate (&oc, MDL)) { if (make_const_data(&oc->expression, state->renewal, @@ -2508,9 +2502,6 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp) + offered_lease_time / 4); putULong(state->rebind, (u_int32_t)offered_lease_time); i = DHO_DHCP_REBINDING_TIME; - if (lookup_option (&dhcp_universe, state -> options, i)) - log_error ("overriding dhcp-rebinding-time for %s.", - inet_ntoa (state -> ciaddr)); oc = (struct option_cache *)0; if (option_cache_allocate (&oc, MDL)) { if (make_const_data(&oc->expression, state->rebind, |