aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-tns.c
diff options
context:
space:
mode:
authorAlexandr Savca <s.alex08@mail.ru>2016-12-03 16:42:23 +0200
committerMichael Mann <mmann78@netscape.net>2016-12-07 16:39:26 +0000
commitcd4540b260040f08a5e814fab4c60e001501f8cb (patch)
treedb94d568a394be3208b72b11f63b1fe64676b09e /epan/dissectors/packet-tns.c
parentb9a1fd5bd63be58243dd973c8c842f10e9833f00 (diff)
packet-tns: add Set Protocol dissection.
Set Protocol is a SQLNET (NET8) message of Data packet type. At the moment, request message is fully implemented, response partly. Also, remove unused href entry(s). Change-Id: I1814ce867cf4f03fa70f05552bfe870ed8f7737c Reviewed-on: https://code.wireshark.org/review/19051 Reviewed-by: Peter Wu <peter@lekensteyn.nl> Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-tns.c')
-rw-r--r--epan/dissectors/packet-tns.c76
1 files changed, 42 insertions, 34 deletions
diff --git a/epan/dissectors/packet-tns.c b/epan/dissectors/packet-tns.c
index a8aead5b90..4e1c5af720 100644
--- a/epan/dissectors/packet-tns.c
+++ b/epan/dissectors/packet-tns.c
@@ -43,7 +43,6 @@ static int hf_tns_packet_checksum = -1;
static int hf_tns_header_checksum = -1;
static int hf_tns_packet_type = -1;
static int hf_tns_reserved_byte = -1;
-static int hf_tns_connect = -1;
static int hf_tns_version = -1;
static int hf_tns_compat_version = -1;
@@ -100,32 +99,26 @@ static int hf_tns_trace_cf1 = -1;
static int hf_tns_trace_cf2 = -1;
static int hf_tns_trace_cid = -1;
-static int hf_tns_accept = -1;
static int hf_tns_accept_data_length = -1;
static int hf_tns_accept_data_offset = -1;
static int hf_tns_accept_data = -1;
-static int hf_tns_refuse = -1;
static int hf_tns_refuse_reason_user = -1;
static int hf_tns_refuse_reason_system = -1;
static int hf_tns_refuse_data_length = -1;
static int hf_tns_refuse_data = -1;
-static int hf_tns_abort = -1;
static int hf_tns_abort_reason_user = -1;
static int hf_tns_abort_reason_system = -1;
static int hf_tns_abort_data = -1;
-static int hf_tns_marker = -1;
static int hf_tns_marker_type = -1;
static int hf_tns_marker_data_byte = -1;
/* static int hf_tns_marker_data = -1; */
-static int hf_tns_redirect = -1;
static int hf_tns_redirect_data_length = -1;
static int hf_tns_redirect_data = -1;
-static int hf_tns_control = -1;
static int hf_tns_control_cmd = -1;
static int hf_tns_control_data = -1;
@@ -144,7 +137,11 @@ static int hf_tns_data_id = -1;
static int hf_tns_data_length = -1;
static int hf_tns_data_oci_id = -1;
static int hf_tns_data_piggyback_id = -1;
-static int hf_tns_data = -1;
+
+static int hf_tns_data_setp_acc_vers = -1;
+static int hf_tns_data_setp_cli_plat = -1;
+static int hf_tns_data_setp_version = -1;
+static int hf_tns_data_setp_banner = -1;
static gint ett_tns = -1;
static gint ett_tns_connect = -1;
@@ -468,6 +465,30 @@ static void dissect_tns_data(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
/* Handle data functions that have more than just ID */
switch (data_func_id)
{
+ case SQLNET_SET_PROTOCOL:
+ {
+ size_t len;
+ if ( pinfo->match_uint == pinfo->destport ) /* check if is request */
+ {
+ len = tvb_strsize(tvb, offset);
+ proto_tree_add_item(data_tree, hf_tns_data_setp_acc_vers, tvb, offset, len-1, ENC_NA);
+ offset += len;
+ len = tvb_strsize(tvb, offset);
+ proto_tree_add_item(data_tree, hf_tns_data_setp_cli_plat, tvb, offset, len, ENC_ASCII|ENC_NA);
+
+ return; /* skip call_data_dissector */
+ }
+ else
+ {
+ proto_tree_add_item(data_tree, hf_tns_data_setp_version, tvb, offset, 1, ENC_NA);
+ offset += 2; /* jump over next null terminator */
+ len = tvb_strsize(tvb, offset);
+ proto_tree_add_item(data_tree, hf_tns_data_setp_banner, tvb, offset, len, ENC_ASCII|ENC_NA);
+ offset += len;
+ }
+ break;
+ }
+
case SQLNET_USER_OCI_FUNC:
proto_tree_add_item(data_tree, hf_tns_data_oci_id, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
@@ -1001,9 +1022,6 @@ void proto_register_tns(void)
"Value of 1 in Hardware", "tns.value_of_one", FT_BYTES, BASE_NONE,
NULL, 0x0, NULL, HFILL }},
- { &hf_tns_connect, {
- "Connect", "tns.connect", FT_BOOLEAN, BASE_NONE,
- NULL, 0x0, NULL, HFILL }},
{ &hf_tns_connect_data_length, {
"Length of Connect Data", "tns.connect_data_length", FT_UINT16, BASE_DEC,
NULL, 0x0, NULL, HFILL }},
@@ -1051,9 +1069,6 @@ void proto_register_tns(void)
"Connect Data", "tns.connect_data", FT_STRING, BASE_NONE,
NULL, 0x0, NULL, HFILL }},
- { &hf_tns_accept, {
- "Accept", "tns.accept", FT_BOOLEAN, BASE_NONE,
- NULL, 0x0, NULL, HFILL }},
{ &hf_tns_accept_data_length, {
"Accept Data Length", "tns.accept_data_length", FT_UINT16, BASE_DEC,
NULL, 0x0, "Length of Accept Data", HFILL }},
@@ -1064,10 +1079,6 @@ void proto_register_tns(void)
"Offset to Accept Data", "tns.accept_data_offset", FT_UINT16, BASE_DEC,
NULL, 0x0, NULL, HFILL }},
-
- { &hf_tns_refuse, {
- "Refuse", "tns.refuse", FT_BOOLEAN, BASE_NONE,
- NULL, 0x0, NULL, HFILL }},
{ &hf_tns_refuse_reason_user, {
"Refuse Reason (User)", "tns.refuse_reason_user", FT_UINT8, BASE_HEX,
NULL, 0x0, "Refuse Reason from Application", HFILL }},
@@ -1081,9 +1092,6 @@ void proto_register_tns(void)
"Refuse Data", "tns.refuse_data", FT_STRING, BASE_NONE,
NULL, 0x0, NULL, HFILL }},
- { &hf_tns_abort, {
- "Abort", "tns.abort", FT_BOOLEAN, BASE_NONE,
- NULL, 0x0, NULL, HFILL }},
{ &hf_tns_abort_reason_user, {
"Abort Reason (User)", "tns.abort_reason_user", FT_UINT8, BASE_HEX,
NULL, 0x0, "Abort Reason from Application", HFILL }},
@@ -1094,9 +1102,6 @@ void proto_register_tns(void)
"Abort Data", "tns.abort_data", FT_STRING, BASE_NONE,
NULL, 0x0, NULL, HFILL }},
- { &hf_tns_marker, {
- "Marker", "tns.marker", FT_BOOLEAN, BASE_NONE,
- NULL, 0x0, NULL, HFILL }},
{ &hf_tns_marker_type, {
"Marker Type", "tns.marker.type", FT_UINT8, BASE_HEX,
VALS(tns_marker_types), 0x0, NULL, HFILL }},
@@ -1109,9 +1114,6 @@ void proto_register_tns(void)
NULL, 0x0, NULL, HFILL }},
#endif
- { &hf_tns_control, {
- "Control", "tns.control", FT_BOOLEAN, BASE_NONE,
- NULL, 0x0, NULL, HFILL }},
{ &hf_tns_control_cmd, {
"Control Command", "tns.control.cmd", FT_UINT16, BASE_HEX,
VALS(tns_control_cmds), 0x0, NULL, HFILL }},
@@ -1119,9 +1121,6 @@ void proto_register_tns(void)
"Control Data", "tns.control.data", FT_BYTES, BASE_NONE,
NULL, 0x0, NULL, HFILL }},
- { &hf_tns_redirect, {
- "Redirect", "tns.redirect", FT_BOOLEAN, BASE_NONE,
- NULL, 0x0, NULL, HFILL }},
{ &hf_tns_redirect_data_length, {
"Redirect Data Length", "tns.redirect_data_length", FT_UINT16, BASE_DEC,
NULL, 0x0, "Length of Redirect Data", HFILL }},
@@ -1129,10 +1128,6 @@ void proto_register_tns(void)
"Redirect Data", "tns.redirect_data", FT_STRING, BASE_NONE,
NULL, 0x0, NULL, HFILL }},
- { &hf_tns_data, {
- "Data", "tns.data", FT_BOOLEAN, BASE_NONE,
- NULL, 0x0, NULL, HFILL }},
-
{ &hf_tns_data_flag, {
"Data Flag", "tns.data_flag", FT_UINT16, BASE_HEX,
NULL, 0x0, NULL, HFILL }},
@@ -1182,6 +1177,19 @@ void proto_register_tns(void)
"Call ID", "tns.data_piggyback.id", FT_UINT8, BASE_HEX|BASE_EXT_STRING,
&tns_data_oci_subfuncs_ext, 0x00, NULL, HFILL }},
+ { &hf_tns_data_setp_acc_vers, {
+ "Accepted Versions", "tns.data_setp_req.acc_vers", FT_BYTES, SEP_SPACE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_tns_data_setp_cli_plat, {
+ "Client Platform", "tns.data_setp_req.cli_plat", FT_STRINGZ, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_tns_data_setp_version, {
+ "Version", "tns.data_setp_resp.version", FT_BYTES, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_tns_data_setp_banner, {
+ "Server Banner", "tns.data_setp_resp.banner", FT_STRINGZ, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+
{ &hf_tns_reserved_byte, {
"Reserved Byte", "tns.reserved_byte", FT_BYTES, BASE_NONE,
NULL, 0x0, NULL, HFILL }},