diff options
author | Luis Ontanon <luis.ontanon@gmail.com> | 2005-12-28 19:46:57 +0000 |
---|---|---|
committer | Luis Ontanon <luis.ontanon@gmail.com> | 2005-12-28 19:46:57 +0000 |
commit | be94b45514e1cbfada335398fa53da2b437856a6 (patch) | |
tree | 2290ecc4596f271f074da63e493e312062838e1d /asn1/h248/h248.cnf | |
parent | 78ed00ce3aa847f3ac1b33d4cc137eb8d0b2d0ff (diff) |
- 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
Diffstat (limited to 'asn1/h248/h248.cnf')
-rw-r--r-- | asn1/h248/h248.cnf | 16 |
1 files changed, 11 insertions, 5 deletions
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); |