users(u),
property(s->GetScriptsDir()),
WriteServLog(GetStgLogger()),
+ lastScanMessages(0),
login(),
id(0),
__connected(0),
connected(__connected),
+ enabledDirs(),
userIDGenerator(),
__currIP(0),
currIP(__currIP),
store(st),
tariffs(t),
tariff(NULL),
+ traffStat(),
+ traffStatSaved(),
+ settings(s),
+ authorizedBy(),
+ messages(),
+ deleted(false),
+ lastWriteStat(0),
+ lastWriteDetailedStat(0),
cash(property.cash),
up(property.up),
down(property.down),
userdata7(property.userdata7),
userdata8(property.userdata8),
userdata9(property.userdata9),
+ sessionUpload(),
+ sessionDownload(),
passiveNotifier(this),
tariffNotifier(this),
cashNotifier(this),
- ipNotifier(this)
+ ipNotifier(this),
+ mutex(),
+ errorStr()
{
-settings = s;
-
password = "*_EMPTY_PASSWORD_*";
tariffName = NO_TARIFF_NAME;
-connected = 0;
ips = StrToIPS("*");
-deleted = false;
lastWriteStat = stgTime + random() % settings->GetStatWritePeriod();
lastWriteDetailedStat = stgTime;
property.cash.AddBeforeNotifier(&cashNotifier);
ips.AddAfterNotifier(&ipNotifier);
-lastScanMessages = 0;
-
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
}
#else
USER_IMPL::USER_IMPL(const SETTINGS_IMPL * s,
- const STORE * st,
- const TARIFFS * t,
- const ADMIN * a,
- const USERS * u)
+ const STORE * st,
+ const TARIFFS * t,
+ const ADMIN * a,
+ const USERS * u)
: USER(),
users(u),
property(s->GetScriptsDir()),
WriteServLog(GetStgLogger()),
+ lastScanMessages(0),
login(),
id(0),
__connected(0),
connected(__connected),
+ enabledDirs(),
userIDGenerator(),
__currIP(0),
currIP(__currIP),
store(st),
tariffs(t),
tariff(NULL),
+ traffStat(),
+ traffStatSaved(),
+ settings(s),
+ authorizedBy(),
+ messages(),
+ deleted(false),
+ lastWriteStat(0),
+ lastWriteDetailedStat(0),
cash(property.cash),
up(property.up),
down(property.down),
userdata7(property.userdata7),
userdata8(property.userdata8),
userdata9(property.userdata9),
+ sessionUpload(),
+ sessionDownload(),
passiveNotifier(this),
tariffNotifier(this),
cashNotifier(this),
- ipNotifier(this)
+ ipNotifier(this),
+ mutex(),
+ errorStr()
{
-settings = s;
-
password = "*_EMPTY_PASSWORD_*";
tariffName = NO_TARIFF_NAME;
-connected = 0;
ips = StrToIPS("*");
-deleted = false;
lastWriteStat = stgTime + random() % settings->GetStatWritePeriod();
lastWriteDetailedStat = stgTime;
property.cash.AddBeforeNotifier(&cashNotifier);
ips.AddAfterNotifier(&ipNotifier);
-lastScanMessages = 0;
-
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
users(u.users),
property(u.settings->GetScriptsDir()),
WriteServLog(GetStgLogger()),
+ lastScanMessages(0),
login(u.login),
id(u.id),
- __connected(u.__connected),
+ __connected(0),
connected(__connected),
+ enabledDirs(),
+ userIDGenerator(u.userIDGenerator),
__currIP(u.__currIP),
currIP(__currIP),
lastIPForDisconnect(0),
store(u.store),
tariffs(u.tariffs),
tariff(u.tariff),
+ traffStat(u.traffStat),
+ traffStatSaved(u.traffStatSaved),
+ settings(u.settings),
+ authorizedBy(),
+ messages(u.messages),
+ deleted(u.deleted),
+ lastWriteStat(u.lastWriteStat),
+ lastWriteDetailedStat(u.lastWriteDetailedStat),
cash(property.cash),
up(property.up),
down(property.down),
userdata7(property.userdata7),
userdata8(property.userdata8),
userdata9(property.userdata9),
+ sessionUpload(),
+ sessionDownload(),
passiveNotifier(this),
tariffNotifier(this),
cashNotifier(this),
- ipNotifier(this)
+ ipNotifier(this),
+ mutex(),
+ errorStr()
{
if (&u == this)
return;
-connected = 0;
-
-deleted = u.deleted;
-
-lastWriteStat = u.lastWriteStat;
-lastWriteDetailedStat = u.lastWriteDetailedStat;
-
-settings = u.settings;
-
property.tariffName.AddBeforeNotifier(&tariffNotifier);
property.passive.AddBeforeNotifier(&passiveNotifier);
property.cash.AddBeforeNotifier(&cashNotifier);
ips.AddAfterNotifier(&ipNotifier);
-lastScanMessages = 0;
-
property.SetProperties(u.property);
pthread_mutexattr_t attr;
enabledDirs[i] = dirs & (1 << i);
}
-if (authorizedBy.size())
+if (!authorizedBy.empty())
{
if (currIP != ip)
{
property.cash.Set(c - fee, sysAdmin, login, store, "Subscriber fee charge");
break;
case 1:
- if (c > 0)
+ if (c >= 0)
property.cash.Set(c - fee, sysAdmin, login, store, "Subscriber fee charge");
break;
case 2:
- if (c > fee)
+ if (c >= fee)
property.cash.Set(c - fee, sysAdmin, login, store, "Subscriber fee charge");
break;
}
SetPrepaidTraff();
break;
case 1:
- if (c > 0)
+ if (c >= 0)
{
property.cash.Set(c - fee, sysAdmin, login, store, "Subscriber fee charge");
SetPrepaidTraff();
}
break;
case 2:
- if (c > fee)
+ if (c >= fee)
{
property.cash.Set(c - fee, sysAdmin, login, store, "Subscriber fee charge");
SetPrepaidTraff();