From 96e0f18f7faf7bf590c311cd0b63725c64fb4800 Mon Sep 17 00:00:00 2001 From: Herman Date: Sat, 12 Jun 2021 07:59:13 +0300 Subject: Code refactor and minor fix (#1879) --- src/modules/m_check.cpp | 9 +++--- src/modules/m_cloaking.cpp | 2 +- src/modules/m_filter.cpp | 16 +++++----- src/modules/m_httpd_stats.cpp | 7 +++-- src/modules/m_ircv3.cpp | 7 +---- src/modules/m_nationalchars.cpp | 38 ++++++++++++------------ src/modules/m_override.cpp | 2 +- src/modules/m_permchannels.cpp | 2 +- src/modules/m_sasl.cpp | 5 +++- src/modules/m_spanningtree/main.cpp | 3 +- src/modules/m_spanningtree/protocolinterface.cpp | 15 +++++----- src/modules/m_svshold.cpp | 2 +- src/modules/m_xline_db.cpp | 3 +- 13 files changed, 55 insertions(+), 56 deletions(-) (limited to 'src/modules') diff --git a/src/modules/m_check.cpp b/src/modules/m_check.cpp index 714f0bddd..2eafc0358 100644 --- a/src/modules/m_check.cpp +++ b/src/modules/m_check.cpp @@ -295,16 +295,17 @@ class CommandCheck : public Command const user_hash& users = ServerInstance->Users->GetUsers(); for (user_hash::const_iterator a = users.begin(); a != users.end(); ++a) { - if (InspIRCd::Match(a->second->GetRealHost(), parameters[0], ascii_case_insensitive_map) || InspIRCd::Match(a->second->GetDisplayedHost(), parameters[0], ascii_case_insensitive_map)) + User* ituser = a->second; + if (InspIRCd::Match(ituser->GetRealHost(), parameters[0], ascii_case_insensitive_map) || InspIRCd::Match(ituser->GetDisplayedHost(), parameters[0], ascii_case_insensitive_map)) { /* host or vhost matches mask */ - context.Write("match", ConvToStr(++x) + " " + a->second->GetFullRealHost() + " " + a->second->GetIPString() + " " + a->second->GetRealName()); + context.Write("match", ConvToStr(++x) + " " + ituser->GetFullRealHost() + " " + ituser->GetIPString() + " " + ituser->GetRealName()); } /* IP address */ - else if (InspIRCd::MatchCIDR(a->second->GetIPString(), parameters[0])) + else if (InspIRCd::MatchCIDR(ituser->GetIPString(), parameters[0])) { /* same IP. */ - context.Write("match", ConvToStr(++x) + " " + a->second->GetFullRealHost() + " " + a->second->GetIPString() + " " + a->second->GetRealName()); + context.Write("match", ConvToStr(++x) + " " + ituser->GetFullRealHost() + " " + ituser->GetIPString() + " " + ituser->GetRealName()); } } diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp index a2bc778b0..18cc999f3 100644 --- a/src/modules/m_cloaking.cpp +++ b/src/modules/m_cloaking.cpp @@ -187,7 +187,7 @@ class CloakUser : public ModeHandler * and make it match the displayed one. */ user->SetMode(this, false); - user->ChangeDisplayedHost(user->GetRealHost().c_str()); + user->ChangeDisplayedHost(user->GetRealHost()); return MODEACTION_ALLOW; } } diff --git a/src/modules/m_filter.cpp b/src/modules/m_filter.cpp index c666f6ad2..158f8eb57 100644 --- a/src/modules/m_filter.cpp +++ b/src/modules/m_filter.cpp @@ -882,19 +882,19 @@ void ModuleFilter::ReadFilters() ConfigTagList tags = ServerInstance->Config->ConfTags("keyword"); for (ConfigIter i = tags.first; i != tags.second; ++i) { - std::string pattern = i->second->getString("pattern"); - std::string reason = i->second->getString("reason"); - std::string action = i->second->getString("action"); - std::string flgs = i->second->getString("flags"); - unsigned long duration = i->second->getDuration("duration", 10*60, 1); - if (flgs.empty()) - flgs = "*"; + ConfigTag* tag = i->second; + std::string pattern = tag->getString("pattern"); + std::string reason = tag->getString("reason"); + std::string action = tag->getString("action"); + std::string flgs = tag->getString("flags", "*", 1); + bool generated = tag->getBool("generated"); + unsigned long duration = tag->getDuration("duration", 10*60, 1); FilterAction fa; if (!StringToFilterAction(action, fa)) fa = FA_NONE; - std::pair result = static_cast(this)->AddFilter(pattern, fa, reason, duration, flgs, !i->second->getBool("generated")); + std::pair result = static_cast(this)->AddFilter(pattern, fa, reason, duration, flgs, !generated); if (result.first) removedfilters.erase(pattern); else diff --git a/src/modules/m_httpd_stats.cpp b/src/modules/m_httpd_stats.cpp index 1e9f4ef4b..54f231e88 100644 --- a/src/modules/m_httpd_stats.cpp +++ b/src/modules/m_httpd_stats.cpp @@ -150,10 +150,11 @@ namespace Stats continue; for (LookupIter i = lookup->begin(); i != lookup->end(); ++i) { + XLine* e = i->second; data << "c_str() << "\">" - << Sanitize(i->second->Displayable()) << "" - << i->second->set_time << "" << i->second->duration - << "" << Sanitize(i->second->reason) + << Sanitize(e->Displayable()) << "" + << e->set_time << "" << e->duration + << "" << Sanitize(e->reason) << ""; } } diff --git a/src/modules/m_ircv3.cpp b/src/modules/m_ircv3.cpp index e23999045..d06412266 100644 --- a/src/modules/m_ircv3.cpp +++ b/src/modules/m_ircv3.cpp @@ -165,13 +165,8 @@ class ModuleIRCv3 void OnUserBack(User* user) CXX11_OVERRIDE { - if (!joinhook.awaycap.IsActive()) - return; - // Back from away: n!u@h AWAY - AwayMessage msg(user); - ClientProtocol::Event awayevent(joinhook.awayprotoev, msg); - IRCv3::WriteNeighborsWithCap(user, awayevent, joinhook.awaycap); + OnUserAway(user); } Version GetVersion() CXX11_OVERRIDE diff --git a/src/modules/m_nationalchars.cpp b/src/modules/m_nationalchars.cpp index c56dfe81c..7d8374309 100644 --- a/src/modules/m_nationalchars.cpp +++ b/src/modules/m_nationalchars.cpp @@ -42,9 +42,9 @@ class lwbNickHandler static unsigned char m_reverse_additional[256],m_additionalMB[256],m_additionalUtf8[256],m_additionalUtf8range[256],m_additionalUtf8interval[256]; -char utf8checkrest(unsigned char * mb, unsigned char cnt) +char utf8checkrest(unsigned char* mb, unsigned char cnt) { - for (unsigned char * tmp=mb; tmp= mb[0]) && (i[0] <= mb[1]) && (i[1] >= mb[2]) && (i[1] <= mb[3]) ) { @@ -118,19 +118,19 @@ bool lwbNickHandler::Call(const std::string& nick) continue; /* 3.1. Check against a simple UTF-8 characters enumeration */ - int cursize, cursize2, ncursize = utf8size((unsigned char *)i); + int cursize, cursize2, ncursize = utf8size((unsigned char*)i); /* do check only if current multibyte character is valid UTF-8 only */ if (ncursize != -1) { bool found = false; - for (unsigned char * mb = m_additionalUtf8; (utf8size(mb) != -1) && (mb < m_additionalUtf8 + sizeof(m_additionalUtf8)); mb += cursize) + for (unsigned char* mb = m_additionalUtf8; (utf8size(mb) != -1) && (mb < m_additionalUtf8 + sizeof(m_additionalUtf8)); mb += cursize) { cursize = utf8size(mb); /* Size differs? Pick the next! */ if (cursize != ncursize) continue; - if (!strncmp(i, (char *)mb, cursize)) + if (!strncmp(i, (char*)mb, cursize)) { i += cursize - 1; p += cursize - 1; @@ -143,7 +143,7 @@ bool lwbNickHandler::Call(const std::string& nick) /* 3.2. Check against an UTF-8 ranges: and . */ found = false; - for (unsigned char * mb = m_additionalUtf8range; (utf8size(mb) != -1) && (mb < m_additionalUtf8range + sizeof(m_additionalUtf8range)); mb += cursize + 1) + for (unsigned char* mb = m_additionalUtf8range; (utf8size(mb) != -1) && (mb < m_additionalUtf8range + sizeof(m_additionalUtf8range)); mb += cursize + 1) { cursize = utf8size(mb); /* Size differs (or lengthbyte is zero)? Pick the next! */ @@ -151,7 +151,7 @@ bool lwbNickHandler::Call(const std::string& nick) continue; unsigned char uright[5] = {0,0,0,0,0}, range = mb[cursize] - 1; - strncpy((char* ) uright, (char *) mb, cursize); + strncpy((char*) uright, (char*) mb, cursize); for (int temp = cursize - 1; (temp >= 0) && range; --temp) { @@ -175,7 +175,7 @@ bool lwbNickHandler::Call(const std::string& nick) } } - if ((strncmp(i, (char *) mb, cursize) >= 0) && (strncmp(i, (char *) uright, cursize) <= 0)) + if ((strncmp(i, (char*) mb, cursize) >= 0) && (strncmp(i, (char*) uright, cursize) <= 0)) { i += cursize - 1; p += cursize - 1; @@ -188,7 +188,7 @@ bool lwbNickHandler::Call(const std::string& nick) /* 3.3. Check against an UTF-8 intervals: and . */ found = false; - for (unsigned char * mb = m_additionalUtf8interval; (utf8size(mb) != -1) && (utf8size(mb+utf8size(mb)) != -1) + for (unsigned char* mb = m_additionalUtf8interval; (utf8size(mb) != -1) && (utf8size(mb+utf8size(mb)) != -1) && (mb < m_additionalUtf8interval + sizeof(m_additionalUtf8interval)); mb += (cursize+cursize2) ) { cursize = utf8size(mb); @@ -199,7 +199,7 @@ bool lwbNickHandler::Call(const std::string& nick) unsigned char* uright = mb + cursize; - if ((strncmp(i, (char *) mb, minlen) >= 0) && (strncmp(i, (char *) uright, minlen2) <= 0)) + if ((strncmp(i, (char*) mb, minlen) >= 0) && (strncmp(i, (char*) uright, minlen2) <= 0)) { i += cursize - 1; p += cursize - 1; @@ -284,7 +284,7 @@ class ModuleNationalChars : public Module if(charset[0] != '/') charset.insert(0, "../locales/"); #endif - unsigned char * tables[8] = { m_additional, m_additionalMB, m_additionalUp, m_lower, m_upper, m_additionalUtf8, m_additionalUtf8range, m_additionalUtf8interval }; + unsigned char* tables[8] = { m_additional, m_additionalMB, m_additionalUp, m_lower, m_upper, m_additionalUtf8, m_additionalUtf8range, m_additionalUtf8interval }; if (!loadtables(charset, tables, 8, 5)) throw ModuleException("The locale file failed to load. Check your log file for more information."); forcequit = tag->getBool("forcequit"); @@ -292,7 +292,7 @@ class ModuleNationalChars : public Module CheckRehash(); } - void CheckForceQuit(const char * message) + void CheckForceQuit(const char* message) { if (!forcequit) return; @@ -326,15 +326,15 @@ class ModuleNationalChars : public Module } /*make an array to check against it 8bit characters a bit faster. Whether allowed or uppercase (for your needs).*/ - void makereverse(unsigned char * from, unsigned char * to, unsigned int cnt) + void makereverse(unsigned char* from, unsigned char* to, unsigned int cnt) { memset(to, 0, cnt); - for(unsigned char * n=from; (*n) && ((*n)Config->Paths.PrependConfig(filename).c_str()); if (ifs.fail()) @@ -363,7 +363,7 @@ class ModuleNationalChars : public Module return true; } - unsigned char symtoi(const char *t,unsigned char base) + unsigned char symtoi(const char* t,unsigned char base) /* base = 16 for hexadecimal, 10 for decimal, 8 for octal ;) */ { unsigned char tmp = 0, current; @@ -381,7 +381,7 @@ class ModuleNationalChars : public Module return tmp; } - int loadtable(std::ifstream &ifs , unsigned char *chartable, unsigned int maxindex) + int loadtable(std::ifstream& ifs , unsigned char* chartable, unsigned int maxindex) { std::string buf; getline(ifs, buf); @@ -389,7 +389,7 @@ class ModuleNationalChars : public Module unsigned int i = 0; int fail = 0; - buf.erase(buf.find_last_not_of("\n") + 1); + buf.erase(buf.find_last_not_of('\n') + 1); if (buf[0] == '.') /* simple plain-text string after dot */ { diff --git a/src/modules/m_override.cpp b/src/modules/m_override.cpp index 289c894bf..aa12bf324 100644 --- a/src/modules/m_override.cpp +++ b/src/modules/m_override.cpp @@ -121,7 +121,7 @@ class ModuleOverride : public Module std::string tokenlist = source->oper->getConfig("override"); // its defined or * is set, return its value as a boolean for if the token is set - return ((tokenlist.find(token, 0) != std::string::npos) || (tokenlist.find("*", 0) != std::string::npos)); + return ((tokenlist.find(token, 0) != std::string::npos) || (tokenlist.find('*', 0) != std::string::npos)); } diff --git a/src/modules/m_permchannels.cpp b/src/modules/m_permchannels.cpp index 35736bf71..ae2fd59ad 100644 --- a/src/modules/m_permchannels.cpp +++ b/src/modules/m_permchannels.cpp @@ -207,7 +207,6 @@ public: { ConfigTag* tag = i->second; std::string channel = tag->getString("channel"); - std::string modes = tag->getString("modes"); if (!ServerInstance->IsChannel(channel)) { @@ -237,6 +236,7 @@ public: ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Added %s with topic %s", channel.c_str(), c->topic.c_str()); + std::string modes = tag->getString("modes"); if (modes.empty()) continue; diff --git a/src/modules/m_sasl.cpp b/src/modules/m_sasl.cpp index 57e605d61..1f47038bf 100644 --- a/src/modules/m_sasl.cpp +++ b/src/modules/m_sasl.cpp @@ -194,6 +194,7 @@ class SaslAuthenticator void SendHostIP(UserCertificateAPI& sslapi) { std::vector params; + params.reserve(3); params.push_back(user->GetRealHost()); params.push_back(user->GetIPString()); params.push_back(sslapi && sslapi->GetCertificate(user) ? "S" : "P"); @@ -251,10 +252,12 @@ class SaslAuthenticator ClientProtocol::Message authmsg("AUTHENTICATE"); authmsg.PushParamRef(msg[3]); - ClientProtocol::Event authevent(*g_protoev, authmsg); LocalUser* const localuser = IS_LOCAL(user); if (localuser) + { + ClientProtocol::Event authevent(*g_protoev, authmsg); localuser->Send(authevent); + } } else if (msg[2] == "D") { diff --git a/src/modules/m_spanningtree/main.cpp b/src/modules/m_spanningtree/main.cpp index a2a9173eb..27abfc20a 100644 --- a/src/modules/m_spanningtree/main.cpp +++ b/src/modules/m_spanningtree/main.cpp @@ -765,8 +765,7 @@ void ModuleSpanningTree::OnUserAway(User* user) void ModuleSpanningTree::OnUserBack(User* user) { - if (IS_LOCAL(user)) - CommandAway::Builder(user).Broadcast(); + OnUserAway(user); } void ModuleSpanningTree::OnMode(User* source, User* u, Channel* c, const Modes::ChangeList& modes, ModeParser::ModeProcessFlag processflags) diff --git a/src/modules/m_spanningtree/protocolinterface.cpp b/src/modules/m_spanningtree/protocolinterface.cpp index aaf946333..c9d94d46d 100644 --- a/src/modules/m_spanningtree/protocolinterface.cpp +++ b/src/modules/m_spanningtree/protocolinterface.cpp @@ -38,13 +38,14 @@ void SpanningTreeProtocolInterface::GetServerList(ServerList& sl) for (server_hash::iterator i = Utils->serverlist.begin(); i != Utils->serverlist.end(); i++) { ServerInfo ps; - ps.servername = i->second->GetName(); - TreeServer* s = i->second->GetParent(); - ps.parentname = s ? s->GetName() : ""; - ps.usercount = i->second->UserCount; - ps.opercount = i->second->OperCount; - ps.description = i->second->GetDesc(); - ps.latencyms = i->second->rtt; + TreeServer* tree = i->second; + ps.servername = tree->GetName(); + TreeServer* parent = tree->GetParent(); + ps.parentname = parent ? parent->GetName() : ""; + ps.usercount = tree->UserCount; + ps.opercount = tree->OperCount; + ps.description = tree->GetDesc(); + ps.latencyms = tree->rtt; sl.push_back(ps); } } diff --git a/src/modules/m_svshold.cpp b/src/modules/m_svshold.cpp index 48dad2ca4..0ef5d3f80 100644 --- a/src/modules/m_svshold.cpp +++ b/src/modules/m_svshold.cpp @@ -43,8 +43,8 @@ public: SVSHold(time_t s_time, unsigned long d, const std::string& src, const std::string& re, const std::string& nick) : XLine(s_time, d, src, re, "SVSHOLD") + , nickname(nick) { - this->nickname = nick; } bool Matches(User* u) CXX11_OVERRIDE diff --git a/src/modules/m_xline_db.cpp b/src/modules/m_xline_db.cpp index 9db277164..102b96e7e 100644 --- a/src/modules/m_xline_db.cpp +++ b/src/modules/m_xline_db.cpp @@ -80,8 +80,7 @@ class ModuleXLineDB */ void OnDelLine(User* source, XLine* line) CXX11_OVERRIDE { - if (!line->from_config) - dirty = true; + OnAddLine(source, line); } bool Tick(time_t) CXX11_OVERRIDE -- cgit v1.3.1-10-gc9f91