Tatsuhiro Tsujikawa
9314e30987
Support transmission of CONTINUATION, change nghttp2_frame_hd
...
The maximum frame size including header block is still limited
to NGHTTP2_HD_MAX_BUFFER_LENGTH, which is 32KB.
2014-01-26 23:10:33 +09:00
Tatsuhiro Tsujikawa
91401cfe26
Support CONTINUATION frame reception
2014-01-26 20:31:28 +09:00
Tatsuhiro Tsujikawa
e7fc2951b8
nghttp2_hd: Define dedicated struct for HPACK deflater and inflater
2014-01-26 17:53:04 +09:00
Tatsuhiro Tsujikawa
45a9f0b637
Remove nghttp2_frame_unpack_* functions
2014-01-26 16:46:18 +09:00
Tatsuhiro Tsujikawa
dba2406aba
nghttp2_sesson_mem_recv: Process incoming data in streaming fashion
...
Now incoming data is processed in very small buffer (up to 8 bytes)
using state machine. GOAWAY debug data can get to 16K - 1, and we
don't have callback for it. Since we don't want to buffer that
amount of data just for debugging, we currently discard it.
This change also makes parse_error callback not function.
It probably be removed from API.
2014-01-26 15:44:43 +09:00
Tatsuhiro Tsujikawa
8317559090
nghttp2_hd: Implement stream header inflater
...
This stream inflater can inflate incoming header block in streaming
fashion. Currently, we buffer up single name/value pair, but we chose
far more smaller buffer size than HTTP/2 frame size.
2014-01-25 18:24:15 +09:00
Tatsuhiro Tsujikawa
f8a446fbeb
nghttp2_hd: Rewrite huffman decoding
2014-01-24 21:56:19 +09:00
Tatsuhiro Tsujikawa
a8e4da8058
deflatehd: Fix wire is not written if length is 0
2014-01-24 21:54:00 +09:00
Tatsuhiro Tsujikawa
6540ac1bab
Fix crash
2014-01-23 21:25:49 +09:00
Tatsuhiro Tsujikawa
1f4577adb9
nghttp: Use getaddrnfo directly instead of using evdns_base
...
evdns_base uses /etc/resolve.conf for *nix like systems,
but all platforms don't have the file (e.g., android device).
For such platforms, address resolution fails.
To fix this problem we use getaddrinfo() directly.
2014-01-23 00:29:09 +09:00
Tatsuhiro Tsujikawa
62e394b3e3
Fix memory leak
2014-01-23 00:28:23 +09:00
Tatsuhiro Tsujikawa
9cd90bcff2
nghttp: Fix host to connect when SSL/TLS is used
2014-01-22 21:55:30 +09:00
Tatsuhiro Tsujikawa
be71e1f11c
nghttp: Update doc
2014-01-21 23:24:13 +09:00
Tatsuhiro Tsujikawa
5082ce5107
hpackmake.py: Add --deflate-table-size option
2014-01-21 23:04:31 +09:00
Tatsuhiro Tsujikawa
a42cb13628
hpackmake.py: Add option parser
2014-01-21 21:50:01 +09:00
Tatsuhiro Tsujikawa
201ab1a140
nghttp2_hd: Adjust maximum size to index based on table size
2014-01-21 21:49:53 +09:00
Tatsuhiro Tsujikawa
72aef67cca
nghttp: Replace build-in headers completely with -H option
2014-01-20 21:54:03 +09:00
Tatsuhiro Tsujikawa
d647799c6f
Take int account received data length to check flow control error
2014-01-20 19:50:11 +09:00
Tatsuhiro Tsujikawa
594e1caad6
Code cleanup
2014-01-20 00:01:10 +09:00
Tatsuhiro Tsujikawa
16497d91c1
nghttpx: Call upstream_writecb when underlying bufferevent buffer gets empty
2014-01-19 23:32:07 +09:00
Tatsuhiro Tsujikawa
dfbea797bd
src: Use static_cast instead of reinterpret_cast if possible
2014-01-19 21:18:37 +09:00
Tatsuhiro Tsujikawa
660e1ec44d
nghttpx: Move backend outbuf threshold to each downstream type
2014-01-19 18:07:50 +09:00
Tatsuhiro Tsujikawa
a37bc88f40
nghttpx: Rename ClientHandler::get_pending_write_length to get_outbuf_length
...
And other renames.
2014-01-19 17:49:04 +09:00
Tatsuhiro Tsujikawa
bacea078da
nghttpx: Take into account both frontend buffer and body buffer length
2014-01-19 17:42:31 +09:00
Tatsuhiro Tsujikawa
f59a9c5c58
nghttpx: Disable TLS renegotiation properly
...
4ed4efc
does not disable TLS renegotiation at all, if client keeps
rengotiations without sending application data. In this change,
we intercept the raw incoming data from the client and if it is a
renegotiation, drop the connection immediately.
2014-01-19 17:25:18 +09:00
Tatsuhiro Tsujikawa
6f5e1662c6
nghttpx: Handle error from Downstream::resume_read()
2014-01-19 14:42:42 +09:00
Tatsuhiro Tsujikawa
becc206ba9
nghttpx: Don't show warning WINDOW_UPDATE failure for HTTP/1 downstream
2014-01-19 00:38:11 +09:00
Tatsuhiro Tsujikawa
d0968ea609
Tear down session if GOAWAY with stream ID != 0
2014-01-19 00:37:45 +09:00
Tatsuhiro Tsujikawa
4ed4efc241
nghttpx: Disable TLS renegotiation
2014-01-18 19:53:52 +09:00
Tatsuhiro Tsujikawa
8f3d4fdeec
nghttpx: Remove deprecated evbuffer_setcb, send WU before buffer gets empty
2014-01-18 18:39:25 +09:00
Tatsuhiro Tsujikawa
0872ce27f4
nghttpx: Use nghttp2_session_mem_recv instead of nghttp2_session_recv
2014-01-18 16:50:52 +09:00
Tatsuhiro Tsujikawa
50dd7ada50
nghttpx: Code cleanup
2014-01-18 16:32:22 +09:00
Tatsuhiro Tsujikawa
2a95da6bee
Code cleanup
2014-01-18 16:25:44 +09:00
Tatsuhiro Tsujikawa
b6d039e888
Make nghttp2_is_fatal public API
2014-01-18 16:24:44 +09:00
Tatsuhiro Tsujikawa
2222b5ab0d
Don't return NGHTTP2_ERR_STREAM_CLOSED when submitting DATA, PRIORITY, WU
...
Remove the check to see that stream exists at the time when submitting
DATA, PRIORITY and WINDOW_UPDATE. We will do this check when we actually
serialize and send them off to the network (or application provided
buffer).
2014-01-18 16:19:28 +09:00
Tatsuhiro Tsujikawa
59ff0b2f77
nghttpx: Propagate upstream priority change to downstream
2014-01-18 16:12:03 +09:00
Tatsuhiro Tsujikawa
68b5204f29
src: Set errno = 0 before calling strtol
2014-01-18 15:32:50 +09:00
Tatsuhiro Tsujikawa
67d4cb6367
examples: Log disconnected in delete_http2_session_data
2014-01-18 01:17:09 +09:00
Tatsuhiro Tsujikawa
2cc28863e9
examples: Fix crash if port is not in request URI
2014-01-18 01:13:04 +09:00
Tatsuhiro Tsujikawa
6cd20c55d4
tests: Fix compile error with --enable-maintainer-mode
2014-01-18 00:44:32 +09:00
Tatsuhiro Tsujikawa
0f30fb98a9
Update doc
2014-01-18 00:35:41 +09:00
Tatsuhiro Tsujikawa
0b14319675
doc, examples: Update tutorial and examples
2014-01-18 00:06:24 +09:00
Tatsuhiro Tsujikawa
e960c56aad
Don't call on_request_recv_callback if header decompression failed
2014-01-17 23:49:40 +09:00
Tatsuhiro Tsujikawa
3882bbebdc
Update doc
2014-01-17 22:55:36 +09:00
Tatsuhiro Tsujikawa
22a4e3eab8
Remove nghttp2_session_continue
...
nghttp2_session_continue is removed. Now just call
nghttp2_session_mem_recv to continue after NGHTTP2_ERR_PAUSE.
2014-01-17 22:52:30 +09:00
Tatsuhiro Tsujikawa
b2bf18d40f
Code cleanup
2014-01-17 10:15:14 +09:00
Tatsuhiro Tsujikawa
5d535766bf
inflate_header_block: Terminate session on compression error
...
Code cleanup is done as well
2014-01-17 10:13:33 +09:00
Tatsuhiro Tsujikawa
1daf6de102
Update doc
2014-01-17 09:41:39 +09:00
Tatsuhiro Tsujikawa
073e6d3a01
nghttp2_hd: Remove unused variables
2014-01-17 09:36:38 +09:00
Tatsuhiro Tsujikawa
7048c56583
python: Update to latest nghttp2_hd spec
2014-01-17 02:27:42 +09:00