From 04bddab6c0bc76cb93cf69c9dd3b68524ff4b43a Mon Sep 17 00:00:00 2001 From: zonyitoo Date: Wed, 28 Apr 2021 14:48:39 +0800 Subject: [PATCH] record every resolved target SocketAddr --- .../src/server/udprelay.rs | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/crates/shadowsocks-service/src/server/udprelay.rs b/crates/shadowsocks-service/src/server/udprelay.rs index ccb0e78e..3a062669 100644 --- a/crates/shadowsocks-service/src/server/udprelay.rs +++ b/crates/shadowsocks-service/src/server/udprelay.rs @@ -284,16 +284,15 @@ impl UdpAssociationContext { SocketAddr::V6(..) => self.copy_ipv6_l2r_dispatch(sa, data).await, }, Address::DomainNameAddress(ref dname, port) => { - let sa = lookup_then!(self.context.context_ref(), dname, port, |sa| { + lookup_then!(self.context.context_ref(), dname, port, |sa| { + // Record resolved address as reverse index + self.target_cache.lock().await.insert(sa, target_addr.clone()); + match sa { SocketAddr::V4(..) => self.clone().copy_ipv4_l2r_dispatch(sa, data).await, SocketAddr::V6(..) => self.clone().copy_ipv6_l2r_dispatch(sa, data).await, } - })? - .0; - - // Record resolved address as reverse index - self.target_cache.lock().await.insert(sa, target_addr.clone()); + })?; Ok(()) } @@ -438,14 +437,6 @@ impl UdpAssociationContext { None => Address::from(addr), }; - trace!( - "udp relay {} <- {} ({}) with {} bytes", - self.peer_addr, - target_addr, - addr, - data.len() - ); - // Send back to client if let Err(err) = self.inbound.send_to(self.peer_addr, &target_addr, data).await { warn!(