Switch trust-dns to an off-by-default optional feature
This commit is contained in:
		| @@ -13,13 +13,13 @@ use bytes::BufMut; | ||||
| use std::io; | ||||
| use std::sync::Arc; | ||||
|  | ||||
| #[cfg(not(any(target_os = "android", windows)))] | ||||
| #[cfg(feature = "trust-dns")] | ||||
| use dns::TrustDnsResolver; | ||||
| use Proxy; | ||||
|  | ||||
| #[cfg(not(any(target_os = "android", windows)))] | ||||
| #[cfg(feature = "trust-dns")] | ||||
| type HttpConnector = ::hyper::client::HttpConnector<TrustDnsResolver>; | ||||
| #[cfg(any(target_os = "android", windows))] | ||||
| #[cfg(not(feature = "trust-dns"))] | ||||
| type HttpConnector = ::hyper::client::HttpConnector; | ||||
|  | ||||
|  | ||||
| @@ -74,14 +74,14 @@ impl Connector { | ||||
|     } | ||||
| } | ||||
|  | ||||
| #[cfg(not(any(target_os = "android", windows)))] | ||||
| #[cfg(feature = "trust-dns")] | ||||
| fn http_connector() -> ::Result<HttpConnector> { | ||||
|     TrustDnsResolver::new() | ||||
|         .map(HttpConnector::new_with_resolver) | ||||
|         .map_err(::error::dns_system_conf) | ||||
| } | ||||
|  | ||||
| #[cfg(any(target_os = "android", windows))] | ||||
| #[cfg(not(feature = "trust-dns"))] | ||||
| fn http_connector() -> ::Result<HttpConnector> { | ||||
|     Ok(HttpConnector::new(4)) | ||||
| } | ||||
| @@ -279,12 +279,14 @@ fn tunnel_eof() -> io::Error { | ||||
| #[cfg(feature = "tls")] | ||||
| #[cfg(test)] | ||||
| mod tests { | ||||
|     extern crate tokio_tcp; | ||||
|  | ||||
|     use std::io::{Read, Write}; | ||||
|     use std::net::TcpListener; | ||||
|     use std::thread; | ||||
|     use futures::Future; | ||||
|     use tokio::runtime::current_thread::Runtime; | ||||
|     use tokio::net::TcpStream; | ||||
|     use self::tokio_tcp::TcpStream; | ||||
|     use super::tunnel; | ||||
|     use proxy; | ||||
|  | ||||
|   | ||||
							
								
								
									
										12
									
								
								src/error.rs
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/error.rs
									
									
									
									
									
								
							| @@ -140,7 +140,7 @@ impl Error { | ||||
|             Kind::NativeTls(ref e) => Some(e), | ||||
|             #[cfg(feature = "rustls-tls")] | ||||
|             Kind::Rustls(ref e) => Some(e), | ||||
|             #[cfg(not(any(target_os = "android", windows)))] | ||||
|             #[cfg(feature = "trust-dns")] | ||||
|             Kind::DnsSystemConf(ref e) => Some(e), | ||||
|             Kind::Io(ref e) => Some(e), | ||||
|             Kind::UrlEncoded(ref e) => Some(e), | ||||
| @@ -239,7 +239,7 @@ impl fmt::Display for Error { | ||||
|             Kind::NativeTls(ref e) => fmt::Display::fmt(e, f), | ||||
|             #[cfg(feature = "rustls-tls")] | ||||
|             Kind::Rustls(ref e) => fmt::Display::fmt(e, f), | ||||
|             #[cfg(not(any(target_os = "android", windows)))] | ||||
|             #[cfg(feature = "trust-dns")] | ||||
|             Kind::DnsSystemConf(ref e) => { | ||||
|                 write!(f, "failed to load DNS system conf: {}", e) | ||||
|             }, | ||||
| @@ -274,7 +274,7 @@ impl StdError for Error { | ||||
|             Kind::NativeTls(ref e) => e.description(), | ||||
|             #[cfg(feature = "rustls-tls")] | ||||
|             Kind::Rustls(ref e) => e.description(), | ||||
|             #[cfg(not(any(target_os = "android", windows)))] | ||||
|             #[cfg(feature = "trust-dns")] | ||||
|             Kind::DnsSystemConf(_) => "failed to load DNS system conf", | ||||
|             Kind::Io(ref e) => e.description(), | ||||
|             Kind::UrlEncoded(ref e) => e.description(), | ||||
| @@ -299,7 +299,7 @@ impl StdError for Error { | ||||
|             Kind::NativeTls(ref e) => e.cause(), | ||||
|             #[cfg(feature = "rustls-tls")] | ||||
|             Kind::Rustls(ref e) => e.cause(), | ||||
|             #[cfg(not(any(target_os = "android", windows)))] | ||||
|             #[cfg(feature = "trust-dns")] | ||||
|             Kind::DnsSystemConf(ref e) => e.cause(), | ||||
|             Kind::Io(ref e) => e.cause(), | ||||
|             Kind::UrlEncoded(ref e) => e.cause(), | ||||
| @@ -326,7 +326,7 @@ pub(crate) enum Kind { | ||||
|     NativeTls(::native_tls::Error), | ||||
|     #[cfg(feature = "rustls-tls")] | ||||
|     Rustls(::rustls::TLSError), | ||||
|     #[cfg(not(any(target_os = "android", windows)))] | ||||
|     #[cfg(feature = "trust-dns")] | ||||
|     DnsSystemConf(io::Error), | ||||
|     Io(io::Error), | ||||
|     UrlEncoded(::serde_urlencoded::ser::Error), | ||||
| @@ -501,7 +501,7 @@ pub(crate) fn url_bad_scheme(url: Url) -> Error { | ||||
|     Error::new(Kind::UrlBadScheme, Some(url)) | ||||
| } | ||||
|  | ||||
| #[cfg(not(any(target_os = "android", windows)))] | ||||
| #[cfg(feature = "trust-dns")] | ||||
| pub(crate) fn dns_system_conf(io: io::Error) -> Error { | ||||
|     Error::new(Kind::DnsSystemConf(io), None) | ||||
| } | ||||
|   | ||||
| @@ -155,6 +155,8 @@ | ||||
| //!   `native-tls` library to connect over HTTPS. | ||||
| //! - **default-tls-vendored**: Enables the `vendored` feature of `native-tls`. | ||||
| //! - **rustls-tls**: Provides TLS support via the `rustls` library. | ||||
| //! - **trust-dns**: Enables a trust-dns async resolver instead of default | ||||
| //!   threadpool using `getaddrinfo`. | ||||
| //! - **hyper-011**: Provides support for hyper's old typed headers. | ||||
| //! | ||||
| //! | ||||
| @@ -196,7 +198,7 @@ extern crate serde_urlencoded; | ||||
| extern crate tokio; | ||||
| #[cfg_attr(feature = "default-tls", macro_use)] | ||||
| extern crate tokio_io; | ||||
| #[cfg(not(any(target_os = "android", windows)))] | ||||
| #[cfg(feature = "trust-dns")] | ||||
| extern crate trust_dns_resolver; | ||||
| extern crate url; | ||||
| extern crate uuid; | ||||
| @@ -238,7 +240,7 @@ mod connect; | ||||
| mod connect_async; | ||||
| mod body; | ||||
| mod client; | ||||
| #[cfg(not(any(target_os = "android", windows)))] | ||||
| #[cfg(feature = "trust-dns")] | ||||
| mod dns; | ||||
| mod into_url; | ||||
| mod proxy; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user