summaryrefslogtreecommitdiff
path: root/src/zmq_encoder.cpp
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@250bpm.com>2010-03-09 15:10:44 +0100
committerMartin Sustrik <sustrik@250bpm.com>2010-03-09 15:10:44 +0100
commit96ccc1c5fceb56bd7ffc2e6bef9ddab5347d722b (patch)
treebec5f153e0a4139ba70baf3dc8e2d836e3ff84e2 /src/zmq_encoder.cpp
parente04e2cdbbaf351eb04164bdcd293fcb8fa22a9a4 (diff)
'flags' fields added to the wire format
Diffstat (limited to 'src/zmq_encoder.cpp')
-rw-r--r--src/zmq_encoder.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/zmq_encoder.cpp b/src/zmq_encoder.cpp
index 68626fa..95d0e5e 100644
--- a/src/zmq_encoder.cpp
+++ b/src/zmq_encoder.cpp
@@ -89,17 +89,22 @@ bool zmq::zmq_encoder_t::message_ready ()
size -= prefix_size;
}
+ // Account for the 'flags' byte.
+ size++;
+
// For messages less than 255 bytes long, write one byte of message size.
// For longer messages write 0xff escape character followed by 8-byte
- // message size.
+ // message size. In both cases empty 'flags' field follows.
if (size < 255) {
tmpbuf [0] = (unsigned char) size;
- next_step (tmpbuf, 1, &zmq_encoder_t::size_ready, true);
+ tmpbuf [1] = 0;
+ next_step (tmpbuf, 2, &zmq_encoder_t::size_ready, true);
}
else {
tmpbuf [0] = 0xff;
put_uint64 (tmpbuf + 1, size);
- next_step (tmpbuf, 9, &zmq_encoder_t::size_ready, true);
+ tmpbuf [9] = 0;
+ next_step (tmpbuf, 10, &zmq_encoder_t::size_ready, true);
}
return true;
}