aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/qsig
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2011-03-01 13:01:26 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2011-03-01 13:01:26 +0000
commit16bdcb2fbe5ba7d3e9cd986b5e4d1151f1a49630 (patch)
tree4f98062fcdec5a3b0b5e464529ac55bb46767745 /asn1/qsig
parent0b2e755182e01518b13db2f375baf7ca9eeb749d (diff)
QSIG: decoding of PSS1InformationElement
svn path=/trunk/; revision=36108
Diffstat (limited to 'asn1/qsig')
-rw-r--r--asn1/qsig/packet-qsig-template.c6
-rw-r--r--asn1/qsig/qsig.cnf10
2 files changed, 16 insertions, 0 deletions
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