Fail ZMQ_SNDHWM and ZMQ_RCVHWM setsockopt if already connected.

This commit is contained in:
Richard Newton
2015-06-05 10:43:40 +01:00
parent 64e711eb50
commit 9f8b8af926
5 changed files with 70 additions and 8 deletions

View File

@@ -68,7 +68,8 @@ zmq::options_t::options_t () :
gss_plaintext (false),
socket_id (0),
conflate (false),
handshake_ivl (30000)
handshake_ivl (30000),
connected (false)
{
}
@@ -539,7 +540,7 @@ int zmq::options_t::setsockopt (int option_, const void *optval_,
return -1;
}
int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_)
int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_) const
{
bool is_int = (*optvallen_ == sizeof (int));
int *value = (int *) optval_;
@@ -884,3 +885,21 @@ int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_)
errno = EINVAL;
return -1;
}
bool zmq::options_t::is_valid (int option_) const
{
bool valid = true;
if (connected) {
switch (option_) {
case ZMQ_SNDHWM:
case ZMQ_RCVHWM:
valid = false;
break;
default:
break;
}
}
return valid;
}