diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/command_parse.cpp | 6 | ||||
-rw-r--r-- | src/userprocess.cpp | 8 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/command_parse.cpp b/src/command_parse.cpp index f3ff69c96..1701a7366 100644 --- a/src/command_parse.cpp +++ b/src/command_parse.cpp @@ -304,9 +304,13 @@ bool CommandParser::ProcessCommand(User *user, std::string &cmd) /* Modify the user's penalty */ user->Penalty += cm->second->Penalty; + ServerInstance->Log(DEBUG,"Penalty for %s is now incremented to %d (%d added on)", user->nick, user->Penalty, cm->second->Penalty); bool do_more = (user->Penalty < 10); - if (do_more) + if (!do_more) + { user->OverPenalty = true; + ServerInstance->Log(DEBUG,"User %s now OVER penalty of 10", user->nick); + } /* activity resets the ping pending timer */ user->nping = ServerInstance->Time() + user->pingmax; diff --git a/src/userprocess.cpp b/src/userprocess.cpp index 75f0da0ee..b65d566f8 100644 --- a/src/userprocess.cpp +++ b/src/userprocess.cpp @@ -122,7 +122,9 @@ void ProcessUserHandler::Call(User* cu) return; } - Server->Parser->DoLines(current); + /* If user is over penalty, dont process here, just build up */ + if (!current->OverPenalty) + Server->Parser->DoLines(current); return; } @@ -161,11 +163,15 @@ void InspIRCd::DoBackgroundUserStuff() User *curr = *count2; if (curr->OverPenalty) + { + Log(DEBUG,"Process line over penalty for %s", curr->nick); Parser->DoLines(curr, true); + } /* Knock a second off */ if (curr->Penalty) { + Log(DEBUG,"Penalty for %s decremented to %d", curr->nick, curr->Penalty); curr->Penalty--; if (!curr->Penalty) curr->OverPenalty = false; |