1465 Commits

Author SHA1 Message Date
HoneyryderChuck
44b418acd6 do not use the master of rbs (seems to have stabilized features for us) 2021-05-28 12:16:21 +01:00
HoneyryderChuck
fb3b795f29 adding missing grpc sigs (+ other missing stuff in plugin calls) 2021-05-28 12:15:09 +01:00
HoneyryderChuck
3628db1495 removing options from Call (unneeded) 2021-05-28 12:15:09 +01:00
HoneyryderChuck
bb7f348a2c improving digest auth plugin, and aligning it with ntlm auth plugin
* both now only accept one request at a time
* code is more similar
2021-05-28 12:15:09 +01:00
HoneyryderChuck
5b9793752c fixing other plugin signatures 2021-05-27 19:11:15 +01:00
HoneyryderChuck
df489676ac adding ntlm auth plugin 2021-05-27 19:11:15 +01:00
HoneyryderChuck
498e6da26e fixed docs versioning 2021-05-27 19:11:15 +01:00
HoneyryderChuck
63ec59bb0e scoping squid config 2021-05-27 19:11:15 +01:00
HoneyryderChuck
dda1315db4 adding tests to enure that field order is respected, even when repeated, when performing form/multipart requests (Closes #126) 2021-05-27 19:11:15 +01:00
HoneyryderChuck
393c4adfd3 bumped to 0.14.2 v0.14.2 2021-05-27 18:25:38 +01:00
HoneyryderChuck
f34eb85f22 Merge branch 'moar-multipart' into 'master'
do not forget the filename in those multipart spoofs

See merge request honeyryderchuck/httpx!133
2021-05-27 17:12:13 +00:00
HoneyryderChuck
c61007ba0f do not forget the filename in those multipart spoofs 2021-05-27 17:53:45 +01:00
HoneyryderChuck
357344f2f9 bumped to 0.14.1 v0.14.1 2021-05-27 17:00:00 +01:00
HoneyryderChuck
35df9c7683 fix: allow setting arbitrary content types for multipart requests
very useful when testing spoof requests.
2021-05-27 16:50:38 +01:00
HoneyryderChuck
40be0f6aff Merge branch 'issue-128' into 'master'
do not mutate request headers with protocol headers

Closes #128

See merge request honeyryderchuck/httpx!132
2021-05-26 17:42:51 +00:00
HoneyryderChuck
8e1e6b3c6a set_protocol_headers now returns extra fields, that can be yielded in the handler, instead of merged into the request
this implicit mutation of the request was causing issue in insecure
redirects, which kept the same HTTP/2 specific headers in HTTP/1
payloads
2021-05-26 18:13:53 +01:00
HoneyryderChuck
e5a8e76d62 allow Headers#each to be passed extra headers to yield 2021-05-26 18:13:53 +01:00
HoneyryderChuck
a65104e19f added test for the reported bug 2021-05-26 17:30:50 +01:00
HoneyryderChuck
5d4ac62bf2 bumping version to 0.14.0 v0.14.0 2021-05-22 16:19:52 +01:00
HoneyryderChuck
e6fbe82b41 removing unused code 2021-05-22 16:19:24 +01:00
HoneyryderChuck
2c3280b6d0 Merge branch 'issue-119' into 'master'
new option: origin

See merge request honeyryderchuck/httpx!131
2021-05-22 14:23:05 +00:00
HoneyryderChuck
215f98f725 Merge branch 'issue-125' into 'master'
bugfix: do not blindly sum origins when merging connections

Closes #125

See merge request honeyryderchuck/httpx!130
2021-05-21 17:41:46 +00:00
HoneyryderChuck
44106325d5 bugfix: do not set new session callbacks on connections which already have them
a subtle bug surfaced when trying multiple individual requests on the
same persistent session, where the connection was being removed from the
watchable connections after each request, but kept in the pool; on the
next request, it would set the same session callbacks; this would go on
and on until connections would get exhausted, after which all of these
callbacks would have to be called.

fixed by having a new callbacks interface, #only, which discards
existing callbacks by type, thereby ensuring there's only one of the
kind.
2021-05-21 18:26:54 +01:00
HoneyryderChuck
3eddfdb509 bugfix: do not blindly sum origins when merging connections
so that there are no repeated entries.

Fixes #125
2021-05-21 18:21:14 +01:00
HoneyryderChuck
f0e189f5be Merge branch 'truffle' into 'master'
update truffleruby to official images

See merge request honeyryderchuck/httpx!129
2021-05-21 15:56:13 +00:00
HoneyryderChuck
9801cb7b31 update truffleruby to official images 2021-05-21 16:44:31 +01:00
HoneyryderChuck
76350d9ebb quieting logging of test grpc servers 2021-05-20 00:59:14 +01:00
HoneyryderChuck
ff5ed7be59 added support for TLS channel credentials 2021-05-20 00:59:14 +01:00
HoneyryderChuck
b09aef506e wrapping all responses from the grpc plugin in a GRPC::Call
calls are proxies which can access response metadata as it arrives. For
instance, it's possible to now get metadata (which are http headers)
before the response is fully streamed. #trailing_metadata will also be
empty until the response has been fully processed.

This builds on top of the stream plugin improvements foundation.
2021-05-20 00:11:26 +01:00
HoneyryderChuck
441716a5ac fixing double-response for streams
there was a long-standing buggy workaround, whereas in stream-mode, when
there was no response yet to query from, a synchronous request would be
fired. This would break when under event streams, so we had to document
this as "make sure that...".

This fixes it by implementing a general session API convention, which
separates the step of sending the requests, from waiting for its
receival. And, given that the request knows when the response is
available, we can actually "tick until response".

This might be used in the future to refactor the way we handle the
responses, which buffer the full payload by default, instead of reading
from the connection at will.
2021-05-20 00:11:26 +01:00
HoneyryderChuck
a1d09889ff adding grpc subfolder, extracting Message module, adding a Call abstraction 2021-05-10 12:38:41 +01:00
HoneyryderChuck
bbe5c2d114 added support for grpc deadline options 2021-05-07 16:55:48 +01:00
HoneyryderChuck
0003dc617c fixed doc typos 2021-05-07 16:55:48 +01:00
HoneyryderChuck
02dfb9073e allow connections to cleanup refused streams 2021-05-07 16:55:48 +01:00
HoneyryderChuck
232b94590a grpc: added client and server cancellation request support 2021-05-07 16:55:48 +01:00
HoneyryderChuck
949f073738 added test to prove support for requests cancelled from server 2021-05-06 10:38:20 +01:00
HoneyryderChuck
b73882210f bugfix: do not reset content-length for compressed body if the body is streamable (not only chunked) 2021-05-06 10:38:20 +01:00
HoneyryderChuck
7a60346bf7 Added trailer header support for writing requests
Request can also add their own trailer headers, either explicitly via
Request#trailers , or via request lifecycle callbacks
2021-05-06 10:38:20 +01:00
HoneyryderChuck
fd31d9de0d allow for compression of grpc messages; testing using grpc 2021-05-06 10:38:20 +01:00
HoneyryderChuck
837c7ddf17 allowing .deflate to be called synchronously 2021-05-06 10:38:20 +01:00
HoneyryderChuck
4d0750c950 stream: delegate to real response if available, only then generate a brand new one 2021-05-05 13:18:47 +01:00
HoneyryderChuck
5772f83149 added client and server stream tests and implementation
bidi calls also "just" work (tm)
2021-05-05 13:18:47 +01:00
HoneyryderChuck
d6a03f3e24 first grpc+proto unary test + implementation 2021-05-04 20:09:50 +01:00
HoneyryderChuck
440061409d bumping http-2-next to 0.4.1, the version fixing trailer headers 2021-05-04 20:09:50 +01:00
HoneyryderChuck
1cf6e5aac7 new option: origin
by setting the origin, one can pass relative paths to httpx, which will
be appended when building the request.
2021-05-04 20:09:50 +01:00
HoneyryderChuck
dbdf7b95a2 added initial test and implementation of a quasi-unary interface 2021-05-04 20:09:50 +01:00
HoneyryderChuck
3e7dfe3e7f stream: moved StreamResponse to the HTTPX namespace 2021-05-04 20:09:50 +01:00
HoneyryderChuck
56aecf8067 options: on extra_options class extension, always pass the original options as arg 2021-05-04 20:09:50 +01:00
HoneyryderChuck
e436c4fa04 options: always load plugins in the .configure callback 2021-05-04 20:09:50 +01:00
HoneyryderChuck
ae4b7545b2 added the first grpc test, initially using the gprc gem stub client 2021-04-20 19:04:19 +01:00