From 47e30683cb488e091d94d2df3c1de16909d9ce69 Mon Sep 17 00:00:00 2001 From: Toshit Chawda Date: Sun, 24 Mar 2024 10:45:47 -0700 Subject: [PATCH] automatically add leading slash in prefix --- server/src/main.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index 33b2815..86c0661 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -117,9 +117,15 @@ async fn main() -> Result<(), Error> { let socket = bind(&addr, opt.unix_socket).await?; + let prefix = if opt.prefix.starts_with('/') { + opt.prefix + } else { + "/".to_string() + &opt.prefix + }; + println!("listening on `{}`", addr); while let Ok((stream, addr)) = socket.accept().await { - let prefix = opt.prefix.clone(); + let prefix = prefix.clone(); tokio::spawn(async move { let io = TokioIo::new(stream); let service = service_fn(move |res| { @@ -184,7 +190,11 @@ async fn handle_mux(packet: ConnectPacket, mut stream: MuxStream) -> Result { - let uri = lookup_host(uri).await.map_err(|x| WispError::Other(Box::new(x)))?.next().ok_or(WispError::InvalidUri)?; + let uri = lookup_host(uri) + .await + .map_err(|x| WispError::Other(Box::new(x)))? + .next() + .ok_or(WispError::InvalidUri)?; let udp_socket = UdpSocket::bind(if uri.is_ipv4() { "0.0.0.0:0" } else { "[::]:0" }) .await .map_err(|x| WispError::Other(Box::new(x)))?;