From d64fc2369b88e1daad176ec3fe79a706ff2e968f Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Wed, 30 Jan 2019 21:27:17 +0100 Subject: [PATCH] msg/async: decouple MessageHeaderFrame from SignedEncryptedFrame. Signed-off-by: Radoslaw Zarzynski --- src/msg/async/ProtocolV2.cc | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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>(); } }; -- 2.39.5