From: Sage Weil Date: Mon, 4 Feb 2019 11:41:42 +0000 (-0600) Subject: msg/msg_types: add entity_addrvec_t::as_legacy_addr() X-Git-Tag: v14.1.0~184^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f1f3b12df764d4af6fa99221d3faff8864c92f65;p=ceph.git msg/msg_types: add entity_addrvec_t::as_legacy_addr() 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 --- diff --git a/src/msg/Messenger.h b/src/msg/Messenger.h index 21dfe0bb969..500430d21af 100644 --- a/src/msg/Messenger.h +++ b/src/msg/Messenger.h @@ -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(); } diff --git a/src/msg/msg_types.h b/src/msg/msg_types.h index fd20c2dadfc..5de7a0c6a75 100644 --- a/src/msg/msg_types.h +++ b/src/msg/msg_types.h @@ -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();