aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-fix.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-fix.c')
-rw-r--r--epan/dissectors/packet-fix.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/epan/dissectors/packet-fix.c b/epan/dissectors/packet-fix.c
index 7109dc70fb..b4044c43d0 100644
--- a/epan/dissectors/packet-fix.c
+++ b/epan/dissectors/packet-fix.c
@@ -63,6 +63,8 @@ static gint ett_unknow = -1;
static gint ett_badfield = -1;
static gint ett_checksum = -1;
+static expert_field ei_fix_checksum_bad = EI_INIT;
+
static int hf_fix_data = -1; /* continuation data */
static int hf_fix_checksum_good = -1;
static int hf_fix_checksum_bad = -1;
@@ -362,7 +364,7 @@ dissect_fix_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
item = proto_tree_add_boolean(checksum_tree, hf_fix_checksum_bad, tvb, field_offset, tag->field_len, !sum_ok);
PROTO_ITEM_SET_GENERATED(item);
if (!sum_ok)
- expert_add_info_format(pinfo, item, PI_CHECKSUM, PI_ERROR, "Bad checksum");
+ expert_add_info(pinfo, item, &ei_fix_checksum_bad);
}
break;
default:
@@ -499,7 +501,12 @@ proto_register_fix(void)
&ett_checksum,
};
+ static ei_register_info ei[] = {
+ { &ei_fix_checksum_bad, { "fix.checksum_bad.expert", PI_CHECKSUM, PI_ERROR, "Bad checksum", EXPFILL }},
+ };
+
module_t *fix_module;
+ expert_module_t* expert_fix;
/* register re-init routine */
register_init_routine(&dissect_fix_init);
@@ -514,6 +521,8 @@ proto_register_fix(void)
proto_register_field_array(proto_fix, hf, array_length(hf));
proto_register_field_array(proto_fix, hf_FIX, array_length(hf_FIX));
proto_register_subtree_array(ett, array_length(ett));
+ expert_fix = expert_register_protocol(proto_fix);
+ expert_register_field_array(expert_fix, ei, array_length(ei));
fix_module = prefs_register_protocol(proto_fix, fix_prefs);
prefs_register_bool_preference(fix_module, "desegment",