X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/91b203a42eca5cc73fa1674f16ea3054f85327f8..bfe43ecdff681f0b4395841a33a2721f8f8a983b:/projects/stargazer/user_impl.cpp diff --git a/projects/stargazer/user_impl.cpp b/projects/stargazer/user_impl.cpp index 00063437..34c922b2 100644 --- a/projects/stargazer/user_impl.cpp +++ b/projects/stargazer/user_impl.cpp @@ -121,7 +121,7 @@ lastWriteDetailedStat = stgTime; property.tariffName.AddBeforeNotifier(&tariffNotifier); property.passive.AddBeforeNotifier(&passiveNotifier); property.cash.AddBeforeNotifier(&cashNotifier); -currIP.AddAfterNotifier(&ipNotifier); +ips.AddAfterNotifier(&ipNotifier); lastScanMessages = 0; @@ -201,7 +201,7 @@ settings = u.settings; property.tariffName.AddBeforeNotifier(&tariffNotifier); property.passive.AddBeforeNotifier(&passiveNotifier); property.cash.AddBeforeNotifier(&cashNotifier); -currIP.AddAfterNotifier(&ipNotifier); +ips.AddAfterNotifier(&ipNotifier); lastScanMessages = 0; @@ -316,8 +316,6 @@ int USER_IMPL::WriteStat() STG_LOCKER lock(&mutex, __FILE__, __LINE__); USER_STAT stat(property.GetStat()); -printfd(__FILE__, "USER::WriteStat()\n"); - if (store->SaveUserStat(stat, login)) { WriteServLog("Cannot write stat for user %s.", login.c_str()); @@ -380,7 +378,7 @@ if (authorizedBy.size()) if (currIP != ip) { // We are already authorized, but with different IP address - errorStr = "User " + login + " alredy authorized with IP address " + inet_ntostring(ip); + errorStr = "User " + login + " already authorized with IP address " + inet_ntostring(ip); return -1; } @@ -391,7 +389,7 @@ if (authorizedBy.size()) // If it's not our IP - throw an error if (u != this) { - errorStr = "IP address " + inet_ntostring(ip) + " alredy in use"; + errorStr = "IP address " + inet_ntostring(ip) + " already in use"; return -1; } } @@ -401,7 +399,7 @@ else if (users->IsIPInIndex(ip)) { // Address is already present in IP-index - errorStr = "IP address " + inet_ntostring(ip) + " alredy in use"; + errorStr = "IP address " + inet_ntostring(ip) + " already in use"; return -1; } @@ -674,21 +672,21 @@ bool USER_IMPL::IsInetable() { //STG_LOCKER lock(&mutex, __FILE__, __LINE__); -if (disabled.ConstData() || passive.ConstData()) +if (disabled || passive) return false; if (settings->GetFreeMbAllowInet()) { - if (freeMb.ConstData() >= 0) + if (freeMb >= 0) return true; } if (settings->GetShowFeeInCash()) { - return (cash.ConstData() >= -credit.ConstData()); + return (cash >= -credit); } -return (cash.ConstData() - tariff->GetFee() >= -credit.ConstData()); +return (cash - tariff->GetFee() >= -credit); } //----------------------------------------------------------------------------- string USER_IMPL::GetEnabledDirs() @@ -1281,6 +1279,10 @@ while (it != messages.end()) ++it; } } + else + { + ++it; + } } } //----------------------------------------------------------------------------- @@ -1307,14 +1309,12 @@ user->lastCashAddTime = *const_cast(&stgTime); user->lastCashAdd = newCash - oldCash; } //----------------------------------------------------------------------------- -void CHG_IP_NOTIFIER::Notify(const uint32_t & from, const uint32_t & to) +void CHG_IPS_NOTIFIER::Notify(const USER_IPS & from, const USER_IPS & to) { - printfd(__FILE__, "Change IP from %s to %s\n", inet_ntostring(from).c_str(), inet_ntostring(to).c_str()); - if (from != 0) - if (user->connected) - user->Disconnect(false, "Change IP"); - if (to != 0) - if (user->IsInetable()) - user->Connect(false); + printfd(__FILE__, "Change IP from '%s' to '%s'\n", from.GetIpStr().c_str(), to.GetIpStr().c_str()); + if (user->connected) + user->Disconnect(true, "Change IP"); + if (user->IsInetable()) + user->Connect(true); } //-----------------------------------------------------------------------------