281 Commits

Author SHA1 Message Date
HoneyryderChuck
6e41543336 added brotli as test dep 2018-01-13 22:04:54 +00:00
HoneyryderChuck
760931ba84 Merge branch 'timeout' 2018-01-13 22:02:04 +00:00
HoneyryderChuck
e58620b733 Merge branch 'push_promise' into 'master'
Push promise

See merge request honeyryderchuck/httpx!11
2018-01-13 21:55:58 +00:00
HoneyryderChuck
ceaf2b36db implemented push: to minimize contention, by default it only allows one stream at a time, so that we don't allow push of already requested assets; also worked around an inconsistency from http-2 regarding headers 2018-01-13 21:43:59 +00:00
HoneyryderChuck
9a3f816e46 http2: emiting parser as well, as it makes writing custom logic easier 2018-01-13 21:42:13 +00:00
HoneyryderChuck
761ecb800d using the pushed response header from nghttp2.org to test whether asset was pushed 2018-01-13 21:41:30 +00:00
HoneyryderChuck
767637f15f switched name of proxy test and endpoints, again 2018-01-13 17:53:56 +00:00
HoneyryderChuck
b97405c551 added draft of push promise plugin 2018-01-13 17:53:29 +00:00
HoneyryderChuck
3ffbed8a30 push promise stream callback is now as upper-level as it can get; this allows it to be redefined better 2018-01-13 17:52:55 +00:00
HoneyryderChuck
10146be1bc allow client to be loggable; add to change the @default_options thing though 2018-01-13 17:52:04 +00:00
HoneyryderChuck
2a2d5e0b7a chainable: defining request objects more dynamically; also, fixed the call with multiple uris 2018-01-13 17:51:09 +00:00
HoneyryderChuck
0e6cbee92e allow callback-able objects to share callbacks 2018-01-13 17:49:40 +00:00
HoneyryderChuck
62e1713489 added timeout tests 2018-01-13 15:50:23 +00:00
HoneyryderChuck
167970cb65 client fallsback back on an error response if a timeout has been achieved, this way enabling to return successful responses 2018-01-13 15:43:21 +00:00
HoneyryderChuck
65722a3b12 changed timeout so it relies on a loop timeout and a global timeout; both can be disabled 2018-01-13 15:42:34 +00:00
HoneyryderChuck
8797eebbf2 turned the channel into a state machine: this had the nice side-effect of solving a lot of API inconsistencies from the proxies 2018-01-13 14:22:14 +00:00
HoneyryderChuck
539bb3c7d0 Merge branch 'h2c' into 'master'
H2C Upgrade

See merge request honeyryderchuck/httpx!10
2018-01-13 11:07:55 +00:00
HoneyryderChuck
bb6bc00280 setting stream callbacks in the same method 2018-01-09 21:52:20 +00:00
HoneyryderChuck
25925f95e6 added extra space in comma headers 2018-01-09 21:41:41 +00:00
HoneyryderChuck
d7fd96763e added missing upgrade, HTTP2-Settings in connection for h2c flow 2018-01-09 21:41:26 +00:00
HoneyryderChuck
e762faedfa added h2c plugin 2018-01-08 22:30:50 +00:00
HoneyryderChuck
0dc0003333 http2: added http2_settings as configurable options; allow parser to be upgraded 2018-01-08 22:29:39 +00:00
HoneyryderChuck
30fcdfeb2c http2: added http2_settings as configurable options 2018-01-08 22:29:14 +00:00
HoneyryderChuck
491bf11e2e http1: allow for callback to be called outside of the HTTP::Parser callback-scope (as info only loads later, like #upgrade_data) 2018-01-08 22:28:41 +00:00
HoneyryderChuck
7f22b3f398 added a new socks5 proxy 2018-01-06 19:26:02 +00:00
HoneyryderChuck
c55771906d http/1: passing retries as well (not doing anything with them doh) 2018-01-06 19:25:47 +00:00
HoneyryderChuck
951504ae98 socks proxies must also implement close 2018-01-06 19:25:05 +00:00
HoneyryderChuck
85111a36a9 moved all response callbacks to the client, this will enable better plugin overwrites 2018-01-06 19:24:35 +00:00
HoneyryderChuck
284bb06663 added versioning to response (important to test h2c, but also to ensure which 1.x is responding) 2018-01-06 19:23:39 +00:00
HoneyryderChuck
518ed5280e moved deflate and gzip to separate file 2018-01-06 00:18:43 +00:00
HoneyryderChuck
61c82a0e1d reset response when resetting to idle in the request 2018-01-05 23:22:32 +00:00
HoneyryderChuck
ba4f6d9b01 fixed inspects and logger 2018-01-05 23:22:11 +00:00
HoneyryderChuck
50adc95c46 added backcompat mode to core request implementation 2018-01-05 23:21:56 +00:00
HoneyryderChuck
812cba2046 digest: guarantee that multi-requests are sent sequentially, as the auth header has to be validated each time with metadata from previous response 2018-01-05 23:20:05 +00:00
HoneyryderChuck
ad1ff620b0 finally fixed the digest auth; the real issue was lack of a cookie, which apparently httpbin needs 2018-01-05 23:04:53 +00:00
HoneyryderChuck
0821b13ba9 add log method as a mixin 2018-01-04 23:45:55 +00:00
HoneyryderChuck
7739ba81a4 Merge branch 'compression' 2018-01-04 23:17:07 +00:00
HoneyryderChuck
fbdd2391fd Merge branch 'cookies' 2018-01-04 23:14:45 +00:00
HoneyryderChuck
a033605a00 Merge branch 'follow_redirects' 2018-01-04 23:11:04 +00:00
HoneyryderChuck
c92a872257 Merge branch 'authentication' 2018-01-04 23:09:10 +00:00
HoneyryderChuck
30154b19a2 Merge branch 'proxy' 2018-01-04 22:59:13 +00:00
HoneyryderChuck
fe79e73ffd again, proxies... 2018-01-04 22:56:31 +00:00
HoneyryderChuck
4e737032b4 refactor version check into method 2018-01-04 22:55:28 +00:00
HoneyryderChuck
26dd09903c added socks 5 proxy which supports https 2018-01-04 22:46:06 +00:00
HoneyryderChuck
ba5f8d0bb2 removed unnecessary parameter 2018-01-04 22:12:57 +00:00
HoneyryderChuck
9b498e4d47 fix: return to idle state when rebuilding the socket (important for http/1 with connection: close multi-requests) 2018-01-04 22:12:40 +00:00
HoneyryderChuck
a87181dd63 no task, channel 2018-01-04 22:11:55 +00:00
HoneyryderChuck
b7421cc423 fixed the condition to check if are inflight incomplete requests for http/1 2018-01-04 22:11:38 +00:00
HoneyryderChuck
c411c9e7b4 added schemes for io, since uri is not stored anymore 2018-01-04 22:11:01 +00:00
HoneyryderChuck
04d778c1c6 again, namespace... 2018-01-03 21:57:40 +00:00