Tatsuhiro Tsujikawa
011e3b325d
nghttpx: Cancel backend request when frontend HTTP/1 connection is lost
2015-02-13 22:41:50 +09:00
Tatsuhiro Tsujikawa
a473641e3f
Update doc
2015-02-12 23:54:38 +09:00
Tatsuhiro Tsujikawa
6f4f252907
nghttpd: Handle return value from server.run()
2015-02-12 23:18:25 +09:00
Tatsuhiro Tsujikawa
0d2bbead9d
Add test to submit PUSH_PROMISE without associated stream open
2015-02-12 23:09:01 +09:00
Tatsuhiro Tsujikawa
16475f6613
Update doc
2015-02-12 23:04:21 +09:00
Tatsuhiro Tsujikawa
0bdacd3e77
Code cleanup
2015-02-12 23:02:17 +09:00
Tatsuhiro Tsujikawa
57a50f981b
Refactor session_prep_frame to eliminate framerv
2015-02-12 22:58:43 +09:00
Tatsuhiro Tsujikawa
115d7133a0
nghttpx: Don't check HEADERS category in on_frame_not_send_callback
2015-02-12 22:44:29 +09:00
Tatsuhiro Tsujikawa
eb94603c51
Make nghttp2_session_get_stream_user_data work inside nghttp2_on_frame_not_send_callback
2015-02-12 22:41:57 +09:00
Tatsuhiro Tsujikawa
7d4a6aa179
Add test for submission ordering of HEADERS and its RST_STREAM
2015-02-12 21:28:20 +09:00
Tatsuhiro Tsujikawa
354de30874
Make default min frame payload size to 16K
...
Previously we use 16K - 9 bytes (frame header) as frame payload size
so that whole frame fits in 1 TLS record size (16K). But it turns out
that in proxy use case, we will receive 16K payload from backend and
we have to split it into 2 odd looking frames (16K - 9 and 9), and
latter is highly inefficient. To avoid this situation, we decided to
use min frame payload size to 16K. Since we operates on TLS as stream
of data, we are not so much restricted in its record size.
2015-02-12 00:09:18 +09:00
Tatsuhiro Tsujikawa
c462093555
src: Use same convention for len parameter in TLS I/O with cleartext I/O
2015-02-11 23:22:53 +09:00
Tatsuhiro Tsujikawa
364772f508
src: Fix error reported by coverity scan
2015-02-11 23:20:13 +09:00
Tatsuhiro Tsujikawa
ae0100a9ab
nghttpx: Refactor worker interface
2015-02-11 22:49:03 +09:00
Tatsuhiro Tsujikawa
756e2b3e9b
nghttp, h2load: Fix regression introduced in 795a22a
...
We missed wb.reset(), which makes write buffer's capacity becomes 0
and communication stalls eventually.
2015-02-11 21:42:11 +09:00
Tatsuhiro Tsujikawa
57d02f5c57
Update README.rst
2015-02-11 01:05:58 +09:00
Tatsuhiro Tsujikawa
73b999a662
src: Fix crash
2015-02-11 01:05:22 +09:00
Tatsuhiro Tsujikawa
4401f697e5
src: Try to write immediately after read
2015-02-11 00:44:30 +09:00
Tatsuhiro Tsujikawa
f360b5c1e3
src: Prefer std::equal
2015-02-11 00:20:33 +09:00
Tatsuhiro Tsujikawa
07fdaaba45
src: Use case-insensitive match when parsing Link header field
2015-02-10 23:29:45 +09:00
Tatsuhiro Tsujikawa
7fa62c9904
src: Clean up string utlity functions
2015-02-10 23:16:34 +09:00
Tatsuhiro Tsujikawa
3e2714810a
src: Fix invalid memory access
2015-02-10 21:28:17 +09:00
Tatsuhiro Tsujikawa
68866f53b0
src: Use nullptr instead of 0, since they are char*
2015-02-09 23:45:20 +09:00
Tatsuhiro Tsujikawa
ad8e9a4741
src: Ignore URI with non-empty anchor parameter
2015-02-09 23:25:10 +09:00
Tatsuhiro Tsujikawa
3c5d8f446b
src: Fix typo
2015-02-09 23:25:10 +09:00
Tatsuhiro Tsujikawa
2e425e3cb6
src: Support backslash escapes in quoted-string when parsing Link header
2015-02-09 23:25:10 +09:00
Tatsuhiro Tsujikawa
1b00bc1929
src: Support rel with quoted value in Link header parser
2015-02-09 23:25:10 +09:00
Tatsuhiro Tsujikawa
6b28e033de
Fix compile error and memory leak
2015-02-09 22:37:11 +09:00
Tatsuhiro Tsujikawa
eec8870ac1
Fix bug that client may send PROTOCOL_ERROR upon canceled push stream
...
Previously we treat stream in NGHTTP2_STREAM_RESERVED state specially,
that is we don't increment or decrement streams counts if stream is in
that state. Because of this, we don't change the stream state to
NGHTTP2_STREAM_CLOSING if stream is in NGHTTP2_STREAM_RESERVED. But
it turns out that it causes a problem. If client canceled pushed
stream before push response HEADERS, stream is still in
NGHTTP2_STREAM_RESERVED state. If push response HEADERS arrived in
this state, library happily accepts it and passed to application.
With this commit, this bug was corrected. We now change stream state
to NGHTTP2_STREAM_CLOSING even if it was in NGHTTP2_STREAM_RESERVED
state. We now use NGHTTP2_STREAM_FLAG_PUSH to determine whether we
have to increase/decrase stream count.
2015-02-09 22:23:20 +09:00
Tatsuhiro Tsujikawa
d151759f8a
nghttpx: Fix location rewrite, take 2
2015-02-08 21:26:47 +09:00
Tatsuhiro Tsujikawa
807d39abe3
nghttpx: Fix location rewrite does not work
2015-02-08 18:54:24 +09:00
Tatsuhiro Tsujikawa
7b81136bb3
Merge branch 'nghttpx-server-push'
2015-02-08 17:49:13 +09:00
Tatsuhiro Tsujikawa
75d7e5abe0
Update man pages
2015-02-08 17:48:18 +09:00
Tatsuhiro Tsujikawa
4d47c31ebe
src: Refactor parse_next_link_header_once
2015-02-08 17:47:21 +09:00
Tatsuhiro Tsujikawa
9e723b6b1d
src: Rename LinkHeader.url as LinkHeader.uri
2015-02-08 17:29:38 +09:00
Tatsuhiro Tsujikawa
7aff00496a
nghttpx: Log push request headers
2015-02-08 17:25:21 +09:00
Tatsuhiro Tsujikawa
0efdeab1db
nghttpx: Fix handling of return value from nghttp2_submit_push_promise
2015-02-08 17:21:27 +09:00
Tatsuhiro Tsujikawa
b01d0c88fe
Document nghttpx server push feature
2015-02-08 17:13:36 +09:00
Tatsuhiro Tsujikawa
502b552b68
nghttpx: Add --no-server-push option
2015-02-08 16:19:12 +09:00
Tatsuhiro Tsujikawa
8c90e5314d
src: Update doc
2015-02-08 16:10:01 +09:00
Tatsuhiro Tsujikawa
af960f1982
nghttpx: Don't push if http2 proxy is used
2015-02-08 16:10:01 +09:00
Tatsuhiro Tsujikawa
8b4291edcb
integration: Add server push test
2015-02-08 16:10:01 +09:00
Tatsuhiro Tsujikawa
45a47936e0
integration: Update doc
2015-02-08 16:10:01 +09:00
Tatsuhiro Tsujikawa
7c09d5eb8d
nghttpx: PUSH_PROMISE from client is handled by library
2015-02-08 16:10:01 +09:00
Tatsuhiro Tsujikawa
88f0bc70c4
nghttpx: Reworkd inherited request headers in PUSH_PROMISE
2015-02-08 16:10:01 +09:00
Tatsuhiro Tsujikawa
b14cfaf308
src: Store token in Header object to avoid additional lookups
2015-02-08 16:10:01 +09:00
Tatsuhiro Tsujikawa
8dd8d68b83
src: Make index of header int16_t
2015-02-08 16:10:01 +09:00
Tatsuhiro Tsujikawa
c55d7343ca
nghttpx: Support server push using Link header field
...
nghttpx server push is initiated by looking for Link header field from
backend server response. Currently we only enable server push for
HTTP/1 backend and without HTTP/2 proxy mode. The URIs which have
rel=preload are eligible to resource to be pushed.
2015-02-08 16:10:00 +09:00
Tatsuhiro Tsujikawa
4dea318b5b
nghttpx: Fix compile error if SOCK_NONBLOCK is undefined
2015-02-08 00:49:56 +09:00
Tatsuhiro Tsujikawa
795a22a320
src: Remove ringbuf.h, use buffer.h instead
2015-02-06 23:40:34 +09:00