From 4985d068aa774c9b7651c333f13c23f0412f5684 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 5 Jul 2018 11:56:15 -0500 Subject: [PATCH] msg/Connection: add get_peer_socket_addr() Return the addr that is actually being used for this socket (among the potentially many in the addrvec). Signed-off-by: Sage Weil --- src/msg/Connection.h | 3 +++ src/msg/async/AsyncConnection.h | 3 +++ src/msg/simple/PipeConnection.h | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/src/msg/Connection.h b/src/msg/Connection.h index 606aa046f36f5..d4ed134b2714f 100644 --- a/src/msg/Connection.h +++ b/src/msg/Connection.h @@ -157,6 +157,9 @@ public: bool peer_is_osd() const { return peer_type == CEPH_ENTITY_TYPE_OSD; } bool peer_is_client() const { return peer_type == CEPH_ENTITY_TYPE_CLIENT; } + /// which of the peer's addrs is actually in use for this connection + virtual entity_addr_t get_peer_socket_addr() const = 0; + entity_addr_t get_peer_addr() const { return peer_addrs.front(); } diff --git a/src/msg/async/AsyncConnection.h b/src/msg/async/AsyncConnection.h index 53efda01f86cf..4ec8e0eb7c10e 100644 --- a/src/msg/async/AsyncConnection.h +++ b/src/msg/async/AsyncConnection.h @@ -212,6 +212,9 @@ class AsyncConnection : public Connection { std::lock_guard l(lock); policy.lossy = true; } + entity_addr_t get_peer_socket_addr() const override { + return target_addr; + } private: enum { diff --git a/src/msg/simple/PipeConnection.h b/src/msg/simple/PipeConnection.h index 0413919385468..4e5c7c37c7157 100644 --- a/src/msg/simple/PipeConnection.h +++ b/src/msg/simple/PipeConnection.h @@ -48,6 +48,10 @@ public: void mark_down() override; void mark_disposable() override; + entity_addr_t get_peer_socket_addr() const override { + return peer_addrs.front(); + } + }; /* PipeConnection */ typedef boost::intrusive_ptr PipeConnectionRef; -- 2.39.5