Convert a bunch of LocalUser* casts to IS_LOCAL.

This is a lot safer and handles users changing servers properly.
This commit is contained in:
Peter Powell 2019-10-11 12:21:16 +01:00
parent f751aef210
commit dd24f8ac71
6 changed files with 13 additions and 10 deletions

View File

@ -58,7 +58,7 @@ class UserResolver : public DNS::Request
*/
void OnLookupComplete(const DNS::Query* r) CXX11_OVERRIDE
{
LocalUser* bound_user = (LocalUser*)ServerInstance->FindUUID(uuid);
LocalUser* bound_user = IS_LOCAL(ServerInstance->FindUUID(uuid));
if (!bound_user)
{
ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Resolution finished for user '%s' who is gone", uuid.c_str());
@ -166,7 +166,7 @@ class UserResolver : public DNS::Request
*/
void OnError(const DNS::Query* query) CXX11_OVERRIDE
{
LocalUser* bound_user = (LocalUser*)ServerInstance->FindUUID(uuid);
LocalUser* bound_user = IS_LOCAL(ServerInstance->FindUUID(uuid));
if (bound_user)
{
bound_user->WriteNotice("*** Could not resolve your hostname: " + this->manager->GetErrorStr(query->error) + "; using your IP address (" + bound_user->GetIPString() + ") instead.");

View File

@ -375,12 +375,14 @@ class ModuleCloaking : public Module
{
u->SetMode(cu, false);
if (!IS_LOCAL(u))
LocalUser* luser = IS_LOCAL(u);
if (!luser)
return;
Modes::ChangeList modechangelist;
modechangelist.push_remove(&cu);
ClientProtocol::Events::Mode modeevent(ServerInstance->FakeClient, NULL, u, modechangelist);
static_cast<LocalUser*>(u)->Send(modeevent);
luser->Send(modeevent);
}
cu.active = false;
}

View File

@ -63,7 +63,7 @@ class DNSBLResolver : public DNS::Request
void OnLookupComplete(const DNS::Query *r) CXX11_OVERRIDE
{
/* Check the user still exists */
LocalUser* them = (LocalUser*)ServerInstance->FindUUID(theiruid);
LocalUser* them = IS_LOCAL(ServerInstance->FindUUID(theiruid));
if (!them)
return;
@ -209,7 +209,7 @@ class DNSBLResolver : public DNS::Request
void OnError(const DNS::Query *q) CXX11_OVERRIDE
{
LocalUser* them = (LocalUser*)ServerInstance->FindUUID(theiruid);
LocalUser* them = IS_LOCAL(ServerInstance->FindUUID(theiruid));
if (!them)
return;

View File

@ -216,7 +216,7 @@ class SearchInterface : public LDAPInterface
void OnResult(const LDAPResult& r) CXX11_OVERRIDE
{
LocalUser* user = static_cast<LocalUser*>(ServerInstance->FindUUID(uid));
LocalUser* user = IS_LOCAL(ServerInstance->FindUUID(uid));
dynamic_reference<LDAPProvider> LDAP(me, provider);
if (!LDAP || r.empty() || !user)
{

View File

@ -113,8 +113,9 @@ class DummyZ : public ModeHandler
// Handle /MODE #chan Z
void DisplayList(User* user, Channel* chan) CXX11_OVERRIDE
{
if (IS_LOCAL(user))
::DisplayList(static_cast<LocalUser*>(user), chan);
LocalUser* luser = IS_LOCAL(user);
if (luser)
::DisplayList(luser, chan);
}
};

View File

@ -49,7 +49,7 @@ class AuthQuery : public SQL::Query
void OnResult(SQL::Result& res) CXX11_OVERRIDE
{
LocalUser* user = static_cast<LocalUser*>(ServerInstance->FindUUID(uid));
LocalUser* user = IS_LOCAL(ServerInstance->FindUUID(uid));
if (!user)
return;