X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/fe33b745d83085459e8a12e7a5a29d95c74c69d1..c3a5bb488a4b62f7d4c273c410e23317e775f9c9:/projects/stargazer/users_impl.cpp

diff --git a/projects/stargazer/users_impl.cpp b/projects/stargazer/users_impl.cpp
index bc440636..9985615f 100644
--- a/projects/stargazer/users_impl.cpp
+++ b/projects/stargazer/users_impl.cpp
@@ -319,6 +319,7 @@ STG_LOCKER lock(&mutex);
 if (FindByNameNonLock(login, &iter))
     {
     WriteServLog("Attempt to unauthorize non-existant user '%s'", login.c_str());
+    printfd(__FILE__, "Attempt to unauthorize non-existant user '%s'", login.c_str());
     return false;
     }
 
@@ -344,6 +345,7 @@ if (store->GetUsersList(&usersList) < 0)
 
 user_iter ui;
 
+unsigned errors = 0;
 for (unsigned int i = 0; i < usersList.size(); i++)
     {
     USER_IMPL u(settings, store, tariffs, sysAdmin, this, m_services);
@@ -354,13 +356,26 @@ for (unsigned int i = 0; i < usersList.size(); i++)
 
     AddUserIntoIndexes(ui);
 
-    if (ui->ReadConf() < 0)
-        return -1;
+    if (settings->GetStopOnError())
+        {
+        if (ui->ReadConf() < 0)
+            return -1;
 
-    if (ui->ReadStat() < 0)
-        return -1;
+        if (ui->ReadStat() < 0)
+            return -1;
+        }
+    else
+        {
+        if (ui->ReadConf() < 0)
+            errors++;
+
+        if (ui->ReadStat() < 0)
+            errors++;
+        }
     }
 
+if (errors > 0)
+    return -1;
 return 0;
 }
 //-----------------------------------------------------------------------------
@@ -424,15 +439,7 @@ while (us->nonstop)
     stgUsleep(100000);
     } //while (us->nonstop)
 
-user_iter ui = us->users.begin();
-while (ui != us->users.end())
-    {
-    us->DelUserFromIndexes(ui);
-    ++ui;
-    }
-
-std::list<USER_TO_DEL>::iterator iter;
-iter = us->usersToDelete.begin();
+std::list<USER_TO_DEL>::iterator iter(us->usersToDelete.begin());
 while (iter != us->usersToDelete.end())
     {
     iter->delTime -= 2 * userDeleteDelayTime;