summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/command_parse.cpp6
-rw-r--r--src/userprocess.cpp8
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;