Fix on issue #96

pull/190/head
René Cannaò 11 years ago
parent 7252e65ac1
commit 95a2583bf1

@ -174,7 +174,7 @@ class Standard_ProxySQL_Admin: public ProxySQL_Admin {
void flush_mysql_query_rules__from_disk_to_memory();
void load_mysql_servers_to_runtime();
void save_mysql_servers_from_runtime();
void load_mysql_query_rules_to_runtime();
char * load_mysql_query_rules_to_runtime();
};
static Standard_ProxySQL_Admin *SPA=NULL;
@ -496,9 +496,13 @@ bool admin_handler_command_load_or_save(char *query_no_space, unsigned int query
) {
proxy_debug(PROXY_DEBUG_ADMIN, 4, "Received %s command\n", query_no_space);
Standard_ProxySQL_Admin *SPA=(Standard_ProxySQL_Admin *)pa;
SPA->load_mysql_query_rules_to_runtime();
proxy_debug(PROXY_DEBUG_ADMIN, 4, "Loaded mysql query rules to RUNTIME\n");
SPA->send_MySQL_OK(&sess->myprot_client, NULL);
char *err=SPA->load_mysql_query_rules_to_runtime();
if (err==NULL) {
proxy_debug(PROXY_DEBUG_ADMIN, 4, "Loaded mysql query rules to RUNTIME\n");
SPA->send_MySQL_OK(&sess->myprot_client, NULL);
} else {
SPA->send_MySQL_ERR(&sess->myprot_client, err);
}
return false;
}
@ -1364,10 +1368,11 @@ void Standard_ProxySQL_Admin::load_mysql_servers_to_runtime() {
}
void Standard_ProxySQL_Admin::load_mysql_query_rules_to_runtime() {
char * Standard_ProxySQL_Admin::load_mysql_query_rules_to_runtime() {
char *error=NULL;
int cols=0;
int affected_rows=0;
if (GloQPro==NULL) return (char *)"Global Query Processor not started: command impossible to run";
SQLite3_result *resultset=NULL;
char *query=(char *)"SELECT rule_id, username, schemaname, flagIN, match_pattern, negate_match_pattern, flagOUT, replace_pattern, destination_hostgroup, cache_ttl, apply FROM main.mysql_query_rules WHERE active=1";
admindb->execute_statement(query, &error , &cols , &affected_rows , &resultset);
@ -1381,12 +1386,13 @@ void Standard_ProxySQL_Admin::load_mysql_query_rules_to_runtime() {
nqpr=GloQPro->new_query_rule(atoi(r->fields[0]), true, r->fields[1], r->fields[2], atoi(r->fields[3]), r->fields[4], (atoi(r->fields[5])==1 ? true : false), (r->fields[6]==NULL ? -1 : atol(r->fields[6])), r->fields[7], (r->fields[8]==NULL ? -1 : atoi(r->fields[8])), (r->fields[9]==NULL ? -1 : atol(r->fields[9])), (atoi(r->fields[10])==1 ? true : false));
GloQPro->insert(nqpr);
}
GloQPro->sort();
GloQPro->sort(false);
}
GloQPro->wrunlock();
GloQPro->commit();
// if (error) free(error);
if (resultset) delete resultset;
return NULL;
}

Loading…
Cancel
Save