From 3d7820d17ed8b20179882da4a21ad8f7c6dc8ad9 Mon Sep 17 00:00:00 2001 From: Sean McArthur Date: Thu, 6 Nov 2014 17:50:08 -0800 Subject: [PATCH] update using ToSocketAddr --- benches/client_mock_tcp.rs | 4 ++-- src/client/request.rs | 2 +- src/mock.rs | 4 ++-- src/net.rs | 20 ++++++++++---------- src/server/mod.rs | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/benches/client_mock_tcp.rs b/benches/client_mock_tcp.rs index 9a400e25..0f84cf0c 100644 --- a/benches/client_mock_tcp.rs +++ b/benches/client_mock_tcp.rs @@ -8,7 +8,7 @@ extern crate test; use std::fmt::{mod, Show}; use std::from_str::from_str; use std::io::{IoResult, MemReader}; -use std::io::net::ip::SocketAddr; +use std::io::net::ip::{SocketAddr, ToSocketAddr}; use std::os; use std::path::BytesContainer; @@ -92,7 +92,7 @@ impl net::NetworkStream for MockStream { } impl net::NetworkConnector for MockStream { - fn connect(_host: &str, _port: u16, _scheme: &str) -> IoResult { + fn connect(_addr: To, _scheme: &str) -> IoResult { Ok(MockStream::new()) } diff --git a/src/client/request.rs b/src/client/request.rs index 96b00158..62b8b379 100644 --- a/src/client/request.rs +++ b/src/client/request.rs @@ -56,7 +56,7 @@ impl Request { }; debug!("port={}", port); - let stream: S = try_io!(NetworkConnector::connect(host.as_slice(), port, url.scheme.as_slice())); + let stream: S = try_io!(NetworkConnector::connect((host[], port), url.scheme.as_slice())); let stream = ThroughWriter(BufferedWriter::new(box stream as Box)); let mut headers = Headers::new(); diff --git a/src/mock.rs b/src/mock.rs index 42172868..8c023ad8 100644 --- a/src/mock.rs +++ b/src/mock.rs @@ -1,5 +1,5 @@ use std::io::IoResult; -use std::io::net::ip::SocketAddr; +use std::io::net::ip::{SocketAddr, ToSocketAddr}; use net::{NetworkStream, NetworkConnector}; @@ -26,7 +26,7 @@ impl NetworkStream for MockStream { } impl NetworkConnector for MockStream { - fn connect(_host: &str, _port: u16, _scheme: &str) -> IoResult { + fn connect(_addr: To, _scheme: &str) -> IoResult { Ok(MockStream) } } diff --git a/src/net.rs b/src/net.rs index 254890ce..4313cfbc 100644 --- a/src/net.rs +++ b/src/net.rs @@ -5,7 +5,7 @@ use std::fmt; use std::intrinsics::TypeId; use std::io::{IoResult, IoError, ConnectionAborted, InvalidInput, OtherIoError, Stream, Listener, Acceptor}; -use std::io::net::ip::{SocketAddr, Port}; +use std::io::net::ip::{SocketAddr, ToSocketAddr}; use std::io::net::tcp::{TcpStream, TcpListener, TcpAcceptor}; use std::mem::{mod, transmute, transmute_copy}; use std::raw::{mod, TraitObject}; @@ -28,7 +28,7 @@ pub trait NetworkListener>: Listener IoResult; + fn bind(addr: To) -> IoResult; /// Get the address this Listener ended up listening on. fn socket_name(&mut self) -> IoResult; @@ -53,7 +53,7 @@ pub trait NetworkStream: Stream + Any + Clone + Send { /// A connector creates a NetworkStream. pub trait NetworkConnector: NetworkStream { /// Connect to a remote address. - fn connect(host: &str, Port, scheme: &str) -> IoResult; + fn connect(addr: To, scheme: &str) -> IoResult; } impl fmt::Show for Box { @@ -136,9 +136,9 @@ impl Listener for HttpListener { impl NetworkListener for HttpListener { #[inline] - fn bind(host: &str, port: Port) -> IoResult { + fn bind(addr: To) -> IoResult { Ok(HttpListener { - inner: try!(TcpListener::bind(host, port)) + inner: try!(TcpListener::bind(addr)) }) } @@ -219,21 +219,21 @@ impl NetworkStream for HttpStream { } impl NetworkConnector for HttpStream { - fn connect(host: &str, port: Port, scheme: &str) -> IoResult { + fn connect(addr: To, scheme: &str) -> IoResult { match scheme { "http" => { debug!("http scheme"); - Ok(Http(try!(TcpStream::connect(host, port)))) + Ok(Http(try!(TcpStream::connect(addr)))) }, "https" => { debug!("https scheme"); - let mut stream = try!(TcpStream::connect(host, port)); + let mut stream = try!(TcpStream::connect(addr)); // we can't access the tcp stream once it's wrapped in an // SslStream, so grab the ip address now, just in case. - let addr = try!(stream.peer_name()); + let peer_addr = try!(stream.peer_name()); let context = try!(SslContext::new(Sslv23).map_err(lift_ssl_error)); let stream = try!(SslStream::new(&context, stream).map_err(lift_ssl_error)); - Ok(Https(Arc::new(Mutex::new(stream)), addr)) + Ok(Https(Arc::new(Mutex::new(stream)), peer_addr)) }, _ => { Err(IoError { diff --git a/src/server/mod.rs b/src/server/mod.rs index 206ad5c5..1493598a 100644 --- a/src/server/mod.rs +++ b/src/server/mod.rs @@ -60,7 +60,7 @@ impl, S: NetworkStream, A: NetworkAcceptor> Server::bind(ip.to_string().as_slice(), port)); + let mut listener: L = try_io!(NetworkListener::::bind((ip, port))); sockets.push(try_io!(listener.socket_name()));