From b95c4cb6a2ba9f06d3ac2806f7a930266a9949b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stig=20Bj=C3=B8rlykke?= Date: Mon, 28 Mar 2011 14:18:29 +0000 Subject: Added payload, header and trailer information to the DLT tree entry. svn path=/trunk/; revision=36377 --- epan/dissectors/packet-user_encap.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/epan/dissectors/packet-user_encap.c b/epan/dissectors/packet-user_encap.c index ae285b1649..433461390c 100644 --- a/epan/dissectors/packet-user_encap.c +++ b/epan/dissectors/packet-user_encap.c @@ -96,7 +96,7 @@ static void dissect_user(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree) { } } - item = proto_tree_add_item(tree,proto_user_encap,tvb,0,0,FALSE); + item = proto_tree_add_item(tree,proto_user_encap,tvb,0,-1,FALSE); if (!encap) { char* msg = ep_strdup_printf("User encapsulation not handled: DLT=%d, check your Preferences->Protocols->DLT_USER", pinfo->match_uint + 147 - WTAP_ENCAP_USER0); @@ -115,15 +115,27 @@ static void dissect_user(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree) { tvbuff_t* hdr_tvb = tvb_new_subset(tvb, 0, encap->header_size, encap->header_size); call_dissector(encap->header_proto, hdr_tvb, pinfo, tree); offset = encap->header_size; + if (encap->header_proto_name) { + const char *proto_name = proto_get_protocol_name(proto_get_id_by_filter_name(encap->header_proto_name)); + proto_item_append_text(item, ", Header: %s (%s)", encap->header_proto_name, proto_name); + } } payload_tvb = tvb_new_subset(tvb, encap->header_size, len, len); call_dissector(encap->payload_proto, payload_tvb, pinfo, tree); + if (encap->payload_proto_name) { + const char *proto_name = proto_get_protocol_name(proto_get_id_by_filter_name(encap->payload_proto_name)); + proto_item_append_text(item, ", Payload: %s (%s)", encap->payload_proto_name, proto_name); + } if (encap->trailer_size) { tvbuff_t* trailer_tvb = tvb_new_subset(tvb, encap->header_size + len, encap->trailer_size, encap->trailer_size); call_dissector(encap->trailer_proto, trailer_tvb, pinfo, tree); offset = encap->trailer_size; + if (encap->trailer_proto_name) { + const char *proto_name = proto_get_protocol_name(proto_get_id_by_filter_name(encap->trailer_proto_name)); + proto_item_append_text(item, ", Trailer: %s (%s)", encap->trailer_proto_name, proto_name); + } } } -- cgit v1.2.3