template <class T, typename... Args>
struct SignedEncryptedFrame : public PayloadFrame<T, Args...> {
- SignedEncryptedFrame(ProtocolV2 *protocol, const Args &... args)
+ SignedEncryptedFrame(ProtocolV2 &protocol, const Args &... args)
: PayloadFrame<T, Args...>(args...) {
- ceph_assert(protocol);
- protocol->authencrypt_payload(this->payload);
+ protocol.authencrypt_payload(this->payload);
}
- SignedEncryptedFrame(ProtocolV2 *protocol, char *payload, uint32_t length)
+ SignedEncryptedFrame(ProtocolV2 &protocol, char *payload, uint32_t length)
: PayloadFrame<T, Args...>() {
- ceph_assert(protocol);
- protocol->authdecrypt_payload(payload, length);
+ protocol.authdecrypt_payload(payload, length);
this->decode_frame(payload, length);
}
};
const ProtocolV2::Tag tag = ProtocolV2::Tag::KEEPALIVE2;
using SignedEncryptedFrame::SignedEncryptedFrame;
- KeepAliveFrame(ProtocolV2 *protocol)
+ KeepAliveFrame(ProtocolV2 &protocol)
: KeepAliveFrame(protocol, ceph_clock_now()) {}
inline utime_t ×tamp() { return get_val<0>(); }
flat_bl.claim_append(bl);
}
- MessageHeaderFrame message(this, header2);
+ MessageHeaderFrame message(*this, header2);
authencrypt_payload(flat_bl);
ldout(cct, 5) << __func__ << " sending message m=" << m
void ProtocolV2::append_keepalive() {
ldout(cct, 10) << __func__ << dendl;
- KeepAliveFrame keepalive_frame(this);
+ KeepAliveFrame keepalive_frame(*this);
connection->outcoming_bl.claim_append(keepalive_frame.get_buffer());
}
void ProtocolV2::append_keepalive_ack(utime_t ×tamp) {
- KeepAliveFrameAck keepalive_ack_frame(this, timestamp);
+ KeepAliveFrameAck keepalive_ack_frame(*this, timestamp);
connection->outcoming_bl.claim_append(keepalive_ack_frame.get_buffer());
}
if (left) {
ceph_le64 s;
s = in_seq;
- AckFrame ack(this, in_seq);
+ AckFrame ack(*this, in_seq);
connection->outcoming_bl.claim_append(ack.get_buffer());
ldout(cct, 10) << __func__ << " try send msg ack, acked " << left
<< " messages" << dendl;
this->connection_features = msgr2_required;
}
- HelloFrame hello(this, messenger->get_mytype(), connection->target_addr);
+ HelloFrame hello(messenger->get_mytype(), connection->target_addr);
INTERCEPT(state == CONNECTING ? 7 : 8);
const uint32_t header_len = calculate_payload_size(
session_security.rx.get(), sizeof(ceph_msg_header2));
- MessageHeaderFrame header_frame(this, buffer, header_len);
+ MessageHeaderFrame header_frame(*this, buffer, header_len);
ceph_msg_header2 &header = header_frame.header();
ldout(cct, 20) << __func__ << " got envelope type=" << header.type << " src "
CtPtr ProtocolV2::handle_keepalive2(char *payload, uint32_t length) {
ldout(cct, 20) << __func__ << " payload_len=" << length << dendl;
- KeepAliveFrame keepalive_frame(this, payload, length);
+ KeepAliveFrame keepalive_frame(*this, payload, length);
ldout(cct, 30) << __func__ << " got KEEPALIVE2 tag ..." << dendl;
CtPtr ProtocolV2::handle_keepalive2_ack(char *payload, uint32_t length) {
ldout(cct, 20) << __func__ << " payload_len=" << length << dendl;
- KeepAliveFrameAck keepalive_ack_frame(this, payload, length);
+ KeepAliveFrameAck keepalive_ack_frame(*this, payload, length);
connection->set_last_keepalive_ack(keepalive_ack_frame.timestamp());
ldout(cct, 20) << __func__ << " got KEEPALIVE_ACK" << dendl;
CtPtr ProtocolV2::handle_message_ack(char *payload, uint32_t length) {
ldout(cct, 20) << __func__ << " payload_len=" << length << dendl;
- AckFrame ack(this, payload, length);
+ AckFrame ack(*this, payload, length);
handle_message_ack(ack.seq());
return CONTINUE(read_frame);
}
}
}
- ClientIdentFrame client_ident(this, messenger->get_myaddrs(),
- connection->target_addr,
+ ClientIdentFrame client_ident(*this, messenger->get_myaddrs(),
+ connection->target_addr,
messenger->get_myname().num(), global_seq,
connection->policy.features_supported,
connection->policy.features_required | msgr2_required,
CtPtr ProtocolV2::send_reconnect() {
ldout(cct, 20) << __func__ << dendl;
- ReconnectFrame reconnect(this, messenger->get_myaddrs(),
+ ReconnectFrame reconnect(*this, messenger->get_myaddrs(),
client_cookie,
- server_cookie,
- global_seq,
+ server_cookie,
+ global_seq,
connect_seq,
- in_seq);
+ in_seq);
ldout(cct, 5) << __func__ << " reconnect to session: client_cookie="
<< std::hex << client_cookie << " server_cookie="
uint32_t length) {
ldout(cct, 20) << __func__ << " payload_len=" << length << dendl;
- IdentMissingFeaturesFrame ident_missing(this, payload, length);
+ IdentMissingFeaturesFrame ident_missing(*this, payload, length);
lderr(cct) << __func__
<< " client does not support all server features: " << std::hex
<< ident_missing.features() << std::dec << dendl;
CtPtr ProtocolV2::handle_session_reset(char *payload, uint32_t length) {
ldout(cct, 20) << __func__ << dendl;
- ResetFrame reset(this, payload, length);
+ ResetFrame reset(*this, payload, length);
ldout(cct, 1) << __func__ << " received session reset full=" << reset.full()
<< dendl;
CtPtr ProtocolV2::handle_session_retry(char *payload, uint32_t length) {
ldout(cct, 20) << __func__ << " payload_len=" << length << dendl;
- RetryFrame retry(this, payload, length);
+ RetryFrame retry(*this, payload, length);
connect_seq = retry.connect_seq() + 1;
ldout(cct, 1) << __func__
CtPtr ProtocolV2::handle_session_retry_global(char *payload, uint32_t length) {
ldout(cct, 20) << __func__ << " payload_len=" << length << dendl;
- RetryGlobalFrame retry(this, payload, length);
+ RetryGlobalFrame retry(*this, payload, length);
global_seq = messenger->get_global_seq(retry.global_seq());
ldout(cct, 1) << __func__ << " received session retry global global_seq="
CtPtr ProtocolV2::handle_reconnect_ok(char *payload, uint32_t length) {
ldout(cct, 20) << __func__ << " payload_len=" << length << dendl;
- ReconnectOkFrame reconnect_ok(this, payload, length);
+ ReconnectOkFrame reconnect_ok(*this, payload, length);
ldout(cct, 5) << __func__
<< " reconnect accepted: sms=" << reconnect_ok.msg_seq()
<< dendl;
CtPtr ProtocolV2::handle_server_ident(char *payload, uint32_t length) {
ldout(cct, 20) << __func__ << " payload_len=" << length << dendl;
- ServerIdentFrame server_ident(this, payload, length);
+ ServerIdentFrame server_ident(*this, payload, length);
ldout(cct, 5) << __func__ << " received server identification:"
<< " addrs=" << server_ident.addrs()
<< " gid=" << server_ident.gid()
CtPtr ProtocolV2::handle_client_ident(char *payload, uint32_t length) {
ldout(cct, 20) << __func__ << " payload_len=" << std::dec << length << dendl;
- ClientIdentFrame client_ident(this, payload, length);
+ ClientIdentFrame client_ident(*this, payload, length);
ldout(cct, 5) << __func__ << " received client identification:"
<< " addrs=" << client_ident.addrs()
if (feat_missing) {
ldout(cct, 1) << __func__ << " peer missing required features " << std::hex
<< feat_missing << std::dec << dendl;
- IdentMissingFeaturesFrame ident_missing_features(this, feat_missing);
+ IdentMissingFeaturesFrame ident_missing_features(*this, feat_missing);
bufferlist &bl = ident_missing_features.get_buffer();
return WRITE(bl, "ident missing features", read_frame);
CtPtr ProtocolV2::handle_reconnect(char *payload, uint32_t length) {
ldout(cct, 20) << __func__ << " payload_len=" << std::dec << length << dendl;
- ReconnectFrame reconnect(this, payload, length);
+ ReconnectFrame reconnect(*this, payload, length);
ldout(cct, 5) << __func__
<< " received reconnect:"
// session
ldout(cct, 0) << __func__
<< " no existing connection exists, reseting client" << dendl;
- ResetFrame reset(this, true);
+ ResetFrame reset(*this, true);
return WRITE(reset.get_buffer(), "session reset", read_frame);
}
if (exproto->state == CLOSED) {
ldout(cct, 5) << __func__ << " existing " << existing
<< " already closed. Reseting client" << dendl;
- ResetFrame reset(this, true);
+ ResetFrame reset(*this, true);
return WRITE(reset.get_buffer(), "session reset", read_frame);
}
ldout(cct, 1) << __func__
<< " existing racing replace happened while replacing."
<< " existing=" << existing << dendl;
- RetryGlobalFrame retry(this, exproto->peer_global_seq);
+ RetryGlobalFrame retry(*this, exproto->peer_global_seq);
bufferlist &bl = retry.get_buffer();
return WRITE(bl, "session retry", read_frame);
}
<< " rcc=" << reconnect.client_cookie()
<< ", reseting client."
<< dendl;
- ResetFrame reset(this, connection->policy.resetcheck);
+ ResetFrame reset(*this, connection->policy.resetcheck);
return WRITE(reset.get_buffer(), "session reset", read_frame);
} else if (exproto->server_cookie == 0) {
// this happens when:
ldout(cct, 1) << __func__ << " I was a client and didn't received the"
<< " server_ident. Asking peer to resume session"
<< " establishment" << dendl;
- ResetFrame reset(this, false);
+ ResetFrame reset(*this, false);
return WRITE(reset.get_buffer(), "session reset", read_frame);
}
<< " stale global_seq: sgs=" << exproto->peer_global_seq
<< " cgs=" << reconnect.global_seq()
<< ", ask client to retry global" << dendl;
- RetryGlobalFrame retry(this, exproto->peer_global_seq);
+ RetryGlobalFrame retry(*this, exproto->peer_global_seq);
INTERCEPT(18);
<< " stale connect_seq scs=" << exproto->connect_seq
<< " ccs=" << reconnect.connect_seq()
<< " , ask client to retry" << dendl;
- RetryFrame retry(this, exproto->connect_seq);
+ RetryFrame retry(*this, exproto->connect_seq);
return WRITE(retry.get_buffer(), "session retry", read_frame);
}
uint64_t gs = messenger->get_global_seq();
ServerIdentFrame server_ident(
- this, messenger->get_myaddrs(), messenger->get_myname().num(), gs,
+ *this, messenger->get_myaddrs(), messenger->get_myname().num(), gs,
connection->policy.features_supported,
connection->policy.features_required | msgr2_required,
flags,
out_seq = discard_requeued_up_to(out_seq, message_seq);
uint64_t ms = in_seq;
- ReconnectOkFrame reconnect_ok(this, ms);
+ ReconnectOkFrame reconnect_ok(*this, ms);
ldout(cct, 5) << __func__ << " sending reconnect_ok: msg_seq=" << ms << dendl;