diff options
author | Sadie Powell <sadie@witchery.services> | 2024-11-11 16:46:56 +0000 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2024-11-11 16:46:56 +0000 |
commit | 96ccfe4cbe9948206ac2d6854778f9a268d2476f (patch) | |
tree | 1e2059a204088051b0155b58de56bacaa2bfd58e /modules | |
parent | ee160842b3ccab37f005c16a8657781e0e0412fd (diff) |
Fix using User::Account where User::IsIdentified should be used.
The former causes a dereference which cause a database update. This
is not good for performance with db_sql_live on bigger networks.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/commands/greet.cpp | 2 | ||||
-rw-r--r-- | modules/commands/ns_identify.cpp | 2 | ||||
-rw-r--r-- | modules/commands/ns_set.cpp | 6 | ||||
-rw-r--r-- | modules/commands/ns_status.cpp | 2 | ||||
-rw-r--r-- | modules/extra/m_ldap_authentication.cpp | 2 | ||||
-rw-r--r-- | modules/extra/m_ldap_oper.cpp | 2 | ||||
-rw-r--r-- | modules/extra/m_sql_oper.cpp | 2 | ||||
-rw-r--r-- | modules/extra/stats/irc2sql/irc2sql.cpp | 4 | ||||
-rw-r--r-- | modules/extra/stats/m_chanstats.cpp | 6 | ||||
-rw-r--r-- | modules/fantasy.cpp | 2 | ||||
-rw-r--r-- | modules/m_dnsbl.cpp | 2 | ||||
-rw-r--r-- | modules/m_xmlrpc_main.cpp | 2 | ||||
-rw-r--r-- | modules/protocol/inspircd20.cpp | 2 | ||||
-rw-r--r-- | modules/protocol/inspircd3.cpp | 2 | ||||
-rw-r--r-- | modules/protocol/unreal.cpp | 2 | ||||
-rw-r--r-- | modules/protocol/unreal4.cpp | 4 | ||||
-rw-r--r-- | modules/pseudoclients/memoserv.cpp | 2 | ||||
-rw-r--r-- | modules/pseudoclients/nickserv.cpp | 2 |
18 files changed, 24 insertions, 24 deletions
diff --git a/modules/commands/greet.cpp b/modules/commands/greet.cpp index 7e1b5ce75..963a28ffd 100644 --- a/modules/commands/greet.cpp +++ b/modules/commands/greet.cpp @@ -188,7 +188,7 @@ class Greet : public Module * to has synced, or we'll get greet-floods when the net * recovers from a netsplit. -GD */ - if (!c->ci || !c->ci->bi || !user->server->IsSynced() || !user->Account()) + if (!c->ci || !c->ci->bi || !user->server->IsSynced() || !user->IsIdentified()) return; Anope::string *greet = ns_greet.Get(user->Account()); diff --git a/modules/commands/ns_identify.cpp b/modules/commands/ns_identify.cpp index e0d0f601a..545001602 100644 --- a/modules/commands/ns_identify.cpp +++ b/modules/commands/ns_identify.cpp @@ -82,7 +82,7 @@ class CommandNSIdentify : public Command return; } - if (u->Account() && na && u->Account() == na->nc) + if (u->IsIdentified() && na && u->Account() == na->nc) { source.Reply(_("You are already identified.")); return; diff --git a/modules/commands/ns_set.cpp b/modules/commands/ns_set.cpp index a3bfb3630..5ec161421 100644 --- a/modules/commands/ns_set.cpp +++ b/modules/commands/ns_set.cpp @@ -1286,7 +1286,7 @@ class NSSet : public Module if (chan->ci) { /* Only give modes if autoop is set */ - give_modes &= !user->Account() || autoop.HasExt(user->Account()); + give_modes &= !user->IsIdentified() || autoop.HasExt(user->Account()); } } @@ -1321,13 +1321,13 @@ class NSSet : public Module void OnUserModeSet(const MessageSource &setter, User *u, const Anope::string &mname) anope_override { - if (u->Account() && setter.GetUser() == u) + if (u->IsIdentified() && setter.GetUser() == u) u->Account()->last_modes = u->GetModeList(); } void OnUserModeUnset(const MessageSource &setter, User *u, const Anope::string &mname) anope_override { - if (u->Account() && setter.GetUser() == u) + if (u->IsIdentified() && setter.GetUser() == u) u->Account()->last_modes = u->GetModeList(); } diff --git a/modules/commands/ns_status.cpp b/modules/commands/ns_status.cpp index d0e15cc92..04a43ef64 100644 --- a/modules/commands/ns_status.cpp +++ b/modules/commands/ns_status.cpp @@ -36,7 +36,7 @@ class CommandNSStatus : public Command else if (u2->IsIdentified() && na && na->nc == u2->Account()) /* Nick is identified */ source.Reply("STATUS %s %d %s", nickbuf.c_str(), 3, u2->Account()->display.c_str()); else if (u2->IsRecognized()) /* Nick is recognised, but NOT identified */ - source.Reply("STATUS %s %d %s", nickbuf.c_str(), 2, u2->Account() ? u2->Account()->display.c_str() : ""); + source.Reply("STATUS %s %d %s", nickbuf.c_str(), 2, u2->IsIdentified() ? u2->Account()->display.c_str() : ""); else if (!na) /* Nick is online, but NOT a registered */ source.Reply("STATUS %s %d %s", nickbuf.c_str(), 0, ""); else diff --git a/modules/extra/m_ldap_authentication.cpp b/modules/extra/m_ldap_authentication.cpp index 5340038dd..1d44c807f 100644 --- a/modules/extra/m_ldap_authentication.cpp +++ b/modules/extra/m_ldap_authentication.cpp @@ -143,7 +143,7 @@ class OnIdentifyInterface : public LDAPInterface { User *u = User::Find(uid); - if (!u || !u->Account() || r.empty()) + if (!u || !u->IsIdentified() || r.empty()) return; try diff --git a/modules/extra/m_ldap_oper.cpp b/modules/extra/m_ldap_oper.cpp index 469b3dd84..de6af45c1 100644 --- a/modules/extra/m_ldap_oper.cpp +++ b/modules/extra/m_ldap_oper.cpp @@ -23,7 +23,7 @@ class IdentifyInterface : public LDAPInterface void OnResult(const LDAPResult &r) anope_override { - if (!u || !u->Account()) + if (!u || !u->IsIdentified()) return; NickCore *nc = u->Account(); diff --git a/modules/extra/m_sql_oper.cpp b/modules/extra/m_sql_oper.cpp index 4bc75ac7b..d0cb48ff5 100644 --- a/modules/extra/m_sql_oper.cpp +++ b/modules/extra/m_sql_oper.cpp @@ -46,7 +46,7 @@ class SQLOperResult : public SQL::Interface { SQLOperResultDeleter d(this); - if (!user || !user->Account()) + if (!user || !user->IsIdentified()) return; if (r.Rows() == 0) diff --git a/modules/extra/stats/irc2sql/irc2sql.cpp b/modules/extra/stats/irc2sql/irc2sql.cpp index 8377c5d2e..391fad050 100644 --- a/modules/extra/stats/irc2sql/irc2sql.cpp +++ b/modules/extra/stats/irc2sql/irc2sql.cpp @@ -108,7 +108,7 @@ void IRC2SQL::OnUserConnect(User *u, bool &exempt) query.SetValue("ident", u->GetIdent()); query.SetValue("vident", u->GetVIdent()); query.SetValue("secure", u->HasMode("SSL") || u->HasExt("ssl") ? "Y" : "N"); - query.SetValue("account", u->Account() ? u->Account()->display : ""); + query.SetValue("account", u->IsIdentified() ? u->Account()->display : ""); query.SetValue("fingerprint", u->fingerprint); query.SetValue("signon", u->signon); query.SetValue("server", u->server->GetName()); @@ -176,7 +176,7 @@ void IRC2SQL::OnUserLogin(User *u) { query = "UPDATE `" + prefix + "user` SET account=@account@ WHERE nick=@nick@"; query.SetValue("nick", u->nick); - query.SetValue("account", u->Account() ? u->Account()->display : ""); + query.SetValue("account", u->IsIdentified() ? u->Account()->display : ""); this->RunQuery(query); } diff --git a/modules/extra/stats/m_chanstats.cpp b/modules/extra/stats/m_chanstats.cpp index cccf4021b..f5b01dde0 100644 --- a/modules/extra/stats/m_chanstats.cpp +++ b/modules/extra/stats/m_chanstats.cpp @@ -207,7 +207,7 @@ class MChanstats : public Module const Anope::string GetDisplay(User *u) { - if (u && u->Account() && ns_stats.HasExt(u->Account())) + if (u && u->IsIdentified() && ns_stats.HasExt(u->Account())) return u->Account()->display; else return ""; @@ -527,7 +527,7 @@ class MChanstats : public Module void OnTopicUpdated(User *source, Channel *c, const Anope::string &user, const Anope::string &topic) anope_override { - if (!source || !source->Account() || !c->ci || !cs_stats.HasExt(c->ci)) + if (!source || !source->IsIdentified() || !c->ci || !cs_stats.HasExt(c->ci)) return; query = "CALL " + prefix + "chanstats_proc_update(@channel@, @nick@, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);"; query.SetValue("channel", c->name); @@ -550,7 +550,7 @@ class MChanstats : public Module private: void OnModeChange(Channel *c, User *u) { - if (!u || !u->Account() || !c->ci || !cs_stats.HasExt(c->ci)) + if (!u || !u->IsIdentified() || !c->ci || !cs_stats.HasExt(c->ci)) return; query = "CALL " + prefix + "chanstats_proc_update(@channel@, @nick@, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0);"; diff --git a/modules/fantasy.cpp b/modules/fantasy.cpp index c4dfc957e..c815781bf 100644 --- a/modules/fantasy.cpp +++ b/modules/fantasy.cpp @@ -167,7 +167,7 @@ class Fantasy : public Module } // Command requires registered users only - if (!cmd->AllowUnregistered() && !u->Account()) + if (!cmd->AllowUnregistered() && !u->IsIdentified()) return; if (params.size() < cmd->min_params) diff --git a/modules/m_dnsbl.cpp b/modules/m_dnsbl.cpp index 78bd9f596..a37bcf1b1 100644 --- a/modules/m_dnsbl.cpp +++ b/modules/m_dnsbl.cpp @@ -68,7 +68,7 @@ class DNSBLResolver : public Request if (!blacklist.replies.empty() && !reply) return; - if (reply && reply->allow_account && user->Account()) + if (reply && reply->allow_account && user->IsIdentified()) return; Anope::string reason = this->blacklist.reason, addr = user->ip.addr(); diff --git a/modules/m_xmlrpc_main.cpp b/modules/m_xmlrpc_main.cpp index 7b4e35fe6..d391af518 100644 --- a/modules/m_xmlrpc_main.cpp +++ b/modules/m_xmlrpc_main.cpp @@ -226,7 +226,7 @@ class MyXMLRPCEvent : public XMLRPCEvent request.reply("ip", u->ip.addr()); request.reply("timestamp", stringify(u->timestamp)); request.reply("signon", stringify(u->signon)); - if (u->Account()) + if (u->IsIdentified()) { request.reply("account", iface->Sanitize(u->Account()->display)); if (u->Account()->o) diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp index 9dbaf69c0..faf064bdd 100644 --- a/modules/protocol/inspircd20.cpp +++ b/modules/protocol/inspircd20.cpp @@ -253,7 +253,7 @@ namespace InspIRCdExtban { const Anope::string &mask = e->GetMask(); Anope::string real_mask = mask.substr(2); - return !u->Account() && Entry("BAN", real_mask).Matches(u); + return !u->IsIdentified() && Entry("BAN", real_mask).Matches(u); } }; } diff --git a/modules/protocol/inspircd3.cpp b/modules/protocol/inspircd3.cpp index 45d877d78..05371c091 100644 --- a/modules/protocol/inspircd3.cpp +++ b/modules/protocol/inspircd3.cpp @@ -699,7 +699,7 @@ namespace InspIRCdExtban { const Anope::string &mask = e->GetMask(); Anope::string real_mask = mask.substr(2); - return !u->Account() && Entry("BAN", real_mask).Matches(u); + return !u->IsIdentified() && Entry("BAN", real_mask).Matches(u); } }; diff --git a/modules/protocol/unreal.cpp b/modules/protocol/unreal.cpp index e6654ddc9..2fa883c10 100644 --- a/modules/protocol/unreal.cpp +++ b/modules/protocol/unreal.cpp @@ -537,7 +537,7 @@ namespace UnrealExtban const Anope::string &mask = e->GetMask(); Anope::string real_mask = mask.substr(3); - return u->Account() && Anope::Match(u->Account()->display, real_mask); + return u->IsIdentified() && Anope::Match(u->Account()->display, real_mask); } }; } diff --git a/modules/protocol/unreal4.cpp b/modules/protocol/unreal4.cpp index 939a68eea..1147b10e8 100644 --- a/modules/protocol/unreal4.cpp +++ b/modules/protocol/unreal4.cpp @@ -559,10 +559,10 @@ namespace UnrealExtban const Anope::string &mask = e->GetMask(); Anope::string real_mask = mask.substr(3); - if (real_mask == "0" && !u->Account()) /* ~a:0 is special and matches all unauthenticated users */ + if (real_mask == "0" && !u->IsIdentified()) /* ~a:0 is special and matches all unauthenticated users */ return true; - return u->Account() && Anope::Match(u->Account()->display, real_mask); + return u->IsIdentified() && Anope::Match(u->Account()->display, real_mask); } }; diff --git a/modules/pseudoclients/memoserv.cpp b/modules/pseudoclients/memoserv.cpp index 8019086c6..cdfa93599 100644 --- a/modules/pseudoclients/memoserv.cpp +++ b/modules/pseudoclients/memoserv.cpp @@ -100,7 +100,7 @@ class MemoServCore : public Module, public MemoServService if (ci->AccessFor(cu->user).HasPriv("MEMO")) { - if (cu->user->Account() && cu->user->Account()->HasExt("MEMO_RECEIVE")) + if (cu->user->IsIdentified() && cu->user->Account()->HasExt("MEMO_RECEIVE")) cu->user->SendMessage(MemoServ, MEMO_NEW_X_MEMO_ARRIVED, ci->name.c_str(), Config->StrictPrivmsg.c_str(), MemoServ->nick.c_str(), ci->name.c_str(), mi->memos->size()); } } diff --git a/modules/pseudoclients/nickserv.cpp b/modules/pseudoclients/nickserv.cpp index 8bed39bba..bb4b3d305 100644 --- a/modules/pseudoclients/nickserv.cpp +++ b/modules/pseudoclients/nickserv.cpp @@ -399,7 +399,7 @@ class NickServCore : public Module, public NickServService const NickAlias *na = NickAlias::Find(u->nick); const Anope::string &unregistered_notice = Config->GetModule(this)->Get<const Anope::string>("unregistered_notice"); - if (!Config->GetModule("nickserv")->Get<bool>("nonicknameownership") && !unregistered_notice.empty() && !na && !u->Account()) + if (!Config->GetModule("nickserv")->Get<bool>("nonicknameownership") && !unregistered_notice.empty() && !na && !u->IsIdentified()) u->SendMessage(NickServ, unregistered_notice.replace_all_cs("%n", u->nick)); else if (na && !u->IsIdentified(true)) this->Validate(u); |