::memcpy(&tx_nonce, auth_meta.connection_secret.c_str() + 16 + sizeof(rx_nonce),
sizeof(tx_nonce));
return {
- std::make_shared<AES128GCM_StreamHandler>(cct, auth_meta, rx_nonce),
- std::make_shared<AES128GCM_StreamHandler>(cct, auth_meta, tx_nonce)
+ std::make_unique<AES128GCM_StreamHandler>(cct, auth_meta, rx_nonce),
+ std::make_unique<AES128GCM_StreamHandler>(cct, auth_meta, tx_nonce)
};
} else {
return { nullptr, nullptr };
//rxtx_t(rxtx_t&& r) : rx(std::move(rx)), tx(std::move(tx)) {}
// Each peer can use different handlers.
// Hmm, isn't that too much flexbility?
- std::shared_ptr<AuthStreamHandler> rx;
- std::shared_ptr<AuthStreamHandler> tx;
+ std::unique_ptr<AuthStreamHandler> rx;
+ std::unique_ptr<AuthStreamHandler> tx;
};
static rxtx_t create_stream_handler_pair(
CephContext* ctx,
exproto->can_write = false;
exproto->reconnecting = reconnecting;
exproto->replacing = true;
- exproto->session_security = session_security;
+ std::swap(exproto->session_security, session_security);
exproto->auth_meta = auth_meta;
existing->state_offset = 0;
// avoid previous thread modify event