diff options
author | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2015-02-03 08:45:41 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2015-02-04 06:54:18 +0000 |
commit | 74547dba7e28a6fbc13cc2aa5d5327417357f075 (patch) | |
tree | 7129b317cf6dd04ff122a94f45561d467e476a77 /epan/dissectors/packet-mysql.c | |
parent | c256bbeda5449ba5b8015aa8f80aa4e4001cb6c3 (diff) |
MySQL: Add Server ext caps and Auth Plugin Length to Server Greeting
Ping-Bug: 10346
Change-Id: I1b2bd3e9b1dc01118c48c6e159c9a06d4daa061b
Reviewed-on: https://code.wireshark.org/review/6936
Reviewed-by: Michael Mann <mmann78@netscape.net>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-mysql.c')
-rw-r--r-- | epan/dissectors/packet-mysql.c | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/epan/dissectors/packet-mysql.c b/epan/dissectors/packet-mysql.c index 1e78c66999..a5fca6289d 100644 --- a/epan/dissectors/packet-mysql.c +++ b/epan/dissectors/packet-mysql.c @@ -464,6 +464,7 @@ static int hf_mysql_cap_ignore_sigpipe = -1; static int hf_mysql_cap_transactions = -1; static int hf_mysql_cap_reserved = -1; static int hf_mysql_cap_secure_connect = -1; +static int hf_mysql_extcaps_server = -1; static int hf_mysql_extcaps_client = -1; static int hf_mysql_cap_multi_statements = -1; static int hf_mysql_cap_multi_results = -1; @@ -537,6 +538,7 @@ static int hf_mysql_connattrs_value = -1; static int hf_mysql_thread_id = -1; static int hf_mysql_salt = -1; static int hf_mysql_salt2 = -1; +static int hf_mysql_auth_plugin_length = -1; static int hf_mysql_auth_plugin = -1; static int hf_mysql_charset = -1; static int hf_mysql_passwd = -1; @@ -691,6 +693,7 @@ static const value_string state_vals[] = { typedef struct mysql_conn_data { guint16 srv_caps; + guint16 srv_caps_ext; guint16 clnt_caps; guint16 clnt_caps_ext; mysql_state_t state; @@ -910,9 +913,16 @@ mysql_dissect_greeting(tvbuff_t *tvb, packet_info *pinfo, int offset, offset = mysql_dissect_server_status(tvb, offset, greeting_tree, NULL); - /* 13 bytes unused */ - proto_tree_add_item(greeting_tree, hf_mysql_unused, tvb, offset, 13, ENC_NA); - offset += 13; + /* 2 bytes ExtCAPS */ + offset = mysql_dissect_extcaps(tvb, offset, greeting_tree, hf_mysql_extcaps_server, &conn_data->srv_caps_ext); + + /* 1 byte Auth Plugin Length */ + proto_tree_add_item(greeting_tree, hf_mysql_auth_plugin_length, tvb, offset, 1, ENC_NA); + offset += 1; + + /* 10 bytes unused */ + proto_tree_add_item(greeting_tree, hf_mysql_unused, tvb, offset, 10, ENC_NA); + offset += 10; /* 4.1+ server: rest of salt */ if (tvb_reported_length_remaining(tvb, offset)) { @@ -2512,6 +2522,11 @@ void proto_register_mysql(void) FT_BOOLEAN, 16, TFS(&tfs_set_notset), MYSQL_CAPS_SC, NULL, HFILL }}, + { &hf_mysql_extcaps_server, + { "Extended Server Capabilities", "mysql.extcaps.server", + FT_UINT16, BASE_HEX, NULL, 0x0, + "MySQL Extended Capabilities", HFILL }}, + { &hf_mysql_extcaps_client, { "Extended Client Capabilities", "mysql.extcaps.client", FT_UINT16, BASE_HEX, NULL, 0x0, @@ -2642,6 +2657,11 @@ void proto_register_mysql(void) FT_STRINGZ, BASE_NONE, NULL, 0x0, NULL, HFILL }}, + { &hf_mysql_auth_plugin_length, + { "Authentication Plugin Length", "mysql.auth_plugin.length", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + { &hf_mysql_auth_plugin, { "Authentication Plugin", "mysql.auth_plugin", FT_STRINGZ, BASE_NONE, NULL, 0x0, |