Mercurial > hg > nginx
changeset 8539:62db595a86b5 quic
QUIC: do not send STOP_SENDING after STREAM fin.
Previously STOP_SENDING was sent to client upon stream closure if rev->eof and
rev->error were not set. This was an indirect indication that no RESET_STREAM
or STREAM fin has arrived. But it is indeed possible that rev->eof is not set,
but STREAM fin has already been received, just not read out by the application.
In this case sending STOP_SENDING does not make sense and can be misleading for
some clients.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Sun, 06 Sep 2020 14:51:23 +0300 |
parents | 3afaaaa930ab |
children | d45961e062fa |
files | src/event/ngx_event_quic.c |
diffstat | 1 files changed, 1 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/event/ngx_event_quic.c Thu Sep 03 13:11:27 2020 +0300 +++ b/src/event/ngx_event_quic.c Sun Sep 06 14:51:23 2020 +0300 @@ -4895,7 +4895,7 @@ if ((qs->id & NGX_QUIC_STREAM_SERVER_INITIATED) == 0 || (qs->id & NGX_QUIC_STREAM_UNIDIRECTIONAL) == 0) { - if (!c->read->eof && !c->read->error) { + if (!c->read->pending_eof && !c->read->error) { frame = ngx_quic_alloc_frame(pc, 0); if (frame == NULL) { return;