From 16bdcb2fbe5ba7d3e9cd986b5e4d1151f1a49630 Mon Sep 17 00:00:00 2001 From: Tomas Kukosa Date: Tue, 1 Mar 2011 13:01:26 +0000 Subject: QSIG: decoding of PSS1InformationElement svn path=/trunk/; revision=36108 --- asn1/qsig/packet-qsig-template.c | 6 ++++++ asn1/qsig/qsig.cnf | 10 ++++++++++ 2 files changed, 16 insertions(+) (limited to 'asn1/qsig') diff --git a/asn1/qsig/packet-qsig-template.c b/asn1/qsig/packet-qsig-template.c index 26be9e4182..106a185be5 100644 --- a/asn1/qsig/packet-qsig-template.c +++ b/asn1/qsig/packet-qsig-template.c @@ -307,9 +307,13 @@ static gint ett_qsig = -1; static gint ett_qsig_ie = -1; static gint ett_qsig_unknown_extension = -1; #include "packet-qsig-ett.c" +static gint ett_cnq_PSS1InformationElement = -1; /* Preferences */ +/* Subdissectors */ +static dissector_handle_t q931_ie_handle = NULL; + /* Global variables */ static const char *extension_oid = NULL; static GHashTable *qsig_opcode2oid_hashtable = NULL; @@ -653,6 +657,7 @@ void proto_register_qsig(void) { &ett_qsig_ie, &ett_qsig_unknown_extension, #include "packet-qsig-ettarr.c" + &ett_cnq_PSS1InformationElement, }; /* Register protocol and dissector */ @@ -681,6 +686,7 @@ void proto_reg_handoff_qsig(void) { dissector_handle_t qsig_ie_handle; q931_handle = find_dissector("q931"); + q931_ie_handle = find_dissector("q931.ie"); qsig_arg_handle = new_create_dissector_handle(dissect_qsig_arg, proto_qsig); qsig_res_handle = new_create_dissector_handle(dissect_qsig_res, proto_qsig); diff --git a/asn1/qsig/qsig.cnf b/asn1/qsig/qsig.cnf index 30aac8ba53..f76e64429c 100644 --- a/asn1/qsig/qsig.cnf +++ b/asn1/qsig/qsig.cnf @@ -164,6 +164,16 @@ NameData TYPE = FT_STRING DISPLAY = BASE_NONE #.END +#.FN_BODY PSS1InformationElement/_untag VAL_PTR = &out_tvb + tvbuff_t *out_tvb = NULL; + proto_tree *data_tree; + +%(DEFAULT_BODY)s + data_tree = proto_item_add_subtree(%(ACTX)s->created_item, ett_cnq_PSS1InformationElement); + if (out_tvb && (tvb_length(out_tvb) > 0) && q931_ie_handle) + call_dissector(q931_ie_handle, out_tvb, %(ACTX)s->pinfo, data_tree); +#.END + #.TABLE10_BODY OPERATION { %(&operationCode)3s, "%(_name)s" }, #.END -- cgit v1.2.3