From 951c0a09e209b9bab8c064e94b07f441c1d6a07b Mon Sep 17 00:00:00 2001 From: Striven <sg.striven@cutecat.club> Date: Sat, 13 Sep 2025 15:47:46 +0000 Subject: [PATCH] Add note regarding star that suffixes method names in response data --- 04_rendezvous/05_rmc_protocol.md | 33 +++++++++++++++++++-------------- 1 files changed, 19 insertions(+), 14 deletions(-) diff --git a/04_rendezvous/05_rmc_protocol.md b/04_rendezvous/05_rmc_protocol.md index d0e8a4d..f8eaa36 100644 --- a/04_rendezvous/05_rmc_protocol.md +++ b/04_rendezvous/05_rmc_protocol.md @@ -46,15 +46,15 @@ ``` ##### Parsing -| Name | Description | Type | -|----------------|-------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------| -| ... | See [Base Packet Format](#base-packet-format) for parsing the prologue of a request packet. | ... | -| Call ID | The nonce token for this call to identify the response associated with this request. | `u32` | -| Method Name | The method to call on the server. | [`String`](./03_rendezvous_structure.md#structure-string) | -| Class Versions | Version information about the data in the request | [`List`](./03_rendezvous_structure.md#structure-listt)`<`[`ClassVersion`](#class-version)`>` | -| Request Data | Raw data to pass to the request handler, see the respective [protocol and method specification](#known-protocols) to write and read this. | `<remaining bytes>` | +| Name | Description | Type | +|----------------|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------| +| ... | See [Base Packet Format](#base-packet-format) for parsing the prologue of a request packet. | ... | +| Call ID | The nonce token for this call to identify the response associated with this request. | `u32` | +| Method Name | The method to call on the server. | [`String`](./03_rendezvous_structure.md#structure-string) | +| Class Versions | Version information about the data in the request | [`List`](./03_rendezvous_structure.md#structure-listt)`<`[`ClassVersion`](#structure-classversion)`>` | +| ... | See the respective [protocol and method specification](#known-protocols) to parse and write the rest of the packet. | | -### `ClassVersion` +### Structure: `ClassVersion` Example: ``` Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F @@ -90,12 +90,17 @@ ### Successful Response Format ##### 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#structure-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>` | +| 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, see note below. | [`String`](./03_rendezvous_structure.md#structure-string) | +| ... | See the respective [protocol and method specification](#known-protocols) to parse and write the rest of the packet. | | + +> [!NOTE] +> Typically, a `*` is appended to the Method Name in responses for currently unknown reasons. Likely to do with the fact that the response handlers update pointers to data containers created in the original request. +> +> For example, where the request might be `LoginProtocol::LoginWithToken_V1`, the response would be for `LoginProtocol::LoginWithToken_V1*`. ### Unsuccessful Response Format -- Gitblit v1.10.0