//-----------------------------------------------------------------------------
int FIREBIRD_STORE::GetUsersList(std::vector<std::string> * usersList) const
{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amRead, til, tlr);
IBPP::Statement st = IBPP::StatementFactory(db, tr);
//-----------------------------------------------------------------------------
int FIREBIRD_STORE::AddUser(const std::string & name) const
{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
IBPP::Statement st = IBPP::StatementFactory(db, tr);
//-----------------------------------------------------------------------------
int FIREBIRD_STORE::DelUser(const std::string & login) const
{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
IBPP::Statement st = IBPP::StatementFactory(db, tr);
int FIREBIRD_STORE::SaveUserStat(const USER_STAT & stat,
const std::string & login) const
{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
return SaveStat(stat, login);
}
//-----------------------------------------------------------------------------
int FIREBIRD_STORE::SaveStat(const USER_STAT & stat,
- const std::string & login,
- int year,
- int month) const
+ const std::string & login,
+ int year,
+ int month) const
{
-
IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
IBPP::Statement st = IBPP::StatementFactory(db, tr);
-IBPP::Timestamp actTime;
-IBPP::Timestamp addTime;
-IBPP::Date dt;
-int i;
-int32_t sid, uid;
-
try
{
tr->Start();
tr->Rollback();
return -1;
}
- st->Get(1, uid);
+ int32_t uid = Get<int32_t>(st, 1);
st->Close();
st->Prepare("select first 1 pk_stat from tb_stats where fk_user = ? order by stats_date desc");
st->Set(1, uid);
printfd(__FILE__, "No stat info for user '%s'\n", login.c_str());
return -1;
}
+ int32_t sid;
st->Get(1, sid);
st->Close();
+ IBPP::Timestamp actTime;
time_t2ts(stat.lastActivityTime, &actTime);
+ IBPP::Timestamp addTime;
time_t2ts(stat.lastCashAddTime, &addTime);
+ IBPP::Date dt;
if (year != 0)
ym2date(year, month, &dt);
else
st->Execute();
st->Close();
- for(i = 0; i < DIR_NUM; i++)
+ for(int i = 0; i < DIR_NUM; i++)
{
st->Prepare("update tb_stats_traffic set \
upload = ?, \
download = ? \
where fk_stat = ? and dir_num = ?");
- st->Set(1, (int64_t)stat.up[i]);
- st->Set(2, (int64_t)stat.down[i]);
+ st->Set(1, (int64_t)stat.monthUp[i]);
+ st->Set(2, (int64_t)stat.monthDown[i]);
st->Set(3, sid);
st->Set(4, i);
st->Execute();
int FIREBIRD_STORE::SaveUserConf(const USER_CONF & conf,
const std::string & login) const
{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
IBPP::Statement st = IBPP::StatementFactory(db, tr);
-int i;
-int32_t uid;
-IBPP::Timestamp creditExpire;
-std::vector<std::string>::const_iterator it;
-
try
{
tr->Start();
tr->Rollback();
return -1;
}
+ int32_t uid;
st->Get(1, uid);
st->Close();
+ IBPP::Timestamp creditExpire;
time_t2ts(conf.creditExpire, &creditExpire);
st->Prepare("update tb_users set \
st->Prepare("insert into tb_users_services (fk_user, fk_service) \
values (?, (select pk_service from tb_services \
where name = ?))");
- for(it = conf.service.begin(); it != conf.service.end(); ++it)
+ for(std::vector<std::string>::const_iterator it = conf.service.begin(); it != conf.service.end(); ++it)
{
st->Set(1, uid);
st->Set(2, *it);
st->Execute();
st->Close();
- i = 0;
+ int i = 0;
st->Prepare("insert into tb_users_data (fk_user, data, num) values (?, ?, ?)");
- for (it = conf.userdata.begin(); it != conf.userdata.end(); ++it)
+ for (std::vector<std::string>::const_iterator it = conf.userdata.begin(); it != conf.userdata.end(); ++it)
{
st->Set(1, uid);
st->Set(2, *it);
st->Execute();
st->Prepare("insert into tb_allowed_ip (fk_user, ip, mask) values (?, ?, ?)");
- for(i = 0; i < conf.ips.Count(); i++)
+ for(size_t i = 0; i < conf.ips.Count(); i++)
{
st->Set(1, uid);
st->Set(2, (int32_t)conf.ips[i].ip);
}
tr->Commit();
}
-
catch (IBPP::Exception & ex)
{
tr->Rollback();
int FIREBIRD_STORE::RestoreUserStat(USER_STAT * stat,
const std::string & login) const
{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amRead, til, tlr);
IBPP::Statement st = IBPP::StatementFactory(db, tr);
-IBPP::Timestamp actTime, addTime;
-int i, dir;
-int32_t uid, sid, passiveTime;
-
try
{
tr->Start();
printfd(__FILE__, "User '%s' not found in database\n", login.c_str());
return -1;
}
+ int32_t uid;
st->Get(1, uid);
st->Close();
return -1;
}
+ int32_t sid;
st->Get(1, sid);
st->Get(2, stat->cash);
st->Get(3, stat->freeMb);
+ IBPP::Timestamp actTime;
st->Get(4, actTime);
st->Get(5, stat->lastCashAdd);
+ IBPP::Timestamp addTime;
st->Get(6, addTime);
+ int32_t passiveTime;
st->Get(7, passiveTime);
stat->passiveTime = passiveTime;
st->Prepare("select * from tb_stats_traffic where fk_stat = ?");
st->Set(1, sid);
st->Execute();
- for(i = 0; i < DIR_NUM; i++)
+ for(int i = 0; i < DIR_NUM; i++)
{
if (st->Fetch())
{
+ int dir;
st->Get(3, dir);
- st->Get(5, (int64_t &)stat->up[dir]);
- st->Get(4, (int64_t &)stat->down[dir]);
+ st->Get(5, (int64_t &)stat->monthUp[dir]);
+ st->Get(4, (int64_t &)stat->monthDown[dir]);
}
else
{
int FIREBIRD_STORE::RestoreUserConf(USER_CONF * conf,
const std::string & login) const
{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amRead, til, tlr);
IBPP::Statement st = IBPP::StatementFactory(db, tr);
-int32_t uid;
-int i;
-IBPP::Timestamp timestamp;
-IP_MASK im;
-std::string name;
-bool test;
-
try
{
tr->Start();
tr->Rollback();
return -1;
}
+ int32_t uid;
st->Get(1, uid);
// Getting base config
st->Get(2, conf->address);
+ bool test;
st->Get(3, test);
conf->alwaysOnline = test;
st->Get(4, conf->credit);
+ IBPP::Timestamp timestamp;
st->Get(5, timestamp);
conf->creditExpire = ts2time_t(timestamp);
st->Execute();
while (st->Fetch())
{
+ std::string name;
st->Get(1, name);
conf->service.push_back(name);
}
st->Execute();
while (st->Fetch())
{
+ int i;
st->Get(2, i);
st->Get(1, conf->userdata[i]);
}
where fk_user = ?");
st->Set(1, uid);
st->Execute();
- conf->ips.Erase();
+ USER_IPS ips;
while (st->Fetch())
{
+ IP_MASK im;
st->Get(1, (int32_t &)im.ip);
st->Get(2, (int32_t &)im.mask);
- conf->ips.Add(im);
+ ips.Add(im);
}
+ conf->ips = ips;
tr->Commit();
}
-
catch (IBPP::Exception & ex)
{
tr->Rollback();
const std::string & newValue,
const std::string & message = "") const
{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
IBPP::Statement st = IBPP::StatementFactory(db, tr);
//-----------------------------------------------------------------------------
int FIREBIRD_STORE::WriteUserConnect(const std::string & login, uint32_t ip) const
{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
IBPP::Statement st = IBPP::StatementFactory(db, tr);
double /*freeMb*/,
const std::string & /*reason*/) const
{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
IBPP::Statement st = IBPP::StatementFactory(db, tr);
IBPP::Timestamp now;
now.Now();
-int32_t id;
-int i;
-
try
{
tr->Start();
st->Set(1, login);
st->Set(2, now);
st->Execute();
+ int32_t id;
st->Get(1, id);
st->Prepare("insert into tb_sessions_data \
(fk_session_log, dir_num, session_upload, \
session_download, month_upload, month_download) \
values (?, ?, ?, ?, ?, ?)");
- for(i = 0; i < DIR_NUM; i++)
+ for(int i = 0; i < DIR_NUM; i++)
{
st->Set(1, id);
st->Set(2, i);
time_t lastStat,
const std::string & login) const
{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
IBPP::Statement st = IBPP::StatementFactory(db, tr);
//-----------------------------------------------------------------------------
int FIREBIRD_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year, const std::string & login) const
{
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
IBPP::Statement st = IBPP::StatementFactory(db, tr);
IBPP::Date nowDate;
nowDate.Today();
now.Now();
-int32_t id;
-int i;
if (SaveStat(stat, login, year, month))
{
st->Set(4, nowDate);
st->Execute();
+ int32_t id;
st->Get(1, id);
st->Close();
(fk_stat, dir_num, upload, download) \
values (?, ?, 0, 0)");
- for(i = 0; i < DIR_NUM; i++)
+ for(int i = 0; i < DIR_NUM; i++)
{
st->Set(1, id);
st->Set(2, i);
tr->Commit();
}
-
catch (IBPP::Exception & ex)
{
tr->Rollback();