mirror of
https://github.com/znc/znc.git
synced 2026-07-06 01:41:12 +02:00
Add module hooks for raw client and server messages
This commit is contained in:
+7
-2
@@ -19,6 +19,7 @@
|
||||
#include <znc/User.h>
|
||||
#include <znc/IRCNetwork.h>
|
||||
|
||||
using std::map;
|
||||
using std::vector;
|
||||
|
||||
#define CALLMOD(MOD, CLIENT, USER, NETWORK, FUNC) { \
|
||||
@@ -753,8 +754,12 @@ CString CClient::GetFullName() {
|
||||
}
|
||||
|
||||
void CClient::PutClient(const CString& sLine) {
|
||||
DEBUG("(" << GetFullName() << ") ZNC -> CLI [" << sLine << "]");
|
||||
Write(sLine + "\r\n");
|
||||
bool bReturn = false;
|
||||
CString sCopy = sLine;
|
||||
ALLMODULECALL(OnSendToClient(sCopy, *this), &bReturn);
|
||||
if (bReturn) return;
|
||||
DEBUG("(" << GetFullName() << ") ZNC -> CLI [" << sCopy << "]");
|
||||
Write(sCopy + "\r\n");
|
||||
}
|
||||
|
||||
void CClient::PutStatusNotice(const CString& sLine) {
|
||||
|
||||
+7
-2
@@ -1040,8 +1040,13 @@ void CIRCSock::TrySend() {
|
||||
// This condition must be the same as in PutIRC() and PutIRCQuick()!
|
||||
while (!m_vsSendQueue.empty() && (!m_bFloodProtection || m_iSendsAllowed > 0)) {
|
||||
m_iSendsAllowed--;
|
||||
DEBUG("(" << m_pNetwork->GetUser()->GetUserName() << "/" << m_pNetwork->GetName() << ") ZNC -> IRC [" << m_vsSendQueue.front() << "]");
|
||||
Write(m_vsSendQueue.front() + "\r\n");
|
||||
bool bSkip = false;
|
||||
CString& sLine = m_vsSendQueue.front();
|
||||
ALLMODULECALL(OnSendToIRC(sLine), &bSkip);
|
||||
if (!bSkip) {;
|
||||
DEBUG("(" << m_pNetwork->GetUser()->GetUserName() << "/" << m_pNetwork->GetName() << ") ZNC -> IRC [" << sLine << "]");
|
||||
Write(sLine + "\r\n");
|
||||
}
|
||||
m_vsSendQueue.pop_front();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -625,6 +625,9 @@ CModule::EModRet CModule::OnTimerAutoJoin(CChan& Channel) { return CONTINUE; }
|
||||
CModule::EModRet CModule::OnAddNetwork(CIRCNetwork& Network, CString& sErrorRet) { return CONTINUE; }
|
||||
CModule::EModRet CModule::OnDeleteNetwork(CIRCNetwork& Network) { return CONTINUE; }
|
||||
|
||||
CModule::EModRet CModule::OnSendToClient(CString& sLine, CClient& Client) { return CONTINUE; }
|
||||
CModule::EModRet CModule::OnSendToIRC(CString& sLine) { return CONTINUE; }
|
||||
|
||||
bool CModule::OnServerCapAvailable(const CString& sCap) { return false; }
|
||||
void CModule::OnServerCapResult(const CString& sCap, bool bSuccess) {}
|
||||
|
||||
@@ -792,6 +795,8 @@ bool CModules::OnTopic(CNick& Nick, CChan& Channel, CString& sTopic) { MODHALTCH
|
||||
bool CModules::OnTimerAutoJoin(CChan& Channel) { MODHALTCHK(OnTimerAutoJoin(Channel)); }
|
||||
bool CModules::OnAddNetwork(CIRCNetwork& Network, CString& sErrorRet) { MODHALTCHK(OnAddNetwork(Network, sErrorRet)); }
|
||||
bool CModules::OnDeleteNetwork(CIRCNetwork& Network) { MODHALTCHK(OnDeleteNetwork(Network)); }
|
||||
bool CModules::OnSendToClient(CString& sLine, CClient& Client) { MODHALTCHK(OnSendToClient(sLine, Client)); }
|
||||
bool CModules::OnSendToIRC(CString& sLine) { MODHALTCHK(OnSendToIRC(sLine)); }
|
||||
bool CModules::OnStatusCommand(CString& sCommand) { MODHALTCHK(OnStatusCommand(sCommand)); }
|
||||
bool CModules::OnModCommand(const CString& sCommand) { MODUNLOADCHK(OnModCommand(sCommand)); return false; }
|
||||
bool CModules::OnModNotice(const CString& sMessage) { MODUNLOADCHK(OnModNotice(sMessage)); return false; }
|
||||
|
||||
Reference in New Issue
Block a user