mirror of
https://github.com/znc/znc.git
synced 2026-07-05 17:31:06 +02:00
bug where m_pUserSock is invalid and then referenced if user connects during failing irc connection (ie timeout)
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@26 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
+15
-14
@@ -18,6 +18,21 @@ CIRCSock::CIRCSock(CZNC* pZNC, CUser* pUser) : Csock() {
|
||||
}
|
||||
|
||||
CIRCSock::~CIRCSock() {
|
||||
|
||||
#ifdef _MODULES
|
||||
m_pUser->GetModules().OnIRCDisconnected();
|
||||
#endif
|
||||
|
||||
const vector<CChan*>& vChans = m_pUser->GetChans();
|
||||
for (unsigned int a = 0; a < vChans.size(); a++) {
|
||||
vChans[a]->SetIsOn(false);
|
||||
}
|
||||
|
||||
if (m_pUserSock) {
|
||||
m_pUserSock->IRCDisconnected();
|
||||
m_pUserSock = NULL;
|
||||
}
|
||||
|
||||
for (map<string, CChan*>::iterator a = m_msChans.begin(); a != m_msChans.end(); a++) {
|
||||
delete a->second;
|
||||
}
|
||||
@@ -709,20 +724,6 @@ void CIRCSock::Connected() {
|
||||
void CIRCSock::Disconnected() {
|
||||
DEBUG_ONLY(cout << GetSockName() << " == Disconnected()" << endl);
|
||||
m_pUser->PutStatus("Disconnected from IRC. Reconnecting...");
|
||||
|
||||
#ifdef _MODULES
|
||||
m_pUser->GetModules().OnIRCDisconnected();
|
||||
#endif
|
||||
|
||||
const vector<CChan*>& vChans = m_pUser->GetChans();
|
||||
for (unsigned int a = 0; a < vChans.size(); a++) {
|
||||
vChans[a]->SetIsOn(false);
|
||||
}
|
||||
|
||||
if (m_pUserSock) {
|
||||
m_pUserSock->IRCDisconnected();
|
||||
m_pUserSock = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void CIRCSock::SockError(int iErrno) {
|
||||
|
||||
Reference in New Issue
Block a user