Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sk/backports 1.4 #184

Merged
merged 19 commits into from
Mar 24, 2022
Merged

sk/backports 1.4 #184

merged 19 commits into from
Mar 24, 2022

Conversation

StefanKarpinski
Copy link
Member

Shivam Gupta and others added 19 commits March 24, 2022 15:36
(cherry picked from commit adbb974)
(cherry picked from commit 3870614)
ChainRulesCore defines `==(a, b::AbstractThunk)` and its converse,
and this invalidates a couple of poorly-typed Symbol checks.
This more "SSA-like" way of writing the code is easier to infer.

(cherry picked from commit 25f7af3)
Since #114, we only turn
off peer verification, not host verification when the `SSL_NO_VERIFY`
variables are set. This means that the last set of tests in the "SSL no
verify override" testset *should* fail for `wrong.host.badssl.com`. That
is not what I was seeing, however — the test was still passing — which I
found puzzling but just moved on with my life at the time. It turns out
that the test *does* fail if libcurl is build with OpenSSL. Since
whether the test passes or not for that host depends on how things are
built, this change simply skips the test (by popping the URL from the
set of tested URLS for that testset).

The tests above that which use the easy hook mechanism are fixed in a
different way: for those I made the hook disable both host and peer
verification, which should fix the tests for any bad host including when
the server sends the wrong host name.

(cherry picked from commit e22219f)
Somewhat surprisingly, the type of this is not IOBuffer, but a related
type (Base.GenericIOBuffer{Base.CodeUnits{UInt8, String}}).

(cherry picked from commit 470b7f0)
If no content length is set while uploading some contents, Curl defaults to use
chunked transfer encoding. In some cases we want to prevent that because the
server may not support chunked transfers.

With this change, the request method will also look at the headers while
determining the input size and if found call `set_upload_size` as usual. So to
switch off chunked transfers, one must also know and set the content length
header while invoking `download` or `request` methods.

(cherry picked from commit ab628ab)
These only add one callback so having them be plural is weird.

(cherry picked from commit 5bd0826)
This adds end-to-end tests for the changes introduced in #167.

Verbose mode is switched off for these tests, but switching it on would show that not setting content-length headers results in chunked transfer encoding while setting it prevents that. Both tests should pass.

(cherry picked from commit 911368d)
(cherry picked from commit 2101bde)
(cherry picked from commit 3654257)
Slightly passive aggressive, but I'm tired of people filing issues about
their misconfigured Julia installs.

(cherry picked from commit a7a0346)
Unclear what happened here but there's a crash which could be
investigated. In the meantime I'm just adjusting the compat and testing
to match reality.
@codecov
Copy link

codecov bot commented Mar 24, 2022

Codecov Report

Merging #184 (6fccb97) into release-1.4 (92f692f) will increase coverage by 0.73%.
The diff coverage is 94.87%.

@@               Coverage Diff               @@
##           release-1.4     #184      +/-   ##
===============================================
+ Coverage        92.95%   93.69%   +0.73%     
===============================================
  Files                5        5              
  Lines              511      523      +12     
===============================================
+ Hits               475      490      +15     
+ Misses              36       33       -3     
Impacted Files Coverage Δ
src/Curl/utils.jl 94.23% <88.88%> (-3.39%) ⬇️
src/Curl/Easy.jl 95.25% <100.00%> (+0.83%) ⬆️
src/Curl/Multi.jl 96.03% <100.00%> (-0.04%) ⬇️
src/Downloads.jl 86.66% <100.00%> (+3.49%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 92f692f...6fccb97. Read the comment docs.

@StefanKarpinski StefanKarpinski merged commit d99d41b into release-1.4 Mar 24, 2022
@StefanKarpinski StefanKarpinski deleted the sk/backports-1.4 branch March 24, 2022 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.