From 3ae6744b465c10967d18413e22362edffa55d1c2 Mon Sep 17 00:00:00 2001 From: Maik Klein Date: Tue, 5 Nov 2019 17:40:33 +0100 Subject: [PATCH 1/5] Reenable rustls --- Cargo.toml | 12 ++++++------ src/connect.rs | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d288e8bea..26021c6e6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ tls = [] default-tls = ["hyper-tls", "native-tls", "tls", "tokio-tls"] default-tls-vendored = ["default-tls", "native-tls/vendored"] -#rustls-tls = ["hyper-rustls", "tokio-rustls", "webpki-roots", "rustls", "tls"] +rustls-tls = ["hyper-rustls", "tokio-rustls", "webpki-roots", "rustls", "tls"] blocking = ["futures-channel-preview", "futures-util-preview/io", "tokio/rt-full"] @@ -76,11 +76,11 @@ hyper-tls = { version = "=0.4.0-alpha.4", optional = true } native-tls = { version = "0.2", optional = true } tokio-tls = { version = "=0.3.0-alpha.6", optional = true } -## rustls-tls -#hyper-rustls = { version = "=0.18.0-alpha.1", optional = true } -#rustls = { version = "0.16", features = ["dangerous_configuration"], optional = true } -#tokio-rustls = { version = "=0.12.0-alpha.2", optional = true } -#webpki-roots = { version = "0.17", optional = true } +# rustls-tls +hyper-rustls = { version = "=0.18.0-alpha.2", optional = true } +rustls = { version = "0.16", features = ["dangerous_configuration"], optional = true } +tokio-rustls = { version = "=0.12.0-alpha.5", optional = true } +webpki-roots = { version = "0.17", optional = true } ## blocking futures-channel-preview = { version = "=0.3.0-alpha.19", optional = true } diff --git a/src/connect.rs b/src/connect.rs index c553fac2c..0ff55e3c7 100644 --- a/src/connect.rs +++ b/src/connect.rs @@ -232,12 +232,12 @@ impl Connector { // Disable Nagle's algorithm for TLS handshake // // https://www.openssl.org/docs/man1.1.1/man3/SSL_connect.html#NOTES - http.set_nodelay(no_delay || (dst.scheme() == "https")); + http.set_nodelay(self.nodelay || (dst.scheme() == "https")); let http = hyper_rustls::HttpsConnector::from((http, tls.clone())); let (io, connected) = http.connect(dst).await?; if let hyper_rustls::MaybeHttpsStream::Https(stream) = &io { - if !no_delay { + if !self.nodelay { let (io, _) = stream.get_ref(); io.set_nodelay(false)?; } @@ -301,7 +301,7 @@ impl Connector { let host = dst.host().to_owned(); let port = dst.port().unwrap_or(443); let mut http = http.clone(); - http.set_nodelay(no_delay); + http.set_nodelay(self.nodelay); let http = hyper_rustls::HttpsConnector::from((http, tls_proxy.clone())); let tls = tls.clone(); let (conn, connected) = http.connect(proxy_dst).await?; @@ -309,7 +309,7 @@ impl Connector { let maybe_dnsname = DNSNameRef::try_from_ascii_str(&host) .map(|dnsname| dnsname.to_owned()) .map_err(|_| io::Error::new(io::ErrorKind::Other, "Invalid DNS Name")); - let tunneled = tunnel(conn, host, port, auth).await?; + let tunneled = tunnel(conn, host, port, self.user_agent.clone(), auth).await?; let dnsname = maybe_dnsname?; let io = RustlsConnector::from(tls) .connect(dnsname.as_ref(), tunneled) From c56e5b4027c430300f15f9db4421abd8a49d574f Mon Sep 17 00:00:00 2001 From: maik Date: Wed, 18 Dec 2019 11:36:20 +0100 Subject: [PATCH 2/5] Update rustls --- Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 5d43b4a86..4df660938 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -77,9 +77,9 @@ native-tls = { version = "0.2", optional = true } tokio-tls = { version = "=0.3.0-alpha.6", optional = true } # rustls-tls -hyper-rustls = { version = "=0.18.0-alpha.2", optional = true } +hyper-rustls = { version = "=0.18.0", optional = true } rustls = { version = "0.16", features = ["dangerous_configuration"], optional = true } -tokio-rustls = { version = "=0.12.0-alpha.5", optional = true } +tokio-rustls = { version = "=0.12.0", optional = true } webpki-roots = { version = "0.17", optional = true } ## blocking From a1953f67e11a9ab12d54b2b8271b4dfed8413da7 Mon Sep 17 00:00:00 2001 From: Gleb Pomykalov Date: Wed, 18 Dec 2019 13:46:06 +0300 Subject: [PATCH 3/5] Use released version of hyper-rustls --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 15e7fc54c..bef47582b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -78,7 +78,7 @@ native-tls = { version = "0.2", optional = true } tokio-tls = { version = "0.3.0", optional = true } # rustls-tls -hyper-rustls = { git = "https://github.com/ctz/hyper-rustls.git", optional = true } +hyper-rustls = { version = "0.19", optional = true } rustls = { version = "0.16", features = ["dangerous_configuration"], optional = true } tokio-rustls = { version = "0.12", optional = true } webpki-roots = { version = "0.17", optional = true } From 8600951f5c907108160d3926d336bb5fc4c637d6 Mon Sep 17 00:00:00 2001 From: maik Date: Wed, 18 Dec 2019 11:51:32 +0100 Subject: [PATCH 4/5] Don't pin tokio/hyper dependencies --- Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ecddd002e..638755511 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -78,9 +78,9 @@ native-tls = { version = "0.2", optional = true } tokio-tls = { version = "0.3.0", optional = true } # rustls-tls -hyper-rustls = { version = "=0.18.0", optional = true } +hyper-rustls = { version = "0.18.0", optional = true } rustls = { version = "0.16", features = ["dangerous_configuration"], optional = true } -tokio-rustls = { version = "=0.12.0", optional = true } +tokio-rustls = { version = "0.12.0", optional = true } webpki-roots = { version = "0.17", optional = true } ## blocking From cf1dc43ad2ba74e9a2fd2bfd7e26c3508d6f2b39 Mon Sep 17 00:00:00 2001 From: maik Date: Thu, 19 Dec 2019 09:40:41 +0100 Subject: [PATCH 5/5] Re-enable rustls testing on the CI --- .github/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ca54f8342..44d87c5f0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,8 +54,8 @@ jobs: - windows / stable-x86_64-gnu - windows / stable-i686-gnu - "feat.: default-tls disabled" - # - "feat.: rustls-tls" - # - "feat.: default-tls and rustls-tls" + - "feat.: rustls-tls" + - "feat.: default-tls and rustls-tls" - "feat.: cookies" - "feat.: blocking" - "feat.: gzip" @@ -98,10 +98,10 @@ jobs: - name: "feat.: default-tls disabled" features: "--no-default-features" - # - name: "feat.: rustls-tls - # features: "--no-default-features --features rustls-tls" - # - name: "feat.: default-tls and rustls-tls" - # features: "--features rustls-tls" + - name: "feat.: rustls-tls + features: "--no-default-features --features rustls-tls" + - name: "feat.: default-tls and rustls-tls" + features: "--features rustls-tls" - name: "feat.: cookies" features: "--features cookies" - name: "feat.: blocking"