Store all 005 values in a map.

Thanks to jayne for requesting this.
This commit is contained in:
Alexey Sokolov
2011-12-04 19:53:26 +07:00
parent eb66e58028
commit 9e047a3beb
2 changed files with 8 additions and 0 deletions

View File

@@ -90,6 +90,7 @@ public:
// This is true if we are past raw 001
bool IsAuthed() const { return m_bAuthed; }
bool IsCapAccepted(const CString& sCap) { return 1 == m_ssAcceptedCaps.count(sCap); }
const MCString& GetISupport() const { return m_mISupport; }
// !Getters
// This handles NAMESX and UHNAMES in a raw 353 reply
@@ -121,6 +122,7 @@ protected:
unsigned int m_uNumCTCP;
static const time_t m_uCTCPFloodTime;
static const unsigned int m_uCTCPFloodCount;
MCString m_mISupport;
};
#endif // !_IRCSOCK_H

View File

@@ -1023,6 +1023,12 @@ void CIRCSock::ParseISupport(const CString& sLine) {
CString sName = it->Token(0, false, "=");
CString sValue = it->Token(1, true, "=");
if (0 < sName.length() && ':' == sName[0]) {
break;
}
m_mISupport[sName] = sValue;
if (sName.Equals("PREFIX")) {
CString sPrefixes = sValue.Token(1, false, ")");
CString sPermModes = sValue.Token(0, false, ")");