}
if (r == 1) {
INTERCEPT(10);
-
- ceph_assert(auth_meta);
- session_stream_handlers = \
- ceph::crypto::onwire::rxtx_t::create_handler_pair(cct, *auth_meta, true);
-
state = SESSION_ACCEPTING;
auto auth_done = AuthDoneFrame::Encode(connection->peer_global_id,
auth_meta->con_mode,
reply);
- return WRITE(auth_done, "auth done", read_frame);
+ return WRITE(auth_done, "auth done", finish_auth);
} else if (r == 0) {
state = AUTH_ACCEPTING_MORE;
}
}
+CtPtr ProtocolV2::finish_auth()
+{
+ ceph_assert(auth_meta);
+ session_stream_handlers = \
+ ceph::crypto::onwire::rxtx_t::create_handler_pair(cct, *auth_meta, true);
+ return CONTINUE(read_frame);
+}
+
CtPtr ProtocolV2::handle_auth_request_more(ceph::bufferlist &payload)
{
ldout(cct, 20) << __func__
Ct<ProtocolV2> *handle_hello(ceph::bufferlist &payload);
CONTINUATION_DECL(ProtocolV2, read_frame);
+ CONTINUATION_DECL(ProtocolV2, finish_auth);
READ_HANDLER_CONTINUATION_DECL(ProtocolV2, handle_read_frame_preamble_main);
READ_HANDLER_CONTINUATION_DECL(ProtocolV2, handle_read_frame_segment);
READ_HANDLER_CONTINUATION_DECL(ProtocolV2, handle_read_frame_epilogue_main);
CONTINUATION_DECL(ProtocolV2, throttle_dispatch_queue);
Ct<ProtocolV2> *read_frame();
+ Ct<ProtocolV2> *finish_auth();
Ct<ProtocolV2> *handle_read_frame_preamble_main(char *buffer, int r);
Ct<ProtocolV2> *read_frame_segment();
Ct<ProtocolV2> *handle_read_frame_segment(char *buffer, int r);