From 25cabe6e0064481530be3bc4290b7caea0521eaa Mon Sep 17 00:00:00 2001 From: stig Date: Tue, 24 Aug 2010 15:09:11 +0000 Subject: Display octet string fragments for RTSE segment data. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@33911 f5534014-38df-0310-8fa8-9805f1628bb7 --- asn1/rtse/packet-rtse-template.c | 11 +++++++---- epan/dissectors/packet-rtse.c | 17 ++++++++++------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/asn1/rtse/packet-rtse-template.c b/asn1/rtse/packet-rtse-template.c index c4d5f9bb41..e85de47030 100644 --- a/asn1/rtse/packet-rtse-template.c +++ b/asn1/rtse/packet-rtse-template.c @@ -71,7 +71,8 @@ static gint ett_rtse_unknown = -1; static GHashTable *rtse_segment_table = NULL; static GHashTable *rtse_reassembled_table = NULL; - + +static int hf_rtse_segment_data = -1; static int hf_rtse_fragments = -1; static int hf_rtse_fragment = -1; static int hf_rtse_fragment_overlap = -1; @@ -243,12 +244,11 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) } if (rtse_reassemble && session->spdu_type == SES_DATA_TRANSFER) { /* strip off the OCTET STRING encoding - including any CONSTRUCTED OCTET STRING */ - dissect_ber_octet_string(FALSE, &asn1_ctx, NULL, tvb, offset, 0, &data_tvb); + dissect_ber_octet_string(FALSE, &asn1_ctx, tree, tvb, offset, hf_rtse_segment_data, &data_tvb); if (data_tvb) { fragment_length = tvb_length_remaining (data_tvb, 0); - proto_tree_add_text(tree, data_tvb, 0, (fragment_length) ? -1 : 0, - "RTSE segment data (%u byte%s)", fragment_length, + proto_item_append_text(asn1_ctx.created_item, " (%u byte%s)", fragment_length, plurality(fragment_length, "", "s")); frag_msg = fragment_add_seq_next (data_tvb, 0, pinfo, rtse_id, rtse_segment_table, @@ -314,6 +314,9 @@ void proto_register_rtse(void) { static hf_register_info hf[] = { /* Fragment entries */ + { &hf_rtse_segment_data, + { "RTSE segment data", "rtse.segment", FT_NONE, BASE_NONE, + NULL, 0x00, NULL, HFILL } }, { &hf_rtse_fragments, { "RTSE fragments", "rtse.fragments", FT_NONE, BASE_NONE, NULL, 0x00, "Message fragments", HFILL } }, diff --git a/epan/dissectors/packet-rtse.c b/epan/dissectors/packet-rtse.c index 64128dd638..f51e18f282 100644 --- a/epan/dissectors/packet-rtse.c +++ b/epan/dissectors/packet-rtse.c @@ -121,7 +121,8 @@ static gint ett_rtse_unknown = -1; static GHashTable *rtse_segment_table = NULL; static GHashTable *rtse_reassembled_table = NULL; - + +static int hf_rtse_segment_data = -1; static int hf_rtse_fragments = -1; static int hf_rtse_fragment = -1; static int hf_rtse_fragment_overlap = -1; @@ -729,7 +730,7 @@ dissect_rtse_RTSE_apdus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset /*--- End of included file: packet-rtse-fn.c ---*/ -#line 182 "packet-rtse-template.c" +#line 183 "packet-rtse-template.c" /* * Dissect RTSE PDUs inside a PPDU. @@ -794,12 +795,11 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) } if (rtse_reassemble && session->spdu_type == SES_DATA_TRANSFER) { /* strip off the OCTET STRING encoding - including any CONSTRUCTED OCTET STRING */ - dissect_ber_octet_string(FALSE, &asn1_ctx, NULL, tvb, offset, 0, &data_tvb); + dissect_ber_octet_string(FALSE, &asn1_ctx, tree, tvb, offset, hf_rtse_segment_data, &data_tvb); if (data_tvb) { fragment_length = tvb_length_remaining (data_tvb, 0); - proto_tree_add_text(tree, data_tvb, 0, (fragment_length) ? -1 : 0, - "RTSE segment data (%u byte%s)", fragment_length, + proto_item_append_text(asn1_ctx.created_item, " (%u byte%s)", fragment_length, plurality(fragment_length, "", "s")); frag_msg = fragment_add_seq_next (data_tvb, 0, pinfo, rtse_id, rtse_segment_table, @@ -865,6 +865,9 @@ void proto_register_rtse(void) { static hf_register_info hf[] = { /* Fragment entries */ + { &hf_rtse_segment_data, + { "RTSE segment data", "rtse.segment", FT_NONE, BASE_NONE, + NULL, 0x00, NULL, HFILL } }, { &hf_rtse_fragments, { "RTSE fragments", "rtse.fragments", FT_NONE, BASE_NONE, NULL, 0x00, "Message fragments", HFILL } }, @@ -997,7 +1000,7 @@ void proto_register_rtse(void) { NULL, HFILL }}, /*--- End of included file: packet-rtse-hfarr.c ---*/ -#line 349 "packet-rtse-template.c" +#line 352 "packet-rtse-template.c" }; /* List of subtrees */ @@ -1019,7 +1022,7 @@ void proto_register_rtse(void) { &ett_rtse_CallingSSuserReference, /*--- End of included file: packet-rtse-ettarr.c ---*/ -#line 358 "packet-rtse-template.c" +#line 361 "packet-rtse-template.c" }; module_t *rtse_module; -- cgit v1.2.3