1382 Commits

Author SHA1 Message Date
HoneyryderChuck
63f2026c1a disabling integrations for jruby 2021-01-31 15:51:34 +00:00
HoneyryderChuck
e253a70270 test bad certs errors with badssl.com instead 2021-01-31 15:51:34 +00:00
HoneyryderChuck
574a478cc8 changing indentation, registering TLS class 2021-01-31 15:51:34 +00:00
HoneyryderChuck
2749763d8c relaxed constraints on verify callback 2021-01-31 15:51:34 +00:00
HoneyryderChuck
f7600d39d9 installing a 2020 version of openssl 2021-01-31 15:51:34 +00:00
HoneyryderChuck
5cda82cf95 updating jruby docker image 2021-01-31 15:51:34 +00:00
HoneyryderChuck
2ecfde95d8 fixing cerfificate hostname validation callback 2021-01-31 15:51:34 +00:00
HoneyryderChuck
0b7dbb8cfa alpn refactoring 2021-01-31 15:51:34 +00:00
HoneyryderChuck
87b9a6c49e moving away from the single-file ruby-tls, breaking down into components 2021-01-31 15:51:34 +00:00
HoneyryderChuck
507e6f6674 exposing certificate verification errors upstream, openssl style 2021-01-31 15:51:34 +00:00
HoneyryderChuck
da21b4a342 updated verify certs callback, inorder only to verify the hostname when dealing with the leaf certificate 2021-01-31 15:51:34 +00:00
HoneyryderChuck
384d273715 new ssl option: :hostname -> the SNI hostname used in the TLS handshake 2021-01-31 15:51:34 +00:00
HoneyryderChuck
c5e3bda2d3 passing io doesn't work for ruby-tls 2021-01-31 15:51:33 +00:00
HoneyryderChuck
f1f85ecfc7 maintaining own fork of ruby-tls
The ruby-tls gem hasn't received an update in 3 years, and haven't
actioned on issues that old, which leads me to believe it was abandoned.
Therefore, I now maintain this fork, and this allows me to quickly
identify issues.

The flow within the IO wrapper has been dealt with as well
2021-01-31 15:51:33 +00:00
HoneyryderChuck
61afd85654 install libssl-dev in CI 2021-01-30 23:19:02 +00:00
HoneyryderChuck
f423ea69cb IO wrapper using the ruby-tls handler 2021-01-30 23:19:02 +00:00
HoneyryderChuck
fd9fc7ccf3 added ruby-tls for jruby 2021-01-30 23:19:02 +00:00
HoneyryderChuck
4aafa782e9 doc was somehow missing 2021-01-30 17:25:46 +00:00
HoneyryderChuck
037a435163 bumped to 0.11.1 v0.11.1 2021-01-30 17:17:16 +00:00
HoneyryderChuck
b63e91b165 forgot that integrations tests do not run in parallel 2021-01-30 16:26:19 +00:00
HoneyryderChuck
7221a61383 fixing jruby CI pipelinne 2021-01-30 16:13:55 +00:00
HoneyryderChuck
0ce0a0f092 Merge branch 'issue-112' into 'master'
fixing decompression issue when last DATA frame is empty

Closes #112

See merge request honeyryderchuck/httpx!116
2021-01-30 15:40:56 +00:00
HoneyryderChuck
d645ac8596 added quick fixes to make http tests run with truffleruby, until the patches are released 2021-01-30 15:31:03 +00:00
HoneyryderChuck
5158cce23f do not install msgpack version which fails to run under ruby 2.1 2021-01-30 15:31:03 +00:00
HoneyryderChuck
738875b5aa pinning runocop to master branch (there was a bug in the evalwithlocation cop) 2021-01-30 15:31:03 +00:00
HoneyryderChuck
e2b4cc0938 updating test TLS certs 2021-01-30 15:31:03 +00:00
HoneyryderChuck
129bcf1871 fixing decompression issue when last DATA frame is empty
An error arose in decompressing a GZIP body from an HTTP/2 response,
where the second-to-last DATA frame actually sent the last meaningful
data chunk, and the server emitted an additional empty frame with
`end_stream` flag.

