~jdong/+junk/znc

« back to all changes in this revision

Viewing changes to Modules.h

  • Committer: Bazaar Package Importer
  • Author(s): Patrick Matthäi
  • Date: 2008-12-06 23:28:22 UTC
  • mfrom: (4.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20081206232822-6n1lkcot8o78bk9f
Tags: 0.062-2
* Add missing ${misc:Depends}. Thanks lintian.
* Fix debian/watch, so that it does not take the new znc-extra tarball.

Show diffs side-by-side

added added

removed removed

Lines of Context:
132
132
 
133
133
class CSocket : public Csock {
134
134
public:
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();
138
138
 
139
139
        using Csock::Connect;
140
140
        using Csock::Listen;
141
141
 
 
142
        // This defaults to closing the socket, feel free to override
 
143
        virtual void ReachedMaxBuffer();
 
144
 
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");
149
152
 
150
153
        // Setters
151
154
        void SetModule(CModule* p);
152
 
        void SetLabel(const CString& s);
153
155
        // !Setters
154
156
 
155
157
        // Getters
156
158
        CModule* GetModule() const;
157
 
        const CString& GetLabel() const;
158
159
        // !Getters
159
160
private:
160
161
protected:
161
162
        CModule*        m_pModule;
162
 
        CString         m_sLabel;
163
163
};
164
164
 
165
165
class CModInfo {
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);
233
234
 
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);
242
244
 
243
245
        virtual EModRet OnRaw(CString& sLine);
244
246
 
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);
255
257
 
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);
267
272
 
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);
278
284
 
279
285
        void * GetDLL();
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");
287
294
 
288
295
        const CString& GetModName() const { return m_sModName; }
289
296
        // This is where constant module data (e.g. webadmin skins) are saved
302
309
        // Socket stuff
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();
309
316
        // !Socket stuff
310
317
 
358
365
        virtual ~CModules();
359
366
 
360
367
        void SetUser(CUser* pUser) { m_pUser = pUser; }
361
 
        void SetClient(CClient* pClient);
 
368
        void SetClient(CClient* pClient) { m_pClient = pClient; }
362
369
 
363
370
        void UnloadAll();
364
371
 
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);
371
379
 
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);
380
389
 
381
390
        virtual bool OnRaw(CString& sLine);
382
391
 
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);
393
402
 
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);
405
415
 
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);
416
427
 
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);
425
436
 
426
437
protected:
427
438
        CUser*          m_pUser;
 
439
        CClient*        m_pClient;
428
440
};
429
441
 
430
442
class CGlobalModule : public CModule {
435
447
 
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);
440
453
private:
447
460
 
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);
452
466
private: