diff options
author | Graeme Lunt <graeme.lunt@smhs.co.uk> | 2010-06-29 18:07:33 +0000 |
---|---|---|
committer | Graeme Lunt <graeme.lunt@smhs.co.uk> | 2010-06-29 18:07:33 +0000 |
commit | 4095079e1cf06b2a576377e0b2d363fa424ef4d7 (patch) | |
tree | b1a19c40be8f9ba71ebbc0e69b318186069dfd1f /asn1/ansi_tcap/ansi_tcap.cnf | |
parent | 890679152892e2a17af0fcf1f177a88a3fa04250 (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.cnf | 35 |
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, - ¶meter_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, - ¶meter_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, - ¶meter_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; |