]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/msg_types: add entity_addrvec_t::as_legacy_addr()
authorSage Weil <sage@redhat.com>
Mon, 4 Feb 2019 11:41:42 +0000 (05:41 -0600)
committerSage Weil <sage@redhat.com>
Thu, 7 Feb 2019 12:13:09 +0000 (06:13 -0600)
Return either the actual legacy addr, or an any addr as a legacy addr.  If
neither is available, lie and return a v2 (or other) addr as a legacy adr.

Signed-off-by: Sage Weil <sage@redhat.com>
src/msg/Messenger.h
src/msg/msg_types.h

index 21dfe0bb969aab255140ac6581b9b04688e594b3..500430d21afab2fc4c5ca52cab35e121d58bea98 100644 (file)
@@ -170,21 +170,7 @@ public:
    * ANY addr (if i am a pure client).
    */
   entity_addr_t get_myaddr_legacy() {
-    auto& av = *my_addrs;
-    for (auto& a : av.v) {
-      if (a.is_legacy()) {
-       return a;
-      }
-      if (a.is_any()) {
-       auto b = a;
-       b.set_type(entity_addr_t::TYPE_LEGACY);
-       return b;
-      }
-    }
-    // hrm... lie!
-    auto a = av.front();
-    a.set_type(entity_addr_t::TYPE_LEGACY);
-    return a;
+    return my_addrs->as_legacy_addr();
   }
 
 
index fd20c2dadfcbf8c88e543b1ad55be7ca44a93bc8..5de7a0c6a75899aaaa8f562a80288dd61931861d 100644 (file)
@@ -588,6 +588,22 @@ struct entity_addrvec_t {
     }
     return entity_addr_t();
   }
+  entity_addr_t as_legacy_addr() const {
+    for (auto& a : v) {
+      if (a.is_legacy()) {
+       return a;
+      }
+      if (a.is_any()) {
+       auto b = a;
+       b.set_type(entity_addr_t::TYPE_LEGACY);
+       return b;
+      }
+    }
+    // hrm... lie!
+    auto a = front();
+    a.set_type(entity_addr_t::TYPE_LEGACY);
+    return a;
+  }
   entity_addr_t front() const {
     if (!v.empty()) {
       return v.front();