Alexis La Goutte
ae87a44b94
nghttp2_hd: fix It is odd that the body of 'hd_get_num_table_entries' function is fully equivalent to the body of 'get_max_index' function found by PVS Studio (V524)
2017-01-03 22:03:53 +01:00
Alexis La Goutte
87d1692e27
nghttp2_submit: fix Parameter 'flags' is always rewritten in function body before being used found by PVS Studio (V763)
2017-01-03 22:03:53 +01:00
Tatsuhiro Tsujikawa
5645cad577
Accept and ignore content-length: 0 in 204 response for now
2016-12-03 14:57:16 +09:00
Matt Rudary
5a81f2441f
Prevent undefined behavior in decode_length
2016-11-11 11:12:43 -05:00
Tatsuhiro Tsujikawa
6ad9ddcdea
Disallow content-length in 1xx, 204, or 200 to a CONNECT request
2016-11-03 17:26:32 +09:00
Tatsuhiro Tsujikawa
ca6f6511f2
Avoid memcpy against NULL src
2016-11-01 23:54:21 +09:00
Remo E
9cd695a1db
MSVC version resource support
2016-10-28 22:24:22 +09:00
Tatsuhiro Tsujikawa
0cf6848646
clang-format-3.9
2016-10-15 18:36:04 +09:00
Tatsuhiro Tsujikawa
bc0f501dd3
Replace final with fin to make clang-format-3.9 happy
2016-10-15 18:25:13 +09:00
Tatsuhiro Tsujikawa
a591001e7b
Update doc
2016-10-15 18:18:52 +09:00
Tatsuhiro Tsujikawa
1d5cde1c6b
Add missing nghttp2_debug.h
2016-10-14 23:13:42 +09:00
Tatsuhiro Tsujikawa
19340da8d4
Re-format debug text output
2016-10-14 22:59:05 +09:00
Tatsuhiro Tsujikawa
5e99531b4d
clang-format
2016-10-14 22:59:05 +09:00
Tatsuhiro Tsujikawa
bef3d47c16
Rename functions and nghttp2_debug.h to move debug macro there
2016-10-14 22:59:05 +09:00
Tatsuhiro Tsujikawa
b8f7b474b4
Fix autotools build
2016-10-14 22:04:02 +09:00
Anders Bakken
bc3dc6b765
Add set_nghttp2_debug_callback to take advantage of DEBUGF statements in
...
when building DEBUGBUILD.
2016-10-13 13:24:26 -07:00
Tatsuhiro Tsujikawa
743fc4a3c3
Use the similar naming scheme for table size as 392256e542
2016-09-11 22:25:01 +09:00
Tatsuhiro Tsujikawa
392256e542
Add nghttp2_option_set_max_deflate_dynamic_table_size() API function
...
nghttp2_option_set_max_deflate_dynamic_table_size function sets the
maximum dynamic table size for header block deflater. The default
value is 4KiB.
2016-09-11 22:13:59 +09:00
Tatsuhiro Tsujikawa
905e16cb99
Simplify session_after_frame_sent1
2016-09-11 17:18:08 +09:00
Tatsuhiro Tsujikawa
9d4e8eeb12
Simplify code
...
Move DATA frame handling code to switch-case of frame type.
2016-09-11 17:00:04 +09:00
Tatsuhiro Tsujikawa
6858cda366
Fix GOAWAY race with new incoming stream on server side
...
Revert part of 16c46114dc
to fix race
condition that incoming stream after sending GOAWAY causes connection
error. The strict stream handling introduced in the above commit does
not handle several cases well (e.g., GOAWAY race, and refusing streams
because of concurrency limit).
2016-09-09 22:08:34 +09:00
Tatsuhiro Tsujikawa
fddb019baf
Merge branch 'master' into http2-debug-state-api
2016-08-28 22:20:04 +09:00
Tatsuhiro Tsujikawa
581e0938a9
Allow NGHTTP2_ERR_PAUSE from nghttp2_data_source_read_callback
2016-08-28 21:57:10 +09:00
Tatsuhiro Tsujikawa
79b07f0ce2
Update doc
2016-08-28 00:47:38 +09:00
Tatsuhiro Tsujikawa
baa0f60dc8
Add API to get current HPACK dynamic table size
2016-08-26 23:02:51 +09:00
Tatsuhiro Tsujikawa
69aa70086a
Merge branch 'master' into http2-debug-state-api
2016-08-26 22:54:59 +09:00
Wenfeng Liu
00c80a15c0
lib: Make emit_header() return void since it always succeed.
2016-08-23 13:40:14 +00:00
Tatsuhiro Tsujikawa
e693f75670
Add nghttp2_session_get_local_settings() API function
2016-08-21 19:33:01 +09:00
Tatsuhiro Tsujikawa
759f6c0b39
Update doc
2016-08-21 19:17:51 +09:00
Tatsuhiro Tsujikawa
5cf21ec187
Add APIs to return the number of data that remote endpoint can send
...
2 APIs are added. nghttp2_session_get_local_window_size() returns the
amount of data that the remote endpoint can send without receiving
connection level WINDOW_UPDATE.
nghttp2_session_get_stream_local_window_size() returns the amount of
data that the remote endpoint can send without receiving stream level
WINDOW_UPDATE.
2016-08-21 19:01:51 +09:00
Tatsuhiro Tsujikawa
62e1d1c952
Fix typo
2016-08-21 13:29:29 +09:00
Tatsuhiro Tsujikawa
09c647fd1b
Update doc
2016-08-18 21:26:58 +09:00
Tatsuhiro Tsujikawa
d0fea96e69
Allow nonuniform buffer size in nghttp2_hd_deflate_hd_vec()
2016-08-18 21:23:17 +09:00
Tatsuhiro Tsujikawa
40d217beb1
Remove bufs_avail
2016-08-17 22:56:40 +09:00
Tatsuhiro Tsujikawa
9b864380a5
Use nghttp2_vec in nghttp2_hd_deflate_hd_vec
...
This change is for the future enhancement where we loose the
requirement about the chunk size for each buffer.
2016-08-17 21:09:29 +09:00
Tatsuhiro Tsujikawa
0e1d0400d8
Use whole chunk when performing huffman encoding
2016-08-17 21:05:04 +09:00
Wenfeng Liu
488c3588d9
lib: Malloc nghttp2_buf_chain array once in nghttp2_bufs_wrap_init2()
...
to simplify logic
2016-08-17 20:48:03 +09:00
Tatsuhiro Tsujikawa
8acef2711b
Use pointer-to-pointer idiom to construct linked list
2016-08-16 13:02:24 +09:00
Tatsuhiro Tsujikawa
c4d36aeff7
Make parameters const pointer
2016-08-16 10:55:51 +09:00
Tatsuhiro Tsujikawa
f50596e355
Merge branch 'master' of https://github.com/weliu/nghttp2 into weliu-master
2016-08-16 09:59:50 +09:00
Wenfeng Liu
abf81b5bb7
lib: Add nghttp2_hd_deflate_hd_vec() deflate API to support multiple bufs input
2016-08-15 10:28:45 +00:00
Tatsuhiro Tsujikawa
8579b8a968
Merge pull request #646 from nghttp2/invalid-header-cb
...
Add nghttp2_on_invalid_header_callback
2016-08-15 11:13:20 +09:00
Tatsuhiro Tsujikawa
4c381611a1
More doc about HPACK decoding API
2016-08-11 11:47:53 +09:00
Tatsuhiro Tsujikawa
0c7d48dede
Make result type of hd_inflate_commit_indexed void
2016-08-11 11:33:09 +09:00
Wenfeng Liu
65cc2f0515
lib: since hd_inflate_commit_indexed() always return 0, remove the
...
return value check in nghttp2_hd_inflate_hd_nv().
2016-08-11 02:00:43 +00:00
Tatsuhiro Tsujikawa
3f31424ee2
Merge branch 'master' of https://github.com/weliu/nghttp2 into weliu-master
2016-08-09 22:01:10 +09:00
Wenfeng Liu
e0119452a3
Use memeq() instead of lstreq() in lookup_token().
2016-08-09 04:15:38 +00:00
Tatsuhiro Tsujikawa
60cae325bc
Search dynamic table first for optimization
2016-08-08 00:27:16 +09:00
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
Tatsuhiro Tsujikawa
e7e3d77c53
Merge branch 'master' of https://github.com/weliu/nghttp2 into weliu-master
2016-08-06 22:42:22 +09:00