X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fusermanager.cpp;h=b3ee21f2bb7b8a34686acf9ac0e030175643c6ee;hb=b200104cf2c61465acecaca111e3ec727fc3b954;hp=15c86157bff3784053fcbb596b9d3adefb909819;hpb=fb7acf3bf7db27f61d9261a99862654dd3721a06;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/usermanager.cpp b/src/usermanager.cpp index 15c86157b..b3ee21f2b 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -91,8 +91,16 @@ void UserManager::AddUser(int socket, ListenSocket* via, irc::sockets::sockaddrs for (ListenSocket::IOHookProvList::iterator i = via->iohookprovs.begin(); i != via->iohookprovs.end(); ++i) { ListenSocket::IOHookProvRef& iohookprovref = *i; - if (iohookprovref) - iohookprovref->OnAccept(eh, client, server); + if (!iohookprovref) + continue; + + iohookprovref->OnAccept(eh, client, server); + // IOHook could have encountered a fatal error, e.g. if the TLS ClientHello was already in the queue and there was no common TLS version + if (!eh->getError().empty()) + { + QuitUser(New, eh->getError()); + return; + } } if (this->local_users.size() > ServerInstance->Config->SoftLimit)