mirror of
https://github.com/nginx/nginx.git
synced 2024-11-21 16:28:40 +00: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:
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:
|
case NGX_QUIC_FT_STREAM:
|
||||||
qs = ngx_quic_find_stream(&qc->streams.tree, f->u.stream.stream_id);
|
qs = ngx_quic_find_stream(&qc->streams.tree, f->u.stream.stream_id);
|
||||||
|
|
||||||
if (qs) {
|
if (qs == NULL
|
||||||
if (qs->send_state == NGX_QUIC_STREAM_SEND_RESET_SENT
|
|| qs->send_state == NGX_QUIC_STREAM_SEND_RESET_SENT
|
||||||
|| qs->send_state == NGX_QUIC_STREAM_SEND_RESET_RECVD)
|
|| qs->send_state == NGX_QUIC_STREAM_SEND_RESET_RECVD)
|
||||||
{
|
{
|
||||||
ngx_quic_free_frame(c, f);
|
ngx_quic_free_frame(c, f);
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* fall through */
|
/* fall through */
|
||||||
|
Loading…
Reference in New Issue
Block a user