| | |
| | | | ... | ... | ... | |
| | | |
| | | ## Base Packet Format |
| | | |
| | | ##### Parsing |
| | | | Name | Description | Type | |
| | | |---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| |
| | | | Packet Length | The total number of bytes in the packet, not including the length itself. | `u32` | |
| | |
| | | | ... | See [Request Packet Format](#request-packet-format) or [Response Packet Format](#response-packet-format) for parsing the packet depending on `Is Request?`. | ... | |
| | | |
| | | ## Request Packet Format |
| | | Example: |
| | | |
| | | ##### Example |
| | | ``` |
| | | Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |
| | | 00000000 F8 00 00 00 0E 00 4C 6F 67 69 6E 50 72 6F 74 6F ΓΈ.....LoginProto |
| | |
| | | 000000F0 39 31 30 33 3B 73 69 64 3D 31 35 00 9103;sid=15. |
| | | ``` |
| | | |
| | | ##### Parsing |
| | | | Name | Description | Type | |
| | | |----------------|-------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------| |
| | | | ... | See [Base Packet Format](#base-packet-format) for parsing the prologue of a request packet. | ... | |
| | |
| | | | Version | The version of the structure. | `u16` | |
| | | |
| | | ## Response Packet Format |
| | | Examples: |
| | | |
| | | ##### Example |
| | | ``` |
| | | Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |
| | | 00000000 25 00 00 00 0E 00 4C 6F 67 69 6E 50 72 6F 74 6F %.....LoginProto |
| | |
| | | > [!NOTE] |
| | | > TODO: Successful response example |
| | | |
| | | ##### Parsing |
| | | | Name | Description | Type | |
| | | |----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------| |
| | | | ... | See [Base Packet Format](#base-packet-format) for parsing the prologue of a response packet. | ... | |
| | |
| | | |
| | | ### Successful Response Format |
| | | |
| | | > [!NOTE] |
| | | > TODO: Document successful response |
| | | ##### Parsing |
| | | | Name | Description | Type | |
| | | |---------------|--------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| |
| | | | ... | See [Response Packet Format](#response-packet-format) for parsing the prologue of a successful response packet. | ... | |
| | | | Call ID | The nonce token for the call to associate the response to the request. | `u32` | |
| | | | Method Name | The method that was called by the client. | [`String`](./03_rendezvous_structure.md#string) | |
| | | | Response Data | Raw data to pass to the response handler, see the respective [protocol and method specification](#known-protocols) to write and read this. | `<remaining bytes>` | |
| | | |
| | | ### Unsuccessful Response Format |
| | | |
| | | | Name | Description | Type | |
| | | |-----------------|------------------------------------------------------------------------|-------------------------------------------------| |
| | | | Error Namespace | The category of error that occurred. | [`String`](./03_rendezvous_structure.md#string) | |
| | | | Error Code | The code of the error in the specified namespace | `u16` | |
| | | | Call ID | The nonce token for the call to associate the response to the request. | `u32` | |
| | | ##### Parsing |
| | | | Name | Description | Type | |
| | | |-----------------|--------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| |
| | | | ... | See [Response Packet Format](#response-packet-format) for parsing the prologue of an unsuccessful response packet. | ... | |
| | | | Error Namespace | The category of error that occurred. | [`String`](./03_rendezvous_structure.md#string) | |
| | | | Error Code | The code of the error in the specified namespace | `u16` | |
| | | | Call ID | The nonce token for the call to associate the response to the request. | `u32` | |