summaryrefslogtreecommitdiff
path: root/server/failover.c
diff options
context:
space:
mode:
authorShawn Routhier <sar@isc.org>2014-12-10 19:08:05 -0800
committerShawn Routhier <sar@isc.org>2014-12-10 19:08:05 -0800
commit491bf4a27f8db37afec66bfac9e53b5b566351b7 (patch)
tree7dec277c4d57260fa8356eb5f02e2e5cb405e508 /server/failover.c
parent433927d38e2fa7b467fc0637b81933c48f186419 (diff)
downloadisc-dhcp-491bf4a27f8db37afec66bfac9e53b5b566351b7.tar.gz
[master] Don't call pool_timer recusively
Add a flag to avoid supersede_lease calling pool_timer recursively when pool_timer can't handle that. rt38002
Diffstat (limited to 'server/failover.c')
-rw-r--r--server/failover.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/server/failover.c b/server/failover.c
index e6d9fdd6..2486a735 100644
--- a/server/failover.c
+++ b/server/failover.c
@@ -2602,7 +2602,7 @@ dhcp_failover_pool_dobalance(dhcp_failover_state_t *state,
lp->tstp = cur_time;
lp->starts = cur_time;
- if (!supersede_lease(lp, NULL, 0, 1, 0) ||
+ if (!supersede_lease(lp, NULL, 0, 1, 0, 0) ||
!write_lease(lp))
log_error("can't commit lease %s on "
"giveaway", piaddr(lp->ip_addr));
@@ -5412,7 +5412,7 @@ isc_result_t dhcp_failover_process_bind_update (dhcp_failover_state_t *state,
lease->rewind_binding_state = lt->next_binding_state;
/* Try to install the new information. */
- if (!supersede_lease (lease, lt, 0, 0, 0) ||
+ if (!supersede_lease (lease, lt, 0, 0, 0, 0) ||
!write_lease (lease)) {
message = "database update failed";
bad:
@@ -5430,7 +5430,7 @@ isc_result_t dhcp_failover_process_bind_update (dhcp_failover_state_t *state,
lease->tstp = cur_time;
lease->starts = cur_time;
- if (!supersede_lease(lease, NULL, 0, 1, 0) ||
+ if (!supersede_lease(lease, NULL, 0, 1, 0, 0) ||
!write_lease(lease))
log_error("can't commit lease %s for mac addr "
"affinity", piaddr(lease->ip_addr));
@@ -5557,7 +5557,7 @@ isc_result_t dhcp_failover_process_bind_ack (dhcp_failover_state_t *state,
/* The peer will have made this state change, so set rewind. */
lease->rewind_binding_state = lease->next_binding_state;
- supersede_lease(lease, (struct lease *)0, 0, 0, 0);
+ supersede_lease(lease, NULL, 0, 0, 0, 0);
write_lease(lease);
/* Lease has returned to FREE state from the
@@ -5582,8 +5582,7 @@ isc_result_t dhcp_failover_process_bind_ack (dhcp_failover_state_t *state,
if (lease->desired_binding_state != lease->binding_state) {
lease->next_binding_state =
lease->desired_binding_state;
- supersede_lease(lease,
- (struct lease *)0, 0, 0, 0);
+ supersede_lease(lease, NULL, 0, 0, 0, 0);
}
write_lease(lease);
/* Commit the lease only after a two-second timeout,
@@ -5613,7 +5612,7 @@ isc_result_t dhcp_failover_process_bind_ack (dhcp_failover_state_t *state,
lease->next_binding_state = FTS_BACKUP;
lease->tstp = lease->starts = cur_time;
- if (!supersede_lease(lease, NULL, 0, 1, 0) ||
+ if (!supersede_lease(lease, NULL, 0, 1, 0, 0) ||
!write_lease(lease))
log_error("can't commit lease %s for "
"client affinity", piaddr(lease->ip_addr));