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/qt/main_window_slots.cpp | |
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/qt/main_window_slots.cpp')
-rw-r--r-- | ui/qt/main_window_slots.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ui/qt/main_window_slots.cpp b/ui/qt/main_window_slots.cpp index ccf8f1af2e..ec2288addd 100644 --- a/ui/qt/main_window_slots.cpp +++ b/ui/qt/main_window_slots.cpp @@ -1115,7 +1115,8 @@ void MainWindow::recentActionTriggered() { void MainWindow::setMenusForSelectedPacket() { - gboolean is_ip = FALSE, is_tcp = FALSE, is_udp = FALSE, is_sctp = FALSE, is_tls = FALSE, is_rtp = FALSE, is_lte_rlc = FALSE, is_http = FALSE, is_http2 = FALSE; + gboolean is_ip = FALSE, is_tcp = FALSE, is_udp = FALSE, is_sctp = FALSE, is_tls = FALSE, is_rtp = FALSE, is_lte_rlc = FALSE, + is_http = FALSE, is_http2 = FALSE, is_quic = FALSE; /* Making the menu context-sensitive allows for easier selection of the desired item and has the added benefit, with large captures, of @@ -1175,6 +1176,7 @@ void MainWindow::setMenusForSelectedPacket() &is_tls, &is_rtp, &is_lte_rlc); is_http = proto_is_frame_protocol(capture_file_.capFile()->edt->pi.layers, "http"); is_http2 = proto_is_frame_protocol(capture_file_.capFile()->edt->pi.layers, "http2"); + is_quic = proto_is_frame_protocol(capture_file_.capFile()->edt->pi.layers, "quic"); } } @@ -1208,6 +1210,7 @@ void MainWindow::setMenusForSelectedPacket() main_ui_->actionAnalyzeFollowTLSStream->setEnabled(is_tls); main_ui_->actionAnalyzeFollowHTTPStream->setEnabled(is_http); main_ui_->actionAnalyzeFollowHTTP2Stream->setEnabled(is_http2); + main_ui_->actionAnalyzeFollowQUICStream->setEnabled(is_quic); foreach(QAction *cc_action, cc_actions) { cc_action->setEnabled(frame_selected); @@ -2774,6 +2777,11 @@ void MainWindow::on_actionAnalyzeFollowHTTP2Stream_triggered() openFollowStreamDialogForType(FOLLOW_HTTP2); } +void MainWindow::on_actionAnalyzeFollowQUICStream_triggered() +{ + openFollowStreamDialogForType(FOLLOW_QUIC); +} + void MainWindow::openSCTPAllAssocsDialog() { SCTPAllAssocsDialog *sctp_dialog = new SCTPAllAssocsDialog(this, capture_file_.capFile()); |