summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Hankins <dhankins@isc.org>2007-09-13 15:28:06 +0000
committerDavid Hankins <dhankins@isc.org>2007-09-13 15:28:06 +0000
commite4957507829b2bb64b2062fd40355c2dcb5770f8 (patch)
tree9f7351c5732b7a912256590cdacd2e8d35ac394d
parentb48719ff1fa95b932ad5d88924db7b056c1d4f4a (diff)
downloadisc-dhcp-e4957507829b2bb64b2062fd40355c2dcb5770f8.tar.gz
- POOLREQ messages received within 30 seconds of one another are ignored.v3_0_4_PBSG1
[ISC-Support #1677] - 'lease imbalance' messages are not logged unless rebalance was actually attempted ("ten percent" rule). [ISC-Support #1677]
-rw-r--r--README12
-rw-r--r--RELNOTES9
-rw-r--r--includes/failover.h1
-rw-r--r--includes/version.h2
-rw-r--r--server/failover.c15
5 files changed, 26 insertions, 13 deletions
diff --git a/README b/README
index c7aa5ac6..8c968566 100644
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
Internet Systems Consortium DHCP Distribution
- Version 3.0.4-PBSG0
- September 22, 2006
+ Version 3.0.4-PBSG1
+ September 13, 2007
README FILE
@@ -96,12 +96,12 @@ system.
RELEASE STATUS
-This is ISC DHCP 3.0.4-PBSG0. 3.0.4 is a maintenance release which
+This is ISC DHCP 3.0.4-PBSG1. 3.0.4 is a maintenance release which
seeks only to fix bugs present in versions 3.0.3 and earlier. No new
features have been added, although you should take careful note of
the RELNOTES discussion on the new 'atsfp' failover value.
-3.0.4-PBSG0 is a custom 3.0.4 release with patches for specific bugs
+3.0.4-PBSG1 is a custom 3.0.4 release with patches for specific bugs
that PBSG has reported to the ISC Support Programme. These changes
are detailed in the RELNOTES.
@@ -146,14 +146,14 @@ information. On Digital Unix, type ``man pfilt''.
To build the DHCP Distribution, unpack the compressed tar file using
the tar utility and the gzip command - type something like:
- zcat dhcp-3.0.4.tar.gz |tar xvf -
+ zcat dhcp-3.0.4-PBSG1.tar.gz |tar xvf -
On BSD/OS, you have to type gzcat, not zcat, and you may run into
similar problems on other operating systems.
CONFIGURING IT
-Now, cd to the dhcp-3.0.4 subdirectory that you've just created and
+Now, cd to the dhcp-3.0.4-PBSG1 subdirectory that you've just created and
configure the source tree by typing:
./configure
diff --git a/RELNOTES b/RELNOTES
index e7c4d4b8..b0d1a9a4 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,6 +1,6 @@
Internet Systems Consortium DHCP Distribution
- Version 3.0.4-PBSG0
- September 22, 2006
+ Version 3.0.4-PBSG1
+ September 13, 2007
Release Notes
@@ -86,6 +86,11 @@ and for prodding me into improving it.
- Failover servers try harder to retransmit binding updates upon entering
NORMAL state.
+- POOLREQ messages received within 30 seconds of one another are ignored.
+
+- 'lease imbalance' messages are not logged unless rebalance was actually
+ attempted ("ten percent" rule).
+
Changes since 3.0.4rc1
- The dhcp-options.5 manpage was updated to correct indentation errors
diff --git a/includes/failover.h b/includes/failover.h
index f4ff7e9e..131b8f16 100644
--- a/includes/failover.h
+++ b/includes/failover.h
@@ -286,6 +286,7 @@ typedef struct _dhcp_failover_state {
TIME last_timestamp_received; /* The last timestamp we sent that
has been returned by our partner. */
TIME skew; /* The skew between our clock and our partner's. */
+ TIME last_POOLREQ;
struct lease *update_queue_head; /* List of leases we haven't sent
to peer. */
struct lease *update_queue_tail;
diff --git a/includes/version.h b/includes/version.h
index d68dbb51..6462faa7 100644
--- a/includes/version.h
+++ b/includes/version.h
@@ -1,3 +1,3 @@
/* Current version of ISC DHCP Distribution. */
-#define DHCP_VERSION "V3.0.4-PBSG0"
+#define DHCP_VERSION "V3.0.4-PBSG1"
diff --git a/server/failover.c b/server/failover.c
index f767d57b..48b8e183 100644
--- a/server/failover.c
+++ b/server/failover.c
@@ -34,7 +34,7 @@
#ifndef lint
static char copyright[] =
-"$Id: failover.c,v 1.53.2.45.14.1 2006/09/22 19:51:25 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
+"$Id: failover.c,v 1.53.2.45.14.2 2007/09/13 15:28:06 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@@ -2194,6 +2194,12 @@ int dhcp_failover_pool_rebalance (dhcp_failover_state_t *state)
if (state -> me.state != normal || state -> i_am == secondary)
return 0;
+ /* Do not respond to POOLREQ messages more than once per 30s per
+ * failover peer.
+ */
+ if ((state->last_POOLREQ + 30) > cur_time)
+ return 0;
+
for (s = shared_networks; s; s = s -> next) {
for (p = s -> pools; p; p = p -> next) {
if (p -> failover_peer != state)
@@ -2258,15 +2264,16 @@ int dhcp_failover_pool_rebalance (dhcp_failover_state_t *state)
if (lp)
lease_dereference (&lp, MDL);
- }
- if (lts > 1) {
- log_info ("lease imbalance - lts = %d", lts);
+ if (lts > 1) {
+ log_info("lease imbalance - lts = %d", lts);
+ }
}
}
}
commit_leases();
dhcp_failover_send_poolresp (state, leases_queued);
dhcp_failover_send_updates (state);
+ state->last_POOLREQ = cur_time;
return leases_queued;
}