summaryrefslogtreecommitdiff
path: root/server/failover.c
diff options
context:
space:
mode:
authorDavid Hankins <dhankins@isc.org>2009-05-20 23:58:53 +0000
committerDavid Hankins <dhankins@isc.org>2009-05-20 23:58:53 +0000
commit350576c5d44ddfd9b08dadfe41f4015a9593d170 (patch)
treebe868951498339bb64f53c299bf7b09538db31d1 /server/failover.c
parent53883ced69aa6e1dd16076f09de7dd1fd0d610c7 (diff)
downloadisc-dhcp-350576c5d44ddfd9b08dadfe41f4015a9593d170.tar.gz
- Fixed a bug where an OMAPI socket disconnection message would not result
in scheduling a failover reconnection, if the link had not negotiated a failover connect yet (e.g.: connection refused, asynch socket connect() timeouts). [ISC-Bugs #19684]
Diffstat (limited to 'server/failover.c')
-rw-r--r--server/failover.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/server/failover.c b/server/failover.c
index 462655ca..773f1e7a 100644
--- a/server/failover.c
+++ b/server/failover.c
@@ -328,22 +328,19 @@ isc_result_t dhcp_failover_link_signal (omapi_object_t *h,
link -> state = dhcp_flink_disconnected;
/* Make the transition. */
- if (state -> link_to_peer == link) {
- dhcp_failover_state_transition (link -> state_object,
- name);
+ if (state->link_to_peer == link)
+ dhcp_failover_state_transition(link->state_object, name);
- /* Start trying to reconnect. */
+ /* Schedule an attempt to reconnect. */
#if defined (DEBUG_FAILOVER_TIMING)
- log_info ("add_timeout +5 %s",
- "dhcp_failover_reconnect");
+ log_info("add_timeout +5 dhcp_failover_reconnect");
#endif
- tv . tv_sec = cur_time + 5;
- tv . tv_usec = 0;
- add_timeout (&tv, dhcp_failover_reconnect,
- state,
- (tvref_t)dhcp_failover_state_reference,
- (tvunref_t)dhcp_failover_state_dereference);
- }
+ tv.tv_sec = cur_time + 5;
+ tv.tv_usec = cur_tv.tv_usec;
+ add_timeout(&tv, dhcp_failover_reconnect, state,
+ (tvref_t)dhcp_failover_state_reference,
+ (tvunref_t)dhcp_failover_state_dereference);
+
dhcp_failover_state_dereference (&state, MDL);
}
return ISC_R_SUCCESS;