Make tokio-rustls dependency optional
This commit is contained in:
parent
0db2c6d008
commit
70f3789098
|
@ -7,14 +7,16 @@ authors = ["Ritesh Chitlangi <ritesh@ayravat.com>"]
|
||||||
description = "EPP (Extensible Provisioning Protocol) Client Library for Domain Registration and Management"
|
description = "EPP (Extensible Provisioning Protocol) Client Library for Domain Registration and Management"
|
||||||
repository = "https://github.com/masalachai/epp-client"
|
repository = "https://github.com/masalachai/epp-client"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
default = ["tokio-rustls"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
celes = "2.1"
|
celes = "2.1"
|
||||||
chrono = "0.4"
|
chrono = "0.4"
|
||||||
quick-xml = { version = "0.22", features = [ "serialize" ] }
|
quick-xml = { version = "0.22", features = [ "serialize" ] }
|
||||||
rustls = "0.20"
|
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
tokio = { version = "1.0", features = [ "full" ] }
|
tokio = { version = "1.0", features = [ "full" ] }
|
||||||
tokio-rustls = "0.23"
|
tokio-rustls = { version = "0.23", optional = true }
|
||||||
tracing = "0.1.29"
|
tracing = "0.1.29"
|
||||||
webpki-roots = "0.22.1"
|
webpki-roots = "0.22.1"
|
||||||
|
|
||||||
|
|
|
@ -34,14 +34,17 @@
|
||||||
//! ```
|
//! ```
|
||||||
|
|
||||||
use std::convert::TryInto;
|
use std::convert::TryInto;
|
||||||
|
use std::io;
|
||||||
use std::net::SocketAddr;
|
use std::net::SocketAddr;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::io;
|
|
||||||
|
|
||||||
use tokio::io::{AsyncRead, AsyncWrite};
|
use tokio::io::{AsyncRead, AsyncWrite};
|
||||||
use tokio::net::TcpStream;
|
use tokio::net::TcpStream;
|
||||||
|
#[cfg(feature = "tokio-rustls")]
|
||||||
use tokio_rustls::client::TlsStream;
|
use tokio_rustls::client::TlsStream;
|
||||||
|
#[cfg(feature = "tokio-rustls")]
|
||||||
use tokio_rustls::rustls::{ClientConfig, OwnedTrustAnchor, RootCertStore};
|
use tokio_rustls::rustls::{ClientConfig, OwnedTrustAnchor, RootCertStore};
|
||||||
|
#[cfg(feature = "tokio-rustls")]
|
||||||
use tokio_rustls::TlsConnector;
|
use tokio_rustls::TlsConnector;
|
||||||
use tracing::info;
|
use tracing::info;
|
||||||
|
|
||||||
|
@ -60,6 +63,7 @@ pub struct EppClient<IO> {
|
||||||
connection: EppConnection<IO>,
|
connection: EppConnection<IO>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "tokio-rustls")]
|
||||||
impl EppClient<TlsStream<TcpStream>> {
|
impl EppClient<TlsStream<TcpStream>> {
|
||||||
/// Connect to the specified `addr` and `hostname` over TLS
|
/// Connect to the specified `addr` and `hostname` over TLS
|
||||||
///
|
///
|
||||||
|
@ -94,10 +98,10 @@ impl EppClient<TlsStream<TcpStream>> {
|
||||||
Some((certs, key)) => {
|
Some((certs, key)) => {
|
||||||
let certs = certs
|
let certs = certs
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|cert| rustls::Certificate(cert.0))
|
.map(|cert| tokio_rustls::rustls::Certificate(cert.0))
|
||||||
.collect();
|
.collect();
|
||||||
builder
|
builder
|
||||||
.with_single_cert(certs, rustls::PrivateKey(key.0))
|
.with_single_cert(certs, tokio_rustls::rustls::PrivateKey(key.0))
|
||||||
.map_err(|e| Error::Other(e.into()))?
|
.map_err(|e| Error::Other(e.into()))?
|
||||||
}
|
}
|
||||||
None => builder.with_no_client_auth(),
|
None => builder.with_no_client_auth(),
|
||||||
|
|
Loading…
Reference in New Issue