feat(ssl): redesign SSL usage
BREAKING CHANGE: Server::https was changed to allow any implementation of Ssl. Server in general was also changed. HttpConnector no longer uses SSL; using HttpsConnector instead.
This commit is contained in:
@@ -5,7 +5,7 @@ use std::io::{self, Read, Write};
|
||||
use std::net::{SocketAddr, Shutdown};
|
||||
use std::sync::{Arc, Mutex};
|
||||
|
||||
use net::{NetworkConnector, NetworkStream, HttpConnector, ContextVerifier};
|
||||
use net::{NetworkConnector, NetworkStream, DefaultConnector};
|
||||
|
||||
/// The `NetworkConnector` that behaves as a connection pool used by hyper's `Client`.
|
||||
pub struct Pool<C: NetworkConnector> {
|
||||
@@ -58,11 +58,11 @@ impl<'a> From<&'a str> for Scheme {
|
||||
}
|
||||
}
|
||||
|
||||
impl Pool<HttpConnector> {
|
||||
/// Creates a `Pool` with an `HttpConnector`.
|
||||
impl Pool<DefaultConnector> {
|
||||
/// Creates a `Pool` with a `DefaultConnector`.
|
||||
#[inline]
|
||||
pub fn new(config: Config) -> Pool<HttpConnector> {
|
||||
Pool::with_connector(config, HttpConnector(None))
|
||||
pub fn new(config: Config) -> Pool<DefaultConnector> {
|
||||
Pool::with_connector(config, DefaultConnector::default())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,10 +119,6 @@ impl<C: NetworkConnector<Stream=S>, S: NetworkStream + Send> NetworkConnector fo
|
||||
pool: self.inner.clone()
|
||||
})
|
||||
}
|
||||
#[inline]
|
||||
fn set_ssl_verifier(&mut self, verifier: ContextVerifier) {
|
||||
self.connector.set_ssl_verifier(verifier);
|
||||
}
|
||||
}
|
||||
|
||||
/// A Stream that will try to be returned to the Pool when dropped.
|
||||
@@ -181,9 +177,8 @@ impl<S> Drop for PooledStream<S> {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use std::net::Shutdown;
|
||||
use mock::{MockConnector, ChannelMockConnector};
|
||||
use mock::{MockConnector};
|
||||
use net::{NetworkConnector, NetworkStream};
|
||||
use std::sync::mpsc;
|
||||
|
||||
use super::{Pool, key};
|
||||
|
||||
@@ -220,20 +215,4 @@ mod tests {
|
||||
let locked = pool.inner.lock().unwrap();
|
||||
assert_eq!(locked.conns.len(), 0);
|
||||
}
|
||||
|
||||
/// Tests that the `Pool::set_ssl_verifier` method sets the SSL verifier of
|
||||
/// the underlying `Connector` instance that it uses.
|
||||
#[test]
|
||||
fn test_set_ssl_verifier_delegates_to_connector() {
|
||||
let (tx, rx) = mpsc::channel();
|
||||
let mut pool = Pool::with_connector(
|
||||
Default::default(), ChannelMockConnector::new(tx));
|
||||
|
||||
pool.set_ssl_verifier(Box::new(|_| { }));
|
||||
|
||||
match rx.try_recv() {
|
||||
Ok(meth) => assert_eq!(meth, "set_ssl_verifier"),
|
||||
_ => panic!("Expected a call to `set_ssl_verifier`"),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user