MXS-2483: Store server SSLContext in unique_ptr

This commit is contained in:
Markus Mäkelä
2019-05-21 07:00:42 +03:00
parent 9c6ec5e6c9
commit bc500d2565
3 changed files with 13 additions and 11 deletions

View File

@ -519,12 +519,12 @@ public:
mxs::SSLContext* ssl_context() const
{
return m_ssl_context;
return m_ssl_context.get();
}
void set_ssl_context(mxs::SSLContext* ssl)
void set_ssl_context(std::unique_ptr<mxs::SSLContext> ssl)
{
m_ssl_context = ssl;
m_ssl_context.swap(ssl);
}
protected:
@ -538,5 +538,6 @@ private:
static const int DEFAULT_CHARSET = 0x08; /**< The latin1 charset */
maxbase::EMAverage m_response_time; /**< Response time calculations for this server */
std::mutex m_average_write_mutex; /**< Protects response time from concurrent writing */
mxs::SSLContext* m_ssl_context; /**< SSL context */
std::unique_ptr<mxs::SSLContext> m_ssl_context; /**< SSL context */
};

View File

@ -441,11 +441,12 @@ bool runtime_enable_server_ssl(Server* server,
else if (key && cert && ca)
{
std::lock_guard<std::mutex> guard(crt_lock);
mxs::SSLContext* ssl = create_ssl(server->name(), key, cert, ca, version, depth, verify);
std::unique_ptr<mxs::SSLContext> ssl(create_ssl(server->name(), key, cert, ca,
version, depth, verify));
if (ssl)
{
server->set_ssl_context(ssl);
server->set_ssl_context(std::move(ssl));
if (server->serialize())
{

View File

@ -6347,12 +6347,12 @@ static int blr_set_master_ssl(ROUTER_INSTANCE* router,
{CN_SSL_VERIFY_PEER_CERTIFICATE, "true"}
});
auto ssl = mxs::SSLContext::create(params);
std::unique_ptr<mxs::SSLContext> ssl(mxs::SSLContext::create(params));
if (ssl)
{
updated = 1;
router->service->dbref->server->set_ssl_context(ssl);
router->service->dbref->server->set_ssl_context(std::move(ssl));
/* Update options in router fields */
if (!config.ssl_key.empty())