Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-95069 Add HTTP/2 support to Qt HTTP server
  3. QTBUG-122345

QHttp2Connection: Add support for RST_STREAM frames

    XMLWordPrintable

Details

    • Technical task
    • Resolution: Unresolved
    • Not Evaluated
    • None
    • None
    • Foundation Sprint 69, Foundation Sprint 70, Foundation Sprint 71, Foundation Sprint 72, Foundation Sprint 73, Foundation Sprint 74, Foundation Sprint 75, Foundation Sprint 76, Foundation Sprint 101, Foundations Sprint 102, Foundation Sprint 103, Foundation Sprint 104, Foundation Sprint 105, Foundation Sprint 106, Foundation Sprint 107

    Description

      RST_STREAM frames are used to immediately terminate a stream. Add tests to ensure that they work properly.

      Reception of RST_STREAM:

      • Close a stream immediately upon reception of a RST_STREAM frame.
      • Send a GOAWAY(PROTOCOL ERROR) if stream id is 0x00 or stream is in idle state.
      • Send a GOAWAY(FRAME_SIZE_ERROR) if size of frame size is other than 4.
      • Never respond to a RST_STREAM with a RST_STREAM or looping might occur.

       

      Sending of RST_STREAM:

      • Ensure that streams are half-closed-remote or closed after receiving a frame with END_STREAM flag set. Send RST_STREAM with error code STREAM_CLOSED if receiving DATA frames after this.
      • Send RST_STREAM with error code PROTOCOL_ERROR if receiving malformed messages (8.1.1 of RFC 9113).
      • Look through the handling of each incoming frame type in qhttp2connection.cpp to ensure that RST_STREAM is sent where a stream error MUST be sent according to RFC 9113.

      Attachments

        For Gerrit Dashboard: QTBUG-122345
        # Subject Branch Project Status CR V

        Activity

          People

            matthias_rauter Matthias Rauter
            oyheskes Øystein Heskestad
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There is 1 open Gerrit change