]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
auth: no more state in cephx client handler
authorSage Weil <sage@newdream.net>
Tue, 27 Oct 2009 20:44:48 +0000 (13:44 -0700)
committerSage Weil <sage@newdream.net>
Tue, 27 Oct 2009 20:44:48 +0000 (13:44 -0700)
src/auth/cephx/CephxClientHandler.cc
src/auth/cephx/CephxClientHandler.h
src/auth/cephx/CephxServiceHandler.cc
src/vstart.sh

index f3919ad4a4ce5811be56acf23be9e263bd9350ea..1c98fc0dd3ded70ed01ba6888b14bcf9e3d045e1 100644 (file)
 
 int CephxClientHandler::build_request(bufferlist& bl)
 {
-  dout(10) << "build_request state " << state << dendl;
-
-  switch (state == STATE_START) {
-    return 0;
-  }
+  dout(10) << "build_request" << dendl;
 
   validate_tickets();
 
@@ -91,17 +87,17 @@ int CephxClientHandler::build_request(bufferlist& bl)
 
 int CephxClientHandler::handle_response(int ret, bufferlist::iterator& indata)
 {
-  dout(10) << "handle_response ret = " << ret << " state " << state << dendl;
+  dout(10) << "handle_response ret = " << ret << dendl;
   
   if (ret < 0)
     return ret; // hrm!
 
-  if (state == STATE_START) {
+  if (starting) {
     CephXServerChallenge ch;
     ::decode(ch, indata);
     server_challenge = ch.server_challenge;
     dout(10) << " got initial server challenge " << server_challenge << dendl;
-    state = STATE_GETTING_MON_KEY;
+    starting = false;
     return -EAGAIN;
   }
 
@@ -121,13 +117,10 @@ int CephxClientHandler::handle_response(int ret, bufferlist::iterator& indata)
       }
       dout(10) << " want=" << want << " need=" << need << " have=" << have << dendl;
       validate_tickets();
-      if (need) {
-       state = STATE_GETTING_SESSION_KEYS;
+      if (need)
        ret = -EAGAIN;
-      } else {
-       state = STATE_DONE;
+      else
        ret = 0;
-      }
     }
     break;
 
@@ -140,10 +133,8 @@ int CephxClientHandler::handle_response(int ret, bufferlist::iterator& indata)
         dout(0) << "could not verify service_ticket reply" << dendl;
         return -EPERM;
       }
-      if (want == have) {
-       state = STATE_DONE;
+      if (want == have)
        ret = 0;
-      }
     }
     break;
 
index f1da845353e94181b2c5d5694f11fda2f708b2ed..6d07cc64809f5a66a80f00147694b52d37ae2558 100644 (file)
 #include "CephxProtocol.h"
 
 class CephxClientHandler : public AuthClientHandler {
-  enum {
-    STATE_START,
-    STATE_GETTING_MON_KEY,
-    STATE_GETTING_SESSION_KEYS,
-    STATE_DONE
-  } state;
+  bool starting;
   
   /* envelope protocol parameters */
   uint64_t server_challenge;
@@ -40,7 +35,7 @@ public:
   void reset() {
     delete authorizer;
     authorizer = 0;
-    state = STATE_START;
+    starting = true;
   }
   int build_request(bufferlist& bl);
   int handle_response(int ret, bufferlist::iterator& iter);
index 67bea6f753a399676ab78d253d77c200a6d49f6d..9671a9d31b07280999f983770178bc42cf04347b 100644 (file)
@@ -34,7 +34,7 @@ int CephxServiceHandler::start_session(bufferlist& result_bl)
   get_random_bytes((char *)&server_challenge, sizeof(server_challenge));
   if (!server_challenge)
     server_challenge = 1;  // always non-zero.
-  dout(10) << "start_session server_challenge " << server_challenge << dendl;
+  dout(10) << "start_session server_challenge " << hex << server_challenge << dec << dendl;
 
   CephXServerChallenge ch;
   ch.server_challenge = server_challenge;
index 11cd3c2fe1557be9ba7bf36a6a233263fa52db4a..97d47bd57d1d7949d252bfde6640b0b61669833b 100755 (executable)
@@ -131,6 +131,7 @@ else
         lockdep = 1
        debug mon = 20
         debug paxos = 20
+        debug auth = 20
         debug ms = 1'
     COSDDEBUG='
         lockdep = 1