aboutsummaryrefslogtreecommitdiffstats
path: root/asn1
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2009-06-27 13:37:03 +0000
committerAnders Broman <anders.broman@ericsson.com>2009-06-27 13:37:03 +0000
commit9b9880a25a5a168ed80db71a37596ac24249cd6f (patch)
tree42c33550b7b45708ffc4573a80d856b08dc04e59 /asn1
parentf179827b210e3d04c5a89b23388fb06c1b942fbd (diff)
From yin sun:
h248 term wildcard enhancement svn path=/trunk/; revision=28861
Diffstat (limited to 'asn1')
-rw-r--r--asn1/h248/h248.cnf4
-rw-r--r--asn1/h248/packet-h248-template.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/asn1/h248/h248.cnf b/asn1/h248/h248.cnf
index 1be341659f..5f87b43e42 100644
--- a/asn1/h248/h248.cnf
+++ b/asn1/h248/h248.cnf
@@ -285,6 +285,8 @@ TransactionPending/transactionId tpend_transactionId
proto_tree_add_item(tree,hf_h248_term_wild_position,new_tvb,0,1,FALSE);
wild_term = tvb_get_guint8(new_tvb,0) & 0x80 ? GCP_WILDCARD_CHOOSE : GCP_WILDCARD_ALL;
+ /* limitation: assume only one wildcard is used */
+ wild_card = tvb_get_guint8(new_tvb,0);
#.END
@@ -304,7 +306,9 @@ TransactionPending/transactionId tpend_transactionId
curr_info.term = gcp_cmd_add_term(curr_info.msg, curr_info.trx, curr_info.cmd, curr_info.term, wild_term, keep_persistent_data);
if (h248_term_handle) {
+ actx->pinfo->private_data = &wild_card;
call_dissector(h248_term_handle, new_tvb, actx->pinfo, tree);
+ wild_card = 0xFF;
}
} else {
curr_info.term->len = 0;
diff --git a/asn1/h248/packet-h248-template.c b/asn1/h248/packet-h248-template.c
index 488163e800..dafa9c3f88 100644
--- a/asn1/h248/packet-h248-template.c
+++ b/asn1/h248/packet-h248-template.c
@@ -660,7 +660,7 @@ static const value_string wildcard_levels[] = {
static h248_curr_info_t curr_info = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
static guint32 error_code;
static gcp_wildcard_t wild_term;
-
+static guint8 wild_card = 0xFF; /* place to store wildcardField */
extern void h248_param_ber_integer(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, int hfid, h248_curr_info_t* u _U_, void* implicit) {
asn1_ctx_t asn1_ctx;