]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/channels.cpp
Canonicalize bind addresses when creating listen sockets
[user/henk/code/inspircd.git] / src / channels.cpp
index 99b118d0dc90e1cb15c0d8e100fa2af2cd0c2803..a6ed3406d28bbe62f79167b3a86d484258b293b1 100644 (file)
@@ -36,7 +36,7 @@ void Channel::SetMode(char mode,bool mode_on)
        modes[mode-65] = mode_on;
 }
 
-void Channel::SetMode(char mode, std::string parameter)
+void Channel::SetModeParam(char mode, std::string parameter)
 {
        CustomModeList::iterator n = custom_mode_params.find(mode);
        // always erase, even if changing, so that the map gets the new value
@@ -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())