Tatsuhiro Tsujikawa
c2bb9c01a6
nghttp: Update doc for -p option and improve error handling for it
2014-04-05 19:15:45 +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
d668d2448b
Hide session option from public API
...
To make adding new option easier, we decided to make the details of
option struct private and hide it from public API. We provide
functions to set individual option value.
2014-04-04 21:57:47 +09:00
Tatsuhiro Tsujikawa
1d38df0a31
nghttp: Don't index authorization header field for debugging purpose
2014-04-03 11:33:15 +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
34581d830d
Define NGHTTP2_CLEARTEXT_PROTO_VERSION_ID
...
This identifier string is used if HTTP/2 is used over cleartext TCP.
2014-03-30 21:30:47 +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
f7162ab702
Implement dependency based priority
2014-03-30 01:24:16 +09:00
Tatsuhiro Tsujikawa
a457d2a138
h2load, nghttp: Use SNI field for non-numeric host
2014-03-15 15:32:38 +09:00
Tatsuhiro Tsujikawa
7ffa594d4c
nghttp: Use raw-literal string for help output
2014-03-14 01:53:28 +09:00
Tatsuhiro Tsujikawa
27e161dc31
src: Add EvbufferBuffer class to simplify the code base
2014-03-05 00:23:33 +09:00
Tatsuhiro Tsujikawa
a85455ed0b
src: Zero clear http_parser_url struct
2014-02-27 22:11:31 +09:00
Tatsuhiro Tsujikawa
227a48cea1
src: Move http_parser_url related functions to util
2014-02-27 21:53:52 +09:00
Tatsuhiro Tsujikawa
9cc7f9fb36
nghttp: Wait for pushed resources to complete
...
The statistics of pushed resources are also calculated.
2014-02-25 01:16:47 +09:00
Tatsuhiro Tsujikawa
1e1e77ad5e
nghttp: Use nghttp2_session_mem_recv and nghttp2_session_mem_send
2014-02-19 23:27:52 +09:00
Tatsuhiro Tsujikawa
f5342494f4
src: Format help message and add --version to make man page generation easier
2014-02-16 19:39:41 +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
118ed09da5
Allow disabling padding
2014-02-09 23:53:53 +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
Tatsuhiro Tsujikawa
be9d5efa4c
nghttp: Add --continuation option to test CONTINUATION
2014-02-08 00:23:18 +09:00
Tatsuhiro Tsujikawa
814d0f76f3
Implement DATA frame padding
2014-02-08 00:23:18 +09:00
Tatsuhiro Tsujikawa
c79adf6997
Remove flow control disabling feature
2014-02-06 00:23:20 +09:00
Tatsuhiro Tsujikawa
e186e01933
Replace on_end_headers_callback with on_begin_headers_callback
...
Previously, there is inconsistency when on_frame_recv_callback
is called between HEADERS/PUSH_PROMISE and the other frames.
For former case, it is called before header block, in latter
case, it is called after whole frame is received. To make it
consistent, we call on_frame_recv_callback for HEADERS/PUSH_PROMISE
after its frame is fully received. Since on_frame_recv_callback
can signal the end of header block, we replaced on_end_headers_callback
with on_begin_headers_callback, which is called when the reception
of the header block is started.
2014-01-29 21:23:13 +09:00
Tatsuhiro Tsujikawa
878afd7df1
nghttp: Fix bad handling of addrinfo
2014-01-28 01:40:00 +09:00
Tatsuhiro Tsujikawa
a3082b7c1e
Remove nghttp2_on_data_recv_callback and nghttp2_on_data_send_callback
...
nghttp2_data is added to nghttp2_frame union. When DATA is
received, nghttp2_on_frame_recv_callback is called. When DATA is
sent, nghttp2_on_frame_send_callback is called.
2014-01-27 22:16:05 +09:00
Tatsuhiro Tsujikawa
545f24bc1b
Remove nghttp2_on_frame_recv_parse_error_callback
2014-01-26 23:23:07 +09:00
Tatsuhiro Tsujikawa
1f4577adb9
nghttp: Use getaddrnfo directly instead of using evdns_base
...
evdns_base uses /etc/resolve.conf for *nix like systems,
but all platforms don't have the file (e.g., android device).
For such platforms, address resolution fails.
To fix this problem we use getaddrinfo() directly.
2014-01-23 00:29:09 +09:00
Tatsuhiro Tsujikawa
9cd90bcff2
nghttp: Fix host to connect when SSL/TLS is used
2014-01-22 21:55:30 +09:00
Tatsuhiro Tsujikawa
be71e1f11c
nghttp: Update doc
2014-01-21 23:24:13 +09:00
Tatsuhiro Tsujikawa
72aef67cca
nghttp: Replace build-in headers completely with -H option
2014-01-20 21:54:03 +09:00
Tatsuhiro Tsujikawa
dfbea797bd
src: Use static_cast instead of reinterpret_cast if possible
2014-01-19 21:18:37 +09:00
Tatsuhiro Tsujikawa
68b5204f29
src: Set errno = 0 before calling strtol
2014-01-18 15:32:50 +09:00
Tatsuhiro Tsujikawa
0e4b3d435e
Emit header name/value pair using callback functions
...
Now, in nghttp2_on_frame_recv_callback, nva and nvlen in
HEADERS and PUSH_PROMISE frames are always NULL and 0 respectively.
The header name/value pairs are emitted successive
nghttp2_on_header_callback functions. The end of header fields are
signaled with nghttp2_on_end_headers_callback function.
Since NGHTTP2_ERR_PAUSE for nghttp2_on_frame_recv_callback is
introduced to handle header block, it is now deprecated.
Instead, nghttp2_on_header_callback can be paused using
NGHTTP2_ERR_PAUSE.
2014-01-17 01:49:43 +09:00
Tatsuhiro Tsujikawa
8721631287
nghttp: Fix port checking to share connection
2014-01-10 00:59:14 +09:00
Tatsuhiro Tsujikawa
90ea7ba92a
src: Add command-line option guess
2014-01-09 01:27:56 +09:00
Tatsuhiro Tsujikawa
c36ce28f69
src: Call SSL_set_shutdown(ssl, SSL_RECEIVED_SHUTDOWN)
2014-01-08 23:32:47 +09:00
Tatsuhiro Tsujikawa
ecc4290d3d
nghttp: Fix crash on plain HTTP
2014-01-08 02:15:46 +09:00
Tatsuhiro Tsujikawa
78e5149495
src: Support ALPN
...
Requires unreleased OpenSSL >= 1.0.2
2014-01-02 00:15:08 +09:00
Tatsuhiro Tsujikawa
73866124f3
nghttp: Untabify
2013-12-31 11:15:58 +09:00
David Weekly
19e187cd92
More useful warning on NPN negotiation failure due to draft version mismatch
2013-12-31 00:12:21 +00:00
Tatsuhiro Tsujikawa
9cb8754d09
Rename nghttp2_session_fail_session as nghttp2_session_terminate_session
2013-12-26 00:23:07 +09:00
Tatsuhiro Tsujikawa
f8356dd037
nghttp: Use nghttp2_session_fail_session instead of nghttp2_submit_goaway
2013-12-25 00:28:58 +09:00
Tatsuhiro Tsujikawa
53271e1e52
nghttp: Close fd on disconnect
2013-12-22 19:23:01 +09:00
Tatsuhiro Tsujikawa
bb70cdf6ad
src: Rename verbose callback functions
2013-12-20 23:48:56 +09:00
Tatsuhiro Tsujikawa
f4ae707bf2
Revert 0b7b95923e
2013-12-13 21:46:41 +09:00
Tatsuhiro Tsujikawa
0b7b95923e
nghttp: Adjust relative priority with -a
2013-12-11 23:26:55 +09:00
Tatsuhiro Tsujikawa
09ba2e8c78
nghttp: Ensure that all settings can be encoded in settings_payload
2013-12-09 21:12:09 +09:00
Tatsuhiro Tsujikawa
6c77cec270
Remove nghttp2_submit_* API functions which has char **nv parameter
...
The nghttp2_submit_{request,response}2 functions are renamed as
nghttp2_submit_{request, response}.
2013-12-08 21:39:43 +09:00
Tatsuhiro Tsujikawa
baa2272b0a
src: Concatenate header fields with same name by NULL as delimiter
...
cookie and set-cookie are treated specially and won't be concatenated.
2013-12-07 00:32:14 +09:00
Tatsuhiro Tsujikawa
6ea91e57e0
Adjust struct/class alignment
2013-12-06 23:17:38 +09:00
Tatsuhiro Tsujikawa
e596385fc0
src: Split NULL-separated values
2013-12-05 21:54:36 +09:00
Tatsuhiro Tsujikawa
0c669898a4
nghttp: Allow multiple same headers in -H
2013-11-16 21:13:09 +09:00
Tatsuhiro Tsujikawa
2ae788eddd
Replace nghttp2_set_option with nghttp2_session_{client,server}_new2
...
nghttp2_session_client_new2 and nghttp2_session_server_new2 take
additional parameters which specifies session options.
nghttp2_set_option is somewhat crumsy because of type checking.
Now we use nghttp2_opt_set, which specifies individual options with
types. We changed the value of nghttp2_opt, so this change will
require re-compile.
2013-11-08 00:12:39 +09:00
Tatsuhiro Tsujikawa
1835bda02e
nghttp, nghttpd: Add --color option to force colored log output
2013-11-01 23:06:53 +09:00
Tatsuhiro Tsujikawa
535329779c
nghttp: Add --header-table-size option
2013-10-29 21:34:22 +09:00
Tatsuhiro Tsujikawa
dc61f705df
nghttp, nghttpd: Add SETTINGS timeout handling
...
SETTINGS timeout is 10 seconds for now.
2013-10-27 23:02:39 +09:00
Tatsuhiro Tsujikawa
c4ae19e2a0
nghttp, nghttpd: Use :authority and host instead of :host
2013-10-27 16:25:50 +09:00
Tatsuhiro Tsujikawa
896db5b24f
API change: Add flags parameter to all submit_* functions
...
The nghttp2_submit_{request,response} family do not get this change.
2013-10-25 22:50:24 +09:00
Tatsuhiro Tsujikawa
e85418f045
Fix local window size adjustments
...
Now shrinking local window size properly limits the amount of
WINDOW_UPDATE value so that shrinked window is honored.
2013-10-12 17:02:37 +09:00
Tatsuhiro Tsujikawa
2e7edf88bc
nghttp: Add -W option to specify connection level window size bits
2013-10-10 22:04:37 +09:00
Tatsuhiro Tsujikawa
154a0014ef
nghttp: Fix typo in help message
2013-10-10 21:25:53 +09:00
Tatsuhiro Tsujikawa
8e9f08f81d
nghttp: Assign different priority according to the resource type
2013-09-29 18:58:46 +09:00
Tatsuhiro Tsujikawa
0a649e2499
src: Use std::chrono instead of gettimeofday and clock_gettime
2013-09-16 17:36:24 +09:00
Tatsuhiro Tsujikawa
04457aae62
nghttp: Code cleanup
2013-09-16 16:54:11 +09:00
Tatsuhiro Tsujikawa
e2ff41c44c
nghttp: Use -M as short option for --peer-max-concurrent-streams
2013-09-16 16:44:13 +09:00
Tatsuhiro Tsujikawa
99ba622fed
Add NGHTTP2_OPT_PEER_MAX_CONCURRENT_STREAMS option
...
And utilize it in nghttp to limit initial max concurrent streams.
2013-09-14 19:41:49 +09:00
Tatsuhiro Tsujikawa
b7e1701f06
nghttp: Fix nghttp2_pack_settings_payload use
2013-09-09 21:25:46 +09:00
Tatsuhiro Tsujikawa
1a05caf847
src: Use util::utos instead of std::to_string
...
Some platform (e.g., freebsd) does not define _GLIBCXX_USE_C99
and it hides std::to_string functions.
2013-09-08 14:29:18 +09:00
Tatsuhiro Tsujikawa
c751a6e935
Fix cosmetic errors
2013-09-07 16:38:21 +09:00
Tatsuhiro Tsujikawa
92a6549f78
nghttp: Initialize flag to 0
2013-09-07 01:46:20 +09:00
Tatsuhiro Tsujikawa
bb7361cd9b
nghttp: Code cleanup
2013-09-06 00:18:43 +09:00
Tatsuhiro Tsujikawa
dd4151330e
nghttp: Use before_frame_send_callback to check stream_id
2013-09-03 21:27:33 +09:00
Tatsuhiro Tsujikawa
d960cf8953
Add const to read-only nghttp2_frame* parameter in callbacks
2013-09-03 21:24:14 +09:00
Tatsuhiro Tsujikawa
e818d098ec
nghttp: Fix off-by-one error when allocating space for request headers
2013-08-30 21:30:04 +09:00
Tatsuhiro Tsujikawa
81653c1d1b
Add int return value to nghttp2_on_stream_close_callback
2013-08-29 22:58:05 +09:00
Tatsuhiro Tsujikawa
d4852b0f11
Add int return value to on_frame_send_callback
2013-08-29 21:48:34 +09:00
Tatsuhiro Tsujikawa
972b47d6af
Add int return value to nghttp2_on_data_chunk_recv_callback
2013-08-29 21:39:32 +09:00
Tatsuhiro Tsujikawa
a59cd3be82
Add int return value to nghttp2_on_frame_recv_callback
2013-08-29 21:33:52 +09:00
Tatsuhiro Tsujikawa
47ee8e3c79
src: Code cleanup
2013-08-23 03:33:05 +09:00
Tatsuhiro Tsujikawa
0c9703fa2c
Remove NGHTTP2_FLAG_END_FLOW_CONTROL
2013-08-23 03:33:05 +09:00
Tatsuhiro Tsujikawa
3e1aad60b7
nghttp: Remove --no-tls option and detect TLS requirement using URI scheme
2013-08-12 22:33:51 +09:00
Tatsuhiro Tsujikawa
fadbdbae0b
nghttp: Add -p option to specify stream priority
2013-08-04 18:55:26 +09:00
Tatsuhiro Tsujikawa
690349009d
nghttp: Call on_read() to process all data in buffer after upgrade succeeded
2013-08-04 18:43:10 +09:00
Tatsuhiro Tsujikawa
f613f68a13
src: Make window size - 1
...
To match the -w16 to 65535, which is HTTP/2.0 default initial window
size, decrement 1 from (1 << window_bits).
2013-08-03 19:53:07 +09:00
Tatsuhiro Tsujikawa
079f867d68
nghttp: Ignore -u if --no-tls is not given
2013-08-03 19:08:52 +09:00
Tatsuhiro Tsujikawa
f620655d08
nghttp, nghttpx: Add HTTP Upgrade from HTTP/1.1 to HTTP/2.0
...
nghttpx does not perform upgrade if the request has request body.
2013-08-03 18:51:01 +09:00
Tatsuhiro Tsujikawa
fec566aa23
src: Send out data in output buffer before HTTP2/SPDY session tear down
2013-08-01 20:31:29 +09:00
Tatsuhiro Tsujikawa
56db10cb5e
nghttp: Add -F and -f option to disable connection/stream level flow controls
2013-07-28 19:29:11 +09:00
Tatsuhiro Tsujikawa
3cc71a707e
Rename nghttp2_headers_category members
...
Add NGHTTP2_HCAT_PUSH_RESPONSE
2013-07-25 20:57:50 +09:00
Tatsuhiro Tsujikawa
42ff5b5c04
Rename nghttp2_ssl as app_helper
2013-07-22 22:12:54 +09:00
Tatsuhiro Tsujikawa
ec79d70bd0
Code cleanup
2013-07-22 22:08:52 +09:00
Tatsuhiro Tsujikawa
9e9a7fb160
Add nghttpd and 24 bytes client connection header support
2013-07-22 21:56:19 +09:00
Tatsuhiro Tsujikawa
6bc7e7bd0b
Add nghttp client backed by libevent
2013-07-22 00:01:33 +09:00