summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis La Goutte <alexis.lagoutte@gmail.com>2015-02-03 08:45:41 +0100
committerAnders Broman <a.broman58@gmail.com>2015-02-04 06:54:18 +0000
commit74547dba7e28a6fbc13cc2aa5d5327417357f075 (patch)
tree7129b317cf6dd04ff122a94f45561d467e476a77
parentc256bbeda5449ba5b8015aa8f80aa4e4001cb6c3 (diff)
downloadwireshark-74547dba7e28a6fbc13cc2aa5d5327417357f075.tar.gz
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>
-rw-r--r--epan/dissectors/packet-mysql.c26
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,