]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: kill Session::global_id and use Connection member instead
authorSage Weil <sage@redhat.com>
Tue, 11 Sep 2018 21:30:27 +0000 (16:30 -0500)
committerSage Weil <sage@redhat.com>
Sun, 14 Oct 2018 16:59:20 +0000 (11:59 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/AuthMonitor.cc
src/mon/Monitor.cc
src/mon/Session.h

index 80b5857948effb0ac2f25d8bae716182b1e01a02..8f497ed443a5ec0e2918be7add3a67d9e36a0ffd 100644 (file)
@@ -526,7 +526,7 @@ bool AuthMonitor::prep_auth(MonOpRequestRef op, bool paxos_writable)
       decode(struct_v, indata);
       decode(supported, indata);
       decode(entity_name, indata);
-      decode(s->global_id, indata);
+      decode(s->con->peer_global_id, indata);
     } catch (const buffer::error &e) {
       dout(10) << "failed to decode initial auth message" << dendl;
       ret = -EINVAL;
@@ -608,9 +608,9 @@ bool AuthMonitor::prep_auth(MonOpRequestRef op, bool paxos_writable)
   /* assign a new global_id? we assume this should only happen on the first
      request. If a client tries to send it later, it'll screw up its auth
      session */
-  if (!s->global_id) {
-    s->global_id = assign_global_id(op, paxos_writable);
-    if (!s->global_id) {
+  if (!s->con->peer_global_id) {
+    s->con->peer_global_id = assign_global_id(op, paxos_writable);
+    if (!s->con->peer_global_id) {
 
       delete s->auth_handler;
       s->auth_handler = NULL;
@@ -648,7 +648,11 @@ bool AuthMonitor::prep_auth(MonOpRequestRef op, bool paxos_writable)
       }
     } else {
       // request
-      ret = s->auth_handler->handle_request(indata, response_bl, s->global_id, caps_info);
+      ret = s->auth_handler->handle_request(
+       indata,
+       response_bl,
+       s->con->peer_global_id,
+       caps_info);
     }
     if (ret == -EIO) {
       wait_for_active(op, new C_RetryMessage(this,op));
@@ -673,7 +677,7 @@ bool AuthMonitor::prep_auth(MonOpRequestRef op, bool paxos_writable)
   }
 
 reply:
-  reply = new MAuthReply(proto, &response_bl, ret, s->global_id);
+  reply = new MAuthReply(proto, &response_bl, ret, s->con->peer_global_id);
   mon->send_reply(op, reply);
   if (finished) {
     // always send the latest monmap.
index c24b8ca436e18fe02e4ab548ecd22c435b25a90b..e5c9d895febe1086eb8f65282114dad51d193a4f 100644 (file)
@@ -4069,7 +4069,7 @@ void Monitor::_ms_dispatch(Message *m)
   dout(20) << " caps " << s->caps.get_str() << dendl;
 
   if ((is_synchronizing() ||
-       (s->global_id == 0 && !exited_quorum.is_zero())) &&
+       (!s->authenticated && !exited_quorum.is_zero())) &&
       !src_is_mon &&
       m->get_type() != CEPH_MSG_PING) {
     waitlist_or_zap_client(op);
index d455263ced8ab7c0700901d7489f10b28bf57bcb..8d7bbcf2ff131e4fc046f47a299b6666999afcfe 100644 (file)
@@ -51,7 +51,6 @@ struct MonSession : public RefCountedObject {
   xlist<MonSession*>::item item;
   set<uint64_t> routed_request_tids;
   MonCap caps;
-  uint64_t global_id = 0;
 
   bool authenticated = false;  ///< true if auth handshake is complete