X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=blobdiff_plain;f=src%2FmysqlConn.c;h=45ab1931dee8766b7e13c9a4a15da6cfa41fd3fc;hp=79c82e9d4194f49514cf14aa8202d4461fc63312;hb=f6bdc9d0fc8db22c265918f3325e11177fd001b9;hpb=7289d420ddc81d9975ed6d55dfdfd70dff2b2d48 diff --git a/src/mysqlConn.c b/src/mysqlConn.c index 79c82e9..45ab193 100644 --- a/src/mysqlConn.c +++ b/src/mysqlConn.c @@ -16,6 +16,9 @@ */ #include "mysqlConn.h" +#include "ConfigParser.h" +#include "tools.h" +#include "log.h" #define DATABASE_VERSION "20" static void show_mysql_error(); @@ -96,14 +99,39 @@ void mysql_free() { mysql_conn->escaped_strings = NULL; } -void init_mysql(char *host, int port, char *user, char *pass, char *base) { - THREAD_MUTEX_INIT(synchronized); - mysql_host = strdup(host); - mysql_serverport = port; - mysql_user = strdup(user); - mysql_pass = strdup(pass); - mysql_base = strdup(base); +int reload_mysql() { + char *new_mysql_host = get_string_field("MySQL.host"); + char *new_mysql_user = get_string_field("MySQL.user"); + char *new_mysql_pass = get_string_field("MySQL.pass"); + char *new_mysql_base = get_string_field("MySQL.base"); + if(!(new_mysql_host && new_mysql_user && new_mysql_pass && new_mysql_base)) + return 0; + + //replace login data + if(mysql_host) + free(mysql_host); + mysql_host = strdup(new_mysql_host); + + if(mysql_user) + free(mysql_user); + mysql_user = strdup(new_mysql_user); + if(mysql_pass) + free(mysql_pass); + mysql_pass = strdup(new_mysql_pass); + + if(mysql_base) + free(mysql_base); + mysql_base = strdup(new_mysql_base); + + mysql_serverport = get_int_field("MySQL.port"); + if(!mysql_serverport) + mysql_serverport = 3306; + return 1; +} + +void init_mysql() { + THREAD_MUTEX_INIT(synchronized); MYSQL *mysql_conn = get_mysql_conn(); @@ -133,7 +161,8 @@ void init_mysql(char *host, int port, char *user, char *pass, char *base) { } } fclose(f); - } + } else + printf_log("main", LOG_ERROR | LOG_MYSQL, "File not found: database.sql"); f = fopen("database.defaults.sql", "r"); if (f) { char line[4096]; @@ -148,7 +177,8 @@ void init_mysql(char *host, int port, char *user, char *pass, char *base) { } } fclose(f); - } + } else + printf_log("main", LOG_ERROR | LOG_MYSQL, "File not found: database.defaults.sql"); do { MYSQL_RES *res = mysql_store_result(mysql_conn); mysql_free_result(res); @@ -182,7 +212,7 @@ void init_mysql(char *host, int port, char *user, char *pass, char *base) { } fclose(f); } else - perror("database.sql missing!"); + printf_log("main", LOG_ERROR | LOG_MYSQL, "File not found: database.upgrade.sql"); do { MYSQL_RES *res = mysql_store_result(mysql_conn); mysql_free_result(res); @@ -205,7 +235,7 @@ void free_mysql() { static void show_mysql_error() { MYSQL *mysql_conn = get_mysql_conn(); //show mysql_error() - putlog(LOGLEVEL_ERROR, "MySQL Error: %s\n", mysql_error(mysql_conn)); + printf_log("main", LOG_ERROR | LOG_MYSQL, "Error: %s\n", mysql_error(mysql_conn)); } void printf_mysql_query(const char *text, ...) { @@ -219,7 +249,7 @@ void printf_mysql_query(const char *text, ...) { va_end(arg_list); if (pos < 0 || pos > (MYSQLMAXLEN - 2)) pos = MYSQLMAXLEN - 2; queryBuf[pos] = '\0'; - putlog(LOGLEVEL_MYSQL, "MySQL: %s\n", queryBuf); + printf_log("main", LOG_MYSQL, "%s\n", queryBuf); if(mysql_query(mysql_conn, queryBuf)) { check_mysql(); if(mysql_query(mysql_conn, queryBuf)) { @@ -239,7 +269,7 @@ void printf_long_mysql_query(int len, const char *text, ...) { va_end(arg_list); if (pos < 0 || pos > (len - 2)) pos = len - 2; queryBuf[pos] = '\0'; - putlog(LOGLEVEL_MYSQL, "MySQL: %s\n", queryBuf); + printf_log("main", LOG_MYSQL, "%s\n", queryBuf); if(mysql_query(mysql_conn, queryBuf)) { check_mysql(); if(mysql_query(mysql_conn, queryBuf)) {