]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/async: msgr2: send client v2 address when only v1 address is defined
authorRicardo Dias <rdias@suse.com>
Mon, 7 Jan 2019 13:19:33 +0000 (13:19 +0000)
committerRicardo Dias <rdias@suse.com>
Wed, 23 Jan 2019 13:59:26 +0000 (13:59 +0000)
Signed-off-by: Ricardo Dias <rdias@suse.com>
src/msg/async/ProtocolV2.cc

index 5a1e80068ed9a11c35611c733c56320d4f7d8118..3066aceb63d7bec6be2e356ae5364dc301668199 100644 (file)
@@ -2178,8 +2178,17 @@ CtPtr ProtocolV2::send_client_ident() {
     flags |= CEPH_MSG_CONNECT_LOSSY;
   }
 
-  ClientIdentFrame client_ident(this, messenger->get_myaddrs(),
-                                messenger->get_myname().num(), global_seq,
+  entity_addrvec_t maddrs = messenger->get_myaddrs();
+  if (!messenger->get_myaddrs().front().is_msgr2()) {
+    entity_addr_t a = messenger->get_myaddrs().front();
+    a.set_type(entity_addr_t::TYPE_MSGR2);
+    ldout(cct, 20) << "encoding addr " << a << " instead of non-v2 myaddrs "
+                   << messenger->get_myaddrs() << dendl;
+    maddrs.v.push_back(a);
+  }
+
+  ClientIdentFrame client_ident(this, maddrs, messenger->get_myname().num(),
+                                global_seq,
                                 connection->policy.features_supported,
                                 connection->policy.features_required, flags);