diff options
Diffstat (limited to 'epan/dissectors/packet-h450.c')
-rw-r--r-- | epan/dissectors/packet-h450.c | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/epan/dissectors/packet-h450.c b/epan/dissectors/packet-h450.c index 1c1920b9d8..66df7f3e69 100644 --- a/epan/dissectors/packet-h450.c +++ b/epan/dissectors/packet-h450.c @@ -38,6 +38,7 @@ #include <glib.h> #include <epan/packet.h> +#include <epan/expert.h> #include <epan/asn1.h> @@ -447,7 +448,7 @@ static int hf_h450_12_ssMWICallbackCall = -1; /* NULL */ static int hf_h450_12_ssCISilentMonitorPermitted = -1; /* NULL */ /*--- End of included file: packet-h450-hf.c ---*/ -#line 54 "../../asn1/h450/packet-h450-template.c" +#line 55 "../../asn1/h450/packet-h450-template.c" /* Initialize the subtree pointers */ @@ -625,7 +626,11 @@ static gint ett_h450_12_FeatureValues = -1; static gint ett_h450_12_FeatureControl = -1; /*--- End of included file: packet-h450-ett.c ---*/ -#line 57 "../../asn1/h450/packet-h450-template.c" +#line 58 "../../asn1/h450/packet-h450-template.c" + +static expert_field ei_h450_unsupported_arg_type = EI_INIT; +static expert_field ei_h450_unsupported_result_type = EI_INIT; +static expert_field ei_h450_unsupported_error_type = EI_INIT; static const value_string h450_str_operation[] = { @@ -728,7 +733,7 @@ static const value_string h450_str_operation[] = { { 85, "cmnInform" }, /*--- End of included file: packet-h450-table10.c ---*/ -#line 60 "../../asn1/h450/packet-h450-template.c" +#line 65 "../../asn1/h450/packet-h450-template.c" { 0, NULL} }; @@ -816,7 +821,7 @@ static const value_string h450_str_error[] = { /* Unknown or empty loop list ERROR */ /*--- End of included file: packet-h450-table20.c ---*/ -#line 65 "../../asn1/h450/packet-h450-template.c" +#line 70 "../../asn1/h450/packet-h450-template.c" { 0, NULL} }; @@ -4481,7 +4486,7 @@ static int dissect_h450_12_CmnArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, /*--- End of included file: packet-h450-fn.c ---*/ -#line 74 "../../asn1/h450/packet-h450-template.c" +#line 79 "../../asn1/h450/packet-h450-template.c" typedef struct _h450_op_t { gint32 opcode; @@ -4590,7 +4595,7 @@ static const h450_op_t h450_op_tab[] = { /* cmnInform */ { 85, dissect_h450_12_CmnArg_PDU, NULL }, /*--- End of included file: packet-h450-table11.c ---*/ -#line 83 "../../asn1/h450/packet-h450-template.c" +#line 88 "../../asn1/h450/packet-h450-template.c" }; typedef struct _h450_err_t { @@ -4682,7 +4687,7 @@ static const h450_err_t h450_err_tab[] = { /* Unknown or empty loop list ERROR */ /*--- End of included file: packet-h450-table21.c ---*/ -#line 92 "../../asn1/h450/packet-h450-template.c" +#line 97 "../../asn1/h450/packet-h450-template.c" }; static const h450_op_t *get_op(gint32 opcode) { @@ -4743,7 +4748,7 @@ dissect_h450_arg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data offset = op_ptr->arg_pdu(tvb, pinfo, tree, NULL); else if (tvb_length_remaining(tvb, offset) > 0) { - proto_tree_add_text(tree, tvb, offset, -1, "UNSUPPORTED ARGUMENT TYPE (H.450)"); + proto_tree_add_expert(tree, pinfo, &ei_h450_unsupported_arg_type, tvb, offset, -1); offset += tvb_length_remaining(tvb, offset); } @@ -4788,7 +4793,7 @@ dissect_h450_res(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data offset = op_ptr->res_pdu(tvb, pinfo, tree, NULL); else if (tvb_length_remaining(tvb, offset) > 0) { - proto_tree_add_text(tree, tvb, offset, -1, "UNSUPPORTED RESULT TYPE (H.450)"); + proto_tree_add_expert(tree, pinfo, &ei_h450_unsupported_result_type, tvb, offset, -1); offset += tvb_length_remaining(tvb, offset); } @@ -4833,7 +4838,7 @@ dissect_h450_err(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data offset = err_ptr->err_pdu(tvb, pinfo, tree, NULL); else if (tvb_length_remaining(tvb, offset) > 0) { - proto_tree_add_text(tree, tvb, offset, -1, "UNSUPPORTED ERROR TYPE (H.450)"); + proto_tree_add_expert(tree, pinfo, &ei_h450_unsupported_error_type, tvb, offset, -1); offset += tvb_length_remaining(tvb, offset); } @@ -6284,7 +6289,7 @@ void proto_register_h450(void) { NULL, HFILL }}, /*--- End of included file: packet-h450-hfarr.c ---*/ -#line 261 "../../asn1/h450/packet-h450-template.c" +#line 266 "../../asn1/h450/packet-h450-template.c" }; /* List of subtrees */ @@ -6464,9 +6469,16 @@ void proto_register_h450(void) { &ett_h450_12_FeatureControl, /*--- End of included file: packet-h450-ettarr.c ---*/ -#line 266 "../../asn1/h450/packet-h450-template.c" +#line 271 "../../asn1/h450/packet-h450-template.c" + }; + + static ei_register_info ei[] = { + { &ei_h450_unsupported_arg_type, { "h450.unsupported.arg_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ARGUMENT TYPE (H.450)", EXPFILL }}, + { &ei_h450_unsupported_result_type, { "h450.unsupported.result_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED RESULT TYPE (H.450)", EXPFILL }}, + { &ei_h450_unsupported_error_type, { "h450.unsupported.error_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ERROR TYPE (H.450)", EXPFILL }}, }; + expert_module_t* expert_h450; /* Register protocol */ proto_h450 = proto_register_protocol(PNAME, PSNAME, PFNAME); @@ -6474,6 +6486,8 @@ void proto_register_h450(void) { /* Register fields and subtrees */ proto_register_field_array(proto_h450, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); + expert_h450 = expert_register_protocol(proto_h450); + expert_register_field_array(expert_h450, ei, array_length(ei)); rose_ctx_init(&h450_rose_ctx); |