From be94b45514e1cbfada335398fa53da2b437856a6 Mon Sep 17 00:00:00 2001 From: Luis Ontanon Date: Wed, 28 Dec 2005 19:46:57 +0000 Subject: - Decode some more annex C fields - Keep track of terminations (link wildcarded ones to real ones) - Keep termination info and link aal2 terminations to alcap legs svn path=/trunk/; revision=16914 --- asn1/h248/h248.cnf | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'asn1/h248/h248.cnf') diff --git a/asn1/h248/h248.cnf b/asn1/h248/h248.cnf index 7b52d4812b..bd561c7d9a 100644 --- a/asn1/h248/h248.cnf +++ b/asn1/h248/h248.cnf @@ -114,13 +114,15 @@ ServiceChangeReply/terminationID terminationIDList guint32 ctx_id = 0; offset = dissect_h248_ctx_id(implicit_tag, pinfo, tree, tvb, offset, &ctx_id); ctx = h248_ctx(msg,trx,ctx_id); + term = NULL; #.END #.FN_BODY ActionReply/contextId guint32 ctx_id; offset = dissect_h248_ctx_id(implicit_tag, pinfo, tree, tvb, offset, &ctx_id); - ctx = h248_ctx(msg,trx,ctx_id); + ctx = h248_ctx(msg ,trx,ctx_id); cmd = NULL; + term = NULL; #.END #.FN_FTR ActionReply @@ -247,7 +249,7 @@ ServiceChangeReply/terminationID terminationIDList #.FN_HDR TerminationID term = ep_new0(h248_term_t); - + wild_term = H248_WILDCARD_NONE; #.END #.FN_BODY WildcardField @@ -257,6 +259,9 @@ ServiceChangeReply/terminationID terminationIDList proto_tree_add_item(tree,hf_h248_term_wild_type,new_tvb,0,1,FALSE); proto_tree_add_item(tree,hf_h248_term_wild_level,new_tvb,0,1,FALSE); proto_tree_add_item(tree,hf_h248_term_wild_position,new_tvb,0,1,FALSE); + + wild_term = tvb_get_guint8(new_tvb,0) & 0x80 ? H248_WILDCARD_CHOOSE : H248_WILDCARD_ALL; + #.END #.FN_BODY TerminationID/id @@ -264,13 +269,14 @@ ServiceChangeReply/terminationID terminationIDList offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, &new_tvb); term->len = tvb_length(new_tvb); - + term->type = 0; /* unknown */ + if (term->len) { term->buffer = ep_tvb_memdup(new_tvb,0,term->len); term->str = bytes_to_str(term->buffer,term->len); } - - h248_cmd_add_term(cmd, term); + + term = h248_cmd_add_term(msg, trx, cmd, term, wild_term); if (new_tvb && h248_term_handle) { call_dissector(h248_term_handle, new_tvb, pinfo, tree); -- cgit v1.2.3