Skip to content

Commit a6ba155

Browse files
authored
transport: Fix server address metadtata (#678)
The server sets the wrong local address, mistakenly using the peer address instead.
1 parent d18730c commit a6ba155

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

linkerd/proxy/transport/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#![deny(warnings, rust_2018_idioms)]
2+
#![recursion_limit = "256"]
23

34
use std::time::Duration;
45
use tokio::net::TcpStream;

linkerd/proxy/transport/src/listen.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,18 @@ impl<A: OrigDstAddr> Bind<A> {
7777
let listen = tokio::net::TcpListener::from_std(listen).expect("listener must be valid");
7878
};
7979

80-
while let (tcp, local_addr) = listen.accept().await? {
80+
while let (tcp, peer_addr) = listen.accept().await? {
8181
super::set_nodelay_or_warn(&tcp);
8282
super::set_keepalive_or_warn(&tcp, keepalive);
8383

84-
let peer_addr = tcp.peer_addr()?;
84+
let local_addr = tcp.local_addr()?;
8585
let orig_dst = get_orig.orig_dst_addr(&tcp);
86-
trace!(peer.addr = %peer_addr, orig.addr = ?orig_dst, "Accepted");
86+
trace!(
87+
local.addr = %local_addr,
88+
peer.addr = %peer_addr,
89+
orig.addr = ?orig_dst,
90+
"Accepted",
91+
);
8792
yield (Addrs::new(local_addr, peer_addr, orig_dst), tcp);
8893
}
8994
};

0 commit comments

Comments
 (0)