]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
auth: stop auth sequence after getting the tickets
authorYehuda Sadeh <yehuda@hq.newdream.net>
Tue, 8 Sep 2009 21:05:55 +0000 (14:05 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Tue, 8 Sep 2009 21:05:55 +0000 (14:05 -0700)
src/auth/AuthClientHandler.cc
src/auth/AuthClientHandler.h
src/auth/AuthServiceManager.cc
src/mon/MonClient.cc

index 5c5440e86ca716485ffb34706da766f88f05f030..10ad7da728950561a8db575a69ec33292ef346e5 100644 (file)
@@ -180,6 +180,7 @@ int AuthClientHandler::handle_cephx_protocol_response(bufferlist::iterator& inda
     dout(0) << "CEPHX_GET_PRINCIPAL_SESSION_KEY" << dendl;
     {
     }
+    ret = 0;
     break;
 
   case CEPHX_OPEN_SESSION:
@@ -194,3 +195,8 @@ int AuthClientHandler::handle_cephx_protocol_response(bufferlist::iterator& inda
 
   return ret;
 }
+
+bool AuthClientHandler::request_pending() {
+  dout(0) << "request_pending(): cephx_request_state=" << cephx_request_state << " cephx_response_state=" << cephx_response_state << dendl;
+  return (request_state != response_state) || (cephx_request_state != cephx_response_state);
+}
index bce9bd359f56a7ea0ee78dc7d881141d384ed4da..337e10b80293ed720de3f659df1c5f70ca2bbadd 100644 (file)
@@ -25,6 +25,7 @@ class AuthClientHandler {
   uint32_t have_keys;
   int request_state;
   int response_state;
+
   int status;
 
   int cephx_request_state;
@@ -56,7 +57,7 @@ public:
   int generate_request(bufferlist& bl);
   int handle_response(int ret, bufferlist& bl);
 
-  bool request_pending() { return (request_state != response_state) || (cephx_request_state != cephx_response_state); }
+  bool request_pending();
 };
 
 
index 3557e368bcb2b372b3b4b7cb3c048d557e827410..8954d3efbc53cbb55ef5bc30d0539618f4c15362 100644 (file)
@@ -217,6 +217,7 @@ int CephAuthService_X::handle_cephx_protocol(bufferlist::iterator& indata, buffe
       build_cephx_response_header(request_type, ret, result_bl);
 
       build_authenticate_reply(service_ticket, session_key, auth_session_key, osd_secret, result_bl);
+      ret = 0;
     }
     break;
   default:
index ad9598763b93b16df5c9aac4119d56ba51ece242..b9cad9f39f500afae3674ccaff84fb237f2bea2a 100644 (file)
@@ -184,6 +184,8 @@ bool MonClient::ms_dispatch(Message *m)
     return false;
   }
 
+  dout(0) << "about to call op_handler=" << (void *)op_handler << dendl;
+
   op_handler->handle_response(m);
 
   delete m;
@@ -231,6 +233,7 @@ int MonClient::authorize(uint32_t want_keys, double mount_timeout)
     ret =  h.get_result();
     dout(0) << "auth ret=" << ret << dendl;
   } while (ret == -EAGAIN);
+  cur_auth_handler = NULL;
 
   return ret;
 }
@@ -359,6 +362,8 @@ Message *MonClient::MonClientAuthHandler::build_request()
 
 void MonClient::MonClientAuthHandler::handle_response(Message *response)
 {
+  dout(0) << "inside op_handler=" << (void *)this << dendl;
+
   MAuthReply* m = (MAuthReply *)response;
   Mutex::Locker lock(op_lock);