summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Hankins <dhankins@isc.org>2006-09-22 19:51:25 +0000
committerDavid Hankins <dhankins@isc.org>2006-09-22 19:51:25 +0000
commitb48719ff1fa95b932ad5d88924db7b056c1d4f4a (patch)
tree122f453192840a0fc690a370bbf55727b30f79c1
parentf1ba9f08b7d614cd72d155f5dc5d3a484069146f (diff)
downloadisc-dhcp-b48719ff1fa95b932ad5d88924db7b056c1d4f4a.tar.gz
Pulling up rt16412b.v3_0_4_PBSG0
-rw-r--r--README16
-rw-r--r--RELNOTES9
-rw-r--r--includes/version.h2
-rw-r--r--server/failover.c23
4 files changed, 35 insertions, 15 deletions
diff --git a/README b/README
index c9a5e2a2..c7aa5ac6 100644
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
Internet Systems Consortium DHCP Distribution
- Version 3.0.4
- April 27, 2006
+ Version 3.0.4-PBSG0
+ September 22, 2006
README FILE
@@ -96,10 +96,14 @@ system.
RELEASE STATUS
-This is ISC DHCP 3.0.4. This 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.
+This is ISC DHCP 3.0.4-PBSG0. 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
+that PBSG has reported to the ISC Support Programme. These changes
+are detailed in the RELNOTES.
In this release, the server and relay agent are currently fully
functional on NetBSD, Linux systems with kernel version 2.2 or later,
diff --git a/RELNOTES b/RELNOTES
index 2dd19570..e7c4d4b8 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,6 +1,6 @@
Internet Systems Consortium DHCP Distribution
- Version 3.0.4
- April 27, 2006
+ Version 3.0.4-PBSG0
+ September 22, 2006
Release Notes
@@ -81,6 +81,11 @@ thanks to all of these good people here, both for working on the code
and for prodding me into improving it.
+ Changes since 3.0.4 (Custom Changes)
+
+- Failover servers try harder to retransmit binding updates upon entering
+ NORMAL state.
+
Changes since 3.0.4rc1
- The dhcp-options.5 manpage was updated to correct indentation errors
diff --git a/includes/version.h b/includes/version.h
index e313595c..d68dbb51 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"
+#define DHCP_VERSION "V3.0.4-PBSG0"
diff --git a/server/failover.c b/server/failover.c
index 2e907f4f..f767d57b 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 2006/02/22 22:43:27 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
+"$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";
#endif /* not lint */
#include "dhcpd.h"
@@ -1731,15 +1731,27 @@ isc_result_t dhcp_failover_set_state (dhcp_failover_state_t *state,
switch (new_state) {
case normal:
+ /* Section 9.6.1 of the failover draft revision 7 indicates
+ * that servers 'will send to the other server all currently
+ * unacknowledged binding updates as BNDUPD messages.'. This
+ * function call below basically resets our update queue.
+ */
+ dhcp_failover_generate_update_queue(state, 0);
+
+ if (state->update_queue_tail != NULL) {
+ dhcp_failover_send_updates(state);
+ log_info("Sending updates to %s.", state->name);
+ }
+
if (state -> partner.state == normal)
dhcp_failover_state_pool_check (state);
break;
-
+
case potential_conflict:
if (state -> i_am == primary)
dhcp_failover_send_update_request (state);
break;
-
+
case startup:
#if defined (DEBUG_FAILOVER_TIMING)
log_info ("add_timeout +15 %s",
@@ -1752,7 +1764,7 @@ isc_result_t dhcp_failover_set_state (dhcp_failover_state_t *state,
(tvunref_t)
omapi_object_dereference);
break;
-
+
/* If we come back in recover_wait and there's still waiting
to do, set a timeout. */
case recover_wait:
@@ -1772,7 +1784,7 @@ isc_result_t dhcp_failover_set_state (dhcp_failover_state_t *state,
} else
dhcp_failover_recover_done (state);
break;
-
+
case recover:
if (state -> link_to_peer)
dhcp_failover_send_update_request_all (state);
@@ -1805,7 +1817,6 @@ isc_result_t dhcp_failover_set_state (dhcp_failover_state_t *state,
}
}
break;
-
default:
break;