diff --git a/modules/identfile.cpp b/modules/identfile.cpp index c5778ba0..35a548e5 100644 --- a/modules/identfile.cpp +++ b/modules/identfile.cpp @@ -60,6 +60,18 @@ public: } } + void SetIRCSock(CIRCSock *pIRCSock) { + if (m_pIRCSock) { + CZNC::Get().ResumeConnectQueue(); + } + + m_pIRCSock = pIRCSock; + + if (m_pIRCSock) { + CZNC::Get().PauseConnectQueue(); + } + } + bool WriteISpoof() { if (m_pISpoofLockFile != NULL) { return false; @@ -102,7 +114,7 @@ public: DEBUG("Releasing ident spoof for user/network [" + (m_pUser ? m_pUser->GetUserName() : "") + "/" + (m_pNetwork ? m_pNetwork->GetName() : "") + "]"); - m_pIRCSock = NULL; + SetIRCSock(NULL); if (m_pISpoofLockFile != NULL) { if (m_pISpoofLockFile->Seek(0) && m_pISpoofLockFile->Truncate()) { @@ -142,7 +154,7 @@ public: return HALTCORE; } - m_pIRCSock = pIRCSock; + SetIRCSock(pIRCSock); return CONTINUE; }