From e53c7aa50c815761f84e0ba3a28c0e6e58dc025f Mon Sep 17 00:00:00 2001 From: brain Date: Sat, 1 May 2004 12:43:49 +0000 Subject: Added Module::OnAccessCheck Added ListMode support git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@758 e03df62e-2008-0410-955e-edbf42e46eb7 --- docs/module-doc/modules_8h-source.html | 443 +++++++++++++++++---------------- 1 file changed, 234 insertions(+), 209 deletions(-) (limited to 'docs/module-doc/modules_8h-source.html') diff --git a/docs/module-doc/modules_8h-source.html b/docs/module-doc/modules_8h-source.html index da3ae5bd7..687d9919d 100644 --- a/docs/module-doc/modules_8h-source.html +++ b/docs/module-doc/modules_8h-source.html @@ -16,220 +16,245 @@ 00008 #ifndef __PLUGIN_H 00009 #define __PLUGIN_H 00010 -00011 #define DEBUG 10 -00012 #define VERBOSE 20 -00013 #define DEFAULT 30 -00014 #define SPARSE 40 -00015 #define NONE 50 -00016 -00017 #define MT_CHANNEL 1 -00018 #define MT_CLIENT 2 -00019 #define MT_SERVER 3 -00020 -00021 #include "dynamic.h" -00022 #include "base.h" -00023 #include "ctables.h" -00024 #include <string> -00025 #include <deque> -00026 #include <sstream> -00027 -00030 typedef std::deque<std::string> file_cache; -00031 typedef file_cache string_list; -00032 -00033 -00034 // This #define allows us to call a method in all -00035 // loaded modules in a readable simple way, e.g.: -00036 // 'FOREACH_MOD OnConnect(user);' -00037 -00038 #define FOREACH_MOD for (int i = 0; i <= MODCOUNT; i++) modules[i]-> -00039 -00040 // This define is similar to the one above but returns a result in MOD_RESULT. -00041 // The first module to return a nonzero result is the value to be accepted, -00042 // and any modules after are ignored. -00043 -00044 // ********************************************************************************************* -00045 -00046 #define FOREACH_RESULT(x) { MOD_RESULT = 0; \ -00047 for (int i = 0; i <= MODCOUNT; i++) { \ -00048 int res = modules[i]->x ; \ -00049 if (res) { \ -00050 MOD_RESULT = res; \ -00051 break; \ -00052 } \ -00053 } \ -00054 } -00055 -00056 // ********************************************************************************************* +00011 // log levels +00012 +00013 #define DEBUG 10 +00014 #define VERBOSE 20 +00015 #define DEFAULT 30 +00016 #define SPARSE 40 +00017 #define NONE 50 +00018 +00019 // used with OnExtendedMode() method of modules +00020 +00021 #define MT_CHANNEL 1 +00022 #define MT_CLIENT 2 +00023 #define MT_SERVER 3 +00024 +00025 // used with OnAccessCheck() method of modules +00026 +00027 #define ACR_DEFAULT 0 // Do default action (act as if the module isnt even loaded) +00028 #define ACR_DENY 1 // deny the action +00029 #define ACR_ALLOW 2 // allow the action +00030 +00031 #define AC_KICK 0 // a user is being kicked +00032 #define AC_DEOP 1 // a user is being deopped +00033 #define AC_OP 2 // a user is being opped +00034 #define AC_VOICE 3 // a user is being voiced +00035 #define AC_DEVOICE 4 // a user is being devoiced +00036 #define AC_HALFOP 5 // a user is being halfopped +00037 #define AC_DEHALFOP 6 // a user is being dehalfopped +00038 #define AC_INVITE 7 // a user is being invited +00039 #define AC_GENERAL_MODE 8 // a user channel mode is being changed +00040 +00041 #include "dynamic.h" +00042 #include "base.h" +00043 #include "ctables.h" +00044 #include <string> +00045 #include <deque> +00046 #include <sstream> +00047 +00050 typedef std::deque<std::string> file_cache; +00051 typedef file_cache string_list; +00052 +00053 +00054 // This #define allows us to call a method in all +00055 // loaded modules in a readable simple way, e.g.: +00056 // 'FOREACH_MOD OnConnect(user);' 00057 -00058 extern void createcommand(char* cmd, handlerfunc f, char flags, int minparams); -00059 extern void server_mode(char **parameters, int pcnt, userrec *user); -00060 -00061 // class Version holds the version information of a Module, returned -00062 // by Module::GetVersion (thanks RD) +00058 #define FOREACH_MOD for (int i = 0; i <= MODCOUNT; i++) modules[i]-> +00059 +00060 // This define is similar to the one above but returns a result in MOD_RESULT. +00061 // The first module to return a nonzero result is the value to be accepted, +00062 // and any modules after are ignored. 00063 -00068 class Version : public classbase -00069 { -00070 public: -00071 const int Major, Minor, Revision, Build; -00072 Version(int major, int minor, int revision, int build); -00073 }; -00074 -00080 class Admin : public classbase -00081 { -00082 public: -00083 const std::string Name, Email, Nick; -00084 Admin(std::string name, std::string email, std::string nick); -00085 }; -00086 -00092 class Module : public classbase -00093 { -00094 public: -00095 -00099 Module(); -00100 -00104 virtual ~Module(); -00105 -00110 virtual Version GetVersion(); -00111 -00115 virtual void OnUserConnect(userrec* user); -00116 -00120 virtual void OnUserQuit(userrec* user); -00121 -00126 virtual void OnUserJoin(userrec* user, chanrec* channel); -00127 -00132 virtual void OnUserPart(userrec* user, chanrec* channel); -00133 -00140 virtual void OnPacketTransmit(char *p); +00064 // ********************************************************************************************* +00065 +00066 #define FOREACH_RESULT(x) { MOD_RESULT = 0; \ +00067 for (int i = 0; i <= MODCOUNT; i++) { \ +00068 int res = modules[i]->x ; \ +00069 if (res) { \ +00070 MOD_RESULT = res; \ +00071 break; \ +00072 } \ +00073 } \ +00074 } +00075 +00076 // ********************************************************************************************* +00077 +00078 extern void createcommand(char* cmd, handlerfunc f, char flags, int minparams); +00079 extern void server_mode(char **parameters, int pcnt, userrec *user); +00080 +00081 // class Version holds the version information of a Module, returned +00082 // by Module::GetVersion (thanks RD) +00083 +00088 class Version : public classbase +00089 { +00090 public: +00091 const int Major, Minor, Revision, Build; +00092 Version(int major, int minor, int revision, int build); +00093 }; +00094 +00100 class Admin : public classbase +00101 { +00102 public: +00103 const std::string Name, Email, Nick; +00104 Admin(std::string name, std::string email, std::string nick); +00105 }; +00106 +00112 class Module : public classbase +00113 { +00114 public: +00115 +00119 Module(); +00120 +00124 virtual ~Module(); +00125 +00130 virtual Version GetVersion(); +00131 +00135 virtual void OnUserConnect(userrec* user); +00136 +00140 virtual void OnUserQuit(userrec* user); 00141 -00149 virtual void OnPacketReceive(char *p); -00150 -00156 virtual void OnRehash(); -00157 -00166 virtual void OnServerRaw(std::string &raw, bool inbound, userrec* user); -00167 -00177 virtual bool OnExtendedMode(userrec* user, void* target, char modechar, int type, bool mode_on, string_list &params); -00178 -00191 virtual int OnUserPreJoin(userrec* user, chanrec* chan, const char* cname); -00192 -00193 -00198 virtual void OnOper(userrec* user); -00199 -00208 virtual void OnInfo(userrec* user); -00209 -00214 virtual void OnWhois(userrec* source, userrec* dest); -00215 -00224 virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string text); -00225 -00234 virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string text); +00146 virtual void OnUserJoin(userrec* user, chanrec* channel); +00147 +00152 virtual void OnUserPart(userrec* user, chanrec* channel); +00153 +00160 virtual void OnPacketTransmit(char *p); +00161 +00169 virtual void OnPacketReceive(char *p); +00170 +00176 virtual void OnRehash(); +00177 +00186 virtual void OnServerRaw(std::string &raw, bool inbound, userrec* user); +00187 +00197 virtual int OnExtendedMode(userrec* user, void* target, char modechar, int type, bool mode_on, string_list &params); +00198 +00211 virtual int OnUserPreJoin(userrec* user, chanrec* chan, const char* cname); +00212 +00213 +00218 virtual void OnOper(userrec* user); +00219 +00228 virtual void OnInfo(userrec* user); +00229 +00234 virtual void OnWhois(userrec* source, userrec* dest); 00235 -00243 virtual int OnUserPreNick(userrec* user, std::string newnick); -00244 }; +00244 virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string text); 00245 -00246 -00252 class Server : public classbase -00253 { -00254 public: -00258 Server(); -00262 virtual ~Server(); -00263 -00267 virtual void SendOpers(std::string s); -00272 virtual void Log(int level, std::string s); -00277 virtual void Send(int Socket, std::string s); -00282 virtual void SendServ(int Socket, std::string s); -00287 virtual void SendFrom(int Socket, userrec* User, std::string s); -00302 virtual void SendTo(userrec* Source, userrec* Dest, std::string s); -00309 virtual void SendChannel(userrec* User, chanrec* Channel, std::string s,bool IncludeSender); -00314 virtual bool CommonChannels(userrec* u1, userrec* u2); -00322 virtual void SendCommon(userrec* User, std::string text,bool IncludeSender); -00327 virtual void SendWallops(userrec* User, std::string text); -00328 -00332 virtual bool IsNick(std::string nick); -00336 virtual int CountUsers(chanrec* c); -00340 virtual userrec* FindNick(std::string nick); -00344 virtual chanrec* FindChannel(std::string channel); -00349 virtual std::string ChanMode(userrec* User, chanrec* Chan); -00352 virtual std::string GetServerName(); -00355 virtual std::string GetNetworkName(); -00361 virtual Admin GetAdmin(); -00380 virtual bool AddExtendedMode(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off); -00381 -00396 virtual void AddCommand(char* cmd, handlerfunc f, char flags, int minparams); -00397 -00419 virtual void SendMode(char **parameters, int pcnt, userrec *user); -00420 -00433 virtual void SendToModeMask(std::string modes, int flags, std::string text); -00434 -00440 virtual chanrec* JoinUserToChannel(userrec* user, std::string cname, std::string key); -00441 -00447 virtual chanrec* PartUserFromChannel(userrec* user, std::string cname, std::string reason); -00448 -00454 virtual void ChangeUserNick(userrec* user, std::string nickname); -00455 -00466 virtual void QuitUser(userrec* user, std::string reason); -00467 -00472 virtual bool MatchText(std::string sliteral, std::string spattern); -00473 -00485 virtual void CallCommandHandler(std::string commandname, char** parameters, int pcnt, userrec* user); -00486 -00492 virtual void ChangeHost(userrec* user, std::string host); -00493 -00499 virtual void ChangeGECOS(userrec* user, std::string gecos); -00500 -00509 virtual bool IsUlined(std::string server); -00510 }; -00511 -00518 class ConfigReader : public classbase -00519 { -00520 protected: -00526 std::stringstream *cache; -00529 bool error; -00530 -00531 public: -00536 ConfigReader(); // default constructor reads ircd.conf -00540 ConfigReader(std::string filename); // read a module-specific config -00544 ~ConfigReader(); -00549 std::string ReadValue(std::string tag, std::string name, int index); -00556 int Enumerate(std::string tag); -00561 bool Verify(); -00562 -00568 int EnumerateValues(std::string tag, int index); -00569 }; -00570 -00571 -00572 -00578 class FileReader : public classbase -00579 { -00580 file_cache fc; -00581 public: -00586 FileReader(); -00587 -00593 FileReader(std::string filename); -00594 -00598 ~FileReader(); -00599 -00605 void LoadFile(std::string filename); -00606 -00610 bool Exists(); -00611 -00616 std::string GetLine(int x); -00617 -00623 int FileSize(); -00624 }; -00625 -00626 -00633 class ModuleFactory : public classbase -00634 { -00635 public: -00636 ModuleFactory() { } -00637 virtual ~ModuleFactory() { } -00642 virtual Module * CreateModule() = 0; -00643 }; -00644 -00645 -00646 typedef DLLFactory<ModuleFactory> ircd_module; -00647 -00648 #endif -
Generated on Fri Apr 30 15:46:22 2004 for InspIRCd by +00254 virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string text); +00255 +00263 virtual int OnUserPreNick(userrec* user, std::string newnick); +00264 +00286 virtual int OnAccessCheck(userrec* source,userrec* dest,chanrec* channel,int access_type); +00287 }; +00288 +00289 +00295 class Server : public classbase +00296 { +00297 public: +00301 Server(); +00305 virtual ~Server(); +00306 +00310 virtual void SendOpers(std::string s); +00315 virtual void Log(int level, std::string s); +00320 virtual void Send(int Socket, std::string s); +00325 virtual void SendServ(int Socket, std::string s); +00330 virtual void SendFrom(int Socket, userrec* User, std::string s); +00345 virtual void SendTo(userrec* Source, userrec* Dest, std::string s); +00352 virtual void SendChannel(userrec* User, chanrec* Channel, std::string s,bool IncludeSender); +00357 virtual bool CommonChannels(userrec* u1, userrec* u2); +00365 virtual void SendCommon(userrec* User, std::string text,bool IncludeSender); +00370 virtual void SendWallops(userrec* User, std::string text); +00371 +00375 virtual bool IsNick(std::string nick); +00379 virtual int CountUsers(chanrec* c); +00383 virtual userrec* FindNick(std::string nick); +00387 virtual chanrec* FindChannel(std::string channel); +00392 virtual std::string ChanMode(userrec* User, chanrec* Chan); +00396 virtual bool IsOnChannel(userrec* User, chanrec* Chan); +00399 virtual std::string GetServerName(); +00402 virtual std::string GetNetworkName(); +00408 virtual Admin GetAdmin(); +00427 virtual bool AddExtendedMode(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off); +00428 +00450 virtual bool AddExtendedListMode(char modechar); +00451 +00466 virtual void AddCommand(char* cmd, handlerfunc f, char flags, int minparams); +00467 +00489 virtual void SendMode(char **parameters, int pcnt, userrec *user); +00490 +00503 virtual void SendToModeMask(std::string modes, int flags, std::string text); +00504 +00510 virtual chanrec* JoinUserToChannel(userrec* user, std::string cname, std::string key); +00511 +00517 virtual chanrec* PartUserFromChannel(userrec* user, std::string cname, std::string reason); +00518 +00524 virtual void ChangeUserNick(userrec* user, std::string nickname); +00525 +00536 virtual void QuitUser(userrec* user, std::string reason); +00537 +00542 virtual bool MatchText(std::string sliteral, std::string spattern); +00543 +00555 virtual void CallCommandHandler(std::string commandname, char** parameters, int pcnt, userrec* user); +00556 +00562 virtual void ChangeHost(userrec* user, std::string host); +00563 +00569 virtual void ChangeGECOS(userrec* user, std::string gecos); +00570 +00579 virtual bool IsUlined(std::string server); +00580 }; +00581 +00588 class ConfigReader : public classbase +00589 { +00590 protected: +00596 std::stringstream *cache; +00599 bool error; +00600 +00601 public: +00606 ConfigReader(); // default constructor reads ircd.conf +00610 ConfigReader(std::string filename); // read a module-specific config +00614 ~ConfigReader(); +00619 std::string ReadValue(std::string tag, std::string name, int index); +00626 int Enumerate(std::string tag); +00631 bool Verify(); +00632 +00638 int EnumerateValues(std::string tag, int index); +00639 }; +00640 +00641 +00642 +00648 class FileReader : public classbase +00649 { +00650 file_cache fc; +00651 public: +00656 FileReader(); +00657 +00663 FileReader(std::string filename); +00664 +00668 ~FileReader(); +00669 +00675 void LoadFile(std::string filename); +00676 +00680 bool Exists(); +00681 +00686 std::string GetLine(int x); +00687 +00693 int FileSize(); +00694 }; +00695 +00696 +00703 class ModuleFactory : public classbase +00704 { +00705 public: +00706 ModuleFactory() { } +00707 virtual ~ModuleFactory() { } +00712 virtual Module * CreateModule() = 0; +00713 }; +00714 +00715 +00716 typedef DLLFactory<ModuleFactory> ircd_module; +00717 +00718 #endif +
Generated on Sat May 1 13:39:00 2004 for InspIRCd by doxygen1.3-rc3
-- cgit v1.2.3