mirror of
https://github.com/tun2proxy/tun2proxy.git
synced 2025-06-08 15:47:44 +00:00
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:
parent
bd27833c29
commit
91fcd07733
1 changed files with 12 additions and 6 deletions
18
src/lib.rs
18
src/lib.rs
|
@ -160,13 +160,19 @@ where
|
|||
} else {
|
||||
None
|
||||
};
|
||||
let proxy_handler = mgr.new_proxy_handler(info, domain_name, true).await?;
|
||||
tokio::spawn(async move {
|
||||
if let Err(err) = handle_udp_associate_session(udp, server_addr, proxy_handler, ipv6_enabled).await {
|
||||
log::error!("{} error \"{}\"", info, err);
|
||||
match mgr.new_proxy_handler(info, domain_name, true).await {
|
||||
Ok(proxy_handler) => {
|
||||
tokio::spawn(async move {
|
||||
if let Err(err) = handle_udp_associate_session(udp, server_addr, proxy_handler, ipv6_enabled).await {
|
||||
log::error!("{} error \"{}\"", info, err);
|
||||
}
|
||||
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");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue