From 8bdc79d8f4b4e99637edd9f8f655fe03e14220d0 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Thu, 8 Sep 2005 10:08:01 +0000 Subject: from Michal & Yaniv Kaul Updates to prettify the Bind ACK context handles svn path=/trunk/; revision=15722 --- epan/dissectors/packet-dcerpc.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/epan/dissectors/packet-dcerpc.c b/epan/dissectors/packet-dcerpc.c index f21783f7a3..c31387a879 100644 --- a/epan/dissectors/packet-dcerpc.c +++ b/epan/dissectors/packet-dcerpc.c @@ -2627,7 +2627,7 @@ dissect_dcerpc_cn_bind (tvbuff_t *tvb, gint offset, packet_info *pinfo, #ifdef _WIN32 if(ResolveWin32UUID(if_id, UUID_NAME, MAX_PATH)) iface_item = proto_tree_add_string_format (ctx_tree, hf_dcerpc_cn_bind_if_id, tvb, - offset, 16, uuid_str, "Interface [%s] UUID: %s", UUID_NAME, uuid_str); + offset, 16, uuid_str, "Interface: %s\tUUID: %s", UUID_NAME, uuid_str); else #endif iface_item = proto_tree_add_string_format (ctx_tree, hf_dcerpc_cn_bind_if_id, tvb, @@ -2795,11 +2795,19 @@ dissect_dcerpc_cn_bind_ack (tvbuff_t *tvb, gint offset, packet_info *pinfo, offset += 3; for (i = 0; i < num_results; i++) { - offset = dissect_dcerpc_uint16 (tvb, offset, pinfo, dcerpc_tree, + proto_tree *ctx_tree = NULL; + + if(dcerpc_tree){ + proto_item *ctx_item; + ctx_item = proto_tree_add_text(dcerpc_tree, tvb, offset, 24, "Context ID: %d", i); + ctx_tree = proto_item_add_subtree(ctx_item, ett_dcerpc_cn_ctx); + } + + offset = dissect_dcerpc_uint16 (tvb, offset, pinfo, ctx_tree, hdr->drep, hf_dcerpc_cn_ack_result, &result); if (result != 0) { - offset = dissect_dcerpc_uint16 (tvb, offset, pinfo, dcerpc_tree, + offset = dissect_dcerpc_uint16 (tvb, offset, pinfo, ctx_tree, hdr->drep, hf_dcerpc_cn_ack_reason, &reason); } else { @@ -2812,7 +2820,7 @@ dissect_dcerpc_cn_bind_ack (tvbuff_t *tvb, gint offset, packet_info *pinfo, /* XXX - use "dissect_ndr_uuid_t()"? */ dcerpc_tvb_get_uuid (tvb, offset, hdr->drep, &trans_id); - if (dcerpc_tree) { + if (ctx_tree) { uuid_str_len = g_snprintf(uuid_str, DCERPC_UUID_STR_LEN, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", trans_id.Data1, trans_id.Data2, trans_id.Data3, @@ -2822,12 +2830,12 @@ dissect_dcerpc_cn_bind_ack (tvbuff_t *tvb, gint offset, packet_info *pinfo, trans_id.Data4[6], trans_id.Data4[7]); if (uuid_str_len == -1 || uuid_str_len >= DCERPC_UUID_STR_LEN) memset(uuid_str, 0, DCERPC_UUID_STR_LEN); - proto_tree_add_string_format (dcerpc_tree, hf_dcerpc_cn_ack_trans_id, tvb, + proto_tree_add_string_format (ctx_tree, hf_dcerpc_cn_ack_trans_id, tvb, offset, 16, uuid_str, "Transfer Syntax: %s", uuid_str); } offset += 16; - offset = dissect_dcerpc_uint32 (tvb, offset, pinfo, dcerpc_tree, hdr->drep, + offset = dissect_dcerpc_uint32 (tvb, offset, pinfo, ctx_tree, hdr->drep, hf_dcerpc_cn_ack_trans_ver, &trans_ver); } -- cgit v1.2.3