From 817baec24c2cf657b2daaaa55cf299cfcac116e9 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sat, 12 Jan 2019 06:47:59 -0600 Subject: [PATCH] msg/async: fix IP inference socket_addr is *our* socket address; target_addr is the remote peer's socket address. We are inferring the remote's IP address here. Fixes: http://tracker.ceph.com/issues/37882 Signed-off-by: Sage Weil --- src/msg/async/ProtocolV1.cc | 2 +- src/msg/async/ProtocolV2.cc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/msg/async/ProtocolV1.cc b/src/msg/async/ProtocolV1.cc index e6e6bfc10ad03..5dda0b2df8ae6 100644 --- a/src/msg/async/ProtocolV1.cc +++ b/src/msg/async/ProtocolV1.cc @@ -1794,7 +1794,7 @@ CtPtr ProtocolV1::handle_client_banner(char *buffer, int r) { if (peer_addr.is_blank_ip()) { // peer apparently doesn't know what ip they have; figure it out for them. int port = peer_addr.get_port(); - peer_addr.u = connection->socket_addr.u; + peer_addr.set_sockaddr(connection->target_addr.get_sockaddr()); peer_addr.set_port(port); ldout(cct, 0) << __func__ << " accept peer addr is really " << peer_addr diff --git a/src/msg/async/ProtocolV2.cc b/src/msg/async/ProtocolV2.cc index d9fe7f82ee433..bfa9f0175e2df 100644 --- a/src/msg/async/ProtocolV2.cc +++ b/src/msg/async/ProtocolV2.cc @@ -1837,10 +1837,10 @@ CtPtr ProtocolV2::handle_client_addrvec(char *buffer, int r) { if (peer_addr.is_blank_ip()) { // peer apparently doesn't know what ip they have; figure it out for them. int port = peer_addr.get_port(); - peer_addr.u = connection->socket_addr.u; + peer_addr.set_sockaddr(connection->target_addr.get_sockaddr()); peer_addr.set_port(port); ldout(cct, 0) << __func__ << " accept peer addr is really " << peer_addr - << " (socket is " << connection->socket_addr << ")" + << " (target is " << connection->target_addr << ")" << dendl; peer_addr_p = &peer_addr; } -- 2.39.5