diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-09-19 08:06:25 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-09-19 08:06:25 +0000 |
commit | eba5b5b225c0c307bb20285b2bcd5a7fda64650f (patch) | |
tree | c5b7e28079e4bbe3240542d7a86977e4758b9231 /epan | |
parent | ee8d53adf5c00841618722e01480bde653454bfc (diff) |
sometimes it seems that we have the text based h248/megaco running ontop of
m3ua and not the binary one.
make the binary dissector check if it is really the text based one to be used and if so
call that dissector instead.
svn path=/trunk/; revision=15862
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-h248.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/epan/dissectors/packet-h248.c b/epan/dissectors/packet-h248.c index 87710b71c9..6c81df8aaf 100644 --- a/epan/dissectors/packet-h248.c +++ b/epan/dissectors/packet-h248.c @@ -4621,6 +4621,22 @@ dissect_h248(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_item *h248_item; proto_tree *h248_tree = NULL; + /* Check if it is actually a text based h248 encoding, which we call + megaco in ehtereal. + */ + if(tvb_length(tvb)>=6){ + if(!tvb_strneql(tvb, 0, "MEGACO", 6)){ + static dissector_handle_t megaco_handle=NULL; + if(!megaco_handle){ + megaco_handle = find_dissector("megaco"); + } + if(megaco_handle){ + call_dissector(megaco_handle, tvb, pinfo, tree); + return; + } + } + } + /* Make entry in the Protocol column on summary display */ if (check_col(pinfo->cinfo, COL_PROTOCOL)) col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.248"); |