X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/6f7160dd027c8ce7e2760aa369768ba39ab80181..b1d5e2ed9bea8cc71569052f80a1aa98e133c397:/projects/stargazer/users_impl.cpp diff --git a/projects/stargazer/users_impl.cpp b/projects/stargazer/users_impl.cpp index 35237ba2..24955187 100644 --- a/projects/stargazer/users_impl.cpp +++ b/projects/stargazer/users_impl.cpp @@ -52,7 +52,7 @@ extern const volatile time_t stgTime; //#define USERS_DEBUG 1 //----------------------------------------------------------------------------- -USERS_IMPL::USERS_IMPL(SETTINGS * s, BASE_STORE * st, TARIFFS * t, const ADMIN & sa) +USERS_IMPL::USERS_IMPL(SETTINGS_IMPL * s, STORE * st, TARIFFS * t, const ADMIN * sa) : users(), usersToDelete(), userIPNotifiersBefore(), @@ -122,16 +122,16 @@ while (iter != users.end()) return false; } //----------------------------------------------------------------------------- -int USERS_IMPL::Add(const string & login, const ADMIN & admin) +int USERS_IMPL::Add(const string & login, const ADMIN * admin) { STG_LOCKER lock(&mutex, __FILE__, __LINE__); -const PRIV * priv = admin.GetPriv(); +const PRIV * priv = admin->GetPriv(); if (!priv->userAddDel) { WriteServLog("%s tried to add user \'%s\'. Access denied.", - admin.GetLogStr().c_str(), login.c_str()); - /*errorStr = "Admin \'" + admin.GetLogin() + + admin->GetLogStr().c_str(), login.c_str()); + /*errorStr = "Admin \'" + admin->GetLogin() + "\': tried to add user \'" + ud->login + "\'. Access denied.";*/ return -1; } @@ -141,7 +141,7 @@ if (store->AddUser(login)) { //TODO //WriteServLog("Admin \'%s\': tried to add user \'%s\'. Access denied.", - // admin.GetLogin().c_str(), ud->login.c_str()); + // admin->GetLogin().c_str(), ud->login.c_str()); return -1; } ////// @@ -170,7 +170,7 @@ u.WriteConf(); u.WriteStat(); WriteServLog("%s User \'%s\' added.", - admin.GetLogStr().c_str(), login.c_str()); + admin->GetLogStr().c_str(), login.c_str()); u.OnAdd(); @@ -190,15 +190,15 @@ while (ni != onAddNotifiers.end()) return 0; } //----------------------------------------------------------------------------- -void USERS_IMPL::Del(const string & login, const ADMIN & admin) +void USERS_IMPL::Del(const string & login, const ADMIN * admin) { -const PRIV * priv = admin.GetPriv(); +const PRIV * priv = admin->GetPriv(); user_iter u; if (!priv->userAddDel) { WriteServLog("%s tried to remove user \'%s\'. Access denied.", - admin.GetLogStr().c_str(), login.c_str()); + admin->GetLogStr().c_str(), login.c_str()); return; } @@ -209,7 +209,7 @@ if (!priv->userAddDel) if (FindByNameNonLock(login, &u)) { WriteServLog("%s tried to delete user \'%s\': not found.", - admin.GetLogStr().c_str(), + admin->GetLogStr().c_str(), login.c_str()); return; } @@ -237,7 +237,7 @@ while (ni != onDelNotifiers.end()) DelUserFromIndexes(u); WriteServLog("%s User \'%s\' deleted.", - admin.GetLogStr().c_str(), login.c_str()); + admin->GetLogStr().c_str(), login.c_str()); } } @@ -336,7 +336,7 @@ while (ui != us->users.end()) { us->UnSetUserNotifiers(ui); us->DelUserFromIndexes(ui); - ui++; + ++ui; } list::iterator iter; @@ -373,7 +373,7 @@ if (TimeToWriteDetailStat(t)) { usersCnt++; usr->WriteDetailStat(); - usr++; + ++usr; if (usersCnt % 10 == 0) for_each(users.begin(), users.end(), mem_fun_ref(&USER_IMPL::Run)); } @@ -467,13 +467,13 @@ if (!isRunning) nonstop = false; //5 seconds to thread stops itself -unsigned i; -for (i = 0; i < 25 * (users.size() / 50 + 1); i++) +struct timespec ts = {0, 200000000}; +for (size_t i = 0; i < 25 * (users.size() / 50 + 1); i++) { if (!isRunning) break; - usleep(200000); + nanosleep(&ts, NULL); } //after 5 seconds waiting thread still running. now kill it @@ -710,7 +710,7 @@ while (bi != userIPNotifiersBefore.end()) //printfd(__FILE__, "Notifier Before removed. User %s\n", bi->GetUser()->GetLogin().c_str()); break; } - bi++; + ++bi; } ai = userIPNotifiersAfter.begin(); @@ -723,7 +723,7 @@ while (ai != userIPNotifiersAfter.end()) //printfd(__FILE__, "Notifier After removed. User %s\n", ai->GetUser()->GetLogin().c_str()); break; } - ai++; + ++ai; } } //-----------------------------------------------------------------------------