From 0b6d609014e6795773481b71c3428891a350d609 Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Fri, 4 Nov 2011 00:02:09 +0700 Subject: [PATCH] Fix CZNC::Broadcast... We need a good way to speak to users, not just sending some clients some stuff... Thanks to Cronus` for reporting this, as notify_connect failed for him when using broken broadcast. --- src/User.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/User.cpp b/src/User.cpp index 4b5b468b..aaea3e27 100644 --- a/src/User.cpp +++ b/src/User.cpp @@ -905,9 +905,10 @@ bool CUser::PutAllUser(const CString& sLine, CClient* pClient, CClient* pSkipCli } bool CUser::PutStatus(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]->PutStatus(sLine); + vector vClients = GetAllClients(); + for (unsigned int a = 0; a < vClients.size(); a++) { + if ((!pClient || pClient == vClients[a]) && pSkipClient != vClients[a]) { + vClients[a]->PutStatus(sLine); if (pClient) { return true; @@ -919,9 +920,10 @@ bool CUser::PutStatus(const CString& sLine, CClient* pClient, CClient* pSkipClie } bool CUser::PutStatusNotice(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]->PutStatusNotice(sLine); + vector vClients = GetAllClients(); + for (unsigned int a = 0; a < vClients.size(); a++) { + if ((!pClient || pClient == vClients[a]) && pSkipClient != vClients[a]) { + vClients[a]->PutStatusNotice(sLine); if (pClient) { return true;