async fn reader(
listener: Arc<UdpSocket>,
upstream: Arc<UdpSocket>,
client: SocketAddr,
alive: Arc<AtomicBool>,
last_seen: Arc<AtomicU64>,
idle: Duration,
epoch: Instant,
)Expand description
Pumps upstream replies back to the client, exiting when the session has been
idle in both directions for idle (so an active client with a briefly
quiet upstream is not torn down).