[zeromq-dev] Is ZMTP3 backwards compatibility with ZMTP1.0 broken?

Pieter Hintjens ph at imatix.com
Mon Aug 12 01:13:29 CEST 2013


On Sun, Aug 11, 2013 at 11:19 PM, Merijn Verstraaten
<merijn at inconsistent.nl> wrote:

> RFC23 states that a backward compatibility detecting handshake starts as follows:
> "Send a 10-octet pseudo-signature consisting of "%xFF size %x7F" where 'size' is the number of octets in the sender's identity (0 or greater) plus 1. The size SHALL be 8 octets in network byte order and occupies the padding field."
>
> However, RFC13 states that ZMTP1.0 long length messages follow the format "%xFF size flags", where bit 0 of flags specifies whether there are more messages to come, which is wrong for an identity frame. Do existing ZMTP1.0 implementations simply ignore this flag on identity frames?

Good catch. For sure ZMTP 1.0 implementations don't check this, but
I'm wondering why we chose %x7F. That might be a mistake, based on the
explanation of the flags field in RFC 13 (bit 0 is put before bits
1-7). I suspect the intention was to create a valid frame, with the
reserved bits all set to 1. So, %xFE.

-Pieter



More information about the zeromq-dev mailing list