]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/usermanager.cpp
m_chanfilter: Apply filters to part messages (#1702)
[user/henk/code/inspircd.git] / src / usermanager.cpp
index 6acd25ac5200eeb2860abc4969a63e5522dcb09a..4f65994aa29be6399964f51869c5b5546e30d627 100644 (file)
@@ -58,6 +58,16 @@ namespace
                // This user didn't answer the last ping, remove them.
                if (!user->lastping)
                {
+                       ModResult res;
+                       FIRST_MOD_RESULT(OnConnectionFail, res, (user, I_ERR_TIMEOUT));
+                       if (res == MOD_RES_ALLOW)
+                       {
+                               // A module is preventing this user from being timed out.
+                               user->lastping = 1;
+                               user->nextping = ServerInstance->Time() + user->MyClass->GetPingTime();
+                               return;
+                       }
+
                        time_t secs = ServerInstance->Time() - (user->nextping - user->MyClass->GetPingTime());
                        const std::string message = "Ping timeout: " + ConvToStr(secs) + (secs != 1 ? " seconds" : " second");
                        ServerInstance->Users.QuitUser(user, message);