From 74e9276df9d67147885dd2a11b1c23913c9c94f1 Mon Sep 17 00:00:00 2001 From: brain Date: Mon, 19 Apr 2004 01:36:09 +0000 Subject: Documentation update git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@668 e03df62e-2008-0410-955e-edbf42e46eb7 --- docs/module-doc/modules_8cpp-source.html | 822 ++++++++++++++++--------------- 1 file changed, 412 insertions(+), 410 deletions(-) (limited to 'docs/module-doc/modules_8cpp-source.html') diff --git a/docs/module-doc/modules_8cpp-source.html b/docs/module-doc/modules_8cpp-source.html index abeda60dd..2330e194c 100644 --- a/docs/module-doc/modules_8cpp-source.html +++ b/docs/module-doc/modules_8cpp-source.html @@ -20,424 +20,426 @@ 00012 #include "ctables.h" 00013 #include "inspircd_io.h" 00014 #include "wildcard.h" -00015 -00016 // class type for holding an extended mode character - internal to core +00015 #include "mode.h" +00016 #include "message.h" 00017 -00018 class ExtMode -00019 { -00020 public: -00021 char modechar; -00022 int type; -00023 int params_when_on; -00024 int params_when_off; -00025 bool needsoper; -00026 ExtMode(char mc, int ty, bool oper, int p_on, int p_off) : modechar(mc), type(ty), needsoper(oper), params_when_on(p_on), params_when_off(p_off) { }; -00027 }; -00028 -00029 typedef std::vector<ExtMode> ExtModeList; -00030 typedef ExtModeList::iterator ExtModeListIter; -00031 -00032 ExtModeList EMode; +00018 // class type for holding an extended mode character - internal to core +00019 +00020 class ExtMode : public classbase +00021 { +00022 public: +00023 char modechar; +00024 int type; +00025 int params_when_on; +00026 int params_when_off; +00027 bool needsoper; +00028 ExtMode(char mc, int ty, bool oper, int p_on, int p_off) : modechar(mc), type(ty), needsoper(oper), params_when_on(p_on), params_when_off(p_off) { }; +00029 }; +00030 +00031 typedef std::vector<ExtMode> ExtModeList; +00032 typedef ExtModeList::iterator ExtModeListIter; 00033 -00034 // returns true if an extended mode character is in use -00035 bool ModeDefined(char modechar, int type) -00036 { -00037 log(DEBUG,"Size of extmodes vector is %d",EMode.size()); -00038 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++) -00039 { -00040 log(DEBUG,"i->modechar==%c, modechar=%c, i->type=%d, type=%d",i->modechar,modechar,i->type,type); -00041 if ((i->modechar == modechar) && (i->type == type)) -00042 { -00043 return true; -00044 } -00045 } -00046 return false; -00047 } -00048 -00049 bool ModeDefinedOper(char modechar, int type) -00050 { -00051 log(DEBUG,"Size of extmodes vector is %d",EMode.size()); -00052 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++) -00053 { -00054 log(DEBUG,"i->modechar==%c, modechar=%c, i->type=%d, type=%d",i->modechar,modechar,i->type,type); -00055 if ((i->modechar == modechar) && (i->type == type) && (i->needsoper == true)) -00056 { -00057 return true; -00058 } -00059 } -00060 return false; -00061 } -00062 -00063 // returns number of parameters for a custom mode when it is switched on -00064 int ModeDefinedOn(char modechar, int type) -00065 { -00066 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++) -00067 { -00068 if ((i->modechar == modechar) && (i->type == type)) -00069 { -00070 return i->params_when_on; -00071 } -00072 } -00073 return 0; -00074 } -00075 -00076 // returns number of parameters for a custom mode when it is switched on -00077 int ModeDefinedOff(char modechar, int type) -00078 { -00079 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++) -00080 { -00081 if ((i->modechar == modechar) && (i->type == type)) -00082 { -00083 return i->params_when_off; -00084 } -00085 } -00086 return 0; -00087 } -00088 -00089 // returns true if an extended mode character is in use -00090 bool DoAddExtendedMode(char modechar, int type, bool requires_oper, int params_on, int params_off) -00091 { -00092 if (ModeDefined(modechar,type)) { -00093 return false; -00094 } -00095 EMode.push_back(ExtMode(modechar,type,requires_oper,params_on,params_off)); -00096 return true; -00097 } -00098 -00099 -00100 // version is a simple class for holding a modules version number +00034 ExtModeList EMode; +00035 +00036 // returns true if an extended mode character is in use +00037 bool ModeDefined(char modechar, int type) +00038 { +00039 log(DEBUG,"Size of extmodes vector is %d",EMode.size()); +00040 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++) +00041 { +00042 log(DEBUG,"i->modechar==%c, modechar=%c, i->type=%d, type=%d",i->modechar,modechar,i->type,type); +00043 if ((i->modechar == modechar) && (i->type == type)) +00044 { +00045 return true; +00046 } +00047 } +00048 return false; +00049 } +00050 +00051 bool ModeDefinedOper(char modechar, int type) +00052 { +00053 log(DEBUG,"Size of extmodes vector is %d",EMode.size()); +00054 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++) +00055 { +00056 log(DEBUG,"i->modechar==%c, modechar=%c, i->type=%d, type=%d",i->modechar,modechar,i->type,type); +00057 if ((i->modechar == modechar) && (i->type == type) && (i->needsoper == true)) +00058 { +00059 return true; +00060 } +00061 } +00062 return false; +00063 } +00064 +00065 // returns number of parameters for a custom mode when it is switched on +00066 int ModeDefinedOn(char modechar, int type) +00067 { +00068 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++) +00069 { +00070 if ((i->modechar == modechar) && (i->type == type)) +00071 { +00072 return i->params_when_on; +00073 } +00074 } +00075 return 0; +00076 } +00077 +00078 // returns number of parameters for a custom mode when it is switched on +00079 int ModeDefinedOff(char modechar, int type) +00080 { +00081 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++) +00082 { +00083 if ((i->modechar == modechar) && (i->type == type)) +00084 { +00085 return i->params_when_off; +00086 } +00087 } +00088 return 0; +00089 } +00090 +00091 // returns true if an extended mode character is in use +00092 bool DoAddExtendedMode(char modechar, int type, bool requires_oper, int params_on, int params_off) +00093 { +00094 if (ModeDefined(modechar,type)) { +00095 return false; +00096 } +00097 EMode.push_back(ExtMode(modechar,type,requires_oper,params_on,params_off)); +00098 return true; +00099 } +00100 00101 -00102 Version::Version(int major, int minor, int revision, int build) : Major(major), Minor(minor), Revision(revision), Build(build) { }; +00102 // version is a simple class for holding a modules version number 00103 -00104 // admin is a simple class for holding a server's administrative info +00104 Version::Version(int major, int minor, int revision, int build) : Major(major), Minor(minor), Revision(revision), Build(build) { }; 00105 -00106 Admin::Admin(std::string name, std::string email, std::string nick) : Name(name), Email(email), Nick(nick) { }; +00106 // admin is a simple class for holding a server's administrative info 00107 -00108 Module::Module() { } -00109 Module::~Module() { } -00110 void Module::OnUserConnect(userrec* user) { } -00111 void Module::OnUserQuit(userrec* user) { } -00112 void Module::OnUserJoin(userrec* user, chanrec* channel) { } -00113 void Module::OnUserPart(userrec* user, chanrec* channel) { } -00114 void Module::OnPacketTransmit(char *p) { } -00115 void Module::OnPacketReceive(char *p) { } -00116 void Module::OnRehash() { } -00117 void Module::OnServerRaw(std::string &raw, bool inbound) { } -00118 int Module::OnUserPreJoin(userrec* user, chanrec* chan, const char* cname) { return 0; } -00119 bool Module::OnExtendedMode(userrec* user, void* target, char modechar, int type, bool mode_on, string_list &params) { return false; } -00120 Version Module::GetVersion() { return Version(1,0,0,0); } -00121 void Module::OnOper(userrec* user) { }; -00122 void Module::OnInfo(userrec* user) { }; -00123 void Module::OnWhois(userrec* source, userrec* dest) { }; -00124 int Module::OnUserPreMessage(userrec* user,void* dest,int target_type, std::string text) { return 0; }; -00125 int Module::OnUserPreNotice(userrec* user,void* dest,int target_type, std::string text) { return 0; }; -00126 -00127 // server is a wrapper class that provides methods to all of the C-style -00128 // exports in the core -00129 // -00130 -00131 Server::Server() -00132 { -00133 } -00134 -00135 Server::~Server() -00136 { -00137 } -00138 -00139 void Server::SendOpers(std::string s) -00140 { -00141 WriteOpers("%s",s.c_str()); -00142 } -00143 -00144 bool Server::MatchText(std::string sliteral, std::string spattern) -00145 { -00146 char literal[MAXBUF],pattern[MAXBUF]; -00147 strncpy(literal,sliteral.c_str(),MAXBUF); -00148 strncpy(pattern,spattern.c_str(),MAXBUF); -00149 return match(literal,pattern); -00150 } -00151 -00152 void Server::SendToModeMask(std::string modes, int flags, std::string text) -00153 { -00154 WriteMode(modes.c_str(),flags,"%s",text.c_str()); -00155 } -00156 -00157 chanrec* Server::JoinUserToChannel(userrec* user, std::string cname, std::string key) -00158 { -00159 return add_channel(user,cname.c_str(),key.c_str(),true); -00160 } -00161 -00162 chanrec* Server::PartUserFromChannel(userrec* user, std::string cname, std::string reason) -00163 { -00164 return del_channel(user,cname.c_str(),reason.c_str(),false); -00165 } -00166 -00167 void Server::ChangeUserNick(userrec* user, std::string nickname) -00168 { -00169 force_nickchange(user,nickname.c_str()); -00170 } -00171 -00172 void Server::QuitUser(userrec* user, std::string reason) -00173 { -00174 send_network_quit(user->nick,reason.c_str()); -00175 kill_link(user,reason.c_str()); -00176 } -00177 -00178 void Server::CallCommandHandler(std::string commandname, char** parameters, int pcnt, userrec* user) -00179 { -00180 call_handler(commandname.c_str(),parameters,pcnt,user); -00181 } -00182 -00183 void Server::Log(int level, std::string s) -00184 { -00185 log(level,"%s",s.c_str()); -00186 } -00187 -00188 void Server::AddCommand(char* cmd, handlerfunc f, char flags, int minparams) -00189 { -00190 createcommand(cmd,f,flags,minparams); -00191 } -00192 -00193 void Server::SendMode(char **parameters, int pcnt, userrec *user) -00194 { -00195 server_mode(parameters,pcnt,user); -00196 } -00197 -00198 void Server::Send(int Socket, std::string s) -00199 { -00200 Write(Socket,"%s",s.c_str()); -00201 } -00202 -00203 void Server::SendServ(int Socket, std::string s) -00204 { -00205 WriteServ(Socket,"%s",s.c_str()); -00206 } -00207 -00208 void Server::SendFrom(int Socket, userrec* User, std::string s) -00209 { -00210 WriteFrom(Socket,User,"%s",s.c_str()); -00211 } -00212 -00213 void Server::SendTo(userrec* Source, userrec* Dest, std::string s) -00214 { -00215 if (!Source) -00216 { -00217 // if source is NULL, then the message originates from the local server -00218 Write(Dest->fd,":%s %s",this->GetServerName().c_str(),s.c_str()); -00219 } -00220 else -00221 { -00222 // otherwise it comes from the user specified -00223 WriteTo(Source,Dest,"%s",s.c_str()); -00224 } -00225 } -00226 -00227 void Server::SendChannel(userrec* User, chanrec* Channel, std::string s,bool IncludeSender) -00228 { -00229 if (IncludeSender) -00230 { -00231 WriteChannel(Channel,User,"%s",s.c_str()); -00232 } -00233 else -00234 { -00235 ChanExceptSender(Channel,User,"%s",s.c_str()); -00236 } -00237 } -00238 -00239 bool Server::CommonChannels(userrec* u1, userrec* u2) -00240 { -00241 return (common_channels(u1,u2) != 0); -00242 } -00243 -00244 void Server::SendCommon(userrec* User, std::string text,bool IncludeSender) -00245 { -00246 if (IncludeSender) -00247 { -00248 WriteCommon(User,"%s",text.c_str()); -00249 } -00250 else -00251 { -00252 WriteCommonExcept(User,"%s",text.c_str()); -00253 } -00254 } -00255 -00256 void Server::SendWallops(userrec* User, std::string text) -00257 { -00258 WriteWallOps(User,false,"%s",text.c_str()); -00259 } -00260 -00261 void Server::ChangeHost(userrec* user, std::string host) -00262 { -00263 ChangeDisplayedHost(user,host.c_str()); -00264 } -00265 -00266 void Server::ChangeGECOS(userrec* user, std::string gecos) -00267 { -00268 ChangeName(user,gecos.c_str()); -00269 } -00270 -00271 bool Server::IsNick(std::string nick) -00272 { -00273 return (isnick(nick.c_str()) != 0); -00274 } -00275 -00276 userrec* Server::FindNick(std::string nick) -00277 { -00278 return Find(nick); -00279 } -00280 -00281 chanrec* Server::FindChannel(std::string channel) -00282 { -00283 return FindChan(channel.c_str()); -00284 } -00285 -00286 std::string Server::ChanMode(userrec* User, chanrec* Chan) -00287 { -00288 return cmode(User,Chan); -00289 } -00290 -00291 std::string Server::GetServerName() -00292 { -00293 return getservername(); -00294 } -00295 -00296 std::string Server::GetNetworkName() -00297 { -00298 return getnetworkname(); -00299 } -00300 -00301 Admin Server::GetAdmin() -00302 { -00303 return Admin(getadminname(),getadminemail(),getadminnick()); -00304 } -00305 -00306 +00108 Admin::Admin(std::string name, std::string email, std::string nick) : Name(name), Email(email), Nick(nick) { }; +00109 +00110 Module::Module() { } +00111 Module::~Module() { } +00112 void Module::OnUserConnect(userrec* user) { } +00113 void Module::OnUserQuit(userrec* user) { } +00114 void Module::OnUserJoin(userrec* user, chanrec* channel) { } +00115 void Module::OnUserPart(userrec* user, chanrec* channel) { } +00116 void Module::OnPacketTransmit(char *p) { } +00117 void Module::OnPacketReceive(char *p) { } +00118 void Module::OnRehash() { } +00119 void Module::OnServerRaw(std::string &raw, bool inbound) { } +00120 int Module::OnUserPreJoin(userrec* user, chanrec* chan, const char* cname) { return 0; } +00121 bool Module::OnExtendedMode(userrec* user, void* target, char modechar, int type, bool mode_on, string_list &params) { return false; } +00122 Version Module::GetVersion() { return Version(1,0,0,0); } +00123 void Module::OnOper(userrec* user) { }; +00124 void Module::OnInfo(userrec* user) { }; +00125 void Module::OnWhois(userrec* source, userrec* dest) { }; +00126 int Module::OnUserPreMessage(userrec* user,void* dest,int target_type, std::string text) { return 0; }; +00127 int Module::OnUserPreNotice(userrec* user,void* dest,int target_type, std::string text) { return 0; }; +00128 +00129 // server is a wrapper class that provides methods to all of the C-style +00130 // exports in the core +00131 // +00132 +00133 Server::Server() +00134 { +00135 } +00136 +00137 Server::~Server() +00138 { +00139 } +00140 +00141 void Server::SendOpers(std::string s) +00142 { +00143 WriteOpers("%s",s.c_str()); +00144 } +00145 +00146 bool Server::MatchText(std::string sliteral, std::string spattern) +00147 { +00148 char literal[MAXBUF],pattern[MAXBUF]; +00149 strncpy(literal,sliteral.c_str(),MAXBUF); +00150 strncpy(pattern,spattern.c_str(),MAXBUF); +00151 return match(literal,pattern); +00152 } +00153 +00154 void Server::SendToModeMask(std::string modes, int flags, std::string text) +00155 { +00156 WriteMode(modes.c_str(),flags,"%s",text.c_str()); +00157 } +00158 +00159 chanrec* Server::JoinUserToChannel(userrec* user, std::string cname, std::string key) +00160 { +00161 return add_channel(user,cname.c_str(),key.c_str(),true); +00162 } +00163 +00164 chanrec* Server::PartUserFromChannel(userrec* user, std::string cname, std::string reason) +00165 { +00166 return del_channel(user,cname.c_str(),reason.c_str(),false); +00167 } +00168 +00169 void Server::ChangeUserNick(userrec* user, std::string nickname) +00170 { +00171 force_nickchange(user,nickname.c_str()); +00172 } +00173 +00174 void Server::QuitUser(userrec* user, std::string reason) +00175 { +00176 send_network_quit(user->nick,reason.c_str()); +00177 kill_link(user,reason.c_str()); +00178 } +00179 +00180 void Server::CallCommandHandler(std::string commandname, char** parameters, int pcnt, userrec* user) +00181 { +00182 call_handler(commandname.c_str(),parameters,pcnt,user); +00183 } +00184 +00185 void Server::Log(int level, std::string s) +00186 { +00187 log(level,"%s",s.c_str()); +00188 } +00189 +00190 void Server::AddCommand(char* cmd, handlerfunc f, char flags, int minparams) +00191 { +00192 createcommand(cmd,f,flags,minparams); +00193 } +00194 +00195 void Server::SendMode(char **parameters, int pcnt, userrec *user) +00196 { +00197 server_mode(parameters,pcnt,user); +00198 } +00199 +00200 void Server::Send(int Socket, std::string s) +00201 { +00202 Write(Socket,"%s",s.c_str()); +00203 } +00204 +00205 void Server::SendServ(int Socket, std::string s) +00206 { +00207 WriteServ(Socket,"%s",s.c_str()); +00208 } +00209 +00210 void Server::SendFrom(int Socket, userrec* User, std::string s) +00211 { +00212 WriteFrom(Socket,User,"%s",s.c_str()); +00213 } +00214 +00215 void Server::SendTo(userrec* Source, userrec* Dest, std::string s) +00216 { +00217 if (!Source) +00218 { +00219 // if source is NULL, then the message originates from the local server +00220 Write(Dest->fd,":%s %s",this->GetServerName().c_str(),s.c_str()); +00221 } +00222 else +00223 { +00224 // otherwise it comes from the user specified +00225 WriteTo(Source,Dest,"%s",s.c_str()); +00226 } +00227 } +00228 +00229 void Server::SendChannel(userrec* User, chanrec* Channel, std::string s,bool IncludeSender) +00230 { +00231 if (IncludeSender) +00232 { +00233 WriteChannel(Channel,User,"%s",s.c_str()); +00234 } +00235 else +00236 { +00237 ChanExceptSender(Channel,User,"%s",s.c_str()); +00238 } +00239 } +00240 +00241 bool Server::CommonChannels(userrec* u1, userrec* u2) +00242 { +00243 return (common_channels(u1,u2) != 0); +00244 } +00245 +00246 void Server::SendCommon(userrec* User, std::string text,bool IncludeSender) +00247 { +00248 if (IncludeSender) +00249 { +00250 WriteCommon(User,"%s",text.c_str()); +00251 } +00252 else +00253 { +00254 WriteCommonExcept(User,"%s",text.c_str()); +00255 } +00256 } +00257 +00258 void Server::SendWallops(userrec* User, std::string text) +00259 { +00260 WriteWallOps(User,false,"%s",text.c_str()); +00261 } +00262 +00263 void Server::ChangeHost(userrec* user, std::string host) +00264 { +00265 ChangeDisplayedHost(user,host.c_str()); +00266 } +00267 +00268 void Server::ChangeGECOS(userrec* user, std::string gecos) +00269 { +00270 ChangeName(user,gecos.c_str()); +00271 } +00272 +00273 bool Server::IsNick(std::string nick) +00274 { +00275 return (isnick(nick.c_str()) != 0); +00276 } +00277 +00278 userrec* Server::FindNick(std::string nick) +00279 { +00280 return Find(nick); +00281 } +00282 +00283 chanrec* Server::FindChannel(std::string channel) +00284 { +00285 return FindChan(channel.c_str()); +00286 } +00287 +00288 std::string Server::ChanMode(userrec* User, chanrec* Chan) +00289 { +00290 return cmode(User,Chan); +00291 } +00292 +00293 std::string Server::GetServerName() +00294 { +00295 return getservername(); +00296 } +00297 +00298 std::string Server::GetNetworkName() +00299 { +00300 return getnetworkname(); +00301 } +00302 +00303 Admin Server::GetAdmin() +00304 { +00305 return Admin(getadminname(),getadminemail(),getadminnick()); +00306 } 00307 -00308 bool Server::AddExtendedMode(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off) -00309 { -00310 if (type == MT_SERVER) -00311 { -00312 log(DEBUG,"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"); -00313 return false; -00314 } -00315 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT)) -00316 { -00317 log(DEBUG,"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"); -00318 return false; -00319 } -00320 if ((params_when_on>1) || (params_when_off>1)) -00321 { -00322 log(DEBUG,"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"); -00323 return false; -00324 } -00325 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off); -00326 } -00327 -00328 int Server::CountUsers(chanrec* c) -00329 { -00330 return usercount(c); -00331 } -00332 -00333 -00334 ConfigReader::ConfigReader() -00335 { -00336 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); -00337 this->error = LoadConf(CONFIG_FILE,this->cache); -00338 } -00339 -00340 -00341 ConfigReader::~ConfigReader() -00342 { -00343 if (this->cache) -00344 delete this->cache; -00345 } -00346 -00347 -00348 ConfigReader::ConfigReader(std::string filename) -00349 { -00350 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); -00351 this->error = LoadConf(filename.c_str(),this->cache); -00352 }; -00353 -00354 std::string ConfigReader::ReadValue(std::string tag, std::string name, int index) -00355 { -00356 char val[MAXBUF]; -00357 ReadConf(cache,tag.c_str(),name.c_str(),index,val); -00358 return val; -00359 } -00360 -00361 -00362 int ConfigReader::Enumerate(std::string tag) -00363 { -00364 return EnumConf(cache,tag.c_str()); -00365 } -00366 -00367 int ConfigReader::EnumerateValues(std::string tag, int index) -00368 { -00369 return EnumValues(cache, tag.c_str(), index); -00370 } -00371 -00372 bool ConfigReader::Verify() -00373 { -00374 return this->error; -00375 } -00376 -00377 -00378 FileReader::FileReader(std::string filename) -00379 { -00380 file_cache c; -00381 readfile(c,filename.c_str()); -00382 this->fc = c; -00383 } -00384 -00385 FileReader::FileReader() -00386 { -00387 } -00388 -00389 void FileReader::LoadFile(std::string filename) -00390 { -00391 file_cache c; -00392 readfile(c,filename.c_str()); -00393 this->fc = c; -00394 } -00395 -00396 -00397 FileReader::~FileReader() -00398 { -00399 } -00400 -00401 bool FileReader::Exists() -00402 { -00403 if (fc.size() == 0) -00404 { -00405 return(false); -00406 } -00407 else -00408 { -00409 return(true); -00410 } -00411 } -00412 -00413 std::string FileReader::GetLine(int x) -00414 { -00415 if ((x<0) || (x>fc.size())) -00416 return ""; -00417 return fc[x]; -00418 } -00419 -00420 int FileReader::FileSize() -00421 { -00422 return fc.size(); -00423 } -00424 -00425 -00426 std::vector<Module*> modules(255); -00427 std::vector<ircd_module*> factory(255); -00428 -00429 int MODCOUNT = -1; +00308 +00309 +00310 bool Server::AddExtendedMode(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off) +00311 { +00312 if (type == MT_SERVER) +00313 { +00314 log(DEBUG,"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"); +00315 return false; +00316 } +00317 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT)) +00318 { +00319 log(DEBUG,"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"); +00320 return false; +00321 } +00322 if ((params_when_on>1) || (params_when_off>1)) +00323 { +00324 log(DEBUG,"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"); +00325 return false; +00326 } +00327 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off); +00328 } +00329 +00330 int Server::CountUsers(chanrec* c) +00331 { +00332 return usercount(c); +00333 } +00334 +00335 +00336 ConfigReader::ConfigReader() +00337 { +00338 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); +00339 this->error = LoadConf(CONFIG_FILE,this->cache); +00340 } +00341 +00342 +00343 ConfigReader::~ConfigReader() +00344 { +00345 if (this->cache) +00346 delete this->cache; +00347 } +00348 +00349 +00350 ConfigReader::ConfigReader(std::string filename) +00351 { +00352 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); +00353 this->error = LoadConf(filename.c_str(),this->cache); +00354 }; +00355 +00356 std::string ConfigReader::ReadValue(std::string tag, std::string name, int index) +00357 { +00358 char val[MAXBUF]; +00359 ReadConf(cache,tag.c_str(),name.c_str(),index,val); +00360 return val; +00361 } +00362 +00363 +00364 int ConfigReader::Enumerate(std::string tag) +00365 { +00366 return EnumConf(cache,tag.c_str()); +00367 } +00368 +00369 int ConfigReader::EnumerateValues(std::string tag, int index) +00370 { +00371 return EnumValues(cache, tag.c_str(), index); +00372 } +00373 +00374 bool ConfigReader::Verify() +00375 { +00376 return this->error; +00377 } +00378 +00379 +00380 FileReader::FileReader(std::string filename) +00381 { +00382 file_cache c; +00383 readfile(c,filename.c_str()); +00384 this->fc = c; +00385 } +00386 +00387 FileReader::FileReader() +00388 { +00389 } +00390 +00391 void FileReader::LoadFile(std::string filename) +00392 { +00393 file_cache c; +00394 readfile(c,filename.c_str()); +00395 this->fc = c; +00396 } +00397 +00398 +00399 FileReader::~FileReader() +00400 { +00401 } +00402 +00403 bool FileReader::Exists() +00404 { +00405 if (fc.size() == 0) +00406 { +00407 return(false); +00408 } +00409 else +00410 { +00411 return(true); +00412 } +00413 } +00414 +00415 std::string FileReader::GetLine(int x) +00416 { +00417 if ((x<0) || (x>fc.size())) +00418 return ""; +00419 return fc[x]; +00420 } +00421 +00422 int FileReader::FileSize() +00423 { +00424 return fc.size(); +00425 } +00426 +00427 +00428 std::vector<Module*> modules(255); +00429 std::vector<ircd_module*> factory(255); 00430 -00431 -
Generated on Sat Apr 17 13:33:44 2004 for InspIRCd by +00431 int MODCOUNT = -1; +00432 +00433 +
Generated on Mon Apr 19 02:34:32 2004 for InspIRCd by doxygen1.3-rc3
-- cgit v1.2.3