CMD_AUTH_RECONNECT_CHALLENGE_Client
Protocol Version *
First message sent by the client when attempting to reconnect. The server will respond with CMD_AUTH_RECONNECT_CHALLENGE_Server.
Has the exact same layout as CMD_AUTH_LOGON_CHALLENGE_Client.
Wowm Representation
Autogenerated from wowm
file at wow_message_parser/wowm/login/cmd_auth_reconnect/challenge_client.wowm:5
.
clogin CMD_AUTH_RECONNECT_CHALLENGE_Client = 0x02 {
ProtocolVersion protocol_version;
u16 size = self.size;
u32 game_name = "\0WoW";
Version version;
Platform platform;
Os os;
Locale locale;
i32 utc_timezone_offset;
IpAddress client_ip_address;
String account_name;
}
Header
Login messages have a header of 1 byte with an opcode. Some messages also have a size field but this is not considered part of the header.
Login Header
Offset | Size / Endianness | Type | Name | Description |
---|---|---|---|---|
0x00 | 1 / - | uint8 | opcode | Opcode that determines which fields the message contains. |
Body
Offset | Size / Endianness | Type | Name | Comment |
---|---|---|---|---|
0x01 | 1 / - | ProtocolVersion | protocol_version | Determines which version of messages are used for further communication. |
0x02 | 2 / Little | u16 | size | |
0x04 | 4 / Little | u32 | game_name | |
0x08 | 5 / - | Version | version | |
0x0D | 4 / - | Platform | platform | |
0x11 | 4 / - | Os | os | |
0x15 | 4 / - | Locale | locale | |
0x19 | 4 / Little | i32 | utc_timezone_offset | Offset in minutes from UTC time. 180 would be UTC+3 |
0x1D | 4 / Big | IpAddress | client_ip_address | |
0x21 | - / - | String | account_name | Real clients can send a maximum of 16 UTF-8 characters. This is not necessarily 16 bytes since one character can be more than one byte. Real clients will send a fully uppercased username, and will perform authentication calculations on the uppercased version. Uppercasing in regards to non-ASCII values is little weird. See https://docs.rs/wow_srp/latest/wow_srp/normalized_string/index.html for more info. |
Examples
Example 1
2, // opcode (2)
2, // protocol_version: ProtocolVersion TWO (2)
31, 0, // size: u16
87, 111, 87, 0, // game_name: u32
1, // Version.major: u8
12, // Version.minor: u8
1, // Version.patch: u8
243, 22, // Version.build: u16
54, 56, 120, 0, // platform: Platform X86 ("\0x86")
110, 105, 87, 0, // os: Os WINDOWS ("\0Win")
66, 71, 110, 101, // locale: Locale EN_GB ("enGB")
60, 0, 0, 0, // utc_timezone_offset: i32
127, 0, 0, 1, // client_ip_address: IpAddress
1, // string length
65, // account_name: String
Example 2
2, // opcode (2)
2, // protocol_version: ProtocolVersion TWO (2)
46, 0, // size: u16
87, 111, 87, 0, // game_name: u32
1, // Version.major: u8
12, // Version.minor: u8
1, // Version.patch: u8
243, 22, // Version.build: u16
54, 56, 120, 0, // platform: Platform X86 ("\0x86")
110, 105, 87, 0, // os: Os WINDOWS ("\0Win")
66, 71, 110, 101, // locale: Locale EN_GB ("enGB")
60, 0, 0, 0, // utc_timezone_offset: i32
127, 0, 0, 1, // client_ip_address: IpAddress
16, // string length
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, // account_name: String