mirror of
https://github.com/zeromq/libzmq.git
synced 2025-10-28 19:52:00 +01:00
Fail ZMQ_SNDHWM and ZMQ_RCVHWM setsockopt if already connected.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user