feat(net): add set_ssl_verifier method to NetworkConnector trait
The commit includes an implementation of the new trait method for all existing trait impls. BREAKING CHANGE: Adding a new required method to a public trait is a breaking change.
This commit is contained in:
16
src/net.rs
16
src/net.rs
@@ -70,6 +70,9 @@ pub trait NetworkConnector {
|
||||
type Stream: Into<Box<NetworkStream + Send>>;
|
||||
/// Connect to a remote address.
|
||||
fn connect(&mut self, host: &str, port: u16, scheme: &str) -> ::Result<Self::Stream>;
|
||||
/// Sets the given `ContextVerifier` to be used when verifying the SSL context
|
||||
/// on the establishment of a new connection.
|
||||
fn set_ssl_verifier(&mut self, verifier: ContextVerifier);
|
||||
}
|
||||
|
||||
impl<T: NetworkStream + Send> From<T> for Box<NetworkStream + Send> {
|
||||
@@ -344,12 +347,15 @@ impl NetworkConnector for HttpConnector {
|
||||
}
|
||||
}))
|
||||
}
|
||||
fn set_ssl_verifier(&mut self, verifier: ContextVerifier) {
|
||||
self.0 = Some(verifier);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use mock::MockStream;
|
||||
use super::NetworkStream;
|
||||
use super::{NetworkStream, HttpConnector, NetworkConnector};
|
||||
|
||||
#[test]
|
||||
fn test_downcast_box_stream() {
|
||||
@@ -371,4 +377,12 @@ mod tests {
|
||||
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_http_connector_set_ssl_verifier() {
|
||||
let mut connector = HttpConnector(None);
|
||||
|
||||
connector.set_ssl_verifier(Box::new(|_| {}));
|
||||
|
||||
assert!(connector.0.is_some());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user