diff --git a/include/znc/IRCNetwork.h b/include/znc/IRCNetwork.h index bcedb9af..20127580 100644 --- a/include/znc/IRCNetwork.h +++ b/include/znc/IRCNetwork.h @@ -67,7 +67,7 @@ public: bool PutModule(const CString& sModule, const CString& sLine, CClient* pClient = NULL, CClient* pSkipClient = NULL); const std::vector& GetChans() const; - CChan* FindChan(const CString& sName) const; + CChan* FindChan(CString sName) const; bool AddChan(CChan* pChan); bool AddChan(const CString& sName, bool bInConfig); bool DelChan(const CString& sName); diff --git a/src/IRCNetwork.cpp b/src/IRCNetwork.cpp index 0124daf5..78eb9f23 100644 --- a/src/IRCNetwork.cpp +++ b/src/IRCNetwork.cpp @@ -606,7 +606,11 @@ bool CIRCNetwork::PutModule(const CString& sModule, const CString& sLine, CClien const vector& CIRCNetwork::GetChans() const { return m_vChans; } -CChan* CIRCNetwork::FindChan(const CString& sName) const { +CChan* CIRCNetwork::FindChan(CString sName) const { + if (GetIRCSock()) { + sName.TrimLeft(GetIRCSock()->GetPerms()); + } + for (unsigned int a = 0; a < m_vChans.size(); a++) { CChan* pChan = m_vChans[a]; if (sName.Equals(pChan->GetName())) {