- 25 Sep, 2014 1 commit
-
-
Tatsuhiro Tsujikawa authored
Previously when connection level remote flow control window gets 0, we mark the stream having DATA frame with NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL. When connection level WINDOW_UPDATE is received, we checks all existing streams, including closed ones, and call nghttp2_stream_resume_deferred_data(). The profiler shows this is expensive. Now we prepare dedicated priority queue for DATA frames. And we don't mark stream with NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL when DATA cannot be sent solely due to connection level flow control. Instead, we just queue DATA item to queue. We won't pop DATA item from queue when connection level remote window size is 0. This way, we avoid the expensive operation for all streams when WINDOW_UPDATE is arrived.
-
- 24 Sep, 2014 5 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
- 23 Sep, 2014 7 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
The libnghttp2_asio library is C++ library built on top of libnghttp2. Currently, it has server API and easily create HTTP/2 server using node.js like API calls. See the example server source code in examples/asio-sv.cc. The library depends on Boost::ASIO library.
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
- 18 Sep, 2014 5 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
See previous commit message why we need this.
-
Tatsuhiro Tsujikawa authored
Previously read and write timeouts work independently. When we are writing response to the client, read timeout still ticks (e.g., HTTP/2 or tunneled HTTPS connection). So read timeout may occur during long download. This commit fixes this issue. This commit only fixes the upstream part. We need similar fix for the downstream.
-
- 17 Sep, 2014 4 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
Previously we missed the case where stream->data_item is not deleted and it caused leak. Now stream->data_item is properly deleted when session is deleted. We decided not to delete data_item in nghttp2_stream_free() since we need nghttp2_session to decide whether data_item should be deleted or not there.
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
With the combination of HTTP/1 upstream and HTTP/2 downstream, downstream tells SHRPX_NO_BUFFER while connecting to the backend server. Previously, we did not call upstream resume_read and upload was blocked. This commit now calls upstream resume_read to unblock. This commit also remove pending output buffer size of Http2Session when calculating downstream connection's buffer is full. This is desirable since we only operate resume_read by stream basis.
-
- 16 Sep, 2014 1 commit
-
-
Tatsuhiro Tsujikawa authored
-
- 14 Sep, 2014 2 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
Android does not have _Exit. We detect this and use _exit instead. clang-3.4 has an issue around undefined reference to __atomic_fetch_add_4, so we stick to gcc-4.8 for now.
-
- 13 Sep, 2014 2 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
By default, nghttp2 library only handles HTTP/2 frames and does not recognize first 24 bytes of client connection preface. This design choice is done due to the fact that server may want to detect the application protocol based on first few bytes on clear text communication. But for simple servers which only speak HTTP/2, it is easier for developers if nghttp2 library takes care of client connection preface. If this option is used with nonzero val, nghttp2 library checks first 24 bytes client connection preface. If it is not a valid one, nghttp2_session_recv() and nghttp2_session_mem_recv() will return error NGHTTP2_ERR_BAD_PREFACE, which is fatal error.
-
- 10 Sep, 2014 3 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
- 01 Sep, 2014 1 commit
-
-
Tatsuhiro Tsujikawa authored
-
- 29 Aug, 2014 4 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
- 28 Aug, 2014 3 commits
-
-
Tatsuhiro Tsujikawa authored
SETTINGS_MAX_FRAME_SIZE and SETTINGS_MAX_HEADER_LIST_SIZE are 2 missing SETTINGS IDs and now they are shown correctly.
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
Currently reserved bit is always set to 0. The addition of reserved bit is for future extension.
-
- 27 Aug, 2014 2 commits
-
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
Contributed by G. Vanem
-