]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/usermanager.cpp
Fix erroneously limiting to the size of sa instead of sun_path.
[user/henk/code/inspircd.git] / src / usermanager.cpp
index 7466f385b565ec3895879590bca90b91c9357e61..053a308cbb164b6ea9d36e0c83d0259a4c252843 100644 (file)
@@ -76,6 +76,7 @@ void UserManager::AddUser(int socket, ListenSocket* via, irc::sockets::sockaddrs
        this->clientlist[New->nick] = New;
        this->AddClone(New);
        this->local_users.push_front(New);
+       FOREACH_MOD(OnUserInit, (New));
 
        if (!SocketEngine::AddFd(eh, FD_WANT_FAST_READ | FD_WANT_EDGE_WRITE))
        {
@@ -130,7 +131,11 @@ void UserManager::AddUser(int socket, ListenSocket* via, irc::sockets::sockaddrs
                        ServerInstance->Logs->Log("BANCACHE", LOG_DEBUG, "BanCache: Positive hit for " + New->GetIPString());
                        if (!ServerInstance->Config->XLineMessage.empty())
                                New->WriteNumeric(ERR_YOUREBANNEDCREEP, ServerInstance->Config->XLineMessage);
-                       this->QuitUser(New, b->Reason);
+
+                       if (ServerInstance->Config->HideBans)
+                               this->QuitUser(New, b->Type + "-lined", &b->Reason);
+                       else
+                               this->QuitUser(New, b->Reason);
                        return;
                }
                else
@@ -158,8 +163,6 @@ void UserManager::AddUser(int socket, ListenSocket* via, irc::sockets::sockaddrs
        FOREACH_MOD(OnSetUserIP, (New));
        if (New->quitting)
                return;
-
-       FOREACH_MOD(OnUserInit, (New));
 }
 
 void UserManager::QuitUser(User* user, const std::string& quitreason, const std::string* operreason)
@@ -217,6 +220,7 @@ void UserManager::QuitUser(User* user, const std::string& quitreason, const std:
 
        uuidlist.erase(user->uuid);
        user->PurgeEmptyChannels();
+       user->UnOper();
 }
 
 void UserManager::AddClone(User* user)