User* them = ServerInstance->FindUUID(theiruid);
if ((them) && (!them->quitting))
{
+ LocalUser* lu = IS_LOCAL(them);
+ if (!lu)
+ return;
+
if (notify)
ServerInstance->SNO->WriteGlobalSno('a', "Connecting user %s detected as using CGI:IRC (%s), changing real host to %s from %s", them->nick.c_str(), them->host.c_str(), result.c_str(), typ.c_str());
them->host = result;
them->dhost = result;
them->InvalidateCache();
- them->CheckLines(true);
+ lu->CheckLines(true);
}
}
CommandWebirc cmd;
LocalIntExt waiting;
- static void RecheckElineAndClass(LocalUser* user)
+ static void RecheckClass(LocalUser* user)
{
- user->exempt = (ServerInstance->XLines->MatchesLine("E", user) != NULL);
+ user->MyClass = NULL;
user->SetClass();
user->CheckClass();
}
ChangeIP(user, newip);
user->host = user->dhost = user->GetIPString();
user->InvalidateCache();
- RecheckElineAndClass(user);
+ RecheckClass(user);
// Don't create the resolver if the core couldn't put the user in a connect class or when dns is disabled
if (user->quitting || ServerInstance->Config->NoUserDns)
return;
{
if (type == "webirc" && password.empty())
{
- ServerInstance->Logs->Log("CONFIG",DEFAULT, "m_cgiirc: Missing password in config: %s", hostmask.c_str());
+ ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT, "m_cgiirc: Missing password in config: %s", hostmask.c_str());
}
else
{
else
{
cgitype = PASS;
- ServerInstance->Logs->Log("CONFIG",DEFAULT, "m_cgiirc.so: Invalid <cgihost:type> value in config: %s, setting it to \"pass\"", type.c_str());
+ ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT, "m_cgiirc.so: Invalid <cgihost:type> value in config: %s, setting it to \"pass\"", type.c_str());
}
cmd.Hosts.push_back(CGIhost(hostmask, cgitype, password));
}
else
{
- ServerInstance->Logs->Log("CONFIG",DEFAULT, "m_cgiirc.so: Invalid <cgihost:mask> value in config: %s", hostmask.c_str());
+ ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT, "m_cgiirc.so: Invalid <cgihost:mask> value in config: %s", hostmask.c_str());
continue;
}
}
std::string* webirc_hostname = cmd.webirc_hostname.get(user);
user->host = user->dhost = (webirc_hostname ? *webirc_hostname : user->GetIPString());
- RecheckElineAndClass(user);
+ RecheckClass(user);
if (user->quitting)
return MOD_RES_DENY;