diff options
Diffstat (limited to 'src/xsub.cpp')
| -rw-r--r-- | src/xsub.cpp | 8 | 
1 files changed, 4 insertions, 4 deletions
| diff --git a/src/xsub.cpp b/src/xsub.cpp index f4160c0..bfe12a3 100644 --- a/src/xsub.cpp +++ b/src/xsub.cpp @@ -116,7 +116,7 @@ int zmq::xsub_t::xrecv (msg_t *msg_, int flags_)          int rc = msg_->move (message);          errno_assert (rc == 0);          has_message = false; -        more = msg_->flags () & msg_t::more; +        more = msg_->flags () & (msg_t::more | msg_t::label);          return 0;      } @@ -136,13 +136,13 @@ int zmq::xsub_t::xrecv (msg_t *msg_, int flags_)          //  Check whether the message matches at least one subscription.          //  Non-initial parts of the message are passed           if (more || !options.filter || match (msg_)) { -            more = msg_->flags () & msg_t::more; +            more = msg_->flags () & (msg_t::more | msg_t::label);              return 0;          }          //  Message doesn't match. Pop any remaining parts of the message          //  from the pipe. -        while (msg_->flags () & msg_t::more) { +        while (msg_->flags () & (msg_t::more | msg_t::label)) {              rc = fq.recv (msg_, ZMQ_DONTWAIT);              zmq_assert (rc == 0);          } @@ -182,7 +182,7 @@ bool zmq::xsub_t::xhas_in ()          //  Message doesn't match. Pop any remaining parts of the message          //  from the pipe. -        while (message.flags () & msg_t::more) { +        while (message.flags () & (msg_t::more | msg_t::label)) {              rc = fq.recv (&message, ZMQ_DONTWAIT);              zmq_assert (rc == 0);          } | 
