X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fuserprocess.cpp;h=3dc3143de02abaa8b441813e695c423147499700;hb=12ffb909a66401f540234aecbeeee6f94ef2fc6d;hp=c2de4dc2b1d895cab85720d657945f9d50aa7223;hpb=343f12b9b2d4e519b09877f76a00f6a0714509f2;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/userprocess.cpp b/src/userprocess.cpp index c2de4dc2b..3dc3143de 100644 --- a/src/userprocess.cpp +++ b/src/userprocess.cpp @@ -21,11 +21,11 @@ void FloodQuitUserHandler::Call(User* current) { - Server->Logs->Log("USERS",DEFAULT,"Excess flood from: %s@%s", current->ident, current->host); + Server->Logs->Log("USERS",DEFAULT,"Excess flood from: %s@%s", current->ident.c_str(), current->host.c_str()); Server->SNO->WriteToSnoMask('f',"Excess flood from: %s%s%s@%s", - current->registered == REG_ALL ? current->nick : "", - current->registered == REG_ALL ? "!" : "", current->ident, current->host); - User::QuitUser(Server, current, "Excess flood"); + current->registered == REG_ALL ? current->nick.c_str() : "", + current->registered == REG_ALL ? "!" : "", current->ident.c_str(), current->host.c_str()); + Server->Users->QuitUser(current, "Excess flood"); if (current->registered != REG_ALL) { @@ -120,7 +120,7 @@ void ProcessUserHandler::Call(User* cu) 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, MAXBUF-2); + 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(); } } @@ -140,7 +140,7 @@ void ProcessUserHandler::Call(User* cu) if ((result == -1) && (errno != EAGAIN) && (errno != EINTR)) { - User::QuitUser(Server, cu, errno ? strerror(errno) : "EOF from client"); + Server->Users->QuitUser(cu, errno ? strerror(errno) : "EOF from client"); return; } } @@ -152,7 +152,7 @@ void ProcessUserHandler::Call(User* cu) } else if (result == 0) { - User::QuitUser(Server, cu, "Connection closed"); + Server->Users->QuitUser(cu, "Connection closed"); return; } } @@ -171,6 +171,9 @@ void InspIRCd::DoBackgroundUserStuff() { User *curr = *count2; + if (curr->quitting) + continue; + if (curr->Penalty) { curr->Penalty--; @@ -190,7 +193,7 @@ void InspIRCd::DoBackgroundUserStuff() * registration timeout -- didnt send USER/NICK/HOST * in the time specified in their connection class. */ - User::QuitUser(this, curr, "Registration timeout"); + this->Users->QuitUser(curr, "Registration timeout"); continue; } @@ -221,9 +224,10 @@ void InspIRCd::DoBackgroundUserStuff() snprintf(message, MAXBUF, "Ping timeout: %ld second%s", (long)time, time > 1 ? "s" : ""); curr->lastping = 1; curr->nping = TIME + curr->MyClass->GetPingTime(); - User::QuitUser(this, curr, message); + this->Users->QuitUser(curr, message); continue; } + curr->Write("PING :%s",this->Config->ServerName); curr->lastping = 0; curr->nping = TIME +curr->MyClass->GetPingTime();