automatically add leading slash in prefix

This commit is contained in:
Toshit Chawda 2024-03-24 10:45:47 -07:00
parent 94d5fdc58b
commit 47e30683cb
No known key found for this signature in database
GPG key ID: 91480ED99E2B3D9D

View file

@ -117,9 +117,15 @@ async fn main() -> Result<(), Error> {
let socket = bind(&addr, opt.unix_socket).await?; 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); println!("listening on `{}`", addr);
while let Ok((stream, addr)) = socket.accept().await { while let Ok((stream, addr)) = socket.accept().await {
let prefix = opt.prefix.clone(); let prefix = prefix.clone();
tokio::spawn(async move { tokio::spawn(async move {
let io = TokioIo::new(stream); let io = TokioIo::new(stream);
let service = service_fn(move |res| { let service = service_fn(move |res| {
@ -184,7 +190,11 @@ async fn handle_mux(packet: ConnectPacket, mut stream: MuxStream) -> Result<bool
.map_err(|x| WispError::Other(Box::new(x)))?; .map_err(|x| WispError::Other(Box::new(x)))?;
} }
StreamType::Udp => { StreamType::Udp => {
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" }) let udp_socket = UdpSocket::bind(if uri.is_ipv4() { "0.0.0.0:0" } else { "[::]:0" })
.await .await
.map_err(|x| WispError::Other(Box::new(x)))?; .map_err(|x| WispError::Other(Box::new(x)))?;