Reputation: 5047
I cannot resolve the Lacewing headers order. The first message to get send is as follows:
0
0
11 //lenght
0
..
while the Name set request is:
0
4 // lenght
1 // should be the type according to spec (1 for name setting request)
..
The lenght is stored at different bytes for these messages and so is the type of request. Maybe I have incorrect documentation but these message are what I am recieving.
Upvotes: 0
Views: 93
Reputation: 2958
From the protocol specification: https://github.com/udp/lacewing/blob/0.2.x/relay/current_spec.txt
As soon as the TCP connection is established, the client should send a single byte of 0 to identify themselves as a non-HTTP client. After this, they may start exchanging messages, of which the Connect request should be the first.
On initial connection, non-HTTP clients send byte 0. This is not part of the message - the first actual protocol message comes after this.
0 0 11 //lenght 0 ..
The first 0 is that "I'm not an HTTP client" identifier. The rest is the actual message: 0 is the type, which is made up of the variant and the request type type. The 11 is the length of the message, and the 0 is the actual "can I connect".
0 4 // lenght 1 // should be the type according to spec (1 for name setting request) ..
Again, 0 is the type, made up of the variant and request type. 4 is the length, again, and 1 is the request to Set Name.
The initial 0 on connection is a confusing aspect of the protocol because it is mentioned in an odd place, but it is mentioned, nonetheless.
Relevant thread in Development forum: http://community.clickteam.com/threads/79449-Lacewing-message-headers
Upvotes: 0