PutModule should try sending the line to all clients connected to the same network before the user clients

This commit is contained in:
Kyle Fuller
2011-09-18 14:32:47 +00:00
parent cd1192e01f
commit 9e3dc0bf4e
3 changed files with 24 additions and 4 deletions
+14
View File
@@ -460,6 +460,20 @@ bool CIRCNetwork::PutStatus(const CString& sLine, CClient* pClient, CClient* pSk
return (pClient == NULL);
}
bool CIRCNetwork::PutModule(const CString& sModule, const CString& sLine, CClient* pClient, CClient* pSkipClient) {
for (unsigned int a = 0; a < m_vClients.size(); a++) {
if ((!pClient || pClient == m_vClients[a]) && pSkipClient != m_vClients[a]) {
m_vClients[a]->PutModule(sModule, sLine);
if (pClient) {
return true;
}
}
}
return (pClient == NULL);
}
// Channels
const vector<CChan*>& CIRCNetwork::GetChans() const { return m_vChans; }
+1
View File
@@ -61,6 +61,7 @@ public:
bool PutUser(const CString& sLine, CClient* pClient = NULL, CClient* pSkipClient = NULL);
bool PutStatus(const CString& sLine, CClient* pClient = NULL, CClient* pSkipClient = NULL);
bool PutModule(const CString& sModule, const CString& sLine, CClient* pClient = NULL, CClient* pSkipClient = NULL);
const vector<CChan*>& GetChans() const;
CChan* FindChan(const CString& sName) const;
+9 -4
View File
@@ -567,15 +567,20 @@ unsigned int CModule::PutModule(const CTable& table) {
return idx - 1;
}
bool CModule::PutModule(const CString& sLine) {
if (!m_pUser)
return false;
if (m_pClient) {
m_pClient->PutModule(GetModName(), sLine);
return true;
}
return m_pUser->PutModule(GetModName(), sLine);
if (m_pNetwork) {
return m_pNetwork->PutModule(GetModName(), sLine);
}
if (m_pUser) {
return m_pUser->PutModule(GetModName(), sLine);
}
return false;
}
bool CModule::PutModNotice(const CString& sLine) {
if (!m_pUser)