Tatsuhiro Tsujikawa
d4d56e1846
nghttpd, nghttpx: Check that pseudo headers come before normal headers
2014-08-08 20:52:32 +09:00
Tatsuhiro Tsujikawa
d496c42dc9
Revert "nghttpx, nghttpd: Check pseudo header fields come before normal header fields"
...
This reverts commit cc24b9aaf0
.
2014-08-08 20:17:03 +09:00
Tatsuhiro Tsujikawa
cc24b9aaf0
nghttpx, nghttpd: Check pseudo header fields come before normal header fields
2014-08-07 22:49:34 +09:00
Tatsuhiro Tsujikawa
9fb2bc8468
src: Remove http2::sort_nva
...
This function is no longer necessary because 0x00 concatenation rule
is gone.
2014-08-07 21:55:30 +09:00
Tatsuhiro Tsujikawa
6e027ad830
nghttpd, nghttpx: Check allowed pseudo headers
2014-07-31 23:05:53 +09:00
Tatsuhiro Tsujikawa
4f815521ae
nghttpx, nghttpd: Support non-final response
2014-07-31 23:05:52 +09:00
Tatsuhiro Tsujikawa
af5fd2019d
src: Remove 0x00 concatenation for headers
...
Now concatenating header values with 0x00 as delimiter is not
necessary because HPACK reference set is removed and the order of
header field fed into HPACK encoder is preserved when they are
decoded.
2014-07-31 23:05:52 +09:00
Tatsuhiro Tsujikawa
61053653df
src: Retry write(2) if errno == EINTR
2014-07-17 23:41:54 +09:00
Tatsuhiro Tsujikawa
c4d2639ed8
nghttpd: Don't shutdown session if pending data is left
2014-07-12 23:17:25 +09:00
Tatsuhiro Tsujikawa
545732fed8
nghttpd: Add --early-response option
...
This option is testing the client behavior when it gets response
before sending all request.
2014-07-03 22:44:27 +09:00
Tatsuhiro Tsujikawa
4e81a34146
nghttpd: Add --dh-param-file option to support DHE ciphers
2014-06-28 15:43:06 +09:00
Tatsuhiro Tsujikawa
9fec34968b
nghttpd: Disable SSL_CTX_set_ecdh_auto for OpenSSL >= 1.0.2
2014-06-28 15:35:10 +09:00
Tatsuhiro Tsujikawa
a3334bb21c
nghttpd: Use cipher suites recommended by Mozilla
2014-06-28 15:28:19 +09:00
Tatsuhiro Tsujikawa
3db8935e20
Remove per-frame compression
2014-06-07 16:04:43 +09:00
Tatsuhiro Tsujikawa
ebf0e4d787
nghttpd, nghttpx: Check END_STREAM flag in HEADERS other than request
2014-05-24 15:02:46 +09:00
Tatsuhiro Tsujikawa
2ae1da113e
src: Use C++ style comments for C++ source code
2014-05-14 23:22:23 +09:00
Tatsuhiro Tsujikawa
e47b976691
src: Eliminate use of snprintf
2014-05-14 22:39:28 +09:00
Tatsuhiro Tsujikawa
d3fa938f1f
nghttpd: Fix compiler warning
2014-05-11 21:51:25 +09:00
Tatsuhiro Tsujikawa
e8de437d5c
Return new stream ID from nghttp2_submit_{request, headers, push_promise}
...
Previously stream ID was assigned just before HEADERS or PUSH_PROMISE
was serialized and nghttp2_submit_{request, headers, push_promise} did
not return stream ID. The application has to check assigned stream ID
using before_frame_send_callback. Now it is apparent that priority is
meant to DATA transfer only. Also application can reorder the
requests if it wants. Therefore we can assign stream ID in
nghttp2_submit_* functions and return stream ID from them. With this
change, now application does not have to check stream ID using
before_frame_send_callback and its code will be simplified.
2014-05-07 23:24:07 +09:00
Tatsuhiro Tsujikawa
9125499dd0
src: Implement per-frame DATA compression
...
Currently, nghttpd server only compresses files whose extensions are
one of .html, .js, .css and .txt. nghttp advertises its support of
per-frame compression in SETTINGS frame. To implement this feature,
we added 2 public API: nghttp2_session_get_remote_settings() and
nghttp2_gzip_inflate_finished().
2014-05-03 00:02:17 +09:00
Tatsuhiro Tsujikawa
5b55874d4d
Fix static analysis error
2014-04-05 20:04:09 +09:00
Tatsuhiro Tsujikawa
e7ad3633c7
nghttp2_data_source_read_callback: Replace eof with uint32_t *data_flags
...
Replace int *eof with uint32_t *data_flags so that we can easily
extend functionality if we have to (but we don't do if possible).
2014-04-05 17:59:24 +09:00
Tatsuhiro Tsujikawa
b1edb1f3ae
Don't index name/value pair bearing NO_INDEX flag when forwarding it
2014-04-03 11:22:11 +09:00
Tatsuhiro Tsujikawa
c9f90924a9
Add flags parameter to nghttp2_on_header_callback
2014-04-02 02:10:35 +09:00
Tatsuhiro Tsujikawa
60a2c260a5
Define NGHTTP2_CLIENT_CONNECTION_PREFACE macro
...
NGHTTP2_CLIENT_CONNECTION_PREFACE has the same content with
NGHTTP2_CLIENT_CONNECTION_HEADER, which is now obsoleted by
NGHTTP2_CLIENT_CONNECTION_PREFACE.
2014-03-30 21:02:25 +09:00
Tatsuhiro Tsujikawa
ab2dc5967d
Replace HTTP/2.0 with HTTP/2
2014-03-30 19:26:37 +09:00
Tatsuhiro Tsujikawa
0a80b0c1aa
nghttpd: Set write timeout for stream blocked by flow controll only
...
This change also reset read timeout when we have sent HEADERS,
PUSH_PROMISE or DATA.
2014-03-22 00:41:01 +09:00
Tatsuhiro Tsujikawa
fac42788bc
nghttpd: Rename Request as Stream
2014-03-21 23:26:53 +09:00
Tatsuhiro Tsujikawa
464fef7c6e
nghttpd: Add HTTP/2 stream read/write timeout
2014-03-21 23:07:20 +09:00
Tatsuhiro Tsujikawa
c048ac5eff
nghttpd: Avoid to use bufferevent for connection
2014-03-18 00:09:59 +09:00
Tatsuhiro Tsujikawa
fef01a3c39
nghttpd: Honor server's cipher preferece order
2014-03-15 16:11:30 +09:00
Tatsuhiro Tsujikawa
a7eb6502a9
src: Use large transmission buffer to reduce SSL/TLS overhead
2014-03-15 16:10:42 +09:00
Tatsuhiro Tsujikawa
0620052f50
src: Use std::numeric_limits<>::max() instead of INT64_MAX
2014-03-14 00:54:10 +09:00
Tatsuhiro Tsujikawa
27e161dc31
src: Add EvbufferBuffer class to simplify the code base
2014-03-05 00:23:33 +09:00
Tatsuhiro Tsujikawa
3ca4539f99
nghttpd: Only emit content-encoding: gzip when error-gzip is on
2014-03-04 23:37:42 +09:00
Tatsuhiro Tsujikawa
a61ca763df
nghttpd: Add -e option to toggle gzipped error response
2014-03-04 23:29:30 +09:00
Tatsuhiro Tsujikawa
caeeba681f
nghttpd: Add multi threading support
2014-03-04 23:14:26 +09:00
Tatsuhiro Tsujikawa
f3183efe04
nghttpd: Emit protocol id error only when verbose output is enabled
2014-03-03 23:51:46 +09:00
Tatsuhiro Tsujikawa
b5341ebac6
nghttpd: More SSL_CTX options and support EDCHE cipher
2014-03-03 23:49:13 +09:00
Tatsuhiro Tsujikawa
e34b8ac7fb
src: Avoid to call costly evbuffer_add() repeatedly
...
The profiler and benchmarking showed that calling evbuffer_add()
repeatedly is very costly. To avoid this, we buffer up small writes
into one large chunk and call evbuffer_add() less times.
2014-03-03 23:45:57 +09:00
Tatsuhiro Tsujikawa
d1c1deaf03
Add promised_stream_user_data parameter to nghttp2_submit_push_promise
...
This is very useful to associate application specific data to promised
stream.
nghttp2_nv_array_copy now does not complain the header field is large.
2014-02-25 00:26:12 +09:00
Tatsuhiro Tsujikawa
fc25143418
Remove END_PUSH_PROMISE in favor of END_HEADERS
2014-02-21 21:23:51 +09:00
Tatsuhiro Tsujikawa
bbc09b005b
nghttpd: Use nghttp2_session_mem_recv and nghttp2_session_mem_send
2014-02-19 23:27:53 +09:00
Tatsuhiro Tsujikawa
1fd5fdd54a
src: Remove redundant SETTINGS_ENABLE_PUSH from server side
2014-02-16 16:05:26 +09:00
Tatsuhiro Tsujikawa
7504d89f9b
src: Add at most N bytes as padding if --padding option is used
2014-02-15 16:40:32 +09:00
Tatsuhiro Tsujikawa
cd3eae3dd2
src: Fix select_padding_callback which returns value greater than max_payload
2014-02-11 19:19:00 +09:00
Tatsuhiro Tsujikawa
39fe7a5cfa
Don't set select_padding_callback if padding_boundary is 0 or not set
2014-02-11 16:48:27 +09:00
Tatsuhiro Tsujikawa
78d202ac30
Callback based padding from application
...
Now previous padding options are removed and instead we added
select_padding_callback to select padding length for each frame
by application. If this callback is not implemented by application,
no padding is added.
This change also fixes the broken session_detect_idle_stream()
if stream_id is our side.
2014-02-11 15:28:44 +09:00
Tatsuhiro Tsujikawa
68b5ffc1dc
Rename padding related names
2014-02-09 21:46:15 +09:00
Tatsuhiro Tsujikawa
1db2195389
Implement padding for HEADERS and CONTINUATION
2014-02-09 15:17:26 +09:00