mirror of
https://github.com/OMGeeky/tarpc.git
synced 2025-12-29 07:40:14 +01:00
Rework the future Connect trait to only have one method, which takes an Options arg.
This commit is contained in:
@@ -3,12 +3,12 @@
|
||||
// Licensed under the MIT License, <LICENSE or http://opensource.org/licenses/MIT>.
|
||||
// This file may not be copied, modified, or distributed except according to those terms.
|
||||
|
||||
use net2;
|
||||
use REMOTE;
|
||||
use bincode::serde::DeserializeError;
|
||||
use errors::WireError;
|
||||
use future::REMOTE;
|
||||
use protocol::Proto;
|
||||
use futures::{self, Async, Future, Stream};
|
||||
use net2;
|
||||
use protocol::Proto;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::io;
|
||||
use std::net::SocketAddr;
|
||||
@@ -50,29 +50,29 @@ pub fn listen_with<S, Req, Resp, E>(addr: SocketAddr,
|
||||
let addr = listener.local_addr()?;
|
||||
|
||||
let handle2 = handle.clone();
|
||||
let server = listener.incoming().for_each(move |(socket, _)| {
|
||||
Proto::new().bind_server(&handle2, socket, new_service.new_service()?);
|
||||
let server = listener.incoming()
|
||||
.for_each(move |(socket, _)| {
|
||||
Proto::new().bind_server(&handle2, socket, new_service.new_service()?);
|
||||
|
||||
Ok(())
|
||||
}).map_err(|e| error!("While processing incoming connections: {}", e));
|
||||
Ok(())
|
||||
})
|
||||
.map_err(|e| error!("While processing incoming connections: {}", e));
|
||||
handle.spawn(server);
|
||||
Ok(addr)
|
||||
}
|
||||
|
||||
fn listener(addr: &SocketAddr,
|
||||
handle: &Handle) -> io::Result<TcpListener> {
|
||||
fn listener(addr: &SocketAddr, handle: &Handle) -> io::Result<TcpListener> {
|
||||
const PENDING_CONNECTION_BACKLOG: i32 = 1024;
|
||||
|
||||
match *addr {
|
||||
SocketAddr::V4(_) => net2::TcpBuilder::new_v4(),
|
||||
SocketAddr::V6(_) => net2::TcpBuilder::new_v6()
|
||||
}?
|
||||
.reuse_address(true)?
|
||||
.bind(addr)?
|
||||
.listen(PENDING_CONNECTION_BACKLOG)
|
||||
.and_then(|l| {
|
||||
TcpListener::from_listener(l, addr, handle)
|
||||
})
|
||||
SocketAddr::V4(_) => net2::TcpBuilder::new_v4(),
|
||||
SocketAddr::V6(_) => net2::TcpBuilder::new_v6(),
|
||||
}
|
||||
?
|
||||
.reuse_address(true)?
|
||||
.bind(addr)?
|
||||
.listen(PENDING_CONNECTION_BACKLOG)
|
||||
.and_then(|l| TcpListener::from_listener(l, addr, handle))
|
||||
}
|
||||
|
||||
/// A future that resolves to a `ServerHandle`.
|
||||
|
||||
Reference in New Issue
Block a user