Commit 0867c380 authored by ehilscher's avatar ehilscher Committed by Luca Boccassi

Problem: connecter classes do not handle ZMQ_RECONNECT_IVL of -1 (#3163)

* Problem: connecter classes do not handle ZMQ_RECONNECT_IVL of -1

Solution: Add guards to prevent a reconnect timer from starting if ZMQ_RECONNECT_IVL is -1
(Issue 3158)
parent 3a1e8f07
...@@ -176,10 +176,12 @@ void zmq::ipc_connecter_t::start_connecting () ...@@ -176,10 +176,12 @@ void zmq::ipc_connecter_t::start_connecting ()
void zmq::ipc_connecter_t::add_reconnect_timer () void zmq::ipc_connecter_t::add_reconnect_timer ()
{ {
int rc_ivl = get_new_reconnect_ivl (); if (options.reconnect_ivl != -1) {
add_timer (rc_ivl, reconnect_timer_id); int rc_ivl = get_new_reconnect_ivl ();
socket->event_connect_retried (endpoint, rc_ivl); add_timer (rc_ivl, reconnect_timer_id);
timer_started = true; socket->event_connect_retried (endpoint, rc_ivl);
timer_started = true;
}
} }
int zmq::ipc_connecter_t::get_new_reconnect_ivl () int zmq::ipc_connecter_t::get_new_reconnect_ivl ()
......
...@@ -268,10 +268,12 @@ void zmq::socks_connecter_t::error () ...@@ -268,10 +268,12 @@ void zmq::socks_connecter_t::error ()
void zmq::socks_connecter_t::start_timer () void zmq::socks_connecter_t::start_timer ()
{ {
const int interval = get_new_reconnect_ivl (); if (options.reconnect_ivl != -1) {
add_timer (interval, reconnect_timer_id); const int interval = get_new_reconnect_ivl ();
_status = waiting_for_reconnect_time; add_timer (interval, reconnect_timer_id);
_socket->event_connect_retried (_endpoint, interval); _status = waiting_for_reconnect_time;
_socket->event_connect_retried (_endpoint, interval);
}
} }
int zmq::socks_connecter_t::get_new_reconnect_ivl () int zmq::socks_connecter_t::get_new_reconnect_ivl ()
......
...@@ -226,10 +226,12 @@ void zmq::tcp_connecter_t::add_connect_timer () ...@@ -226,10 +226,12 @@ void zmq::tcp_connecter_t::add_connect_timer ()
void zmq::tcp_connecter_t::add_reconnect_timer () void zmq::tcp_connecter_t::add_reconnect_timer ()
{ {
const int interval = get_new_reconnect_ivl (); if (options.reconnect_ivl != -1) {
add_timer (interval, reconnect_timer_id); const int interval = get_new_reconnect_ivl ();
_socket->event_connect_retried (_endpoint, interval); add_timer (interval, reconnect_timer_id);
_reconnect_timer_started = true; _socket->event_connect_retried (_endpoint, interval);
_reconnect_timer_started = true;
}
} }
int zmq::tcp_connecter_t::get_new_reconnect_ivl () int zmq::tcp_connecter_t::get_new_reconnect_ivl ()
......
...@@ -178,10 +178,12 @@ void zmq::tipc_connecter_t::start_connecting () ...@@ -178,10 +178,12 @@ void zmq::tipc_connecter_t::start_connecting ()
void zmq::tipc_connecter_t::add_reconnect_timer () void zmq::tipc_connecter_t::add_reconnect_timer ()
{ {
int rc_ivl = get_new_reconnect_ivl (); if (options.reconnect_ivl != -1) {
add_timer (rc_ivl, reconnect_timer_id); int rc_ivl = get_new_reconnect_ivl ();
socket->event_connect_retried (endpoint, rc_ivl); add_timer (rc_ivl, reconnect_timer_id);
timer_started = true; socket->event_connect_retried (endpoint, rc_ivl);
timer_started = true;
}
} }
int zmq::tipc_connecter_t::get_new_reconnect_ivl () int zmq::tipc_connecter_t::get_new_reconnect_ivl ()
......
...@@ -178,10 +178,12 @@ void zmq::vmci_connecter_t::start_connecting () ...@@ -178,10 +178,12 @@ void zmq::vmci_connecter_t::start_connecting ()
void zmq::vmci_connecter_t::add_reconnect_timer () void zmq::vmci_connecter_t::add_reconnect_timer ()
{ {
int rc_ivl = get_new_reconnect_ivl (); if (options.reconnect_ivl != -1) {
add_timer (rc_ivl, reconnect_timer_id); int rc_ivl = get_new_reconnect_ivl ();
socket->event_connect_retried (endpoint, rc_ivl); add_timer (rc_ivl, reconnect_timer_id);
timer_started = true; socket->event_connect_retried (endpoint, rc_ivl);
timer_started = true;
}
} }
int zmq::vmci_connecter_t::get_new_reconnect_ivl () int zmq::vmci_connecter_t::get_new_reconnect_ivl ()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment