Delete the clients and modules before the user

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@649 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
prozacx
2006-02-12 10:09:00 +00:00
parent 8fa81829b3
commit 3d7bf1fce8
3 changed files with 30 additions and 7 deletions

View File

@@ -45,9 +45,6 @@ CUser::CUser(const CString& sUserName) {
}
CUser::~CUser() {
#ifdef _MODULES
delete m_pModules;
#endif
for (unsigned int a = 0; a < m_vServers.size(); a++) {
delete m_vServers[a];
}
@@ -56,9 +53,8 @@ CUser::~CUser() {
delete m_vChans[b];
}
for (unsigned int c = 0; c < m_vClients.size(); c++) {
CZNC::Get().GetManager().DelSockByAddr(m_vClients[c]);
}
DelClients();
DelModules();
CZNC::Get().GetManager().DelCronByAddr(m_pBackNickTimer);
CZNC::Get().GetManager().DelCronByAddr(m_pAwayNickTimer);
@@ -66,6 +62,24 @@ CUser::~CUser() {
CZNC::Get().GetManager().DelCronByAddr(m_pJoinTimer);
}
#ifdef _MODULES
void CUser::DelModules() {
if (m_pModules) {
delete m_pModules;
m_pModules = NULL;
}
}
#endif
void CUser::DelClients() {
for (unsigned int c = 0; c < m_vClients.size(); c++) {
CClient* pClient = m_vClients[c];
CZNC::Get().GetManager().DelSockByAddr(pClient);
}
m_vClients.clear();
}
bool CUser::OnBoot() {
#ifdef _MODULES
return GetModules().OnBoot();