return host.substr(splitdot);
}
- CloakUser(InspIRCd* Instance, Module* source, Module* Hash)
+ CloakUser(Module* source, Module* Hash)
: ModeHandler(source, 'x', PARAM_NONE, MODETYPE_USER), HashProvider(Hash),
ext("cloaked_host", source)
{
void DoRehash()
{
- ConfigReader Conf(ServerInstance);
+ ConfigReader Conf;
bool lowercase;
/* These are *not* using the need_positive parameter of ReadInteger -
CloakUser* cu;
public:
- ModuleCloaking(InspIRCd* Me)
- : Module(Me)
+ ModuleCloaking()
{
/* Attempt to locate the md5 service provider, bail if we can't find it */
Module* HashModule = ServerInstance->Modules->Find("m_md5.so");
if (!HashModule)
throw ModuleException("Can't find m_md5.so. Please load m_md5.so before m_cloaking.so.");
- cu = new CloakUser(ServerInstance, this, HashModule);
+ cu = new CloakUser(this, HashModule);
try
{
}
}
- ModResult OnCheckBan(User* user, Channel* chan)
+ ModResult OnCheckBan(User* user, Channel* chan, const std::string& mask)
{
- char mask[MAXBUF];
+ char cmask[MAXBUF];
std::string* cloak = cu->ext.get(user);
/* Check if they have a cloaked host, but are not using it */
if (cloak && *cloak != user->dhost)
{
- snprintf(mask, MAXBUF, "%s!%s@%s", user->nick.c_str(), user->ident.c_str(), cloak->c_str());
- for (BanList::iterator i = chan->bans.begin(); i != chan->bans.end(); i++)
- {
- if (InspIRCd::Match(mask,i->data))
- return MOD_RES_DENY;
- }
+ snprintf(cmask, MAXBUF, "%s!%s@%s", user->nick.c_str(), user->ident.c_str(), cloak->c_str());
+ if (InspIRCd::Match(cmask,mask))
+ return MOD_RES_DENY;
}
return MOD_RES_PASSTHRU;
}
{
// returns the version number of the module to be
// listed in /MODULES
- return Version("$Id$", VF_COMMON|VF_VENDOR,API_VERSION);
+ return Version("Provides masking of user hostnames", VF_COMMON|VF_VENDOR,API_VERSION);
}
void OnRehash(User* user)