summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorattilamolnar <attilamolnar@hush.com>2013-06-06 03:13:55 +0200
committerattilamolnar <attilamolnar@hush.com>2013-06-06 03:13:55 +0200
commiteeabdde6fbd99bc0ba5739c65421a9c20b503f72 (patch)
tree39bd0d947f428fdecf757257625445ea5887d497 /src
parentb57c0342cab22f9872dabaa8eff76ce5c8b9a890 (diff)
Move DoBackgroundUserStuff() and AllModulesReportReady() into UserManager
Diffstat (limited to 'src')
-rw-r--r--src/inspircd.cpp15
-rw-r--r--src/usermanager.cpp11
-rw-r--r--src/userprocess.cpp25
3 files changed, 22 insertions, 29 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index 0e4a6646f..c40c5fb00 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -748,7 +748,7 @@ int InspIRCd::Run()
}
Timers->TickTimers(TIME.tv_sec);
- this->DoBackgroundUserStuff();
+ Users->DoBackgroundUserStuff();
if ((TIME.tv_sec % 5) == 0)
{
@@ -781,19 +781,6 @@ int InspIRCd::Run()
return 0;
}
-/**********************************************************************************/
-
-/* this returns true when all modules are satisfied that the user should be allowed onto the irc server
- * (until this returns true, a user will block in the waiting state, waiting to connect up to the
- * registration timeout maximum seconds)
- */
-bool InspIRCd::AllModulesReportReady(LocalUser* user)
-{
- ModResult res;
- FIRST_MOD_RESULT(OnCheckReady, res, (user));
- return (res == MOD_RES_PASSTHRU);
-}
-
sig_atomic_t InspIRCd::s_signal = 0;
void InspIRCd::SetSignal(int signal)
diff --git a/src/usermanager.cpp b/src/usermanager.cpp
index d6c61d2e3..df1d5f9f1 100644
--- a/src/usermanager.cpp
+++ b/src/usermanager.cpp
@@ -362,3 +362,14 @@ void UserManager::GarbageCollect()
(**i).RemoveExpiredInvites();
}
}
+
+/* this returns true when all modules are satisfied that the user should be allowed onto the irc server
+ * (until this returns true, a user will block in the waiting state, waiting to connect up to the
+ * registration timeout maximum seconds)
+ */
+bool UserManager::AllModulesReportReady(LocalUser* user)
+{
+ ModResult res;
+ FIRST_MOD_RESULT(OnCheckReady, res, (user));
+ return (res == MOD_RES_PASSTHRU);
+}
diff --git a/src/userprocess.cpp b/src/userprocess.cpp
index 40fd35c59..8a0be3126 100644
--- a/src/userprocess.cpp
+++ b/src/userprocess.cpp
@@ -33,16 +33,14 @@
* It is intended to do background checking on all the user structs, e.g.
* stuff like ping checks, registration timeouts, etc.
*/
-void InspIRCd::DoBackgroundUserStuff()
+void UserManager::DoBackgroundUserStuff()
{
/*
* loop over all local users..
*/
- LocalUserList::reverse_iterator count2 = this->Users->local_users.rbegin();
- while (count2 != this->Users->local_users.rend())
+ for (LocalUserList::iterator i = local_users.begin(); i != local_users.end(); ++i)
{
- LocalUser *curr = *count2;
- count2++;
+ LocalUser* curr = *i;
if (curr->quitting)
continue;
@@ -60,22 +58,20 @@ void InspIRCd::DoBackgroundUserStuff()
switch (curr->registered)
{
case REG_ALL:
- if (Time() > curr->nping)
+ if (ServerInstance->Time() > curr->nping)
{
// This user didn't answer the last ping, remove them
if (!curr->lastping)
{
- time_t time = this->Time() - (curr->nping - curr->MyClass->GetPingTime());
+ time_t time = ServerInstance->Time() - (curr->nping - curr->MyClass->GetPingTime());
const std::string message = "Ping timeout: " + ConvToStr(time) + (time == 1 ? " seconds" : " second");
- curr->lastping = 1;
- curr->nping = Time() + curr->MyClass->GetPingTime();
- this->Users->QuitUser(curr, message);
+ this->QuitUser(curr, message);
continue;
}
- curr->Write("PING :%s",this->Config->ServerName.c_str());
+ curr->Write("PING :" + ServerInstance->Config->ServerName);
curr->lastping = 0;
- curr->nping = Time() +curr->MyClass->GetPingTime();
+ curr->nping = ServerInstance->Time() + curr->MyClass->GetPingTime();
}
break;
case REG_NICKUSER:
@@ -88,15 +84,14 @@ void InspIRCd::DoBackgroundUserStuff()
break;
}
- if (curr->registered != REG_ALL && (Time() > (curr->age + curr->MyClass->GetRegTimeout())))
+ if (curr->registered != REG_ALL && (ServerInstance->Time() > (curr->age + curr->MyClass->GetRegTimeout())))
{
/*
* registration timeout -- didnt send USER/NICK/HOST
* in the time specified in their connection class.
*/
- this->Users->QuitUser(curr, "Registration timeout");
+ this->QuitUser(curr, "Registration timeout");
continue;
}
}
}
-