- 19 Dec, 2014 2 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
- 18 Dec, 2014 2 commits
-
-
Tatsuhiro Tsujikawa authored
Previously session_after_frame_sent is called after we detected all data is sent. In nghttp2_session_mem_send, we only detect it in the next call of the function. It means that if a frame data bearing END_STREAM is on flight to the peer as a result of nghttp2_session_mem_send, peer may get that data and knows the stream closure and issues new stream. We may receive this new stream before the next nghttp2_session_mem_send call, which means that we may incorrectly assumes that peer violates maximum concurrent stream limit. To fix this issue, we separate session_after_frame_sent into 2 functions: session_after_frame_sent1 and session_after_frame_sent2. session_after_frame_sent1 handles on_frame_send_callback and stream closure and we call this early in nghttp2_session_mem_send. This makes number of streams are synchronized correctly with peer.
-
Tatsuhiro Tsujikawa authored
-
- 17 Dec, 2014 2 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
- 16 Dec, 2014 4 commits
-
-
Alexis La Goutte authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
The nghttp2 library itself is still h2-14. To experiment with the implementations to require h2-16 to test new features (e.g., prioritization), nghttp, nghttpx, nghttpd and h2load now support h2-16 as well as h2-14. Cleartext HTTP Upgrade is still limited to h2-14 however.
-
- 15 Dec, 2014 7 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
- 12 Dec, 2014 5 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
Previously we handle idle streams as closed streams. We only keeps sum of closed streams and active streams under max concurrent streams limit, idle streams gets deleted earlier than client expects. In this change, idle streams are kept in separate list and not handled as closed streams. To mitigate possible attack vector to make unlimited idle streams, we cap the number of idle streams in a half of max concurrent streams. This is arbitrary choice. It may be adjusted in the future when we have interop experience.
-
- 09 Dec, 2014 3 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
Previously when requests are issued to HTTP/2 downstream connection, but it turns out that connection is down, handlers of those requests are deleted. In some situations, we only know connection is down when we write something to network, so we'd like to handle this kind of situation in more robust manner. In this change, certain seconds passed after last network activity, we first issue PING frame to downstream connection before issuing new HTTP request. If writing PING frame is failed, it means connection was lost. In this case, instead of deleting handler, pending requests are migrated to new HTTP2/ downstream connection, so that it can continue without affecting upstream connection.
-
- 08 Dec, 2014 1 commit
-
-
Tatsuhiro Tsujikawa authored
-
- 07 Dec, 2014 2 commits
-
-
Tatsuhiro Tsujikawa authored
nghttp2_mem structure is introduced to hold custom memory allocator functions and user supplied pointer. nghttp2_mem object can be passed to nghttp2_session_client_new3(), nghttp2_session_server_new3(), nghttp2_hd_deflate_new2() and nghttp2_hd_inflate_new2() to replace standard malloc(), free(), calloc() and realloc(). nghttp2_mem structure has user supplied pointer mem_user_data which can be used as per session/object memory pool.
-
Tatsuhiro Tsujikawa authored
-
- 06 Dec, 2014 3 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
For HTTP/1 backend, -b option can be used several times to specify multiple backend address. HTTP/2 backend does not support multiple addresses and only uses first address even if multiple addresses are specified.
-
- 05 Dec, 2014 2 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
- 04 Dec, 2014 1 commit
-
-
Tatsuhiro Tsujikawa authored
This commit limits the number of concurrent HTTP/1 downstream connections to same host. By defualt, it is limited to 8 connections. --backend-connections-per-frontend option was replaced with --backend-http1-connections-per-host, which changes the maximum number of connections per host. This limitation only kicks in when h2 proxy is used (-s option).
-
- 03 Dec, 2014 4 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
- 01 Dec, 2014 2 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-