Ftr: add feature for unix socket capability (#86)
* feat(dubbo): add unix feature
* Rft: replace feature with target_os cfg
diff --git a/dubbo/src/framework.rs b/dubbo/src/framework.rs
index da21ab8..412ff36 100644
--- a/dubbo/src/framework.rs
+++ b/dubbo/src/framework.rs
@@ -53,7 +53,7 @@
}
pub fn init(&mut self) {
- let conf = self.config.get_or_insert_with(|| get_global_config());
+ let conf = self.config.get_or_insert_with(get_global_config);
tracing::debug!("global conf: {:?}", conf);
for (name, url) in conf.registries.iter() {
diff --git a/dubbo/src/triple/transport/connector/mod.rs b/dubbo/src/triple/transport/connector/mod.rs
index 89ae555..82b9281 100644
--- a/dubbo/src/triple/transport/connector/mod.rs
+++ b/dubbo/src/triple/transport/connector/mod.rs
@@ -16,6 +16,7 @@
*/
pub mod http_connector;
+#[cfg(target_os = "unix")]
pub mod unix_connector;
use hyper::Uri;
@@ -78,6 +79,7 @@
let c = http_connector::HttpConnector::new();
BoxCloneService::new(Connector::new(c))
}
+ #[cfg(target_os = "unix")]
"unix" => {
let c = unix_connector::UnixConnector::new();
BoxCloneService::new(Connector::new(c))
diff --git a/dubbo/src/triple/transport/listener/mod.rs b/dubbo/src/triple/transport/listener/mod.rs
index d755cd3..6beb215 100644
--- a/dubbo/src/triple/transport/listener/mod.rs
+++ b/dubbo/src/triple/transport/listener/mod.rs
@@ -16,6 +16,7 @@
*/
pub mod tcp_listener;
+#[cfg(target_os = "unix")]
pub mod unix_listener;
use std::net::SocketAddr;
@@ -25,7 +26,6 @@
use super::io::BoxIO;
pub use tcp_listener::TcpListener;
-pub use unix_listener::UnixListener;
#[async_trait]
pub trait Listener: Send + Sync {
@@ -64,7 +64,8 @@
pub async fn get_listener(name: String, addr: SocketAddr) -> Result<BoxListener, crate::Error> {
match name.as_str() {
"tcp" => Ok(TcpListener::bind(addr).await?.boxed()),
- "unix" => Ok(UnixListener::bind(addr).await?.boxed()),
+ #[cfg(target_os = "unix")]
+ "unix" => Ok(unix_listener::UnixListener::bind(addr).await?.boxed()),
_ => {
tracing::warn!("no support listener: {:?}", name);
Err(Box::new(crate::status::DubboError::new(format!(