Allow the query classifier to be specified in maxscale.cnf
This commit is contained in:
parent
e668abec5b
commit
2bbe1b068a
@ -47,6 +47,7 @@ bool qc_init(const char* plugin_name)
|
||||
|
||||
if (!plugin_name || (*plugin_name == 0))
|
||||
{
|
||||
MXS_NOTICE("No query classifier specified, using default '%s'.", default_qc_name);
|
||||
plugin_name = default_qc_name;
|
||||
}
|
||||
|
||||
|
@ -1002,6 +1002,22 @@ handle_global_item(const char *name, const char *value)
|
||||
MXS_ERROR("Invalid timeout value for 'auth_write_timeout': %s", value);
|
||||
}
|
||||
}
|
||||
else if (strcmp(name, "query_classifier") == 0)
|
||||
{
|
||||
int len = strlen(value);
|
||||
int max_len = sizeof(gateway.qc_name) - 1;
|
||||
|
||||
if (len <= max_len)
|
||||
{
|
||||
strcpy(gateway.qc_name, value);
|
||||
}
|
||||
else
|
||||
{
|
||||
MXS_ERROR("The length of '%s' is %d, while the maximum length is %d.",
|
||||
value, len, max_len);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; lognames[i].name; i++)
|
||||
@ -1110,6 +1126,9 @@ global_defaults()
|
||||
{
|
||||
strncpy(gateway.sysname, uname_data.sysname, _SYSNAME_STR_LENGTH);
|
||||
}
|
||||
|
||||
/* query_classifier */
|
||||
memset(gateway.qc_name, 0, sizeof(gateway.qc_name));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1782,7 +1782,10 @@ int main(int argc, char **argv)
|
||||
goto return_main;
|
||||
}
|
||||
|
||||
if (!qc_init(NULL))
|
||||
GATEWAY_CONF* cnf = config_get_global_options();
|
||||
ss_dassert(cnf);
|
||||
|
||||
if (!qc_init(cnf->qc_name))
|
||||
{
|
||||
char* logerr = "Failed to initialise query classifier library.";
|
||||
print_log_n_stderr(true, true, logerr, logerr, eno);
|
||||
|
@ -124,7 +124,8 @@ typedef struct
|
||||
int log_to_shm; /**< Write log-file to shared memory */
|
||||
unsigned int auth_conn_timeout; /**< Connection timeout for the user authentication */
|
||||
unsigned int auth_read_timeout; /**< Read timeout for the user authentication */
|
||||
unsigned int auth_write_timeout; /**< Write timeout for the user authentication */
|
||||
unsigned int auth_write_timeout; /**< Write timeout for the user authentication */
|
||||
char qc_name[PATH_MAX]; /**< The name of the query classifier to load */
|
||||
} GATEWAY_CONF;
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user