From: Kefu Chai Date: Thu, 25 Apr 2019 14:10:16 +0000 (+0800) Subject: crimson/net: learn my address from peer X-Git-Tag: v15.1.0~2803^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2283f9580ac8c7112011cb57923921e086f5cfd8;p=ceph.git crimson/net: learn my address from peer OSD always relies on its server to tell its address, without this feature, it will advertise a blank ip address to monitor in MOSDBoot. Signed-off-by: Kefu Chai --- diff --git a/src/crimson/net/ProtocolV2.cc b/src/crimson/net/ProtocolV2.cc index 6fdc7163e049..f57952e4fad6 100644 --- a/src/crimson/net/ProtocolV2.cc +++ b/src/crimson/net/ProtocolV2.cc @@ -789,6 +789,13 @@ void ProtocolV2::execute_connecting() dispatch_reset(); abort_in_close(); } + if (messenger.get_myaddrs().empty() || + messenger.get_myaddrs().front().is_blank_ip()) { + logger().debug("peer {} says I am {}", conn.target_addr, _peer_addr); + return messenger.learned_addr(_peer_addr); + } else { + return seastar::now(); + } }).then([this] { return client_auth(); }).then([this] {