From 76ac81c03212dd6b21345e5cbd4aca0119a2b48e Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 13 Aug 2015 18:16:03 +0200 Subject: [PATCH] webadmin: C++11 range-based for loops --- modules/webadmin.cpp | 190 +++++++++++++++++++------------------------ 1 file changed, 82 insertions(+), 108 deletions(-) diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp index dc1a6170..8d4bd467 100644 --- a/modules/webadmin.cpp +++ b/modules/webadmin.cpp @@ -143,9 +143,8 @@ public: if (!bShareIRCPorts) { // Make all existing listeners IRC-only const vector& vListeners = CZNC::Get().GetListeners(); - vector::const_iterator it; - for (it = vListeners.begin(); it != vListeners.end(); ++it) { - (*it)->SetAcceptType(CListener::ACCEPT_IRC); + for (CListener* pListener : vListeners) { + pListener->SetAcceptType(CListener::ACCEPT_IRC); } } @@ -197,20 +196,18 @@ public: } VCString vsArgs; - unsigned int a = 0; WebSock.GetRawParam("allowedips").Split("\n", vsArgs); if (vsArgs.size()) { - for (a = 0; a < vsArgs.size(); a++) { - pNewUser->AddAllowedHost(vsArgs[a].Trim_n()); + for (const CString& sHost : vsArgs) { + pNewUser->AddAllowedHost(sHost.Trim_n()); } } else { pNewUser->AddAllowedHost("*"); } WebSock.GetRawParam("ctcpreplies").Split("\n", vsArgs); - for (a = 0; a < vsArgs.size(); a++) { - CString sReply = vsArgs[a].TrimRight_n("\r"); + for (const CString& sReply : vsArgs) { pNewUser->AddCTCPReply(sReply.Token(0).Trim_n(), sReply.Token(1, true).Trim_n()); } @@ -236,15 +233,14 @@ public: const VCString& vsHosts = CZNC::Get().GetBindHosts(); if (!spSession->IsAdmin() && !vsHosts.empty()) { - VCString::const_iterator it; bool bFound = false; bool bFoundDCC = false; - for (it = vsHosts.begin(); it != vsHosts.end(); ++it) { - if (sArg.Equals(*it)) { + for (const CString& sHost : vsHosts) { + if (sArg.Equals(sHost)) { bFound = true; } - if (sArg2.Equals(*it)) { + if (sArg2.Equals(sHost)) { bFoundDCC = true; } } @@ -330,8 +326,8 @@ public: // disallow unload webadmin from itself if (CModInfo::UserModule == GetType() && pUser == CZNC::Get().FindUser(WebSock.GetUser())) { bool bLoadedWebadmin = false; - for (a = 0; a < vsArgs.size(); ++a) { - CString sModName = vsArgs[a].TrimRight_n("\r"); + for (const CString& s : vsArgs) { + CString sModName = s.TrimRight_n("\r"); if (sModName == GetModName()) { bLoadedWebadmin = true; break; @@ -342,9 +338,9 @@ public: } } - for (a = 0; a < vsArgs.size(); a++) { + for (const CString& s : vsArgs) { CString sModRet; - CString sModName = vsArgs[a].TrimRight_n("\r"); + CString sModName = s.TrimRight_n("\r"); CString sModLoadError; if (!sModName.empty()) { @@ -367,9 +363,9 @@ public: } else if (pUser) { CModules& Modules = pUser->GetModules(); - for (a = 0; a < Modules.size(); a++) { - CString sModName = Modules[a]->GetModName(); - CString sArgs = Modules[a]->GetArgs(); + for (const CModule* pMod : Modules) { + CString sModName = pMod->GetModName(); + CString sArgs = pMod->GetArgs(); CString sModRet; CString sModLoadError; @@ -777,8 +773,7 @@ public: set ssNetworkMods; CZNC::Get().GetModules().GetAvailableMods(ssNetworkMods, CModInfo::NetworkModule); - for (set::iterator it = ssNetworkMods.begin(); it != ssNetworkMods.end(); ++it) { - const CModInfo& Info = *it; + for (const CModInfo& Info : ssNetworkMods) { CTemplate& l = Tmpl.AddRow("ModuleLoop"); l["Name"] = Info.GetName(); @@ -818,8 +813,7 @@ public: } } else { bool bFoundBindHost = false; - for (unsigned int b = 0; b < vsBindHosts.size(); b++) { - const CString& sBindHost = vsBindHosts[b]; + for (const CString& sBindHost : vsBindHosts) { CTemplate& l = Tmpl.AddRow("BindHostLoop"); l["BindHost"] = sBindHost; @@ -869,14 +863,13 @@ public: breadNet["Text"] = "Edit Network [" + pNetwork->GetName() + "]"; const vector& vServers = pNetwork->GetServers(); - for (unsigned int a = 0; a < vServers.size(); a++) { + for (const CServer* pServer : vServers) { CTemplate& l = Tmpl.AddRow("ServerLoop"); - l["Server"] = vServers[a]->GetString(); + l["Server"] = pServer->GetString(); } const vector& Channels = pNetwork->GetChans(); - for (unsigned int c = 0; c < Channels.size(); c++) { - CChan* pChan = Channels[c]; + for (const CChan* pChan : Channels) { CTemplate& l = Tmpl.AddRow("ChannelLoop"); l["Network"] = pNetwork->GetName(); @@ -996,11 +989,10 @@ public: CString sHost = WebSock.GetParam("bindhost"); const VCString& vsHosts = CZNC::Get().GetBindHosts(); if (!spSession->IsAdmin() && !vsHosts.empty()) { - VCString::const_iterator it; bool bFound = false; - for (it = vsHosts.begin(); it != vsHosts.end(); ++it) { - if (sHost.Equals(*it)) { + for (const CString& s : vsHosts) { + if (sHost.Equals(s)) { bFound = true; break; } @@ -1044,8 +1036,8 @@ public: pNetwork->DelServers(); WebSock.GetRawParam("servers").Split("\n", vsArgs); - for (unsigned int a = 0; a < vsArgs.size(); a++) { - pNetwork->AddServer(vsArgs[a].Trim_n()); + for (const CString& sServer : vsArgs) { + pNetwork->AddServer(sServer.Trim_n()); } WebSock.GetRawParam("fingerprints").Split("\n", vsArgs); @@ -1055,8 +1047,7 @@ public: } WebSock.GetParamValues("channel", vsArgs); - for (unsigned int a = 0; a < vsArgs.size(); a++) { - const CString& sChan = vsArgs[a]; + for (const CString& sChan : vsArgs) { CChan *pChan = pNetwork->FindChan(sChan.TrimRight_n("\r")); if (pChan) { pChan->SetInConfig(WebSock.GetParam("save_" + sChan).ToBool()); @@ -1066,9 +1057,9 @@ public: set ssArgs; WebSock.GetParamValues("loadmod", ssArgs); if (spSession->IsAdmin() || !pUser->DenyLoadMod()) { - for (set::iterator it = ssArgs.begin(); it != ssArgs.end(); ++it) { + for (const CString& s : ssArgs) { CString sModRet; - CString sModName = (*it).TrimRight_n("\r"); + CString sModName = s.TrimRight_n("\r"); CString sModLoadError; if (!sModName.empty()) { @@ -1097,16 +1088,14 @@ public: const CModules& vCurMods = pNetwork->GetModules(); set ssUnloadMods; - for (unsigned int a = 0; a < vCurMods.size(); a++) { - CModule* pCurMod = vCurMods[a]; - + for (const CModule* pCurMod : vCurMods) { if (ssArgs.find(pCurMod->GetModName()) == ssArgs.end() && pCurMod->GetModName() != GetModName()) { ssUnloadMods.insert(pCurMod->GetModName()); } } - for (set::iterator it2 = ssUnloadMods.begin(); it2 != ssUnloadMods.end(); ++it2) { - pNetwork->GetModules().UnloadModule(*it2); + for (const CString& sMod : ssUnloadMods) { + pNetwork->GetModules().UnloadModule(sMod); } CTemplate TmplMod; @@ -1227,28 +1216,28 @@ public: Tmpl["MaxQueryBuffers"] = CString(pUser->MaxQueryBuffers()); const set& ssAllowedHosts = pUser->GetAllowedHosts(); - for (set::const_iterator it = ssAllowedHosts.begin(); it != ssAllowedHosts.end(); ++it) { + for (const CString& sHost : ssAllowedHosts) { CTemplate& l = Tmpl.AddRow("AllowedHostLoop"); - l["Host"] = *it; + l["Host"] = sHost; } const vector& vNetworks = pUser->GetNetworks(); - for (unsigned int a = 0; a < vNetworks.size(); a++) { + for (const CIRCNetwork* pNetwork : vNetworks) { CTemplate& l = Tmpl.AddRow("NetworkLoop"); - l["Name"] = vNetworks[a]->GetName(); + l["Name"] = pNetwork->GetName(); l["Username"] = pUser->GetUserName(); - l["Clients"] = CString(vNetworks[a]->GetClients().size()); - l["IRCNick"] = vNetworks[a]->GetIRCNick().GetNick(); - CServer* pServer = vNetworks[a]->GetCurrentServer(); + l["Clients"] = CString(pNetwork->GetClients().size()); + l["IRCNick"] = pNetwork->GetIRCNick().GetNick(); + CServer* pServer = pNetwork->GetCurrentServer(); if (pServer) { l["Server"] = pServer->GetName() + ":" + (pServer->IsSSL() ? "+" : "") + CString(pServer->GetPort()); } } const MCString& msCTCPReplies = pUser->GetCTCPReplies(); - for (MCString::const_iterator it2 = msCTCPReplies.begin(); it2 != msCTCPReplies.end(); ++it2) { + for (const auto& it : msCTCPReplies) { CTemplate& l = Tmpl.AddRow("CTCPLoop"); - l["CTCP"] = it2->first + " " + it2->second; + l["CTCP"] = it.first + " " + it.second; } } else { Tmpl["Action"] = "adduser"; @@ -1257,9 +1246,9 @@ public: } SCString ssTimezones = CUtils::GetTimezones(); - for (SCString::iterator i = ssTimezones.begin(); i != ssTimezones.end(); ++i) { + for (const CString& sTZ : ssTimezones) { CTemplate& l = Tmpl.AddRow("TZLoop"); - l["TZ"] = *i; + l["TZ"] = sTZ; } #ifdef HAVE_ICU @@ -1297,8 +1286,7 @@ public: } else { bool bFoundBindHost = false; bool bFoundDCCBindHost = false; - for (unsigned int b = 0; b < vsBindHosts.size(); b++) { - const CString& sBindHost = vsBindHosts[b]; + for (const CString& sBindHost : vsBindHosts) { CTemplate& l = Tmpl.AddRow("BindHostLoop"); CTemplate& k = Tmpl.AddRow("DCCBindHostLoop"); @@ -1335,8 +1323,7 @@ public: vector vDirs; WebSock.GetAvailSkins(vDirs); - for (unsigned int d = 0; d < vDirs.size(); d++) { - const CString& SubDir = vDirs[d]; + for (const CString& SubDir : vDirs) { CTemplate& l = Tmpl.AddRow("SkinLoop"); l["Name"] = SubDir; @@ -1348,8 +1335,7 @@ public: set ssUserMods; CZNC::Get().GetModules().GetAvailableMods(ssUserMods); - for (set::iterator it = ssUserMods.begin(); it != ssUserMods.end(); ++it) { - const CModInfo& Info = *it; + for (const CModInfo& Info : ssUserMods) { CTemplate& l = Tmpl.AddRow("ModuleLoop"); l["Name"] = Info.GetName(); @@ -1364,8 +1350,7 @@ public: // Check if module is loaded by all or some networks const vector& userNetworks = pUser->GetNetworks(); unsigned int networksWithRenderedModuleCount = 0; - for (unsigned int networkIndex = 0; networkIndex < userNetworks.size(); ++networkIndex) { - const CIRCNetwork* pCurrentNetwork = userNetworks[networkIndex]; + for (const CIRCNetwork* pCurrentNetwork : userNetworks) { const CModules& networkModules = pCurrentNetwork->GetModules(); if (networkModules.FindModule(Info.GetName())) { networksWithRenderedModuleCount++; @@ -1523,17 +1508,15 @@ public: Tmpl["Title"] = "Manage Users"; Tmpl["Action"] = "listusers"; - unsigned int a = 0; - - for (map::const_iterator it = msUsers.begin(); it != msUsers.end(); ++it, a++) { + for (const auto& it : msUsers) { CTemplate& l = Tmpl.AddRow("UserLoop"); - CUser& User = *it->second; + CUser* pUser = it.second; - l["Username"] = User.GetUserName(); - l["Clients"] = CString(User.GetAllClients().size()); - l["Networks"] = CString(User.GetNetworks().size()); + l["Username"] = pUser->GetUserName(); + l["Clients"] = CString(pUser->GetAllClients().size()); + l["Networks"] = CString(pUser->GetNetworks().size()); - if (&User == spSession->GetUser()) { + if (pUser == spSession->GetUser()) { l["IsSelf"] = "true"; } } @@ -1550,12 +1533,11 @@ public: size_t uiNetworks = 0, uiAttached = 0, uiClients = 0, uiServers = 0; - for (map::const_iterator it = msUsers.begin(); it != msUsers.end(); ++it) { - CUser& User = *it->second; - vector vNetworks = User.GetNetworks(); + for (const auto& it : msUsers) { + CUser* pUser = it.second; + vector vNetworks = pUser->GetNetworks(); - for (vector::const_iterator it2 = vNetworks.begin(); it2 != vNetworks.end(); ++it2) { - CIRCNetwork *pNetwork = *it2; + for (const CIRCNetwork* pNetwork : vNetworks) { uiNetworks++; if (pNetwork->IsIRCConnected()) { @@ -1569,7 +1551,7 @@ public: uiClients += pNetwork->GetClients().size(); } - uiClients += User.GetUserClients().size(); + uiClients += pUser->GetUserClients().size(); } Tmpl["TotalNetworks"] = CString(uiNetworks); @@ -1579,15 +1561,14 @@ public: CZNC::TrafficStatsPair Users, ZNC, Total; CZNC::TrafficStatsMap traffic = CZNC::Get().GetTrafficStats(Users, ZNC, Total); - CZNC::TrafficStatsMap::const_iterator it; - for (it = traffic.begin(); it != traffic.end(); ++it) { + for (const auto& it : traffic) { CTemplate& l = Tmpl.AddRow("TrafficLoop"); - l["Username"] = it->first; - l["In"] = CString::ToByteStr(it->second.first); - l["Out"] = CString::ToByteStr(it->second.second); - l["Total"] = CString::ToByteStr(it->second.first + it->second.second); + l["Username"] = it.first; + l["In"] = CString::ToByteStr(it.second.first); + l["Out"] = CString::ToByteStr(it.second.second); + l["Total"] = CString::ToByteStr(it.second.first + it.second.second); } Tmpl["UserIn"] = CString::ToByteStr(Users.first); @@ -1712,20 +1693,19 @@ public: Tmpl["HideVersion"] = CString(CZNC::Get().GetHideVersion()); const VCString& vsBindHosts = CZNC::Get().GetBindHosts(); - for (unsigned int a = 0; a < vsBindHosts.size(); a++) { + for (const CString& sHost : vsBindHosts) { CTemplate& l = Tmpl.AddRow("BindHostLoop"); - l["BindHost"] = vsBindHosts[a]; + l["BindHost"] = sHost; } const VCString& vsMotd = CZNC::Get().GetMotd(); - for (unsigned int b = 0; b < vsMotd.size(); b++) { + for (const CString& sMotd : vsMotd) { CTemplate& l = Tmpl.AddRow("MOTDLoop"); - l["Line"] = vsMotd[b]; + l["Line"] = sMotd; } const vector& vpListeners = CZNC::Get().GetListeners(); - for (unsigned int c = 0; c < vpListeners.size(); c++) { - CListener* pListener = vpListeners[c]; + for (const CListener* pListener : vpListeners) { CTemplate& l = Tmpl.AddRow("ListenLoop"); l["Port"] = CString(pListener->GetPort()); @@ -1768,8 +1748,7 @@ public: vector vDirs; WebSock.GetAvailSkins(vDirs); - for (unsigned int d = 0; d < vDirs.size(); d++) { - const CString& SubDir = vDirs[d]; + for (const CString& SubDir : vDirs) { CTemplate& l = Tmpl.AddRow("SkinLoop"); l["Name"] = SubDir; @@ -1781,8 +1760,7 @@ public: set ssGlobalMods; CZNC::Get().GetModules().GetAvailableMods(ssGlobalMods, CModInfo::GlobalModule); - for (set::iterator it = ssGlobalMods.begin(); it != ssGlobalMods.end(); ++it) { - const CModInfo& Info = *it; + for (const CModInfo& Info : ssGlobalMods) { CTemplate& l = Tmpl.AddRow("ModuleLoop"); CModule *pModule = CZNC::Get().GetModules().FindModule(Info.GetName()); @@ -1805,20 +1783,19 @@ public: unsigned int networksWithRenderedModuleCount = 0; unsigned int networksCount = 0; const map& allUsers = CZNC::Get().GetUserMap(); - for (map::const_iterator usersIt = allUsers.begin(); usersIt != allUsers.end(); ++usersIt) { - const CUser& User = *usersIt->second; + for (const auto& it : allUsers) { + const CUser* pUser = it.second; // Count users which has loaded a render module - const CModules& userModules = User.GetModules(); + const CModules& userModules = pUser->GetModules(); if (userModules.FindModule(Info.GetName())) { usersWithRenderedModuleCount++; } // Count networks which has loaded a render module - const vector& userNetworks = User.GetNetworks(); + const vector& userNetworks = pUser->GetNetworks(); networksCount += userNetworks.size(); - for (unsigned int networkIndex = 0; networkIndex < userNetworks.size(); ++networkIndex) + for (const CIRCNetwork* pCurrentNetwork : userNetworks) { - const CIRCNetwork *pCurrentNetwork = userNetworks[networkIndex]; if (pCurrentNetwork->GetModules().FindModule(Info.GetName())) { networksWithRenderedModuleCount++; } @@ -1849,16 +1826,15 @@ public: WebSock.GetRawParam("motd").Split("\n", vsArgs); CZNC::Get().ClearMotd(); - unsigned int a = 0; - for (a = 0; a < vsArgs.size(); a++) { - CZNC::Get().AddMotd(vsArgs[a].TrimRight_n()); + for (const CString& sMotd : vsArgs) { + CZNC::Get().AddMotd(sMotd.TrimRight_n()); } WebSock.GetRawParam("bindhosts").Split("\n", vsArgs); CZNC::Get().ClearBindHosts(); - for (a = 0; a < vsArgs.size(); a++) { - CZNC::Get().AddBindHost(vsArgs[a].Trim_n()); + for (const CString& sHost : vsArgs) { + CZNC::Get().AddBindHost(sHost.Trim_n()); } CZNC::Get().SetSkinName(WebSock.GetParam("skin")); @@ -1866,9 +1842,9 @@ public: set ssArgs; WebSock.GetParamValues("loadmod", ssArgs); - for (set::iterator it = ssArgs.begin(); it != ssArgs.end(); ++it) { + for (const CString& s : ssArgs) { CString sModRet; - CString sModName = (*it).TrimRight_n("\r"); + CString sModName = s.TrimRight_n("\r"); CString sModLoadError; if (!sModName.empty()) { @@ -1895,17 +1871,15 @@ public: const CModules& vCurMods = CZNC::Get().GetModules(); set ssUnloadMods; - for (a = 0; a < vCurMods.size(); a++) { - CModule* pCurMod = vCurMods[a]; - + for (const CModule* pCurMod : vCurMods) { if (ssArgs.find(pCurMod->GetModName()) == ssArgs.end() && (CModInfo::GlobalModule != GetType() || pCurMod->GetModName() != GetModName())) { ssUnloadMods.insert(pCurMod->GetModName()); } } - for (set::iterator it2 = ssUnloadMods.begin(); it2 != ssUnloadMods.end(); ++it2) { - CZNC::Get().GetModules().UnloadModule(*it2); + for (const CString& sMod : ssUnloadMods) { + CZNC::Get().GetModules().UnloadModule(sMod); } if (!CZNC::Get().WriteConfig()) {