From bb1e5a7b60ea200ddae99f263a38a219879f9617 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Sun, 8 Mar 2026 17:01:22 +0000 Subject: Replace IS_* with member functions. - All user types get an Is* function. - Only local users are cast using the old function so only local users get an As* function. --- modules/spanningtree/fmode.cpp | 4 +-- modules/spanningtree/idle.cpp | 2 +- modules/spanningtree/main.cpp | 44 ++++++++++++++++----------------- modules/spanningtree/num.cpp | 2 +- modules/spanningtree/override_whois.cpp | 2 +- modules/spanningtree/postcommand.cpp | 2 +- modules/spanningtree/rconnect.cpp | 2 +- modules/spanningtree/reply.cpp | 2 +- modules/spanningtree/servercommand.h | 8 +++--- modules/spanningtree/tags.cpp | 2 +- modules/spanningtree/utils.cpp | 2 +- 11 files changed, 37 insertions(+), 35 deletions(-) (limited to 'modules/spanningtree') diff --git a/modules/spanningtree/fmode.cpp b/modules/spanningtree/fmode.cpp index 931a9c7c9..3a2e40c59 100644 --- a/modules/spanningtree/fmode.cpp +++ b/modules/spanningtree/fmode.cpp @@ -50,7 +50,7 @@ CmdResult CommandFMode::Handle(User* who, Params& params) ServerInstance->Modes.ModeParamsToChangeList(who, MODETYPE_CHANNEL, params, changelist, 2); ModeParser::ModeProcessFlag flags = ModeParser::MODE_LOCALONLY; - if ((TS == ourTS) && IS_SERVER(who)) + if ((TS == ourTS) && who->IsServer()) flags |= ModeParser::MODE_MERGE; ServerInstance->Modes.Process(who, chan, nullptr, changelist, flags); @@ -93,7 +93,7 @@ CmdResult CommandLMode::Handle(User* who, Params& params) } ModeParser::ModeProcessFlag flags = ModeParser::MODE_LOCALONLY; - if (chants == chan->age && IS_SERVER(who)) + if (chants == chan->age && who->IsServer()) flags |= ModeParser::MODE_MERGE; ServerInstance->Modes.Process(who, chan, nullptr, changelist, flags); diff --git a/modules/spanningtree/idle.cpp b/modules/spanningtree/idle.cpp index 838d09045..0510f6054 100644 --- a/modules/spanningtree/idle.cpp +++ b/modules/spanningtree/idle.cpp @@ -43,7 +43,7 @@ CmdResult CommandIdle::HandleRemote(RemoteUser* issuer, Params& params) if (!target) return CmdResult::FAILURE; - LocalUser* localtarget = IS_LOCAL(target); + auto* localtarget = target->AsLocal(); if (!localtarget) { // Forward to target's server diff --git a/modules/spanningtree/main.cpp b/modules/spanningtree/main.cpp index 09793c7a2..91551e75e 100644 --- a/modules/spanningtree/main.cpp +++ b/modules/spanningtree/main.cpp @@ -383,7 +383,7 @@ ModResult ModuleSpanningTree::HandleConnect(const CommandBase::Params& parameter void ModuleSpanningTree::OnUserInvite(User* source, User* dest, Channel* channel, time_t expiry, ModeHandler::Rank notifyrank, CUList& notifyexcepts) { - if (IS_LOCAL(source)) + if (source->IsLocal()) { CmdBuilder params(source, "INVITE"); params.push(dest->uuid); @@ -409,7 +409,7 @@ ModResult ModuleSpanningTree::OnPreTopicChange(User* user, Channel* chan, const void ModuleSpanningTree::OnPostTopicChange(User* user, Channel* chan, const std::string& topic) { // Drop remote events on the floor. - if (!IS_LOCAL(user)) + if (!user->IsLocal()) return; CommandFTopic::Builder(user, chan).Broadcast(); @@ -417,7 +417,7 @@ void ModuleSpanningTree::OnPostTopicChange(User* user, Channel* chan, const std: void ModuleSpanningTree::OnUserPostMessage(User* user, const MessageTarget& target, const MessageDetails& details) { - if (!IS_LOCAL(user)) + if (!user->IsLocal()) return; const char* message_type = (details.type == MessageType::PRIVMSG ? "PRIVMSG" : "NOTICE"); @@ -426,7 +426,7 @@ void ModuleSpanningTree::OnUserPostMessage(User* user, const MessageTarget& targ case MessageTarget::TYPE_USER: { auto* d = target.Get(); - if (!IS_LOCAL(d)) + if (!d->IsLocal()) { CmdBuilder params(user, message_type); params.push_tags(details.tags_out); @@ -456,7 +456,7 @@ void ModuleSpanningTree::OnUserPostMessage(User* user, const MessageTarget& targ void ModuleSpanningTree::OnUserPostTagMessage(User* user, const MessageTarget& target, const CTCTags::TagMessageDetails& details) { - if (!IS_LOCAL(user)) + if (!user->IsLocal()) return; switch (target.type) @@ -464,7 +464,7 @@ void ModuleSpanningTree::OnUserPostTagMessage(User* user, const MessageTarget& t case MessageTarget::TYPE_USER: { auto* d = target.Get(); - if (!IS_LOCAL(d)) + if (!d->IsLocal()) { CmdBuilder params(user, "TAGMSG"); params.push_tags(details.tags_out); @@ -532,7 +532,7 @@ void ModuleSpanningTree::OnUserConnect(LocalUser* user) void ModuleSpanningTree::OnUserJoin(Membership* memb, bool sync, bool created_by_local, CUList& excepts) { // Only do this for local users - if (!IS_LOCAL(memb->user)) + if (!memb->user->IsLocal()) return; // Assign the current membership id to the new Membership and increase it @@ -563,7 +563,7 @@ void ModuleSpanningTree::OnUserJoin(Membership* memb, bool sync, bool created_by void ModuleSpanningTree::OnChangeHost(User* user, const std::string& newhost) { - if (!user->IsFullyConnected() || !IS_LOCAL(user)) + if (!user->IsFullyConnected() || !user->IsLocal()) return; CmdBuilder(user, "FHOST").push(newhost).push('*').Broadcast(); @@ -571,7 +571,7 @@ void ModuleSpanningTree::OnChangeHost(User* user, const std::string& newhost) void ModuleSpanningTree::OnChangeRealHost(User* user, const std::string& newhost) { - if (!user->IsFullyConnected() || !IS_LOCAL(user)) + if (!user->IsFullyConnected() || !user->IsLocal()) return; CmdBuilder(user, "FHOST").push('*').push(newhost).Broadcast(); @@ -579,7 +579,7 @@ void ModuleSpanningTree::OnChangeRealHost(User* user, const std::string& newhost void ModuleSpanningTree::OnChangeRealName(User* user, const std::string& real) { - if (!user->IsFullyConnected() || !IS_LOCAL(user)) + if (!user->IsFullyConnected() || !user->IsLocal()) return; CmdBuilder(user, "FNAME").push_last(real).Broadcast(); @@ -587,7 +587,7 @@ void ModuleSpanningTree::OnChangeRealName(User* user, const std::string& real) void ModuleSpanningTree::OnChangeUser(User* user, const std::string& newuser) { - if (!user->IsFullyConnected() || !IS_LOCAL(user)) + if (!user->IsFullyConnected() || !user->IsLocal()) return; CmdBuilder(user, "FIDENT").push(newuser).push("*").Broadcast(); @@ -595,7 +595,7 @@ void ModuleSpanningTree::OnChangeUser(User* user, const std::string& newuser) void ModuleSpanningTree::OnChangeRealUser(User* user, const std::string& newuser) { - if (!user->IsFullyConnected() || !IS_LOCAL(user)) + if (!user->IsFullyConnected() || !user->IsLocal()) return; CmdBuilder(user, "FIDENT").push("*").push(newuser).Broadcast(); @@ -603,7 +603,7 @@ void ModuleSpanningTree::OnChangeRealUser(User* user, const std::string& newuser void ModuleSpanningTree::OnUserPart(Membership* memb, std::string& partmessage, CUList& excepts) { - if (IS_LOCAL(memb->user)) + if (memb->user->IsLocal()) { CmdBuilder params(memb->user, "PART"); params.push(memb->chan->name); @@ -615,7 +615,7 @@ void ModuleSpanningTree::OnUserPart(Membership* memb, std::string& partmessage, void ModuleSpanningTree::OnUserQuit(User* user, const std::string& reason, const std::string& oper_message) { - if (IS_LOCAL(user)) + if (user->IsLocal()) { if (oper_message != reason) ServerInstance->PI->SendMetadata(user, "operquit", oper_message); @@ -642,7 +642,7 @@ void ModuleSpanningTree::OnUserQuit(User* user, const std::string& reason, const void ModuleSpanningTree::OnUserPostNick(User* user, const std::string& oldnick) { - if (IS_LOCAL(user)) + if (user->IsLocal()) { // The nick TS is updated by the core, we don't do it CmdBuilder params(user, "NICK"); @@ -658,14 +658,14 @@ void ModuleSpanningTree::OnUserPostNick(User* user, const std::string& oldnick) void ModuleSpanningTree::OnUserKick(User* source, Membership* memb, const std::string& reason, CUList& excepts) { - if ((!IS_LOCAL(source)) && (source != ServerInstance->FakeClient)) + if ((!source->IsLocal()) && (source != ServerInstance->FakeClient)) return; CmdBuilder params(source, "KICK"); params.push(memb->chan->name); params.push(memb->user->uuid); // If a remote user is being kicked by us then send the membership id in the kick too - if (!IS_LOCAL(memb->user)) + if (!memb->user->IsLocal()) params.push_int(memb->id); params.push_last(reason); params.Broadcast(); @@ -716,7 +716,7 @@ void ModuleSpanningTree::ReadConfig(ConfigStatus& status) std::string msg = "Error in configuration: "; msg.append(e.GetReason()); ServerInstance->SNO.WriteToSnoMask('l', msg); - if (status.srcuser && !IS_LOCAL(status.srcuser)) + if (status.srcuser && !status.srcuser->IsLocal()) ServerInstance->PI->SendSNONotice('L', msg); } } @@ -786,7 +786,7 @@ restart: void ModuleSpanningTree::OnOperLogin(User* user, const std::shared_ptr& oper, bool automatic) { - if (!user->IsFullyConnected() || !IS_LOCAL(user)) + if (!user->IsFullyConnected() || !user->IsLocal()) return; // Note: The protocol does not allow direct umode +o; @@ -796,7 +796,7 @@ void ModuleSpanningTree::OnOperLogin(User* user, const std::shared_ptrIsBurstable() || loopCall || (user && !IS_LOCAL(user))) + if (!x->IsBurstable() || loopCall || (user && !user->IsLocal())) return; if (!user) @@ -807,7 +807,7 @@ void ModuleSpanningTree::OnAddLine(User* user, XLine* x) void ModuleSpanningTree::OnDelLine(User* user, XLine* x) { - if (!x->IsBurstable() || loopCall || (user && !IS_LOCAL(user))) + if (!x->IsBurstable() || loopCall || (user && !user->IsLocal())) return; if (!user) @@ -821,7 +821,7 @@ void ModuleSpanningTree::OnDelLine(User* user, XLine* x) void ModuleSpanningTree::OnUserAway(User* user, const std::optional& prevstate) { - if (IS_LOCAL(user) && user->IsFullyConnected()) + if (user->IsLocal() && user->IsFullyConnected()) CommandAway::Builder(user).Broadcast(); } diff --git a/modules/spanningtree/num.cpp b/modules/spanningtree/num.cpp index 595bc89ac..64cc0f62e 100644 --- a/modules/spanningtree/num.cpp +++ b/modules/spanningtree/num.cpp @@ -30,7 +30,7 @@ CmdResult CommandNum::HandleServer(TreeServer* server, CommandBase::Params& para if (!target) return CmdResult::FAILURE; - LocalUser* const localtarget = IS_LOCAL(target); + auto* const localtarget = target->AsLocal(); if (!localtarget) return CmdResult::SUCCESS; diff --git a/modules/spanningtree/override_whois.cpp b/modules/spanningtree/override_whois.cpp index 0e1ee727d..dfdb987eb 100644 --- a/modules/spanningtree/override_whois.cpp +++ b/modules/spanningtree/override_whois.cpp @@ -31,7 +31,7 @@ ModResult ModuleSpanningTree::HandleRemoteWhois(const CommandBase::Params& parameters, User* user) { auto* remote = ServerInstance->Users.FindNick(parameters[1]); - if (remote && !IS_LOCAL(remote)) + if (remote && !remote->IsLocal()) { CmdBuilder(user, "IDLE").push(remote->uuid).Unicast(remote); return MOD_RES_DENY; diff --git a/modules/spanningtree/postcommand.cpp b/modules/spanningtree/postcommand.cpp index fbb0ecc3c..1f9e20a55 100644 --- a/modules/spanningtree/postcommand.cpp +++ b/modules/spanningtree/postcommand.cpp @@ -115,7 +115,7 @@ void SpanningTreeUtilities::RouteCommand(TreeServer* origin, CommandBase* thiscm { // user target? auto* d = ServerInstance->Users.Find(dest); - if (!d || IS_LOCAL(d)) + if (!d || d->IsLocal()) return; TreeServer* tsd = TreeServer::Get(d)->GetRoute(); if (tsd == origin) diff --git a/modules/spanningtree/rconnect.cpp b/modules/spanningtree/rconnect.cpp index d787173d9..6ccdcf206 100644 --- a/modules/spanningtree/rconnect.cpp +++ b/modules/spanningtree/rconnect.cpp @@ -67,7 +67,7 @@ CmdResult CommandRConnect::Handle(User* user, const Params& parameters) * for those conditions here, as ModuleSpanningTree::HandleConnect() (which will run * on the target) does all the checking and error reporting. */ - if (IS_LOCAL(user)) + if (user->IsLocal()) { user->WriteNotice("*** RCONNECT: Sending remote connect to \002 " + parameters[0] + "\002 to connect server \002" + parameters[1] + "\002."); } diff --git a/modules/spanningtree/reply.cpp b/modules/spanningtree/reply.cpp index 4a407296e..095dc0eeb 100644 --- a/modules/spanningtree/reply.cpp +++ b/modules/spanningtree/reply.cpp @@ -30,7 +30,7 @@ CmdResult CommandReply::HandleServer(TreeServer* server, CommandBase::Params& pa if (!target) return CmdResult::FAILURE; // User has gone. - auto* ltarget = IS_LOCAL(target); + auto* ltarget = target->AsLocal(); if (!ltarget) return CmdResult::SUCCESS; // Not for us. diff --git a/modules/spanningtree/servercommand.h b/modules/spanningtree/servercommand.h index af1761cb0..e4e2062cf 100644 --- a/modules/spanningtree/servercommand.h +++ b/modules/spanningtree/servercommand.h @@ -71,9 +71,10 @@ public: CmdResult Handle(User* user, Params& parameters) override { - RemoteUser* remoteuser = IS_REMOTE(user); - if (!remoteuser) + if (!user->IsRemote()) throw ProtocolException("Invalid source"); + + auto* remoteuser = static_cast(user); return static_cast(this)->HandleRemote(remoteuser, parameters); } }; @@ -91,8 +92,9 @@ public: CmdResult Handle(User* user, CommandBase::Params& parameters) override { - if (!IS_SERVER(user)) + if (!user->IsServer()) throw ProtocolException("Invalid source"); + TreeServer* server = TreeServer::Get(user); return static_cast(this)->HandleServer(server, parameters); } diff --git a/modules/spanningtree/tags.cpp b/modules/spanningtree/tags.cpp index 9b4077a98..ce13ca4ea 100644 --- a/modules/spanningtree/tags.cpp +++ b/modules/spanningtree/tags.cpp @@ -30,7 +30,7 @@ ModResult ServerTags::OnProcessTag(User* user, const std::string& tagname, std:: return MOD_RES_PASSTHRU; // Only allow tags from remote users. - return IS_LOCAL(user) ? MOD_RES_DENY : MOD_RES_ALLOW; + return user->IsLocal() ? MOD_RES_DENY : MOD_RES_ALLOW; } bool ServerTags::ShouldSendTag(LocalUser* user, const ClientProtocol::MessageTagData& tagdata) diff --git a/modules/spanningtree/utils.cpp b/modules/spanningtree/utils.cpp index 240d5a3ee..6254c0a41 100644 --- a/modules/spanningtree/utils.cpp +++ b/modules/spanningtree/utils.cpp @@ -150,7 +150,7 @@ void SpanningTreeUtilities::GetListOfServersForChannel(const Channel* c, TreeSoc TreeServer::ChildServers children = TreeRoot->GetChildren(); for (const auto& [user, memb] : c->GetUsers()) { - if (IS_LOCAL(user)) + if (user->IsLocal()) continue; if (minrank && memb->GetRank() < minrank) -- cgit v1.3.1-10-gc9f91