From: Radoslaw Zarzynski Date: Wed, 30 Jan 2019 20:27:17 +0000 (+0100) Subject: msg/async: decouple MessageHeaderFrame from SignedEncryptedFrame. X-Git-Tag: v14.1.1~157^2~48 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=d64fc2369b88e1daad176ec3fe79a706ff2e968f;p=ceph-ci.git msg/async: decouple MessageHeaderFrame from SignedEncryptedFrame. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/msg/async/ProtocolV2.cc b/src/msg/async/ProtocolV2.cc index 7254be2e8a8..e19ec4deabb 100644 --- a/src/msg/async/ProtocolV2.cc +++ b/src/msg/async/ProtocolV2.cc @@ -418,9 +418,19 @@ struct AckFrame : public SignedEncryptedFrame { // Body is processed almost independently with the sole junction point // being the `extra_payload_len` passed to get_buffer(). struct MessageHeaderFrame - : public SignedEncryptedFrame { + : public PayloadFrame { const ProtocolV2::Tag tag = ProtocolV2::Tag::MESSAGE; - using SignedEncryptedFrame::SignedEncryptedFrame; + + MessageHeaderFrame(ProtocolV2 &protocol, const ceph_msg_header2 &msghdr) + : PayloadFrame(msghdr) { + protocol.authencrypt_payload(this->payload); + } + + MessageHeaderFrame(ProtocolV2 &protocol, char *payload, uint32_t length) + : PayloadFrame() { + protocol.authdecrypt_payload(payload, length); + this->decode_frame(payload, length); + } inline ceph_msg_header2 &header() { return get_val<0>(); } };