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 fedora: add spec file 2012-10-27 14:54:06 -07:00
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 Update ax_check_compile_flag.m4 2016-01-22 23:21:06 +09:00
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 Enable ConstructorInitializerAllOnOneLineOrOnePerLine for better diff 2016-01-27 21:14:07 +09:00
.gitignore cmake: ignore "make install" artifact 2016-02-29 16:20:31 +01:00
.gitmodules Add neverbleed as submodule 2015-09-26 18:55:02 +09:00
.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 Make sure that nghttp2 license is MIT license 2015-04-01 19:41:32 +09:00
COPYING List all contributors in AUTHORS 2016-02-14 17:40:58 +09:00
ChangeLog Added libtool files 2012-01-18 00:53:12 +09:00
Dockerfile.android Update github links 2016-03-26 00:58:32 +09:00
LICENSE Add LICENSE file to point to COPYING 2016-01-09 18:26:45 +09:00
Makefile.am Add CMake-related files to EXTRA_DIST 2016-03-12 01:38:12 +01:00
NEWS Rebranding nghttp2 2013-07-13 00:43:06 +09:00
README Added libtool files 2012-01-18 00:53:12 +09:00
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 Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00
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 mod a+x to auto-gen scripts 2014-10-27 21:27:41 +09:00
genheaderfunc.py nghttpx: Change pushed stream's priority 2016-01-21 21:11:57 +09:00
genlibtokenlookup.py 1. Modify genlibtokenlookup.py to remove redundant header comparisons. 2016-08-05 09:56:15 +00:00
genmethodfunc.py nghttpx: Tokenize request method 2015-06-09 23:33:14 +09:00
gennghttpxfun.py nghttpx: Add access log variable for backend host and port 2016-08-05 00:04:47 +09:00
gennmchartbl.py mod a+x to auto-gen scripts 2014-10-27 21:27:41 +09:00
gentokenlookup.py nghttpx: Refactor log format parsing 2015-07-14 23:36:44 +09:00
genvchartbl.py mod a+x to auto-gen scripts 2014-10-27 21:27:41 +09:00
git-clang-format Add .clang-format config file and git-clang-format from clang project 2014-11-27 23:56:29 +09:00
help2rst.py doc: Fix Sphinx build warnings 2016-07-16 19:08:38 +09:00
makebashcompletion Add bash_completion files for nghttp, nghttpd, nghttpx and h2load 2015-02-15 12:05:27 +09:00
makemanpages Produce man pages using sphinx 2015-01-10 00:37:42 +09:00
makerelease.sh makerelease.sh: Remove duplicate `git module update --init` 2016-02-26 00:57:34 +09:00
mkcipherlist.py nghttpx: Don't allow blacked listed cipher suites for HTTP/2 connection 2015-08-19 23:42:43 +09:00
mkhufftbl.py mkhufftbl.py: Refactor 2015-04-21 23:48:45 +09:00
mkstatichdtbl.py Use hash table for dynamic table lookup 2015-09-19 21:29:40 +09:00
nghttpx.conf.sample Fix comments, too 2015-03-25 21:04:49 +08:00
pre-commit Add pre-commit script 2014-11-27 23:56:29 +09:00
proxy.pac.sample Add sample pac file and release script 2013-01-12 17:05:11 +09:00
releasechk Update releasechk 2016-04-25 22:41:48 +09:00

README

See README.rst