]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/Connection: peer_addr -> peer_addrs
authorSage Weil <sage@redhat.com>
Fri, 1 Jun 2018 19:51:05 +0000 (14:51 -0500)
committerSage Weil <sage@redhat.com>
Tue, 3 Jul 2018 18:01:23 +0000 (13:01 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mds/MDSDaemon.cc
src/msg/Connection.h
src/msg/async/AsyncConnection.cc
src/msg/async/AsyncMessenger.cc
src/msg/async/AsyncMessenger.h
src/msg/simple/SimpleMessenger.cc

index 30d3062f2f2f4cc39a58fcb9a0e587f025180598..f34e1a418b84b84d726fe7b7640059de49310de1 100644 (file)
@@ -602,7 +602,7 @@ void MDSDaemon::handle_command(MCommand *m)
   if (!session->auth_caps.allow_all()) {
     dout(1) << __func__
       << ": received command from client without `tell` capability: "
-      << m->get_connection()->peer_addr << dendl;
+      << m->get_connection()->peer_addrs << dendl;
 
     ss << "permission denied";
     r = -EPERM;
index 13d99d7359530ae43b8cd896dc6b68481f511c84..606aa046f36f50ac7bf4b81206396c7120655408 100644 (file)
@@ -43,7 +43,7 @@ struct Connection : public RefCountedObject {
   Messenger *msgr;
   RefCountedPtr priv;
   int peer_type;
-  entity_addr_t peer_addr;
+  entity_addrvec_t peer_addrs;
   utime_t last_keepalive, last_keepalive_ack;
 private:
   uint64_t features;
@@ -157,11 +157,16 @@ 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; }
 
-  const entity_addr_t& get_peer_addr() const { return peer_addr; }
-  entity_addrvec_t get_peer_addrs() const {
-    return entity_addrvec_t(peer_addr);
+  entity_addr_t get_peer_addr() const {
+    return peer_addrs.front();
   }
-  void set_peer_addr(const entity_addr_t& a) { peer_addr = a; }
+  const entity_addrvec_t& get_peer_addrs() const {
+    return peer_addrs;
+  }
+  void set_peer_addr(const entity_addr_t& a) {
+    peer_addrs = entity_addrvec_t(a);
+  }
+  void set_peer_addrs(const entity_addrvec_t& av) { peer_addrs = av; }
 
   uint64_t get_features() const { return features; }
   bool has_feature(uint64_t f) const { return features & f; }
index 27b7094f0b6a22b97d2ad677f5ba24f5a4e90de0..e1d9e287db96bc2de560c18fb09c3de995ab7b2b 100644 (file)
@@ -33,7 +33,8 @@
 #undef dout_prefix
 #define dout_prefix _conn_prefix(_dout)
 ostream& AsyncConnection::_conn_prefix(std::ostream *_dout) {
-  return *_dout << "-- " << async_msgr->get_myaddr() << " >> " << peer_addr << " conn(" << this
+  return *_dout << "-- " << async_msgr->get_myaddr() << " >> "
+               << peer_addrs << " conn(" << this
                 << " :" << port
                 << " s=" << get_state_name(state)
                 << " pgs=" << peer_global_seq
@@ -954,15 +955,16 @@ ssize_t AsyncConnection::_process_connection()
         }
         ldout(async_msgr->cct, 20) << __func__ <<  " connect read peer addr "
                              << paddr << " on socket " << cs.fd() << dendl;
-        if (peer_addr != paddr) {
-          if (paddr.is_blank_ip() && peer_addr.get_port() == paddr.get_port() &&
-              peer_addr.get_nonce() == paddr.get_nonce()) {
+        if (peer_addrs.legacy_addr() != paddr) {
+          if (paddr.is_blank_ip() &&
+             peer_addrs.legacy_addr().get_port() == paddr.get_port() &&
+              peer_addrs.legacy_addr().get_nonce() == paddr.get_nonce()) {
             ldout(async_msgr->cct, 0) << __func__ <<  " connect claims to be " << paddr
-                                << " not " << peer_addr
+                                << " not " << peer_addrs
                                 << " - presumably this is the same node!" << dendl;
           } else {
             ldout(async_msgr->cct, 10) << __func__ << " connect claims to be "
-                                      << paddr << " not " << peer_addr << dendl;
+                                      << paddr << " not " << peer_addrs << dendl;
            goto fail;
           }
         }
@@ -1508,7 +1510,7 @@ ssize_t AsyncConnection::handle_connect_msg(ceph_msg_connect &connect, bufferlis
   ldout(async_msgr->cct, 10) << __func__ << " accept setting up session_security." << dendl;
 
   // existing?
-  AsyncConnectionRef existing = async_msgr->lookup_conn(peer_addr);
+  AsyncConnectionRef existing = async_msgr->lookup_conn(peer_addrs.legacy_addr());
 
   inject_delay();
 
@@ -1608,7 +1610,8 @@ ssize_t AsyncConnection::handle_connect_msg(ceph_msg_connect &connect, bufferlis
       }
 
       // connection race?
-      if (peer_addr < async_msgr->get_myaddr() || existing->policy.server) {
+      if (peer_addrs.legacy_addr() < async_msgr->get_myaddrs().legacy_addr() ||
+         existing->policy.server) {
         // incoming wins
         ldout(async_msgr->cct, 10) << __func__ << " accept connection race, existing " << existing
                              << ".cseq " << existing->connect_seq << " == " << connect.connect_seq
@@ -1619,7 +1622,7 @@ ssize_t AsyncConnection::handle_connect_msg(ceph_msg_connect &connect, bufferlis
         ldout(async_msgr->cct,10) << __func__ << " accept connection race, existing "
                             << existing << ".cseq " << existing->connect_seq
                             << " == " << connect.connect_seq << ", sending WAIT" << dendl;
-        assert(peer_addr > async_msgr->get_myaddr());
+        assert(peer_addrs.legacy_addr() > async_msgr->get_myaddrs().legacy_addr());
         existing->lock.unlock();
         return _reply_accept(CEPH_MSGR_TAG_WAIT, connect, reply, authorizer_reply);
       }
@@ -1818,7 +1821,7 @@ ssize_t AsyncConnection::handle_connect_msg(ceph_msg_connect &connect, bufferlis
   lock.lock();
   replacing = false;
   if (r < 0) {
-    ldout(async_msgr->cct, 1) << __func__ << " existing race replacing process for addr=" << peer_addr
+    ldout(async_msgr->cct, 1) << __func__ << " existing race replacing process for addr=" << peer_addrs
                               << " just fail later one(this)" << dendl;
     goto fail_registered;
   }
index dfa0bee4bed166b15ae76776df1c6881f7b93815..2c2d83ef35810d49b39a7e843f58dec52421e9fb 100644 (file)
@@ -744,7 +744,7 @@ int AsyncMessenger::reap_dead()
     auto it = deleted_conns.begin();
     AsyncConnectionRef p = *it;
     ldout(cct, 5) << __func__ << " delete " << p << dendl;
-    auto conns_it = conns.find(p->peer_addr);
+    auto conns_it = conns.find(p->peer_addrs.legacy_addr());
     if (conns_it != conns.end() && conns_it->second == p)
       conns.erase(conns_it);
     accepting_conns.erase(p);
index c517f3fdb4342af02a6d57beb4d208749ce14e69..5ddc2bde9e190c2f87ba3f289629d1916955ef20 100644 (file)
@@ -319,7 +319,7 @@ private:
 
   void _init_local_connection() {
     assert(lock.is_locked());
-    local_connection->peer_addr = my_addr;
+    local_connection->peer_addrs = entity_addrvec_t(my_addr);
     local_connection->peer_type = my_name.type();
     local_connection->set_features(CEPH_FEATURES_ALL);
     ms_deliver_handle_fast_connect(local_connection.get());
@@ -346,7 +346,7 @@ public:
 
   int accept_conn(AsyncConnectionRef conn) {
     Mutex::Locker l(lock);
-    auto it = conns.find(conn->peer_addr);
+    auto it = conns.find(conn->peer_addrs.legacy_addr());
     if (it != conns.end()) {
       AsyncConnectionRef existing = it->second;
 
@@ -360,7 +360,7 @@ public:
         return -1;
       }
     }
-    conns[conn->peer_addr] = conn;
+    conns[conn->peer_addrs.legacy_addr()] = conn;
     conn->get_perf_counter()->inc(l_msgr_active_connections);
     accepting_conns.erase(conn);
     return 0;
index 36a0ee371a1c03b2cd09527b9147f784c19a49f6..8667302443d781c3b874a18d54c9c12299742317 100644 (file)
@@ -748,7 +748,7 @@ void SimpleMessenger::learned_addr(const entity_addr_t &peer_addr_for_me)
 
 void SimpleMessenger::init_local_connection()
 {
-  local_connection->peer_addr = my_addr;
+  local_connection->peer_addrs = entity_addrvec_t(my_addr);
   local_connection->peer_type = my_name.type();
   local_connection->set_features(CEPH_FEATURES_ALL);
   ms_deliver_handle_fast_connect(local_connection.get());