aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/ansi_tcap/ansi_tcap.cnf
diff options
context:
space:
mode:
authorGraeme Lunt <graeme.lunt@smhs.co.uk>2010-06-29 18:07:33 +0000
committerGraeme Lunt <graeme.lunt@smhs.co.uk>2010-06-29 18:07:33 +0000
commit4095079e1cf06b2a576377e0b2d363fa424ef4d7 (patch)
treeb1a19c40be8f9ba71ebbc0e69b318186069dfd1f /asn1/ansi_tcap/ansi_tcap.cnf
parent890679152892e2a17af0fcf1f177a88a3fa04250 (diff)
Decode parameters as ASN.1 directly and avoid interpreting as an OCTET STRING.
svn path=/trunk/; revision=33374
Diffstat (limited to 'asn1/ansi_tcap/ansi_tcap.cnf')
-rw-r--r--asn1/ansi_tcap/ansi_tcap.cnf35
1 files changed, 6 insertions, 29 deletions
diff --git a/asn1/ansi_tcap/ansi_tcap.cnf b/asn1/ansi_tcap/ansi_tcap.cnf
index 23c5092269..079c9f4d9f 100644
--- a/asn1/ansi_tcap/ansi_tcap.cnf
+++ b/asn1/ansi_tcap/ansi_tcap.cnf
@@ -18,18 +18,12 @@ OperationCode/private VAL_PTR = &ansi_tcap_private.d.OperationCode_private
#.END
#--- INVOKE ---
-#.FIELD_ATTR
-Invoke/parameter TYPE = FT_BYTES DISPLAY = BASE_NONE
#.FN_BODY Invoke/parameter
-tvbuff_t *parameter_tvb;
- offset = dissect_ber_octet_string(TRUE, actx, tree, tvb, offset, hf_index,
- &parameter_tvb);
- if(!parameter_tvb)
- return offset;
+ if(find_tcap_subdissector(tvb, actx, tree))
+ offset = tvb_length(tvb);
- find_tcap_subdissector(parameter_tvb, actx, tree);
#.FN_HDR Invoke
ansi_tcap_private.d.pdu = 1;
@@ -37,18 +31,10 @@ tvbuff_t *parameter_tvb;
#--- RETURN RESULT ---
#.FIELD_ATTR
-ReturnResult/parameter TYPE = FT_BYTES DISPLAY = BASE_NONE
#.FN_BODY ReturnResult/parameter
-tvbuff_t *parameter_tvb;
-
-
- offset = dissect_ber_octet_string(TRUE, actx, tree, tvb, offset, hf_index,
- &parameter_tvb);
- if(!parameter_tvb)
- return offset;
-
- find_tcap_subdissector(parameter_tvb, actx, tree);
+ if(find_tcap_subdissector(tvb, actx, tree))
+ offset = tvb_length(tvb);
#.FN_HDR ReturnResult
ansi_tcap_private.d.pdu = 2;
@@ -56,18 +42,9 @@ tvbuff_t *parameter_tvb;
#--- RETURN ERROR ---
-#.FIELD_ATTR
-ReturnError/parameter TYPE = FT_BYTES DISPLAY = BASE_NONE
-
#.FN_BODY ReturnError/parameter
-tvbuff_t *parameter_tvb;
-
- offset = dissect_ber_octet_string(TRUE, actx, tree, tvb, offset, hf_index,
- &parameter_tvb);
- if(!parameter_tvb)
- return offset;
-
- find_tcap_subdissector(parameter_tvb, actx, tree);
+ if(find_tcap_subdissector(tvb, actx, tree))
+ offset = tvb_length(tvb);
#.FN_HDR ReturnError
ansi_tcap_private.d.pdu = 3;