Do not terminate when UDP is not supported by proxy

When an HTTP proxy is used, `new_proxy_handler` can result in an error
when a UDP packet is processed. Without this commit, this results in the
termination of tun2proxy.
This commit is contained in:
B. Blechschmidt 2024-02-24 22:06:37 +01:00
parent bd27833c29
commit 91fcd07733

View file

@ -160,7 +160,8 @@ where
} else { } else {
None None
}; };
let proxy_handler = mgr.new_proxy_handler(info, domain_name, true).await?; match mgr.new_proxy_handler(info, domain_name, true).await {
Ok(proxy_handler) => {
tokio::spawn(async move { tokio::spawn(async move {
if let Err(err) = handle_udp_associate_session(udp, server_addr, proxy_handler, ipv6_enabled).await { if let Err(err) = handle_udp_associate_session(udp, server_addr, proxy_handler, ipv6_enabled).await {
log::error!("{} error \"{}\"", info, err); log::error!("{} error \"{}\"", info, err);
@ -168,6 +169,11 @@ where
log::trace!("Session count {}", TASK_COUNT.fetch_sub(1, Relaxed) - 1); log::trace!("Session count {}", TASK_COUNT.fetch_sub(1, Relaxed) - 1);
}); });
} }
Err(e) => {
log::error!("Failed to create UDP connection: {}", e);
}
}
}
_ => { _ => {
log::trace!("Unknown transport"); log::trace!("Unknown transport");
continue; continue;