aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-user_encap.c
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2011-03-28 14:18:29 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2011-03-28 14:18:29 +0000
commitb95c4cb6a2ba9f06d3ac2806f7a930266a9949b6 (patch)
tree78fb07c668d2f6b5cac8f721e80a3bc819dd0ba4 /epan/dissectors/packet-user_encap.c
parent08f71f1232080863f721de1f33962d3deb469912 (diff)
Added payload, header and trailer information to the DLT tree entry.
svn path=/trunk/; revision=36377
Diffstat (limited to 'epan/dissectors/packet-user_encap.c')
-rw-r--r--epan/dissectors/packet-user_encap.c14
1 files changed, 13 insertions, 1 deletions
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);
+ }
}
}