From ee350ab74431d298a8b119f7fa89260382001722 Mon Sep 17 00:00:00 2001 From: psychon Date: Sun, 28 Oct 2007 17:57:07 +0000 Subject: [PATCH] Change second argument to module in OnLoad() from sErrorMsg to sMessage. This message is always displayed when the module returns (well, screw webadmin) and this way a module can notify the user if it loaded but something unexpected happened. As you might guess, no one uses this ATM :) Proposal comes from prozac git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@855 726aef4b-f618-498e-8847-2d620e286838 --- Modules.cpp | 9 +++++++-- Modules.h | 2 +- modules/autoattach.cpp | 2 +- modules/autoop.cpp | 2 +- modules/away.cpp | 2 +- modules/awaynick.cpp | 2 +- modules/email.cpp | 2 +- modules/imapauth.cpp | 2 +- modules/modperl.cpp | 4 ++-- modules/nickserv.cpp | 2 +- modules/partyline.cpp | 2 +- modules/perform.cpp | 2 +- modules/sample.cpp | 2 +- modules/savebuff.cpp | 2 +- modules/schat.cpp | 4 ++-- modules/stickychan.cpp | 4 ++-- modules/webadmin.cpp | 6 +++--- znc.cpp | 12 ++++++++++-- 18 files changed, 38 insertions(+), 25 deletions(-) diff --git a/Modules.cpp b/Modules.cpp index 29b05f77..8a89b5c8 100644 --- a/Modules.cpp +++ b/Modules.cpp @@ -475,7 +475,7 @@ void CModule::ListSockets() { const CString& CModule::GetModName() const { return m_sModName; } CString CModule::GetModNick() const { return ((m_pUser) ? m_pUser->GetStatusPrefix() : "*") + m_sModName; } -bool CModule::OnLoad(const CString& sArgs, CString& sErrorMsg) { sErrorMsg = ""; return true; } +bool CModule::OnLoad(const CString& sArgs, CString& sMessage) { sMessage = ""; return true; } bool CModule::OnBoot() { return true; } void CModule::OnIRCDisconnected() {} void CModule::OnIRCConnected() {} @@ -787,7 +787,12 @@ bool CModules::LoadModule(const CString& sModule, const CString& sArgs, CUser* p } pModule->SetArgs(sArgs); - sRetMsg = "Loaded module [" + sModule + "] [" + sModPath + "]"; + + if (!sRetMsg.empty()) { + sRetMsg = "Loaded module [" + sModule + "] [" + sRetMsg + "] [" + sModPath + "]"; + } else { + sRetMsg = "Loaded module [" + sModule + "] [" + sModPath + "]"; + } return true; #endif // !_MODULES } diff --git a/Modules.h b/Modules.h index 8872864b..ad1108fc 100644 --- a/Modules.h +++ b/Modules.h @@ -214,7 +214,7 @@ public: void SetClient(CClient* pClient); void Unload(); - virtual bool OnLoad(const CString& sArgsi, CString& sErrorMsg); + virtual bool OnLoad(const CString& sArgsi, CString& sMessage); virtual bool OnBoot(); virtual void OnIRCDisconnected(); virtual void OnIRCConnected(); diff --git a/modules/autoattach.cpp b/modules/autoattach.cpp index 9d3321f0..2ee90e34 100644 --- a/modules/autoattach.cpp +++ b/modules/autoattach.cpp @@ -19,7 +19,7 @@ public: virtual ~CChanAttach() { } - virtual bool OnLoad(const CString& sArgs, CString& sErrorMsg) { + virtual bool OnLoad(const CString& sArgs, CString& sMessage) { unsigned int a = 0; CString sChan = sArgs.Token(a++); diff --git a/modules/autoop.cpp b/modules/autoop.cpp index 3e6f543b..f201568b 100644 --- a/modules/autoop.cpp +++ b/modules/autoop.cpp @@ -132,7 +132,7 @@ class CAutoOpMod : public CModule { public: MODCONSTRUCTOR(CAutoOpMod) {} - virtual bool OnLoad(const CString& sArgs, CString& sErrorMsg) { + virtual bool OnLoad(const CString& sArgs, CString& sMessage) { AddTimer(new CAutoOpTimer(this)); // Load the users diff --git a/modules/away.cpp b/modules/away.cpp index 2d6141de..665dacdf 100644 --- a/modules/away.cpp +++ b/modules/away.cpp @@ -135,7 +135,7 @@ public: SaveBufferToDisk(); } - virtual bool OnLoad(const CString& sArgs, CString& sErrorMsg) + virtual bool OnLoad(const CString& sArgs, CString& sMessage) { CString sMyArgs = sArgs; if (sMyArgs.Token(0) == "-notimer") diff --git a/modules/awaynick.cpp b/modules/awaynick.cpp index 8fc80217..b88d9c93 100644 --- a/modules/awaynick.cpp +++ b/modules/awaynick.cpp @@ -51,7 +51,7 @@ class CAwayNickMod : public CModule { public: MODCONSTRUCTOR(CAwayNickMod) {} - virtual bool OnLoad(const CString& sArgs, CString& sErrorMsg) { + virtual bool OnLoad(const CString& sArgs, CString& sMessage) { m_sFormat = sArgs; if (m_sFormat.empty()) { diff --git a/modules/email.cpp b/modules/email.cpp index 1449a9b5..8c0eafae 100644 --- a/modules/email.cpp +++ b/modules/email.cpp @@ -101,7 +101,7 @@ public: m_pManager->DelSockByAddr( vSocks[a] ); } - virtual bool OnLoad(const CString & sArgs, CString& sErrorMsg) { + virtual bool OnLoad(const CString & sArgs, CString& sMessage) { m_sMailPath = sArgs; StartParser(); diff --git a/modules/imapauth.cpp b/modules/imapauth.cpp index 2ab0b1f6..f9c1811b 100644 --- a/modules/imapauth.cpp +++ b/modules/imapauth.cpp @@ -61,7 +61,7 @@ public: return true; } - virtual bool OnLoad(const CString& sArgs, CString& sErrorMsg) { + virtual bool OnLoad(const CString& sArgs, CString& sMessage) { if (sArgs.Trim_n().empty()) { return true; // use defaults } diff --git a/modules/modperl.cpp b/modules/modperl.cpp index dfd20bcc..ca179323 100644 --- a/modules/modperl.cpp +++ b/modules/modperl.cpp @@ -295,7 +295,7 @@ public: } void UnSetUser() { m_pUser = NULL; } - virtual bool OnLoad( const CString & sArgs, CString & sErrorMsg ); + virtual bool OnLoad( const CString & sArgs, CString & sMessage ); virtual void OnUserAttached() { CBNone( "OnUserAttached" ); } virtual void OnUserDetached() { CBNone( "OnUserDetached" ); } virtual void OnIRCDisconnected() { CBNone( "OnIRCDisconnected" ); } @@ -976,7 +976,7 @@ CModPerl::EModRet CModPerl::CallBack( const PString & sHookName, const VPString // special case this, required for perl modules that are dynamic EXTERN_C void boot_DynaLoader (pTHX_ CV* cv); -bool CModPerl::OnLoad( const CString & sArgs, CString & sErrorMsg ) +bool CModPerl::OnLoad( const CString & sArgs, CString & sMessage ) { m_pPerl = perl_alloc(); perl_construct( m_pPerl ); diff --git a/modules/nickserv.cpp b/modules/nickserv.cpp index 2f152e9b..14af8e25 100644 --- a/modules/nickserv.cpp +++ b/modules/nickserv.cpp @@ -27,7 +27,7 @@ public: { } - virtual bool OnLoad(const CString& sArgs, CString& sErrorMsg) + virtual bool OnLoad(const CString& sArgs, CString& sMessage) { if (sArgs.empty()) m_sPass = GetNV("Password"); diff --git a/modules/partyline.cpp b/modules/partyline.cpp index f081f9d3..fafba634 100644 --- a/modules/partyline.cpp +++ b/modules/partyline.cpp @@ -57,7 +57,7 @@ public: return true; } - virtual bool OnLoad(const CString& sArgs, CString& sErrorMsg) { + virtual bool OnLoad(const CString& sArgs, CString& sMessage) { const map& msUsers = CZNC::Get().GetUserMap(); for (map::const_iterator it = msUsers.begin(); it != msUsers.end(); it++) { diff --git a/modules/perform.cpp b/modules/perform.cpp index 1eb8dab4..17ce60b3 100644 --- a/modules/perform.cpp +++ b/modules/perform.cpp @@ -27,7 +27,7 @@ public: { } - virtual bool OnLoad(const CString& sArgs, CString& sErrorMsg) + virtual bool OnLoad(const CString& sArgs, CString& sMessage) { GetNV("Perform").Split("\n", m_vPerform, false); diff --git a/modules/sample.cpp b/modules/sample.cpp index 31d2620b..d5b8e541 100644 --- a/modules/sample.cpp +++ b/modules/sample.cpp @@ -29,7 +29,7 @@ class CSampleMod : public CModule { public: MODCONSTRUCTOR(CSampleMod) {} - virtual bool OnLoad(const CString& sArgs, CString& sErrorMsg) { + virtual bool OnLoad(const CString& sArgs, CString& sMessage) { PutModule("I'm being loaded with the arguments: [" + sArgs + "]"); //AddTimer(new CSampleTimer(this, 300, 0, "Sample", "Sample timer for sample things.")); //AddTimer(new CSampleTimer(this, 5, 20, "Another", "Another sample timer.")); diff --git a/modules/savebuff.cpp b/modules/savebuff.cpp index b7a182b5..f1ca013e 100644 --- a/modules/savebuff.cpp +++ b/modules/savebuff.cpp @@ -162,7 +162,7 @@ public: } } - virtual bool OnLoad(const CString& sArgs, CString& sErrorMsg) + virtual bool OnLoad(const CString& sArgs, CString& sMessage) { if (!sArgs.empty()) { diff --git a/modules/schat.cpp b/modules/schat.cpp index f824ea95..53fc0fc3 100644 --- a/modules/schat.cpp +++ b/modules/schat.cpp @@ -209,7 +209,7 @@ public: MODCONSTRUCTOR(CSChat) {} virtual ~CSChat() { CleanSocks(); } - virtual bool OnLoad( const CString & sArgs, CString & sErrorMsg ) + virtual bool OnLoad( const CString & sArgs, CString & sMessage ) { m_sPemFile = sArgs; @@ -219,7 +219,7 @@ public: } if (!CFile::Exists(m_sPemFile)) { - sErrorMsg = "Unable to load pem file [" + m_sPemFile + "]"; + sMessage = "Unable to load pem file [" + m_sPemFile + "]"; return false; } diff --git a/modules/stickychan.cpp b/modules/stickychan.cpp index 92626962..56ef0a87 100644 --- a/modules/stickychan.cpp +++ b/modules/stickychan.cpp @@ -25,7 +25,7 @@ public: { } - virtual bool OnLoad( const CString& sArgs, CString& sErrorMsg ); + virtual bool OnLoad( const CString& sArgs, CString& sMessage ); virtual EModRet OnUserPart( CString& sChannel, CString& sMessage ) { @@ -95,7 +95,7 @@ static void RunTimer( CModule * pModule, CFPTimer *pTimer ) ((CStickyChan *)pModule)->RunJob(); } -bool CStickyChan::OnLoad(const CString& sArgs, CString& sErrorMsg) +bool CStickyChan::OnLoad(const CString& sArgs, CString& sMessage) { AddTimer( RunTimer, "StickyChanTimer", 15 ); return( true ); diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp index 38069d0b..cbbb955f 100644 --- a/modules/webadmin.cpp +++ b/modules/webadmin.cpp @@ -121,7 +121,7 @@ public: return true; } - virtual bool OnLoad(const CString& sArgStr, CString& sErrorMsg) { + virtual bool OnLoad(const CString& sArgStr, CString& sMessage) { bool bSSL = false; bool bIPv6 = false; CString sArgs(sArgStr); @@ -137,7 +137,7 @@ public: } else if (sOpt.CaseCmp("-IPV4") == 0) { bIPv6 = false; } else { - sErrorMsg = "Unknown option [" + sOpt + "] valid options are -ipv4 or -ipv6"; + sMessage = "Unknown option [" + sOpt + "] valid options are -ipv4 or -ipv6"; return false; } } @@ -171,7 +171,7 @@ public: bool b = m_pManager->ListenHost(m_uPort, "WebAdmin::Listener", m_sListenHost, bSSL, SOMAXCONN, pListenSock, 0, bIPv6); if (!b) { - sErrorMsg = "Could not bind to port " + CString(m_uPort) + ": " + CString(strerror(errno)); + sMessage = "Could not bind to port " + CString(m_uPort) + ": " + CString(strerror(errno)); } return b; } diff --git a/znc.cpp b/znc.cpp index 844c32a3..3ee61d53 100644 --- a/znc.cpp +++ b/znc.cpp @@ -1053,7 +1053,11 @@ bool CZNC::ParseConfig(const CString& sConfig) { try { bool bModRet = pUser->GetModules().LoadModule(sModName, sArgs, pUser, sModRet); - CUtils::PrintStatus(bModRet, (bModRet) ? "" : sModRet); + + if (bModRet) + sModRet = sModRet.Token(1, true, sModName + "] "); + + CUtils::PrintStatus(bModRet, sModRet); if (!bModRet) { return false; } @@ -1159,7 +1163,11 @@ bool CZNC::ParseConfig(const CString& sConfig) { try { bool bModRet = GetModules().LoadModule(sModName, sArgs, NULL, sModRet); - CUtils::PrintStatus(bModRet, (bModRet) ? "" : sModRet); + + if (bModRet) + sModRet = sModRet.Token(1, true, sModName + "] "); + + CUtils::PrintStatus(bModRet, sModRet); if (!bModRet) { return false; }