diff options
author | Attila Molnar <attilamolnar@hush.com> | 2016-08-24 12:14:38 +0200 |
---|---|---|
committer | Attila Molnar <attilamolnar@hush.com> | 2016-08-24 12:14:38 +0200 |
commit | 0ca92e252e5a22f3378f1a6d621fee878fcbf09d (patch) | |
tree | 3e5bb97c26194f429254a530bd6183d375c800a8 /src/usermanager.cpp | |
parent | 567142ef7a82175f3141af255bbe70eae22983cc (diff) |
Add socket into the SocketEngine as soon as possible in UserManager::AddUser()
Diffstat (limited to 'src/usermanager.cpp')
-rw-r--r-- | src/usermanager.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/usermanager.cpp b/src/usermanager.cpp index 5891b42f0..71ccd09da 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -88,6 +88,13 @@ void UserManager::AddUser(int socket, ListenSocket* via, irc::sockets::sockaddrs this->local_users.push_front(New); + if (!SocketEngine::AddFd(eh, FD_WANT_FAST_READ | FD_WANT_EDGE_WRITE)) + { + ServerInstance->Logs->Log("USERS", LOG_DEBUG, "Internal error on new connection"); + this->QuitUser(New, "Internal error handling connection"); + return; + } + if (this->local_users.size() > ServerInstance->Config->SoftLimit) { ServerInstance->SNO->WriteToSnoMask('a', "Warning: softlimit value has been reached: %d clients", ServerInstance->Config->SoftLimit); @@ -147,13 +154,6 @@ void UserManager::AddUser(int socket, ListenSocket* via, irc::sockets::sockaddrs } } - if (!SocketEngine::AddFd(eh, FD_WANT_FAST_READ | FD_WANT_EDGE_WRITE)) - { - ServerInstance->Logs->Log("USERS", LOG_DEBUG, "Internal error on new connection"); - this->QuitUser(New, "Internal error handling connection"); - return; - } - if (ServerInstance->Config->RawLog) New->WriteNotice("*** Raw I/O logging is enabled on this server. All messages, passwords, and commands are being recorded."); |