Tatsuhiro Tsujikawa
bcc97b8699
Implement CACHE_DIGEST frame for nghttp and nghttpd
...
We use https://tools.ietf.org/html/draft-kazuho-h2-cache-digest-01 as
specification. We haven't implemented flags handling yet.
2016-07-03 11:33:07 +09:00
Tatsuhiro Tsujikawa
68059ccda9
nghttp: Use nghttp2_session_mem_recv
2016-04-21 23:30:35 +09:00
Jacob Champion
4bed7854b5
nghttp: move ownership of ContinueTimer to Request
...
Each Request now owns its own (optional) ContinueTimer for
Expect/Continue handshakes. This removes the need for
shared_ptr/weak_ptr logic.
2016-03-29 13:11:27 -07:00
Jacob Champion
3b7b6a660e
nghttp: prevent ContinueTimer double-invocation
...
If a 100 Continue interim response was received after the continue
timeout was reached, dispatch_continue() would force a double submission
of DATA frames. This patch prevents dispatch_continue() from doing
anything if the timer callback has already been invoked. This makes
ContinueTimer a single-shot mechanism, as originally intended.
2016-03-23 09:09:13 -07:00
Jacob Champion
1bc5cf5ee4
nghttp: time out on long Expect/Continue waits
...
To deal with servers that don't conform to RFC 7231 (or, potentially,
connections with a large round-trip time), don't wait forever for a 100
Continue status to come back. Currently, the timeout is hard-coded to
one second.
A ContinueTimer encapsulates the handshake timeout logic for a single
request. Somewhat counterintuitively, ContinueTimers are owned by the
HttpClient instead of the Request object, because their lifetime must be
bound to the life of the connection (which is owned by the HttpClient
and not the Requests). A Request is associated with its corresponding
ContinueTimer through a std::weak_ptr.
2016-03-22 13:10:00 -07:00
Jacob Champion
f4c7ebcbca
nghttp: implement Expect/Continue handshake
...
Requests that expect a 100 Continue will not submit their DATA frames
until the server sends the interim response.
2016-03-22 13:10:00 -07:00
Jacob Champion
feb3d1b478
nghttp: add an --expect-continue option
...
Add a placeholder for the expect-continue option, which will perform an
Expect/Continue handshake for DATA uploads.
2016-03-22 13:10:00 -07:00
Tatsuhiro Tsujikawa
b68be1e1fb
src: Make token of type int32_t; we have no reason to use int16_t
2016-02-21 16:44:00 +09:00
Tatsuhiro Tsujikawa
ff22862b9d
nghttp: Limit incoming header field buffer
2016-02-11 23:20:31 +09:00
Tatsuhiro Tsujikawa
eaefce3792
nghttp: Record request method to output it in har correctly
2015-11-07 16:13:06 +09:00
Tatsuhiro Tsujikawa
d1b8f60776
nghttp: Allow multiple -c option occurrence, and take min and last value
2015-10-24 18:11:47 +09:00
Tatsuhiro Tsujikawa
8fcf5f60e4
nghttp: Add --max-concurrent-streams option
2015-07-08 00:22:21 +09:00
Tatsuhiro Tsujikawa
39f89f4a60
src: Use user-defined literals for k, m, and g.
2015-06-21 14:32:47 +09:00
Tatsuhiro Tsujikawa
38cfc5c47c
Check more headers and funcs
2015-05-13 23:29:20 +09:00
Tatsuhiro Tsujikawa
c4e994c97d
nghttp: Add --no-push option to disable server push
2015-04-17 23:35:16 +09:00
Tatsuhiro Tsujikawa
436595df98
nghttp: Remove --dep-idle option
...
In this commit, we made --dep-idle behaviour by default. This is
because the previous default behaviour is not reflect current usage of
dependency priority and never will be because of fragility of tree due
to stream closure.
2015-04-17 22:24:06 +09:00
Tatsuhiro Tsujikawa
c4ccc376df
nghttp: Refactor function names
...
on_SOMETHING should be used only for I/O callback functions
2015-03-28 20:07:12 +09:00
Tatsuhiro Tsujikawa
89b8039466
nghttp, nghttpd: Add --hexdump option to hexdump incoming traffic
...
The output format is similar to `hexdump -C`
2015-03-24 02:30:51 +09:00
Tatsuhiro Tsujikawa
98add63cdf
nghttp: Treat stream as success if we see END_STREAM from peer
2015-03-14 00:09:10 +09:00
Tatsuhiro Tsujikawa
4c55a2340b
nghttp: Add --trailer optiont to send trailer header fields with -d option
2015-03-07 17:45:46 +09:00
Tatsuhiro Tsujikawa
9845729709
nghttp: Update resource timing terminology according to Resource Timing TR
2015-02-18 00:45:52 +09:00
Tatsuhiro Tsujikawa
b14cfaf308
src: Store token in Header object to avoid additional lookups
2015-02-08 16:10:01 +09:00
Tatsuhiro Tsujikawa
795a22a320
src: Remove ringbuf.h, use buffer.h instead
2015-02-06 23:40:34 +09:00
Tatsuhiro Tsujikawa
4cda09beff
src: Prefer std::array
2015-02-06 00:15:43 +09:00
Tatsuhiro Tsujikawa
f8f9b36acd
http2: Use std::array for indexing headers
2015-02-06 00:15:43 +09:00
Tatsuhiro Tsujikawa
0f14c93fa4
nghttp: Refactor
2015-02-01 17:21:13 +09:00
Tatsuhiro Tsujikawa
0069ca9ce8
nghttp: Fix compile error with libstdc++
2015-01-10 17:57:44 +09:00
Tatsuhiro Tsujikawa
1795d3ea27
nghttp: Add include file to clarify used objects
2015-01-10 16:44:09 +09:00