Commit Graph

287 Commits

Author SHA1 Message Date
sklv b0898ae8fd Add comment explaining Proxy::new argument format. 2020-04-18 11:47:40 +02:00
sklv 9928559067 Make SOCKS5 connection respect timeout_connect. 2020-04-18 11:47:37 +02:00
sklv 05ce690ebd Add initial SOCKS5 support. 2020-04-18 11:47:30 +02:00
Koga Kazuo e5fa36f98e Fix panic on invalid authority 2020-04-12 09:41:35 +02:00
Koga Kazuo 661853b95d Check status code that has no response body 2020-04-12 09:10:39 +02:00
Nicolas Viennot 31ae90e614 Use platform certificates when target "native-certs" is set
This is useful in Entreprise configurations.
2020-04-12 09:08:52 +02:00
Nicolas Viennot 652500f5a8 Improve chunked transfer upload performance
This implementation improves over chunked_transfer's Encoder + io::copy
with the following performance optimizations:

1) It avoid copying memory
2) chunked_transfer's Encoder issues 4 separate write() per chunk.
   This is costly overhead. Instead, we do a single write() per chunk

The measured benefit on a Linux machine is a 50% reduction in CPU usage
on a https connection.
2020-04-06 09:15:41 +02:00
rustysec bb498ce699 added basic authentication method 2020-03-14 09:54:54 +01:00
rustysec 3b0df412ef initial proxy impl 2020-03-14 09:54:54 +01:00
Martin Algesten 2956683870 bump deps, fix clippy warnings 2020-03-14 09:54:54 +01:00
Rob Young 28bdb89175 Set a default content type for JSON requests
When sending a JSON request a Content-Type of application/json is
usually wanted. This is often set as a default for JSON methods by HTTP
clients so can be confusing when it is not set. However, we do not want
to prevent the user from setting their own Content-Type.
2020-02-06 07:57:00 +01:00
Razvan Rotari 09dabbdd49 Disable the native system timeout for socket 2020-01-17 23:15:26 +01:00
Martin Algesten a4bae72fcb cargo fmt 2020-01-07 08:08:12 +01:00
Martin Algesten 63cfcfb23e doc format 2020-01-07 08:07:51 +01:00
Martin Algesten 4b9cfe2b67 fix clippy lints 2020-01-07 07:59:29 +01:00
Martin Algesten a6f64188dc update serde_macros from origin 2020-01-07 07:59:29 +01:00
Tom Forbes 594340a096 Fix compilation errors with the cookies feature (#22)
* Fix compilation errors with the cookies feature
2019-10-30 11:51:06 +01:00
Martin Algesten 753d61b454 Retry some pooled connections failing when server closes. Close #10
This is not a perfect solution. It works as long as we are not sending
any body bytes. We discover the error first when attempting to read
the response status line. That means we discover the error after
sending body bytes. To be able to re-send the body, we would need to
introduce a buffer to be able to replay the body on the next
request. We don't currently do that.
2019-10-20 21:36:38 +02:00
Tom Forbes da42f2ed8f Make cookies conditional 2019-10-20 20:17:35 +02:00
Martin Algesten d9b8fef9a0 Code comment on *mut Stream effect on thread safety 2019-10-20 14:08:21 +02:00
Martin Algesten acffc5fe13 Rename YoloRead -> ReclaimingRead
To better reflect why this is necessary. Also provide a doc comment why this is needed.
2019-10-20 12:31:55 +02:00
Martin Algesten 27be8117b8 Avoid tuple to describe response status line 2019-10-20 12:25:54 +02:00
Martin Algesten d8f8220c3c clippy fix warning 2019-10-20 11:49:20 +02:00
Martin Algesten acb40cc1a3 Fail if PoolKey::new() cant find port 2019-10-20 11:45:37 +02:00
Martin Algesten f58ecac620 Simpler comparison for retaining x- headers 2019-10-20 11:19:16 +02:00
Martin Algesten 999653e7f3 handle header with spaces before value 2019-10-20 10:58:16 +02:00
Martin Algesten e936d5ea74 cargo fmt 2019-10-20 10:41:35 +02:00
Martin Algesten ed999b579d Removing AsciiString dep and one unsafe
This library is not about enforcing standards, so the internal use of
AsciiString for headers and status lines is not necessary.
2019-10-20 10:40:30 +02:00
Martin Algesten c2bb5a9592 fix test --no-default-features 2019-09-14 08:41:59 +02:00
Martin Algesten afa0cf9444 Merge pull request #9 from FauxFaux/close_notify
Map CloseNotify to EOF
2019-09-11 14:55:13 +02:00
Chris West (Faux) a97dfcb408 fix warnings 2019-09-09 19:54:45 +01:00
Chris West (Faux) 580e159268 handle server CloseNotifying connection 2019-09-09 19:52:48 +01:00
Martin Algesten fef05fd5c9 send_bytes 2019-06-21 15:53:45 +02:00
Martin Algesten 9d069b60b4 fix tests 2019-06-21 15:53:23 +02:00
Martin Algesten 32279c84e0 impl std::error::Error for Error close #6 2019-06-21 15:14:58 +02:00
Martin Algesten 41b21d37e4 fix clippy warnings 2019-06-21 15:09:36 +02:00
Chris West (Faux) ceb7c3ac14 use pub(crate) instead of include!() 2019-05-27 17:44:14 +01:00
Chris West (Faux) 73d1c89e90 rustfmt 2019-05-27 17:25:43 +01:00
Martin Algesten a89150eee7 fix warning in --no-default-features 2019-03-30 11:34:35 +01:00
Martin Algesten d4d68ae585 fix parse error when no status text. close #4 2019-03-30 11:29:53 +01:00
Martin Algesten 22e83fc31c fixes for no-default-features 2019-02-03 12:05:27 +05:30
Martin Algesten 141668acba list all header names in request and response 2019-02-03 11:52:05 +05:30
Martin Algesten cb3d6e8124 resolved url in response 2018-12-20 11:08:39 +01:00
Martin Algesten 07fd4d2cd5 pub(crate) where we can 2018-12-20 11:08:20 +01:00
Martin Algesten 1519dcb0b1 fix redirect logic 2018-12-20 10:54:47 +01:00
Martin Algesten 707d194b74 rustls instead of native-tls 2018-12-19 10:30:43 +01:00
Martin Algesten 131476bd1a remove extern crate 2018-12-18 13:45:13 +01:00
Martin Algesten 4151aab3b4 redirects 0 2018-12-18 13:34:05 +01:00
Martin Algesten 5ba6b3cd4d edition 2018, clippy, fmt 2018-12-18 13:17:19 +01:00
Martin Algesten 5a6ccfdae0 default User-Agent and Accept headers 2018-12-04 18:05:50 +01:00