//-----------------------------------------------------------------------------
FILES_STORE_SETTINGS::FILES_STORE_SETTINGS()
: settings(NULL),
+ errorStr(),
+ workDir(),
+ usersDir(),
+ adminsDir(),
+ tariffsDir(),
+ statMode(0),
+ statUID(0),
+ statGID(0),
+ confMode(0),
+ confUID(0),
+ confGID(0),
+ userLogMode(0),
+ userLogUID(0),
+ userLogGID(0),
removeBak(true),
readBak(true)
{
}
//-----------------------------------------------------------------------------
-FILES_STORE_SETTINGS::~FILES_STORE_SETTINGS()
-{
-}
-//-----------------------------------------------------------------------------
int FILES_STORE_SETTINGS::ParseOwner(const vector<PARAM_VALUE> & moduleParams, const string & owner, uid_t * uid)
{
PARAM_VALUE pv;
return 0;
}
//-----------------------------------------------------------------------------
-string FILES_STORE_SETTINGS::GetWorkDir() const
-{
-return workDir;
-}
-//-----------------------------------------------------------------------------
-string FILES_STORE_SETTINGS::GetUsersDir() const
-{
-return usersDir;
-}
-//-----------------------------------------------------------------------------
-string FILES_STORE_SETTINGS::GetAdminsDir() const
-{
-return adminsDir;
-}
-//-----------------------------------------------------------------------------
-string FILES_STORE_SETTINGS::GetTariffsDir() const
-{
-return tariffsDir;
-}
-//-----------------------------------------------------------------------------
-mode_t FILES_STORE_SETTINGS::GetStatMode() const
-{
-return statMode;
-}
-//-----------------------------------------------------------------------------
mode_t FILES_STORE_SETTINGS::GetStatModeDir() const
{
mode_t mode = statMode;
return mode;
}
//-----------------------------------------------------------------------------
-uid_t FILES_STORE_SETTINGS::GetStatUID() const
-{
-return statUID;
-}
-//-----------------------------------------------------------------------------
-gid_t FILES_STORE_SETTINGS::GetStatGID() const
-{
-return statGID;
-}
-//-----------------------------------------------------------------------------
-mode_t FILES_STORE_SETTINGS::GetConfMode() const
-{
-return confMode;
-}
-//-----------------------------------------------------------------------------
mode_t FILES_STORE_SETTINGS::GetConfModeDir() const
{
mode_t mode = confMode;
return mode;
}
//-----------------------------------------------------------------------------
-uid_t FILES_STORE_SETTINGS::GetConfUID() const
-{
-return confUID;
-}
-//-----------------------------------------------------------------------------
-gid_t FILES_STORE_SETTINGS::GetConfGID() const
-{
-return confGID;
-}
-//-----------------------------------------------------------------------------
-mode_t FILES_STORE_SETTINGS::GetLogMode() const
-{
-return userLogMode;
-}
-//-----------------------------------------------------------------------------
-uid_t FILES_STORE_SETTINGS::GetLogUID() const
-{
-return userLogUID;
-}
-//-----------------------------------------------------------------------------
-gid_t FILES_STORE_SETTINGS::GetLogGID() const
-{
-return userLogGID;
-}
-//-----------------------------------------------------------------------------
-bool FILES_STORE_SETTINGS::GetRemoveBak() const
-{
-return removeBak;
-}
-//-----------------------------------------------------------------------------
-bool FILES_STORE_SETTINGS::GetReadBak() const
-{
-return readBak;
-}
-//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
FILES_STORE::FILES_STORE()
+ : errorStr(),
+ version("file_store v.1.04"),
+ storeSettings(),
+ settings(),
+ mutex(),
+ logger(GetPluginLogger(GetStgLogger(), "store_files"))
{
-version = "file_store v.1.04";
-
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&mutex, &attr);
};
//-----------------------------------------------------------------------------
-FILES_STORE::~FILES_STORE()
-{
-
-};
-//-----------------------------------------------------------------------------
-void FILES_STORE::SetSettings(const MODULE_SETTINGS & s)
-{
-settings = s;
-}
-//-----------------------------------------------------------------------------
int FILES_STORE::ParseSettings()
{
int ret = storeSettings.ParseSettings(settings);
return ret;
}
//-----------------------------------------------------------------------------
-const string & FILES_STORE::GetStrError() const
-{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-return errorStr;
-}
-//-----------------------------------------------------------------------------
-const string & FILES_STORE::GetVersion() const
-{
-return version;
-}
-//-----------------------------------------------------------------------------
int FILES_STORE::GetUsersList(vector<string> * userList) const
{
vector<string> files;
errorStr += strerror(errno);
errorStr += "'";
printfd(__FILE__, "FILES_STORE::RemoveDir() - unlink failed. Message: '%s'\n", strerror(errno));
+ closedir(d);
return -1;
}
}
{
if (RemoveDir(str.c_str()))
{
+ closedir(d);
return -1;
}
printfd(__FILE__, "FILES_STORE::AddUser - fopen failed. Message: '%s'\n", strerror(errno));
return -1;
}
-/*f = fopen(fileName.c_str(), "wt");
-if (f)
- {
- if (fprintf(f, "\n") < 0)
- {
- STG_LOCKER lock(&mutex, __FILE__, __LINE__);
- errorStr = "fprintf failed. Message: '";
- errorStr += strerror(errno);
- errorStr += "'";
- printfd(__FILE__, "FILES_STORE::AddUser - fprintf failed. Message: '%s'\n", strerror(errno));
- return -1;
- }
- fclose(f);
- }
-else
- {
- STG_LOCKER lock(&mutex, __FILE__, __LINE__);
- errorStr = "Cannot create file \"" + fileName + "\'";
- printfd(__FILE__, "FILES_STORE::AddUser - fopen failed. Message: '%s'\n", strerror(errno));
- return -1;
- }*/
strprintf(&fileName, "%s%s/stat", storeSettings.GetUsersDir().c_str(), login.c_str());
if (Touch(fileName))
printfd(__FILE__, "FILES_STORE::AddUser - fopen failed. Message: '%s'\n", strerror(errno));
return -1;
}
-/*f = fopen(fileName.c_str(), "wt");
-if (f)
- {
- if (fprintf(f, "\n") < 0)
- {
- STG_LOCKER lock(&mutex, __FILE__, __LINE__);
- errorStr = "fprintf failed. Message: '";
- errorStr += strerror(errno);
- errorStr += "'";
- printfd(__FILE__, "FILES_STORE::AddUser - fprintf failed. Message: '%s'\n", strerror(errno));
- return -1;
- }
- fclose(f);
- }
-else
- {
- STG_LOCKER lock(&mutex, __FILE__, __LINE__);
- errorStr = "Cannot create file \"" + fileName + "\'";
- printfd(__FILE__, "FILES_STORE::AddUser - fopen failed. Message: '%s'\n", strerror(errno));
- return -1;
- }*/
return 0;
}
//-----------------------------------------------------------------------------
for (size_t i = 0; i < DIR_NUM; i++)
{
char dirName[3];
- snprintf(dirName, 3, "U%d", i);
+ snprintf(dirName, 3, "U%llu", (unsigned long long)i);
s.WriteInt(dirName, stat.up[i]); // Classic
s2.WriteInt(dirName, stat.up[i]); // New
- snprintf(dirName, 3, "D%d", i);
+ snprintf(dirName, 3, "D%llu", (unsigned long long)i);
s.WriteInt(dirName, stat.down[i]); // Classic
s2.WriteInt(dirName, stat.down[i]); // New
}
cf.WriteInt("UsrAddDel", ac.priv.userAddDel);
cf.WriteInt("ChgTariff", ac.priv.tariffChg);
cf.WriteInt("ChgAdmin", ac.priv.adminChg);
+ cf.WriteInt("ChgService", ac.priv.serviceChg);
+ cf.WriteInt("ChgCorp", ac.priv.corpChg);
}
return 0;
return -1;
}
+if (cf.ReadInt("ChgService", &a, 0) == 0)
+ ac->priv.serviceChg = a;
+else
+ ac->priv.serviceChg = 0;
+
+if (cf.ReadInt("ChgCorp", &a, 0) == 0)
+ ac->priv.corpChg = a;
+else
+ ac->priv.corpChg = 0;
+
return 0;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int FILES_STORE::AddMessage(STG_MSG * msg, const string & login) const
{
-//ðÒÏ×ÅÒÉÔØ ÅÓÔØ ÌÉ ÄÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÏÂÝÅÎÉÊ. åÓÌÉ ÎÅÔ - ÓÏÚÄÁÔØ.
-//úÁÔÅÍ ÐÏÌÏÖÉÔØ ÓÏÏÂÝÅÎÉÅ Ó ÉÍÅÎÅÍ ÆÁÊÌÁ - ×ÒÅÍÅÎÎOÊ ÍÅÔËÏÊ. úÁÐÉÓÁÔØ ÔÕÄÁ
-//ÔÅËÓÔ É ÐÒÉÏÒÉÔÅÔ.
-
string fn;
string dn;
struct timeval tv;
//-----------------------------------------------------------------------------
int FILES_STORE::EditMessage(const STG_MSG & msg, const string & login) const
{
-//ðÒÏ×ÅÒÉÔØ ÅÓÌÔØ ÌÉ ÄÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÏÂÝÅÎÉÊ. åÓÌÉ ÎÅÔ - ÓÏÚÄÁÔØ.
-//úÁÔÅÍ ÐÏÌÏÖÉÔØ ÓÏÏÂÝÅÎÉÅ Ó ÉÍÅÎÅÍ ÆÁÊÌÁ - ×ÒÅÍÅÎÎOÊ ÍÅÔËÏÊ. úÁÐÉÓÁÔØ ÔÕÄÁ
-//ÔÅËÓÔ É ÐÒÉÏÒÉÔÅÔ.
-
string fileName;
FILE * msgFile;
{
string dn(storeSettings.GetUsersDir() + "/" + login + "/messages/");
-//hdrsList->resize(messages.size());
-
if (access(dn.c_str(), F_OK) != 0)
{
return 0;
//-----------------------------------------------------------------------------
int GetFileList(vector<string> * fileList, const string & directory, mode_t mode, const string & ext)
{
-// æÕÎËÃÉÑ ÐÒÏÓÍÁÔÒÉ×ÁÅÔ ÓÏÄÅÒÖÉÍÏÅ ÄÉÒÅËÔÏÒÉÉ
-
DIR * d = opendir(directory.c_str());
if (!d)