.TH "modules.cpp" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
.ad l
.nh
.SH NAME
modules.cpp \- 
.SH SYNOPSIS
.br
.PP
\fC#include 'inspircd.h'\fP
.br
\fC#include 'inspircd_io.h'\fP
.br
\fC#include 'inspircd_util.h'\fP
.br
\fC#include 'inspircd_config.h'\fP
.br
\fC#include <unistd.h>\fP
.br
\fC#include <fcntl.h>\fP
.br
\fC#include <sys/errno.h>\fP
.br
\fC#include <sys/ioctl.h>\fP
.br
\fC#include <sys/utsname.h>\fP
.br
\fC#include <cstdio>\fP
.br
\fC#include <time.h>\fP
.br
\fC#include <string>\fP
.br
\fC#include <hash_map>\fP
.br
\fC#include <map>\fP
.br
\fC#include <sstream>\fP
.br
\fC#include <vector>\fP
.br
\fC#include <errno.h>\fP
.br
\fC#include <deque>\fP
.br
\fC#include <sched.h>\fP
.br
\fC#include 'connection.h'\fP
.br
\fC#include 'users.h'\fP
.br
\fC#include 'servers.h'\fP
.br
\fC#include 'ctables.h'\fP
.br
\fC#include 'globals.h'\fP
.br
\fC#include 'modules.h'\fP
.br
\fC#include 'dynamic.h'\fP
.br
\fC#include 'wildcard.h'\fP
.br
\fC#include 'message.h'\fP
.br
\fC#include 'mode.h'\fP
.br
\fC#include 'xline.h'\fP
.br
\fC#include 'commands.h'\fP
.br
\fC#include 'inspstring.h'\fP
.br

.SS "Namespaces"

.in +1c
.ti -1c
.RI "namespace \fBnspace\fP"
.br
.in -1c
.SS "Compounds"

.in +1c
.ti -1c
.RI "class \fBExtMode\fP"
.br
.ti -1c
.RI "struct \fBInAddr_HashComp\fP"
.br
.ti -1c
.RI "struct \fBStrHashComp\fP"
.br
.in -1c
.SS "Defines"

.in +1c
.ti -1c
.RI "#define \fBnspace\fP   std"
.br
.in -1c
.SS "Typedefs"

.in +1c
.ti -1c
.RI "typedef nspace::hash_map< std::string, \fBuserrec\fP *, nspace::hash< string >, \fBStrHashComp\fP > \fBuser_hash\fP"
.br
.ti -1c
.RI "typedef nspace::hash_map< std::string, \fBchanrec\fP *, nspace::hash< string >, \fBStrHashComp\fP > \fBchan_hash\fP"
.br
.ti -1c
.RI "typedef nspace::hash_map< in_addr, string *, nspace::hash< in_addr >, \fBInAddr_HashComp\fP > \fBaddress_cache\fP"
.br
.ti -1c
.RI "typedef std::deque< \fBcommand_t\fP > \fBcommand_table\fP"
.br
.ti -1c
.RI "typedef std::vector< \fBExtMode\fP > \fBExtModeList\fP"
.br
.ti -1c
.RI "typedef ExtModeList::iterator \fBExtModeListIter\fP"
.br
.in -1c
.SS "Functions"

.in +1c
.ti -1c
.RI "bool \fBModeDefined\fP (char modechar, int type)"
.br
.ti -1c
.RI "bool \fBModeIsListMode\fP (char modechar, int type)"
.br
.ti -1c
.RI "bool \fBModeDefinedOper\fP (char modechar, int type)"
.br
.ti -1c
.RI "int \fBModeDefinedOn\fP (char modechar, int type)"
.br
.ti -1c
.RI "int \fBModeDefinedOff\fP (char modechar, int type)"
.br
.ti -1c
.RI "bool \fBDoAddExtendedMode\fP (char modechar, int type, bool requires_oper, int params_on, int params_off)"
.br
.ti -1c
.RI "void \fBModeMakeList\fP (char modechar)"
.br
.ti -1c
.RI "std::vector< \fBModule\fP * > \fBmodules\fP (255)"
.br
.ti -1c
.RI "std::vector< \fBircd_module\fP * > \fBfactory\fP (255)"
.br
.in -1c
.SS "Variables"

