aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-kafka.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2014-08-13 08:56:22 -0400
committerAnders Broman <a.broman58@gmail.com>2014-08-14 04:21:05 +0000
commitd68d0e88b4924a610b5cd2fd3a748b00c9bbab1a (patch)
treef46c04238502faa689c173f1b8420c8d19d3c51e /epan/dissectors/packet-kafka.c
parentf64421df3f230e89e0d83e327926f4c46fbd70dc (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.c18
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);