Commit Graph

406 Commits

Author SHA1 Message Date
llde 38ad90307d Preserve Authorization in same host redirects, when scheme and port are equals 2021-12-19 11:00:39 +01:00
soruh 61e2402045 deprecate using SerdeValue, SerdeMap and serde_to_value
as they are just wrapper around serde_json::{Value, Map, to_value}.
Instead expose the serde_json and serde crates used.
2021-12-17 20:12:07 +01:00
soruh 59f1fab4d3 allow send_json to send any serde::Serialize value 2021-12-17 20:12:07 +01:00
Jacob Hoffman-Andrews 56276c3742 Add support for alternate TLs implementations. 2021-12-17 17:47:30 +01:00
Malloc Voidstar 1c1dfaa691 Bump rustls to 0.20.1; add src to rustls error (#438) 2021-12-17 00:32:00 -08:00
Martin Algesten a6d1750f14 Fix native-certs and add to test matrix
Close #239
2021-11-28 22:45:16 +01:00
Jochen Kupperschmidt 69ad3aabb0 Add shortcuts for PATCH (again)` 2021-11-26 13:50:29 +01:00
Malloc Voidstar 31dd67380e Return error for InvalidDnsNameError, don't panic (#436)
Can't provide src for the error as rustls 0.20 didn't implement stdlib Error for it; it's on main and targeted for 0.20.1.
2021-11-12 17:15:39 -08:00
Jacob Hoffman-Andrews f22e67be4c Fix agent test. 2021-10-21 07:38:59 +02:00
Jacob Hoffman-Andrews 3bc7d8336b Fix lint 2021-10-21 07:38:59 +02:00
Jacob Hoffman-Andrews 5fa912c4d3 Update to rustls 0.20, webpki 0.22 2021-10-21 07:38:59 +02:00
Andrew Hickman eb78813df5 Redact sensitive headers when logging prelude (#415)
Closes #414
2021-10-05 08:57:16 -07:00
Jon Gjengset 1ec60e1c15 Remove trailing newline from testing response
The newline becomes part of the response body, even though it was not passed in
as `body`, which makes `Response::new` difficult to use with anything that
checksums data contents for example. Arguably there should also be a mechanism
for passing in `[u8]` bodies, but that's for a separate feature request.
2021-10-02 18:51:59 +02:00
Jacob Hoffman-Andrews 535bc4b4cb Remove two unused fields. (#425)
Co-authored-by: Michael Richardson <mcr@sandelman.ca>
2021-10-02 01:04:36 -07:00
Martin Algesten 551f4289fb Update all dependencies
webpki and webpki roots are not compatible with current rustls,
so they are held back.:wq
2021-08-23 21:21:39 +02:00
Martin Algesten 485647d5de Fix proxy urls that end with trailing slash
Close #402
2021-08-23 20:57:29 +02:00
Martin Algesten 641eb3df10 Fix overlapping redirect tests
Two tests were using /redirect_post1, which breaks if they are running in parallel.
2021-08-23 20:52:08 +02:00
Keijia 2869a80130 oh, use None != proto instead of proto.is_some() 2021-08-23 20:46:44 +02:00
Keijia c7292919e5 fix build fails 2021-08-23 20:46:44 +02:00
Keijia f6f021cdbb highlight that socks:// prefix is equal to socks5:// 2021-08-23 20:46:44 +02:00
Keijia 35c472507b whoops, fix tests for socks4://and socks4a:// 2021-08-23 20:46:44 +02:00
Keijia 401d051bd1 add socks4a:// and socks:// tests 2021-08-23 20:46:44 +02:00
Keijia 12b49e59f4 whoops, fix HTTPConnect proxies 2021-08-23 20:46:44 +02:00
Keijia 37e19b34ec add socks4 to readme 2021-08-23 20:46:44 +02:00
Keijia bdaa9fc68c add support for socks4 and socks4a 2021-08-23 20:46:44 +02:00
Martin Algesten 526eb7b9e0 Fix clippy lints 2021-08-23 20:45:33 +02:00
Jelle Besseling 6797258e9d Use debug logs when making requests 2021-08-14 14:36:25 +02:00
Niketh Murali 4665b0aa5a Fix clippy warnings
Fix linter warning from clippy about unnecessary borrows - "This expression borrows a reference ... that is immediately dereferenced by the compiler"
2021-08-13 09:26:04 +02:00
Tshepang Lekhonkhobe eb04d96af8 Fix a typo (#397) 2021-07-09 09:10:22 -07:00
Gus Power 37e1e91e22 Clear Content-Length header from redirected requests (#394)
This PR removes the Content-Length header from subsequent redirect requests if set.
A test verifies the new behaviour.
2021-06-18 16:12:31 -07:00
Martin Algesten 989995d1ba Fix clippy lints (#387) 2021-05-11 18:05:17 -07:00
Berrysoft c06c345f28 Remove extra clone when request with Url 2021-05-11 20:18:34 +02:00
12932 db5203d1a0 fix typo "memroy" to "memory" (#379) 2021-04-26 11:41:26 -07:00
Jacob Hoffman-Andrews 50d9ccff8c Don't reuse conns with bytes pending from server (#372)
This makes us less likely to try and reuse a closed connection, which
produces problems in particular for requests that can't be retried.

Fixes #361
Fixes #124
2021-04-18 10:46:20 -07:00
Martin Algesten 4ade506047 Allow upper_case_acronyms 2021-04-17 12:30:39 +02:00
Martin Algesten 3cfa9e6b35 Refactor into_string body reading 2021-03-25 21:49:39 +01:00
Martin Algesten 7c6ed53df3 Move Response::unit and stream to the heap 2021-03-25 21:04:12 +01:00
Martin Algesten cfaca317c6 Provide url in Response Debug impl 2021-03-25 07:45:34 +01:00
Jacob Hoffman-Andrews 3044ae7efd Add size limits on responses (#351)
This prevents a malicious server from running the client out of memory
by returning a very large body.

Limit into_string() to 1 megabyte.
Limit individual header fields to 100 kilobytes.
Limit number of header fields to 100.

Part of #267
2021-03-24 13:28:23 -07:00
Martin Algesten 40e156e2a3 Url access functions for Request (simpler) 2021-03-24 20:58:47 +01:00
Martin Algesten b42e9afd71 Fix clippy warnings 2021-03-24 20:29:43 +01:00
Martin Algesten ea53c7cedd Use is_tchar for cookie name check 2021-03-24 20:09:27 +01:00
Martin Algesten 5c9b1b9a0c Enforce cookie RFC name/value rules 2021-03-24 20:09:27 +01:00
Martin Algesten c5c40cf138 Stop percent encoding cookies 2021-03-24 20:09:27 +01:00
Jacob Hoffman-Andrews a34d450657 Remove specialized error message for complete_io. (#349)
This was triggering for errors like InvalidCertificate and giving the
message "Sometimes this means the host doesn't support any of the same
ciphersuites as rustls, or doesn't support TLS 1.2 and above," which is
confusing in that situation.

For now, offer no specialized error. I'd like to come back when I find
more time and restore this, but only for the error cases where it's
useful.
2021-03-23 17:00:09 -07:00
Martin Algesten 026cf75690 Handle non-utf8 status and headers
Non-utf8 headers are ignored and reading the value for them will
yield `None`.
2021-03-14 23:14:43 +01:00
Martin Algesten 9a9dd4ee6c Upgrade cookie to 0.15 and cookie_store to 0.13.0
cookie_store default features pulls in reqwest, so we stop that
by specifying the exact features wanted.
2021-03-14 19:00:28 +01:00
Martin Algesten 0dc609fc30 Ensure Error and Response implement Send+Sync
This is to ensure we don't accidentally introduce breaking changes
with respects to Send and Sync.
2021-03-14 19:00:04 +01:00
Martin Algesten 91cb0ce5fc Move unit tests inside conditionally compiled mod tests { } blocks
Idiomatic rust organizes unit tests into `mod tests { }` blocks
using conditional compilation `[cfg(test)]` to decide whether to
compile the code in that block.

This commit moves "bare" test functions into such blocks, and puts
the block at the bottom of respective file.
2021-03-14 18:56:09 +01:00
Martin Algesten 239ba342a2 Provide .method() and .query_params() 2021-03-14 09:46:40 +01:00