Mercurial > hg > nginx-quic
view auto/cc/ccc @ 8600:e9f402bfe37e
HTTP/2: fixed window updates when buffering in filters.
In the body read handler, the window was incorrectly calculated
based on the full buffer size instead of the amount of free space
in the buffer. If the request body is buffered by a filter, and
the buffer is not empty after the read event is generated by the
filter to resume request body processing, this could result in
"http2 negative window update" alerts.
Further, in the body ready handler and in ngx_http_v2_state_read_data()
the buffer wasn't cleared when the data were already written to disk,
so the client might stuck without window updates.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 06 Sep 2021 14:54:47 +0300 |
parents | d620f497c50f |
children |
line wrap: on
line source
# Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. # Compaq C V6.5-207 ngx_include_opt="-I" # warnings CFLAGS="$CFLAGS -msg_enable level6 -msg_fatal level6" CFLAGS="$CFLAGS -msg_disable unknownmacro" CFLAGS="$CFLAGS -msg_disable unusedincl" CFLAGS="$CFLAGS -msg_disable unnecincl" CFLAGS="$CFLAGS -msg_disable nestincl" CFLAGS="$CFLAGS -msg_disable strctpadding" CFLAGS="$CFLAGS -msg_disable ansialiascast" CFLAGS="$CFLAGS -msg_disable inlinestoclsmod" CFLAGS="$CFLAGS -msg_disable cxxkeyword" CFLAGS="$CFLAGS -msg_disable longlongsufx" CFLAGS="$CFLAGS -msg_disable valuepres" # STUB CFLAGS="$CFLAGS -msg_disable truncintcast" CFLAGS="$CFLAGS -msg_disable trunclongcast" CFLAGS="$CFLAGS -msg_disable truncintasn" CFLAGS="$CFLAGS -msg_disable trunclongint" CFLAGS="$CFLAGS -msg_disable intconcastsgn" CFLAGS="$CFLAGS -msg_disable intconstsign" CFLAGS="$CFLAGS -msg_disable switchlong" CFLAGS="$CFLAGS -msg_disable subscrbounds2" CFLAGS="$CFLAGS -msg_disable hexoctunsign" CFLAGS="$CFLAGS -msg_disable ignorecallval" CFLAGS="$CFLAGS -msg_disable nonstandcast" CFLAGS="$CFLAGS -msg_disable embedcomment" CFLAGS="$CFLAGS -msg_disable unreachcode" CFLAGS="$CFLAGS -msg_disable questcompare2" CFLAGS="$CFLAGS -msg_disable unusedtop" CFLAGS="$CFLAGS -msg_disable unrefdecl" CFLAGS="$CFLAGS -msg_disable bitnotint"