This is the equivalent of
b8d1c80370443975ca291caeac037ab179dd3791, but
in the new auth framework. OSD heartbeats prior to nautilus do not
add authorizers to the heartbeat channel.
Signed-off-by: Sage Weil <sage@redhat.com>
const ceph::buffer::list& payload,
ceph::buffer::list *reply)
{
+ // for some channels prior to nautilus (osd heartbeat), we tolerate the lack of
+ // an authorizer.
+ if (payload.length() == 0 &&
+ !handle_authentication_dispatcher->require_authorizer) {
+ handle_authentication_dispatcher->ms_handle_authentication(con);
+ return 1;
+ }
+
auth_meta->auth_mode = payload[0];
if (auth_meta->auth_mode < AUTH_MODE_AUTHORIZER ||
auth_meta->auth_mode > AUTH_MODE_AUTHORIZER_MAX) {