aboutsummaryrefslogtreecommitdiffstats
path: root/ui/cli
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2019-10-02 01:20:43 +0100
committerAnders Broman <a.broman58@gmail.com>2019-10-04 04:36:09 +0000
commitd2a660d805df50a2cbf92dc9e75114d5c05b616d (patch)
tree34f01db10cebeb8d25fe77537524633a68b440de /ui/cli
parent750ffac7b608838d61082826b99a3885919cfc24 (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.c7
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;