From 96ccfe4cbe9948206ac2d6854778f9a268d2476f Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Mon, 11 Nov 2024 16:46:56 +0000 Subject: 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. --- modules/extra/stats/irc2sql/irc2sql.cpp | 4 ++-- modules/extra/stats/m_chanstats.cpp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'modules/extra/stats') 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);"; -- cgit