20 #include <znc/zncconfig.h> 83 const std::map<unsigned char, EChanModeArgs>&
GetChanModes()
const {
87 return (c !=
'\0' &&
GetPerms().find(c) != CString::npos);
90 return (c !=
'\0' &&
GetPermModes().find(c) != CString::npos);
115 const CString& sDefault =
"")
const;
123 bool OnAccountMessage(
CMessage& Message);
125 bool OnAwayMessage(
CMessage& Message);
126 bool OnCapabilityMessage(
CMessage& Message);
128 bool OnErrorMessage(
CMessage& Message);
129 bool OnInviteMessage(
CMessage& Message);
137 bool OnPingMessage(
CMessage& Message);
138 bool OnPongMessage(
CMessage& Message);
142 bool OnWallopsMessage(
CMessage& Message);
143 bool OnServerCapAvailable(
const CString& sCap);
146 void SetNick(
const CString& sNick);
147 void ParseISupport(
const CMessage& Message);
149 void SendAltNick(
const CString& sBadNick);
187 #endif // !ZNC_IRCSOCK_H Definition: Message.h:266
bool IsCapAccepted(const CString &sCap)
Definition: IRCSock.h:110
Definition: Message.h:302
Definition: Message.h:245
const CString & GetPermModes() const
Definition: IRCSock.h:93
void ResumeCap()
If you used PauseCap, call this when CAP negotiation and logging in should be resumed again...
CString GetNickMask() const
Definition: IRCSock.h:94
void ConnectionRefused() override
Connection Refused Event.
bool HasNamesx() const
Definition: IRCSock.h:98
CString m_sPass
Definition: IRCSock.h:167
CIRCNetwork * GetNetwork() const
Definition: IRCSock.h:97
void SockError(int iErrno, const CString &sDescription) override
bool m_bExtendedJoin
Definition: IRCSock.h:159
CString m_sPerms
Definition: IRCSock.h:161
const CString & GetNick() const
Definition: IRCSock.h:95
MCString m_mISupport
Definition: IRCSock.h:177
bool IsPermMode(const char c) const
Definition: IRCSock.h:89
void PauseCap()
You can call this from CModule::OnServerCapResult to suspend sending other CAP requests and CAP END f...
void Quit(const CString &sQuitMsg="")
short int m_iSendsAllowed
Definition: IRCSock.h:179
bool IsPermChar(const char c) const
Definition: IRCSock.h:86
bool m_bServerTime
Definition: IRCSock.h:160
Base IRC socket for client<->ZNC, and ZNC<->server.
Definition: Socket.h:304
EChanModeArgs GetModeType(unsigned char uMode) const
Definition: Message.h:281
Definition: Message.h:259
const CString & GetNick() const
const SCString & GetAcceptedCaps() const
Definition: IRCSock.h:109
unsigned short int m_uFloodBurst
Definition: IRCSock.h:180
const std::set< unsigned char > & GetUserModes() const
Definition: IRCSock.h:104
bool m_bAwayNotify
Definition: IRCSock.h:157
bool HasAwayNotify() const
Definition: IRCSock.h:100
CIRCSock(CIRCNetwork *pNetwork)
std::set< CString > SCString
Definition: ZNCString.h:35
CString GetNickMask() const
Definition: Message.h:228
CNick m_Nick
Definition: IRCSock.h:166
Definition: Message.h:288
Definition: Message.h:217
std::map< unsigned char, EChanModeArgs > m_mueChanModes
Definition: IRCSock.h:164
Definition: IRCNetwork.h:40
bool HasExtendedJoin() const
Definition: IRCSock.h:102
void PutIRC(const CString &sLine)
void Connected() override
Connected event.
const std::map< unsigned char, EChanModeArgs > & GetChanModes() const
Definition: IRCSock.h:83
String class that is used inside ZNC.
Definition: ZNCString.h:68
bool HasAccountNotify() const
Definition: IRCSock.h:101
std::deque< CString > m_vsSendQueue
Definition: IRCSock.h:178
SCString m_ssAcceptedCaps
Definition: IRCSock.h:171
static const unsigned int m_uCTCPFloodCount
Definition: IRCSock.h:176
unsigned int m_uMaxNickLen
Definition: IRCSock.h:169
unsigned char GetPermFromMode(unsigned char uMode) const
const CString & GetPass() const
Definition: IRCSock.h:96
bool IsAuthed() const
Definition: IRCSock.h:108
static const time_t m_uCTCPFloodTime
Definition: IRCSock.h:175
std::map< CString, CChan * > m_msChans
Definition: IRCSock.h:168
CString m_sPermModes
Definition: IRCSock.h:162
bool m_bAuthed
Definition: IRCSock.h:154
static bool IsFloodProtected(double fRate)
time_t m_lastCTCP
Definition: IRCSock.h:173
void SetPass(const CString &s)
Definition: IRCSock.h:76
void Disconnected() override
Disconnected event.
CIRCNetwork * m_pNetwork
Definition: IRCSock.h:165
Definition: Message.h:295
bool HasUHNames() const
Definition: IRCSock.h:99
A dictionary for strings.
Definition: ZNCString.h:595
unsigned int GetMaxNickLen() const
Definition: IRCSock.h:80
Definition: Message.h:251
double m_fFloodRate
Definition: IRCSock.h:181
bool m_bAccountNotify
Definition: IRCSock.h:158
bool HasServerTime() const
Definition: IRCSock.h:103
const MCString & GetISupport() const
Definition: IRCSock.h:113
void Timeout() override
Sock Timed out event.
unsigned int m_uNumCTCP
Definition: IRCSock.h:174
EChanModeArgs
Definition: IRCSock.h:43
const CString & GetPerms() const
Definition: IRCSock.h:92
friend class CIRCFloodTimer
Definition: IRCSock.h:184
Definition: Message.h:238
SCString m_ssPendingCaps
Definition: IRCSock.h:172
bool m_bNamesx
Definition: IRCSock.h:155
unsigned int m_uCapPaused
Definition: IRCSock.h:170
bool m_bFloodProtection
Definition: IRCSock.h:182
bool m_bUHNames
Definition: IRCSock.h:156
Definition: Message.h:272
void PutIRCQuick(const CString &sLine)
Should be used for PONG only.
void ReachedMaxBuffer() override
This WARNING event is called when your buffer for readline exceeds the warning threshold and triggers...
Here is a small explanation of how messages on IRC work, and how you can use this class to get useful...
Definition: Message.h:63
CIRCSock & operator=(const CIRCSock &)=delete
std::set< unsigned char > m_scUserModes
Definition: IRCSock.h:163
void ReadLine(const CString &sData) override