Ribbit: Difference between revisions
m (Fixed typo @ products commands) |
No edit summary |
||
Line 3: | Line 3: | ||
==Commands== | ==Commands== | ||
Instead of using HTTP like the current NGDP system does, this uses TCP. Commands are to be sent to either us.version.battle.net or eu.version.battle.net on port 1119 (ending in a \r\n | Instead of using HTTP like the current NGDP system does, this uses TCP. Commands are to be sent to either us.version.battle.net or eu.version.battle.net on port 1119 (ending in a \r\n). In this table, '''bold''' indicates a variable replaced in the actual query. | ||
{| border="1" cellpadding="2" style="background:#FCFCFC; color:black" | {| border="1" cellpadding="2" style="background:#FCFCFC; color:black" |
Revision as of 19:30, 31 July 2018
Description
Ribbit is (an implementation of?) a new way of retrieving version information for products, with built-in caching and message verification via signatures. Uses sequence numbers returned by the summary (and every other request) to indicate whether something is outdated or not.
Commands
Instead of using HTTP like the current NGDP system does, this uses TCP. Commands are to be sent to either us.version.battle.net or eu.version.battle.net on port 1119 (ending in a \r\n). In this table, bold indicates a variable replaced in the actual query.
Commands | Description |
---|---|
v1/summary | Gets a list of endpoints and their current sequence number (example) |
v1/products/product/versions | Similar to NGDP's versions file, also referred to as version in other parts |
v1/products/product/cdns | Similar to NGDP's cdns file, also referred to as cdn in other parts |
v1/products/product/bgdl | Similar to NGDP's bgdl file |
v1/certs/hash | Get a certificate |
v1/ocsp/hash | Check revocation status |
v1/ext | Unknown |
Sequence numbers
These can be found in every message and have been included in NGDP HTTP requests since April 12 2018. Every time a file is updated the sequence number increases and the number in summary updates to let clients know that file has been updated.
Cached messages
Cached messages can be found in C:\ProgramData\Battle.net\Agent\data\cache. Filenames are structured like command-argument(s?)-seqn.bmime. If no arguments are present, argument in filename is #. If no seqn is present, it is 0.
Examples:
Filename | Description |
---|---|
cdn-wow_beta-14722.bmime | Cached /cdns message for product wow_beta with sequence number 14722. |
summary-#-32324.bmime | Cached /summary message with no arguments but with sequence number 32324. |
cert-5168ff90af0207753cccd9656462a212b859723b-0.bmime | Cached /cert message with certificate hash as argument and no sequence number. |
Message structure
Messages are MIME formatted and as such contain headers, boundaries (with content inside) and such.
Summary file
Similar to other NGDP pipe (|) separated files. Contains a list of products/endpoints and their current sequence number. If the flags column is empty, it seems to refer to the version file. This file should be used to check for differences instead of checking all individual products like is currently done in HTTP NGDP.