mirror of
https://github.com/znc/znc.git
synced 2026-08-07 01:13:25 +02:00
Fix support for /msg @#chan :hi
005 STATUSMSG defines list of characters prependable to channel name, but we used simple modes instead. See https://tools.ietf.org/html/draft-brocklesby-irc-isupport-03#section-3.16 Fix #272 Thanks to grawity for the link to 005 docs draft, and to carrot for testing the patch.
This commit is contained in:
@@ -102,6 +102,7 @@ public:
|
||||
bool IsAuthed() const { return m_bAuthed; }
|
||||
bool IsCapAccepted(const CString& sCap) { return 1 == m_ssAcceptedCaps.count(sCap); }
|
||||
const MCString& GetISupport() const { return m_mISupport; }
|
||||
CString GetISupport(const CString& sKey, const CString& sDefault = "") const;
|
||||
// !Getters
|
||||
|
||||
// This handles NAMESX and UHNAMES in a raw 353 reply
|
||||
|
||||
+2
-1
@@ -624,7 +624,8 @@ const vector<CChan*>& CIRCNetwork::GetChans() const { return m_vChans; }
|
||||
|
||||
CChan* CIRCNetwork::FindChan(CString sName) const {
|
||||
if (GetIRCSock()) {
|
||||
sName.TrimLeft(GetIRCSock()->GetPerms());
|
||||
// See https://tools.ietf.org/html/draft-brocklesby-irc-isupport-03#section-3.16
|
||||
sName.TrimLeft(GetIRCSock()->GetISupport("STATUSMSG", ""));
|
||||
}
|
||||
|
||||
for (unsigned int a = 0; a < m_vChans.size(); a++) {
|
||||
|
||||
@@ -1211,6 +1211,15 @@ void CIRCSock::ParseISupport(const CString& sLine) {
|
||||
}
|
||||
}
|
||||
|
||||
CString CIRCSock::GetISupport(const CString& sKey, const CString& sDefault) const {
|
||||
MCString::const_iterator i = m_mISupport.find(sKey.AsUpper());
|
||||
if (i == m_mISupport.end()) {
|
||||
return sDefault;
|
||||
} else {
|
||||
return i->second;
|
||||
}
|
||||
}
|
||||
|
||||
void CIRCSock::ForwardRaw353(const CString& sLine) const {
|
||||
vector<CClient*>& vClients = m_pNetwork->GetClients();
|
||||
vector<CClient*>::iterator it;
|
||||
|
||||
Reference in New Issue
Block a user