133
133
class CSocket : public Csock {
135
CSocket(CModule* pModule, const CString& sLabel);
136
CSocket(CModule* pModule, const CString& sLabel, const CString& sHostname, unsigned short uPort, int iTimeout = 60);
135
CSocket(CModule* pModule);
136
CSocket(CModule* pModule, const CString& sHostname, unsigned short uPort, int iTimeout = 60);
137
137
virtual ~CSocket();
139
139
using Csock::Connect;
140
140
using Csock::Listen;
142
// This defaults to closing the socket, feel free to override
143
virtual void ReachedMaxBuffer();
142
145
bool Connect(const CString& sHostname, unsigned short uPort, bool bSSL = false, unsigned int uTimeout = 60);
143
146
bool Listen(unsigned short uPort, bool bSSL = false, unsigned int uTimeout = 0);
144
147
virtual bool PutIRC(const CString& sLine);
145
148
virtual bool PutUser(const CString& sLine);
146
149
virtual bool PutStatus(const CString& sLine);
147
virtual bool PutModule(const CString& sLine, const CString& sIdent = "", const CString& sHost = "znc.com");
148
virtual bool PutModNotice(const CString& sLine, const CString& sIdent = "", const CString& sHost = "znc.com");
150
virtual bool PutModule(const CString& sLine, const CString& sIdent = "", const CString& sHost = "znc.in");
151
virtual bool PutModNotice(const CString& sLine, const CString& sIdent = "", const CString& sHost = "znc.in");
151
154
void SetModule(CModule* p);
152
void SetLabel(const CString& s);
156
158
CModule* GetModule() const;
157
const CString& GetLabel() const;
161
162
CModule* m_pModule;
229
229
virtual void OnPostRehash();
230
230
virtual void OnIRCDisconnected();
231
231
virtual void OnIRCConnected();
232
virtual EModRet OnIRCRegistration(CString& sPass, CString& sNick, CString& sIdent, CString& sRealName);
232
233
virtual EModRet OnBroadcast(CString& sMessage);
234
235
virtual EModRet OnDCCUserSend(const CNick& RemoteNick, unsigned long uLongIP, unsigned short uPort, const CString& sFile, unsigned long uFileSize);
239
240
virtual void OnVoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
240
241
virtual void OnDevoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
241
242
virtual void OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs);
243
virtual void OnMode(const CNick& OpNick, CChan& Channel, char uMode, const CString& sArg, bool bAdded, bool bNoChange);
243
245
virtual EModRet OnRaw(CString& sLine);
245
virtual EModRet OnStatusCommand(const CString& sCommand);
247
virtual EModRet OnStatusCommand(CString& sCommand);
246
248
virtual void OnModCommand(const CString& sCommand);
247
249
virtual void OnModNotice(const CString& sMessage);
248
250
virtual void OnModCTCP(const CString& sMessage);
253
255
virtual void OnJoin(const CNick& Nick, CChan& Channel);
254
256
virtual void OnPart(const CNick& Nick, CChan& Channel);
256
virtual void OnUserAttached();
257
virtual void OnUserDetached();
258
virtual void OnUserAttached(bool thisFunctionWasRemoved, bool UseOnClientLogin) {}
259
virtual void OnUserDetached(bool thisFunctionWasRemoved, bool UseOnClientDisconnect) {}
260
virtual void OnClientLogin();
261
virtual void OnClientDisconnect();
258
262
virtual EModRet OnUserRaw(CString& sLine);
259
263
virtual EModRet OnUserCTCPReply(CString& sTarget, CString& sMessage);
260
264
virtual EModRet OnUserCTCP(CString& sTarget, CString& sMessage);
264
268
virtual EModRet OnUserJoin(CString& sChannel, CString& sKey);
265
269
virtual EModRet OnUserPart(CString& sChannel, CString& sMessage);
266
270
virtual EModRet OnUserTopic(CString& sChannel, CString& sTopic);
271
virtual EModRet OnUserTopicRequest(CString& sChannel);
268
273
virtual EModRet OnCTCPReply(CNick& Nick, CString& sMessage);
269
274
virtual EModRet OnPrivCTCP(CNick& Nick, CString& sMessage);
275
280
virtual EModRet OnPrivNotice(CNick& Nick, CString& sMessage);
276
281
virtual EModRet OnChanNotice(CNick& Nick, CChan& Channel, CString& sMessage);
277
282
virtual EModRet OnTopic(CNick& Nick, CChan& Channel, CString& sTopic);
283
virtual EModRet OnTimerAutoJoin(CChan& Channel);
280
286
static double GetCoreVersion() { return VERSION; }
282
288
virtual bool PutIRC(const CString& sLine);
283
289
virtual bool PutUser(const CString& sLine);
284
290
virtual bool PutStatus(const CString& sLine);
285
virtual bool PutModule(const CString& sLine, const CString& sIdent = "", const CString& sHost = "znc.com");
286
virtual bool PutModNotice(const CString& sLine, const CString& sIdent = "", const CString& sHost = "znc.com");
291
virtual bool PutModule(const CString& sLine, const CString& sIdent = "", const CString& sHost = "znc.in");
292
virtual unsigned int PutModule(const CTable& table, const CString& sIdent = "", const CString& sHost = "znc.in");
293
virtual bool PutModNotice(const CString& sLine, const CString& sIdent = "", const CString& sHost = "znc.in");
288
295
const CString& GetModName() const { return m_sModName; }
289
296
// This is where constant module data (e.g. webadmin skins) are saved
303
310
bool AddSocket(CSocket* pSocket);
304
311
bool RemSocket(CSocket* pSocket);
305
bool RemSocket(const CString& sLabel);
312
bool RemSocket(const CString& sSockName);
306
313
bool UnlinkSocket(CSocket* pSocket);
307
CSocket* FindSocket(const CString& sLabel);
314
CSocket* FindSocket(const CString& sSockName);
308
315
virtual void ListSockets();
367
374
virtual bool OnPostRehash();
368
375
virtual bool OnIRCDisconnected();
369
376
virtual bool OnIRCConnected();
377
virtual bool OnIRCRegistration(CString& sPass, CString& sNick, CString& sIdent, CString& sRealName);
370
378
virtual bool OnBroadcast(CString& sMessage);
372
380
virtual bool OnDCCUserSend(const CNick& RemoteNick, unsigned long uLongIP, unsigned short uPort, const CString& sFile, unsigned long uFileSize);
377
385
virtual bool OnVoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
378
386
virtual bool OnDevoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
379
387
virtual bool OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs);
388
virtual bool OnMode(const CNick& OpNick, CChan& Channel, char uMode, const CString& sArg, bool bAdded, bool bNoChange);
381
390
virtual bool OnRaw(CString& sLine);
383
virtual bool OnStatusCommand(const CString& sCommand);
392
virtual bool OnStatusCommand(CString& sCommand);
384
393
virtual bool OnModCommand(const CString& sCommand);
385
394
virtual bool OnModNotice(const CString& sMessage);
386
395
virtual bool OnModCTCP(const CString& sMessage);
391
400
virtual bool OnJoin(const CNick& Nick, CChan& Channel);
392
401
virtual bool OnPart(const CNick& Nick, CChan& Channel);
394
virtual bool OnUserAttached();
395
virtual bool OnUserDetached();
403
virtual bool OnClientLogin();
404
virtual bool OnClientDisconnect();
396
405
virtual bool OnUserRaw(CString& sLine);
397
406
virtual bool OnUserCTCPReply(CString& sTarget, CString& sMessage);
398
407
virtual bool OnUserCTCP(CString& sTarget, CString& sMessage);
402
411
virtual bool OnUserJoin(CString& sChannel, CString& sKey);
403
412
virtual bool OnUserPart(CString& sChannel, CString& sMessage);
404
413
virtual bool OnUserTopic(CString& sChannel, CString& sTopic);
414
virtual bool OnUserTopicRequest(CString& sChannel);
406
416
virtual bool OnCTCPReply(CNick& Nick, CString& sMessage);
407
417
virtual bool OnPrivCTCP(CNick& Nick, CString& sMessage);
413
423
virtual bool OnPrivNotice(CNick& Nick, CString& sMessage);
414
424
virtual bool OnChanNotice(CNick& Nick, CChan& Channel, CString& sMessage);
415
425
virtual bool OnTopic(CNick& Nick, CChan& Channel, CString& sTopic);
426
virtual bool OnTimerAutoJoin(CChan& Channel);
417
428
CModule* FindModule(const CString& sModule) const;
418
429
bool LoadModule(const CString& sModule, const CString& sArgs, CUser* pUser, CString& sRetMsg, bool bFake = false);
436
448
virtual EModRet OnConfigLine(const CString& sName, const CString& sValue, CUser* pUser, CChan* pChan);
437
449
virtual EModRet OnDeleteUser(CUser& User);
450
virtual void OnClientConnect(CClient* pClient, const CString& sHost, unsigned short uPort);
438
451
virtual EModRet OnLoginAttempt(CSmartPtr<CAuthBase> Auth);
439
452
virtual void OnFailedLogin(const CString& sUsername, const CString& sRemoteIP);
448
461
virtual bool OnConfigLine(const CString& sName, const CString& sValue, CUser* pUser, CChan* pChan);
449
462
virtual bool OnDeleteUser(CUser& User);
463
virtual void OnClientConnect(CClient* pClient, const CString& sHost, unsigned short uPort);
450
464
virtual bool OnLoginAttempt(CSmartPtr<CAuthBase> Auth);
451
465
virtual void OnFailedLogin(const CString& sUsername, const CString& sRemoteIP);