fix socks5 udp connectivity

This commit is contained in:
Remy D. Farley 2024-04-07 10:28:11 +00:00 committed by B. Blechschmidt
parent 56be614334
commit f9f5401ba4

View file

@ -305,9 +305,8 @@ where
Ok(proxy_handler) => { Ok(proxy_handler) => {
let socket_queue = socket_queue.clone(); let socket_queue = socket_queue.clone();
tokio::spawn(async move { tokio::spawn(async move {
if let Err(err) = let ty = args.proxy.proxy_type;
handle_udp_associate_session(udp, args.proxy.proxy_type, proxy_handler, socket_queue, ipv6_enabled).await if let Err(err) = handle_udp_associate_session(udp, ty, proxy_handler, socket_queue, ipv6_enabled).await {
{
log::info!("Ending {} with \"{}\"", info, err); log::info!("Ending {} with \"{}\"", info, err);
} }
log::trace!("Session count {}", TASK_COUNT.fetch_sub(1, Relaxed) - 1); log::trace!("Session count {}", TASK_COUNT.fetch_sub(1, Relaxed) - 1);
@ -406,13 +405,12 @@ async fn handle_udp_associate_session(
log::info!("Beginning {}", session_info); log::info!("Beginning {}", session_info);
let udp_addr = match udp_addr { let (_server, udp_addr) = match udp_addr {
Some(udp_addr) => udp_addr, Some(udp_addr) => (None, udp_addr),
None => { None => {
let mut server = create_tcp_stream(&socket_queue, server_addr).await?; let mut server = create_tcp_stream(&socket_queue, server_addr).await?;
let udp_addr = handle_proxy_session(&mut server, proxy_handler).await?; let udp_addr = handle_proxy_session(&mut server, proxy_handler).await?;
udp_addr.ok_or("udp associate failed")? (Some(server), udp_addr.ok_or("udp associate failed")?)
} }
}; };