diff --git a/src/args.rs b/src/args.rs index dac3756..07b1bda 100644 --- a/src/args.rs +++ b/src/args.rs @@ -462,6 +462,7 @@ impl Args { #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] pub enum BindAddr { IpAddr(IpAddr), + #[cfg(unix)] SocketPath(String), } @@ -475,11 +476,10 @@ impl BindAddr { bind_addrs.push(BindAddr::IpAddr(v)); } Err(_) => { - if cfg!(unix) { - bind_addrs.push(BindAddr::SocketPath(addr.to_string())); - } else { - invalid_addrs.push(*addr); - } + #[cfg(unix)] + bind_addrs.push(BindAddr::SocketPath(addr.to_string())); + #[cfg(not(unix))] + invalid_addrs.push(*addr); } } } diff --git a/src/main.rs b/src/main.rs index a1f9e3b..7267ad9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -140,6 +140,7 @@ fn serve(args: Args, running: Arc) -> Result>> { } }; } + #[cfg(unix)] BindAddr::SocketPath(path) => { let socket_path = if path.starts_with("@") && cfg!(any(target_os = "linux", target_os = "android")) @@ -152,22 +153,19 @@ fn serve(args: Args, running: Arc) -> Result>> { let _ = std::fs::remove_file(path); path.into() }; - #[cfg(unix)] - { - let listener = tokio::net::UnixListener::bind(socket_path) - .with_context(|| format!("Failed to bind `{}`", path))?; - let handle = tokio::spawn(async move { - loop { - let Ok((stream, _addr)) = listener.accept().await else { - continue; - }; - let stream = TokioIo::new(stream); - tokio::spawn(handle_stream(server_handle.clone(), stream, None)); - } - }); + let listener = tokio::net::UnixListener::bind(socket_path) + .with_context(|| format!("Failed to bind `{}`", path))?; + let handle = tokio::spawn(async move { + loop { + let Ok((stream, _addr)) = listener.accept().await else { + continue; + }; + let stream = TokioIo::new(stream); + tokio::spawn(handle_stream(server_handle.clone(), stream, None)); + } + }); - handles.push(handle); - } + handles.push(handle); } } } @@ -237,6 +235,7 @@ fn check_addrs(args: &Args) -> Result<(Vec, Vec)> { } } }, + #[cfg(unix)] _ => { new_addrs.push(bind_addr.clone()); print_addrs.push(bind_addr.clone()) @@ -280,6 +279,7 @@ fn print_listening(args: &Args, print_addrs: &[BindAddr]) -> Result { }; format!("{}://{}{}", protocol, addr, args.uri_prefix) } + #[cfg(unix)] BindAddr::SocketPath(path) => path.to_string(), }) .collect::>();