* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * InspIRCd: (C) 2002-2008 InspIRCd Development Team
+ * InspIRCd: (C) 2002-2009 InspIRCd Development Team
* See: http://www.inspircd.org/wiki/index.php/Credits
*
* This program is free but copyrighted software; see
* "miscreant" servers, though, so let's check anyway. -- w
*
* We also check here for totally invalid prefixes (prefixes that are neither
- * a valid SID or a valid UUID, so that invalid UUID or SID never makes it
+ * a valid SID or a valid UUID, so that invalid UUID or SID never makes it
* to the higher level functions. -- B
*/
std::string direction = prefix;
if (params.size() == 3)
{
TreeServer* pf = Utils->FindServer(prefix);
- User* user = this->ServerInstance->FindNick(params[1]);
- Channel* chan = this->ServerInstance->FindChan(params[0]);
- if (pf && user && chan)
+ if (pf)
{
- if (!chan->ServerKickUser(user, params[2].c_str(), false, pf->GetName().c_str()))
- /* Yikes, the channels gone! */
- delete chan;
+ irc::commasepstream nicks(params[1]);
+ std::string nick;
+ Channel* chan = this->ServerInstance->FindChan(params[0]);
+ if (chan)
+ {
+ while (nicks.GetToken(nick))
+ {
+ User* user = this->ServerInstance->FindNick(nick);
+ if (user)
+ {
+ if (!chan->ServerKickUser(user, params[2].c_str(), false, pf->GetName().c_str()))
+ /* Yikes, the channels gone! */
+ delete chan;
+ }
+ }
+ }
}
}
this->ServerInstance->SNO->WriteToSnoMask('l', "Connection to '\2%s\2' was established for %s", quitserver.c_str(), Utils->Creator->TimeToStr(server_uptime).c_str());
}
}
-
-