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