Go to the documentation of this file.
20 #include <znc/zncconfig.h>
42 : m_sUsername(sUsername), m_sPassword(sPassword), m_pSock(pSock) {}
51 m_sUsername = sUsername;
52 m_sPassword = sPassword;
132 {
false, [
this](
bool bVal) {
m_bNamesx = bVal; }}},
133 {
"userhost-in-names",
134 {
false, [
this](
bool bVal) {
m_bUHNames = bVal; }}},
138 {
false, [
this](
bool bVal) {
142 {
"batch", {
false, [
this](
bool bVal) {
153 {
true, [
this](
bool bVal) {
313 bool bReconnect =
true);
315 const std::vector<CClient*>&
GetClients()
const;
321 void HandleCap(
const CMessage& Message);
322 void RespondCap(
const CString& sResponse);
323 void ParsePass(
const CString& sAuthLine);
324 void ParseUser(
const CString& sAuthLine);
325 void ParseIdentifier(
const CString& sAuthLine);
327 template <
typename T>
328 void AddBuffer(
const T& Message);
329 void EchoMessage(
const CMessage& Message);
331 std::set<CChan*> MatchChans(
const CString& sPatterns)
const;
332 unsigned int AttachChans(
const std::set<CChan*>& sChans);
333 unsigned int DetachChans(
const std::set<CChan*>& sChans);
341 bool OnPingMessage(
CMessage& Message);
342 bool OnPongMessage(
CMessage& Message);
346 bool OnOtherMessage(
CMessage& Message);
379 std::map<
CString, std::pair<bool, std::function<void(
bool bVal)>>>
388 #endif // !ZNC_CLIENT_H
bool HasExtendedJoin() const
Definition: Client.h:188
bool m_bAwayNotify
Definition: Client.h:354
bool m_bUHNames
Definition: Client.h:359
CAuthBase & operator=(const CAuthBase &)=delete
bool HasBatch() const
Definition: Client.h:193
void ReachedMaxBuffer() override
This WARNING event is called when your buffer for readline exceeds the warning threshold and triggers...
bool m_bAccountNotify
Definition: Client.h:355
void RefusedLogin(const CString &sReason) override
void SendRequiredPasswordNotice()
Basic socket class.
Definition: Csocket.h:564
Definition: Message.h:340
CClient()
Definition: Client.h:101
SCString m_ssServerDependentCaps
Definition: Client.h:383
void SetTagSupport(const CString &sTag, bool bState)
Registers a tag as being supported or unsupported by the client.
Definition: Message.h:242
Definition: Message.h:324
bool m_bGotPass
Definition: Client.h:349
virtual void RefusedLogin(const CString &sReason)=0
CString GetRemoteIP() const
void HelpUser(const CString &sFilter="")
void UserCommand(CString &sLine)
bool m_bInCap
Definition: Client.h:352
CString GetIdentifier() const
Definition: Client.h:183
Definition: Message.h:253
bool HasSelfMessage() const
Definition: Client.h:195
bool HasNamesx() const
Definition: Client.h:189
std::set< CString > SCString
Definition: ZNCString.h:35
virtual void AcceptedLogin(CUser &User)=0
bool m_bGotUser
Definition: Client.h:351
void AcceptLogin(CUser &User)
friend class ClientTest
Definition: Client.h:385
Base IRC socket for client<->ZNC, and ZNC<->server.
Definition: Socket.h:309
void SetMaxBufferThreshold(uint32_t iThreshold)
sets the max buffered threshold when EnableReadLine() is enabled
Here is a small explanation of how messages on IRC work, and how you can use this class to get useful...
Definition: Message.h:70
CString GetNick(bool bAllowIRCNick=true) const
std::shared_ptr< CAuthBase > m_spAuth
Definition: Client.h:373
void StatusCTCP(const CString &sCommand)
unsigned int PutStatus(const CTable &table)
const CString & GetUsername() const
Definition: Client.h:59
String class that is used inside ZNC.
Definition: ZNCString.h:68
void AcceptedLogin(CUser &User) override
CString GetFullName() const
void Timeout() override
Sock Timed out event.
bool m_bSelfMessage
Definition: Client.h:364
bool HasAwayNotify() const
Definition: Client.h:185
CString m_sNetwork
Definition: Client.h:371
std::map< CString, std::pair< bool, std::function< void(bool bVal)> > > m_mCoreCaps
Definition: Client.h:380
bool m_bNamesx
Definition: Client.h:358
void PutModule(const CString &sModule, const CString &sLine)
void ClearServerDependentCaps()
bool m_bBatch
Definition: Client.h:362
Definition: Message.h:333
void AcceptLogin(CUser &User)
const CString & GetPassword() const
Definition: Client.h:60
void NotifyServerDependentCaps(const SCString &ssCaps)
SCString m_ssSupportedTags
Definition: Client.h:375
void SetNetwork(CIRCNetwork *pNetwork, bool bDisconnect=true, bool bReconnect=true)
void SetNick(const CString &s)
void PutIRC(const CString &sLine)
void SetPlaybackActive(bool bActive)
Definition: Client.h:206
void UserPortCommand(CString &sLine)
virtual void Invalidate()
CString m_sIdentifier
Definition: Client.h:372
bool m_bCapNotify
Definition: Client.h:353
Definition: Message.h:263
CString m_sPass
Definition: Client.h:369
bool IsPlaybackActive() const
Definition: Client.h:205
bool HasAccountTag() const
Definition: Client.h:187
bool m_bEchoMessage
Definition: Client.h:363
void PutClient(const CString &sLine)
Sends a message to the client.
bool HasServerTime() const
Definition: Client.h:192
CAuthBase(const CString &sUsername, const CString &sPassword, CZNCSock *pSock)
Definition: Client.h:40
CString GetNickMask() const
bool HasAccountNotify() const
Definition: Client.h:186
void PutModNotice(const CString &sModule, const CString &sLine)
bool IsAttached() const
Definition: Client.h:203
void SetAway(bool bAway)
Definition: Client.h:310
virtual ~CAuthBase()
Definition: Client.h:44
bool m_bPlaybackActive
Definition: Client.h:365
bool IsAway() const
Definition: Client.h:191
CString m_sNick
Definition: Client.h:368
void EnableReadLine()
set the value of m_bEnableReadLine to true, we don't want to store a buffer for ReadLine,...
Definition: Message.h:270
CString m_sUser
Definition: Client.h:370
void Disconnected() override
Disconnected event.
bool IsCapEnabled(const CString &sCap) const
Definition: Client.h:282
bool PutClientRaw(const CString &sLine)
Sends a raw data line to the client.
CClientAuth(CClient *pClient, const CString &sUsername, const CString &sPassword)
void ConnectionRefused() override
Connection Refused Event.
bool m_bServerTime
Definition: Client.h:361
virtual ~CClientAuth()
Definition: Client.h:82
CClient * m_pClient
Definition: Client.h:96
Definition: IRCNetwork.h:40
bool m_bAway
Definition: Client.h:360
Csock * GetSocket() const
Definition: Client.h:61
CIRCNetwork * GetNetwork() const
Definition: Client.h:314
void PutStatusNotice(const CString &sLine)
Generate a grid-like or list-like output from a given input.
Definition: Utils.h:171
Definition: Translation.h:104
void Invalidate() override
Definition: Client.h:87
bool HasEchoMessage() const
Definition: Client.h:194
bool IsTagEnabled(const CString &sTag) const
Definition: Client.h:286
Definition: Message.h:291
CClient & operator=(const CClient &)=delete
CUser * GetUser() const
Definition: Client.h:311
void Connected() override
Connected event.
CUser * m_pUser
Definition: Client.h:366
bool HasUHNames() const
Definition: Client.h:190
CClientAuth & operator=(const CClientAuth &)=delete
bool m_bExtendedJoin
Definition: Client.h:357
SCString m_ssAcceptedCaps
Definition: Client.h:374
bool m_bAccountTag
Definition: Client.h:356
void RefuseLogin(const CString &sReason)
void RefuseLogin(const CString &sReason)
bool HasCapNotify() const
Definition: Client.h:184
virtual void SetLoginInfo(const CString &sUsername, const CString &sPassword, CZNCSock *pSock)
Definition: Client.h:49
bool m_bGotNick
Definition: Client.h:350
const std::vector< CClient * > & GetClients() const
Definition: Message.h:315
CIRCNetwork * m_pNetwork
Definition: Client.h:367
static bool IsValidIdentifier(const CString &sIdentifier)
void ReadLine(const CString &sData) override
const CIRCSock * GetIRCSock() const