X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fuserprocess.cpp;h=88c12a57b6d346cda7676b738cad2e8b78ae1a81;hb=4e1ae0981e1d6b306d316b2f66a2fc72a36e0e87;hp=ca151520c5adc61774d740aa84025e6a51b5c4b9;hpb=1a307616adeef74eddb0e0093b56c8da2195b24c;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/userprocess.cpp b/src/userprocess.cpp index ca151520c..88c12a57b 100644 --- a/src/userprocess.cpp +++ b/src/userprocess.cpp @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2008 InspIRCd Development Team + * InspIRCd: (C) 2002-2009 InspIRCd Development Team * See: http://www.inspircd.org/wiki/index.php/Credits * * This program is free but copyrighted software; see @@ -11,10 +11,9 @@ * --------------------------------------------------- */ -/* $Core: libIRCDuserprocess */ +/* $Core */ #include "inspircd.h" -#include "wildcard.h" #include "xline.h" #include "socketengine.h" #include "command_parse.h" @@ -46,14 +45,14 @@ void ProcessUserHandler::Call(User* cu) char* ReadBuffer = Server->GetReadBuffer(); - if (cu->io) + if (cu->GetIOHook()) { int result2 = 0; int MOD_RESULT = 0; try { - MOD_RESULT = cu->io->OnRawSocketRead(cu->GetFd(),ReadBuffer,Server->Config->NetBufferSize,result2); + MOD_RESULT = cu->GetIOHook()->OnRawSocketRead(cu->GetFd(), ReadBuffer, Server->Config->NetBufferSize, result2); } catch (CoreException& modexcept) { @@ -71,7 +70,7 @@ void ProcessUserHandler::Call(User* cu) } else { - result = cu->ReadData(ReadBuffer, sizeof(ReadBuffer)); + result = cu->ReadData(ReadBuffer, Server->Config->NetBufferSize); } if ((result) && (result != -EAGAIN)) @@ -103,36 +102,12 @@ void ProcessUserHandler::Call(User* cu) if (!current->AddBuffer(ReadBuffer)) { // AddBuffer returned false, theres too much data in the user's buffer and theyre up to no good. - if (current->registered == REG_ALL) - { - if (current->MyClass) - { - // Make sure they arn't flooding long lines. - if (Server->Time() > current->reset_due) - { - current->reset_due = Server->Time() + current->MyClass->GetThreshold(); - current->lines_in = 0; - } - - current->lines_in++; - - if (current->MyClass->GetFlood() && current->lines_in > current->MyClass->GetFlood()) - Server->FloodQuitUser(current); - else - { - current->WriteServ("NOTICE %s :Your previous line was too long and was not delivered (Over %d chars) Please shorten it.", current->nick.c_str(), MAXBUF-2); - current->recvq.clear(); - } - } - } - else - Server->FloodQuitUser(current); - + Server->FloodQuitUser(current); return; } /* If user is over penalty, dont process here, just build up */ - if (!current->OverPenalty) + if (current->Penalty < 10) Server->Parser->DoLines(current); return; @@ -181,12 +156,6 @@ void InspIRCd::DoBackgroundUserStuff() Parser->DoLines(curr, true); } - if (curr->OverPenalty) - { - if (curr->sendq.empty()) - curr->OverPenalty = false; - } - switch (curr->registered) { case REG_ALL: