nghttp2/lib
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
..
includes More strict stream state handling 2016-08-07 19:31:00 +09:00
.gitignore Refactor .gitignore files 2015-03-29 18:40:37 +09:00
CMakeLists.txt cmake: fix Windows build with CUnit 2016-03-17 23:32:07 +01:00
Makefile.am Merge branches 'master' and 'cmake-updated' into cmake 2016-03-14 17:26:15 +01:00
Makefile.msvc Revert "Robust handling for ssize_t on Win32 platform" 2016-06-22 21:29:34 +09:00
libnghttp2.pc.in libnghttp2: Remove dependency to zlib 2014-05-06 23:10:50 +09:00
nghttp2_buf.c More warning flags for --enable-werror 2015-09-23 16:49:45 +09:00
nghttp2_buf.h Fix typo 2016-05-18 01:25:37 +09:00
nghttp2_callbacks.c Add nghttp2_error_callback to tell application human readable error message 2016-03-13 18:22:52 +09:00
nghttp2_callbacks.h Add nghttp2_error_callback to tell application human readable error message 2016-03-13 18:22:52 +09:00
nghttp2_frame.c Pass unknown SETTINGS values to nghttp2_on_frame_recv_callback 2016-04-10 16:36:04 +09:00
nghttp2_frame.h Add nghttp2_option_set_max_send_header_block_length API function 2016-06-15 00:05:15 +09:00
nghttp2_hd.c 1. Modify genlibtokenlookup.py to remove redundant header comparisons. 2016-08-05 09:56:15 +00:00
nghttp2_hd.h Add nghttp2_hd_inflate_hd2() and deprecate nghttp2_hd_inflate_hd() 2016-05-14 18:25:20 +09:00
nghttp2_hd_huffman.c Always allocate buffer for name, and value 2016-03-12 21:12:26 +09:00
nghttp2_hd_huffman.h More warning flags for --enable-werror 2015-09-23 16:49:45 +09:00
nghttp2_hd_huffman_data.c Reformat lines with clang-format-3.5 2014-11-27 23:56:30 +09:00
nghttp2_helper.c Add nghttp2_session_set_local_window_size() API function 2016-05-29 23:13:11 +09:00
nghttp2_helper.h Add nghttp2_session_set_local_window_size() API function 2016-05-29 23:13:11 +09:00
nghttp2_http.c Reference counted HPACK name/value pair 2016-03-12 21:12:27 +09:00
nghttp2_http.h Reference counted HPACK name/value pair 2016-03-12 21:12:27 +09:00
nghttp2_int.h Return fatal error if flooding is detected to close session immediately 2015-09-30 22:19:03 +09:00
nghttp2_map.c Refactor map remove 2016-05-14 11:34:51 +09:00
nghttp2_map.h More warning flags for --enable-werror 2015-09-23 16:49:45 +09:00
nghttp2_mem.c fix warning: declaration of 'free' shadows a global declaration 2016-06-01 08:45:13 +02:00
nghttp2_mem.h fix warning: declaration of 'free' shadows a global declaration 2016-06-01 08:45:13 +02:00
nghttp2_net.h "static inline" fix for build with VS2013 2015-04-03 11:55:57 +02:00
nghttp2_npn.c Fix warning with gcc 2015-09-23 18:26:02 +09:00
nghttp2_npn.h Fix typo in HAVE_CONFIG_H name 2016-02-13 20:11:50 +01:00
nghttp2_option.c Add nghttp2_option_set_max_send_header_block_length API function 2016-06-15 00:05:15 +09:00
nghttp2_option.h Add nghttp2_option_set_max_send_header_block_length API function 2016-06-15 00:05:15 +09:00
nghttp2_outbound_item.c Embed nghttp2_ext_frame_payload into nghttp2_outbound_item 2016-04-08 23:25:56 +09:00
nghttp2_outbound_item.h Embed nghttp2_ext_frame_payload into nghttp2_outbound_item 2016-04-08 23:25:56 +09:00
nghttp2_pq.c Optimize nghttp2_pq swap 2015-12-15 22:07:51 +09:00
nghttp2_pq.h Remove nghttp2_pq_increase_key 2015-08-21 23:35:17 +09:00
nghttp2_priority_spec.c Add API to change stream priority without sending PRIORITY frame 2015-11-21 18:32:42 +09:00
nghttp2_priority_spec.h Add API to change stream priority without sending PRIORITY frame 2015-11-21 18:32:42 +09:00
nghttp2_queue.c Reformat lines with clang-format-3.5 2014-11-27 23:56:30 +09:00
nghttp2_queue.h Reformat lines with clang-format-3.5 2014-11-27 23:56:30 +09:00
nghttp2_rcbuf.c Attempt to fix compile error with msvc 2016-03-14 00:54:02 +09:00
nghttp2_rcbuf.h Reference counted HPACK name/value pair 2016-03-12 21:12:27 +09:00
nghttp2_session.c More strict stream state handling 2016-08-07 19:31:00 +09:00
nghttp2_session.h More strict stream state handling 2016-08-07 19:31:00 +09:00
nghttp2_stream.c Fix compile error with --enable-debug 2016-03-12 21:12:27 +09:00
nghttp2_stream.h Eliminate the possibility of nghttp2_stream.cycle overflow 2016-02-18 23:56:29 +09:00
nghttp2_submit.c Add nghttp2_session_set_local_window_size() API function 2016-05-29 23:13:11 +09:00
nghttp2_submit.h Reformat lines with clang-format-3.5 2014-11-27 23:56:30 +09:00
nghttp2_version.c Reformat lines with clang-format-3.5 2014-11-27 23:56:30 +09:00