diff options
author | Michael Mann <mmann78@netscape.net> | 2014-08-13 08:56:22 -0400 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-08-14 04:21:05 +0000 |
commit | d68d0e88b4924a610b5cd2fd3a748b00c9bbab1a (patch) | |
tree | f46c04238502faa689c173f1b8420c8d19d3c51e /epan/dissectors/packet-kafka.c | |
parent | f64421df3f230e89e0d83e327926f4c46fbd70dc (diff) |
Eliminate proto_tree_add_text from some dissectors.
Other minor cleanup while in the neighborhood.
Change-Id: If73a029f564219782c313d4154c24c7ce7458b52
Reviewed-on: https://code.wireshark.org/review/3574
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-kafka.c')
-rw-r--r-- | epan/dissectors/packet-kafka.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/epan/dissectors/packet-kafka.c b/epan/dissectors/packet-kafka.c index 016582c12c..4e03cac2d3 100644 --- a/epan/dissectors/packet-kafka.c +++ b/epan/dissectors/packet-kafka.c @@ -30,6 +30,7 @@ #include <epan/dissectors/packet-tcp.h> #include <epan/conversation.h> #include <epan/packet.h> +#include <epan/expert.h> #include <epan/prefs.h> #include <epan/wmem/wmem.h> @@ -88,6 +89,8 @@ static gint ett_kafka_request_partition = -1; static gint ett_kafka_response_topic = -1; static gint ett_kafka_response_partition = -1; +static expert_field ei_kafka_message_decompress = EI_INIT; + static guint kafka_port = 0; #define KAFKA_PRODUCE 0 @@ -245,7 +248,7 @@ kafka_get_bytes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int off static int dissect_kafka_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int start_offset) { - proto_item *ti; + proto_item *ti, *decrypt_item; proto_tree *subtree; tvbuff_t *raw, *payload; int offset = start_offset; @@ -277,9 +280,8 @@ dissect_kafka_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int s add_new_data_source(pinfo, payload, "Uncompressed Message"); dissect_kafka_message_set(payload, pinfo, subtree, 0, FALSE); } else { - /* TODO make this an expert item */ - proto_tree_add_text(subtree, tvb, 0, tvb_length(raw), "[Failed to decompress message!]"); - proto_tree_add_item(subtree, hf_kafka_message_value, raw, 0, -1, ENC_NA); + decrypt_item = proto_tree_add_item(subtree, hf_kafka_message_value, raw, 0, -1, ENC_NA); + expert_add_info(pinfo, decrypt_item, &ei_kafka_message_decompress); } offset += tvb_length(raw); } @@ -1228,11 +1230,19 @@ proto_register_kafka(void) &ett_kafka_response_partition }; + static ei_register_info ei[] = { + { &ei_kafka_message_decompress, { "kafka.decompress_failed", PI_UNDECODED, PI_WARN, "Failed to decompress message", EXPFILL }}, + }; + + expert_module_t* expert_kafka; + proto_kafka = proto_register_protocol("Kafka", "Kafka", "kafka"); proto_register_field_array(proto_kafka, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); + expert_kafka = expert_register_protocol(proto_kafka); + expert_register_field_array(expert_kafka, ei, array_length(ei)); kafka_module = prefs_register_protocol(proto_kafka, proto_reg_handoff_kafka); |