WOWW: Add fields that only require result

The `login_result` field is reused for all results, since there's
nothing about the field that makes it specific to logging in and the
same values can appear in all 3 fields.

Wiki reference:
https://wowdev.wiki/SMSG_CHAR_DELETE

https://wowdev.wiki/SMSG_CHAR_CREATE

https://wowdev.wiki/SMSG_CHARACTER_LOGIN_FAILED
This commit is contained in:
Gtker 2021-07-25 17:12:43 +02:00 committed by Wireshark GitLab Utility
parent d2af1dee46
commit 1fe0f6d2e0
1 changed files with 12 additions and 6 deletions

View File

@ -77,9 +77,6 @@ static int hf_woww_client_proof = -1;
static int hf_woww_decompressed_addon_size = -1; static int hf_woww_decompressed_addon_size = -1;
static int hf_woww_addon_info = -1; static int hf_woww_addon_info = -1;
/* SMSG_AUTH_RESPONSE */
static int hf_woww_login_result = -1;
/* SMSG_CHAR_ENUM */ /* SMSG_CHAR_ENUM */
static int hf_woww_amount_of_characters = -1; static int hf_woww_amount_of_characters = -1;
static int hf_woww_character_guid = -1; static int hf_woww_character_guid = -1;
@ -117,6 +114,7 @@ static int hf_woww_character_position_x = -1;
static int hf_woww_character_position_y = -1; static int hf_woww_character_position_y = -1;
static int hf_woww_character_position_z = -1; static int hf_woww_character_position_z = -1;
static int hf_woww_character_orientation = -1; static int hf_woww_character_orientation = -1;
static int hf_woww_result = -1;
#define WOWW_TCP_PORT 8085 #define WOWW_TCP_PORT 8085
@ -2626,7 +2624,7 @@ add_body_fields(guint32 opcode,
break; break;
case SMSG_AUTH_RESPONSE: case SMSG_AUTH_RESPONSE:
len = 4; len = 4;
proto_tree_add_item(tree, hf_woww_login_result, tvb, proto_tree_add_item(tree, hf_woww_result, tvb,
offset, len, ENC_LITTLE_ENDIAN); offset, len, ENC_LITTLE_ENDIAN);
// There might more fields depending on the value in login_result. // There might more fields depending on the value in login_result.
// Not implemented currently because they aren't that important. // Not implemented currently because they aren't that important.
@ -2686,6 +2684,14 @@ add_body_fields(guint32 opcode,
proto_tree_add_item(tree, hf_woww_sequence_id, tvb, proto_tree_add_item(tree, hf_woww_sequence_id, tvb,
offset, len, ENC_LITTLE_ENDIAN); offset, len, ENC_LITTLE_ENDIAN);
break; break;
case SMSG_CHARACTER_LOGIN_FAILED:
/* Fallthrough */
case SMSG_CHAR_DELETE:
/* Fallthrough */
case SMSG_CHAR_CREATE:
len = 1;
proto_tree_add_item(tree, hf_woww_result, tvb,
offset, len, ENC_LITTLE_ENDIAN);
default: default:
break; break;
} }
@ -2866,8 +2872,8 @@ proto_register_woww(void)
FT_STRINGZ, BASE_NONE, NULL, 0, FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL } NULL, HFILL }
}, },
{ &hf_woww_login_result, { &hf_woww_result,
{ "Login Result", "woww.login_result", { "Result", "woww.result",
FT_UINT32, BASE_HEX, VALS(account_result_strings), 0, FT_UINT32, BASE_HEX, VALS(account_result_strings), 0,
NULL, HFILL } NULL, HFILL }
}, },