]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/channels.cpp
Remove sending +q from OnPostJoin, fixes bug #847. See removed comment for why it...
[user/henk/code/inspircd.git] / src / channels.cpp
index 99b118d0dc90e1cb15c0d8e100fa2af2cd0c2803..c8334d42ec735be95d8b408d4b95f07478f88f1c 100644 (file)
@@ -243,7 +243,8 @@ void Channel::SetDefaultModes()
  */
 Channel* Channel::JoinUser(InspIRCd* Instance, User *user, const char* cn, bool override, const char* key, bool bursting, time_t TS)
 {
-       if (!user || !cn)
+       // Fix: unregistered users could be joined using /SAJOIN
+       if (!user || !cn || user->registered != REG_ALL)
                return NULL;
 
        char cname[MAXBUF];
@@ -592,7 +593,7 @@ long Channel::PartUser(User *user, std::string &reason)
        return this->GetUserCounter();
 }
 
-long Channel::ServerKickUser(User* user, const char* reason, bool triggerevents, const char* servername)
+long Channel::ServerKickUser(User* user, const char* reason, const char* servername)
 {
        bool silent = false;
 
@@ -611,10 +612,7 @@ long Channel::ServerKickUser(User* user, const char* reason, bool triggerevents,
        if (servername == NULL || *ServerInstance->Config->HideWhoisServer)
                servername = ServerInstance->Config->ServerName;
 
-       if (triggerevents)
-       {
-               FOREACH_MOD(I_OnUserKick,OnUserKick(NULL, user, this, reason, silent));
-       }
+       FOREACH_MOD(I_OnUserKick,OnUserKick(NULL, user, this, reason, silent));
 
        UCListIter i = user->chans.find(this);
        if (i != user->chans.end())