|
|
@@ -4,7 +4,7 @@ use std::net::{SocketAddr, TcpListener};
|
|
|
use std::sync::Arc;
|
|
|
|
|
|
use crate::net::error::{NetError, NetResult};
|
|
|
-use crate::net::{Channel, ChannelPtr, SettingsPtr};
|
|
|
+use crate::net::{Channel, ChannelPtr};
|
|
|
use crate::system::{StoppableTask, StoppableTaskPtr, Subscriber, SubscriberPtr, Subscription};
|
|
|
|
|
|
pub type AcceptorPtr = Arc<Acceptor>;
|
|
|
@@ -12,15 +12,13 @@ pub type AcceptorPtr = Arc<Acceptor>;
|
|
|
pub struct Acceptor {
|
|
|
channel_subscriber: SubscriberPtr<NetResult<ChannelPtr>>,
|
|
|
task: StoppableTaskPtr,
|
|
|
- settings: SettingsPtr,
|
|
|
}
|
|
|
|
|
|
impl Acceptor {
|
|
|
- pub fn new(settings: SettingsPtr) -> Arc<Self> {
|
|
|
+ pub fn new() -> Arc<Self> {
|
|
|
Arc::new(Self {
|
|
|
channel_subscriber: Subscriber::new(),
|
|
|
task: StoppableTask::new(),
|
|
|
- settings,
|
|
|
})
|
|
|
}
|
|
|
|
|
|
@@ -48,14 +46,14 @@ impl Acceptor {
|
|
|
|
|
|
fn setup(accept_addr: SocketAddr) -> NetResult<Async<TcpListener>> {
|
|
|
let listener = match Async::<TcpListener>::bind(accept_addr) {
|
|
|
- Ok(l) => l,
|
|
|
+ Ok(listener) => listener,
|
|
|
Err(err) => {
|
|
|
error!("Bind listener failed: {}", err);
|
|
|
return Err(NetError::OperationFailed);
|
|
|
}
|
|
|
};
|
|
|
let local_addr = match listener.get_ref().local_addr() {
|
|
|
- Ok(a) => a,
|
|
|
+ Ok(addr) => addr,
|
|
|
Err(err) => {
|
|
|
error!("Failed to get local address: {}", err);
|
|
|
return Err(NetError::OperationFailed);
|
|
|
@@ -104,7 +102,7 @@ impl Acceptor {
|
|
|
};
|
|
|
info!("Accepted client: {}", peer_addr);
|
|
|
|
|
|
- let channel = Channel::new(stream, peer_addr, self.settings.clone()).await;
|
|
|
+ let channel = Channel::new(stream, peer_addr).await;
|
|
|
Ok(channel)
|
|
|
}
|
|
|
}
|