Commit c0ca2be6 authored by KIU Shueng Chuan's avatar KIU Shueng Chuan

add ZMQ_CONNECT_TIMEOUT socket option

parent 4a0bde81
...@@ -320,6 +320,7 @@ ZMQ_EXPORT uint32_t zmq_msg_get_routing_id(zmq_msg_t *msg); ...@@ -320,6 +320,7 @@ ZMQ_EXPORT uint32_t zmq_msg_get_routing_id(zmq_msg_t *msg);
#define ZMQ_HEARTBEAT_TTL 76 #define ZMQ_HEARTBEAT_TTL 76
#define ZMQ_HEARTBEAT_TIMEOUT 77 #define ZMQ_HEARTBEAT_TIMEOUT 77
#define ZMQ_XPUB_VERBOSE_UNSUBSCRIBE 78 #define ZMQ_XPUB_VERBOSE_UNSUBSCRIBE 78
#define ZMQ_CONNECT_TIMEOUT 79
/* Message options */ /* Message options */
#define ZMQ_MORE 1 #define ZMQ_MORE 1
......
...@@ -46,6 +46,7 @@ zmq::options_t::options_t () : ...@@ -46,6 +46,7 @@ zmq::options_t::options_t () :
tos (0), tos (0),
type (-1), type (-1),
linger (-1), linger (-1),
connect_timeout (0),
reconnect_ivl (100), reconnect_ivl (100),
reconnect_ivl_max (0), reconnect_ivl_max (0),
backlog (100), backlog (100),
...@@ -158,6 +159,13 @@ int zmq::options_t::setsockopt (int option_, const void *optval_, ...@@ -158,6 +159,13 @@ int zmq::options_t::setsockopt (int option_, const void *optval_,
} }
break; break;
case ZMQ_CONNECT_TIMEOUT:
if (is_int && value >= 0) {
connect_timeout = value;
return 0;
}
break;
case ZMQ_RECONNECT_IVL: case ZMQ_RECONNECT_IVL:
if (is_int && value >= -1) { if (is_int && value >= -1) {
reconnect_ivl = value; reconnect_ivl = value;
...@@ -653,6 +661,13 @@ int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_) ...@@ -653,6 +661,13 @@ int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_)
} }
break; break;
case ZMQ_CONNECT_TIMEOUT:
if (is_int) {
*value = connect_timeout;
return 0;
}
break;
case ZMQ_RECONNECT_IVL: case ZMQ_RECONNECT_IVL:
if (is_int) { if (is_int) {
*value = reconnect_ivl; *value = reconnect_ivl;
......
...@@ -92,6 +92,11 @@ namespace zmq ...@@ -92,6 +92,11 @@ namespace zmq
// Linger time, in milliseconds. // Linger time, in milliseconds.
int linger; int linger;
// Maximum interval in milliseconds beyond which userspace will
// timeout connect().
// Default 0 (unused)
int connect_timeout;
// Minimum interval between attempts to reconnect, in milliseconds. // Minimum interval between attempts to reconnect, in milliseconds.
// Default 100ms // Default 100ms
int reconnect_ivl; int 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