diff --git a/Cargo.toml b/Cargo.toml index 63a07c9..c754ea5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,8 +17,9 @@ features = ["native-tls"] [features] default = [] -native-tls-vendored = ["native-tls", "native-tls/vendored"] -rustls-tls = ["rustls", "webpki", "webpki-roots"] +use-native-tls = ["native-tls"] +use-native-tls-vendored = ["use-native-tls", "native-tls/vendored"] +use-rustls = ["rustls", "webpki", "webpki-roots"] [dependencies] base64 = "0.13.0" diff --git a/src/client.rs b/src/client.rs index 1515f17..8330e02 100644 --- a/src/client.rs +++ b/src/client.rs @@ -16,7 +16,7 @@ use crate::{ protocol::WebSocketConfig, }; -#[cfg(feature = "native-tls")] +#[cfg(feature = "use-native-tls")] mod encryption { pub use native_tls::TlsStream; use native_tls::{HandshakeError as TlsHandshakeError, TlsConnector}; @@ -47,7 +47,7 @@ mod encryption { } } -#[cfg(feature = "rustls-tls")] +#[cfg(feature = "use-rustls")] mod encryption { use rustls::ClientConfig; pub use rustls::{ClientSession, StreamOwned}; @@ -80,7 +80,7 @@ mod encryption { } } -#[cfg(not(any(feature = "native-tls", feature = "rustls-tls")))] +#[cfg(not(any(feature = "use-native-tls", feature = "use-rustls")))] mod encryption { use std::net::TcpStream; diff --git a/src/error.rs b/src/error.rs index 7f14229..4ab05a1 100644 --- a/src/error.rs +++ b/src/error.rs @@ -5,13 +5,13 @@ use std::{borrow::Cow, error::Error as ErrorTrait, fmt, io, result, str, string} use crate::protocol::Message; use http::Response; -#[cfg(feature = "native-tls")] +#[cfg(feature = "use-native-tls")] pub mod tls { //! TLS error wrapper module, feature-gated. pub use native_tls::Error; } -#[cfg(feature = "rustls-tls")] +#[cfg(feature = "use-rustls")] pub mod tls { //! TLS error wrapper module, feature-gated. pub use rustls::TLSError as Error; @@ -47,13 +47,13 @@ pub enum Error { /// Input-output error. Apart from WouldBlock, these are generally errors with the /// underlying connection and you should probably consider them fatal. Io(io::Error), - #[cfg(feature = "native-tls")] + #[cfg(feature = "use-native-tls")] /// TLS error Tls(tls::Error), - #[cfg(feature = "rustls-tls")] + #[cfg(feature = "use-rustls")] /// TLS error Tls(tls::Error), - #[cfg(feature = "rustls-tls")] + #[cfg(feature = "use-rustls")] /// DNS name resolution error. Dns(tls::DnsError), /// - When reading: buffer capacity exhausted. @@ -80,11 +80,11 @@ impl fmt::Display for Error { Error::ConnectionClosed => write!(f, "Connection closed normally"), Error::AlreadyClosed => write!(f, "Trying to work with closed connection"), Error::Io(ref err) => write!(f, "IO error: {}", err), - #[cfg(feature = "native-tls")] + #[cfg(feature = "use-native-tls")] Error::Tls(ref err) => write!(f, "TLS error: {}", err), - #[cfg(feature = "rustls-tls")] + #[cfg(feature = "use-rustls")] Error::Tls(ref err) => write!(f, "TLS error: {}", err), - #[cfg(feature = "rustls-tls")] + #[cfg(feature = "use-rustls")] Error::Dns(ref err) => write!(f, "Invalid DNS name: {}", err), Error::Capacity(ref msg) => write!(f, "Space limit exceeded: {}", msg), Error::Protocol(ref msg) => write!(f, "WebSocket protocol error: {}", msg), @@ -153,21 +153,21 @@ impl From for Error { } } -#[cfg(feature = "native-tls")] +#[cfg(feature = "use-native-tls")] impl From for Error { fn from(err: tls::Error) -> Self { Error::Tls(err) } } -#[cfg(feature = "rustls-tls")] +#[cfg(feature = "use-rustls")] impl From for Error { fn from(err: tls::Error) -> Self { Error::Tls(err) } } -#[cfg(feature = "rustls-tls")] +#[cfg(feature = "use-rustls")] impl From for Error { fn from(err: tls::DnsError) -> Self { Error::Dns(err) diff --git a/src/lib.rs b/src/lib.rs index 4ec74fd..9b1b8e0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -30,5 +30,5 @@ pub use crate::{ server::{accept, accept_hdr}, }; -#[cfg(all(feature = "native-tls", feature = "rustls-tls"))] -compile_error!("either \"native-tls\" or \"rustls-tls\" can be enabled, but not both."); +#[cfg(all(feature = "use-native-tls", feature = "use-rustls"))] +compile_error!("either \"use-native-tls\" or \"use-rustls\" can be enabled, but not both."); diff --git a/src/stream.rs b/src/stream.rs index d52edae..3cdd3ca 100644 --- a/src/stream.rs +++ b/src/stream.rs @@ -8,9 +8,9 @@ use std::io::{Read, Result as IoResult, Write}; use std::net::TcpStream; -#[cfg(feature = "native-tls")] +#[cfg(feature = "use-native-tls")] use native_tls::TlsStream; -#[cfg(feature = "rustls-tls")] +#[cfg(feature = "use-rustls")] use rustls::StreamOwned as TlsStream; /// Stream mode, either plain TCP or TLS. @@ -34,14 +34,14 @@ impl NoDelay for TcpStream { } } -#[cfg(feature = "native-tls")] +#[cfg(feature = "use-native-tls")] impl NoDelay for TlsStream { fn set_nodelay(&mut self, nodelay: bool) -> IoResult<()> { self.get_mut().set_nodelay(nodelay) } } -#[cfg(feature = "rustls-tls")] +#[cfg(feature = "use-rustls")] impl NoDelay for TlsStream { fn set_nodelay(&mut self, nodelay: bool) -> IoResult<()> { self.sock.set_nodelay(nodelay) diff --git a/tests/connection_reset.rs b/tests/connection_reset.rs index 17d7729..6edbd74 100644 --- a/tests/connection_reset.rs +++ b/tests/connection_reset.rs @@ -1,6 +1,6 @@ //! Verifies that the server returns a `ConnectionClosed` error when the connection //! is closedd from the server's point of view and drop the underlying tcp socket. -#![cfg(any(feature = "native-tls", feature = "rustls-tls"))] +#![cfg(any(feature = "use-native-tls", feature = "use-rustls"))] use std::{ net::{TcpListener, TcpStream}, @@ -13,9 +13,9 @@ use net2::TcpStreamExt; use tungstenite::{accept, connect, stream::Stream, Error, Message, WebSocket}; use url::Url; -#[cfg(feature = "native-tls")] +#[cfg(feature = "use-native-tls")] type Sock = WebSocket>>; -#[cfg(feature = "rustls-tls")] +#[cfg(feature = "use-rustls")] type Sock = WebSocket>>; fn do_test(port: u16, client_task: CT, server_task: ST)