{
CephXRequestHeader header;
AuthTicketHandler& ticket_handler = client->tickets.get_handler(CEPHX_PRINCIPAL_AUTH);
+
if (!ticket_handler.has_key()) {
dout(0) << "auth ticket: doesn't have key" << dendl;
/* we first need to get the principle/auth session key */
dout(0) << "could not verify service_ticket reply" << dendl;
return -EPERM;
}
-
- if (want)
+ dout(0) << "want=" << want << " have=" << have << dendl;
+ if (want != have)
ret = -EAGAIN;
}
break;
public:
AuthClientAuthenticateHandler(AuthClientHandler *client, uint32_t _want, uint32_t _have) :
AuthClientProtocolHandler(client), want(_want), have(_have) { reset(); }
+ void set_want_keys(__u32 keys) {
+ want = keys;
+ }
};
class AuthClientAuthorizeHandler : public AuthClientProtocolHandler {
rank.start(1);
messenger->add_dispatcher_head(this);
- monclient.auth.set_want_keys(CEPHX_PRINCIPAL_MON | CEPHX_PRINCIPAL_OSD);
+ monclient.set_want_keys(CEPHX_PRINCIPAL_MON | CEPHX_PRINCIPAL_OSD);
monclient.init();
if (monclient.get_monmap() < 0)
// monclient
bool want_monmap;
+ uint32_t want_keys;
+
// mount
private:
client_t clientid;
void set_messenger(Messenger *m) { messenger = m; }
void send_message(Message *m);
+
+ void set_want_keys(uint32_t want) {
+ auth_handler.set_want_keys(want);
+ }
};
#endif