.in +1c
.ti -1c
.RI "int \fBMODCOUNT\fP = -1"
.br
.ti -1c
.RI "std::vector< \fBModule\fP * > \fBmodules\fP"
.br
.ti -1c
.RI "std::vector< \fBircd_module\fP * > \fBfactory\fP"
.br
.ti -1c
.RI "time_t \fBTIME\fP"
.br
.ti -1c
.RI "int \fBLogLevel\fP"
.br
.ti -1c
.RI "char \fBServerName\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBNetwork\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBServerDesc\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBAdminName\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBAdminEmail\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBAdminNick\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBdiepass\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBrestartpass\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBmotd\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBrules\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBlist\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBPrefixQuit\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBDieValue\fP [MAXBUF]"
.br
.ti -1c
.RI "int \fBdebugging\fP"
.br
.ti -1c
.RI "int \fBWHOWAS_STALE\fP"
.br
.ti -1c
.RI "int \fBWHOWAS_MAX\fP"
.br
.ti -1c
.RI "int \fBDieDelay\fP"
.br
.ti -1c
.RI "time_t \fBstartup_time\fP"
.br
.ti -1c
.RI "int \fBNetBufferSize\fP"
.br
.ti -1c
.RI "int \fBMaxWhoResults\fP"
.br
.ti -1c
.RI "time_t \fBnb_start\fP"
.br
.ti -1c
.RI "std::vector< int > \fBfd_reap\fP"
.br
.ti -1c
.RI "std::vector< std::string > \fBmodule_names\fP"
.br
.ti -1c
.RI "int \fBboundPortCount\fP"
.br
.ti -1c
.RI "int \fBportCount\fP"
.br
.ti -1c
.RI "int \fBUDPportCount\fP"
.br
.ti -1c
.RI "int \fBports\fP [MAXSOCKS]"
.br
.ti -1c
.RI "int \fBdefaultRoute\fP"
.br
.ti -1c
.RI "std::vector< long > \fBauth_cookies\fP"
.br
.ti -1c
.RI "std::stringstream \fBconfig_f\fP"
.br
.ti -1c
.RI "\fBserverrec\fP * \fBme\fP [32]"
.br
.ti -1c
.RI "FILE * \fBlog_file\fP"
.br
.ti -1c
.RI "\fBuser_hash\fP \fBclientlist\fP"
.br
.ti -1c
.RI "\fBchan_hash\fP \fBchanlist\fP"
.br
.ti -1c
.RI "\fBuser_hash\fP \fBwhowas\fP"
.br
.ti -1c
.RI "\fBcommand_table\fP \fBcmdlist\fP"
.br
.ti -1c
.RI "\fBfile_cache\fP \fBMOTD\fP"
.br
.ti -1c
.RI "\fBfile_cache\fP \fBRULES\fP"
.br
.ti -1c
.RI "\fBaddress_cache\fP \fBIP\fP"
.br
.ti -1c
.RI "\fBExtModeList\fP \fBEMode\fP"
.br
.in -1c
.SH "Define Documentation"
.PP 
.SS "#define nspace   std"
.PP
Definition at line 59 of file modules.cpp.
.SH "Typedef Documentation"
.PP 
.SS "typedef nspace::hash_map<in_addr,string*, nspace::hash<in_addr>, \fBInAddr_HashComp\fP> \fBaddress_cache\fP"
.PP
Definition at line 177 of file modules.cpp.
.SS "typedef nspace::hash_map<std::string, \fBchanrec\fP*, nspace::hash<string>, \fBStrHashComp\fP> \fBchan_hash\fP"
.PP
Definition at line 176 of file modules.cpp.
.SS "typedef std::deque<\fBcommand_t\fP> \fBcommand_table\fP"
.PP
Definition at line 178 of file modules.cpp.
.SS "typedef std::vector<\fBExtMode\fP> \fBExtModeList\fP"
.PP
Definition at line 204 of file modules.cpp.
.SS "typedef ExtModeList::iterator \fBExtModeListIter\fP"
.PP
Definition at line 205 of file modules.cpp.
.PP
Referenced by ModeDefined(), ModeDefinedOff(), ModeDefinedOn(), ModeDefinedOper(), ModeIsListMode(), and ModeMakeList().
.SS "typedef nspace::hash_map<std::string, \fBuserrec\fP*, nspace::hash<string>, \fBStrHashComp\fP> \fBuser_hash\fP"
.PP
Definition at line 175 of file modules.cpp.
.SH "Function Documentation"
.PP 
.SS "bool DoAddExtendedMode (char modechar, int type, bool requires_oper, int params_on, int params_off)"
.PP
Definition at line 277 of file modules.cpp.
.PP
References EMode, and ModeDefined().
.PP
Referenced by Server::AddExtendedListMode(), and Server::AddExtendedMode().
.PP
.nf
278 {
279         if (ModeDefined(modechar,type)) {
280                 return false;
281         }
282         EMode.push_back(ExtMode(modechar,type,requires_oper,params_on,params_off));
283         return true;
284 }
.fi
.SS "std::vector<\fBircd_module\fP*> factory (255)"
.PP
.SS "bool ModeDefined (char modechar, int type)"
.PP
Definition at line 211 of file modules.cpp.
.PP
References DEBUG, EMode, and ExtModeListIter.
.PP
Referenced by DoAddExtendedMode().
.PP
.nf
212 {
213         log(DEBUG,'Size of extmodes vector is %d',EMode.size());
214         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
215         {
216                 if ((i->modechar == modechar) && (i->type == type))
217                 {
218                         return true;
219                 }
220         }
221         return false;
222 }
.fi
.SS "int ModeDefinedOff (char modechar, int type)"
.PP
Definition at line 264 of file modules.cpp.
.PP
References EMode, and ExtModeListIter.
.PP
.nf
265 {
266         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
267         {
268                 if ((i->modechar == modechar) && (i->type == type))
269                 {
270                         return i->params_when_off;
271                 }
272         }
273         return 0;
274 }
.fi
.SS "int ModeDefinedOn (char modechar, int type)"
.PP
Definition at line 251 of file modules.cpp.
.PP
References EMode, and ExtModeListIter.
.PP
.nf
252 {
253         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
254         {
255                 if ((i->modechar == modechar) && (i->type == type))
256                 {
257                         return i->params_when_on;
258                 }
259         }
260         return 0;
261 }
.fi
.SS "bool ModeDefinedOper (char modechar, int type)"
.PP
Definition at line 237 of file modules.cpp.
.PP
References DEBUG, EMode, and ExtModeListIter.
.PP
.nf
238 {
239         log(DEBUG,'Size of extmodes vector is %d',EMode.size());
240         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
241         {
242                 if ((i->modechar == modechar) && (i->type == type) && (i->needsoper == true))
243                 {
244                         return true;
245                 }
246         }
247         return false;
248 }
.fi
.SS "bool ModeIsListMode (char modechar, int type)"
.PP
Definition at line 224 of file modules.cpp.
.PP
References DEBUG, EMode, and ExtModeListIter.
.PP
.nf
225 {
226         log(DEBUG,'Size of extmodes vector is %d',EMode.size());
227         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
228         {
229                 if ((i->modechar == modechar) && (i->type == type) && (i->list == true))
230                 {
231                         return true;
232                 }
233         }
234         return false;
235 }
.fi
.SS "void ModeMakeList (char modechar)"
.PP
Definition at line 287 of file modules.cpp.
.PP
References EMode, ExtModeListIter, and MT_CHANNEL.
.PP
Referenced by Server::AddExtendedListMode().
.PP
.nf
288 {
289         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
290         {
291                 if ((i->modechar == modechar) && (i->type == MT_CHANNEL))
292                 {
293                         i->list = true;
294                         return;
295                 }
296         }
297         return;
298 }
.fi
.SS "std::vector<\fBModule\fP*> modules (255)"
.PP
.SH "Variable Documentation"
.PP 
.SS "char \fBAdminEmail\fP[MAXBUF]"
.PP
Definition at line 75 of file modules.cpp.
.SS "char \fBAdminName\fP[MAXBUF]"
.PP
Definition at line 74 of file modules.cpp.
.SS "char \fBAdminNick\fP[MAXBUF]"
.PP
Definition at line 76 of file modules.cpp.
.SS "std::vector<long> \fBauth_cookies\fP"
.PP
Definition at line 103 of file modules.cpp.
.SS "int \fBboundPortCount\fP"
.PP
Definition at line 97 of file modules.cpp.
.SS "\fBchan_hash\fP \fBchanlist\fP"
.PP
Definition at line 182 of file modules.cpp.
.SS "\fBuser_hash\fP \fBclientlist\fP"
.PP
Definition at line 181 of file modules.cpp.
.PP
Referenced by Server::GetUsers().
.SS "\fBcommand_table\fP \fBcmdlist\fP"
.PP
Definition at line 184 of file modules.cpp.
.SS "std::stringstream \fBconfig_f\fP"
.PP
Definition at line 104 of file modules.cpp.
.SS "int \fBdebugging\fP"
.PP
Definition at line 85 of file modules.cpp.
.SS "int \fBdefaultRoute\fP"
.PP
Definition at line 101 of file modules.cpp.
.SS "int \fBDieDelay\fP"
.PP
Definition at line 88 of file modules.cpp.
.SS "char \fBdiepass\fP[MAXBUF]"
.PP
Definition at line 77 of file modules.cpp.
.SS "char \fBDieValue\fP[MAXBUF]"
.PP
Definition at line 83 of file modules.cpp.
.SS "\fBExtModeList\fP \fBEMode\fP"
.PP
Definition at line 208 of file modules.cpp.
.PP
Referenced by DoAddExtendedMode(), ModeDefined(), ModeDefinedOff(), ModeDefinedOn(), ModeDefinedOper(), ModeIsListMode(), and ModeMakeList().
.SS "std::vector<\fBircd_module\fP*> factory"
.PP
Definition at line 66 of file modules.cpp.
.SS "std::vector<int> \fBfd_reap\fP"
.PP
Definition at line 94 of file modules.cpp.
.SS "\fBaddress_cache\fP \fBIP\fP"
.PP
Definition at line 187 of file modules.cpp.
.SS "char \fBlist\fP[MAXBUF]"
.PP
Definition at line 81 of file modules.cpp.
.SS "FILE* \fBlog_file\fP"
.PP
Definition at line 108 of file modules.cpp.
.SS "int \fBLogLevel\fP"
.PP
Definition at line 70 of file modules.cpp.
.SS "int \fBMaxWhoResults\fP"
.PP
Definition at line 91 of file modules.cpp.
.SS "\fBserverrec\fP* \fBme\fP[32]"
.PP
Definition at line 106 of file modules.cpp.
.SS "int \fBMODCOUNT\fP = -1"
.PP
Definition at line 1030 of file modules.cpp.
.SS "std::vector<std::string> \fBmodule_names\fP"
.PP
Definition at line 95 of file modules.cpp.
.SS "std::vector<\fBModule\fP*> modules"
.PP
Definition at line 65 of file modules.cpp.
.SS "\fBfile_cache\fP \fBMOTD\fP"
.PP
Definition at line 185 of file modules.cpp.
.SS "char \fBmotd\fP[MAXBUF]"
.PP
Definition at line 79 of file modules.cpp.
.SS "time_t \fBnb_start\fP"
.PP
Definition at line 92 of file modules.cpp.
.SS "int \fBNetBufferSize\fP"
.PP
Definition at line 90 of file modules.cpp.
.SS "char \fBNetwork\fP[MAXBUF]"
.PP
Definition at line 72 of file modules.cpp.
.SS "int \fBportCount\fP"
.PP
Definition at line 98 of file modules.cpp.
.SS "int \fBports\fP[MAXSOCKS]"
.PP
Definition at line 100 of file modules.cpp.
.SS "char \fBPrefixQuit\fP[MAXBUF]"
.PP
Definition at line 82 of file modules.cpp.
.SS "char \fBrestartpass\fP[MAXBUF]"
.PP
Definition at line 78 of file modules.cpp.
.SS "\fBfile_cache\fP \fBRULES\fP"
.PP
Definition at line 186 of file modules.cpp.
.SS "char \fBrules\fP[MAXBUF]"
.PP
Definition at line 80 of file modules.cpp.
.SS "char \fBServerDesc\fP[MAXBUF]"
.PP
Definition at line 73 of file modules.cpp.
.SS "char \fBServerName\fP[MAXBUF]"
.PP
Definition at line 71 of file modules.cpp.
.SS "time_t \fBstartup_time\fP"
.PP
Definition at line 89 of file modules.cpp.
.SS "time_t \fBTIME\fP"
.PP
Definition at line 68 of file modules.cpp.
.SS "int \fBUDPportCount\fP"
.PP
Definition at line 99 of file modules.cpp.
.SS "\fBuser_hash\fP \fBwhowas\fP"
.PP
Definition at line 183 of file modules.cpp.
.SS "int \fBWHOWAS_MAX\fP"
.PP
Definition at line 87 of file modules.cpp.
.SS "int \fBWHOWAS_STALE\fP"
.PP
Definition at line 86 of file modules.cpp.
.SH "Author"
.PP 
Generated automatically by Doxygen for InspIRCd from the source code.