X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/b3139bf3f37b3b0244efea8b4b5e5a7d0bc90095..4243cf76394d6e657a1a8b67645d3d655efd1b07:/projects/stargazer/plugins/store/mysql/mysql_store.cpp diff --git a/projects/stargazer/plugins/store/mysql/mysql_store.cpp b/projects/stargazer/plugins/store/mysql/mysql_store.cpp index 53de158a..609c49ea 100644 --- a/projects/stargazer/plugins/store/mysql/mysql_store.cpp +++ b/projects/stargazer/plugins/store/mysql/mysql_store.cpp @@ -73,7 +73,7 @@ int GetTime(const std::string & str, time_t * val, time_t defaultVal) } //----------------------------------------------------------------------------- -std::string ReplaceStr(std::string source, const std::string symlist, const char chgsym) +std::string ReplaceStr(std::string source, const std::string & symlist, const char chgsym) { std::string::size_type pos=0; @@ -163,6 +163,7 @@ MYSQL_STORE::MYSQL_STORE() version("mysql_store v.0.67"), storeSettings(), settings(), + schemaVersion(0), logger(GetPluginLogger(GetStgLogger(), "store_mysql")) { } @@ -191,7 +192,6 @@ int MYSQL_STORE::ParseSettings() { int ret = storeSettings.ParseSettings(settings); MYSQL mysql; -MYSQL * sock; mysql_init(&mysql); if (ret) errorStr = storeSettings.GetStrError(); @@ -202,7 +202,7 @@ else errorStr = "Database password must be not empty. Please read Manual."; return -1; } - + MYSQL * sock; if (!(sock = mysql_real_connect(&mysql,storeSettings.GetDBHost().c_str(), storeSettings.GetDBUser().c_str(),storeSettings.GetDBPassword().c_str(), 0,0,NULL,0))) @@ -500,8 +500,13 @@ if(!IsTablePresent("users",sock)) res = "INSERT INTO users SET login='test',Address='',AlwaysOnline=0,"\ "Credit=0.0,CreditExpire=0,Down=0,Email='',DisabledDetailStat=0,"\ "StgGroup='',IP='192.168.1.1',Note='',Passive=0,Password='123456',"\ - "Phone='', RealName='',Tariff='tariff',TariffChange='',Userdata0='',"\ - "Userdata1='',"; + "Phone='', RealName='',Tariff='tariff',TariffChange='',NAS='',"; + + for (int i = 0; i < USERDATA_NUM; i++) + { + strprintf(¶m, " Userdata%d='',", i); + res += param; + } for (int i = 0; i < DIR_NUM; i++) { @@ -676,9 +681,12 @@ return 0; //----------------------------------------------------------------------------- int MYSQL_STORE::AddUser(const std::string & login) const { -sprintf(qbuf,"INSERT INTO users SET login='%s'", login.c_str()); - -if(MysqlSetQuery(qbuf)) +std::string query = "INSERT INTO users SET login='" + login + "',Note='',NAS=''"; + +for (int i = 0; i < USERDATA_NUM; i++) + query += ",Userdata" + x2str(i) + "=''"; + +if(MysqlSetQuery(query.c_str())) { errorStr = "Couldn't add user:\n"; //errorStr += mysql_error(sock); @@ -749,8 +757,6 @@ if (mysql_num_rows(res) != 1) row = mysql_fetch_row(res); -std::string param; - conf->password = row[1]; if (conf->password.empty()) @@ -1298,9 +1304,7 @@ char password[ADM_PASSWD_LEN + 1]; char passwordE[2*ADM_PASSWD_LEN + 2]; BLOWFISH_CTX ctx; -memset(pass, 0, sizeof(pass)); memset(password, 0, sizeof(password)); -memset(passwordE, 0, sizeof(passwordE)); std::string p; MYSQL_RES *res;