diff options
author | Shawn Routhier <sar@isc.org> | 2014-11-10 19:22:24 -0800 |
---|---|---|
committer | Shawn Routhier <sar@isc.org> | 2014-11-10 19:22:24 -0800 |
commit | f021767012e5aa4f4e356fa615e8d5e6951e6d83 (patch) | |
tree | 7e62979310049484cdaf2c0e2c477b342442c67a /includes | |
parent | a54bc0dad9cc5fddd338132d366ab95201dbbeed (diff) | |
download | isc-dhcp-f021767012e5aa4f4e356fa615e8d5e6951e6d83.tar.gz |
[v4_1_esv] Patch the failover code to avoid deadlocks
Patch for 36810 & 20352
This coves several related problems
1) When the primary is in conflict done it allows the secondary to
transition around resolution interrupted and potentical conflict previously
the primary would die on an illegal state.
2) It allows the servers to restart a bind update request. Previously if
one of the servers sent an udpate request and there died (or had the communications
interrupted) in some states the first server wouldn't retransmit a new
update request and the other server wouldn't send any bind updates. This
was noticed in potential conflict.
3) Updated the state transitions to move the leases on the ack queue
back to the update queue in case of conflict-done as we might need to
retransmit them all.
4) Updated a transition from startup to potentical conflict instead
of resolution interrupted when the servers reconnect during the startup
phase in order to avoid a diffferent dead lock.
Diffstat (limited to 'includes')
-rw-r--r-- | includes/dhcpd.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/includes/dhcpd.h b/includes/dhcpd.h index 73bcbb96..8b8b74bf 100644 --- a/includes/dhcpd.h +++ b/includes/dhcpd.h @@ -3152,6 +3152,7 @@ isc_result_t dhcp_failover_state_signal (omapi_object_t *, isc_result_t dhcp_failover_state_transition (dhcp_failover_state_t *, const char *); isc_result_t dhcp_failover_set_service_state (dhcp_failover_state_t *state); +void dhcp_failover_rescind_updates (dhcp_failover_state_t *); isc_result_t dhcp_failover_set_state (dhcp_failover_state_t *, enum failover_state); isc_result_t dhcp_failover_peer_state_changed (dhcp_failover_state_t *, |