ClientCommand: C++11 range-based for loops

This commit is contained in:
J-P Nurmi
2015-02-23 21:37:13 +01:00
parent be5f26ba18
commit 728108913c

View File

@@ -89,20 +89,20 @@ void CClient::UserCommand(CString& sLine) {
Table.AddColumn("Ident");
Table.AddColumn("Host");
for (map<CString,CNick>::const_iterator a = msNicks.begin(); a != msNicks.end(); ++a) {
for (const auto& it : msNicks) {
Table.AddRow();
for (unsigned int b = 0; b < sPerms.size(); b++) {
if (a->second.HasPerm(sPerms[b])) {
if (it.second.HasPerm(sPerms[b])) {
CString sPerm;
sPerm += sPerms[b];
Table.SetCell(sPerm, sPerm);
}
}
Table.SetCell("Nick", a->second.GetNick());
Table.SetCell("Ident", a->second.GetIdent());
Table.SetCell("Host", a->second.GetHost());
Table.SetCell("Nick", it.second.GetNick());
Table.SetCell("Ident", it.second.GetIdent());
Table.SetCell("Host", it.second.GetHost());
}
PutStatus(Table);
@@ -190,13 +190,13 @@ void CClient::UserCommand(CString& sLine) {
Table.AddColumn("Network");
Table.AddColumn("Identifier");
for (unsigned int a = 0; a < vClients.size(); a++) {
for (const CClient* pClient : vClients) {
Table.AddRow();
Table.SetCell("Host", vClients[a]->GetRemoteIP());
if (vClients[a]->GetNetwork()) {
Table.SetCell("Network", vClients[a]->GetNetwork()->GetName());
Table.SetCell("Host", pClient->GetRemoteIP());
if (pClient->GetNetwork()) {
Table.SetCell("Network", pClient->GetNetwork()->GetName());
}
Table.SetCell("Identifier", vClients[a]->GetIdentifier());
Table.SetCell("Identifier", pClient->GetIdentifier());
}
PutStatus(Table);
@@ -207,11 +207,11 @@ void CClient::UserCommand(CString& sLine) {
Table.AddColumn("Networks");
Table.AddColumn("Clients");
for (map<CString, CUser*>::const_iterator it = msUsers.begin(); it != msUsers.end(); ++it) {
for (const auto& it : msUsers) {
Table.AddRow();
Table.SetCell("Username", it->first);
Table.SetCell("Networks", CString(it->second->GetNetworks().size()));
Table.SetCell("Clients", CString(it->second->GetAllClients().size()));
Table.SetCell("Username", it.first);
Table.SetCell("Networks", CString(it.second->GetNetworks().size()));
Table.SetCell("Clients", CString(it.second->GetAllClients().size()));
}
PutStatus(Table);
@@ -226,18 +226,17 @@ void CClient::UserCommand(CString& sLine) {
Table.AddColumn("IRC User");
Table.AddColumn("Channels");
for (map<CString, CUser*>::const_iterator it = msUsers.begin(); it != msUsers.end(); ++it) {
for (const auto& it : msUsers) {
Table.AddRow();
Table.SetCell("Username", it->first);
Table.SetCell("Username", it.first);
Table.SetCell("Network", "N/A");
Table.SetCell("Clients", CString(it->second->GetUserClients().size()));
Table.SetCell("Clients", CString(it.second->GetUserClients().size()));
const vector<CIRCNetwork*>& vNetworks = it->second->GetNetworks();
const vector<CIRCNetwork*>& vNetworks = it.second->GetNetworks();
for (size_t a = 0; a < vNetworks.size(); ++a) {
CIRCNetwork* pNetwork = vNetworks[a];
for (const CIRCNetwork* pNetwork : vNetworks) {
Table.AddRow();
if (a == vNetworks.size() - 1) {
if (pNetwork == vNetworks.back()) {
Table.SetCell("Username", "`-");
} else {
Table.SetCell("Username", "|-");
@@ -483,11 +482,10 @@ void CClient::UserCommand(CString& sLine) {
unsigned int uNumDetached = 0, uNumDisabled = 0,
uNumJoined = 0;
for (unsigned int a = 0; a < vChans.size(); a++) {
const CChan* pChan = vChans[a];
for (const CChan *pChan : vChans) {
Table.AddRow();
Table.SetCell("Name", pChan->GetPermStr() + pChan->GetName());
Table.SetCell("Status", ((vChans[a]->IsOn()) ? ((vChans[a]->IsDetached()) ? "Detached" : "Joined") : ((vChans[a]->IsDisabled()) ? "Disabled" : "Trying")));
Table.SetCell("Status", ((pChan->IsOn()) ? ((pChan->IsDetached()) ? "Detached" : "Joined") : ((pChan->IsDisabled()) ? "Disabled" : "Trying")));
Table.SetCell("Conf", CString((pChan->InConfig()) ? "yes" : ""));
Table.SetCell("Buf", CString((pChan->HasBufferCountSet()) ? "*" : "") + CString(pChan->GetBufferCount()));
Table.SetCell("Clear", CString((pChan->HasAutoClearChanBufferSet()) ? "*" : "") + CString((pChan->AutoClearChanBuffer()) ? "yes" : ""));
@@ -571,8 +569,7 @@ void CClient::UserCommand(CString& sLine) {
Table.AddColumn("IRC User");
Table.AddColumn("Channels");
for (size_t a = 0; a < vNetworks.size(); a++) {
CIRCNetwork* pNetwork = vNetworks[a];
for (const CIRCNetwork* pNetwork : vNetworks) {
Table.AddRow();
Table.SetCell("Network", pNetwork->GetName());
if (pNetwork->IsIRCConnected()) {
@@ -636,9 +633,9 @@ void CClient::UserCommand(CString& sLine) {
}
const CModules& vMods = pOldNetwork->GetModules();
for (CModules::const_iterator i = vMods.begin(); i != vMods.end(); ++i) {
CString sOldModPath = pOldNetwork->GetNetworkPath() + "/moddata/" + (*i)->GetModName();
CString sNewModPath = pNewUser->GetUserPath() + "/networks/" + sNewNetwork + "/moddata/" + (*i)->GetModName();
for (CModule* pMod : vMods) {
CString sOldModPath = pOldNetwork->GetNetworkPath() + "/moddata/" + pMod->GetModName();
CString sNewModPath = pNewUser->GetUserPath() + "/networks/" + sNewNetwork + "/moddata/" + pMod->GetModName();
CDir oldDir(sOldModPath);
for (CDir::iterator it = oldDir.begin(); it != oldDir.end(); ++it) {
@@ -648,7 +645,7 @@ void CClient::UserCommand(CString& sLine) {
}
}
(*i)->MoveRegistry(sNewModPath);
pMod->MoveRegistry(sNewModPath);
}
CString sNetworkAddError;
@@ -749,8 +746,7 @@ void CClient::UserCommand(CString& sLine) {
Table.AddColumn("SSL");
Table.AddColumn("Pass");
for (unsigned int a = 0; a < vServers.size(); a++) {
CServer* pServer = vServers[a];
for (const CServer* pServer : vServers) {
Table.AddRow();
Table.SetCell("Host", pServer->GetName() + (pServer == pCurServ ? "*" : ""));
Table.SetCell("Port", CString(pServer->GetPort()));
@@ -812,8 +808,7 @@ void CClient::UserCommand(CString& sLine) {
Table.AddColumn("Set By");
Table.AddColumn("Topic");
for (unsigned int a = 0; a < vChans.size(); a++) {
CChan* pChan = vChans[a];
for (const CChan* pChan : vChans) {
Table.AddRow();
Table.SetCell("Name", pChan->GetName());
Table.SetCell("Set By", pChan->GetTopicOwner());
@@ -833,10 +828,10 @@ void CClient::UserCommand(CString& sLine) {
GTable.AddColumn("Name");
GTable.AddColumn("Arguments");
for (unsigned int b = 0; b < GModules.size(); b++) {
for (const CModule* pMod : GModules) {
GTable.AddRow();
GTable.SetCell("Name", GModules[b]->GetModName());
GTable.SetCell("Arguments", GModules[b]->GetArgs());
GTable.SetCell("Name", pMod->GetModName());
GTable.SetCell("Arguments", pMod->GetArgs());
}
PutStatus(GTable);
@@ -853,10 +848,10 @@ void CClient::UserCommand(CString& sLine) {
Table.AddColumn("Name");
Table.AddColumn("Arguments");
for (unsigned int b = 0; b < Modules.size(); b++) {
for (const CModule* pMod : Modules) {
Table.AddRow();
Table.SetCell("Name", Modules[b]->GetModName());
Table.SetCell("Arguments", Modules[b]->GetArgs());
Table.SetCell("Name", pMod->GetModName());
Table.SetCell("Arguments", pMod->GetArgs());
}
PutStatus(Table);
@@ -872,10 +867,10 @@ void CClient::UserCommand(CString& sLine) {
Table.AddColumn("Name");
Table.AddColumn("Arguments");
for (unsigned int b = 0; b < NetworkModules.size(); b++) {
for (const CModule* pMod : NetworkModules) {
Table.AddRow();
Table.SetCell("Name", NetworkModules[b]->GetModName());
Table.SetCell("Arguments", NetworkModules[b]->GetArgs());
Table.SetCell("Name", pMod->GetModName());
Table.SetCell("Arguments", pMod->GetArgs());
}
PutStatus(Table);
@@ -900,10 +895,8 @@ void CClient::UserCommand(CString& sLine) {
CTable GTable;
GTable.AddColumn("Name");
GTable.AddColumn("Description");
set<CModInfo>::iterator it;
for (it = ssGlobalMods.begin(); it != ssGlobalMods.end(); ++it) {
const CModInfo& Info = *it;
for (const CModInfo& Info : ssGlobalMods) {
GTable.AddRow();
GTable.SetCell("Name", (CZNC::Get().GetModules().FindModule(Info.GetName()) ? "*" : " ") + Info.GetName());
GTable.SetCell("Description", Info.GetDescription().Ellipsize(128));
@@ -923,10 +916,8 @@ void CClient::UserCommand(CString& sLine) {
CTable Table;
Table.AddColumn("Name");
Table.AddColumn("Description");
set<CModInfo>::iterator it;
for (it = ssUserMods.begin(); it != ssUserMods.end(); ++it) {
const CModInfo& Info = *it;
for (const CModInfo& Info : ssUserMods) {
Table.AddRow();
Table.SetCell("Name", (m_pUser->GetModules().FindModule(Info.GetName()) ? "*" : " ") + Info.GetName());
Table.SetCell("Description", Info.GetDescription().Ellipsize(128));
@@ -945,10 +936,8 @@ void CClient::UserCommand(CString& sLine) {
CTable Table;
Table.AddColumn("Name");
Table.AddColumn("Description");
set<CModInfo>::const_iterator it;
for (it = ssNetworkMods.begin(); it != ssNetworkMods.end(); ++it) {
const CModInfo& Info = *it;
for (const CModInfo& Info : ssNetworkMods) {
Table.AddRow();
Table.SetCell("Name", ((m_pNetwork && m_pNetwork->GetModules().FindModule(Info.GetName())) ? "*" : " ") + Info.GetName());
Table.SetCell("Description", Info.GetDescription().Ellipsize(128));
@@ -1218,10 +1207,9 @@ void CClient::UserCommand(CString& sLine) {
CTable Table;
Table.AddColumn("Host");
VCString::const_iterator it;
for (it = vsHosts.begin(); it != vsHosts.end(); ++it) {
for (const CString& sHost : vsHosts) {
Table.AddRow();
Table.SetCell("Host", *it);
Table.SetCell("Host", sHost);
}
PutStatus(Table);
} else if ((sCommand.Equals("SETBINDHOST") || sCommand.Equals("SETVHOST")) && (m_pUser->IsAdmin() || !m_pUser->DenySetBindHost())) {
@@ -1229,25 +1217,24 @@ void CClient::UserCommand(CString& sLine) {
PutStatus("You must be connected with a network to use this command. Try SetUserBindHost instead");
return;
}
CString sHost = sLine.Token(1);
CString sArg = sLine.Token(1);
if (sHost.empty()) {
if (sArg.empty()) {
PutStatus("Usage: SetBindHost <host>");
return;
}
if (sHost.Equals(m_pNetwork->GetBindHost())) {
if (sArg.Equals(m_pNetwork->GetBindHost())) {
PutStatus("You already have this bind host!");
return;
}
const VCString& vsHosts = CZNC::Get().GetBindHosts();
if (!m_pUser->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& sHost : vsHosts) {
if (sArg.Equals(sHost)) {
bFound = true;
break;
}
@@ -1259,28 +1246,27 @@ void CClient::UserCommand(CString& sLine) {
}
}
m_pNetwork->SetBindHost(sHost);
m_pNetwork->SetBindHost(sArg);
PutStatus("Set bind host for network [" + m_pNetwork->GetName() + "] to [" + m_pNetwork->GetBindHost() + "]");
} else if (sCommand.Equals("SETUSERBINDHOST") && (m_pUser->IsAdmin() || !m_pUser->DenySetBindHost())) {
CString sHost = sLine.Token(1);
CString sArg = sLine.Token(1);
if (sHost.empty()) {
if (sArg.empty()) {
PutStatus("Usage: SetUserBindHost <host>");
return;
}
if (sHost.Equals(m_pUser->GetBindHost())) {
if (sArg.Equals(m_pUser->GetBindHost())) {
PutStatus("You already have this bind host!");
return;
}
const VCString& vsHosts = CZNC::Get().GetBindHosts();
if (!m_pUser->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& sHost : vsHosts) {
if (sArg.Equals(sHost)) {
bFound = true;
break;
}
@@ -1292,7 +1278,7 @@ void CClient::UserCommand(CString& sLine) {
}
}
m_pUser->SetBindHost(sHost);
m_pUser->SetBindHost(sArg);
PutStatus("Set bind host to [" + m_pUser->GetBindHost() + "]");
} else if ((sCommand.Equals("CLEARBINDHOST") || sCommand.Equals("CLEARVHOST")) && (m_pUser->IsAdmin() || !m_pUser->DenySetBindHost())) {
if (!m_pNetwork) {
@@ -1371,17 +1357,17 @@ void CClient::UserCommand(CString& sLine) {
unsigned int uMatches = 0;
vector<CChan*> vChans = m_pNetwork->FindChans(sBuffer);
for (vector<CChan*>::const_iterator it = vChans.begin(); it != vChans.end(); ++it) {
for (CChan* pChan : vChans) {
uMatches++;
(*it)->ClearBuffer();
pChan->ClearBuffer();
}
vector<CQuery*> vQueries = m_pNetwork->FindQueries(sBuffer);
for (vector<CQuery*>::const_iterator it = vQueries.begin(); it != vQueries.end(); ++it) {
for (CQuery* pQuery : vQueries) {
uMatches++;
m_pNetwork->DelQuery((*it)->GetName());
m_pNetwork->DelQuery(pQuery->GetName());
}
PutStatus("[" + CString(uMatches) + "] buffers matching [" + sBuffer + "] have been cleared");
@@ -1391,11 +1377,8 @@ void CClient::UserCommand(CString& sLine) {
return;
}
vector<CChan*>::const_iterator it;
const vector<CChan*>& vChans = m_pNetwork->GetChans();
for (it = vChans.begin(); it != vChans.end(); ++it) {
(*it)->ClearBuffer();
for (CChan* pChan : m_pNetwork->GetChans()) {
pChan->ClearBuffer();
}
PutStatus("All channel buffers have been cleared");
} else if (sCommand.Equals("CLEARALLQUERYBUFFERS")) {
@@ -1404,11 +1387,8 @@ void CClient::UserCommand(CString& sLine) {
return;
}
vector<CQuery*>::const_iterator it;
vector<CQuery*> VQueries = m_pNetwork->GetQueries();
for (it = VQueries.begin(); it != VQueries.end(); ++it) {
m_pNetwork->DelQuery((*it)->GetName());
for (CQuery* pQuery : m_pNetwork->GetQueries()) {
m_pNetwork->DelQuery(pQuery->GetName());
}
PutStatus("All query buffers have been cleared");
} else if (sCommand.Equals("SETBUFFER")) {
@@ -1427,18 +1407,18 @@ void CClient::UserCommand(CString& sLine) {
unsigned int uLineCount = sLine.Token(2).ToUInt();
unsigned int uMatches = 0, uFail = 0;
vector<CChan*> vChans = m_pNetwork->FindChans(sBuffer);
for (vector<CChan*>::const_iterator it = vChans.begin(); it != vChans.end(); ++it) {
for (CChan* pChan : vChans) {
uMatches++;
if (!(*it)->SetBufferCount(uLineCount))
if (!pChan->SetBufferCount(uLineCount))
uFail++;
}
vector<CQuery*> vQueries = m_pNetwork->FindQueries(sBuffer);
for (vector<CQuery*>::const_iterator it = vQueries.begin(); it != vQueries.end(); ++it) {
for (CQuery* pQuery : vQueries) {
uMatches++;
if (!(*it)->SetBufferCount(uLineCount))
if (!pQuery->SetBufferCount(uLineCount))
uFail++;
}
@@ -1451,7 +1431,6 @@ void CClient::UserCommand(CString& sLine) {
} else if (m_pUser->IsAdmin() && sCommand.Equals("TRAFFIC")) {
CZNC::TrafficStatsPair Users, ZNC, Total;
CZNC::TrafficStatsMap traffic = CZNC::Get().GetTrafficStats(Users, ZNC, Total);
CZNC::TrafficStatsMap::const_iterator it;
CTable Table;
Table.AddColumn("Username");
@@ -1459,12 +1438,12 @@ void CClient::UserCommand(CString& sLine) {
Table.AddColumn("Out");
Table.AddColumn("Total");
for (it = traffic.begin(); it != traffic.end(); ++it) {
for (const auto& it : traffic) {
Table.AddRow();
Table.SetCell("Username", it->first);
Table.SetCell("In", CString::ToByteStr(it->second.first));
Table.SetCell("Out", CString::ToByteStr(it->second.second));
Table.SetCell("Total", CString::ToByteStr(it->second.first + it->second.second));
Table.SetCell("Username", it.first);
Table.SetCell("In", CString::ToByteStr(it.second.first));
Table.SetCell("Out", CString::ToByteStr(it.second.second));
Table.SetCell("Total", CString::ToByteStr(it.second.first + it.second.second));
}
Table.AddRow();
@@ -1511,18 +1490,18 @@ void CClient::UserPortCommand(CString& sLine) {
vector<CListener*>::const_iterator it;
const vector<CListener*>& vpListeners = CZNC::Get().GetListeners();
for (it = vpListeners.begin(); it < vpListeners.end(); ++it) {
for (const CListener* pListener : vpListeners) {
Table.AddRow();
Table.SetCell("Port", CString((*it)->GetPort()));
Table.SetCell("BindHost", ((*it)->GetBindHost().empty() ? CString("*") : (*it)->GetBindHost()));
Table.SetCell("SSL", CString((*it)->IsSSL()));
Table.SetCell("Port", CString(pListener->GetPort()));
Table.SetCell("BindHost", (pListener->GetBindHost().empty() ? CString("*") : pListener->GetBindHost()));
Table.SetCell("SSL", CString(pListener->IsSSL()));
EAddrType eAddr = (*it)->GetAddrType();
EAddrType eAddr = pListener->GetAddrType();
Table.SetCell("Proto", (eAddr == ADDR_ALL ? "All" : (eAddr == ADDR_IPV4ONLY ? "IPv4" : "IPv6")));
CListener::EAcceptType eAccept = (*it)->GetAcceptType();
CListener::EAcceptType eAccept = pListener->GetAcceptType();
Table.SetCell("IRC/Web", (eAccept == CListener::ACCEPT_ALL ? "All" : (eAccept == CListener::ACCEPT_IRC ? "IRC" : "Web")));
Table.SetCell("URIPrefix", (*it)->GetURIPrefix() + "/");
Table.SetCell("URIPrefix", pListener->GetURIPrefix() + "/");
}
PutStatus(Table);