tsdb: fix SET command validation by adding tsdb- prefix support

pull/5383/head
Rene Cannao 2 months ago
parent 6587bfdd40
commit a09db8318c

@ -160,6 +160,7 @@ class ProxySQL_Statistics {
// Variable management
bool set_variable(const char *name, const char *value);
char *get_variable(const char *name);
bool has_variable(const char *name);
char **get_variables_list();
bool MySQL_Threads_Handler_timetoget(unsigned long long);

@ -1109,6 +1109,8 @@ bool is_valid_global_variable(const char *var_name) {
return true;
} else if (strlen(var_name) > 6 && !strncmp(var_name, "admin-", 6) && SPA->has_variable(var_name + 6)) {
return true;
} else if (strlen(var_name) > 5 && !strncmp(var_name, "tsdb-", 5) && GloProxyStats && GloProxyStats->has_variable(var_name + 5)) {
return true;
} else if (strlen(var_name) > 5 && !strncmp(var_name, "ldap-", 5) && GloMyLdapAuth && GloMyLdapAuth->has_variable(var_name + 5)) {
return true;
} else if (strlen(var_name) > 13 && !strncmp(var_name, "sqliteserver-", 13) && GloSQLite3Server && GloSQLite3Server->has_variable(var_name + 13)) {

@ -183,6 +183,16 @@ char **ProxySQL_Statistics::get_variables_list() {
return list;
}
bool ProxySQL_Statistics::has_variable(const char *name) {
if (name == NULL) return false;
if (!strcasecmp(name, "enabled")) return true;
if (!strcasecmp(name, "sample_interval")) return true;
if (!strcasecmp(name, "retention_days")) return true;
if (!strcasecmp(name, "monitor_enabled")) return true;
if (!strcasecmp(name, "monitor_interval")) return true;
return false;
}
ProxySQL_Statistics::~ProxySQL_Statistics() {
if (stmt_insert_tsdb_metric) {
(*proxy_sqlite3_finalize)(stmt_insert_tsdb_metric);

Loading…
Cancel
Save