This handles the case where the server does not support any of the
authentication protocols that the client does. Previously this error
would never be propagated, and you'd only know something went wrong
when the optional timeout expired. Now, monclient->authenticate()
fails as soon as it gets the first response from the monitor.
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
delete auth;
auth = get_auth_client_handler(cct, m->protocol, rotating_secrets);
if (!auth) {
+ ldout(cct, 10) << "no handler for protocol " << m->protocol << dendl;
+ if (m->result == -ENOTSUP) {
+ ldout(cct, 10) << "none of our auth protocols are supported by the server"
+ << dendl;
+ authenticate_err = m->result;
+ auth_cond.SignalAll();
+ }
m->put();
return;
}