aboutsummaryrefslogtreecommitdiffstats
path: root/sharkd_session.c
diff options
context:
space:
mode:
authorAlexander Gryanko <xpahos@gmail.com>2019-02-27 07:55:52 +0300
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2019-09-22 05:29:30 +0000
commit9fff62e2a8a19b94f665b2937242b65fe0ef49fc (patch)
tree0089c0553d2e6686fb9797dc17f928298caf7abc /sharkd_session.c
parent893a2d9c62e8dcc4fe0f43c47e01743136f55386 (diff)
Qt, http2: Add Follow HTTP/2 Stream functionality
The HTTP/2 protocol multiplexes a single TCP connection into multiple independent streams. The Follow TCP output can interleave multiple HTTP/2 streams, making it harder to analyze a single HTTP/2 stream. Add the ability to select HTTP/2 Streams within a TCP stream. Internally, the HTTP/2 dissector now stores the known Stream IDs in a set for every TCP session which allows an amortized O(n) lookup time for the previous/next/max Stream ID. [Peter: make the dissector responsible for clamping the HTTP/2 Stream ID instead of the Qt code, that should permit future optimizations.] Change-Id: I5d78f29904ae8f227ae36e1a883155c0ed719200 Reviewed-on: https://code.wireshark.org/review/32221 Reviewed-by: Peter Wu <peter@lekensteyn.nl> Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Alexander Gryanko <xpahos@gmail.com> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'sharkd_session.c')
-rw-r--r--sharkd_session.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sharkd_session.c b/sharkd_session.c
index c2f7b53c90..4ca9d0af1f 100644
--- a/sharkd_session.c
+++ b/sharkd_session.c
@@ -2740,13 +2740,14 @@ sharkd_follower_visit_layers_cb(const void *key _U_, void *value, void *user_dat
const int proto_id = get_follow_proto_id(follower);
guint32 ignore_stream;
+ guint32 ignore_sub_stream;
if (proto_is_frame_protocol(pi->layers, proto_get_protocol_filter_name(proto_id)))
{
const char *layer_proto = proto_get_protocol_short_name(find_protocol_by_id(proto_id));
char *follow_filter;
- follow_filter = get_follow_conv_func(follower)(pi, &ignore_stream);
+ follow_filter = get_follow_conv_func(follower)(pi, &ignore_stream, &ignore_sub_stream);
json_dumper_begin_array(&dumper);
json_dumper_value_string(&dumper, layer_proto);