diff options
author | Anders Broman <anders.broman@ericsson.com> | 2009-09-10 05:57:30 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2009-09-10 05:57:30 +0000 |
commit | 8a23b29c91d1e57c5c6b18a8a767ed77a1cc081b (patch) | |
tree | 40000abb2e8e755f0015df8fc4c981169cec5873 /asn1/h248/h248.cnf | |
parent | c6c330b092caaa12f42b865600d2377e0a977ffc (diff) |
From Alex Lindberg:
Add H248V1 suport.
(H248 dissector fails on poorly formed AuditReply packet from Media Gateway)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3953
svn path=/trunk/; revision=29835
Diffstat (limited to 'asn1/h248/h248.cnf')
-rw-r--r-- | asn1/h248/h248.cnf | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/asn1/h248/h248.cnf b/asn1/h248/h248.cnf index 5f87b43e42..b98fb65ac5 100644 --- a/asn1/h248/h248.cnf +++ b/asn1/h248/h248.cnf @@ -94,6 +94,10 @@ TransactionPending/transactionId tpend_transactionId gcp_analyze_msg(h248_tree, h248_tvb, curr_info.msg, &h248_arrel); #.END +#.FN_BODY Message/version VAL_PTR = &h248_version + %(DEFAULT_BODY)s +#.END + #.FN_BODY TransactionRequest/transactionId guint32 trx_id = 0; offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id); @@ -253,11 +257,37 @@ TransactionPending/transactionId tpend_transactionId H248_TAP(); #.END +#.FN_BODY CommandReply/auditCapReply +/* h248v1 support */ + if(h248_version > 1) { + %(DEFAULT_BODY)s +} else { + /* call V1 of the dissector */ + offset = dissect_h248_AuditReplyV1(implicit_tag, tvb, offset, actx, tree, hf_index); +} +#.END + #.FN_HDR CommandReply/auditValueReply curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITVAL_REPLY,offset,keep_persistent_data); H248_TAP(); #.END +#.FN_BODY CommandReply/auditValueReply +/* h248v1 support */ + if(h248_version > 1) { + %(DEFAULT_BODY)s +} else { + /* call V1 of the dissector */ + offset = dissect_h248_AuditReplyV1(implicit_tag, tvb, offset, actx, tree, hf_index); +} +#.END + +#.FN_BODY AuditReplyV1 +/* h248v1 support */ + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AuditReplyV1_sequence, hf_h248_auditValueReplyV1, ett_h248_AuditReplyV1); +#.END + #.FN_BODY ErrorDescriptor/errorCode offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_h248_error_code, &error_code); expert_add_info_format(actx->pinfo, actx->created_item, PI_RESPONSE_CODE, PI_WARN, "Errored Command"); @@ -317,7 +347,18 @@ TransactionPending/transactionId tpend_transactionId } #.END - +#.FN_BODY SCreasonValue +/* H248 v1 support */ + if ( h248_version >1 ) { + /* Not V1, so call "standard" function */ +%(DEFAULT_BODY)s +} else { + /* V1 so Value == octet string */ + offset = dissect_h248_ValueV1( implicit_tag, tvb, offset, actx, tree, hf_index); +}; + +#.END + #.FN_BODY SCreasonValueOctetStr VAL_PTR = ¶meter_tvb tvbuff_t *parameter_tvb; @@ -327,6 +368,25 @@ TransactionPending/transactionId tpend_transactionId return offset; dissect_h248_ServiceChangeReasonStr(FALSE, parameter_tvb, 0, actx, tree, hf_h248_serviceChangeReasonStr); +#.END + +#.FN_BODY EventParameter +/* H248 v1 support */ + if (h248_version >1) { + %(DEFAULT_BODY)s +} else { + offset = dissect_h248_EventParameterV1( implicit_tag, tvb, offset, actx, tree, hf_index); +} +#.END + +#.FN_BODY PropertyParm +/* H248 v1 support */ + if (h248_version >1) { + %(DEFAULT_BODY)s +} else { + offset = dissect_h248_PropertyParmV1( implicit_tag, tvb, offset, actx, tree, hf_index); +} +#.END #.TYPE_ATTR IP4Address/address TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL |