From 01f7883c4e544ac9f03f11454b920f3e842773da Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Sat, 18 Dec 2010 17:15:45 +0200 Subject: [PATCH] =?utf8?q?=D0=92=D0=B8=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=BE?= =?utf8?q?=20=D1=81=D0=BC=D1=96=D1=82=D1=82=D1=8F=20=D1=89=D0=BE=20=D0=B7?= =?utf8?q?=D0=B0=D0=BB=D0=B8=D1=88=D0=B8=D0=BB=D0=BE=D1=81=D1=8C=20=D0=B2?= =?utf8?q?=D1=96=D0=B4=20=D1=80=D0=BE=D0=B1=D0=BE=D1=82=D0=B8=20CVS?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../plugins/store/mysql/.#mysql_store.cpp.1.3 | 2065 ----------------- .../store/mysql/.#mysql_store.h.1.1.1.1 | 143 -- 2 files changed, 2208 deletions(-) delete mode 100644 projects/stargazer/plugins/store/mysql/.#mysql_store.cpp.1.3 delete mode 100644 projects/stargazer/plugins/store/mysql/.#mysql_store.h.1.1.1.1 diff --git a/projects/stargazer/plugins/store/mysql/.#mysql_store.cpp.1.3 b/projects/stargazer/plugins/store/mysql/.#mysql_store.cpp.1.3 deleted file mode 100644 index 03b3efb8..00000000 --- a/projects/stargazer/plugins/store/mysql/.#mysql_store.cpp.1.3 +++ /dev/null @@ -1,2065 +0,0 @@ -#include -#include -#include - -#include -#include - -#include "user_ips.h" -#include "user_conf.h" -#include "user_stat.h" -#include "mysql_store.h" -#include "blowfish.h" - -#define adm_enc_passwd "cjeifY8m3" -char qbuf[4096]; - -using namespace std; - -const int pt_mega = 1024 * 1024; -const string badSyms = "'`"; -const char repSym = '\"'; -const int RepitTimes = 3; - -int GetInt(const string & str, int * val, int defaultVal) -{ - char *res; - - *val = strtol(str.c_str(), &res, 10); - - if (*res != 0) - { - *val = defaultVal; //Error! - return EINVAL; - } - - return 0; -} - -int GetDouble(const string & str, double * val, double defaultVal) -{ - char *res; - - *val = strtod(str.c_str(), &res); - - if (*res != 0) - { - *val = defaultVal; //Error! - return EINVAL; - } - - return 0; -} - -int GetTime(const string & str, time_t * val, time_t defaultVal) -{ - char *res; - - *val = strtol(str.c_str(), &res, 10); - - if (*res != 0) - { - *val = defaultVal; //Error! - return EINVAL; - } - - return 0; -} - -//----------------------------------------------------------------------------- -string ReplaceStr(string source, const string symlist, const char chgsym) -{ - string::size_type pos=0; - - while( (pos = source.find_first_of(symlist,pos)) != string::npos) - source.replace(pos, 1,1, chgsym); - - return source; -} - -int GetULongLongInt(const string & str, uint64_t * val, uint64_t defaultVal) -{ - char *res; - - *val = strtoull(str.c_str(), &res, 10); - - if (*res != 0) - { - *val = defaultVal; //Error! - return EINVAL; - } - - return 0; -} - -class STORE_CREATOR -{ -private: - BASE_STORE * bs; - -public: - STORE_CREATOR() - { - bs = new MYSQL_STORE(); - }; - ~STORE_CREATOR() - { - if (bs) - delete bs; - }; - - BASE_STORE * GetStore() - { - return bs; - }; -}; -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -//STORE_CREATOR sc; -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -BASE_STORE * GetStore() -{ -//return sc.GetStore(); -return new MYSQL_STORE(); -} -//----------------------------------------------------------------------------- -MYSQL_STORE_SETTINGS::MYSQL_STORE_SETTINGS() -{ -} -//----------------------------------------------------------------------------- -MYSQL_STORE_SETTINGS::~MYSQL_STORE_SETTINGS() -{ - -} -//----------------------------------------------------------------------------- -int MYSQL_STORE_SETTINGS::ParseParam(const vector & moduleParams, - const string & name, string & result) -{ -PARAM_VALUE pv; -pv.param = name; -vector::const_iterator pvi; -pvi = find(moduleParams.begin(), moduleParams.end(), pv); -if (pvi == moduleParams.end()) - { - errorStr = "Parameter \'" + name + "\' not found."; - return -1; - } - -result = pvi->value[0]; - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE_SETTINGS::ParseSettings(const MODULE_SETTINGS & s) -{ -if (ParseParam(s.moduleParams, "dbuser", dbUser) < 0) - return -1; -if (ParseParam(s.moduleParams, "rootdbpass", dbPass) < 0) - return -1; -if (ParseParam(s.moduleParams, "dbname", dbName) < 0) - return -1; -if (ParseParam(s.moduleParams, "dbhost", dbHost) < 0) - return -1; - -return 0; -} -//----------------------------------------------------------------------------- -const string & MYSQL_STORE_SETTINGS::GetStrError() const -{ -return errorStr; -} -//----------------------------------------------------------------------------- -string MYSQL_STORE_SETTINGS::GetDBUser() const -{ -return dbUser; -} -//----------------------------------------------------------------------------- -string MYSQL_STORE_SETTINGS::GetDBPassword() const -{ -return dbPass; -} -//----------------------------------------------------------------------------- -string MYSQL_STORE_SETTINGS::GetDBHost() const -{ -return dbHost; -} -//----------------------------------------------------------------------------- -string MYSQL_STORE_SETTINGS::GetDBName() const -{ -return dbName; -} -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -MYSQL_STORE::MYSQL_STORE() -{ -version = "mysql_store v.0.67"; -}; -//----------------------------------------------------------------------------- -MYSQL_STORE::~MYSQL_STORE() -{ -}; -//----------------------------------------------------------------------------- -void MYSQL_STORE::SetSettings(const MODULE_SETTINGS & s) -{ -settings = s; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::MysqlQuery(const char* sQuery,MYSQL * sock) const -{ - int ret,i; - - if( (ret = mysql_query(sock,sQuery)) ) - { - for(i=0; i * ParamList, - const string & table, const string & name) const -{ -MYSQL_RES *res; -MYSQL_ROW row; -MYSQL * sock=NULL; -unsigned int num,i; - -ParamList->clear(); - -sprintf(qbuf,"SELECT %s FROM %s", name.c_str(), table.c_str()); - -if(MysqlGetQuery(qbuf,sock)) -{ - errorStr = "Couldn't GetAllParams Query for: "; - errorStr += name + " - " + table + "\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -if (!(res=mysql_store_result(sock))) -{ - errorStr = "Couldn't GetAllParams Results for: "; - errorStr += name + " - " + table + "\n"; - errorStr += mysql_error(sock); - return -1; -} - -num = mysql_num_rows(res); - -for(i=0;ipush_back(row[0]); -} - -mysql_free_result(res); -mysql_close(sock); - -return 0; -} - -//----------------------------------------------------------------------------- -int MYSQL_STORE::GetUsersList(vector * usersList) const -{ -if(GetAllParams(usersList, "users", "login")) - return -1; - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::GetAdminsList(vector * adminsList) const -{ -if(GetAllParams(adminsList, "admins", "login")) - return -1; - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::GetTariffsList(vector * tariffsList) const -{ -if(GetAllParams(tariffsList, "tariffs", "name")) - return -1; - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::AddUser(const string & login) const -{ -sprintf(qbuf,"INSERT INTO users SET login='%s'", login.c_str()); - -if(MysqlSetQuery(qbuf)) -{ - errorStr = "Couldn't add user:\n"; - //errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::DelUser(const string & login) const -{ -sprintf(qbuf,"DELETE FROM users WHERE login='%s' LIMIT 1", login.c_str()); - -if(MysqlSetQuery(qbuf)) -{ - errorStr = "Couldn't delete user:\n"; - //errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::RestoreUserConf(USER_CONF * conf, const string & login) const -{ -MYSQL_RES *res; -MYSQL_ROW row; -MYSQL * sock; -string query; - -query = "SELECT login, Password, Passive, Down, DisabledDetailStat, \ - AlwaysOnline, Tariff, Address, Phone, Email, Note, \ - RealName, StgGroup, Credit, TariffChange, "; - -for (int i = 0; i < USERDATA_NUM; i++) -{ - sprintf(qbuf, "Userdata%d, ", i); - query += qbuf; -} - -query += "CreditExpire, IP FROM users WHERE login='"; -query += login + "' LIMIT 1"; - -//sprintf(qbuf,"SELECT * FROM users WHERE login='%s' LIMIT 1", login.c_str()); - -if(MysqlGetQuery(query.c_str(),sock)) -{ - errorStr = "Couldn't restore Tariff(on query):\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -if (!(res=mysql_store_result(sock))) -{ - errorStr = "Couldn't restore Tariff(on getting result):\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -row = mysql_fetch_row(res); - -string param; - -conf->password = row[1]; - -if (conf->password.empty()) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' password is blank."; - mysql_close(sock); - return -1; - } - -if (GetInt(row[2],&conf->passive, 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' data not read. Parameter Passive."; - mysql_close(sock); - return -1; - } - -if (GetInt(row[3], &conf->disabled, 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' data not read. Parameter Down."; - mysql_close(sock); - return -1; - } - -if (GetInt(row[4], &conf->disabledDetailStat, 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' data not read. Parameter DisabledDetailStat."; - mysql_close(sock); - return -1; - } - -if (GetInt(row[5], &conf->alwaysOnline, 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' data not read. Parameter AlwaysOnline."; - mysql_close(sock); - return -1; - } - -conf->tariffName = row[6]; - -if (conf->tariffName.empty()) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' tariff is blank."; - mysql_close(sock); - return -1; - } - -conf->address = row[7]; -conf->phone = row[8]; -conf->email = row[9]; -conf->note = row[10]; -conf->realName = row[11]; -conf->group = row[12]; - -if (GetDouble(row[13], &conf->credit, 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' data not read. Parameter Credit."; - mysql_close(sock); - return -1; - } - -conf->nextTariff = row[14]; - -for (int i = 0; i < USERDATA_NUM; i++) - { - conf->userdata[i] = row[15+i]; - } - -GetTime(row[15+USERDATA_NUM], &conf->creditExpire, 0); - -string ipStr = row[16+USERDATA_NUM]; -USER_IPS i; -try - { - i = StrToIPS(ipStr); - } -catch (string s) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' data not read. Parameter IP address. " + s; - mysql_close(sock); - return -1; - } -conf->ips = i; - -mysql_free_result(res); -mysql_close(sock); - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::RestoreUserStat(USER_STAT * stat, const string & login) const -{ -MYSQL_RES *res; -MYSQL_ROW row; -MYSQL * sock; - -string query; - -query = "SELECT "; - -for (int i = 0; i < DIR_NUM; i++) -{ - sprintf(qbuf, "D%d, U%d, ", i, i); - query += qbuf; -} - -query += "Cash, FreeMb, LastCashAdd, LastCashAddTime, PassiveTime, LastActivityTime \ - FROM users WHERE login = '"; -query += login + "'"; - -//sprintf(qbuf,"SELECT * FROM users WHERE login='%s' LIMIT 1", login.c_str()); - -if(MysqlGetQuery(query.c_str() ,sock)) -{ - errorStr = "Couldn't restore UserStat(on query):\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -if (!(res=mysql_store_result(sock))) -{ - errorStr = "Couldn't restore UserStat(on getting result):\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -row = mysql_fetch_row(res); - -unsigned int startPos=0; - -char s[22]; -uint64_t traffU[DIR_NUM]; -uint64_t traffD[DIR_NUM]; - -for (int i = 0; i < DIR_NUM; i++) - { - sprintf(s, "D%d", i); - if (GetULongLongInt(row[startPos+i*2],&traffD[i], 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' stat not read. Parameter " + string(s); - mysql_close(sock); - return -1; - } - stat->down = traffD; - - sprintf(s, "U%d", i); - if (GetULongLongInt(row[startPos+i*2+1], &traffU[i], 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' stat not read. Parameter " + string(s); - mysql_close(sock); - return -1; - } - stat->up = traffU; - }//for - -startPos += (2*DIR_NUM); - -if (GetDouble(row[startPos], &stat->cash, 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' stat not read. Parameter Cash"; - mysql_close(sock); - return -1; - } - -if (GetDouble(row[startPos+1],&stat->freeMb, 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' stat not read. Parameter FreeMb"; - mysql_close(sock); - return -1; - } - -if (GetDouble(row[startPos+2], &stat->lastCashAdd, 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' stat not read. Parameter LastCashAdd"; - mysql_close(sock); - return -1; - } - -if (GetTime(row[startPos+3], &stat->lastCashAddTime, 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' stat not read. Parameter LastCashAddTime"; - mysql_close(sock); - return -1; - } - -if (GetTime(row[startPos+4], &stat->passiveTime, 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' stat not read. Parameter PassiveTime"; - mysql_close(sock); - return -1; - } - -if (GetTime(row[startPos+5], &stat->lastActivityTime, 0) != 0) - { - mysql_free_result(res); - errorStr = "User \'" + login + "\' stat not read. Parameter LastActivityTime"; - mysql_close(sock); - return -1; - } - -mysql_free_result(res); -mysql_close(sock); -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::SaveUserConf(const USER_CONF & conf, const string & login) const -{ -string param; -string res; - -strprintf(&res,"UPDATE users SET Password='%s', Passive=%d, Down=%d, DisabledDetailStat = %d, "\ - "AlwaysOnline=%d, Tariff='%s', Address='%s', Phone='%s', Email='%s', "\ - "Note='%s', RealName='%s', StgGroup='%s', Credit=%f, TariffChange='%s', ", - conf.password.c_str(), - conf.passive, - conf.disabled, - conf.disabledDetailStat, - conf.alwaysOnline, - conf.tariffName.c_str(), - (ReplaceStr(conf.address,badSyms,repSym)).c_str(), - (ReplaceStr(conf.phone,badSyms,repSym)).c_str(), - (ReplaceStr(conf.email,badSyms,repSym)).c_str(), - (ReplaceStr(conf.note,badSyms,repSym)).c_str(), - (ReplaceStr(conf.realName,badSyms,repSym)).c_str(), - (ReplaceStr(conf.group,badSyms,repSym)).c_str(), - conf.credit, - conf.nextTariff.c_str() - ); - -for (int i = 0; i < USERDATA_NUM; i++) - { - strprintf(¶m, " Userdata%d='%s',", i, - (ReplaceStr(conf.userdata[i],badSyms,repSym)).c_str()); - res += param; - } - -strprintf(¶m, " CreditExpire=%d,", conf.creditExpire); -res += param; - -stringstream ipStr; -ipStr << conf.ips; - -strprintf(¶m, " IP='%s'", ipStr.str().c_str()); -res += param; - -strprintf(¶m, " WHERE login='%s' LIMIT 1", login.c_str()); -res += param; - -if(MysqlSetQuery(res.c_str())) -{ - errorStr = "Couldn't save user conf:\n"; - //errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::SaveUserStat(const USER_STAT & stat, const string & login) const -{ -string param; -string res; - -res = "UPDATE users SET"; - -for (int i = 0; i < DIR_NUM; i++) - { - strprintf(¶m, " D%d=%lld,", i, stat.down[i]); - res += param; - - strprintf(¶m, " U%d=%lld,", i, stat.up[i]); - res += param; - } - -strprintf(¶m, " Cash=%f, FreeMb=%f, LastCashAdd=%f, LastCashAddTime=%d,"\ - " PassiveTime=%d, LastActivityTime=%d", - stat.cash, - stat.freeMb, - stat.lastCashAdd, - stat.lastCashAddTime, - stat.passiveTime, - stat.lastActivityTime - ); -res += param; - -strprintf(¶m, " WHERE login='%s' LIMIT 1", login.c_str()); -res += param; - -if(MysqlSetQuery(res.c_str())) -{ - errorStr = "Couldn't save user stat:\n"; -// errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::WriteLogString(const string & str, const string & login) const -{ -string res, tempStr; -time_t t; -tm * lt; - -t = time(NULL); -lt = localtime(&t); - -MYSQL_RES* result; -MYSQL * sock; -strprintf(&tempStr, "logs_%02d_%4d", lt->tm_mon+1, lt->tm_year+1900); -if (!(sock=MysqlConnect())){ - errorStr = "Couldn't connect to Server"; - return -1; -} -if (!(result=mysql_list_tables(sock,tempStr.c_str() ))) -{ - errorStr = "Couldn't get table " + tempStr + ":\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -unsigned int num_rows = mysql_num_rows(result); - -mysql_free_result(result); - -if (num_rows < 1) -{ - sprintf(qbuf,"CREATE TABLE logs_%02d_%4d (unid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, login VARCHAR(40),text TEXT)", - lt->tm_mon+1, lt->tm_year+1900); - - if(MysqlQuery(qbuf,sock)) - { - errorStr = "Couldn't create WriteDetailedStat table:\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; - } -} - -strprintf(&res, "%s -- %s",LogDate(t), str.c_str()); - -string send; - -strprintf(&send,"INSERT INTO logs_%02d_%4d SET login='%s', text='%s'", - lt->tm_mon+1, lt->tm_year+1900, - login.c_str(), (ReplaceStr(res,badSyms,repSym)).c_str()); - -if(MysqlQuery(send.c_str(),sock)) -{ - errorStr = "Couldn't write log string:\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} -mysql_close(sock); -return 0; - -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::WriteUserChgLog(const string & login, - const string & admLogin, - uint32_t admIP, - const string & paramName, - const string & oldValue, - const string & newValue, - const string & message) const -{ -string userLogMsg = "Admin \'" + admLogin + "\', " + string(inet_ntostr(admIP)) + ": \'" - + paramName + "\' parameter changed from \'" + oldValue + - "\' to \'" + newValue + "\'. " + message; - -return WriteLogString(userLogMsg, login); -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::WriteUserConnect(const string & login, uint32_t ip) const -{ -string logStr = "Connect, " + string(inet_ntostr(ip)); -return WriteLogString(logStr, login); -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::WriteUserDisconnect(const string & login, - const DIR_TRAFF & up, - const DIR_TRAFF & down, - const DIR_TRAFF & sessionUp, - const DIR_TRAFF & sessionDown, - double cash, - double freeMb) const -{ -string logStr = "Disconnect, "; -stringstream sssu; -stringstream sssd; -stringstream ssmu; -stringstream ssmd; -stringstream sscash; - -ssmu << up; -ssmd << down; - -sssu << sessionUp; -sssd << sessionDown; - -sscash << cash; - -logStr += " session upload: \'"; -logStr += sssu.str(); -logStr += "\' session download: \'"; -logStr += sssd.str(); -logStr += "\' month upload: \'"; -logStr += ssmu.str(); -logStr += "\' month download: \'"; -logStr += ssmd.str(); -logStr += "\' cash: \'"; -logStr += sscash.str(); -logStr += "\'"; - -return WriteLogString(logStr, login); -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year, - const string & login) const -{ -string param, res; - -strprintf(&res, "INSERT INTO stat SET login='%s', month=%d, year=%d,", - login.c_str(), month+1, year+1900); - -for (int i = 0; i < DIR_NUM; i++) - { - strprintf(¶m, " U%d=%lld,", i, stat.up[i]); - res += param; - - strprintf(¶m, " D%d=%lld,", i, stat.down[i]); - res += param; - } - -strprintf(¶m, " cash=%f", stat.cash); -res += param; - -if(MysqlSetQuery(res.c_str())) -{ - errorStr = "Couldn't SaveMonthStat:\n"; - //errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//-----------------------------------------------------------------------------*/ -int MYSQL_STORE::AddAdmin(const string & login) const -{ -sprintf(qbuf,"INSERT INTO admins SET login='%s'", login.c_str()); - -if(MysqlSetQuery(qbuf)) -{ - errorStr = "Couldn't add admin:\n"; - //errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//-----------------------------------------------------------------------------*/ -int MYSQL_STORE::DelAdmin(const string & login) const -{ -sprintf(qbuf,"DELETE FROM admins where login='%s' LIMIT 1", login.c_str()); - -if(MysqlSetQuery(qbuf)) -{ - errorStr = "Couldn't delete admin:\n"; - //errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//-----------------------------------------------------------------------------*/ -int MYSQL_STORE::SaveAdmin(const ADMIN_CONF & ac) const -{ -char passwordE[2 * ADM_PASSWD_LEN + 2]; -char pass[ADM_PASSWD_LEN + 1]; -char adminPass[ADM_PASSWD_LEN + 1]; - -memset(pass, 0, sizeof(pass)); -memset(adminPass, 0, sizeof(adminPass)); - -BLOWFISH_CTX ctx; -EnDecodeInit(adm_enc_passwd, strlen(adm_enc_passwd), &ctx); - -strncpy(adminPass, ac.password.c_str(), ADM_PASSWD_LEN); -adminPass[ADM_PASSWD_LEN - 1] = 0; - -for (int i = 0; i < ADM_PASSWD_LEN/8; i++) - { - EncodeString(pass + 8*i, adminPass + 8*i, &ctx); - } - -pass[ADM_PASSWD_LEN - 1] = 0; -Encode12(passwordE, pass, ADM_PASSWD_LEN); - -sprintf(qbuf,"UPDATE admins SET password='%s', ChgConf=%d, ChgPassword=%d, "\ - "ChgStat=%d, ChgCash=%d, UsrAddDel=%d, ChgTariff=%d, ChgAdmin=%d "\ - "WHERE login='%s' LIMIT 1", - passwordE, - ac.priv.userConf, - ac.priv.userPasswd, - ac.priv.userStat, - ac.priv.userCash, - ac.priv.userAddDel, - ac.priv.tariffChg, - ac.priv.adminChg, - ac.login.c_str() - ); - -if(MysqlSetQuery(qbuf)) -{ - errorStr = "Couldn't save admin:\n"; - //errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::RestoreAdmin(ADMIN_CONF * ac, const string & login) const -{ -char pass[ADM_PASSWD_LEN + 1]; -char password[ADM_PASSWD_LEN + 1]; -char passwordE[2*ADM_PASSWD_LEN + 2]; -BLOWFISH_CTX ctx; - -string p; -MYSQL_RES *res; -MYSQL_ROW row; -MYSQL * sock; -sprintf(qbuf,"SELECT * FROM admins WHERE login='%s' LIMIT 1", login.c_str()); - -if(MysqlGetQuery(qbuf,sock)) -{ - errorStr = "Couldn't restore admin:\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -if (!(res=mysql_store_result(sock))) -{ - errorStr = "Couldn't restore admin:\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -if ( mysql_num_rows(res) == 0) -{ - mysql_free_result(res); - errorStr = "Couldn't restore admin as couldn't found him in table.\n"; - mysql_close(sock); - return -1; -} - -row = mysql_fetch_row(res); - -p = row[1]; -int a; - -if(p.length() == 0) -{ - mysql_free_result(res); - errorStr = "Error in parameter password"; - mysql_close(sock); - return -1; -} - -memset(passwordE, 0, sizeof(passwordE)); -strncpy(passwordE, p.c_str(), 2*ADM_PASSWD_LEN); - -memset(pass, 0, sizeof(pass)); - -if (passwordE[0] != 0) - { - Decode21(pass, passwordE); - EnDecodeInit(adm_enc_passwd, strlen(adm_enc_passwd), &ctx); - - for (int i = 0; i < ADM_PASSWD_LEN/8; i++) - { - DecodeString(password + 8*i, pass + 8*i, &ctx); - } - } -else - { - password[0] = 0; - } - -ac->password = password; - -if (GetInt(row[2], &a, 0) == 0) - ac->priv.userConf = a; -else - { - mysql_free_result(res); - errorStr = "Error in parameter ChgConf"; - mysql_close(sock); - return -1; - } - -if (GetInt(row[3], &a, 0) == 0) - ac->priv.userPasswd = a; -else - { - mysql_free_result(res); - errorStr = "Error in parameter ChgPassword"; - mysql_close(sock); - return -1; - } - -if (GetInt(row[4], &a, 0) == 0) - ac->priv.userStat = a; -else - { - mysql_free_result(res); - errorStr = "Error in parameter ChgStat"; - mysql_close(sock); - return -1; - } - -if (GetInt(row[5], &a, 0) == 0) - ac->priv.userCash = a; -else - { - mysql_free_result(res); - errorStr = "Error in parameter ChgCash"; - mysql_close(sock); - return -1; - } - -if (GetInt(row[6], &a, 0) == 0) - ac->priv.userAddDel = a; -else - { - mysql_free_result(res); - errorStr = "Error in parameter UsrAddDel"; - mysql_close(sock); - return -1; - } - -if (GetInt(row[7], &a, 0) == 0) - ac->priv.tariffChg = a; -else - { - mysql_free_result(res); - errorStr = "Error in parameter ChgTariff"; - mysql_close(sock); - return -1; - } - -if (GetInt(row[8], &a, 0) == 0) - ac->priv.adminChg = a; -else - { - mysql_free_result(res); - errorStr = "Error in parameter ChgAdmin"; - mysql_close(sock); - return -1; - } - -mysql_free_result(res); -mysql_close(sock); -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::AddTariff(const string & name) const -{ -sprintf(qbuf,"INSERT INTO tariffs SET name='%s'", name.c_str()); - -if(MysqlSetQuery(qbuf)) -{ - errorStr = "Couldn't add tariff:\n"; -// errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::DelTariff(const string & name) const -{ -sprintf(qbuf,"DELETE FROM tariffs WHERE name='%s' LIMIT 1", name.c_str()); - -if(MysqlSetQuery(qbuf)) -{ - errorStr = "Couldn't delete tariff: "; -// errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::RestoreTariff(TARIFF_DATA * td, const string & tariffName) const -{ -MYSQL_RES *res; -MYSQL_ROW row; -MYSQL * sock; -sprintf(qbuf,"SELECT * FROM tariffs WHERE name='%s' LIMIT 1", tariffName.c_str()); - -if(MysqlGetQuery(qbuf,sock)) -{ - errorStr = "Couldn't restore Tariff:\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -if (!(res=mysql_store_result(sock))) -{ - errorStr = "Couldn't restore Tariff:\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -string str; -td->tariffConf.name = tariffName; - -row = mysql_fetch_row(res); - -string param; -for (int i = 0; idirPrice[i].hDay, - td->dirPrice[i].mDay, - td->dirPrice[i].hNight, - td->dirPrice[i].mNight); - - strprintf(¶m, "PriceDayA%d", i); - if (GetDouble(row[1+i*8], &td->dirPrice[i].priceDayA, 0.0) < 0) - { - mysql_free_result(res); - errorStr = "Cannot read tariff " + tariffName + ". Parameter " + param; - mysql_close(sock); - return -1; - } - td->dirPrice[i].priceDayA /= (1024*1024); - - strprintf(¶m, "PriceDayB%d", i); - if (GetDouble(row[2+i*8], &td->dirPrice[i].priceDayB, 0.0) < 0) - { - mysql_free_result(res); - errorStr = "Cannot read tariff " + tariffName + ". Parameter " + param; - mysql_close(sock); - return -1; - } - td->dirPrice[i].priceDayB /= (1024*1024); - - strprintf(¶m, "PriceNightA%d", i); - if (GetDouble(row[3+i*8], &td->dirPrice[i].priceNightA, 0.0) < 0) - { - mysql_free_result(res); - errorStr = "Cannot read tariff " + tariffName + ". Parameter " + param; - mysql_close(sock); - return -1; - } - td->dirPrice[i].priceNightA /= (1024*1024); - - strprintf(¶m, "PriceNightB%d", i); - if (GetDouble(row[4+i*8], &td->dirPrice[i].priceNightB, 0.0) < 0) - { - mysql_free_result(res); - errorStr = "Cannot read tariff " + tariffName + ". Parameter " + param; - mysql_close(sock); - return -1; - } - td->dirPrice[i].priceNightB /= (1024*1024); - - strprintf(¶m, "Threshold%d", i); - if (GetInt(row[5+i*8], &td->dirPrice[i].threshold, 0) < 0) - { - mysql_free_result(res); - errorStr = "Cannot read tariff " + tariffName + ". Parameter " + param; - mysql_close(sock); - return -1; - } - - strprintf(¶m, "SinglePrice%d", i); - if (GetInt(row[8+i*8], &td->dirPrice[i].singlePrice, 0) < 0) - { - mysql_free_result(res); - errorStr = "Cannot read tariff " + tariffName + ". Parameter " + param; - mysql_close(sock); - return -1; - } - - strprintf(¶m, "NoDiscount%d", i); - if (GetInt(row[7+i*8], &td->dirPrice[i].noDiscount, 0) < 0) - { - mysql_free_result(res); - errorStr = "Cannot read tariff " + tariffName + ". Parameter " + param; - mysql_close(sock); - return -1; - } - }//main for - -if (GetDouble(row[2+8*DIR_NUM], &td->tariffConf.fee, 0.0) < 0) - { - mysql_free_result(res); - errorStr = "Cannot read tariff " + tariffName + ". Parameter Fee"; - mysql_close(sock); - return -1; - } - -if (GetDouble(row[3+8*DIR_NUM], &td->tariffConf.free, 0.0) < 0) - { - mysql_free_result(res); - errorStr = "Cannot read tariff " + tariffName + ". Parameter Free"; - mysql_close(sock); - return -1; - } - -if (GetDouble(row[1+8*DIR_NUM], &td->tariffConf.passiveCost, 0.0) < 0) - { - mysql_free_result(res); - errorStr = "Cannot read tariff " + tariffName + ". Parameter PassiveCost"; - mysql_close(sock); - return -1; - } - - str = row[4+8*DIR_NUM]; - param = "TraffType"; - - if (str.length() == 0) - { - mysql_free_result(res); - errorStr = "Cannot read tariff " + tariffName + ". Parameter " + param; - mysql_close(sock); - return -1; - } - -if (!strcasecmp(str.c_str(), "up")) - td->tariffConf.traffType = TRAFF_UP; -else - if (!strcasecmp(str.c_str(), "down")) - td->tariffConf.traffType = TRAFF_DOWN; - else - if (!strcasecmp(str.c_str(), "up+down")) - td->tariffConf.traffType = TRAFF_UP_DOWN; - else - if (!strcasecmp(str.c_str(), "max")) - td->tariffConf.traffType = TRAFF_MAX; - else - { - mysql_free_result(res); - errorStr = "Cannot read tariff " + tariffName + ". Parameter TraffType incorrect"; - mysql_close(sock); - return -1; - } - -mysql_free_result(res); -mysql_close(sock); -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::SaveTariff(const TARIFF_DATA & td, const string & tariffName) const -{ -string param; - -string res="UPDATE tariffs SET"; - -for (int i = 0; i < DIR_NUM; i++) - { - strprintf(¶m, " PriceDayA%d=%f,", i, - td.dirPrice[i].priceDayA * pt_mega); - res += param; - - strprintf(¶m, " PriceDayB%d=%f,", i, - td.dirPrice[i].priceDayB * pt_mega); - res += param; - - strprintf(¶m, " PriceNightA%d=%f,", i, - td.dirPrice[i].priceNightA * pt_mega); - res += param; - - strprintf(¶m, " PriceNightB%d=%f,", i, - td.dirPrice[i].priceNightB * pt_mega); - res += param; - - strprintf(¶m, " Threshold%d=%d,", i, - td.dirPrice[i].threshold); - res += param; - - string s; - strprintf(¶m, " Time%d", i); - - strprintf(&s, "%0d:%0d-%0d:%0d", - td.dirPrice[i].hDay, - td.dirPrice[i].mDay, - td.dirPrice[i].hNight, - td.dirPrice[i].mNight); - - res += (param + "='" + s + "',"); - - strprintf(¶m, " NoDiscount%d=%d,", i, - td.dirPrice[i].noDiscount); - res += param; - - strprintf(¶m, " SinglePrice%d=%d,", i, - td.dirPrice[i].singlePrice); - res += param; - } - -strprintf(¶m, " PassiveCost=%f,", td.tariffConf.passiveCost); -res += param; - -strprintf(¶m, " Fee=%f,", td.tariffConf.fee); -res += param; - -strprintf(¶m, " Free=%f,", td.tariffConf.free); -res += param; - -switch (td.tariffConf.traffType) - { - case TRAFF_UP: - res += " TraffType='up'"; - break; - case TRAFF_DOWN: - res += " TraffType='down'"; - break; - case TRAFF_UP_DOWN: - res += " TraffType='up+down'"; - break; - case TRAFF_MAX: - res += " TraffType='max'"; - break; - } -strprintf(¶m, " WHERE name='%s' LIMIT 1", tariffName.c_str()); -res += param; - -if(MysqlSetQuery(res.c_str())) -{ - errorStr = "Couldn't save admin:\n"; - //errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::WriteDetailedStat(const map * statTree, - time_t lastStat, - const string & login) const -{ -string res, stTime, endTime, tempStr; -time_t t; -tm * lt; - -t = time(NULL); -lt = localtime(&t); - -if (lt->tm_hour == 0 && lt->tm_min <= 5) - { - t -= 3600 * 24; - lt = localtime(&t); - } - -MYSQL_RES* result; -MYSQL * sock; -strprintf(&tempStr, "detailstat_%02d_%4d", lt->tm_mon+1, lt->tm_year+1900); - -if (!(sock=MysqlConnect())){ - mysql_close(sock); - return -1; -} - -if (!(result=mysql_list_tables(sock,tempStr.c_str() ))) -{ - errorStr = "Couldn't get table " + tempStr + ":\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -unsigned int num_rows = mysql_num_rows(result); - -mysql_free_result(result); - -if (num_rows < 1) -{ - sprintf(qbuf,"CREATE TABLE detailstat_%02d_%4d (login VARCHAR(40) DEFAULT '',"\ - "day TINYINT DEFAULT 0,startTime TIME,endTime TIME,"\ - "IP VARCHAR(17) DEFAULT '',dir INT DEFAULT 0,"\ - "down BIGINT DEFAULT 0,up BIGINT DEFAULT 0, cash DOUBLE DEFAULT 0.0, INDEX (login), INDEX(dir), INDEX(day), INDEX(IP))", - lt->tm_mon+1, lt->tm_year+1900); - - if(MysqlQuery(qbuf,sock)) - { - errorStr = "Couldn't create WriteDetailedStat table:\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; - } -} - -struct tm * lt1; -struct tm * lt2; - -lt1 = localtime(&lastStat); - -int h1, m1, s1; -int h2, m2, s2; - -h1 = lt1->tm_hour; -m1 = lt1->tm_min; -s1 = lt1->tm_sec; - -lt2 = localtime(&t); - -h2 = lt2->tm_hour; -m2 = lt2->tm_min; -s2 = lt2->tm_sec; - -strprintf(&stTime, "%02d:%02d:%02d", h1, m1, s1); -strprintf(&endTime, "%02d:%02d:%02d", h2, m2, s2); - -strprintf(&res,"INSERT INTO detailstat_%02d_%4d SET login='%s',"\ - "day=%d,startTime='%s',endTime='%s',", - lt->tm_mon+1, lt->tm_year+1900, - login.c_str(), - lt->tm_mday, - stTime.c_str(), - endTime.c_str() - ); - -int retRes; -map::const_iterator stIter; -stIter = statTree->begin(); - -while (stIter != statTree->end()) - { - strprintf(&tempStr,"IP='%s', dir=%d, down=%lld, up=%lld, cash=%f", - inet_ntostr(stIter->first.ip), - stIter->first.dir, - stIter->second.down, - stIter->second.up, - stIter->second.cash - ); - - if( (retRes = MysqlQuery((res+tempStr).c_str(),sock)) ) - { - errorStr = "Couldn't insert data in WriteDetailedStat:\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; - } - - result=mysql_store_result(sock); - if(result) - mysql_free_result(result); - - ++stIter; - } -mysql_close(sock); -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::AddMessage(STG_MSG * msg, const string & login) const -{ -struct timeval tv; - -gettimeofday(&tv, NULL); - -msg->header.id = ((long long)tv.tv_sec) * 1000000 + ((long long)tv.tv_usec); - -sprintf(qbuf,"INSERT INTO messages SET login='%s', id=%lld", - login.c_str(), - (long long)msg->header.id - ); - -if(MysqlSetQuery(qbuf)) -{ - errorStr = "Couldn't add message:\n"; - //errorStr += mysql_error(sock); - return -1; -} - -return EditMessage(*msg, login); -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::EditMessage(const STG_MSG & msg, const string & login) const -{ -string res; - -strprintf(&res,"UPDATE messages SET type=%d, lastSendTime=%u, creationTime=%u, "\ - "showTime=%u, stgRepeat=%d, repeatPeriod=%u, text='%s' "\ - "WHERE login='%s' AND id=%lld LIMIT 1", - msg.header.type, - msg.header.lastSendTime, - msg.header.creationTime, - msg.header.showTime, - msg.header.repeat, - msg.header.repeatPeriod, - (ReplaceStr(msg.text,badSyms,repSym)).c_str(), - login.c_str(), - (long long)msg.header.id - ); - -if(MysqlSetQuery(res.c_str())) -{ - errorStr = "Couldn't edit message:\n"; - //errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::GetMessage(uint64_t id, STG_MSG * msg, const string & login) const -{ -MYSQL_RES *res; -MYSQL_ROW row; -MYSQL * sock; - -sprintf(qbuf,"SELECT * FROM messages WHERE login='%s' AND id=%lld LIMIT 1", - login.c_str(), id); - -if(MysqlGetQuery(qbuf,sock)) -{ - errorStr = "Couldn't GetMessage:\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -if (!(res=mysql_store_result(sock))) -{ - errorStr = "Couldn't GetMessage:\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -row = mysql_fetch_row(res); - -if(row[2]&&str2x(row[2], msg->header.type)) -{ - mysql_free_result(res); - errorStr = "Invalid value in message header for user: " + login; - mysql_close(sock); - return -1; -} - -if(row[3] && str2x(row[3], msg->header.lastSendTime)) -{ - mysql_free_result(res); - errorStr = "Invalid value in message header for user: " + login; - mysql_close(sock); - return -1; -} - -if(row[4] && str2x(row[4], msg->header.creationTime)) -{ - mysql_free_result(res); - errorStr = "Invalid value in message header for user: " + login; - mysql_close(sock); - return -1; -} - -if(row[5] && str2x(row[5], msg->header.showTime)) -{ - mysql_free_result(res); - errorStr = "Invalid value in message header for user: " + login; - mysql_close(sock); - return -1; -} - -if(row[6] && str2x(row[6], msg->header.repeat)) -{ - mysql_free_result(res); - errorStr = "Invalid value in message header for user: " + login; - mysql_close(sock); - return -1; -} - -if(row[7] && str2x(row[7], msg->header.repeatPeriod)) -{ - mysql_free_result(res); - errorStr = "Invalid value in message header for user: " + login; - mysql_close(sock); - return -1; -} - -msg->header.id = id; -msg->text = row[8]; - -mysql_free_result(res); -mysql_close(sock); -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::DelMessage(uint64_t id, const string & login) const -{ -sprintf(qbuf,"DELETE FROM messages WHERE login='%s' AND id=%lld LIMIT 1", - login.c_str(),(long long)id); - -if(MysqlSetQuery(qbuf)) -{ - errorStr = "Couldn't delete Message:\n"; - //errorStr += mysql_error(sock); - return -1; -} - -return 0; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::GetMessageHdrs(vector * hdrsList, const string & login) const -{ -MYSQL_RES *res; -MYSQL_ROW row; -MYSQL * sock; -sprintf(qbuf,"SELECT * FROM messages WHERE login='%s'", login.c_str()); - -if(MysqlGetQuery(qbuf,sock)) -{ - errorStr = "Couldn't GetMessageHdrs:\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -if (!(res=mysql_store_result(sock))) -{ - errorStr = "Couldn't GetMessageHdrs:\n"; - errorStr += mysql_error(sock); - mysql_close(sock); - return -1; -} - -unsigned int i, num_rows = mysql_num_rows(res); -long long int unsigned id; - -for (i=0; ipush_back(hdr); -} - -mysql_free_result(res); -mysql_close(sock); -return 0; -} -//----------------------------------------------------------------------------- - -int MYSQL_STORE::MysqlSetQuery(const char * Query) const { - - MYSQL * sock; - int ret=MysqlGetQuery(Query,sock); - mysql_close(sock); - return ret; -} -//----------------------------------------------------------------------------- -int MYSQL_STORE::MysqlGetQuery(const char * Query,MYSQL * & sock) const { - if (!(sock=MysqlConnect())) { - return -1; - } - return MysqlQuery(Query,sock); -} -//----------------------------------------------------------------------------- -MYSQL * MYSQL_STORE::MysqlConnect() const { - MYSQL * sock; - if ( !(sock=mysql_init(NULL)) ){ - errorStr= "mysql init susck\n"; - return NULL; - } - if (!(sock = mysql_real_connect(sock,storeSettings.GetDBHost().c_str(), - storeSettings.GetDBUser().c_str(),storeSettings.GetDBPassword().c_str(), - 0,0,NULL,0))) - { - errorStr = "Couldn't connect to mysql engine! With error:\n"; - errorStr += mysql_error(sock); - return NULL; - } - else{ - if(mysql_select_db(sock, storeSettings.GetDBName().c_str())){ - errorStr = "Database lost !\n"; - return NULL; - } - } - return sock; -} -//----------------------------------------------------------------------------- diff --git a/projects/stargazer/plugins/store/mysql/.#mysql_store.h.1.1.1.1 b/projects/stargazer/plugins/store/mysql/.#mysql_store.h.1.1.1.1 deleted file mode 100644 index 016bde54..00000000 --- a/projects/stargazer/plugins/store/mysql/.#mysql_store.h.1.1.1.1 +++ /dev/null @@ -1,143 +0,0 @@ - /* - $Revision: 1.1.1.1 $ - $Date: 2007/11/17 18:28:39 $ - */ - - -#ifndef FILE_STORE_H -#define FILE_STORE_H - -#include - -#include "base_settings.h" -#include "base_store.h" -#include "user_traff.h" -#include - -using namespace std; -//----------------------------------------------------------------------------- -extern "C" BASE_STORE * GetStore(); -//----------------------------------------------------------------------------- -class MYSQL_STORE_SETTINGS//: public BASE_SETTINGS -{ -public: - MYSQL_STORE_SETTINGS(); - virtual ~MYSQL_STORE_SETTINGS(); - virtual int ParseSettings(const MODULE_SETTINGS & s); - virtual const string & GetStrError() const; - - string GetDBUser() const; - string GetDBPassword() const; - string GetDBHost() const; - string GetDBName() const; - -private: - const MODULE_SETTINGS * settings; - - int ParseParam(const vector & moduleParams, - const string & name, string & result); - - string errorStr; - - string dbUser; - string dbPass; - string dbName; - string dbHost; -}; -//----------------------------------------------------------------------------- -class MYSQL_STORE: public BASE_STORE -{ -public: - MYSQL_STORE(); - virtual ~MYSQL_STORE(); - virtual const string & GetStrError() const; - - //User - virtual int GetUsersList(vector * usersList) const; - virtual int AddUser(const string & login) const; - virtual int DelUser(const string & login) const; - virtual int SaveUserStat(const USER_STAT & stat, const string & login) const; - virtual int SaveUserConf(const USER_CONF & conf, const string & login) const; - virtual int RestoreUserStat(USER_STAT * stat, const string & login) const; - virtual int RestoreUserConf(USER_CONF * conf, const string & login) const; - virtual int WriteUserChgLog(const string & login, - const string & admLogin, - uint32_t admIP, - const string & paramName, - const string & oldValue, - const string & newValue, - const string & message = "") const; - virtual int WriteUserConnect(const string & login, uint32_t ip) const; - virtual int WriteUserDisconnect(const string & login, - const DIR_TRAFF & up, - const DIR_TRAFF & down, - const DIR_TRAFF & sessionUp, - const DIR_TRAFF & sessionDown, - double cash, - double freeMb) const; - - virtual int WriteDetailedStat(const map * statTree, - time_t lastStat, - const string & login) const; - - virtual int AddMessage(STG_MSG * msg, const string & login) const; - virtual int EditMessage(const STG_MSG & msg, const string & login) const; - virtual int GetMessage(uint64_t id, STG_MSG * msg, const string & login) const; - virtual int DelMessage(uint64_t id, const string & login) const; - virtual int GetMessageHdrs(vector * hdrsList, const string & login) const; - - virtual int SaveMonthStat(const USER_STAT & stat, int month, int year, const string & login) const; - - //Admin - virtual int GetAdminsList(vector * adminsList) const; - virtual int AddAdmin(const string & login) const; - virtual int DelAdmin(const string & login) const; - virtual int RestoreAdmin(ADMIN_CONF * ac, const string & login) const; - virtual int SaveAdmin(const ADMIN_CONF & ac) const; - - //Tariff - virtual int GetTariffsList(vector * tariffsList) const; - virtual int AddTariff(const string & name) const; - virtual int DelTariff(const string & name) const; - virtual int SaveTariff(const TARIFF_DATA & td, const string & tariffName) const; - virtual int RestoreTariff(TARIFF_DATA * td, const string & tariffName) const; - - //Corparation - virtual int GetCorpsList(vector * corpsList) const {return 0;}; - virtual int SaveCorp(const CORP_CONF & cc) const {return 0;}; - virtual int RestoreCorp(CORP_CONF * cc, const string & name) const {return 0;}; - virtual int AddCorp(const string & name) const {return 0;}; - virtual int DelCorp(const string & name) const {return 0;}; - - // Services - virtual int GetServicesList(vector * corpsList) const {return 0;}; - virtual int SaveService(const SERVICE_CONF & sc) const {return 0;}; - virtual int RestoreService(SERVICE_CONF * sc, const string & name) const {return 0;}; - virtual int AddService(const string & name) const {return 0;}; - virtual int DelService(const string & name) const {return 0;}; - - //virtual BASE_SETTINGS * GetStoreSettings(); - virtual void SetSettings(const MODULE_SETTINGS & s); - virtual int ParseSettings(); - virtual const string & GetVersion() const; - -private: - virtual int WriteLogString(const string & str, const string & login) const; - int GetAllParams(vector * ParamList, const string & table, const string & name) const; - int CheckAllTables(MYSQL * sock); - bool IsTablePresent(const string & str,MYSQL * sock); - mutable string errorStr; -// int Reconnect(); - int MysqlQuery(const char* sQuery,MYSQL * sock) const; - int MysqlGetQuery(const char * Query,MYSQL * & sock) const; - int MysqlSetQuery(const char * Query) const; - MYSQL * MysqlConnect() const ; - string version; - MYSQL_STORE_SETTINGS storeSettings; - MODULE_SETTINGS settings; - //mutable MYSQL mysql; - //mutable MYSQL* sock; -}; -//----------------------------------------------------------------------------- - -#endif //FILE_STORE_H -- 2.44.2