summaryrefslogtreecommitdiff
path: root/ssl/quic/quic_rx_depack.c
diff options
context:
space:
mode:
Diffstat (limited to 'ssl/quic/quic_rx_depack.c')
-rw-r--r--ssl/quic/quic_rx_depack.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/ssl/quic/quic_rx_depack.c b/ssl/quic/quic_rx_depack.c
index a81f47d6d9..2bc4e146e8 100644
--- a/ssl/quic/quic_rx_depack.c
+++ b/ssl/quic/quic_rx_depack.c
@@ -172,7 +172,14 @@ static int depack_do_frame_stop_sending(PACKET *pkt,
}
stream->peer_stop_sending = 1;
- ossl_quic_stream_map_update_state(&ch->qsm, stream);
+
+ /*
+ * RFC 9000 s. 3.5: Receiving a STOP_SENDING frame means we must respond in
+ * turn with a RESET_STREAM frame for the same part of the stream. The other
+ * part is unaffected.
+ */
+ ossl_quic_stream_map_reset_stream_send_part(&ch->qsm, stream,
+ frame_data.app_error_code);
return 1;
}