Re: EQHD

[email protected] Sat, 8 Aug 2009 22:47:31 +0000 (UTC)
Newsgroups gmane.network.gnutella.devel
Organization Home, Grenoble, France
Message-ID <[email protected]>
Quoting kelsayfst <[email protected]> from ml.gnutella.dev-forum:
:I need help on this. The latest spec or is this correct what I got.
:
:
:Byte 0-3 : Vendor Code
:Byte 4   : Public area size (either 2 or 4) if 4 then 7-8 is xml size
:Byte 5-6 : Public area
:Byte 7-8 : Size of XML + 1 (for a null), you need to count      backward from the
:client GUID
:Byte 9   : private vendor flag (ex. chat)
:Byte 10-X: GGEP area
:Byte X-beginning of xml : (new) private area
:Byte (payload.length - 16 - xmlSize (above)) - 
:(payload.length - 16 - 1) : XML
:Byte (payload.length - 16 - 1) : NULL
:Last 16 Bytes: client GUID

There's no "byte 9" in my book.  That is, the data after byte 8 (end of
open data) is either the start of GGEP (if the GGEP flag is set in the
open data) or XML data.  The GGEP flag is 0x20 (must be set in both the
"enabler" and in the "flag" bytes of the open data bytes: the first byte
defines which bits of the second byte are valid flags, since a bit could be
zero but meaningless because the servent did not necessarily mean anything
by it).

In other words, the start of the trailer data is at byte "5 + open data size".

Private capabilities (ex. chat) are supposed to be indicated by GGEP extensions
nowadays.

Raphael