From 2649f9ab565ff6e4f21249eae302de84a1548b32 Mon Sep 17 00:00:00 2001 From: Sean McArthur Date: Thu, 10 Jan 2019 12:46:44 -0800 Subject: [PATCH] Remove trust-dns when target_os is Android --- .travis.yml | 7 +++++++ Cargo.toml | 4 +++- src/connect.rs | 10 ++++++++++ src/lib.rs | 2 ++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0581a06..572e77d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,6 +26,13 @@ matrix: - rust: stable env: FEATURES="--features hyper-011" + # android + - rust: stable + env: TARGET=aarch64-linux-android + install: rustup target add "$TARGET" + # disable default-tls feature since cross-compiling openssl is dragons + script: cargo build --target "$TARGET" --no-default-features + # minimum version - rust: 1.30.0 script: cargo build diff --git a/Cargo.toml b/Cargo.toml index 3e6e1ff..ced131b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,6 @@ tokio-executor = "0.1.4" # a minimum version so trust-dns-resolver compiles tokio-io = "0.1" tokio-threadpool = "0.1.8" # a minimum version so tokio compiles tokio-timer = "0.2.6" # a minimum version so trust-dns-resolver compiles -trust-dns-resolver = "0.10" url = "1.2" uuid = { version = "0.7", features = ["v4"] } hyper-rustls = { version = "0.15", optional = true } @@ -39,6 +38,9 @@ tokio-rustls = { version = "0.8", optional = true } webpki-roots = { version = "0.15", optional = true } rustls = { version = "0.14", features = ["dangerous_configuration"], optional = true } +[target.'cfg(not(target_os = "android"))'.dependencies] +trust-dns-resolver = "0.10" + [dev-dependencies] env_logger = "0.6" serde_derive = "1.0" diff --git a/src/connect.rs b/src/connect.rs index cb580ce..a979a85 100644 --- a/src/connect.rs +++ b/src/connect.rs @@ -13,10 +13,14 @@ use bytes::BufMut; use std::io; use std::sync::Arc; +#[cfg(not(target_os = "android"))] use dns::TrustDnsResolver; use Proxy; +#[cfg(not(target_os = "android"))] type HttpConnector = ::hyper::client::HttpConnector; +#[cfg(target_os = "android")] +type HttpConnector = ::hyper::client::HttpConnector; pub(crate) struct Connector { @@ -70,12 +74,18 @@ impl Connector { } } +#[cfg(not(target_os = "android"))] fn http_connector() -> ::Result { TrustDnsResolver::new() .map(HttpConnector::new_with_resolver) .map_err(::error::dns_system_conf) } +#[cfg(target_os = "android")] +fn http_connector() -> ::Result { + Ok(HttpConnector::new(4)) +} + impl Connect for Connector { type Transport = Conn; type Error = io::Error; diff --git a/src/lib.rs b/src/lib.rs index 008534b..28a28c0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -196,6 +196,7 @@ extern crate serde_urlencoded; extern crate tokio; #[cfg_attr(feature = "default-tls", macro_use)] extern crate tokio_io; +#[cfg(not(target_os = "android"))] extern crate trust_dns_resolver; extern crate url; extern crate uuid; @@ -237,6 +238,7 @@ mod connect; mod connect_async; mod body; mod client; +#[cfg(not(target_os = "android"))] mod dns; mod into_url; mod proxy;