summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Lemon <source@isc.org>2001-01-16 23:57:23 +0000
committerTed Lemon <source@isc.org>2001-01-16 23:57:23 +0000
commit174f5ef5543bbd7c0afb5970db9d9543f8ae2a10 (patch)
tree8ccbeb1306c95ea395828600e2f6ecfd931e97ad
parentec64b4626dc5eef477573f0e0f54b94287b21be3 (diff)
downloadisc-dhcp-174f5ef5543bbd7c0afb5970db9d9543f8ae2a10.tar.gz
Add a ping-check parameter. Pass old lease to ddns_updates.
-rw-r--r--server/dhcp.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/server/dhcp.c b/server/dhcp.c
index cd461762..6d566f7a 100644
--- a/server/dhcp.c
+++ b/server/dhcp.c
@@ -43,7 +43,7 @@
#ifndef lint
static char copyright[] =
-"$Id: dhcp.c,v 1.176 2001/01/08 08:23:21 mellon Exp $ Copyright (c) 1995-2000 The Internet Software Consortium. All rights reserved.\n";
+"$Id: dhcp.c,v 1.177 2001/01/16 23:57:23 mellon Exp $ Copyright (c) 1995-2000 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@@ -1341,6 +1341,7 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp)
struct expression *expr;
int status;
isc_result_t result;
+ int did_ping = 0;
unsigned i, j;
int s1, s2;
@@ -2026,7 +2027,7 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp)
packet -> options,
state -> options,
&lt -> scope, oc, MDL))) {
- ddns_updates (packet, lt, state);
+ ddns_updates (packet, lt, lease, state);
}
#endif /* NSUPDATE */
@@ -2413,7 +2414,14 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp)
/* If this is a DHCPOFFER, ping the lease address before actually
sending the offer. */
if (offer == DHCPOFFER && !(lease -> flags & STATIC_LEASE) &&
- cur_time - lease -> timestamp > 60) {
+ cur_time - lease -> timestamp > 60 &&
+ (!(oc = lookup_option (&server_universe, state -> options,
+ SV_PING_CHECKS)) ||
+ evaluate_boolean_option_cache (&ignorep, packet, lease,
+ (struct client_state *)0,
+ packet -> options,
+ state -> options,
+ &lease -> scope, oc, MDL))) {
lease -> timestamp = cur_time;
icmp_echorequest (&lease -> ip_addr);
add_timeout (cur_time + 1, lease_ping_timeout, lease,