Commit 0c94cd03 authored by Pieter Hintjens's avatar Pieter Hintjens

Merge pull request #223 from gimaker/libzmq-310

Throw away unexpected data received by XPUB sockets, rather than asserting
parents 95f6a074 36215656
...@@ -63,18 +63,19 @@ void zmq::xpub_t::xread_activated (pipe_t *pipe_) ...@@ -63,18 +63,19 @@ void zmq::xpub_t::xread_activated (pipe_t *pipe_)
// Apply the subscription to the trie. // Apply the subscription to the trie.
unsigned char *data = (unsigned char*) sub.data (); unsigned char *data = (unsigned char*) sub.data ();
size_t size = sub.size (); size_t size = sub.size ();
zmq_assert (size > 0 && (*data == 0 || *data == 1)); if (size > 0 && (*data == 0 || *data == 1)) {
bool unique; bool unique;
if (*data == 0) if (*data == 0)
unique = subscriptions.rm (data + 1, size - 1, pipe_); unique = subscriptions.rm (data + 1, size - 1, pipe_);
else else
unique = subscriptions.add (data + 1, size - 1, pipe_); unique = subscriptions.add (data + 1, size - 1, pipe_);
// If the subscription is not a duplicate store it so that it can be // If the subscription is not a duplicate store it so that it can be
// passed to used on next recv call. // passed to used on next recv call.
if (unique && options.type != ZMQ_PUB) if (unique && options.type != ZMQ_PUB)
pending.push_back (blob_t ((unsigned char*) sub.data (), pending.push_back (blob_t ((unsigned char*) sub.data (),
sub.size ())); sub.size ()));
}
} }
} }
......
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