298 Commits

Author SHA1 Message Date
HoneyryderChuck
30286350b0 added apache license 2018-01-25 23:53:03 +00:00
HoneyryderChuck
9de4ddb9e0 added readme first draft 2018-01-25 23:52:43 +00:00
HoneyryderChuck
e7b7ec2cec added oga 2018-01-25 23:52:29 +00:00
HoneyryderChuck
29511246fb can't reconnect here, just move it back to idle 2018-01-14 22:46:50 +00:00
HoneyryderChuck
dcd90b706a removed the compression modules from the transcoders, using them directly in the plugin, rewrote the encoder to be more interchangeable 2018-01-14 22:46:28 +00:00
HoneyryderChuck
72b90c3f17 added support for plugin pimping the request body, remove the content-encoding logic there 2018-01-14 22:45:54 +00:00
HoneyryderChuck
f80d6dd175 removed the use of complicated decoders, using Zlib::Inflate, allow stateful decoders in the response, handled the ceremony 2018-01-14 21:42:05 +00:00
HoneyryderChuck
7f7046b9ce added programatic proxy discovery by parsing the sslproxy and socks-proxy pages and fetching a sample suitable for each test 2018-01-14 20:39:42 +00:00
HoneyryderChuck
f432d60052 added socks explicit logging tag 2018-01-14 20:39:00 +00:00
HoneyryderChuck
60d0b802dd no more @on_response 2018-01-14 20:38:43 +00:00
HoneyryderChuck
6319d83b81 simplified the compression API, sharing more across compressors 2018-01-14 20:38:14 +00:00
HoneyryderChuck
8b45c626ce adding the accept-encoding header with the registered compression methods 2018-01-14 20:37:47 +00:00
HoneyryderChuck
402a8ad2d4 added test for brotli request body compression 2018-01-14 20:35:32 +00:00
HoneyryderChuck
0126ea95dd Merge branch 'brotli' into 'master'
Brotli

Closes #16

See merge request honeyryderchuck/httpx!13
2018-01-13 23:20:19 +00:00
HoneyryderChuck
5e54fbab2b fixed brotli, as both the transcoder wasn't loading, and the response wasn't properly decoding 2018-01-13 23:19:20 +00:00
HoneyryderChuck
665fd75ea8 added initial implementation (still not working) 2018-01-13 22:04:54 +00:00
HoneyryderChuck
815a1177d6 added test 2018-01-13 22:04:54 +00:00
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