aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2005-09-19 08:06:25 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2005-09-19 08:06:25 +0000
commiteba5b5b225c0c307bb20285b2bcd5a7fda64650f (patch)
treec5b7e28079e4bbe3240542d7a86977e4758b9231 /epan
parentee8d53adf5c00841618722e01480bde653454bfc (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.c16
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");