diff options
author | AndersBroman <anders.broman@ericsson.com> | 2014-05-20 12:54:20 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-05-21 20:17:29 +0000 |
commit | 2cfda31ff09893bd8c59acabc8faad7227f52ede (patch) | |
tree | a0bee1c33fe7bc2eeced9c2f7fe0bbe7628cebcd /epan/dissectors/packet-atn-ulcs.c | |
parent | bb01c7ac380a2978d8e1c5ca8fa7f2dd523a8323 (diff) |
Change the signature of dissector_try_heuristic() to return hdtbl_entry
which can be used to call the found heuristic dissector on the next pass.
Introduce call_heur_dissector_direct() to be used to call a heuristic
dissector which accepted the frame on the first pass.
Change-Id: I524edd717b7d92b510bd60acfeea686d5f2b4582
Reviewed-on: https://code.wireshark.org/review/1697
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-atn-ulcs.c')
-rw-r--r-- | epan/dissectors/packet-atn-ulcs.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/epan/dissectors/packet-atn-ulcs.c b/epan/dissectors/packet-atn-ulcs.c index edfdc2a61e..3fdb7029ca 100644 --- a/epan/dissectors/packet-atn-ulcs.c +++ b/epan/dissectors/packet-atn-ulcs.c @@ -381,6 +381,7 @@ dissect_atn_ulcs_T_pdv_list_presentation_data_values_arbitrary(tvbuff_t *tvb _U_ proto_item *ti = NULL; proto_tree *atn_ulcs_tree = NULL; atn_conversation_t *atn_cv = NULL; + heur_dtbl_entry_t *hdtbl_entry; /* extract bitstring into new tvb buffer */ offset = dissect_per_bit_string( @@ -445,6 +446,7 @@ dissect_atn_ulcs_T_pdv_list_presentation_data_values_arbitrary(tvbuff_t *tvb _U_ tvb_new_subset_remaining(tvb_usr,0), actx->pinfo, root_tree, + &hdtbl_entry, NULL); break; } @@ -455,6 +457,7 @@ dissect_atn_ulcs_T_pdv_list_presentation_data_values_arbitrary(tvbuff_t *tvb _U_ tvb_new_subset_remaining(tvb_usr,0), actx->pinfo, root_tree, + &hdtbl_entry, NULL); } break; @@ -592,6 +595,7 @@ dissect_atn_ulcs_T_externalt_encoding_arbitrary(tvbuff_t *tvb _U_, int offset _U tvbuff_t *tvb_usr = NULL; packet_info * pinfo = actx->pinfo; atn_conversation_t *atn_cv = NULL; + heur_dtbl_entry_t *hdtbl_entry; /* decode bit-string user data within ACSE */ offset = dissect_per_bit_string( @@ -659,6 +663,7 @@ dissect_atn_ulcs_T_externalt_encoding_arbitrary(tvbuff_t *tvb _U_, int offset _U tvb_new_subset_remaining(tvb_usr,0), actx->pinfo, root_tree, + &hdtbl_entry, NULL); break; } @@ -669,11 +674,12 @@ dissect_atn_ulcs_T_externalt_encoding_arbitrary(tvbuff_t *tvb _U_, int offset _U tvb_new_subset_remaining(tvb_usr,0), actx->pinfo, root_tree, + &hdtbl_entry, NULL); } } - offset += tvb_length_remaining(tvb, offset); + offset += tvb_reported_length_remaining(tvb, offset); return offset; @@ -2142,7 +2148,7 @@ static gboolean dissect_atn_ulcs_heur( { /* do we have enough data*/ /* at least session + presentation data or pdv-list */ - if (tvb_length(tvb) < 2){ + if (tvb_captured_length(tvb) < 2){ return FALSE; } /* check for session/presentation/ACSE PDU's */ |