Commit 80e8baaf authored by Ian Barber's avatar Ian Barber

Merge pull request #337 from hurtonm/issue_268

Fix issue #268
parents 5dc44a63 3d93c1af
......@@ -51,7 +51,7 @@ bool zmq::encoder_t::size_ready ()
{
// Write message body into the buffer.
next_step (in_progress.data (), in_progress.size (),
&encoder_t::message_ready, false);
&encoder_t::message_ready, !(in_progress.flags () & msg_t::more));
return true;
}
......@@ -90,15 +90,13 @@ bool zmq::encoder_t::message_ready ()
if (size < 255) {
tmpbuf [0] = (unsigned char) size;
tmpbuf [1] = (in_progress.flags () & msg_t::more);
next_step (tmpbuf, 2, &encoder_t::size_ready,
!(in_progress.flags () & msg_t::more));
next_step (tmpbuf, 2, &encoder_t::size_ready, false);
}
else {
tmpbuf [0] = 0xff;
put_uint64 (tmpbuf + 1, size);
tmpbuf [9] = (in_progress.flags () & msg_t::more);
next_step (tmpbuf, 10, &encoder_t::size_ready,
!(in_progress.flags () & msg_t::more));
next_step (tmpbuf, 10, &encoder_t::size_ready, false);
}
return true;
}
......@@ -79,19 +79,17 @@ namespace zmq
// If there are still no data, return what we already have
// in the buffer.
if (!to_write) {
// If we are to encode the beginning of a new message,
// adjust the message offset.
if (beginning)
if (offset_ && *offset_ == -1)
*offset_ = static_cast <int> (pos);
if (!(static_cast <T*> (this)->*next) ()) {
*data_ = buffer;
*size_ = pos;
return;
}
// If beginning of the message was processed, adjust the
// first-message-offset.
if (beginning) {
if (offset_ && *offset_ == -1)
*offset_ = (int) pos;
beginning = false;
}
}
// If there are no data in the buffer yet and we are able to
......
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