[[Category Cache]]

== Introduction ==

The 'Ondemand' protocol is used to stream updates to the cache. The client knows which files to update from the CRC file downloaded using the [[JAGGRAB Protocol|JAGGRAB protocol]].

== Request packet ==

The client first authenticates as an ondemand client by using the opcode '15' (as opposed to the game, which uses the type '14').

The format of the request is:

 unsigned byte cacheId;
 unsigned short fileId;
 unsigned byte priority;

There can be multiple requests per session.

== Response packet ==

The response is sent in blocks. The maximum size of a block is 500 bytes. Smaller blocks (at the end of a file) are permitted.

Each block has the format:

 unsigned byte cacheId;
 unsigned short fileId;
 unsigned short fileSize;
 unsigned byte blockNumber;
 unsigned byte[] blockData;