aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-kafka.c
diff options
context:
space:
mode:
authorEvan Huus <eapache@gmail.com>2013-12-20 15:14:52 +0000
committerEvan Huus <eapache@gmail.com>2013-12-20 15:14:52 +0000
commit82112c8ea39b2aba09bd4470a4cad920f3318fd8 (patch)
tree529234e61816f5c83139f7ebf228b70f00023ce1 /epan/dissectors/packet-kafka.c
parent1feb5f00c1ea3de5abd864ee506bbb6bcde95522 (diff)
The payload of a compressed Kafka message is supposed to be itself a
message-set, so dissect it as such. I don't have a capture demonstrating this at the moment, but it ought to work. svn path=/trunk/; revision=54303
Diffstat (limited to 'epan/dissectors/packet-kafka.c')
-rw-r--r--epan/dissectors/packet-kafka.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/epan/dissectors/packet-kafka.c b/epan/dissectors/packet-kafka.c
index fce1fb8564..4eb6f6da6f 100644
--- a/epan/dissectors/packet-kafka.c
+++ b/epan/dissectors/packet-kafka.c
@@ -145,6 +145,11 @@ typedef struct _kafka_query_response_t {
gboolean response_found;
} kafka_query_response_t;
+static int
+dissect_kafka_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int start_offset);
+static int
+dissect_kafka_message_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int start_offset);
+
/* HELPERS */
static guint
@@ -270,7 +275,7 @@ dissect_kafka_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int s
payload = tvb_child_uncompress(tvb, raw, 0, tvb_length(raw));
if (payload) {
add_new_data_source(pinfo, payload, "Uncompressed Message");
- proto_tree_add_item(subtree, hf_kafka_message_value, payload, 0, -1, ENC_NA);
+ dissect_kafka_message_set(payload, pinfo, subtree, 0);
} else {
/* TODO make this an expert item */
proto_tree_add_text(subtree, tvb, 0, tvb_length(raw), "[Failed to decompress message!]");