diff options
author | Peter Wu <peter@lekensteyn.nl> | 2019-10-02 01:20:43 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2019-10-04 04:36:09 +0000 |
commit | d2a660d805df50a2cbf92dc9e75114d5c05b616d (patch) | |
tree | 34f01db10cebeb8d25fe77537524633a68b440de /ui/cli | |
parent | 750ffac7b608838d61082826b99a3885919cfc24 (diff) |
QUIC: Add Follow QUIC Stream support to Qt and tshark
The QUIC transport protocol provides a stream, similar to HTTP/2. Make
it possible to look at the stream contents. This can be helpful while
HTTP/3 support is not yet complete.
Known issues that will be addressed in the future:
- If a single packet contains multiple streams, then Follow QUIC Stream
will wrongly include data from streams other than the selected one.
This is tracked by bug 16093 and affects HTTP/2 as well.
- The Substream index menu does not properly filter for available
stream numbers. If a non-existing stream is selected, then changing
to another (potentially valid) index results in the "Capture file
invalid." error. As workaround, clear the display filter first.
- Follow Stream always selects Stream ID 0 instead of the first or
currently selected stream field in a packet. Users should manually
update the stream index as needed.
Change-Id: I5866be380d58c96f0a71a29abdbd1be20ae3534a
Ping-Bug: 13881
Reviewed-on: https://code.wireshark.org/review/34694
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'ui/cli')
-rw-r--r-- | ui/cli/tap-follow.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ui/cli/tap-follow.c b/ui/cli/tap-follow.c index c4d7399fd1..f905e59add 100644 --- a/ui/cli/tap-follow.c +++ b/ui/cli/tap-follow.c @@ -340,7 +340,7 @@ follow_arg_filter(const char **opt_argp, follow_info_t *follow_info) { *opt_argp += len; - /* if it's HTTP2 protocol we should read substream id otherwise it's a range parameter from follow_arg_range */ + /* if it's HTTP2 or QUIC protocol we should read substream id otherwise it's a range parameter from follow_arg_range */ if (cli_follow_info->sub_stream_index == -1 && sscanf(*opt_argp, ",%d%n", &cli_follow_info->sub_stream_index, &len) == 1 && ((*opt_argp)[len] == 0 || (*opt_argp)[len] == ',')) { @@ -454,8 +454,9 @@ static void follow_stream(const char *opt_argp, void *userdata) cli_follow_info = g_new0(cli_follow_info_t, 1); cli_follow_info->stream_index = -1; - /* use second parameter only for HTTP2 substream */ - if (strncmp(proto_filter_name, "http2", 5) == 0) { + /* use second parameter only for HTTP2 or QUIC substream */ + if (g_str_equal(proto_filter_name, "http2") || + g_str_equal(proto_filter_name, "quic")) { cli_follow_info->sub_stream_index = -1; } else { cli_follow_info->sub_stream_index = 0; |