From dde7921e6c0f5fa97c799a37181eb6031fc4f7ce Mon Sep 17 00:00:00 2001 From: psychon Date: Fri, 9 May 2008 14:48:06 +0000 Subject: [PATCH] Remove OnRehashDone and add OnPre/PostRehash This patch is from SilverLeo. git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1046 726aef4b-f618-498e-8847-2d620e286838 --- Modules.cpp | 6 ++++-- Modules.h | 6 ++++-- znc.cpp | 12 ++++++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Modules.cpp b/Modules.cpp index 1b7912f5..69539398 100644 --- a/Modules.cpp +++ b/Modules.cpp @@ -482,7 +482,8 @@ CString CModule::GetModNick() const { return ((m_pUser) ? m_pUser->GetStatusPref bool CModule::OnLoad(const CString& sArgs, CString& sMessage) { sMessage = ""; return true; } bool CModule::OnBoot() { return true; } -void CModule::OnRehashDone() {} +void CModule::OnPreRehash() {} +void CModule::OnPostRehash() {} void CModule::OnIRCDisconnected() {} void CModule::OnIRCConnected() {} CModule::EModRet CModule::OnBroadcast(CString& sMessage) { return CONTINUE; } @@ -590,7 +591,8 @@ bool CModules::OnBoot() { return true; } -bool CModules::OnRehashDone() { MODUNLOADCHK(OnRehashDone()); return false; } +bool CModules::OnPreRehash() { MODUNLOADCHK(OnPreRehash()); return false; } +bool CModules::OnPostRehash() { MODUNLOADCHK(OnPostRehash()); return false; } bool CModules::OnIRCConnected() { MODUNLOADCHK(OnIRCConnected()); return false; } bool CModules::OnBroadcast(CString& sMessage) { MODHALTCHK(OnBroadcast(sMessage)); } bool CModules::OnIRCDisconnected() { MODUNLOADCHK(OnIRCDisconnected()); return false; } diff --git a/Modules.h b/Modules.h index 27203649..71734aea 100644 --- a/Modules.h +++ b/Modules.h @@ -225,7 +225,8 @@ public: virtual bool OnLoad(const CString& sArgsi, CString& sMessage); virtual bool OnBoot(); - virtual void OnRehashDone(); + virtual void OnPreRehash(); + virtual void OnPostRehash(); virtual void OnIRCDisconnected(); virtual void OnIRCConnected(); virtual EModRet OnBroadcast(CString& sMessage); @@ -361,7 +362,8 @@ public: void UnloadAll(); virtual bool OnBoot(); // Return false to abort - virtual bool OnRehashDone(); + virtual bool OnPreRehash(); + virtual bool OnPostRehash(); virtual bool OnIRCDisconnected(); virtual bool OnIRCConnected(); virtual bool OnBroadcast(CString& sMessage); diff --git a/znc.cpp b/znc.cpp index 98fc7288..bb779e6b 100644 --- a/znc.cpp +++ b/znc.cpp @@ -855,6 +855,14 @@ bool CZNC::ParseConfig(const CString& sConfig) bool CZNC::RehashConfig(CString& sError) { +#ifdef _MODULES + GetModules().OnPreRehash(); + for (map::iterator itb = m_msUsers.begin(); + itb != m_msUsers.end(); itb++) { + itb->second->GetModules().OnPreRehash(); + } +#endif + // This clears m_msDelUsers HandleUserDeletion(); @@ -864,10 +872,10 @@ bool CZNC::RehashConfig(CString& sError) if (DoRehash(sError)) { #ifdef _MODULES - GetModules().OnRehashDone(); + GetModules().OnPostRehash(); for (map::iterator it = m_msUsers.begin(); it != m_msUsers.end(); it++) { - it->second->GetModules().OnRehashDone(); + it->second->GetModules().OnPostRehash(); } #endif