]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/channels.cpp
This should probably be tested, but makes a whole lot more sense like this (users...
[user/henk/code/inspircd.git] / src / channels.cpp
index 6b89883bd11b3b85441825d2c4cb01a8b5c5f294..effc47d73572a38ebb1c62b5a8f2fb956bc95015 100644 (file)
@@ -20,7 +20,7 @@
 
 Channel::Channel(InspIRCd* Instance, const std::string &cname, time_t ts) : ServerInstance(Instance)
 {
-       chan_hash::iterator findchan = ServerInstance->chanlist->find(name);
+       chan_hash::iterator findchan = ServerInstance->chanlist->find(cname);
        if (findchan != Instance->chanlist->end())
                throw CoreException("Cannot create duplicate channel " + cname);
 
@@ -523,7 +523,7 @@ long Channel::PartUser(User *user, const char* reason)
        return this->GetUserCounter();
 }
 
-long Channel::ServerKickUser(User* user, const char* reason, bool triggerevents)
+long Channel::ServerKickUser(User* user, const char* reason, bool triggerevents, const char* servername)
 {
        bool silent = false;
 
@@ -539,6 +539,9 @@ long Channel::ServerKickUser(User* user, const char* reason, bool triggerevents)
                }
        }
 
+       if (servername == NULL)
+               servername = ServerInstance->Config->ServerName;
+
        if (triggerevents)
        {
                FOREACH_MOD(I_OnUserKick,OnUserKick(NULL, user, this, reason, silent));
@@ -548,7 +551,7 @@ long Channel::ServerKickUser(User* user, const char* reason, bool triggerevents)
        if (i != user->chans.end())
        {
                if (!silent)
-                       this->WriteChannelWithServ(ServerInstance->Config->ServerName, "KICK %s %s :%s", this->name, user->nick, reason);
+                       this->WriteChannelWithServ(servername, "KICK %s %s :%s", this->name, user->nick, reason);
 
                user->chans.erase(i);
                this->RemoveAllPrefixes(user);