diff --git a/IRCNetwork.cpp b/IRCNetwork.cpp index 98b11544..ca1ac58e 100644 --- a/IRCNetwork.cpp +++ b/IRCNetwork.cpp @@ -134,6 +134,11 @@ CIRCNetwork::CIRCNetwork(CUser *pUser, const CIRCNetwork *pNetwork, bool bCloneC } CIRCNetwork::~CIRCNetwork() { + if (m_pIRCSock) { + CZNC::Get().GetManager().DelSockByAddr(m_pIRCSock); + m_pIRCSock = NULL; + } + // Delete clients for (vector::const_iterator it = m_vClients.begin(); it != m_vClients.end(); ++it) { CZNC::Get().GetManager().DelSockByAddr(*it); diff --git a/znc.cpp b/znc.cpp index 6ed45efe..56d799c1 100644 --- a/znc.cpp +++ b/znc.cpp @@ -169,17 +169,6 @@ bool CZNC::HandleUserDeletion() continue; } m_msUsers.erase(pUser->GetUserName()); - - vector vNetworks; - for (vector::iterator it2 = vNetworks.begin(); it2 != vNetworks.end(); ++it2) { - CIRCNetwork *pNetwork = *it2; - CIRCSock* pIRCSock = pNetwork->GetIRCSock(); - - if (pIRCSock) { - m_Manager.DelSockByAddr(pIRCSock); - } - } - CWebSock::FinishUserSessions(*pUser); delete pUser; }