mirror of
https://github.com/znc/znc.git
synced 2026-05-05 21:12:37 +02:00
Reduce number of module hooks
The new hooks OnServerCapAccepted() and OnServerCapRejected() are replaced by OnServerCapResult(). This should force people who want to use this to handle possible failures in requesting the capability. Again, thanks to DarthGandalf for the patch. git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2100 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
@@ -688,7 +688,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
} else if (sSubCmd == "ACK") {
|
||||
sArgs.Trim();
|
||||
m_ssPendingCaps.erase(sArgs);
|
||||
MODULECALL(OnServerCapAccepted(sArgs), m_pUser, NULL, );
|
||||
MODULECALL(OnServerCapResult(sArgs, true), m_pUser, NULL, );
|
||||
if ("multi-prefix" == sArgs) {
|
||||
m_bNamesx = true;
|
||||
} else if ("userhost-in-names" == sArgs) {
|
||||
@@ -700,7 +700,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
// capability with length of name more than 100 characters.
|
||||
sArgs.Trim();
|
||||
m_ssPendingCaps.erase(sArgs);
|
||||
MODULECALL(OnServerCapRejected(sArgs), m_pUser, NULL, );
|
||||
MODULECALL(OnServerCapResult(sArgs, false), m_pUser, NULL, );
|
||||
}
|
||||
|
||||
if (m_ssPendingCaps.empty()) {
|
||||
|
||||
@@ -456,8 +456,7 @@ CModule::EModRet CModule::OnTopic(CNick& Nick, CChan& Channel, CString& sTopic)
|
||||
CModule::EModRet CModule::OnTimerAutoJoin(CChan& Channel) { return CONTINUE; }
|
||||
|
||||
bool CModule::OnServerCapAvailable(const CString& sCap) { return false; }
|
||||
void CModule::OnServerCapAccepted(const CString& sCap) {}
|
||||
void CModule::OnServerCapRejected(const CString& sCap) {}
|
||||
void CModule::OnServerCapResult(const CString& sCap, bool bSuccess) {}
|
||||
|
||||
bool CModule::PutIRC(const CString& sLine) {
|
||||
return (m_pUser) ? m_pUser->PutIRC(sLine) : false;
|
||||
@@ -628,8 +627,7 @@ bool CModules::OnServerCapAvailable(const CString& sCap) {
|
||||
return bResult;
|
||||
}
|
||||
|
||||
bool CModules::OnServerCapAccepted(const CString& sCap) { MODUNLOADCHK(OnServerCapAccepted(sCap)); return false; }
|
||||
bool CModules::OnServerCapRejected(const CString& sCap) { MODUNLOADCHK(OnServerCapRejected(sCap)); return false; }
|
||||
bool CModules::OnServerCapResult(const CString& sCap, bool bSuccess) { MODUNLOADCHK(OnServerCapResult(sCap, bSuccess)); return false; }
|
||||
|
||||
////////////////////
|
||||
// CGlobalModules //
|
||||
|
||||
15
Modules.h
15
Modules.h
@@ -644,14 +644,12 @@ public:
|
||||
* needs to turn it on with CAP REQ.
|
||||
*/
|
||||
virtual bool OnServerCapAvailable(const CString& sCap);
|
||||
/** Called for every CAP accepted by server (with CAP ACK after our CAP REQ).
|
||||
* @param sCap capability accepted by server.
|
||||
/** Called for every CAP accepted or rejected by server
|
||||
* (with CAP ACK or CAP NAK after our CAP REQ).
|
||||
* @param sCap capability accepted/rejected by server.
|
||||
* @param sSuccess true if capability was accepted, false if rejected.
|
||||
*/
|
||||
virtual void OnServerCapAccepted(const CString& sCap);
|
||||
/** Called for every CAP rejected by server (with CAP NAK after our CAP REQ).
|
||||
* @param sCap capability rejected by server.
|
||||
*/
|
||||
virtual void OnServerCapRejected(const CString& sCap);
|
||||
virtual void OnServerCapResult(const CString& sCap, bool bSuccess);
|
||||
|
||||
/** This module hook is called just before ZNC tries to join a channel
|
||||
* by itself because it's in the config but wasn't joined yet.
|
||||
@@ -884,8 +882,7 @@ public:
|
||||
bool OnTimerAutoJoin(CChan& Channel);
|
||||
|
||||
bool OnServerCapAvailable(const CString& sCap);
|
||||
bool OnServerCapAccepted(const CString& sCap);
|
||||
bool OnServerCapRejected(const CString& sCap);
|
||||
bool OnServerCapResult(const CString& sCap, bool bSuccess);
|
||||
|
||||
CModule* FindModule(const CString& sModule) const;
|
||||
bool LoadModule(const CString& sModule, const CString& sArgs, CUser* pUser, CString& sRetMsg);
|
||||
|
||||
Reference in New Issue
Block a user