mirror of
https://github.com/nginx/nginx.git
synced 2025-02-25 18:55:26 -06:00
QUIC: prevent deleted stream frame retransmissions.
Since a2a513b93c, stream frames no longer need to be retransmitted after it
was deleted. The frames which were retransmitted before, could be stream data
frames sent prior to a RESET_STREAM. Such retransmissions are explicitly
prohibited by RFC 9000, Section 19.4.
This commit is contained in:
committed by
Roman Arutyunyan
parent
144778aee6
commit
3f6d94d888
@@ -631,13 +631,12 @@ ngx_quic_resend_frames(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx)
|
||||
case NGX_QUIC_FT_STREAM:
|
||||
qs = ngx_quic_find_stream(&qc->streams.tree, f->u.stream.stream_id);
|
||||
|
||||
if (qs) {
|
||||
if (qs->send_state == NGX_QUIC_STREAM_SEND_RESET_SENT
|
||||
|| qs->send_state == NGX_QUIC_STREAM_SEND_RESET_RECVD)
|
||||
{
|
||||
ngx_quic_free_frame(c, f);
|
||||
break;
|
||||
}
|
||||
if (qs == NULL
|
||||
|| qs->send_state == NGX_QUIC_STREAM_SEND_RESET_SENT
|
||||
|| qs->send_state == NGX_QUIC_STREAM_SEND_RESET_RECVD)
|
||||
{
|
||||
ngx_quic_free_frame(c, f);
|
||||
break;
|
||||
}
|
||||
|
||||
/* fall through */
|
||||
|
||||
Reference in New Issue
Block a user