From e8e2944f45eab3e22dc46ceac3225a886ca468ad Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Sun, 17 Oct 2010 09:54:12 +0200 Subject: ZMQ_RECONNECT_IVL socket options added. Signed-off-by: Martin Sustrik --- src/options.cpp | 59 +++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 18 deletions(-) (limited to 'src/options.cpp') diff --git a/src/options.cpp b/src/options.cpp index c9e330f..5e92e74 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -35,6 +35,7 @@ zmq::options_t::options_t () : rcvbuf (0), type (-1), linger (-1), + reconnect_ivl (100), requires_in (false), requires_out (false), immediate_connect (true) @@ -137,6 +138,18 @@ int zmq::options_t::setsockopt (int option_, const void *optval_, } linger = *((int*) optval_); return 0; + + case ZMQ_RECONNECT_IVL: + if (optvallen_ != sizeof (int)) { + errno = EINVAL; + return -1; + } + if (*((int*) optval_) < 0) { + errno = EINVAL; + return -1; + } + reconnect_ivl = *((int*) optval_); + return 0; } errno = EINVAL; @@ -147,24 +160,6 @@ int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_) { switch (option_) { - case ZMQ_LINGER: - if (*optvallen_ < sizeof (int)) { - errno = EINVAL; - return -1; - } - *((int*) optval_) = linger; - *optvallen_ = sizeof (int); - return 0; - - case ZMQ_TYPE: - if (*optvallen_ < sizeof (int)) { - errno = EINVAL; - return -1; - } - *((int*) optval_) = type; - *optvallen_ = sizeof (int); - return 0; - case ZMQ_HWM: if (*optvallen_ < sizeof (uint64_t)) { errno = EINVAL; @@ -246,6 +241,34 @@ int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_) *((uint64_t*) optval_) = rcvbuf; *optvallen_ = sizeof (uint64_t); return 0; + + case ZMQ_TYPE: + if (*optvallen_ < sizeof (int)) { + errno = EINVAL; + return -1; + } + *((int*) optval_) = type; + *optvallen_ = sizeof (int); + return 0; + + case ZMQ_LINGER: + if (*optvallen_ < sizeof (int)) { + errno = EINVAL; + return -1; + } + *((int*) optval_) = linger; + *optvallen_ = sizeof (int); + return 0; + + case ZMQ_RECONNECT_IVL: + if (*optvallen_ < sizeof (int)) { + errno = EINVAL; + return -1; + } + *((int*) optval_) = reconnect_ivl; + *optvallen_ = sizeof (int); + return 0; + } errno = EINVAL; -- cgit v1.2.3