From: Sage Weil Date: Sat, 12 Jan 2019 12:47:59 +0000 (-0600) Subject: msg/async: fix IP inference X-Git-Tag: v14.1.0~371^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=817baec24c2cf657b2daaaa55cf299cfcac116e9;p=ceph.git 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 --- diff --git a/src/msg/async/ProtocolV1.cc b/src/msg/async/ProtocolV1.cc index e6e6bfc10ad0..5dda0b2df8ae 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 d9fe7f82ee43..bfa9f0175e2d 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; }