From d8425015363cc0ac4742f938dc3f8e9d0beaa933 Mon Sep 17 00:00:00 2001 From: hozan23 Date: Thu, 30 Nov 2023 23:29:25 +0300 Subject: net: rename `Listener` trait to `ConnListener` --- jsonrpc/src/server.rs | 4 ++-- net/src/lib.rs | 2 +- net/src/listener.rs | 9 ++++++--- net/src/transports/tcp.rs | 6 +++--- net/src/transports/tls.rs | 14 +++++++------- net/src/transports/unix.rs | 6 +++--- p2p/src/listener.rs | 6 +++--- 7 files changed, 25 insertions(+), 22 deletions(-) diff --git a/jsonrpc/src/server.rs b/jsonrpc/src/server.rs index 0038e89..44de336 100644 --- a/jsonrpc/src/server.rs +++ b/jsonrpc/src/server.rs @@ -25,7 +25,7 @@ pub struct ServerConfig { /// Represents an RPC server pub struct Server<'a> { - listener: Box, + listener: Listener, services: RwLock>>, task_group: TaskGroup<'a>, config: ServerConfig, @@ -33,7 +33,7 @@ pub struct Server<'a> { impl<'a> Server<'a> { /// Creates a new RPC server by passing a listener. It supports Tcp, Unix, and Tls. - pub fn new(listener: Box, config: ServerConfig, ex: Executor<'a>) -> Arc { + pub fn new(listener: Listener, config: ServerConfig, ex: Executor<'a>) -> Arc { Arc::new(Self { listener, services: RwLock::new(HashMap::new()), diff --git a/net/src/lib.rs b/net/src/lib.rs index 61069ef..813a090 100644 --- a/net/src/lib.rs +++ b/net/src/lib.rs @@ -7,7 +7,7 @@ mod transports; pub use { connection::{dial, Conn, Connection}, endpoint::{Addr, Endpoint, Port}, - listener::{listen, Listener}, + listener::{listen, ConnListener, Listener}, transports::{ tcp::{dial_tcp, listen_tcp, TcpConn}, tls, diff --git a/net/src/listener.rs b/net/src/listener.rs index c6c3d94..fcd1175 100644 --- a/net/src/listener.rs +++ b/net/src/listener.rs @@ -5,9 +5,12 @@ use crate::{ Conn, Endpoint, Error, Result, }; -/// Listener is a generic network listener. +/// Alias for `Box` +pub type Listener = Box; + +/// ConnListener is a generic network listener. #[async_trait] -pub trait Listener: Send + Sync { +pub trait ConnListener: Send + Sync { fn local_endpoint(&self) -> Result; async fn accept(&self) -> Result; } @@ -29,7 +32,7 @@ pub trait Listener: Send + Sync { /// }; /// /// ``` -pub async fn listen(endpoint: &Endpoint) -> Result> { +pub async fn listen(endpoint: &Endpoint) -> Result> { match endpoint { Endpoint::Tcp(addr, port) => Ok(Box::new(tcp::listen_tcp(addr, port).await?)), Endpoint::Unix(addr) => Ok(Box::new(unix::listen_unix(addr)?)), diff --git a/net/src/transports/tcp.rs b/net/src/transports/tcp.rs index 37ad860..7cd7127 100644 --- a/net/src/transports/tcp.rs +++ b/net/src/transports/tcp.rs @@ -9,7 +9,7 @@ use smol::{ use crate::{ connection::Connection, endpoint::{Addr, Endpoint, Port}, - listener::Listener, + listener::ConnListener, Error, Result, }; @@ -57,7 +57,7 @@ impl Connection for TcpConn { } #[async_trait] -impl Listener for TcpListener { +impl ConnListener for TcpListener { fn local_endpoint(&self) -> Result { Ok(Endpoint::new_tcp_addr(&self.local_addr()?)) } @@ -90,7 +90,7 @@ impl From for Box { } } -impl From for Box { +impl From for Box { fn from(listener: TcpListener) -> Self { Box::new(listener) } diff --git a/net/src/transports/tls.rs b/net/src/transports/tls.rs index cbb3d99..bc928b0 100644 --- a/net/src/transports/tls.rs +++ b/net/src/transports/tls.rs @@ -11,7 +11,7 @@ use smol::{ use crate::{ connection::Connection, endpoint::{Addr, Endpoint, Port}, - listener::Listener, + listener::ConnListener, Error, Result, }; @@ -92,14 +92,14 @@ pub async fn dial( .await .map(|c| Box::new(c) as Box) } -/// Tls network listener implementation of the [`Listener`] trait. +/// Tls network listener implementation of the `Listener` [`ConnListener`] trait. pub struct TlsListener { acceptor: TlsAcceptor, listener: TcpListener, } #[async_trait] -impl Listener for TlsListener { +impl ConnListener for TlsListener { fn local_endpoint(&self) -> Result { Ok(Endpoint::new_tls_addr(&self.listener.local_addr()?)) } @@ -124,11 +124,11 @@ pub async fn listen_tls( Ok(TlsListener { acceptor, listener }) } -/// Listens on the given TLS endpoint, returns [`Listener`]. +/// Listens on the given TLS endpoint, returns `Listener` [`ConnListener`]. pub async fn listen( endpoint: &Endpoint, config: rustls::ServerConfig, -) -> Result> { +) -> Result> { match endpoint { Endpoint::Tcp(..) | Endpoint::Tls(..) => {} _ => return Err(Error::InvalidEndpoint(endpoint.to_string())), @@ -136,7 +136,7 @@ pub async fn listen( listen_tls(endpoint.addr()?, endpoint.port()?, config) .await - .map(|l| Box::new(l) as Box) + .map(|l| Box::new(l) as Box) } impl From> for Box { @@ -145,7 +145,7 @@ impl From> for Box { } } -impl From for Box { +impl From for Box { fn from(listener: TlsListener) -> Self { Box::new(listener) } diff --git a/net/src/transports/unix.rs b/net/src/transports/unix.rs index 0698975..c546333 100644 --- a/net/src/transports/unix.rs +++ b/net/src/transports/unix.rs @@ -6,7 +6,7 @@ use smol::{ net::unix::{UnixListener, UnixStream}, }; -use crate::{connection::Connection, endpoint::Endpoint, listener::Listener, Error, Result}; +use crate::{connection::Connection, endpoint::Endpoint, listener::ConnListener, Error, Result}; /// Unix domain socket implementation of the [`Connection`] trait. pub struct UnixConn { @@ -52,7 +52,7 @@ impl Connection for UnixConn { } #[async_trait] -impl Listener for UnixListener { +impl ConnListener for UnixListener { fn local_endpoint(&self) -> Result { Ok(Endpoint::new_unix_addr(&self.local_addr()?)) } @@ -81,7 +81,7 @@ impl From for Box { } } -impl From for Box { +impl From for Box { fn from(listener: UnixListener) -> Self { Box::new(listener) } diff --git a/p2p/src/listener.rs b/p2p/src/listener.rs index 879f046..416a0d4 100644 --- a/p2p/src/listener.rs +++ b/p2p/src/listener.rs @@ -8,7 +8,7 @@ use karyons_core::{ GlobalExecutor, }; -use karyons_net::{listen, tls, Conn, Endpoint, Listener as NetListener}; +use karyons_net::{listen, tls, Conn, ConnListener, Endpoint}; use crate::{ monitor::{ConnEvent, Monitor}, @@ -100,7 +100,7 @@ impl Listener { async fn listen_loop( self: Arc, - listener: Box, + listener: Box, callback: impl FnOnce(Conn) -> Fut + Clone + Send + 'static, ) where Fut: Future> + Send + 'static, @@ -152,7 +152,7 @@ impl Listener { } } - async fn listend(&self, endpoint: &Endpoint) -> Result> { + async fn listend(&self, endpoint: &Endpoint) -> Result> { if self.enable_tls { let tls_config = tls_server_config(&self.key_pair)?; tls::listen(endpoint, tls_config).await -- cgit v1.2.3