* Now supports CIDR and IP addresses -- Brain
*/
-class InspIRCd* ServerInstance;
-
/** Handles channel mode +I
*/
class InviteException : public ListModeBase
{
public:
- InviteException(InspIRCd* Instance, Module* Creator) : ListModeBase(Instance, Creator, 'I', "End of Channel Invite Exception List", 346, 347, true) { }
+ InviteException(Module* Creator) : ListModeBase(Creator, 'I', "End of Channel Invite Exception List", 346, 347, true) { }
};
class ModuleInviteException : public Module
{
InviteException ie;
public:
- ModuleInviteException(InspIRCd* Me) : Module(Me), ie(Me, this)
+ ModuleInviteException() : ie(this)
{
if (!ServerInstance->Modes->AddMode(&ie))
throw ModuleException("Could not add new modes!");
std::string mask = std::string(user->nick) + "!" + user->ident + "@" + user->GetIPString();
for (modelist::iterator it = list->begin(); it != list->end(); it++)
{
- if(InspIRCd::Match(user->GetFullRealHost(), it->mask) || InspIRCd::Match(user->GetFullHost(), it->mask) || (InspIRCd::MatchCIDR(mask, it->mask)))
+ if (chan->CheckBan(user, it->mask))
{
- // They match an entry on the list, so let them in.
- return MOD_RES_DENY;
+ return MOD_RES_ALLOW;
}
}
}
Version GetVersion()
{
- return Version("$Id$", VF_VENDOR | VF_COMMON, API_VERSION);
+ return Version("Provides support for the +I channel mode", VF_VENDOR | VF_COMMON, API_VERSION);
}
~ModuleInviteException()
{
- ServerInstance->Modes->DelMode(&ie);
ServerInstance->Modules->UnpublishInterface("ChannelBanList", this);
}
};