]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/Connection: add get_peer_socket_addr()
authorSage Weil <sage@redhat.com>
Thu, 5 Jul 2018 16:56:15 +0000 (11:56 -0500)
committerSage Weil <sage@redhat.com>
Sun, 12 Aug 2018 22:01:05 +0000 (17:01 -0500)
Return the addr that is actually being used for this socket (among the
potentially many in the addrvec).

Signed-off-by: Sage Weil <sage@redhat.com>
src/msg/Connection.h
src/msg/async/AsyncConnection.h
src/msg/simple/PipeConnection.h

index 606aa046f36f50ac7bf4b81206396c7120655408..d4ed134b2714ff9d63e97c19bebd7f66de3da7f9 100644 (file)
@@ -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();
   }
index 53efda01f86cfb116d1311006c279960e124fee0..4ec8e0eb7c10e228d788087a7c72865c182dec46 100644 (file)
@@ -212,6 +212,9 @@ class AsyncConnection : public Connection {
     std::lock_guard<std::mutex> l(lock);
     policy.lossy = true;
   }
+  entity_addr_t get_peer_socket_addr() const override {
+    return target_addr;
+  }
   
  private:
   enum {
index 0413919385468bb8e8ff61ab8ac3c4d84642e5ac..4e5c7c37c7157bad5444383fc1accad65ec7962d 100644 (file)
@@ -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<PipeConnection> PipeConnectionRef;