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 |
|
HoneyryderChuck
|
e6a5fbdf45
|
passing fallback protocol as option; this will allow to override, specially in the case when user knows that server can do unencrypted http/2
|
2017-12-11 22:28:12 +00:00 |
|
HoneyryderChuck
|
4e094f79d0
|
ssl options: passing alpn fixtures as ssl default options; this will allow disabling, and will centralize defaults
|
2017-12-11 16:02:51 +00:00 |
|
HoneyryderChuck
|
6220ecec15
|
ssl connect: if ssl io is passed (keep_open), assume it is negotiated and carry on
|
2017-12-11 16:01:17 +00:00 |
|
HoneyryderChuck
|
1da2d0829a
|
do not sending pending if io hasn't been opened yet (as protocol might have to be negotiated first
|
2017-12-11 16:00:45 +00:00 |
|
HoneyryderChuck
|
5218f5a87b
|
fixed io tests for passed ssl io type
|
2017-12-11 16:00:07 +00:00 |
|
HoneyryderChuck
|
67ca959535
|
added test for http2 (for now, testing the ssl layer as well); created intermediate base class for http helpers
|
2017-12-11 15:59:43 +00:00 |
|
HoneyryderChuck
|
daa2860b60
|
mobed all http request tests to request helpers
|
2017-12-11 14:59:40 +00:00 |
|
HoneyryderChuck
|
15a5ffffdd
|
allow to pass a custom body class, which only needs to implement the constructor signature and #<<
|
2017-12-11 13:10:58 +00:00 |
|
HoneyryderChuck
|
40a73f5a7b
|
made body threshold size (the max buffered size after which the response body is buffered to disk) a top-level option
|
2017-12-11 12:43:05 +00:00 |
|
HoneyryderChuck
|
adf3949c07
|
registering chunker properly
|
2017-12-10 20:38:21 +00:00 |
|
HoneyryderChuck
|
4a9714df3c
|
using requires of core modules everywhere it is used
|
2017-12-10 20:38:03 +00:00 |
|
HoneyryderChuck
|
94cb9b63d9
|
moved window size to options, changed it to 16K
|
2017-12-10 20:37:27 +00:00 |
|
HoneyryderChuck
|
feac489f33
|
renaming processor to parser
|
2017-12-10 20:36:45 +00:00 |
|
HoneyryderChuck
|
520d00c715
|
testing stream-copying the response; added a convenience method, Response#copy_to, to ensure that buffer is properly rewinded, and that the file is simply moved, when its stored in a file and the destination is a file
|
2017-12-10 18:36:20 +00:00 |
|