mirror of
https://github.com/znc/znc.git
synced 2026-08-07 09:22:55 +02:00
Better handling of deletion of servers
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@656 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
@@ -601,9 +601,32 @@ bool CUser::DelServer(const CString& sName) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (vector<CServer*>::iterator it = m_vServers.begin(); it != m_vServers.end(); it++) {
|
||||
if ((*it)->GetName().CaseCmp(sName) == 0) {
|
||||
unsigned int a = 0;
|
||||
|
||||
for (vector<CServer*>::iterator it = m_vServers.begin(); it != m_vServers.end(); it++, a++) {
|
||||
CServer* pServer = *it;
|
||||
|
||||
if (pServer->GetName().CaseCmp(sName) == 0) {
|
||||
CServer* pCurServer = GetCurrentServer();
|
||||
m_vServers.erase(it);
|
||||
|
||||
if (pServer == pCurServer) {
|
||||
CIRCSock* pIRCSock = GetIRCSock();
|
||||
|
||||
if (m_uServerIdx) {
|
||||
m_uServerIdx--;
|
||||
}
|
||||
|
||||
if (pIRCSock) {
|
||||
pIRCSock->Close();
|
||||
PutUser("Your current server was removed, jumping...");
|
||||
}
|
||||
} else if (m_uServerIdx >= m_vServers.size()) {
|
||||
m_uServerIdx = 0;
|
||||
}
|
||||
|
||||
delete pServer;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user