This error was introduced in the transition to ruby 3 and RBS
refactorings, when the gzip inflater closes automatically once all the
advertised (in "content-length" header) bytes are successfully
decompressed. In the case described above, the empty chunk still dives
into the decompressor and passed to the now closed ZLib::Stream, which
triggeres an exception.

The fix is to halt decompression early in the chain. Response#write
already knows how to deal with empty frames, so the control should be
passed there.

Fixes #112
2021-01-29 18:09:11 +00:00
HoneyryderChuck
1368ed2df7 Merge branch 'fix-formdata' into 'master'
Fix formdata

See merge request honeyryderchuck/httpx!115
v0.11.0
2021-01-14 16:15:43 +00:00
HoneyryderChuck
af8539a7a7 multipart form: skip parts where value is nil 2021-01-14 16:07:11 +00:00
HoneyryderChuck
b8745bb3cc fixed concatenation of formdata parts, which wasn't filling HTTP/2 frames, and was causing miscalculations for buffers 2021-01-14 16:07:11 +00:00
HoneyryderChuck
890111c2f8 quote fields in formdata params for multipart 2021-01-14 16:07:11 +00:00
HoneyryderChuck
644783c642 keep loading http/form_data, mark for deprecation 2021-01-14 16:07:11 +00:00
HoneyryderChuck
654b791314 bumped to 0.11.0 2021-01-14 11:05:06 +00:00
HoneyryderChuck
bebd2bd11e don't account for #build_requests misusages (private API, we control it) 2021-01-14 00:50:23 +00:00
HoneyryderChuck
b2dff40839 reraise IOError on yield of io, when the error doesn't involve the
client io specifically.

This was the case for multipart tests raising IOErrors on upload files
instead of IO, which was causing the loop to break.
2021-01-14 00:37:00 +00:00
HoneyryderChuck
6e0df603db removed disabling of coverage and needless conditionals 2021-01-14 00:36:44 +00:00
HoneyryderChuck
ed8fcd7892 test covering untested paths of Session#build_requests 2021-01-14 00:35:52 +00:00
HoneyryderChuck
cbfdfed6c4 socks5 test covering failed authenticationn path 2021-01-14 00:35:22 +00:00
HoneyryderChuck
c5512dbbeb enable push frames in no push test in order to force refusal 2021-01-14 00:34:51 +00:00
HoneyryderChuck
a38724d134 renamed cop for ruby 2.3 2021-01-13 17:05:24 +00:00
HoneyryderChuck
0ffea8d6e4 Merge branch 'issue-99' into 'master'
Remove http-form_data, own multipart handler

Closes #99

See merge request honeyryderchuck/httpx!113
2021-01-13 17:00:04 +00:00
HoneyryderChuck
a29961962b allowing multipart requests to be retried (although, to be fair, user has to push a lot of knobs to do so) 2021-01-13 13:40:05 +00:00
HoneyryderChuck
fd91aca873 closing descriptors as they're flushed by the request.
this wasn't as easy due to reliance on Request#bytesize, which was
calling File#size on the closed file descriptors, which raised an
IOError caught by the selector. Caching fixes it, and removes the
recalculations from the hot path as well.
2021-01-13 13:40:05 +00:00
HoneyryderChuck
4987b2d583 disabling old cops 2021-01-13 12:27:13 +00:00
HoneyryderChuck
1691f50af5 fixing usage of Enumerable#sum for older rubies 2021-01-13 12:27:13 +00:00
HoneyryderChuck
7fa283097d added signatures to new modules 2021-01-13 12:27:13 +00:00
HoneyryderChuck
80f0ddfbc8 adding file tool to the CI 2021-01-13 12:27:13 +00:00
HoneyryderChuck
d39c82cea8 do not close parts (http2 handler failing to write when nit does) 2021-01-13 12:27:13 +00:00
HoneyryderChuck
42297cd38d simplifying apis, testing pathnames 2021-01-13 12:27:13 +00:00
HoneyryderChuck
478558d4bf making sure we don't leave file descriptors behind 2021-01-13 00:00:09 +00:00