summaryrefslogtreecommitdiff
path: root/asn1/h248/h248.cnf
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2009-09-10 05:57:30 +0000
committerAnders Broman <anders.broman@ericsson.com>2009-09-10 05:57:30 +0000
commit8a23b29c91d1e57c5c6b18a8a767ed77a1cc081b (patch)
tree40000abb2e8e755f0015df8fc4c981169cec5873 /asn1/h248/h248.cnf
parentc6c330b092caaa12f42b865600d2377e0a977ffc (diff)
downloadwireshark-8a23b29c91d1e57c5c6b18a8a767ed77a1cc081b.tar.gz
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.cnf62
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 = &parameter_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