From fc4a78b962d25b00dd9707197edf9abdd34edc3e Mon Sep 17 00:00:00 2001 From: Martin Algesten Date: Tue, 26 Jun 2018 08:26:44 +0200 Subject: [PATCH] ToSocketAddrs instead of dns lookup --- Cargo.lock | 30 ------------------------------ Cargo.toml | 1 - src/lib.rs | 1 - src/stream.rs | 10 +++++----- 4 files changed, 5 insertions(+), 37 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3ee811f..0277553 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -32,11 +32,6 @@ name = "cc" version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "cfg-if" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "chunked_transfer" version = "0.3.1" @@ -68,16 +63,6 @@ dependencies = [ "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "dns-lookup" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "socket2 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "dtoa" version = "0.4.2" @@ -329,17 +314,6 @@ dependencies = [ "serde 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "socket2" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "tempdir" version = "0.3.7" @@ -380,7 +354,6 @@ dependencies = [ "base64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "chunked_transfer 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "cookie 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "dns-lookup 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -430,12 +403,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c54bb8f454c567f21197eefcdbf5679d0bd99f2ddbe52e84c77061952e6789" "checksum byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "74c0b906e9446b0a2e4f760cdb3fa4b2c48cdc6db8766a845c54b6ff063fd2e9" "checksum cc 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "49ec142f5768efb5b7622aebc3fdbdbb8950a4b9ba996393cb76ef7466e8747d" -"checksum cfg-if 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "405216fd8fe65f718daa7102ea808a946b6ce40c742998fbfd3463645552de18" "checksum chunked_transfer 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "498d20a7aaf62625b9bf26e637cf7736417cde1d0c99f1d04d1170229a85cf87" "checksum cookie 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "746858cae4eae40fff37e1998320068df317bc247dc91a67c6cfa053afdc2abb" "checksum core-foundation 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "25bfd746d203017f7d5cbd31ee5d8e17f94b6521c7af77ece6c9e4b2d4b16c67" "checksum core-foundation-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "065a5d7ffdcbc8fa145d6f0746f3555025b9097a9e9cda59f7467abae670c78d" -"checksum dns-lookup 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "54810764899241c707428f4a1989351f30c0c2bda5ea07ff2e43148f8935039f" "checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab" "checksum encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" "checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" @@ -469,7 +440,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum security-framework-sys 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "5421621e836278a0b139268f36eee0dc7e389b784dc3f79d8f11aabadf41bead" "checksum serde 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)" = "e9a2d9a9ac5120e0f768801ca2b58ad6eec929dc9d1d616c162f208869c2ce95" "checksum serde_json 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)" = "eb40600c756f02d7ea34943626cefa85732fdae5f95b90b31f9797b3c526d1e6" -"checksum socket2 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "06dc9f86ee48652b7c80f3d254e3b9accb67a928c562c64d10d7b016d3d98dab" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" "checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" diff --git a/Cargo.toml b/Cargo.toml index 473b9dc..ba5f224 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,6 @@ ascii = "0.9" base64 = "0.9" chunked_transfer = "0.3" cookie = { version = "0.10", features = ["percent-encode"] } -dns-lookup = "0.9.1" lazy_static = "1" qstring = "0.6" url = "1.6" diff --git a/src/lib.rs b/src/lib.rs index c8d3151..bca428b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -94,7 +94,6 @@ extern crate ascii; extern crate base64; extern crate chunked_transfer; extern crate cookie; -extern crate dns_lookup; #[macro_use] extern crate lazy_static; extern crate qstring; diff --git a/src/stream.rs b/src/stream.rs index 436b397..99f7171 100644 --- a/src/stream.rs +++ b/src/stream.rs @@ -1,7 +1,6 @@ -use dns_lookup; -use std::net::IpAddr; use std::net::SocketAddr; use std::net::TcpStream; +use std::net::ToSocketAddrs; use std::time::Duration; #[cfg(feature = "tls")] @@ -84,15 +83,16 @@ fn connect_https(request: &Request, url: &Url) -> Result { fn connect_host(request: &Request, hostname: &str, port: u16) -> Result { // - let ips: Vec = - dns_lookup::lookup_host(hostname).map_err(|e| Error::DnsFailed(format!("{}", e)))?; + let ips: Vec = format!("{}:{}", hostname, port).to_socket_addrs() + .map_err(|e| Error::DnsFailed(format!("{}", e)))? + .collect(); if ips.len() == 0 { return Err(Error::DnsFailed(format!("No ip address for {}", hostname))); } // pick first ip, or should we randomize? - let sock_addr = SocketAddr::new(ips[0], port); + let sock_addr = ips[0]; // connect with a configured timeout. let stream = match request.timeout {