aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorDario Lombardo <lomato@gmail.com>2016-10-17 10:49:40 +0200
committerDario Lombardo <lomato@gmail.com>2016-10-17 09:22:18 +0000
commit5546400b55c4524e86ce98a92444fd3b48dcc96c (patch)
treeabd4331b610042e7b919e55acac405f563de2db2 /epan
parent51f316194d194fe1616112bf9d17130bc48a72f5 (diff)
frame: print debug line according to new console preference.
Change-Id: I4e4b7d08e7765c43904469bbf8ba5c0581428382 Reviewed-on: https://code.wireshark.org/review/18231 Petri-Dish: Dario Lombardo <lomato@gmail.com> Reviewed-by: Jörg Mayer <jmayer@loplof.de> Reviewed-by: Dario Lombardo <lomato@gmail.com>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-frame.c11
-rw-r--r--epan/prefs.c5
-rw-r--r--epan/prefs.h1
3 files changed, 12 insertions, 5 deletions
diff --git a/epan/dissectors/packet-frame.c b/epan/dissectors/packet-frame.c
index 292173c2e5..52592d54ff 100644
--- a/epan/dissectors/packet-frame.c
+++ b/epan/dissectors/packet-frame.c
@@ -680,11 +680,12 @@ dissect_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void*
if (!(decoded[byte] & (1 << bit))) {
field_info* fi = proto_find_field_from_offset(tree, i, tvb);
if (fi && fi->hfinfo->id != proto_frame) {
- g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_WARNING,
- "Dissector %s incomplete in frame %u: undecoded byte number %u "
- "(0x%.4X+%u)",
- (fi ? fi->hfinfo->abbrev : "[unknown]"),
- pinfo->num, i, i - i % 16, i % 16);
+ if (prefs.incomplete_dissectors_check_debug)
+ g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_WARNING,
+ "Dissector %s incomplete in frame %u: undecoded byte number %u "
+ "(0x%.4X+%u)",
+ (fi ? fi->hfinfo->abbrev : "[unknown]"),
+ pinfo->num, i, i - i % 16, i % 16);
proto_tree_add_expert_format(tree, pinfo, &ei_incomplete, tvb, i, 1, "Undecoded byte number: %u (0x%.4X+%u)", i, i - i % 16, i % 16);
}
}
diff --git a/epan/prefs.c b/epan/prefs.c
index 34bcd1fe7b..3f1677115a 100644
--- a/epan/prefs.c
+++ b/epan/prefs.c
@@ -2518,6 +2518,11 @@ prefs_register_modules(void)
prefs_register_uint_custom_preference(console_module, "log.level", "logging level",
"A bitmask of GLib log levels", &custom_cbs, &prefs.console_log_level);
+ prefs_register_bool_preference(console_module, "incomplete_dissectors_check_debug",
+ "Print debug line for incomplete dissectors",
+ "Look for dissectors that left some bytes undecoded (debug)",
+ &prefs.incomplete_dissectors_check_debug);
+
/* Capture
* These are preferences that can be read/written using the
* preference module API. These preferences still use their own
diff --git a/epan/prefs.h b/epan/prefs.h
index 095a2ce873..f18cf85f1d 100644
--- a/epan/prefs.h
+++ b/epan/prefs.h
@@ -215,6 +215,7 @@ typedef struct _e_prefs {
gboolean display_hidden_proto_items;
gboolean display_byte_fields_with_spaces;
gboolean enable_incomplete_dissectors_check;
+ gboolean incomplete_dissectors_check_debug;
gpointer filter_expressions;/* Actually points to &head */
gboolean gui_update_enabled;
software_update_channel_e gui_update_channel;