MXS-2220 Move authenticator instance data to internal class
This commit is contained in:
@ -440,17 +440,21 @@ DCB* dcb_connect(SERVER* srv, MXS_SESSION* session, const char* protocol)
|
||||
*/
|
||||
|
||||
/** Allocate DCB specific authentication data */
|
||||
if (dcb->authfunc.create
|
||||
&& (dcb->authenticator_data = dcb->authfunc.create(dcb->server->auth_instance)) == NULL)
|
||||
auto auth_create = dcb->authfunc.create;
|
||||
if (auth_create)
|
||||
{
|
||||
MXS_ERROR("Failed to create authenticator for backend DCB.");
|
||||
close(dcb->fd);
|
||||
dcb->fd = DCBFD_CLOSED;
|
||||
// Remove the inc ref that was done in session_link_backend_dcb().
|
||||
session_unlink_backend_dcb(dcb->session, dcb);
|
||||
dcb->session = NULL;
|
||||
dcb_free_all_memory(dcb);
|
||||
return NULL;
|
||||
Server* server = static_cast<Server*>(dcb->server);
|
||||
if ((dcb->authenticator_data = auth_create(server->auth_instance())) == NULL)
|
||||
{
|
||||
MXS_ERROR("Failed to create authenticator for backend DCB.");
|
||||
close(dcb->fd);
|
||||
dcb->fd = DCBFD_CLOSED;
|
||||
// Remove the inc ref that was done in session_link_backend_dcb().
|
||||
session_unlink_backend_dcb(dcb->session, dcb);
|
||||
dcb->session = NULL;
|
||||
dcb_free_all_memory(dcb);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -89,17 +89,17 @@ public:
|
||||
|
||||
Version version() const override
|
||||
{
|
||||
return info.version_num();
|
||||
return m_info.version_num();
|
||||
}
|
||||
|
||||
Type type() const override
|
||||
{
|
||||
return info.type();
|
||||
return m_info.type();
|
||||
}
|
||||
|
||||
std::string version_string() const override
|
||||
{
|
||||
return info.version_string();
|
||||
return m_info.version_string();
|
||||
}
|
||||
|
||||
const char* name() const override
|
||||
@ -306,7 +306,12 @@ public:
|
||||
*/
|
||||
json_t* to_json(const char* host);
|
||||
|
||||
DCB** persistent = nullptr;/**< List of unused persistent connections to the server */
|
||||
void* auth_instance()
|
||||
{
|
||||
return m_auth_instance;
|
||||
}
|
||||
|
||||
DCB** persistent = nullptr; /**< List of unused persistent connections to the server */
|
||||
|
||||
private:
|
||||
struct Settings
|
||||
@ -364,5 +369,7 @@ private:
|
||||
|
||||
const std::string m_name; /**< Server config name */
|
||||
Settings m_settings; /**< Server settings */
|
||||
VersionInfo info; /**< Server version and type information */
|
||||
VersionInfo m_info; /**< Server version and type information */
|
||||
|
||||
void* m_auth_instance = nullptr; /**< Authenticator instance data */
|
||||
};
|
||||
|
@ -257,7 +257,7 @@ Server* Server::server_alloc(const char* name, MXS_CONFIG_PARAMETER* params)
|
||||
server->m_settings.persistmaxtime = config_get_integer(params, CN_PERSISTMAXTIME);
|
||||
server->proxy_protocol = config_get_bool(params, CN_PROXY_PROTOCOL);
|
||||
server->is_active = true;
|
||||
server->auth_instance = auth_instance;
|
||||
server->m_auth_instance = auth_instance;
|
||||
server->server_ssl = ssl;
|
||||
server->persistent = persistent;
|
||||
server->last_event = SERVER_UP_EVENT;
|
||||
@ -860,7 +860,7 @@ uint64_t SERVER::status_from_string(const char* str)
|
||||
|
||||
void Server::set_version(uint64_t version_num, const std::string& version_str)
|
||||
{
|
||||
info.set(version_num, version_str);
|
||||
m_info.set(version_num, version_str);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user