diff options
Diffstat (limited to 'epan/dissectors/packet-fix.c')
-rw-r--r-- | epan/dissectors/packet-fix.c | 11 |
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", |