Commit 41126930 authored by Pieter Hintjens's avatar Pieter Hintjens

Cleaned up router option code

- made consistent with options.cpp code
- added trace print for ongoing issue with Travis CI builds
parent bf96cb44
...@@ -68,27 +68,42 @@ void zmq::router_t::xattach_pipe (pipe_t *pipe_, bool icanhasall_) ...@@ -68,27 +68,42 @@ void zmq::router_t::xattach_pipe (pipe_t *pipe_, bool icanhasall_)
int zmq::router_t::xsetsockopt (int option_, const void *optval_, int zmq::router_t::xsetsockopt (int option_, const void *optval_,
size_t optvallen_) size_t optvallen_)
{ {
if (option_ != ZMQ_ROUTER_MANDATORY bool is_int = (optvallen_ == sizeof (int));
&& option_ != ZMQ_ROUTER_RAW) { int value = is_int? *((int *) optval_): 0;
errno = EINVAL;
return -1; switch (option_) {
} case ZMQ_ROUTER_RAW:
if (optvallen_ != sizeof (int) || *static_cast <const int*> (optval_) < 0) { if (is_int && value >= 0) {
errno = EINVAL; raw_sock = value;
return -1;
}
if (option_ == ZMQ_ROUTER_RAW) {
raw_sock = (*static_cast <const int*> (optval_) != 0);
if (raw_sock) { if (raw_sock) {
options.recv_identity = false; options.recv_identity = false;
options.raw_sock = true; options.raw_sock = true;
} }
return 0;
} }
else // DEBUGGING PROBLEM WITH TRAVIS CI
mandatory = (*static_cast <const int*> (optval_) != 0); printf ("E: invalid option value (int=%d value=%d)\n", is_int, value);
break;
case ZMQ_ROUTER_MANDATORY:
if (is_int && value >= 0) {
mandatory = value;
return 0; return 0;
}
// DEBUGGING PROBLEM WITH TRAVIS CI
printf ("E: invalid option value (int=%d value=%d)\n", is_int, value);
break;
default:
break;
}
// DEBUGGING PROBLEM WITH TRAVIS CI
printf ("E: invalid option (option=%d)\n", option_);
errno = EINVAL;
return -1;
} }
void zmq::router_t::xterminated (pipe_t *pipe_) void zmq::router_t::xterminated (pipe_t *pipe_)
{ {
std::set <pipe_t*>::iterator it = anonymous_pipes.find (pipe_); std::set <pipe_t*>::iterator it = anonymous_pipes.find (pipe_);
......
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