return nullptr;
}
-CtPtr ProtocolV2::_banner_exchange(CtPtr callback) {
+CtPtr ProtocolV2::_banner_exchange(CtRef callback) {
ldout(cct, 20) << __func__ << dendl;
- bannerExchangeCallback = callback;
+ bannerExchangeCallback = &callback;
bufferlist banner_payload;
encode((uint64_t)CEPH_MSGR2_SUPPORTED_FEATURES, banner_payload, 0);
global_seq = messenger->get_global_seq();
- return _banner_exchange(&CONTINUATION(post_client_banner_exchange));
+ return _banner_exchange(CONTINUATION(post_client_banner_exchange));
}
CtPtr ProtocolV2::post_client_banner_exchange() {
state = BANNER_ACCEPTING;
- return _banner_exchange(&CONTINUATION(post_server_banner_exchange));
+ return _banner_exchange(CONTINUATION(post_server_banner_exchange));
}
CtPtr ProtocolV2::post_server_banner_exchange() {
READ_HANDLER_CONTINUATION_DECL(ProtocolV2, _handle_peer_banner);
READ_HANDLER_CONTINUATION_DECL(ProtocolV2, _handle_peer_banner_payload);
- Ct<ProtocolV2> *_banner_exchange(Ct<ProtocolV2> *callback);
+ Ct<ProtocolV2> *_banner_exchange(Ct<ProtocolV2> &callback);
Ct<ProtocolV2> *_wait_for_peer_banner();
Ct<ProtocolV2> *_handle_peer_banner(char *buffer, int r);
Ct<ProtocolV2> *_handle_peer_banner_payload(char *buffer, int r);