record every resolved target SocketAddr

This commit is contained in:
zonyitoo
2021-04-28 14:48:39 +08:00
parent 7b3415f3b4
commit 04bddab6c0

View File

@@ -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!(