diff options
author | Evan Huus <eapache@gmail.com> | 2013-12-20 15:14:52 +0000 |
---|---|---|
committer | Evan Huus <eapache@gmail.com> | 2013-12-20 15:14:52 +0000 |
commit | 82112c8ea39b2aba09bd4470a4cad920f3318fd8 (patch) | |
tree | 529234e61816f5c83139f7ebf228b70f00023ce1 /epan/dissectors/packet-kafka.c | |
parent | 1feb5f00c1ea3de5abd864ee506bbb6bcde95522 (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.c | 7 |
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!]"); |