HoneyryderChuck
|
eae330088c
|
loading basic and digest authentication as separate plugins
|
2017-12-18 16:03:05 +02:00 |
|
HoneyryderChuck
|
2270060130
|
allow to build requests without sending them
|
2017-12-18 15:50:09 +02:00 |
|
HoneyryderChuck
|
f2944eba14
|
parser is empty when there are no requests as well
|
2017-12-18 15:50:09 +02:00 |
|
HoneyryderChuck
|
3f7525d4a7
|
added plugin to top-level chainable; added plural version, to load multiple plugins
|
2017-12-18 15:50:09 +02:00 |
|
HoneyryderChuck
|
68faf1c4a1
|
added authentication plugin with tests (basic is working, digest is not)
|
2017-12-18 15:50:09 +02:00 |
|
HoneyryderChuck
|
eccea7c443
|
improve HTTP/1 log messages
|
2017-12-18 13:43:09 +02:00 |
|
HoneyryderChuck
|
37f97005fb
|
Merge branch 'bufferz' into 'master'
Bufferz
Closes #2
See merge request honeyryderchuck/httpx!3
|
2017-12-15 10:56:48 +00:00 |
|
HoneyryderChuck
|
f99893839d
|
improved inspection of IO objects
|
2017-12-15 10:56:14 +00:00 |
|
HoneyryderChuck
|
da8bccb254
|
with_body: moved assertions to helper methods
|
2017-12-15 08:45:21 +00:00 |
|
HoneyryderChuck
|
9ea8e6f309
|
removed keep alive explicit timeout (it's just part of the operation flow)
|
2017-12-14 11:10:21 +00:00 |
|
HoneyryderChuck
|
8293350d26
|
jruby fix: http_parser (still) calls the header callback twice for chunked bodies, work around that
|
2017-12-14 01:21:44 +00:00 |
|
HoneyryderChuck
|
9673825673
|
jruby support: do not multi-assign in condition (it will not compile)
|
2017-12-14 01:20:56 +00:00 |
|
HoneyryderChuck
|
900bffb61a
|
added timeout to tests
|
2017-12-14 01:20:29 +00:00 |
|
HoneyryderChuck
|
703620bc19
|
added support for minitest run in parallel
|
2017-12-14 01:20:12 +00:00 |
|
HoneyryderChuck
|
51cdf95aad
|
added helper assertion helpers
|
2017-12-14 01:19:47 +00:00 |
|
HoneyryderChuck
|
808c351d72
|
added support for expect 100-continue requests (Fixes #2)
|
2017-12-13 23:33:16 +00:00 |
|
HoneyryderChuck
|
368b207c50
|
http2: disable push on settings
|
2017-12-13 22:45:26 +00:00 |
|
HoneyryderChuck
|
059908c43a
|
http2: better logging, prefix with stream id
|
2017-12-13 22:45:11 +00:00 |
|
HoneyryderChuck
|
71363d6794
|
more accurate method for calculating #empty?
|
2017-12-13 22:44:45 +00:00 |
|
HoneyryderChuck
|
d9830dab01
|
inspect if @io is expected (this can shadow real errors otherwise
|
2017-12-13 01:24:27 +00:00 |
|
HoneyryderChuck
|
157d7e1fed
|
fixed
|
2017-12-13 01:24:04 +00:00 |
|
HoneyryderChuck
|
89298be707
|
allow debug option, which can be passed the logger (must respond to #<<); using it in the debug logger for http1 payload and http2 frames
|
2017-12-13 01:23:38 +00:00 |
|
HoneyryderChuck
|
1230f9e0fa
|
simplified the Connection#response method
|
2017-12-13 01:04:47 +00:00 |
|
HoneyryderChuck
|
4a884d31f5
|
bit of documentation, bit of delegation
|
2017-12-13 01:04:31 +00:00 |
|
HoneyryderChuck
|
36480b8fbf
|
moved the matching logic of channel to its class, where it belongs
|
2017-12-13 00:59:43 +00:00 |
|
HoneyryderChuck
|
8006f5c8bc
|
added body as a possible extension point of the plugin API
|
2017-12-13 00:32:47 +00:00 |
|
HoneyryderChuck
|
7b3f78e5ad
|
removing the responses list from http1, as they're already stored in the request
|
2017-12-13 00:10:17 +00:00 |
|
HoneyryderChuck
|
e19d9a0dd2
|
registering http1 and http2 handlers directly in the channel
|
2017-12-13 00:09:54 +00:00 |
|
HoneyryderChuck
|
117acfb6f7
|
dealt with the timeouts: removed the deadcode for connects, as they no longer proxy it; instead, the selector commands whether the timeout will be triggered, if there are no ready fds; the global handler can also trigger a separate timeout, if this is asked for after the interval was starved, signaling incompletion
|
2017-12-12 23:58:42 +00:00 |
|
HoneyryderChuck
|
6cfe34155a
|
client simplifications
|
2017-12-12 23:55:41 +00:00 |
|
HoneyryderChuck
|
5f88fd5ab7
|
channel: call #consume after draining; some requests might be inflight and its buffering may be incomplete, this should get them going
|
2017-12-12 21:32:16 +00:00 |
|
HoneyryderChuck
|
db7463d8fb
|
http2: fixed response body buffering, as there was a confusion between chunk and next_chunk
|
2017-12-12 21:31:36 +00:00 |
|
HoneyryderChuck
|
4fa3b9d1a5
|
http2: added #consume
|
2017-12-12 21:30:56 +00:00 |
|
HoneyryderChuck
|
662be789ff
|
http1: added #consume; also, handling better 'connection: close' : if there were requests in-flight, assume that pipeline failed, and cap the concurrent number of requests to 1; this will disable pipelining, although the keep-alive header will still be sent
|
2017-12-12 21:30:32 +00:00 |
|
HoneyryderChuck
|
031d25fd02
|
channels: abstracted request buffering into #handle method
|
2017-12-12 21:29:05 +00:00 |
|
HoneyryderChuck
|
aa26a0f063
|
Channel#close now returns boolean, and this can be used at the connection to better keep the registry; clearing buffers as well
|
2017-12-12 21:27:32 +00:00 |
|
HoneyryderChuck
|
85edefdf48
|
allow buffer to clear
|
2017-12-12 21:26:18 +00:00 |
|
HoneyryderChuck
|
9d82c107c7
|
request: #transition now made in function of the nextstate; prepared laying the groundwork for 1xx requests
|
2017-12-12 21:25:56 +00:00 |
|
HoneyryderChuck
|
7478ea406c
|
request: #drain_body now dups the yielded value (it might com from IO.copy_stream, and it reuses the same buffer, funny things happen in http/2 adapter if it doesn't
|
2017-12-12 21:25:13 +00:00 |
|
HoneyryderChuck
|
d5b981a0bb
|
io: #build_socket as factory; re-building it in connect if closed (for when the server closes the socket)
|
2017-12-12 21:23:52 +00:00 |
|
HoneyryderChuck
|
f68f338e53
|
enabling debugging with envvar
|
2017-12-12 21:21:27 +00:00 |
|
HoneyryderChuck
|
b197f2e14e
|
added stream to streams in the proper place
|
2017-12-12 15:39:21 +00:00 |
|
HoneyryderChuck
|
1a7ad099c3
|
form encoder responds to read
|
2017-12-12 04:00:06 +00:00 |
|
HoneyryderChuck
|
9abaa4b94a
|
pass buffer condition to while, thereby preventing needless pending triggers
|
2017-12-12 03:59:04 +00:00 |
|
HoneyryderChuck
|
2b581bbefa
|
store response in requests, index stream by request; this allow pauses; improved body buffering (not sending empty chunk), allow body drain to pause when buffer is full
|
2017-12-12 02:25:59 +00:00 |
|
HoneyryderChuck
|
24821d1e8a
|
http1: apply request state transitions, pause body drain when buffer is full
|
2017-12-12 02:24:36 +00:00 |
|
HoneyryderChuck
|
621e1e3688
|
request: is now a state machine; can store response; added #drain_body, which gets the enumerator of #each, and yields the next chunk (and nil when it ends)
|
2017-12-12 02:23:07 +00:00 |
|
HoneyryderChuck
|
e779eaa8ba
|
request: do not buffer requests if buffer is full
|
2017-12-12 02:21:35 +00:00 |
|
HoneyryderChuck
|
fd25548ffd
|
allow channels to be hard closed, that is, if connection has been explicitly closed, ignore pending requests and just hard-close
|
2017-12-12 02:20:58 +00:00 |
|
HoneyryderChuck
|
6acffbc297
|
added limited buffer type; it's a weak buffer, in that it doesn't break if buffer limit it is exceeded, it just doesn't let append more data after limit is reached
|
2017-12-12 02:19:23 +00:00 |
|