Tatsuhiro Tsujikawa
28aea5c6b7
nghttp_hd: Use huffman encoding only when it is usable
...
We use huffman encoding only when its encoded length is strictly less
than the original length.
As noted in the HPACK draft, the length of name/value is now 7-bit
prefix and its MSB is 1 if the following string is huffman encoded.
2013-10-20 23:59:15 +09:00
Tatsuhiro Tsujikawa
a658f1367e
encode_length: Or-ing first byte with prefix mask
...
So that we can preserve leading bits.
2013-10-20 16:28:52 +09:00
Tatsuhiro Tsujikawa
4e4fab01b1
Merge branch 'master' into hpack-exp
...
Conflicts:
lib/nghttp2_hd.c
2013-10-18 20:06:36 +09:00
Tatsuhiro Tsujikawa
7b87d71121
nghttp2_hd: Fix missing return value handling
2013-10-18 19:48:15 +09:00
Tatsuhiro Tsujikawa
0efa6e657f
Fix outbound flow control count
...
We wrongly added the whole payload length even if we sent part of it.
2013-10-18 19:43:59 +09:00
Tatsuhiro Tsujikawa
7bd145fd23
Fix out of bound array access in decode_length
2013-10-18 19:30:04 +09:00
Tatsuhiro Tsujikawa
f7389ff2e6
Revert 622b05aa31
...
It turns out that 0-bit prefix is wrong, and the author now
clearly stated that the intention is 8-bit prefix for 8+ fields.
2013-10-18 19:28:01 +09:00
Tatsuhiro Tsujikawa
e6be04c865
Add auto-generation tools
2013-10-16 01:23:10 +09:00
Tatsuhiro Tsujikawa
5add90489f
Protocol ID change for HPACK experiment
2013-10-16 01:19:06 +09:00
Tatsuhiro Tsujikawa
a2735ed025
Fix leak on failure
2013-10-16 00:12:33 +09:00
Tatsuhiro Tsujikawa
ed43635c7b
Updated latest initial static header table
2013-10-16 00:09:00 +09:00
Tatsuhiro Tsujikawa
50cdcca911
Implement static Huffman for header compression
...
The current implementation uses Huffman code tables described
in http://tools.ietf.org/html/draft-rpeon-httpbis-header-compression-03
2013-10-15 23:55:12 +09:00
Tatsuhiro Tsujikawa
5b1fc35e82
Make max header table size configurable
2013-10-13 19:24:21 +09:00
Tatsuhiro Tsujikawa
afd5cd0585
Remove NGHTTP2_HD_INVALID_INDEX
2013-10-13 17:44:58 +09:00
Tatsuhiro Tsujikawa
6d7bcabe4c
Don't allocate name when indexing with name in static table
2013-10-12 22:56:29 +09:00
Tatsuhiro Tsujikawa
8cf3731802
Experiment HPACK with upcoming changes
...
* remove substitution
* reversed insertion and removal from header table
* unified initial static table
2013-10-12 21:49:01 +09:00
Tatsuhiro Tsujikawa
e85418f045
Fix local window size adjustments
...
Now shrinking local window size properly limits the amount of
WINDOW_UPDATE value so that shrinked window is honored.
2013-10-12 17:02:37 +09:00
Tatsuhiro Tsujikawa
46de63b90b
README.rst: Fix typo
2013-10-11 01:02:24 +09:00
Tatsuhiro Tsujikawa
622b05aa31
Fix HPACK using 0-bit prefix instead of 8-bits
2013-10-10 23:58:33 +09:00
Tatsuhiro Tsujikawa
2e7edf88bc
nghttp: Add -W option to specify connection level window size bits
2013-10-10 22:04:37 +09:00
Tatsuhiro Tsujikawa
154a0014ef
nghttp: Fix typo in help message
2013-10-10 21:25:53 +09:00
Tatsuhiro Tsujikawa
6249038cc0
src: Print headers in PUSH_PROMISE
2013-10-10 21:24:54 +09:00
Tatsuhiro Tsujikawa
2b9d4efa68
Refactor predicate_*_send functions
2013-10-04 22:42:34 +09:00
Tatsuhiro Tsujikawa
252c77f775
Return NGHTTP2_ERR_INVALID_STREAM_STATE for DATA, WINDOW_UPDATE to reserved
...
Use NGHTTP2_ERR_INVALID_STREAM_STATE when trying to send DATA or
WINDOW_UPDATE to reserved stream.
Also a bit refactored nghttp2_session_predicate_window_update_send
and nghttp2_session_predicate_data_send
2013-10-04 21:59:44 +09:00
Tatsuhiro Tsujikawa
c5501dcb8d
tests: Test WINDOW_UPDATE is queued when certain amount of DATA is received
2013-10-04 21:42:02 +09:00
Tatsuhiro Tsujikawa
27e48beb9f
Merge branch 'pause-cb'
2013-10-03 22:56:14 +09:00
Tatsuhiro Tsujikawa
bddb4de946
Fix data_stream_id and data_flags are not assigned
2013-10-03 22:51:58 +09:00
Tatsuhiro Tsujikawa
f355187176
nghttpx: Fix missing extension HTTP status code in response
2013-10-02 23:29:44 +09:00
Tatsuhiro Tsujikawa
c7ce6d811e
src/shrpx_config.cc: Code cleanup
2013-10-02 23:13:25 +09:00
Tatsuhiro Tsujikawa
d90e0d4262
src/HtmlParser: Code cleanup
2013-10-02 23:08:47 +09:00
Tatsuhiro Tsujikawa
a9ba00914e
nghttpx: Log error_code when submitting RST_STREAM
2013-09-30 00:13:04 +09:00
Tatsuhiro Tsujikawa
8e9f08f81d
nghttp: Assign different priority according to the resource type
2013-09-29 18:58:46 +09:00
Tatsuhiro Tsujikawa
f30a238e41
Update doc
2013-09-28 23:13:55 +09:00
Tatsuhiro Tsujikawa
31ae1fe660
app_helper.cc: Handle NGHTTP2_COMPRESSION_ERROR in strstatus
2013-09-28 22:57:12 +09:00
Tatsuhiro Tsujikawa
21d76dcc75
Add nghttp2_session_continue API function
...
The NGHTTP2_ERR_PAUSE library error code is introduced to pause
the execution of nghttp2_session_mem_recv() when that error code
is returned from nghttp2_on_frame_recv_callback or
nghttp2_on_data_chunk_recv_callback. If this happens, the parameters
available for both callbacks are retained until the application
calls nghttp2_session_continue(). The application must retain
input bytes which was used to produce the frame.
After successful call of nghttp2_session_continue, the application
can continue to call nghttp2_session_mem_recv() to process
additional data.
2013-09-28 17:59:24 +09:00
Tatsuhiro Tsujikawa
bfe7a9af00
nghttp: Fix crash if attrs parameter of get_attr() is nullptr
2013-09-26 22:56:26 +09:00
Tatsuhiro Tsujikawa
59397e80be
Update README.rst
2013-09-26 21:50:06 +09:00
Tatsuhiro Tsujikawa
55b8a0b777
shrpx_http2_upstream: Use std::unique_ptr for pre_upstream_
2013-09-26 21:46:35 +09:00
Tatsuhiro Tsujikawa
3368c8b378
nghttpx: Fix wrong version ID in Upgrade response header field
2013-09-26 21:46:03 +09:00
Tatsuhiro Tsujikawa
c5912341ad
nghttpx: Fix crash on upgrade success
2013-09-26 21:39:19 +09:00
Tatsuhiro Tsujikawa
825c1bac6b
shrpx_downstream.cc: Utilize std::move
2013-09-24 23:53:55 +09:00
Tatsuhiro Tsujikawa
dc0af2e074
shrpx_https_upstream.cc: Code cleanup
2013-09-24 23:39:36 +09:00
Tatsuhiro Tsujikawa
a0326b3f2b
nghttpx: Handle error from bufferevent_socket_new and event_base_new
2013-09-24 23:17:53 +09:00
Tatsuhiro Tsujikawa
57f5730756
shrpx_http_downstream_connection.cc: Code cleanup
2013-09-24 21:42:50 +09:00
Tatsuhiro Tsujikawa
2572fb6fb4
shrpx.cc: Code cleanup
2013-09-24 21:34:59 +09:00
Tatsuhiro Tsujikawa
991f14846d
shrpx_spdy_session.cc: Code cleanup
2013-09-24 21:34:04 +09:00
Tatsuhiro Tsujikawa
e1dfc1cdc5
shrpx_spdy_session: Use std::unique_ptr for proxy_htp_
2013-09-24 21:31:48 +09:00
Tatsuhiro Tsujikawa
769f560586
shrpx_https_upstream: Embed http_parser
2013-09-24 21:31:48 +09:00
Tatsuhiro Tsujikawa
811173f5c8
shrxp_worker.cc: Use std::unique_ptr for ThreadEventReceiver
2013-09-24 21:31:48 +09:00
Tatsuhiro Tsujikawa
b459e42ee5
shrpx_ssl.cc: Use std::unique_ptr for ssl_locks
2013-09-24 21:31:48 +09:00