nghttp2 - HTTP/2 C Library and tools
Go to file
Tatsuhiro Tsujikawa 16c46114dc More strict stream state handling
Previously, in server side, we used closed streams to detect the error
that the misbehaving client sends a frame on the incoming stream it
explicitly closed.  With this commit, we make a further step, and
detect one more error case.  Since we retain closed streams as long as
the sum of its size and the number of opened streams are equal or less
than max concurrent streams, we can safely say that if we get a frame
which is sent on the stream that is not found in either closed or
opened stream, it is already closed or has not existed.  Then we can
send GOAWAY.

The previous code shrinks closed streams when we closed another
stream, but now it is removed.  It is enough to adjust closed streams
when new incoming stream is created.

While creating this commit, we noticed that
NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS is defined as INT32_MAX.  But
since SETTINGS can contain value up to UINT32_MAX, it is not enough.
However, since the stream ID space is limited to INT32_MAX, it is high
enough.  We could keep this value, but this time we deprecate
NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS macro.  While it is in public
header, the effect of deprecating it is negligible because of the
reason we wrote above, and usually application sets much smaller value
(say, 100) as SETTINGS_MAX_CONCURRENT_STREAMS.
2016-08-07 19:31:00 +09:00
cmake cmake: fix jemalloc, libevent include dirs 2016-03-13 16:42:35 +01:00
contrib Merge branches 'master' and 'cmake-updated' into cmake 2016-03-14 17:26:15 +01:00
doc Update man pages 2016-07-31 21:16:34 +09:00
examples examples: Fix compile error with OpenSSL v1.1.0-beta2 2016-07-06 23:32:50 +09:00
fedora
integration-tests integration: Add tests for the case where response ends before request 2016-06-23 22:21:12 +09:00
lib More strict stream state handling 2016-08-07 19:31:00 +09:00
m4
python Add nghttp2_hd_inflate_hd2() and deprecate nghttp2_hd_inflate_hd() 2016-05-14 18:25:20 +09:00
script Add CMake-related files to EXTRA_DIST 2016-03-12 01:38:12 +01:00
src nghttpx: Add access log variable for backend host and port 2016-08-05 00:04:47 +09:00
tests More strict stream state handling 2016-08-07 19:31:00 +09:00
third-party Update http-parser to f2c26ee500ab3921010fa7ec66243365611e77dd 2016-05-28 12:17:17 +09:00
.clang-format
.gitignore cmake: ignore "make install" artifact 2016-02-29 16:20:31 +01:00
.gitmodules
.travis.yml Disable integration tests due to golang build failure 2016-04-23 20:50:49 +09:00
AUTHORS Update AUTHORS 2016-04-25 21:53:03 +09:00
CMakeLists.txt Bump up version number to 1.14.0-DEV 2016-07-21 22:53:26 +09:00
CMakeOptions.txt cmake: add python support 2016-02-16 12:17:49 +01:00
CONTRIBUTION
COPYING List all contributors in AUTHORS 2016-02-14 17:40:58 +09:00
ChangeLog
Dockerfile.android Update github links 2016-03-26 00:58:32 +09:00
LICENSE
Makefile.am Add CMake-related files to EXTRA_DIST 2016-03-12 01:38:12 +01:00
NEWS
README
README.rst Update doc 2016-07-16 12:51:04 +09:00
android-config Work with Android NDK r12b 2016-07-17 23:41:41 +09:00
android-make
cmakeconfig.h.in cmake: fix Windows support 2016-03-16 17:33:20 +01:00
configure.ac Revert "Output availability of ALPN in configure summary" 2016-08-02 22:00:00 +09:00
genauthoritychartbl.py Add genauthoritychartbl.py 2016-01-27 23:06:10 +09:00
gendowncasetbl.py
genheaderfunc.py
genlibtokenlookup.py 1. Modify genlibtokenlookup.py to remove redundant header comparisons. 2016-08-05 09:56:15 +00:00
genmethodfunc.py
gennghttpxfun.py nghttpx: Add access log variable for backend host and port 2016-08-05 00:04:47 +09:00
gennmchartbl.py
gentokenlookup.py
genvchartbl.py
git-clang-format
help2rst.py doc: Fix Sphinx build warnings 2016-07-16 19:08:38 +09:00
makebashcompletion
makemanpages
makerelease.sh makerelease.sh: Remove duplicate `git module update --init` 2016-02-26 00:57:34 +09:00
mkcipherlist.py
mkhufftbl.py
mkstatichdtbl.py
nghttpx.conf.sample
pre-commit
proxy.pac.sample
releasechk Update releasechk 2016-04-25 22:41:48 +09:00

README

See README.rst