Tatsuhiro Tsujikawa
0d4120ce2c
nghttpx: Apply same fix from a225bb2
to spdy upstream
2014-10-13 21:13:45 +09:00
Tatsuhiro Tsujikawa
20de432725
nghttpx: Pool http downstream connection per thread
2014-10-13 21:09:00 +09:00
Tatsuhiro Tsujikawa
325bb0115e
Bump up version number to 0.6.4-DEV
2014-10-11 00:22:25 +09:00
Tatsuhiro Tsujikawa
cc3b41ec96
Bump up version number to 0.6.3, LT revision to 6:1:1
2014-10-11 00:08:32 +09:00
Tatsuhiro Tsujikawa
225b90eefd
Use switch-case instead of if
2014-10-10 22:52:47 +09:00
Tatsuhiro Tsujikawa
3931a0b04d
Fix bugs found by coverity scan
2014-10-10 22:50:35 +09:00
Tatsuhiro Tsujikawa
70c0558443
Set payload length when expected SETTINGS is not received
2014-10-10 21:46:02 +09:00
Tatsuhiro Tsujikawa
f2bfe623fc
Update doc
2014-10-09 21:40:26 +09:00
Tatsuhiro Tsujikawa
80dcb565eb
Check first SETTINGS strictly
2014-10-09 21:37:18 +09:00
Tatsuhiro Tsujikawa
6d42b6697b
examples: Disable tiny-nghttpd if timerfd_create is not available
2014-10-09 21:18:24 +09:00
Tatsuhiro Tsujikawa
bcbb2e8649
src: Use fcntl and FD_CLOEXEC if O_CLOEXEC is undefined
...
We may run into race condition if execve is called at the same time
when fcntl is called. But we just does this for now to compile
nghttp2 applications under older kernel.
2014-10-08 23:44:38 +09:00
Tatsuhiro Tsujikawa
ba92935f64
Define NOTHREADS if std:future is not available
2014-10-08 23:36:55 +09:00
Tatsuhiro Tsujikawa
402c262de5
Push stream to queue after effective weight was calculated
2014-10-08 22:44:02 +09:00
Tatsuhiro Tsujikawa
03c4092862
Distribute closed or blocked stream's weight to its siblings
...
This also means that at least one stream whose dpri is
NGHTTP2_STREAM_DPRI_TOP exists, its siblings descendants have no
chance to send streams, even if their parent stream has
NGHTTP2_STREAM_DPRI_NODATA.
2014-10-07 23:52:36 +09:00
Tatsuhiro Tsujikawa
a225bb29df
nghttpx: Fix request is sent to backend prematurely with http2 upstream
2014-10-07 00:31:35 +09:00
Tatsuhiro Tsujikawa
f3a76d84f1
Document that only one data is allowed for one stream at a time
2014-10-06 23:47:43 +09:00
Tatsuhiro Tsujikawa
7a09feebc3
h2load: Don't use std::future with --disable-threads
...
Now we don't use std::future with --disable-threads, checking
std::future in configure.ac was removed and building h2load is always
enabled.
2014-10-05 14:25:15 +09:00
Tatsuhiro Tsujikawa
32ddca532a
Use 256 elements table in nghttp2_downcast
2014-10-04 00:40:51 +09:00
Svante Signell
df875db989
Avoid PATH_MAX by using getcwd(nullptr, 0) as supported by modern glibc-based OSes.
2014-10-03 21:58:15 +09:00
Tatsuhiro Tsujikawa
1d138accb9
Unify DATA and other frames in nghttp2_outbound_item and save malloc()
2014-10-03 21:31:37 +09:00
Tatsuhiro Tsujikawa
7e6019aef1
nghttp2_hd: Don't malloc if name/value is in first chunk without indexing
2014-09-30 23:01:58 +09:00
Tatsuhiro Tsujikawa
e20b417b84
Embed aux_data to nghttp2_outbound_item so that we can save some malloc() calls
2014-09-30 21:45:15 +09:00
Tatsuhiro Tsujikawa
df56b69060
nghttp2_map: Use initial size 256 so that we don't resize it until 100 streams
2014-09-29 22:46:13 +09:00
Tatsuhiro Tsujikawa
b6d0a32d0e
tiny-nghttpd: Save number of read(2) calls using file size
2014-09-29 22:37:41 +09:00
Tatsuhiro Tsujikawa
a82956d1d6
nghttp2_hd: Use binary search to lookup static table (again)
2014-09-29 21:58:37 +09:00
Tatsuhiro Tsujikawa
9c0760e3c1
Bump up version number to 0.6.3-DEV
2014-09-29 00:08:21 +09:00
Tatsuhiro Tsujikawa
4e71e9e2e8
Update man pages
2014-09-28 23:34:07 +09:00
Tatsuhiro Tsujikawa
521450c7ad
Bump up version number to 0.6.2, LT revision to 6:0:1
2014-09-28 23:33:10 +09:00
Tatsuhiro Tsujikawa
aa57e91e85
Fix `make distcheck`
2014-09-28 23:29:57 +09:00
Tatsuhiro Tsujikawa
4023c26cf1
Update doc
2014-09-28 23:24:39 +09:00
Tatsuhiro Tsujikawa
a0f558ee3c
doc: Add example to use nghttp2::asio_http2::server::request::run_task
2014-09-28 16:55:32 +09:00
Tatsuhiro Tsujikawa
4f0d03b4b9
libnghttp2_asio: Move common types and functions to nghttp2::asio_http2 ns
2014-09-28 16:54:00 +09:00
Tatsuhiro Tsujikawa
88d7abcc23
libnghttp2_asio: Add request::run_task to execute task in separate thread
2014-09-28 16:25:45 +09:00
Tatsuhiro Tsujikawa
409316018d
examples: Fix travis error: unreachable-code
2014-09-28 00:02:13 +09:00
Tatsuhiro Tsujikawa
d25b9da9f6
Check Boost library only when it is requested
2014-09-27 23:50:33 +09:00
Tatsuhiro Tsujikawa
b48ceac56c
nghttp2_hd: Search dynamic table first
...
Since recently used headers are in dynamic header table, it is
advantageous to search dynamic table first, saving time to search
through static table.
2014-09-27 23:45:58 +09:00
Tatsuhiro Tsujikawa
34413d8d7c
examples: Build tiny-nghttpd only when epoll is available
2014-09-27 23:45:57 +09:00
Tatsuhiro Tsujikawa
b7ccca4c47
examples: Add tiny-nghttpd
...
tiny-nghttpd is HTTP/2 server and its purpose is measure the
performance of nghttp2 library code. Currently it only accepts direct
HTTP/2 connection only.
2014-09-27 23:44:33 +09:00
Tatsuhiro Tsujikawa
e887b2516f
Remove boost LDFLAGS from examples
2014-09-26 21:42:31 +09:00
Tatsuhiro Tsujikawa
be0f6dcaaf
Clear 2 types of stream deferred flag indenpendently
...
Previously when nghttp2_stream_resume_deferred_data() is called,
deferred flags in stream->flags are all cleared. This is not ideal
because if application returned NGHTTP2_ERR_DEFERRED, and also that
stream is deferred by flow control, then all flags are cleared and
read callback will be invoked again. This commit fixes this issue.
This changes error condition of nghttp2_session_resume_data().
Previously we return error if stream was deferred by flow control.
Now we don't return error in this case. We just clear
NGHTTP2_FLAG_DEFERRED_USER and if still
NGHTTP2_FLAG_DEFERRED_FLOW_CONTROL is set, just return 0.
2014-09-26 21:32:17 +09:00
Tatsuhiro Tsujikawa
937bb9f768
Update doc
2014-09-26 01:25:00 +09:00
Tatsuhiro Tsujikawa
a11fbf6e2f
Optimize connection level remote flow control
...
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.
2014-09-26 00:01:51 +09:00
Tatsuhiro Tsujikawa
9aa914c756
Update README.rst
2014-09-25 02:08:09 +09:00
Tatsuhiro Tsujikawa
e20d2ba9c1
nghttpx: Don't send x-forwarded-proto if -s or -p is used
2014-09-25 00:41:38 +09:00
Tatsuhiro Tsujikawa
c1be28684a
libnghttp2_asio: Add request::closed() to indicate that stream has been closed
2014-09-25 00:15:52 +09:00
Tatsuhiro Tsujikawa
fd07f5e142
src: Add utility APIs to asio_http2.h; add asio-sv2 example to serve files
2014-09-24 23:05:13 +09:00
Tatsuhiro Tsujikawa
99ca15cae0
Lower boost version requirement to 1.54.0
2014-09-24 21:07:37 +09:00
Tatsuhiro Tsujikawa
3651467c71
src: Silence compiler warning
2014-09-24 00:57:43 +09:00
Tatsuhiro Tsujikawa
c27ec6f57b
doc: Add doc how to enable multi threading in libnghttp2_asio
2014-09-24 00:45:40 +09:00
Tatsuhiro Tsujikawa
485d04851c
Add libnghttp2_asio.pc to .gitignore
2014-09-24 00:45:40 +09:00