diff options
author | Anders Broman <anders.broman@ericsson.com> | 2009-03-04 19:59:56 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2009-03-04 19:59:56 +0000 |
commit | 254ba09e7a549a946883118b6478d64b9a414ad5 (patch) | |
tree | dcf4fb1cfd854b182f7c4c3c3e9629a686162970 /epan/dissectors/packet-ranap.c | |
parent | 2db386dfd4880a58cf45493ba9367967921241a0 (diff) |
From Neil Piercy:
Embedded RRC messages not dissected.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3300
svn path=/trunk/; revision=27606
Diffstat (limited to 'epan/dissectors/packet-ranap.c')
-rw-r--r-- | epan/dissectors/packet-ranap.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/epan/dissectors/packet-ranap.c b/epan/dissectors/packet-ranap.c index 15addc31d4..b973007cdb 100644 --- a/epan/dissectors/packet-ranap.c +++ b/epan/dissectors/packet-ranap.c @@ -348,6 +348,9 @@ typedef enum _ProtocolIE_ID_enum { /* Initialize the protocol and registered fields */ static int proto_ranap = -1; +/* initialise sub-dissector handles */ +static dissector_handle_t rrc_handle = NULL; + static int hf_ranap_imsi_digits = -1; /*--- Included file: packet-ranap-hf.c ---*/ @@ -941,7 +944,7 @@ static int hf_ranap_value_02 = -1; /* T_value_02 */ static int hf_ranap_value_03 = -1; /* T_value_03 */ /*--- End of included file: packet-ranap-hf.c ---*/ -#line 67 "packet-ranap-template.c" +#line 70 "packet-ranap-template.c" /* Initialize the subtree pointers */ static int ett_ranap = -1; @@ -1228,7 +1231,7 @@ static gint ett_ranap_UnsuccessfulOutcome = -1; static gint ett_ranap_Outcome = -1; /*--- End of included file: packet-ranap-ett.c ---*/ -#line 72 "packet-ranap-template.c" +#line 75 "packet-ranap-template.c" /* Global variables */ static guint32 ProcedureCode; @@ -2244,7 +2247,7 @@ dissect_ranap_APN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto static int dissect_ranap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 199 "ranap.cnf" +#line 210 "ranap.cnf" tvbuff_t *parameter_tvb=NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -5768,8 +5771,17 @@ dissect_ranap_ResponseTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static int dissect_ranap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 195 "ranap.cnf" + tvbuff_t *rrc_message_tvb=NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, NULL); + NO_BOUND, NO_BOUND, FALSE, &rrc_message_tvb); + + + if (rrc_message_tvb) + call_dissector(rrc_handle,rrc_message_tvb,actx->pinfo, proto_tree_get_root(tree)); + + return offset; } @@ -10866,7 +10878,7 @@ static int dissect_RANAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot /*--- End of included file: packet-ranap-fn.c ---*/ -#line 120 "packet-ranap-template.c" +#line 123 "packet-ranap-template.c" static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { @@ -13319,7 +13331,7 @@ void proto_register_ranap(void) { "ranap.T_value_03", HFILL }}, /*--- End of included file: packet-ranap-hfarr.c ---*/ -#line 220 "packet-ranap-template.c" +#line 223 "packet-ranap-template.c" }; /* List of subtrees */ @@ -13607,7 +13619,7 @@ void proto_register_ranap(void) { &ett_ranap_Outcome, /*--- End of included file: packet-ranap-ettarr.c ---*/ -#line 226 "packet-ranap-template.c" +#line 229 "packet-ranap-template.c" }; @@ -13649,6 +13661,7 @@ proto_reg_handoff_ranap(void) if (!initialized) { ranap_handle = find_dissector("ranap"); + rrc_handle = find_dissector("rrc.s_to_trnc_cont"); initialized = TRUE; /*--- Included file: packet-ranap-dis-tab.c ---*/ @@ -13930,7 +13943,7 @@ proto_reg_handoff_ranap(void) /*--- End of included file: packet-ranap-dis-tab.c ---*/ -#line 269 "packet-ranap-template.c" +#line 273 "packet-ranap-template.c" } else { dissector_delete("sccp.ssn", local_ranap_sccp_ssn, ranap_handle); } |