SMSG_AUTH_RESPONSE

Client Version 1

Response to CMSG_AUTH_SESSION.

Usually followed by CMSG_CHAR_ENUM if login was successful (AUTH_OK).

vmangos/cmangos/mangoszero all have a variant of this message that contains fields from AUTH_OK for AUTH_WAIT_QUEUE as well (https://github.com/vmangos/core/blob/cd896d43712ceafecdbd8f005846d7f676e55b4f/src/game/World.cpp#L322) but this does not seem to be actually be a real thing.

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/character_screen/smsg_auth_response.wowm:4.

smsg SMSG_AUTH_RESPONSE = 0x01EE {
    WorldResult result;
    if (result == AUTH_OK) {
        u32 billing_time;
        u8 billing_flags;
        u32 billing_rested;
    }
    else if (result == AUTH_WAIT_QUEUE) {
        u32 queue_position;
    }
}

SMSG have a header of 4 bytes.

SMSG Header

OffsetSize / EndiannessTypeNameDescription
0x002 / Biguint16sizeSize of the rest of the message including the opcode field but not including the size field.
0x022 / Littleuint16opcodeOpcode that determines which fields the message contains.

Body

OffsetSize / EndiannessTypeNameComment
0x041 / -WorldResultresult

If result is equal to AUTH_OK:

OffsetSize / EndiannessTypeNameComment
0x054 / Littleu32billing_time
0x091 / -u8billing_flags
0x0A4 / Littleu32billing_rested

Else If result is equal to AUTH_WAIT_QUEUE:

OffsetSize / EndiannessTypeNameComment
0x0E4 / Littleu32queue_position

Examples

Example 1

Comment

Authentication failed.

0, 3, // size
238, 1, // opcode (494)
13, // result: WorldResult AUTH_FAILED (0x0D)

Example 2

Comment

Client told to wait in queue.

0, 7, // size
238, 1, // opcode (494)
27, // result: WorldResult AUTH_WAIT_QUEUE (0x1B)
239, 190, 173, 222, // queue_position: u32

Example 3

Comment

Client can join.

0, 12, // size
238, 1, // opcode (494)
12, // result: WorldResult AUTH_OK (0x0C)
239, 190, 173, 222, // billing_time: u32
0, // billing_flags: u8
0, 0, 0, 0, // billing_rested: u32

Client Version 2.4.3

Response to CMSG_AUTH_SESSION.

Usually followed by CMSG_CHAR_ENUM if login was successful (AUTH_OK).

vmangos/cmangos/mangoszero all have a variant of this message that contains fields from AUTH_OK for AUTH_WAIT_QUEUE as well (https://github.com/vmangos/core/blob/cd896d43712ceafecdbd8f005846d7f676e55b4f/src/game/World.cpp#L322) but this does not seem to be actually be a real thing.

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/character_screen/smsg_auth_response.wowm:84.

smsg SMSG_AUTH_RESPONSE = 0x01EE {
    WorldResult result;
    if (result == AUTH_OK) {
        u32 billing_time;
        BillingPlanFlags billing_flags;
        u32 billing_rested;
        Expansion expansion;
    }
    else if (result == AUTH_WAIT_QUEUE) {
        u32 queue_position;
    }
}

Header

SMSG have a header of 4 bytes.

SMSG Header

OffsetSize / EndiannessTypeNameDescription
0x002 / Biguint16sizeSize of the rest of the message including the opcode field but not including the size field.
0x022 / Littleuint16opcodeOpcode that determines which fields the message contains.

Body

OffsetSize / EndiannessTypeNameComment
0x041 / -WorldResultresult

If result is equal to AUTH_OK:

OffsetSize / EndiannessTypeNameComment
0x054 / Littleu32billing_time
0x091 / -BillingPlanFlagsbilling_flags
0x0A4 / Littleu32billing_rested
0x0E1 / -Expansionexpansion

Else If result is equal to AUTH_WAIT_QUEUE:

OffsetSize / EndiannessTypeNameComment
0x0F4 / Littleu32queue_position

Client Version 3.3.5

Response to CMSG_AUTH_SESSION.

Usually followed by CMSG_CHAR_ENUM if login was successful (AUTH_OK).

vmangos/cmangos/mangoszero all have a variant of this message that contains fields from AUTH_OK for AUTH_WAIT_QUEUE as well (https://github.com/vmangos/core/blob/cd896d43712ceafecdbd8f005846d7f676e55b4f/src/game/World.cpp#L322) but this does not seem to be actually be a real thing.

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/character_screen/smsg_auth_response.wowm:110.

smsg SMSG_AUTH_RESPONSE = 0x01EE {
    WorldResult result;
    if (result == AUTH_OK) {
        u32 billing_time;
        BillingPlanFlags billing_flags;
        u32 billing_rested;
        Expansion expansion;
    }
    else if (result == AUTH_WAIT_QUEUE) {
        u32 queue_position;
        Bool realm_has_free_character_migration;
    }
}

Header

SMSG have a header of 4 bytes.

SMSG Header

OffsetSize / EndiannessTypeNameDescription
0x002 OR 3 / Biguint16 OR uint16+uint8sizeSize of the rest of the message including the opcode field but not including the size field. Wrath server messages can be 3 bytes. If the first (most significant) size byte has 0x80 set, the header will be 3 bytes, otherwise it is 2.
-2 / Littleuint16opcodeOpcode that determines which fields the message contains.

Body

OffsetSize / EndiannessTypeNameComment
-1 / -WorldResultresult

If result is equal to AUTH_OK:

OffsetSize / EndiannessTypeNameComment
-4 / Littleu32billing_time
-1 / -BillingPlanFlagsbilling_flags
-4 / Littleu32billing_rested
-1 / -Expansionexpansion

Else If result is equal to AUTH_WAIT_QUEUE:

OffsetSize / EndiannessTypeNameComment
-4 / Littleu32queue_position
-1 / -Boolrealm_has_free_character_migration