]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
New documentation!
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Tue, 26 Apr 2005 17:15:49 +0000 (17:15 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Tue, 26 Apr 2005 17:15:49 +0000 (17:15 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1199 e03df62e-2008-0410-955e-edbf42e46eb7

183 files changed:
docs/man/man3/Admin.3
docs/man/man3/BanItem.3
docs/man/man3/ConfigReader.3
docs/man/man3/ConnectClass.3
docs/man/man3/DNS.3
docs/man/man3/ELine.3
docs/man/man3/Event.3
docs/man/man3/ExemptItem.3
docs/man/man3/ExtMode.3
docs/man/man3/Extensible.3
docs/man/man3/FileReader.3
docs/man/man3/GLine.3
docs/man/man3/HostItem.3
docs/man/man3/InAddr_HashComp.3
docs/man/man3/InviteItem.3
docs/man/man3/Invited.3
docs/man/man3/KLine.3
docs/man/man3/ModeParameter.3
docs/man/man3/Module.3
docs/man/man3/ModuleFactory.3
docs/man/man3/ModuleMessage.3
docs/man/man3/QLine.3
docs/man/man3/Request.3
docs/man/man3/Server.3
docs/man/man3/StrHashComp.3
docs/man/man3/Version.3
docs/man/man3/XLine.3
docs/man/man3/ZLine.3
docs/man/man3/base.h.3
docs/man/man3/channels.cpp.3
docs/man/man3/channels.h.3
docs/man/man3/chanrec.3
docs/man/man3/classbase.3
docs/man/man3/command_t.3
docs/man/man3/commands.h.3
docs/man/man3/connection.3
docs/man/man3/connection.h.3
docs/man/man3/ctables.h.3
docs/man/man3/dns.h.3
docs/man/man3/dns_ip4list.3
docs/man/man3/ircd_connector.3
docs/man/man3/message.h.3
docs/man/man3/mode.h.3
docs/man/man3/modules.cpp.3
docs/man/man3/modules.h.3
docs/man/man3/nspace.3
docs/man/man3/nspace_nspace_hash_ in_addr _.3
docs/man/man3/nspace_nspace_hash_ string _.3
docs/man/man3/serverrec.3
docs/man/man3/servers.cpp.3
docs/man/man3/servers.h.3
docs/man/man3/std.3
docs/man/man3/ucrec.3
docs/man/man3/userrec.3
docs/man/man3/users.cpp.3
docs/man/man3/users.h.3
docs/man/man3/xline.h.3
docs/module-doc/annotated.html
docs/module-doc/base_8h-source.html
docs/module-doc/base_8h.html
docs/module-doc/channels_8cpp-source.html
docs/module-doc/channels_8cpp.html
docs/module-doc/channels_8h-source.html
docs/module-doc/channels_8h.html
docs/module-doc/classAdmin-members.html
docs/module-doc/classAdmin.html
docs/module-doc/classBanItem-members.html
docs/module-doc/classBanItem.html
docs/module-doc/classConfigReader-members.html
docs/module-doc/classConfigReader.html
docs/module-doc/classConnectClass-members.html
docs/module-doc/classConnectClass.html
docs/module-doc/classDNS-members.html
docs/module-doc/classDNS.html
docs/module-doc/classELine-members.html
docs/module-doc/classELine.html
docs/module-doc/classEvent-members.html
docs/module-doc/classEvent.html
docs/module-doc/classExemptItem-members.html
docs/module-doc/classExemptItem.html
docs/module-doc/classExtMode-members.html
docs/module-doc/classExtMode.html
docs/module-doc/classExtensible-members.html
docs/module-doc/classExtensible.html
docs/module-doc/classFileReader-members.html
docs/module-doc/classFileReader.html
docs/module-doc/classGLine-members.html
docs/module-doc/classGLine.html
docs/module-doc/classHostItem-members.html
docs/module-doc/classHostItem.html
docs/module-doc/classInviteItem-members.html
docs/module-doc/classInviteItem.html
docs/module-doc/classInvited-members.html
docs/module-doc/classInvited.html
docs/module-doc/classKLine-members.html
docs/module-doc/classKLine.html
docs/module-doc/classModeParameter-members.html
docs/module-doc/classModeParameter.html
docs/module-doc/classModule-members.html
docs/module-doc/classModule.html
docs/module-doc/classModuleFactory-members.html
docs/module-doc/classModuleFactory.html
docs/module-doc/classModuleMessage-members.html
docs/module-doc/classModuleMessage.html
docs/module-doc/classQLine-members.html
docs/module-doc/classQLine.html
docs/module-doc/classRequest-members.html
docs/module-doc/classRequest.html
docs/module-doc/classServer-members.html
docs/module-doc/classServer.html
docs/module-doc/classVersion-members.html
docs/module-doc/classVersion.html
docs/module-doc/classXLine-members.html
docs/module-doc/classXLine.html
docs/module-doc/classZLine-members.html
docs/module-doc/classZLine.html
docs/module-doc/classchanrec-members.html
docs/module-doc/classchanrec.html
docs/module-doc/classclassbase-members.html
docs/module-doc/classclassbase.html
docs/module-doc/classcommand__t-members.html
docs/module-doc/classcommand__t.html
docs/module-doc/classconnection-members.html
docs/module-doc/classconnection.html
docs/module-doc/classes.html
docs/module-doc/classircd__connector-members.html
docs/module-doc/classircd__connector.html
docs/module-doc/classserverrec-members.html
docs/module-doc/classserverrec.html
docs/module-doc/classucrec-members.html
docs/module-doc/classucrec.html
docs/module-doc/classuserrec-members.html
docs/module-doc/classuserrec.html
docs/module-doc/commands_8h-source.html
docs/module-doc/commands_8h.html
docs/module-doc/connection_8h-source.html
docs/module-doc/connection_8h.html
docs/module-doc/ctables_8h-source.html
docs/module-doc/ctables_8h.html
docs/module-doc/dns_8h-source.html
docs/module-doc/dns_8h.html
docs/module-doc/files.html
docs/module-doc/functions.html
docs/module-doc/functions_func.html
docs/module-doc/functions_vars.html
docs/module-doc/globals.html
docs/module-doc/globals_defs.html
docs/module-doc/globals_func.html
docs/module-doc/globals_type.html
docs/module-doc/globals_vars.html
docs/module-doc/hierarchy.html
docs/module-doc/main.html
docs/module-doc/message_8h-source.html
docs/module-doc/message_8h.html
docs/module-doc/mode_8h-source.html
docs/module-doc/mode_8h.html
docs/module-doc/modules_8cpp-source.html
docs/module-doc/modules_8cpp.html
docs/module-doc/modules_8h-source.html
docs/module-doc/modules_8h.html
docs/module-doc/namespacenspace.html
docs/module-doc/namespaces.html
docs/module-doc/namespacestd.html
docs/module-doc/servers_8cpp-source.html
docs/module-doc/servers_8cpp.html
docs/module-doc/servers_8h-source.html
docs/module-doc/servers_8h.html
docs/module-doc/structInAddr__HashComp-members.html
docs/module-doc/structInAddr__HashComp.html
docs/module-doc/structStrHashComp-members.html
docs/module-doc/structStrHashComp.html
docs/module-doc/structdns__ip4list-members.html
docs/module-doc/structdns__ip4list.html
docs/module-doc/structnspace_1_1nspace_1_1hash_3_01in__addr_01_4-members.html
docs/module-doc/structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html
docs/module-doc/structnspace_1_1nspace_1_1hash_3_01string_01_4-members.html
docs/module-doc/structnspace_1_1nspace_1_1hash_3_01string_01_4.html
docs/module-doc/users_8cpp-source.html
docs/module-doc/users_8cpp.html
docs/module-doc/users_8h-source.html
docs/module-doc/users_8h.html
docs/module-doc/xline_8h-source.html
docs/module-doc/xline_8h.html

index bc5466d248606b86e6ec7e57b4cb84b59d639f7b..6e414dc78b949ce1ebe8549cae25584d34604993 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Admin" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "Admin" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index d860624f0086d7c9f739d4294822882a99a5c21a..5a7e51df0414b6f8d24cd3dc645380ea380c981a 100644 (file)
@@ -1,4 +1,4 @@
-.TH "BanItem" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "BanItem" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 1b6478571f7db1235580cf6a026f712786609afd..294eec961d543985c07194ff63d3d52fddf29715 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ConfigReader" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "ConfigReader" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -84,239 +84,239 @@ Allows reading of values from configuration files This class allows a module to
 
 It may either be instantiated with one parameter or none. Constructing the class using one parameter allows you to specify a path to your own configuration file, otherwise, inspircd.conf is read. 
 .PP
-Definition at line 1072 of file modules.h.
+Definition at line 1097 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "ConfigReader::ConfigReader ()"
 .PP
-Default constructor. This constructor initialises the ConfigReader class to read the inspircd.conf file as specified when running ./configure.Definition at line 833 of file modules.cpp.
+Default constructor. This constructor initialises the ConfigReader class to read the inspircd.conf file as specified when running ./configure.Definition at line 835 of file modules.cpp.
 .PP
 References cache, CONF_FILE_NOT_FOUND, error, errorlog, and readerror.
 .PP
 .nf
-834 {
-835         this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
-836         this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
-837         this->readerror = LoadConf(CONFIG_FILE,this->cache,this->errorlog);
-838         if (!this->readerror)
-839                 this->error = CONF_FILE_NOT_FOUND;
-840 }
+836 {
+837         this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
+838         this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
+839         this->readerror = LoadConf(CONFIG_FILE,this->cache,this->errorlog);
+840         if (!this->readerror)
+841                 this->error = CONF_FILE_NOT_FOUND;
+842 }
 .fi
 .SS "ConfigReader::ConfigReader (std::string filename)"
 .PP
-Overloaded constructor. This constructor initialises the ConfigReader class to read a user-specified config fileDefinition at line 852 of file modules.cpp.
+Overloaded constructor. This constructor initialises the ConfigReader class to read a user-specified config fileDefinition at line 854 of file modules.cpp.
 .PP
 References cache, CONF_FILE_NOT_FOUND, error, errorlog, and readerror.
 .PP
 .nf
-853 {
-854         this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
-855         this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
-856         this->readerror = LoadConf(filename.c_str(),this->cache,this->errorlog);
-857         if (!this->readerror)
-858                 this->error = CONF_FILE_NOT_FOUND;
-859 };
+855 {
+856         this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
+857         this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
+858         this->readerror = LoadConf(filename.c_str(),this->cache,this->errorlog);
+859         if (!this->readerror)
+860                 this->error = CONF_FILE_NOT_FOUND;
+861 };
 .fi
 .SS "ConfigReader::~\fBConfigReader\fP ()"
 .PP
-Default destructor. This method destroys the ConfigReader class.Definition at line 843 of file modules.cpp.
+Default destructor. This method destroys the ConfigReader class.Definition at line 845 of file modules.cpp.
 .PP
 References cache, and errorlog.
 .PP
 .nf
-844 {
-845         if (this->cache)
-846                 delete this->cache;
-847         if (this->errorlog)
-848                 delete this->errorlog;
-849 }
+846 {
+847         if (this->cache)
+848                 delete this->cache;
+849         if (this->errorlog)
+850                 delete this->errorlog;
+851 }
 .fi
 .SH "Member Function Documentation"
 .PP 
 .SS "void ConfigReader::DumpErrors (bool bail, \fBuserrec\fP * user)"
 .PP
-Dumps the list of errors in a config file to an output location. If bail is true, then the program will abort. If bail is false and user points to a valid user record, the error report will be spooled to the given user by means of NOTICE. if bool is false AND user is false, the error report will be spooled to all opers by means of a NOTICE to all opers.Definition at line 930 of file modules.cpp.
+Dumps the list of errors in a config file to an output location. If bail is true, then the program will abort. If bail is false and user points to a valid user record, the error report will be spooled to the given user by means of NOTICE. if bool is false AND user is false, the error report will be spooled to all opers by means of a NOTICE to all opers.Definition at line 932 of file modules.cpp.
 .PP
 References errorlog, connection::fd, and userrec::nick.
 .PP
 .nf
-931 {
-932         if (bail)
-933         {
-934                 printf('There were errors in your configuration:\n%s',errorlog->str().c_str());
-935                 exit(0);
-936         }
-937         else
-938         {
-939                 char dataline[1024];
-940                 if (user)
-941                 {
-942                         WriteServ(user->fd,'NOTICE %s :There were errors in the configuration file:',user->nick);
-943                         while (!errorlog->eof())
-944                         {
-945                                 errorlog->getline(dataline,1024);
-946                                 WriteServ(user->fd,'NOTICE %s :%s',user->nick,dataline);
-947                         }
-948                 }
-949                 else
-950                 {
-951                         WriteOpers('There were errors in the configuration file:',user->nick);
-952                         while (!errorlog->eof())
-953                         {
-954                                 errorlog->getline(dataline,1024);
-955                                 WriteOpers(dataline);
-956                         }
-957                 }
-958                 return;
-959         }
-960 }
+933 {
+934         if (bail)
+935         {
+936                 printf('There were errors in your configuration:\n%s',errorlog->str().c_str());
+937                 exit(0);
+938         }
+939         else
+940         {
+941                 char dataline[1024];
+942                 if (user)
+943                 {
+944                         WriteServ(user->fd,'NOTICE %s :There were errors in the configuration file:',user->nick);
+945                         while (!errorlog->eof())
+946                         {
+947                                 errorlog->getline(dataline,1024);
+948                                 WriteServ(user->fd,'NOTICE %s :%s',user->nick,dataline);
+949                         }
+950                 }
+951                 else
+952                 {
+953                         WriteOpers('There were errors in the configuration file:',user->nick);
+954                         while (!errorlog->eof())
+955                         {
+956                                 errorlog->getline(dataline,1024);
+957                                 WriteOpers(dataline);
+958                         }
+959                 }
+960                 return;
+961         }
+962 }
 .fi
 .SS "int ConfigReader::Enumerate (std::string tag)"
 .PP
-Counts the number of times a given tag appears in the config file. This method counts the number of times a tag appears in a config file, for use where there are several tags of the same kind, e.g. with opers and connect types. It can be used with the index value of \fBConfigReader::ReadValue\fP to loop through all copies of a multiple instance tag.Definition at line 963 of file modules.cpp.
+Counts the number of times a given tag appears in the config file. This method counts the number of times a tag appears in a config file, for use where there are several tags of the same kind, e.g. with opers and connect types. It can be used with the index value of \fBConfigReader::ReadValue\fP to loop through all copies of a multiple instance tag.Definition at line 965 of file modules.cpp.
 .PP
 References cache.
 .PP
 .nf
-964 {
-965         return EnumConf(cache,tag.c_str());
-966 }
+966 {
+967         return EnumConf(cache,tag.c_str());
+968 }
 .fi
 .SS "int ConfigReader::EnumerateValues (std::string tag, int index)"
 .PP
-Returns the number of items within a tag. For example if the tag was <test tag='blah' data='foo'> then this function would return 2. Spaces and newlines both qualify as valid seperators between values.Definition at line 968 of file modules.cpp.
+Returns the number of items within a tag. For example if the tag was <test tag='blah' data='foo'> then this function would return 2. Spaces and newlines both qualify as valid seperators between values.Definition at line 970 of file modules.cpp.
 .PP
 References cache.
 .PP
 .nf
-969 {
-970         return EnumValues(cache, tag.c_str(), index);
-971 }
+971 {
+972         return EnumValues(cache, tag.c_str(), index);
+973 }
 .fi
 .SS "long ConfigReader::GetError ()"
 .PP
-Returns the last error to occur. Valid errors can be found by looking in \fBmodules.h\fP. Any nonzero value indicates an error condition. A call to \fBGetError()\fP resets the error flag back to 0.Definition at line 923 of file modules.cpp.
+Returns the last error to occur. Valid errors can be found by looking in \fBmodules.h\fP. Any nonzero value indicates an error condition. A call to \fBGetError()\fP resets the error flag back to 0.Definition at line 925 of file modules.cpp.
 .PP
 References error.
 .PP
 .nf
-924 {
-925         long olderr = this->error;
-926         this->error = 0;
-927         return olderr;
-928 }
+926 {
+927         long olderr = this->error;
+928         this->error = 0;
+929         return olderr;
+930 }
 .fi
 .SS "bool ConfigReader::ReadFlag (std::string tag, std::string name, int index)"
 .PP
-Retrieves a boolean value from the config file. This method retrieves a boolean value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. The values '1', 'yes' and 'true' in the config file count as true to ReadFlag, and any other value counts as false.Definition at line 877 of file modules.cpp.
+Retrieves a boolean value from the config file. This method retrieves a boolean value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. The values '1', 'yes' and 'true' in the config file count as true to ReadFlag, and any other value counts as false.Definition at line 879 of file modules.cpp.
 .PP
 References cache, CONF_VALUE_NOT_FOUND, and error.
 .PP
 .nf
-878 {
-879         char val[MAXBUF];
-880         char t[MAXBUF];
-881         char n[MAXBUF];
-882         strlcpy(t,tag.c_str(),MAXBUF);
-883         strlcpy(n,name.c_str(),MAXBUF);
-884         int res = ReadConf(cache,t,n,index,val);
-885         if (!res)
-886         {
-887                 this->error = CONF_VALUE_NOT_FOUND;
-888                 return false;
-889         }
-890         std::string s = val;
-891         return ((s == 'yes') || (s == 'YES') || (s == 'true') || (s == 'TRUE') || (s == '1'));
-892 }
+880 {
+881         char val[MAXBUF];
+882         char t[MAXBUF];
+883         char n[MAXBUF];
+884         strlcpy(t,tag.c_str(),MAXBUF);
+885         strlcpy(n,name.c_str(),MAXBUF);
+886         int res = ReadConf(cache,t,n,index,val);
+887         if (!res)
+888         {
+889                 this->error = CONF_VALUE_NOT_FOUND;
+890                 return false;
+891         }
+892         std::string s = val;
+893         return ((s == 'yes') || (s == 'YES') || (s == 'true') || (s == 'TRUE') || (s == '1'));
+894 }
 .fi
 .SS "long ConfigReader::ReadInteger (std::string tag, std::string name, int index, bool needs_unsigned)"
 .PP
-Retrieves an integer value from the config file. This method retrieves an integer value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. Any invalid integer values in the tag will cause the objects error value to be set, and any call to \fBGetError()\fP will return CONF_INVALID_NUMBER to be returned. needs_unsigned is set if the number must be unsigned. If a signed number is placed into a tag which is specified unsigned, 0 will be returned and \fBGetError()\fP will return CONF_NOT_UNSIGNEDDefinition at line 894 of file modules.cpp.
+Retrieves an integer value from the config file. This method retrieves an integer value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. Any invalid integer values in the tag will cause the objects error value to be set, and any call to \fBGetError()\fP will return CONF_INVALID_NUMBER to be returned. needs_unsigned is set if the number must be unsigned. If a signed number is placed into a tag which is specified unsigned, 0 will be returned and \fBGetError()\fP will return CONF_NOT_UNSIGNEDDefinition at line 896 of file modules.cpp.
 .PP
 References cache, CONF_NOT_A_NUMBER, CONF_NOT_UNSIGNED, CONF_VALUE_NOT_FOUND, and error.
 .PP
 .nf
-895 {
-896         char val[MAXBUF];
-897         char t[MAXBUF];
-898         char n[MAXBUF];
-899         strlcpy(t,tag.c_str(),MAXBUF);
-900         strlcpy(n,name.c_str(),MAXBUF);
-901         int res = ReadConf(cache,t,n,index,val);
-902         if (!res)
-903         {
-904                 this->error = CONF_VALUE_NOT_FOUND;
-905                 return 0;
-906         }
-907         for (int i = 0; i < strlen(val); i++)
-908         {
-909                 if (!isdigit(val[i]))
-910                 {
-911                         this->error = CONF_NOT_A_NUMBER;
-912                         return 0;
-913                 }
-914         }
-915         if ((needs_unsigned) && (atoi(val)<0))
-916         {
-917                 this->error = CONF_NOT_UNSIGNED;
-918                 return 0;
-919         }
-920         return atoi(val);
-921 }
+897 {
+898         char val[MAXBUF];
+899         char t[MAXBUF];
+900         char n[MAXBUF];
+901         strlcpy(t,tag.c_str(),MAXBUF);
+902         strlcpy(n,name.c_str(),MAXBUF);
+903         int res = ReadConf(cache,t,n,index,val);
+904         if (!res)
+905         {
+906                 this->error = CONF_VALUE_NOT_FOUND;
+907                 return 0;
+908         }
+909         for (int i = 0; i < strlen(val); i++)
+910         {
+911                 if (!isdigit(val[i]))
+912                 {
+913                         this->error = CONF_NOT_A_NUMBER;
+914                         return 0;
+915                 }
+916         }
+917         if ((needs_unsigned) && (atoi(val)<0))
+918         {
+919                 this->error = CONF_NOT_UNSIGNED;
+920                 return 0;
+921         }
+922         return atoi(val);
+923 }
 .fi
 .SS "std::string ConfigReader::ReadValue (std::string tag, std::string name, int index)"
 .PP
-Retrieves a value from the config file. This method retrieves a value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve.Definition at line 861 of file modules.cpp.
+Retrieves a value from the config file. This method retrieves a value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve.Definition at line 863 of file modules.cpp.
 .PP
 References cache, CONF_VALUE_NOT_FOUND, and error.
 .PP
 .nf
-862 {
-863         char val[MAXBUF];
-864         char t[MAXBUF];
-865         char n[MAXBUF];
-866         strlcpy(t,tag.c_str(),MAXBUF);
-867         strlcpy(n,name.c_str(),MAXBUF);
-868         int res = ReadConf(cache,t,n,index,val);
-869         if (!res)
-870         {
-871                 this->error = CONF_VALUE_NOT_FOUND;
-872                 return '';
-873         }
-874         return std::string(val);
-875 }
+864 {
+865         char val[MAXBUF];
+866         char t[MAXBUF];
+867         char n[MAXBUF];
+868         strlcpy(t,tag.c_str(),MAXBUF);
+869         strlcpy(n,name.c_str(),MAXBUF);
+870         int res = ReadConf(cache,t,n,index,val);
+871         if (!res)
+872         {
+873                 this->error = CONF_VALUE_NOT_FOUND;
+874                 return '';
+875         }
+876         return std::string(val);
+877 }
 .fi
 .SS "bool ConfigReader::Verify ()"
 .PP
-Returns true if a config file is valid. This method is partially implemented and will only return false if the config file does not exist or could not be opened.Definition at line 973 of file modules.cpp.
+Returns true if a config file is valid. This method is partially implemented and will only return false if the config file does not exist or could not be opened.Definition at line 975 of file modules.cpp.
 .PP
 References readerror.
 .PP
 .nf
-974 {
-975         return this->readerror;
-976 }
+976 {
+977         return this->readerror;
+978 }
 .fi
 .SH "Member Data Documentation"
 .PP 
 .SS "std::stringstream* \fBConfigReader::cache\fP\fC [protected]\fP"
 .PP
-The contents of the configuration file This protected member should never be accessed by a module (and cannot be accessed unless the core is changed). It will contain a pointer to the configuration file data with unneeded data (such as comments) stripped from it.Definition at line 1080 of file modules.h.
+The contents of the configuration file This protected member should never be accessed by a module (and cannot be accessed unless the core is changed). It will contain a pointer to the configuration file data with unneeded data (such as comments) stripped from it.Definition at line 1105 of file modules.h.
 .PP
 Referenced by ConfigReader(), Enumerate(), EnumerateValues(), ReadFlag(), ReadInteger(), ReadValue(), and ~ConfigReader().
 .SS "long \fBConfigReader::error\fP\fC [protected]\fP"
 .PP
-Definition at line 1085 of file modules.h.
+Definition at line 1110 of file modules.h.
 .PP
 Referenced by ConfigReader(), GetError(), ReadFlag(), ReadInteger(), and ReadValue().
 .SS "std::stringstream* \fBConfigReader::errorlog\fP\fC [protected]\fP"
 .PP
-Definition at line 1081 of file modules.h.
+Definition at line 1106 of file modules.h.
 .PP
 Referenced by ConfigReader(), DumpErrors(), and ~ConfigReader().
 .SS "bool \fBConfigReader::readerror\fP\fC [protected]\fP"
 .PP
-Used to store errors. Definition at line 1084 of file modules.h.
+Used to store errors. Definition at line 1109 of file modules.h.
 .PP
 Referenced by ConfigReader(), and Verify().
 
index ed5ed3e811636eac282c839694839e7241832a08..563c7368ce06088293e59d6fa1f74e296d66a013 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ConnectClass" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "ConnectClass" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 8c44aa268a87e2cdcb215053e8fb89e5527ea523..8ca9f17b4042b46384e7ef69532b97e8bb83f579 100644 (file)
@@ -1,4 +1,4 @@
-.TH "DNS" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "DNS" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -99,16 +99,13 @@ DNS \- The DNS class allows fast nonblocking resolution of hostnames and ip addr
 
 .in +1c
 .ti -1c
-.RI "char * \fBresult\fP"
-.br
-.ti -1c
 .RI "in_addr * \fBbinip\fP"
 .br
 .ti -1c
-.RI "int \fBt\fP"
+.RI "char * \fBresult\fP"
 .br
 .ti -1c
-.RI "int \fBi\fP"
+.RI "int \fBt\fP"
 .br
 .ti -1c
 .RI "unsigned int \fBfd\fP"
@@ -183,16 +180,13 @@ This method will start the reverse lookup of an ip given in dotted decimal forma
 .PP 
 .SS "in_addr* \fBDNS::binip\fP\fC [private]\fP"
 .PP
-Definition at line 39 of file dns.h.
+Definition at line 38 of file dns.h.
 .SS "unsigned int \fBDNS::fd\fP\fC [private]\fP"
 .PP
 Definition at line 42 of file dns.h.
-.SS "int \fBDNS::i\fP\fC [private]\fP"
-.PP
-Definition at line 40 of file dns.h.
 .SS "char* \fBDNS::result\fP\fC [private]\fP"
 .PP
-Definition at line 38 of file dns.h.
+Definition at line 39 of file dns.h.
 .SS "int \fBDNS::t\fP\fC [private]\fP"
 .PP
 Definition at line 40 of file dns.h.
index e7d6c53749b9c912a1c82d3579ff2f4789a79143..dac7540a1507c4062ba2ae16093123ac83014f79 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ELine" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "ELine" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 7cb7e81096c2b33a5e83989fa5bdf47b79363941..40a9d4ea8834a86d6fe52baa606b102a03454d1f 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Event" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "Event" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -58,7 +58,7 @@ The Event class is a unicast message directed at all modules.
 
 When the class is properly instantiated it may be sent to all modules using the \fBSend()\fP method, which will trigger the OnEvent method in all modules passing the object as its parameter. 
 .PP
-Definition at line 191 of file modules.h.
+Definition at line 194 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "Event::Event (char * anydata, \fBModule\fP * src, std::string eventid)"
@@ -121,17 +121,17 @@ References FOREACH_MOD.
 .PP 
 .SS "char* \fBEvent::data\fP\fC [protected]\fP"
 .PP
-This member holds a pointer to arbitary data set by the emitter of the message. Definition at line 196 of file modules.h.
+This member holds a pointer to arbitary data set by the emitter of the message. Definition at line 199 of file modules.h.
 .PP
 Referenced by GetData().
 .SS "std::string \fBEvent::id\fP\fC [protected]\fP"
 .PP
-The event identifier. This is arbitary text which should be used to distinguish one type of event from another. Definition at line 205 of file modules.h.
+The event identifier. This is arbitary text which should be used to distinguish one type of event from another. Definition at line 208 of file modules.h.
 .PP
 Referenced by GetEventID().
 .SS "\fBModule\fP* \fBEvent::source\fP\fC [protected]\fP"
 .PP
-This is a pointer to the sender of the message, which can be used to directly trigger events, or to create a reply. Definition at line 200 of file modules.h.
+This is a pointer to the sender of the message, which can be used to directly trigger events, or to create a reply. Definition at line 203 of file modules.h.
 .PP
 Referenced by GetSource().
 
index a95a85bdfe095d3d91ce39427e9f0514ec17c1e8..e8ca07eeaeeb62f230ec9fcf4e36a9457ebf9986 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ExemptItem" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "ExemptItem" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 8df2a5c5f97a9aa20ea5e3e6139d60f34705b943..3c225024c6f279a67750b88158ffcd5f70550a7d 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ExtMode" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "ExtMode" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 94ffff5f8374ac707bba97d1b7ed19c7e1185e66..cd2180659fc71356befcc035ca09e36d09df6187 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Extensible" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "Extensible" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 6bea2ee1ef4105c0d68b644e5316981efd40d7bd..a69617742b48a4b1066bf9b5645bc473c71f8ac5 100644 (file)
@@ -1,4 +1,4 @@
-.TH "FileReader" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "FileReader" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -57,100 +57,100 @@ Caches a text file into memory and can be used to retrieve lines from it.
 
 This class contains methods for read-only manipulation of a text file in memory. Either use the constructor type with one parameter to load a file into memory at construction, or use the LoadFile method to load a file. 
 .PP
-Definition at line 1161 of file modules.h.
+Definition at line 1186 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "FileReader::FileReader ()"
 .PP
-Default constructor. This method does not load any file into memory, you must use the LoadFile method after constructing the class this way.Definition at line 986 of file modules.cpp.
+Default constructor. This method does not load any file into memory, you must use the LoadFile method after constructing the class this way.Definition at line 988 of file modules.cpp.
 .PP
 .nf
-987 {
-988 }
+989 {
+990 }
 .fi
 .SS "FileReader::FileReader (std::string filename)"
 .PP
-Secondary constructor. This method initialises the class with a file loaded into it ready for GetLine and and other methods to be called. If the file could not be loaded, \fBFileReader::FileSize\fP returns 0.Definition at line 979 of file modules.cpp.
+Secondary constructor. This method initialises the class with a file loaded into it ready for GetLine and and other methods to be called. If the file could not be loaded, \fBFileReader::FileSize\fP returns 0.Definition at line 981 of file modules.cpp.
 .PP
 References fc, and file_cache.
 .PP
 .nf
-980 {
-981         file_cache c;
-982         readfile(c,filename.c_str());
-983         this->fc = c;
-984 }
+982 {
+983         file_cache c;
+984         readfile(c,filename.c_str());
+985         this->fc = c;
+986 }
 .fi
 .SS "FileReader::~\fBFileReader\fP ()"
 .PP
-Default destructor. This deletes the memory allocated to the file.Definition at line 998 of file modules.cpp.
+Default destructor. This deletes the memory allocated to the file.Definition at line 1000 of file modules.cpp.
 .PP
 .nf
-999 {
-1000 }
+1001 {
+1002 }
 .fi
 .SH "Member Function Documentation"
 .PP 
 .SS "bool FileReader::Exists ()"
 .PP
-Returns true if the file exists This function will return false if the file could not be opened. Definition at line 1002 of file modules.cpp.
+Returns true if the file exists This function will return false if the file could not be opened. Definition at line 1004 of file modules.cpp.
 .PP
 References fc.
 .PP
 .nf
-1003 {
-1004         if (fc.size() == 0)
-1005         {
-1006                 return(false);
-1007         }
-1008         else
-1009         {
-1010                 return(true);
-1011         }
-1012 }
+1005 {
+1006         if (fc.size() == 0)
+1007         {
+1008                 return(false);
+1009         }
+1010         else
+1011         {
+1012                 return(true);
+1013         }
+1014 }
 .fi
 .SS "int FileReader::FileSize ()"
 .PP
-Returns the size of the file in lines. This method returns the number of lines in the read file. If it is 0, no lines have been read into memory, either because the file is empty or it does not exist, or cannot be opened due to permission problems.Definition at line 1021 of file modules.cpp.
+Returns the size of the file in lines. This method returns the number of lines in the read file. If it is 0, no lines have been read into memory, either because the file is empty or it does not exist, or cannot be opened due to permission problems.Definition at line 1023 of file modules.cpp.
 .PP
 References fc.
 .PP
 .nf
-1022 {
-1023         return fc.size();
-1024 }
+1024 {
+1025         return fc.size();
+1026 }
 .fi
 .SS "std::string FileReader::GetLine (int x)"
 .PP
-Retrieve one line from the file. This method retrieves one line from the text file. If an empty non-NULL string is returned, the index was out of bounds, or the line had no data on it.Definition at line 1014 of file modules.cpp.
+Retrieve one line from the file. This method retrieves one line from the text file. If an empty non-NULL string is returned, the index was out of bounds, or the line had no data on it.Definition at line 1016 of file modules.cpp.
 .PP
 References fc.
 .PP
 .nf
-1015 {
-1016         if ((x<0) || (x>fc.size()))
-1017                 return '';
-1018         return fc[x];
-1019 }
+1017 {
+1018         if ((x<0) || (x>fc.size()))
+1019                 return '';
+1020         return fc[x];
+1021 }
 .fi
 .SS "void FileReader::LoadFile (std::string filename)"
 .PP
-Used to load a file. This method loads a file into the class ready for GetLine and and other methods to be called. If the file could not be loaded, \fBFileReader::FileSize\fP returns 0.Definition at line 990 of file modules.cpp.
+Used to load a file. This method loads a file into the class ready for GetLine and and other methods to be called. If the file could not be loaded, \fBFileReader::FileSize\fP returns 0.Definition at line 992 of file modules.cpp.
 .PP
 References fc, and file_cache.
 .PP
 .nf
-991 {
-992         file_cache c;
-993         readfile(c,filename.c_str());
-994         this->fc = c;
-995 }
+993 {
+994         file_cache c;
+995         readfile(c,filename.c_str());
+996         this->fc = c;
+997 }
 .fi
 .SH "Member Data Documentation"
 .PP 
 .SS "\fBfile_cache\fP \fBFileReader::fc\fP\fC [private]\fP"
 .PP
-Definition at line 1163 of file modules.h.
+Definition at line 1188 of file modules.h.
 .PP
 Referenced by Exists(), FileReader(), FileSize(), GetLine(), and LoadFile().
 
index 0c263effde6f6ecaf5362593e01f4d5f9a3204e2..118afd97b1a5fdd6fc9416f3e0d74c68b1e105ef 100644 (file)
@@ -1,4 +1,4 @@
-.TH "GLine" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "GLine" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 1a74b43f1044b82068d625951bc0cf307e49670a..cbb5e7b2d62b59e81540dad3eff7d38ee27147d5 100644 (file)
@@ -1,4 +1,4 @@
-.TH "HostItem" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "HostItem" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index a0b6759c066363b759f7ed5d7b3dc9c7487fae3c..ab6cd4563124fa968636534145ef799aa1aa88ba 100644 (file)
@@ -1,4 +1,4 @@
-.TH "InAddr_HashComp" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "InAddr_HashComp" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 187472a3c0de1ef7d74d9f5a443dd955249605ac..9ce27dd83ebdde28aa42edffb1df477ce7435bef 100644 (file)
@@ -1,4 +1,4 @@
-.TH "InviteItem" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "InviteItem" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index be48e1d728137994a4c32e4fb915f307ecb1d6b4..b0268a92e28ee707302180f3211bb286f284d9dd 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Invited" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "Invited" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 42eb9f1ddba90182050faa0c5ec065d511a8175e..211bfefb1e50ce6a4df109ed2b06e360d48e33fe 100644 (file)
@@ -1,4 +1,4 @@
-.TH "KLine" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "KLine" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 6e62ab564b3ff80834d0454a90cdb62053fdb448..41ce3695a11a82fff13b830efff0912ab352644c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ModeParameter" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "ModeParameter" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 9acfc10cec8e0cf658b21be6b7068848527e2184..486b10e2fee1f38fe2e4bb24c87334d3625848ea 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Module" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "Module" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -203,6 +203,18 @@ Inherits \fBclassbase\fP.
 .RI "virtual char * \fBOnRequest\fP (\fBRequest\fP *request)"
 .br
 .RI "\fICalled whenever a \fBRequest\fP class is sent to your module by another module. \fP"
+.ti -1c
+.RI "virtual int \fBOnOperCompare\fP (std::string password, std::string input)"
+.br
+.RI "\fICalled whenever an oper password is to be compared to what a user has input. \fP"
+.ti -1c
+.RI "virtual void \fBOnGlobalOper\fP (\fBuserrec\fP *user)"
+.br
+.RI "\fICalled whenever a user is given usermode +o, anywhere on the network. \fP"
+.ti -1c
+.RI "virtual void \fBOnGlobalConnect\fP (\fBuserrec\fP *user)"
+.br
+.RI "\fICalled whenever a user connects, anywhere on the network. \fP"
 .in -1c
 .SH "Detailed Description"
 .PP 
@@ -210,7 +222,7 @@ Base class for all InspIRCd modules This class is the base class for InspIRCd mo
 
 All modules must inherit from this class, its methods will be called when irc server events occur. class inherited from module must be instantiated by the \fBModuleFactory\fP class (see relevent section) for the plugin to be initialised. 
 .PP
-Definition at line 233 of file modules.h.
+Definition at line 236 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "Module::Module ()"
@@ -357,6 +369,20 @@ Called whenever an extended mode is to be processed. The type parameter is MT_SE
 .nf
 373 { return false; }
 .fi
+.SS "void Module::OnGlobalConnect (\fBuserrec\fP * user)\fC [virtual]\fP"
+.PP
+Called whenever a user connects, anywhere on the network. This event is informational only. You should not change any user information in this event. To do so, use the OnUserConnect method to change the state of local users.Definition at line 410 of file modules.cpp.
+.PP
+.nf
+410 { };
+.fi
+.SS "void Module::OnGlobalOper (\fBuserrec\fP * user)\fC [virtual]\fP"
+.PP
+Called whenever a user is given usermode +o, anywhere on the network. You cannot override this and prevent it from happening as it is already happened and such a task must be performed by another server. You can however bounce modes by sending servermodes out to reverse mode changes.Definition at line 409 of file modules.cpp.
+.PP
+.nf
+409 { };
+.fi
 .SS "void Module::OnInfo (\fBuserrec\fP * user)\fC [virtual]\fP"
 .PP
 Called whenever a user types /INFO. The userrec will contain the information of the user who typed the command. Modules may use this method to output their own credits in /INFO (which is the ircd's version of an about box). It is purposefully not possible to modify any info that has already been output, or halt the list. You must write a 371 numeric to the user, containing your info in the following format:
@@ -401,6 +427,13 @@ Called whenever a user opers locally. The userrec will contain the oper mode 'o'
 .nf
 375 { };
 .fi
+.SS "int Module::OnOperCompare (std::string password, std::string input)\fC [virtual]\fP"
+.PP
+Called whenever an oper password is to be compared to what a user has input. The password field (from the config file) is in 'password' and is to be compared against 'input'. This method allows for encryption of oper passwords and much more besides. You should return a nonzero value if you want to allow the comparison or zero if you wish to do nothing.Definition at line 408 of file modules.cpp.
+.PP
+.nf
+408 { return 0; };
+.fi
 .SS "void Module::OnPacketReceive (std::string & data, std::string serv)\fC [virtual]\fP"
 .PP
 Called after a packet is received from another irc server. This allows you to easily represent it in the correct ways to implement encryption, compression, digital signatures and anything else you may want to add. This should be regarded as a pre-processor and will be called immediately after the packet is received but before any other operations with the core of the ircd.Definition at line 369 of file modules.cpp.
index 44c837e1016bee57133fbf8b41c7ef697f1297ea..5e84208406d826316de6a744927b84d8495e4044 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ModuleFactory" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "ModuleFactory" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -32,22 +32,22 @@ Instantiates classes inherited from \fBModule\fP This class creates a class inhe
 
 This is to allow for modules to create many different variants of \fBModule\fP, dependent on architecture, configuration, etc. In most cases, the simple class shown in the example module m_foobar.so will suffice for most modules. 
 .PP
-Definition at line 1216 of file modules.h.
+Definition at line 1241 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "ModuleFactory::ModuleFactory ()\fC [inline]\fP"
 .PP
-Definition at line 1219 of file modules.h.
+Definition at line 1244 of file modules.h.
 .PP
 .nf
-1219 { }
+1244 { }
 .fi
 .SS "virtual ModuleFactory::~\fBModuleFactory\fP ()\fC [inline, virtual]\fP"
 .PP
-Definition at line 1220 of file modules.h.
+Definition at line 1245 of file modules.h.
 .PP
 .nf
-1220 { }
+1245 { }
 .fi
 .SH "Member Function Documentation"
 .PP 
index faec8396bac3e89cfcf98ff6310b2fcdbd99be27..3b04d034a38833c87bd38ca998326f8adc2ec4ad 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ModuleMessage" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "ModuleMessage" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -24,7 +24,7 @@ Inherited by \fBEvent\fP, and \fBRequest\fP.
 .in -1c
 .SH "Detailed Description"
 .PP 
-The ModuleMessage class is the base class of \fBRequest\fP and \fBEvent\fP This class is used to represent a basic data structure which is passed between modules for safe inter-module communications. Definition at line 138 of file modules.h.
+The ModuleMessage class is the base class of \fBRequest\fP and \fBEvent\fP This class is used to represent a basic data structure which is passed between modules for safe inter-module communications. Definition at line 141 of file modules.h.
 .SH "Member Function Documentation"
 .PP 
 .SS "virtual char* ModuleMessage::Send ()\fC [pure virtual]\fP"
index 54c689494ce4737ec0520fa1dd39dfea596f364c..a8a1adf0ba6c63b93b8fa2259066ff94eca09512 100644 (file)
@@ -1,4 +1,4 @@
-.TH "QLine" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "QLine" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 523b76247b5f45e91cf9a269ed481079c178c3a6..28a518bc52f5372d48d41c7c1089de5437196b83 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Request" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "Request" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -58,7 +58,7 @@ The Request class is a unicast message directed at a given module.
 
 When this class is properly instantiated it may be sent to a module using the \fBSend()\fP method, which will call the given module's OnRequest method with this class as its parameter. 
 .PP
-Definition at line 151 of file modules.h.
+Definition at line 154 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "Request::Request (char * anydata, \fBModule\fP * src, \fBModule\fP * dst)"
@@ -127,17 +127,17 @@ References dest, and Module::OnRequest().
 .PP 
 .SS "char* \fBRequest::data\fP\fC [protected]\fP"
 .PP
-This member holds a pointer to arbitary data set by the emitter of the message. Definition at line 156 of file modules.h.
+This member holds a pointer to arbitary data set by the emitter of the message. Definition at line 159 of file modules.h.
 .PP
 Referenced by GetData().
 .SS "\fBModule\fP* \fBRequest::dest\fP\fC [protected]\fP"
 .PP
-The single destination of the Request. Definition at line 163 of file modules.h.
+The single destination of the Request. Definition at line 166 of file modules.h.
 .PP
 Referenced by GetDest(), and Send().
 .SS "\fBModule\fP* \fBRequest::source\fP\fC [protected]\fP"
 .PP
-This is a pointer to the sender of the message, which can be used to directly trigger events, or to create a reply. Definition at line 160 of file modules.h.
+This is a pointer to the sender of the message, which can be used to directly trigger events, or to create a reply. Definition at line 163 of file modules.h.
 .PP
 Referenced by GetSource().
 
index 3749d4cd321aeef36d6655c0f7ad5c591e7eaaa6..47253deec8b2d71d2a0e057fa7e197eced1b3cde 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Server" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "Server" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -254,24 +254,24 @@ Allows server output and query functions This class contains methods which allow
 
 All modules should instantiate at least one copy of this class, and use its member functions to perform their tasks. 
 .PP
-Definition at line 627 of file modules.h.
+Definition at line 652 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "Server::Server ()"
 .PP
-Default constructor. Creates a Server object.Definition at line 414 of file modules.cpp.
+Default constructor. Creates a Server object.Definition at line 416 of file modules.cpp.
 .PP
 .nf
-415 {
-416 }
+417 {
+418 }
 .fi
 .SS "Server::~\fBServer\fP ()\fC [virtual]\fP"
 .PP
-Default destructor. Destroys a Server object.Definition at line 418 of file modules.cpp.
+Default destructor. Destroys a Server object.Definition at line 420 of file modules.cpp.
 .PP
 .nf
-419 {
-420 }
+421 {
+422 }
 .fi
 .SH "Member Function Documentation"
 .PP 
@@ -281,25 +281,25 @@ Adds a command to the command table. This allows modules to add extra commands i
 .PP
 typedef void (handlerfunc) (char**, int, userrec*); ... void \fBhandle_kill(char **parameters, int pcnt, userrec *user)\fP
 .PP
-When the command is typed, the parameters will be placed into the parameters array (similar to argv) and the parameter count will be placed into pcnt (similar to argv). There will never be any less parameters than the 'minparams' value you specified when creating the command. The *user parameter is the class of the user which caused the command to trigger, who will always have the flag you specified in 'flags' when creating the initial command. For example to create an oper only command create the commands with flags='o'. The source parameter is used for resource tracking, and should contain the name of your module (with file extension) e.g. 'm_blarp.so'. If you place the wrong identifier here, you can cause crashes if your module is unloaded.Definition at line 495 of file modules.cpp.
+When the command is typed, the parameters will be placed into the parameters array (similar to argv) and the parameter count will be placed into pcnt (similar to argv). There will never be any less parameters than the 'minparams' value you specified when creating the command. The *user parameter is the class of the user which caused the command to trigger, who will always have the flag you specified in 'flags' when creating the initial command. For example to create an oper only command create the commands with flags='o'. The source parameter is used for resource tracking, and should contain the name of your module (with file extension) e.g. 'm_blarp.so'. If you place the wrong identifier here, you can cause crashes if your module is unloaded.Definition at line 497 of file modules.cpp.
 .PP
 References createcommand().
 .PP
 .nf
-496 {
-497         createcommand(cmd,f,flags,minparams,source);
-498 }
+498 {
+499         createcommand(cmd,f,flags,minparams,source);
+500 }
 .fi
 .SS "void Server::AddELine (long duration, std::string source, std::string reason, std::string hostmask)\fC [virtual]\fP"
 .PP
-Adds a E-line The E-line is enforced as soon as it is added. The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name. Definition at line 713 of file modules.cpp.
+Adds a E-line The E-line is enforced as soon as it is added. The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name. Definition at line 715 of file modules.cpp.
 .PP
 References add_eline(), and duration().
 .PP
 .nf
-714 {
-715         add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-716 }
+716 {
+717         add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+718 }
 .fi
 .SS "bool Server::AddExtendedListMode (char modechar)\fC [virtual]\fP"
 .PP
@@ -313,528 +313,528 @@ Adds an extended mode letter which is parsed by a module and handled in a list f
 .PP
 (4) The mode and its parameter are NOT stored in the channels modes structure
 .PP
-It is down to the module handling the mode to maintain state and determine what 'items' (e.g. users, or a banlist) have the mode set on them, and process the modes at the correct times, e.g. during access checks on channels, etc. When the extended mode is triggered the OnExtendedMode method will be triggered as above. Note that the target you are given will be a channel, if for example your mode is set 'on a user' (in for example +a) you must use Server::Find to locate the user the mode is operating on. Your mode handler may return 1 to handle the mode AND tell the core to display the mode change, e.g. '+aaa one two three' in the case of the mode for 'two', or it may return -1 to 'eat' the mode change, so the above example would become '+aa one three' after processing.Definition at line 640 of file modules.cpp.
+It is down to the module handling the mode to maintain state and determine what 'items' (e.g. users, or a banlist) have the mode set on them, and process the modes at the correct times, e.g. during access checks on channels, etc. When the extended mode is triggered the OnExtendedMode method will be triggered as above. Note that the target you are given will be a channel, if for example your mode is set 'on a user' (in for example +a) you must use Server::Find to locate the user the mode is operating on. Your mode handler may return 1 to handle the mode AND tell the core to display the mode change, e.g. '+aaa one two three' in the case of the mode for 'two', or it may return -1 to 'eat' the mode change, so the above example would become '+aa one three' after processing.Definition at line 642 of file modules.cpp.
 .PP
 References DoAddExtendedMode(), ModeMakeList(), and MT_CHANNEL.
 .PP
 .nf
-641 {
-642         bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1);
-643         if (res)
-644                 ModeMakeList(modechar);
-645         return res;
-646 }
+643 {
+644         bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1);
+645         if (res)
+646                 ModeMakeList(modechar);
+647         return res;
+648 }
 .fi
 .SS "bool Server::AddExtendedMode (char modechar, int type, bool requires_oper, int params_when_on, int params_when_off)\fC [virtual]\fP"
 .PP
-Adds an extended mode letter which is parsed by a module. This allows modules to add extra mode letters, e.g. +x for hostcloak. the 'type' parameter is either MT_CHANNEL, MT_CLIENT, or MT_SERVER, to indicate wether the mode is a channel mode, a client mode, or a server mode. requires_oper is used with MT_CLIENT type modes only to indicate the mode can only be set or unset by an oper. If this is used for MT_CHANNEL type modes it is ignored. params_when_on is the number of modes to expect when the mode is turned on (for type MT_CHANNEL only), e.g. with mode +k, this would have a value of 1. the params_when_off value has a similar value to params_when_on, except it indicates the number of parameters to expect when the mode is disabled. Modes which act in a similar way to channel mode +l (e.g. require a parameter to enable, but not to disable) should use this parameter. The function returns false if the mode is unavailable, and will not attempt to allocate another character, as this will confuse users. This also means that as only one module can claim a specific mode character, the core does not need to keep track of which modules own which modes, which speeds up operation of the server. In this version, a mode can have at most one parameter, attempting to use more parameters will have undefined effects.Definition at line 620 of file modules.cpp.
+Adds an extended mode letter which is parsed by a module. This allows modules to add extra mode letters, e.g. +x for hostcloak. the 'type' parameter is either MT_CHANNEL, MT_CLIENT, or MT_SERVER, to indicate wether the mode is a channel mode, a client mode, or a server mode. requires_oper is used with MT_CLIENT type modes only to indicate the mode can only be set or unset by an oper. If this is used for MT_CHANNEL type modes it is ignored. params_when_on is the number of modes to expect when the mode is turned on (for type MT_CHANNEL only), e.g. with mode +k, this would have a value of 1. the params_when_off value has a similar value to params_when_on, except it indicates the number of parameters to expect when the mode is disabled. Modes which act in a similar way to channel mode +l (e.g. require a parameter to enable, but not to disable) should use this parameter. The function returns false if the mode is unavailable, and will not attempt to allocate another character, as this will confuse users. This also means that as only one module can claim a specific mode character, the core does not need to keep track of which modules own which modes, which speeds up operation of the server. In this version, a mode can have at most one parameter, attempting to use more parameters will have undefined effects.Definition at line 622 of file modules.cpp.
 .PP
 References DEBUG, DoAddExtendedMode(), MT_CLIENT, and MT_SERVER.
 .PP
 .nf
-621 {
-622         if (type == MT_SERVER)
-623         {
-624                 log(DEBUG,'*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion');
-625                 return false;
-626         }
-627         if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT))
-628         {
-629                 log(DEBUG,'*** API ERROR *** Parameters on MT_CLIENT modes are not supported');
-630                 return false;
-631         }
-632         if ((params_when_on>1) || (params_when_off>1))
-633         {
-634                 log(DEBUG,'*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported');
-635                 return false;
-636         }
-637         return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off);
-638 }
+623 {
+624         if (type == MT_SERVER)
+625         {
+626                 log(DEBUG,'*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion');
+627                 return false;
+628         }
+629         if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT))
+630         {
+631                 log(DEBUG,'*** API ERROR *** Parameters on MT_CLIENT modes are not supported');
+632                 return false;
+633         }
+634         if ((params_when_on>1) || (params_when_off>1))
+635         {
+636                 log(DEBUG,'*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported');
+637                 return false;
+638         }
+639         return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off);
+640 }
 .fi
 .SS "void Server::AddGLine (long duration, std::string source, std::string reason, std::string hostmask)\fC [virtual]\fP"
 .PP
-Adds a G-line The G-line is propogated to all of the servers in the mesh and enforced as soon as it is added. The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.Definition at line 693 of file modules.cpp.
+Adds a G-line The G-line is propogated to all of the servers in the mesh and enforced as soon as it is added. The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.Definition at line 695 of file modules.cpp.
 .PP
 References add_gline(), and duration().
 .PP
 .nf
-694 {
-695         add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-696 }
+696 {
+697         add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+698 }
 .fi
 .SS "void Server::AddKLine (long duration, std::string source, std::string reason, std::string hostmask)\fC [virtual]\fP"
 .PP
-Adds a K-line The K-line is enforced as soon as it is added. The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name. Definition at line 708 of file modules.cpp.
+Adds a K-line The K-line is enforced as soon as it is added. The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name. Definition at line 710 of file modules.cpp.
 .PP
 References add_kline(), and duration().
 .PP
 .nf
-709 {
-710         add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-711 }
+711 {
+712         add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+713 }
 .fi
 .SS "void Server::AddQLine (long duration, std::string source, std::string reason, std::string nickname)\fC [virtual]\fP"
 .PP
-Adds a Q-line The Q-line is propogated to all of the servers in the mesh and enforced as soon as it is added. The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name. Definition at line 698 of file modules.cpp.
+Adds a Q-line The Q-line is propogated to all of the servers in the mesh and enforced as soon as it is added. The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name. Definition at line 700 of file modules.cpp.
 .PP
 References add_qline(), and duration().
 .PP
 .nf
-699 {
-700         add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str());
-701 }
+701 {
+702         add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str());
+703 }
 .fi
 .SS "void Server::AddZLine (long duration, std::string source, std::string reason, std::string ipaddr)\fC [virtual]\fP"
 .PP
-Adds a Z-line The Z-line is propogated to all of the servers in the mesh and enforced as soon as it is added. The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name. Definition at line 703 of file modules.cpp.
+Adds a Z-line The Z-line is propogated to all of the servers in the mesh and enforced as soon as it is added. The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name. Definition at line 705 of file modules.cpp.
 .PP
 References add_zline(), and duration().
 .PP
 .nf
-704 {
-705         add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
-706 }
+706 {
+707         add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
+708 }
 .fi
 .SS "long Server::CalcDuration (std::string duration)\fC [virtual]\fP"
 .PP
-Calculates a duration This method will take a string containing a formatted duration (e.g. '1w2d') and return its value as a total number of seconds. This is the same function used internally by /GLINE etc to set the ban times.Definition at line 743 of file modules.cpp.
+Calculates a duration This method will take a string containing a formatted duration (e.g. '1w2d') and return its value as a total number of seconds. This is the same function used internally by /GLINE etc to set the ban times.Definition at line 745 of file modules.cpp.
 .PP
 References duration().
 .PP
 .nf
-744 {
-745         return duration(delta.c_str());
-746 }
+746 {
+747         return duration(delta.c_str());
+748 }
 .fi
 .SS "void Server::CallCommandHandler (std::string commandname, char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
 .PP
 Calls the handler for a command, either implemented by the core or by another module. You can use this function to trigger other commands in the ircd, such as PRIVMSG, JOIN, KICK etc, or even as a method of callback. By defining command names that are untypeable for users on irc (e.g. those which contain a  or 
 .br
-) you may use them as callback identifiers. The first parameter to this method is the name of the command handler you wish to call, e.g. PRIVMSG. This will be a command handler previously registered by the core or wih \fBAddCommand()\fP. The second parameter is an array of parameters, and the third parameter is a count of parameters in the array. If you do not pass enough parameters to meet the minimum needed by the handler, the functiom will silently ignore it. The final parameter is the user executing the command handler, used for privilage checks, etc.Definition at line 485 of file modules.cpp.
+) you may use them as callback identifiers. The first parameter to this method is the name of the command handler you wish to call, e.g. PRIVMSG. This will be a command handler previously registered by the core or wih \fBAddCommand()\fP. The second parameter is an array of parameters, and the third parameter is a count of parameters in the array. If you do not pass enough parameters to meet the minimum needed by the handler, the functiom will silently ignore it. The final parameter is the user executing the command handler, used for privilage checks, etc.Definition at line 487 of file modules.cpp.
 .PP
 .nf
-486 {
-487         call_handler(commandname.c_str(),parameters,pcnt,user);
-488 }
+488 {
+489         call_handler(commandname.c_str(),parameters,pcnt,user);
+490 }
 .fi
 .SS "void Server::ChangeGECOS (\fBuserrec\fP * user, std::string gecos)\fC [virtual]\fP"
 .PP
-Change GECOS (fullname) of a user. You should always call this method to change a user's GECOS rather than writing directly to the fullname member of userrec, as any change applied via this method will be propogated to any linked servers.Definition at line 573 of file modules.cpp.
+Change GECOS (fullname) of a user. You should always call this method to change a user's GECOS rather than writing directly to the fullname member of userrec, as any change applied via this method will be propogated to any linked servers.Definition at line 575 of file modules.cpp.
 .PP
 References ChangeName().
 .PP
 .nf
-574 {
-575         ChangeName(user,gecos.c_str());
-576 }
+576 {
+577         ChangeName(user,gecos.c_str());
+578 }
 .fi
 .SS "void Server::ChangeHost (\fBuserrec\fP * user, std::string host)\fC [virtual]\fP"
 .PP
-Change displayed hostname of a user. You should always call this method to change a user's host rather than writing directly to the dhost member of userrec, as any change applied via this method will be propogated to any linked servers.Definition at line 568 of file modules.cpp.
+Change displayed hostname of a user. You should always call this method to change a user's host rather than writing directly to the dhost member of userrec, as any change applied via this method will be propogated to any linked servers.Definition at line 570 of file modules.cpp.
 .PP
 References ChangeDisplayedHost().
 .PP
 .nf
-569 {
-570         ChangeDisplayedHost(user,host.c_str());
-571 }
+571 {
+572         ChangeDisplayedHost(user,host.c_str());
+573 }
 .fi
 .SS "void Server::ChangeUserNick (\fBuserrec\fP * user, std::string nickname)\fC [virtual]\fP"
 .PP
-Forces a user nickchange. This command works similarly to SVSNICK, and can be used to implement Q-lines etc. If you specify an invalid nickname, the nick change will be dropped and the target user will receive the error numeric for it.Definition at line 469 of file modules.cpp.
+Forces a user nickchange. This command works similarly to SVSNICK, and can be used to implement Q-lines etc. If you specify an invalid nickname, the nick change will be dropped and the target user will receive the error numeric for it.Definition at line 471 of file modules.cpp.
 .PP
 .nf
-470 {
-471         force_nickchange(user,nickname.c_str());
-472 }
+472 {
+473         force_nickchange(user,nickname.c_str());
+474 }
 .fi
 .SS "std::string Server::ChanMode (\fBuserrec\fP * User, \fBchanrec\fP * Chan)\fC [virtual]\fP"
 .PP
-Attempts to look up a user's privilages on a channel. This function will return a string containing either @, , +, or an empty string, representing the user's privilages upon the channel you specify.Definition at line 593 of file modules.cpp.
+Attempts to look up a user's privilages on a channel. This function will return a string containing either @, , +, or an empty string, representing the user's privilages upon the channel you specify.Definition at line 595 of file modules.cpp.
 .PP
 References cmode().
 .PP
 .nf
-594 {
-595         return cmode(User,Chan);
-596 }
+596 {
+597         return cmode(User,Chan);
+598 }
 .fi
 .SS "bool Server::CommonChannels (\fBuserrec\fP * u1, \fBuserrec\fP * u2)\fC [virtual]\fP"
 .PP
-Returns true if two users share a common channel. This method is used internally by the NICK and QUIT commands, and the \fBServer::SendCommon\fP method.Definition at line 546 of file modules.cpp.
+Returns true if two users share a common channel. This method is used internally by the NICK and QUIT commands, and the \fBServer::SendCommon\fP method.Definition at line 548 of file modules.cpp.
 .PP
 References common_channels().
 .PP
 .nf
-547 {
-548         return (common_channels(u1,u2) != 0);
-549 }
+549 {
+550         return (common_channels(u1,u2) != 0);
+551 }
 .fi
 .SS "int Server::CountUsers (\fBchanrec\fP * c)\fC [virtual]\fP"
 .PP
-Returns a count of the number of users on a channel. This will NEVER be 0, as if the chanrec exists, it will have at least one user in the channel.Definition at line 648 of file modules.cpp.
+Returns a count of the number of users on a channel. This will NEVER be 0, as if the chanrec exists, it will have at least one user in the channel.Definition at line 650 of file modules.cpp.
 .PP
 .nf
-649 {
-650         return usercount(c);
-651 }
+651 {
+652         return usercount(c);
+653 }
 .fi
 .SS "bool Server::DelELine (std::string hostmask)\fC [virtual]\fP"
 .PP
-Deletes a local E-Line. Definition at line 738 of file modules.cpp.
+Deletes a local E-Line. Definition at line 740 of file modules.cpp.
 .PP
 References del_eline().
 .PP
 .nf
-739 {
-740         del_eline(hostmask.c_str());
-741 }
+741 {
+742         del_eline(hostmask.c_str());
+743 }
 .fi
 .SS "bool Server::DelGLine (std::string hostmask)\fC [virtual]\fP"
 .PP
-Deletes a G-Line from all servers on the mesh. Definition at line 718 of file modules.cpp.
+Deletes a G-Line from all servers on the mesh. Definition at line 720 of file modules.cpp.
 .PP
 References del_gline().
 .PP
 .nf
-719 {
-720         del_gline(hostmask.c_str());
-721 }
+721 {
+722         del_gline(hostmask.c_str());
+723 }
 .fi
 .SS "bool Server::DelKLine (std::string hostmask)\fC [virtual]\fP"
 .PP
-Deletes a local K-Line. Definition at line 733 of file modules.cpp.
+Deletes a local K-Line. Definition at line 735 of file modules.cpp.
 .PP
 References del_kline().
 .PP
 .nf
-734 {
-735         del_kline(hostmask.c_str());
-736 }
+736 {
+737         del_kline(hostmask.c_str());
+738 }
 .fi
 .SS "bool Server::DelQLine (std::string nickname)\fC [virtual]\fP"
 .PP
-Deletes a Q-Line from all servers on the mesh. Definition at line 723 of file modules.cpp.
+Deletes a Q-Line from all servers on the mesh. Definition at line 725 of file modules.cpp.
 .PP
 References del_qline().
 .PP
 .nf
-724 {
-725         del_qline(nickname.c_str());
-726 }
+726 {
+727         del_qline(nickname.c_str());
+728 }
 .fi
 .SS "bool Server::DelZLine (std::string ipaddr)\fC [virtual]\fP"
 .PP
-Deletes a Z-Line from all servers on the mesh. Definition at line 728 of file modules.cpp.
+Deletes a Z-Line from all servers on the mesh. Definition at line 730 of file modules.cpp.
 .PP
 References del_zline().
 .PP
 .nf
-729 {
-730         del_zline(ipaddr.c_str());
-731 }
+731 {
+732         del_zline(ipaddr.c_str());
+733 }
 .fi
 .SS "\fBchanrec\fP * Server::FindChannel (std::string channel)\fC [virtual]\fP"
 .PP
-Attempts to look up a channel and return a pointer to it. This function will return NULL if the channel does not exist.Definition at line 588 of file modules.cpp.
+Attempts to look up a channel and return a pointer to it. This function will return NULL if the channel does not exist.Definition at line 590 of file modules.cpp.
 .PP
 .nf
-589 {
-590         return FindChan(channel.c_str());
-591 }
+591 {
+592         return FindChan(channel.c_str());
+593 }
 .fi
 .SS "\fBModule\fP * Server::FindModule (std::string name)\fC [virtual]\fP"
 .PP
-This function finds a module by name. You must provide the filename of the module. If the module cannot be found (is not loaded) the function will return NULL.Definition at line 821 of file modules.cpp.
+This function finds a module by name. You must provide the filename of the module. If the module cannot be found (is not loaded) the function will return NULL.Definition at line 823 of file modules.cpp.
 .PP
 References MODCOUNT, module_names, and modules.
 .PP
 .nf
-822 {
-823         for (int i = 0; i <= MODCOUNT; i++)
-824         {
-825                 if (module_names[i] == name)
-826                 {
-827                         return modules[i];
-828                 }
-829         }
-830         return NULL;
-831 }
+824 {
+825         for (int i = 0; i <= MODCOUNT; i++)
+826         {
+827                 if (module_names[i] == name)
+828                 {
+829                         return modules[i];
+830                 }
+831         }
+832         return NULL;
+833 }
 .fi
 .SS "\fBuserrec\fP * Server::FindNick (std::string nick)\fC [virtual]\fP"
 .PP
-Attempts to look up a nick and return a pointer to it. This function will return NULL if the nick does not exist.Definition at line 583 of file modules.cpp.
+Attempts to look up a nick and return a pointer to it. This function will return NULL if the nick does not exist.Definition at line 585 of file modules.cpp.
 .PP
 .nf
-584 {
-585         return Find(nick);
-586 }
+586 {
+587         return Find(nick);
+588 }
 .fi
 .SS "\fBAdmin\fP Server::GetAdmin ()\fC [virtual]\fP"
 .PP
-Returns the information of the server as returned by the /ADMIN command. See the \fBAdmin\fP class for further information of the return value. The members \fBAdmin::Nick\fP, \fBAdmin::Email\fP and \fBAdmin::Name\fP contain the information for the server where the module is loaded.Definition at line 613 of file modules.cpp.
+Returns the information of the server as returned by the /ADMIN command. See the \fBAdmin\fP class for further information of the return value. The members \fBAdmin::Nick\fP, \fBAdmin::Email\fP and \fBAdmin::Name\fP contain the information for the server where the module is loaded.Definition at line 615 of file modules.cpp.
 .PP
 .nf
-614 {
-615         return Admin(getadminname(),getadminemail(),getadminnick());
-616 }
+616 {
+617         return Admin(getadminname(),getadminemail(),getadminnick());
+618 }
 .fi
 .SS "std::string Server::GetNetworkName ()\fC [virtual]\fP"
 .PP
-Returns the network name, global to all linked servers. Definition at line 608 of file modules.cpp.
+Returns the network name, global to all linked servers. Definition at line 610 of file modules.cpp.
 .PP
 .nf
-609 {
-610         return getnetworkname();
-611 }
+611 {
+612         return getnetworkname();
+613 }
 .fi
 .SS "std::string Server::GetServerName ()\fC [virtual]\fP"
 .PP
-Returns the server name of the server where the module is loaded. Definition at line 603 of file modules.cpp.
+Returns the server name of the server where the module is loaded. Definition at line 605 of file modules.cpp.
 .PP
 .nf
-604 {
-605         return getservername();
-606 }
+606 {
+607         return getservername();
+608 }
 .fi
 .SS "\fBchanuserlist\fP Server::GetUsers (\fBchanrec\fP * chan)\fC [virtual]\fP"
 .PP
-Fetches the userlist of a channel. This function must be here and not a member of userrec or chanrec due to include constraints.Definition at line 450 of file modules.cpp.
+Fetches the userlist of a channel. This function must be here and not a member of userrec or chanrec due to include constraints.Definition at line 452 of file modules.cpp.
 .PP
 References chanuserlist, clientlist, has_channel(), and isnick().
 .PP
 .nf
-451 {
-452         chanuserlist userl;
-453         userl.clear();
-454         for (user_hash::const_iterator i = clientlist.begin(); i != clientlist.end(); i++)
-455         {
-456                 if (i->second)
-457                 {
-458                         if (has_channel(i->second,chan))
-459                         {
-460                                 if (isnick(i->second->nick))
-461                                 {
-462                                         userl.push_back(i->second);
-463                                 }
-464                         }
-465                 }
-466         }
-467         return userl;
-468 }
+453 {
+454         chanuserlist userl;
+455         userl.clear();
+456         for (user_hash::const_iterator i = clientlist.begin(); i != clientlist.end(); i++)
+457         {
+458                 if (i->second)
+459                 {
+460                         if (has_channel(i->second,chan))
+461                         {
+462                                 if (isnick(i->second->nick))
+463                                 {
+464                                         userl.push_back(i->second);
+465                                 }
+466                         }
+467                 }
+468         }
+469         return userl;
+470 }
 .fi
 .SS "bool Server::IsNick (std::string nick)\fC [virtual]\fP"
 .PP
-Returns true if a nick is valid. Nicks for unregistered connections will return false.Definition at line 578 of file modules.cpp.
+Returns true if a nick is valid. Nicks for unregistered connections will return false.Definition at line 580 of file modules.cpp.
 .PP
 References isnick().
 .PP
 .nf
-579 {
-580         return (isnick(nick.c_str()) != 0);
-581 }
+581 {
+582         return (isnick(nick.c_str()) != 0);
+583 }
 .fi
 .SS "bool Server::IsOnChannel (\fBuserrec\fP * User, \fBchanrec\fP * Chan)\fC [virtual]\fP"
 .PP
-Checks if a user is on a channel. This function will return true or false to indicate if user 'User' is on channel 'Chan'.Definition at line 598 of file modules.cpp.
+Checks if a user is on a channel. This function will return true or false to indicate if user 'User' is on channel 'Chan'.Definition at line 600 of file modules.cpp.
 .PP
 References has_channel().
 .PP
 .nf
-599 {
-600         return has_channel(User,Chan);
-601 }
+601 {
+602         return has_channel(User,Chan);
+603 }
 .fi
 .SS "bool Server::IsUlined (std::string server)\fC [virtual]\fP"
 .PP
-Returns true if the servername you give is ulined. ULined servers have extra privilages. They are allowed to change nicknames on remote servers, change modes of clients which are on remote servers and set modes of channels where there are no channel operators for that channel on the ulined server, amongst other things. Ulined server data is also broadcast across the mesh at all times as opposed to selectively messaged in the case of normal servers, as many ulined server types (such as services) do not support meshed links and must operate in this manner.Definition at line 480 of file modules.cpp.
+Returns true if the servername you give is ulined. ULined servers have extra privilages. They are allowed to change nicknames on remote servers, change modes of clients which are on remote servers and set modes of channels where there are no channel operators for that channel on the ulined server, amongst other things. Ulined server data is also broadcast across the mesh at all times as opposed to selectively messaged in the case of normal servers, as many ulined server types (such as services) do not support meshed links and must operate in this manner.Definition at line 482 of file modules.cpp.
 .PP
 References is_uline().
 .PP
 .nf
-481 {
-482         return is_uline(server.c_str());
-483 }
+483 {
+484         return is_uline(server.c_str());
+485 }
 .fi
 .SS "bool Server::IsValidMask (std::string mask)\fC [virtual]\fP"
 .PP
-Returns true if a nick!ident string is correctly formatted, false if otherwise. Definition at line 748 of file modules.cpp.
+Returns true if a nick!ident string is correctly formatted, false if otherwise. Definition at line 750 of file modules.cpp.
 .PP
 .nf
-749 {
-750         const char* dest = mask.c_str();
-751         if (strchr(dest,'!')==0)
-752                 return false;
-753         if (strchr(dest,'@')==0)
+751 {
+752         const char* dest = mask.c_str();
+753         if (strchr(dest,'!')==0)
 754                 return false;
-755         for (int i = 0; i < strlen(dest); i++)
-756                 if (dest[i] < 32)
-757                         return false;
-758         for (int i = 0; i < strlen(dest); i++)
-759                 if (dest[i] > 126)
-760                         return false;
-761         int c = 0;
-762         for (int i = 0; i < strlen(dest); i++)
-763                 if (dest[i] == '!')
-764                         c++;
-765         if (c>1)
-766                 return false;
-767         c = 0;
-768         for (int i = 0; i < strlen(dest); i++)
-769                 if (dest[i] == '@')
-770                         c++;
-771         if (c>1)
-772                 return false;
-773 
-774         return true;
-775 }
+755         if (strchr(dest,'@')==0)
+756                 return false;
+757         for (int i = 0; i < strlen(dest); i++)
+758                 if (dest[i] < 32)
+759                         return false;
+760         for (int i = 0; i < strlen(dest); i++)
+761                 if (dest[i] > 126)
+762                         return false;
+763         int c = 0;
+764         for (int i = 0; i < strlen(dest); i++)
+765                 if (dest[i] == '!')
+766                         c++;
+767         if (c>1)
+768                 return false;
+769         c = 0;
+770         for (int i = 0; i < strlen(dest); i++)
+771                 if (dest[i] == '@')
+772                         c++;
+773         if (c>1)
+774                 return false;
+775 
+776         return true;
+777 }
 .fi
 .SS "\fBchanrec\fP * Server::JoinUserToChannel (\fBuserrec\fP * user, std::string cname, std::string key)\fC [virtual]\fP"
 .PP
-Forces a user to join a channel. This is similar to svsjoin and can be used to implement redirection, etc. On success, the return value is a valid pointer to a chanrec* of the channel the user was joined to. On failure, the result is NULL.Definition at line 440 of file modules.cpp.
+Forces a user to join a channel. This is similar to svsjoin and can be used to implement redirection, etc. On success, the return value is a valid pointer to a chanrec* of the channel the user was joined to. On failure, the result is NULL.Definition at line 442 of file modules.cpp.
 .PP
 .nf
-441 {
-442         return add_channel(user,cname.c_str(),key.c_str(),true);
-443 }
+443 {
+444         return add_channel(user,cname.c_str(),key.c_str(),true);
+445 }
 .fi
 .SS "void Server::Log (int level, std::string s)\fC [virtual]\fP"
 .PP
-Writes a log string. This method writes a line of text to the log. If the level given is lower than the level given in the configuration, this command has no effect.Definition at line 490 of file modules.cpp.
+Writes a log string. This method writes a line of text to the log. If the level given is lower than the level given in the configuration, this command has no effect.Definition at line 492 of file modules.cpp.
 .PP
 .nf
-491 {
-492         log(level,'%s',s.c_str());
-493 }
+493 {
+494         log(level,'%s',s.c_str());
+495 }
 .fi
 .SS "bool Server::MatchText (std::string sliteral, std::string spattern)\fC [virtual]\fP"
 .PP
-Matches text against a glob pattern. Uses the ircd's internal matching function to match string against a globbing pattern, e.g. *!*@*.com Returns true if the literal successfully matches the pattern, false if otherwise.Definition at line 427 of file modules.cpp.
+Matches text against a glob pattern. Uses the ircd's internal matching function to match string against a globbing pattern, e.g. *!*@*.com Returns true if the literal successfully matches the pattern, false if otherwise.Definition at line 429 of file modules.cpp.
 .PP
 .nf
-428 {
-429         char literal[MAXBUF],pattern[MAXBUF];
-430         strlcpy(literal,sliteral.c_str(),MAXBUF);
-431         strlcpy(pattern,spattern.c_str(),MAXBUF);
-432         return match(literal,pattern);
-433 }
+430 {
+431         char literal[MAXBUF],pattern[MAXBUF];
+432         strlcpy(literal,sliteral.c_str(),MAXBUF);
+433         strlcpy(pattern,spattern.c_str(),MAXBUF);
+434         return match(literal,pattern);
+435 }
 .fi
 .SS "bool Server::MeshCheckChan (\fBchanrec\fP * c, std::string servername)\fC [virtual]\fP"
 .PP
-This function is used to check if any users on channel c are on server servername. This is used internally by PRIVMSG etc. You should not need to use it.Definition at line 803 of file modules.cpp.
+This function is used to check if any users on channel c are on server servername. This is used internally by PRIVMSG etc. You should not need to use it.Definition at line 805 of file modules.cpp.
 .PP
 .nf
-804 {
-805         if (c)
-806         {
-807                 return ChanAnyOnThisServer(c,(char*)servername.c_str());
-808         }
-809         else return false;
-810 }
+806 {
+807         if (c)
+808         {
+809                 return ChanAnyOnThisServer(c,(char*)servername.c_str());
+810         }
+811         else return false;
+812 }
 .fi
 .SS "bool Server::MeshCheckCommon (\fBuserrec\fP * u, std::string servername)\fC [virtual]\fP"
 .PP
-This function is used to check if user u has any channels in common with users on servername. This is used internally by \fBServer::MeshSendCommon\fP. You should very rarely need to use it.Definition at line 812 of file modules.cpp.
+This function is used to check if user u has any channels in common with users on servername. This is used internally by \fBServer::MeshSendCommon\fP. You should very rarely need to use it.Definition at line 814 of file modules.cpp.
 .PP
 .nf
-813 {
-814         if (u)
-815         {
-816                 return CommonOnThisServer(u,(char*)servername.c_str());
-817         }
-818         else return false;
-819 }
+815 {
+816         if (u)
+817         {
+818                 return CommonOnThisServer(u,(char*)servername.c_str());
+819         }
+820         else return false;
+821 }
 .fi
 .SS "void Server::MeshSendAll (std::string text)\fC [virtual]\fP"
 .PP
-Sends a line of text to all connected servers. If a server is not directly reachable, the core deals with routing the message, and will also deal with failures transparently.Definition at line 777 of file modules.cpp.
+Sends a line of text to all connected servers. If a server is not directly reachable, the core deals with routing the message, and will also deal with failures transparently.Definition at line 779 of file modules.cpp.
 .PP
 .nf
-778 {
-779         NetSendToAll((char*)text.c_str());
-780 }
+780 {
+781         NetSendToAll((char*)text.c_str());
+782 }
 .fi
 .SS "void Server::MeshSendAllAlive (std::string text)\fC [virtual]\fP"
 .PP
-This function is equivalent to Server::MeshSendToAll except it will only route to servers which are directly routable. Definition at line 788 of file modules.cpp.
+This function is equivalent to Server::MeshSendToAll except it will only route to servers which are directly routable. Definition at line 790 of file modules.cpp.
 .PP
 .nf
-789 {
-790         NetSendToAllAlive((char*)text.c_str());
-791 }
+791 {
+792         NetSendToAllAlive((char*)text.c_str());
+793 }
 .fi
 .SS "void Server::MeshSendAllExcept (std::string target, std::string text)\fC [virtual]\fP"
 .PP
-This function sends to all servers EXCEPT the one you specify. You should usually use this function to send messages, specifying the SENDER of your message as 'target'. This will prevent message loops.Definition at line 798 of file modules.cpp.
+This function sends to all servers EXCEPT the one you specify. You should usually use this function to send messages, specifying the SENDER of your message as 'target'. This will prevent message loops.Definition at line 800 of file modules.cpp.
 .PP
 .nf
-799 {
-800         NetSendToAllExcept(target.c_str(),(char*)text.c_str());
-801 }
+801 {
+802         NetSendToAllExcept(target.c_str(),(char*)text.c_str());
+803 }
 .fi
 .SS "void Server::MeshSendCommon (\fBuserrec\fP * user, std::string text)\fC [virtual]\fP"
 .PP
-This method sends a line of text to all servers who have users which share common channels with the user you provide. For example, if user A is on server A, and they are on channels #one and #two, and user B is on server B, and also on channel #one, but user C is on server C and on neither #one or #two, this function will cause the text to only be sent to server B. However, if server B is only reachable via C, it will route it to C (you do not have to worry about this routing, it is done transparently, but its good to know how things work!)Definition at line 782 of file modules.cpp.
+This method sends a line of text to all servers who have users which share common channels with the user you provide. For example, if user A is on server A, and they are on channels #one and #two, and user B is on server B, and also on channel #one, but user C is on server C and on neither #one or #two, this function will cause the text to only be sent to server B. However, if server B is only reachable via C, it will route it to C (you do not have to worry about this routing, it is done transparently, but its good to know how things work!)Definition at line 784 of file modules.cpp.
 .PP
 .nf
-783 {
-784         if (user)
-785                 NetSendToCommon(user,(char*)text.c_str());
-786 }
+785 {
+786         if (user)
+787                 NetSendToCommon(user,(char*)text.c_str());
+788 }
 .fi
 .SS "void Server::MeshSendUnicast (std::string destination, std::string text)\fC [virtual]\fP"
 .PP
-This function sends a line of text directly to a server. If the server is not directly routable at this time, the server attempts to route text through the mesh.Definition at line 793 of file modules.cpp.
+This function sends a line of text directly to a server. If the server is not directly routable at this time, the server attempts to route text through the mesh.Definition at line 795 of file modules.cpp.
 .PP
 .nf
-794 {
-795         NetSendToOne((char*)destination.c_str(),(char*)text.c_str());
-796 }
+796 {
+797         NetSendToOne((char*)destination.c_str(),(char*)text.c_str());
+798 }
 .fi
 .SS "\fBchanrec\fP * Server::PartUserFromChannel (\fBuserrec\fP * user, std::string cname, std::string reason)\fC [virtual]\fP"
 .PP
-Forces a user to part a channel. This is similar to svspart and can be used to implement redirection, etc. Although the return value of this function is a pointer to a channel record, the returned data is undefined and should not be read or written to. This behaviour may be changed in a future version.Definition at line 445 of file modules.cpp.
+Forces a user to part a channel. This is similar to svspart and can be used to implement redirection, etc. Although the return value of this function is a pointer to a channel record, the returned data is undefined and should not be read or written to. This behaviour may be changed in a future version.Definition at line 447 of file modules.cpp.
 .PP
 .nf
-446 {
-447         return del_channel(user,cname.c_str(),reason.c_str(),false);
-448 }
+448 {
+449         return del_channel(user,cname.c_str(),reason.c_str(),false);
+450 }
 .fi
 .SS "bool Server::PseudoToUser (\fBuserrec\fP * alive, \fBuserrec\fP * zombie, std::string message)\fC [virtual]\fP"
 .PP
-This user takes one user, and switches their file descriptor with another user, so that one user 'becomes' the other. The user in 'alive' is booted off the server with the given message. The user referred to by 'zombie' should have previously been locked with Server::ZombifyUser, otherwise stale sockets and file descriptor leaks can occur. After this call, the pointer to alive will be invalid, and the pointer to zombie will be equivalent in effect to the old pointer to alive.Definition at line 663 of file modules.cpp.
+This user takes one user, and switches their file descriptor with another user, so that one user 'becomes' the other. The user in 'alive' is booted off the server with the given message. The user referred to by 'zombie' should have previously been locked with Server::ZombifyUser, otherwise stale sockets and file descriptor leaks can occur. After this call, the pointer to alive will be invalid, and the pointer to zombie will be equivalent in effect to the old pointer to alive.Definition at line 665 of file modules.cpp.
 .PP
 References ucrec::channel, userrec::chans, connection::fd, FD_MAGIC_NUMBER, connection::host, userrec::ident, chanrec::name, userrec::nick, chanrec::setby, chanrec::topic, and chanrec::topicset.
 .PP
 .nf
-664 {
-665         zombie->fd = alive->fd;
-666         alive->fd = FD_MAGIC_NUMBER;
-667         Write(zombie->fd,':%s!%s@%s NICK %s',alive->nick,alive->ident,alive->host,zombie->nick);
-668         kill_link(alive,message.c_str());
-669         for (int i = 0; i != MAXCHANS; i++)
-670         {
-671                 if (zombie->chans[i].channel != NULL)
-672                 {
-673                         if (zombie->chans[i].channel->name)
-674                         {
-675                                 chanrec* Ptr = zombie->chans[i].channel;
-676                                 WriteFrom(zombie->fd,zombie,'JOIN %s',Ptr->name);
-677                                 if (Ptr->topicset)
-678                                 {
-679                                         WriteServ(zombie->fd,'332 %s %s :%s', zombie->nick, Ptr->name, Ptr->topic);
-680                                         WriteServ(zombie->fd,'333 %s %s %s %d', zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset);
-681                                 }
-682                                 userlist(zombie,Ptr);
-683                                 WriteServ(zombie->fd,'366 %s %s :End of /NAMES list.', zombie->nick, Ptr->name);
-684                                 //WriteServ(zombie->fd,'324 %s %s +%s',zombie->nick, Ptr->name,chanmodes(Ptr));
-685                                 //WriteServ(zombie->fd,'329 %s %s %d', zombie->nick, Ptr->name, Ptr->created);
-686 
-687                         }
-688                 }
-689         }
-690 
-691 }
+666 {
+667         zombie->fd = alive->fd;
+668         alive->fd = FD_MAGIC_NUMBER;
+669         Write(zombie->fd,':%s!%s@%s NICK %s',alive->nick,alive->ident,alive->host,zombie->nick);
+670         kill_link(alive,message.c_str());
+671         for (int i = 0; i != MAXCHANS; i++)
+672         {
+673                 if (zombie->chans[i].channel != NULL)
+674                 {
+675                         if (zombie->chans[i].channel->name)
+676                         {
+677                                 chanrec* Ptr = zombie->chans[i].channel;
+678                                 WriteFrom(zombie->fd,zombie,'JOIN %s',Ptr->name);
+679                                 if (Ptr->topicset)
+680                                 {
+681                                         WriteServ(zombie->fd,'332 %s %s :%s', zombie->nick, Ptr->name, Ptr->topic);
+682                                         WriteServ(zombie->fd,'333 %s %s %s %d', zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset);
+683                                 }
+684                                 userlist(zombie,Ptr);
+685                                 WriteServ(zombie->fd,'366 %s %s :End of /NAMES list.', zombie->nick, Ptr->name);
+686                                 //WriteServ(zombie->fd,'324 %s %s +%s',zombie->nick, Ptr->name,chanmodes(Ptr));
+687                                 //WriteServ(zombie->fd,'329 %s %s %d', zombie->nick, Ptr->name, Ptr->created);
+688 
+689                         }
+690                 }
+691         }
+692 
+693 }
 .fi
 .SS "void Server::QuitUser (\fBuserrec\fP * user, std::string reason)\fC [virtual]\fP"
 .PP
@@ -842,65 +842,65 @@ Forces a user to quit with the specified reason. To the user, it will appear as
 .PP
 WARNING!
 .PP
-Once you call this function, userrec* user will immediately become INVALID. You MUST NOT write to, or read from this pointer after calling the QuitUser method UNDER ANY CIRCUMSTANCES! The best course of action after calling this method is to immediately bail from your handler.Definition at line 474 of file modules.cpp.
+Once you call this function, userrec* user will immediately become INVALID. You MUST NOT write to, or read from this pointer after calling the QuitUser method UNDER ANY CIRCUMSTANCES! The best course of action after calling this method is to immediately bail from your handler.Definition at line 476 of file modules.cpp.
 .PP
 References userrec::nick, and send_network_quit().
 .PP
 .nf
-475 {
-476         send_network_quit(user->nick,reason.c_str());
-477         kill_link(user,reason.c_str());
-478 }
+477 {
+478         send_network_quit(user->nick,reason.c_str());
+479         kill_link(user,reason.c_str());
+480 }
 .fi
 .SS "void Server::Send (int Socket, std::string s)\fC [virtual]\fP"
 .PP
-Sends a line of text down a TCP/IP socket. This method writes a line of text to an established socket, cutting it to 510 characters plus a carriage return and linefeed if required.Definition at line 505 of file modules.cpp.
+Sends a line of text down a TCP/IP socket. This method writes a line of text to an established socket, cutting it to 510 characters plus a carriage return and linefeed if required.Definition at line 507 of file modules.cpp.
 .PP
 .nf
-506 {
-507         Write(Socket,'%s',s.c_str());
-508 }
+508 {
+509         Write(Socket,'%s',s.c_str());
+510 }
 .fi
 .SS "void Server::SendChannel (\fBuserrec\fP * User, \fBchanrec\fP * Channel, std::string s, bool IncludeSender)\fC [virtual]\fP"
 .PP
-Sends text from a user to a channel (mulicast). This method writes a line of text to a channel, with the given user's nick/ident /host combination prepended, as used in PRIVMSG etc commands (see RFC 1459). If the IncludeSender flag is set, then the text is also sent back to the user from which it originated, as seen in MODE (see RFC 1459).Definition at line 534 of file modules.cpp.
+Sends text from a user to a channel (mulicast). This method writes a line of text to a channel, with the given user's nick/ident /host combination prepended, as used in PRIVMSG etc commands (see RFC 1459). If the IncludeSender flag is set, then the text is also sent back to the user from which it originated, as seen in MODE (see RFC 1459).Definition at line 536 of file modules.cpp.
 .PP
 .nf
-535 {
-536         if (IncludeSender)
-537         {
-538                 WriteChannel(Channel,User,'%s',s.c_str());
-539         }
-540         else
-541         {
-542                 ChanExceptSender(Channel,User,'%s',s.c_str());
-543         }
-544 }
+537 {
+538         if (IncludeSender)
+539         {
+540                 WriteChannel(Channel,User,'%s',s.c_str());
+541         }
+542         else
+543         {
+544                 ChanExceptSender(Channel,User,'%s',s.c_str());
+545         }
+546 }
 .fi
 .SS "void Server::SendCommon (\fBuserrec\fP * User, std::string text, bool IncludeSender)\fC [virtual]\fP"
 .PP
-Sends text from a user to one or more channels (mulicast). This method writes a line of text to all users which share a common channel with a given user, with the user's nick/ident/host combination prepended, as used in PRIVMSG etc commands (see RFC 1459). If the IncludeSender flag is set, then the text is also sent back to the user from which it originated, as seen in NICK (see RFC 1459). Otherwise, it is only sent to the other recipients, as seen in QUIT.Definition at line 551 of file modules.cpp.
+Sends text from a user to one or more channels (mulicast). This method writes a line of text to all users which share a common channel with a given user, with the user's nick/ident/host combination prepended, as used in PRIVMSG etc commands (see RFC 1459). If the IncludeSender flag is set, then the text is also sent back to the user from which it originated, as seen in NICK (see RFC 1459). Otherwise, it is only sent to the other recipients, as seen in QUIT.Definition at line 553 of file modules.cpp.
 .PP
 .nf
-552 {
-553         if (IncludeSender)
-554         {
-555                 WriteCommon(User,'%s',text.c_str());
-556         }
-557         else
-558         {
-559                 WriteCommonExcept(User,'%s',text.c_str());
-560         }
-561 }
+554 {
+555         if (IncludeSender)
+556         {
+557                 WriteCommon(User,'%s',text.c_str());
+558         }
+559         else
+560         {
+561                 WriteCommonExcept(User,'%s',text.c_str());
+562         }
+563 }
 .fi
 .SS "void Server::SendFrom (int Socket, \fBuserrec\fP * User, std::string s)\fC [virtual]\fP"
 .PP
-Sends text from a user to a socket. This method writes a line of text to an established socket, with the given user's nick/ident /host combination prepended, as used in PRIVSG etc commands (see RFC 1459)Definition at line 515 of file modules.cpp.
+Sends text from a user to a socket. This method writes a line of text to an established socket, with the given user's nick/ident /host combination prepended, as used in PRIVSG etc commands (see RFC 1459)Definition at line 517 of file modules.cpp.
 .PP
 .nf
-516 {
-517         WriteFrom(Socket,User,'%s',s.c_str());
-518 }
+518 {
+519         WriteFrom(Socket,User,'%s',s.c_str());
+520 }
 .fi
 .SS "void Server::SendMode (char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
 .PP
@@ -918,32 +918,32 @@ modes[2] = user->nick;
 .PP
 Srv->SendMode(modes,3,user);
 .PP
-The modes will originate from the server where the command was issued, however responses (e.g. numerics) will be sent to the user you provide as the third parameter. You must be sure to get the number of parameters correct in the pcnt parameter otherwise you could leave your server in an unstable state!Definition at line 500 of file modules.cpp.
+The modes will originate from the server where the command was issued, however responses (e.g. numerics) will be sent to the user you provide as the third parameter. You must be sure to get the number of parameters correct in the pcnt parameter otherwise you could leave your server in an unstable state!Definition at line 502 of file modules.cpp.
 .PP
 References server_mode().
 .PP
 .nf
-501 {
-502         server_mode(parameters,pcnt,user);
-503 }
+503 {
+504         server_mode(parameters,pcnt,user);
+505 }
 .fi
 .SS "void Server::SendOpers (std::string s)\fC [virtual]\fP"
 .PP
-Sends text to all opers. This method sends a server notice to all opers with the usermode +s.Definition at line 422 of file modules.cpp.
+Sends text to all opers. This method sends a server notice to all opers with the usermode +s.Definition at line 424 of file modules.cpp.
 .PP
 .nf
-423 {
-424         WriteOpers('%s',s.c_str());
-425 }
+425 {
+426         WriteOpers('%s',s.c_str());
+427 }
 .fi
 .SS "void Server::SendServ (int Socket, std::string s)\fC [virtual]\fP"
 .PP
-Sends text from the server to a socket. This method writes a line of text to an established socket, with the servername prepended as used by numerics (see RFC 1459)Definition at line 510 of file modules.cpp.
+Sends text from the server to a socket. This method writes a line of text to an established socket, with the servername prepended as used by numerics (see RFC 1459)Definition at line 512 of file modules.cpp.
 .PP
 .nf
-511 {
-512         WriteServ(Socket,'%s',s.c_str());
-513 }
+513 {
+514         WriteServ(Socket,'%s',s.c_str());
+515 }
 .fi
 .SS "void Server::SendTo (\fBuserrec\fP * Source, \fBuserrec\fP * Dest, std::string s)\fC [virtual]\fP"
 .PP
@@ -955,23 +955,23 @@ The format will become:
 .PP
 :localserver TEXT
 .PP
-Which is useful for numerics and server notices to single users, etc.Definition at line 520 of file modules.cpp.
+Which is useful for numerics and server notices to single users, etc.Definition at line 522 of file modules.cpp.
 .PP
 References connection::fd.
 .PP
 .nf
-521 {
-522         if (!Source)
-523         {
-524                 // if source is NULL, then the message originates from the local server
-525                 Write(Dest->fd,':%s %s',this->GetServerName().c_str(),s.c_str());
-526         }
-527         else
-528         {
-529                 // otherwise it comes from the user specified
-530                 WriteTo(Source,Dest,'%s',s.c_str());
-531         }
-532 }
+523 {
+524         if (!Source)
+525         {
+526                 // if source is NULL, then the message originates from the local server
+527                 Write(Dest->fd,':%s %s',this->GetServerName().c_str(),s.c_str());
+528         }
+529         else
+530         {
+531                 // otherwise it comes from the user specified
+532                 WriteTo(Source,Dest,'%s',s.c_str());
+533         }
+534 }
 .fi
 .SS "void Server::SendToModeMask (std::string modes, int flags, std::string text)\fC [virtual]\fP"
 .PP
@@ -979,36 +979,36 @@ Sends to all users matching a mode mask You must specify one or more usermodes a
 .PP
 Serv->SendToModeMask('xi', WM_OR, 'm00');
 .PP
-Then the text 'm00' will be sent to all users with EITHER mode x or i. Conversely if you used WM_AND, the user must have both modes set to receive the message.Definition at line 435 of file modules.cpp.
+Then the text 'm00' will be sent to all users with EITHER mode x or i. Conversely if you used WM_AND, the user must have both modes set to receive the message.Definition at line 437 of file modules.cpp.
 .PP
 .nf
-436 {
-437         WriteMode(modes.c_str(),flags,'%s',text.c_str());
-438 }
+438 {
+439         WriteMode(modes.c_str(),flags,'%s',text.c_str());
+440 }
 .fi
 .SS "void Server::SendWallops (\fBuserrec\fP * User, std::string text)\fC [virtual]\fP"
 .PP
-Sends a WALLOPS message. This method writes a WALLOPS message to all users with the +w flag, originating from the specified user.Definition at line 563 of file modules.cpp.
+Sends a WALLOPS message. This method writes a WALLOPS message to all users with the +w flag, originating from the specified user.Definition at line 565 of file modules.cpp.
 .PP
 .nf
-564 {
-565         WriteWallOps(User,false,'%s',text.c_str());
-566 }
+566 {
+567         WriteWallOps(User,false,'%s',text.c_str());
+568 }
 .fi
 .SS "bool Server::UserToPseudo (\fBuserrec\fP * user, std::string message)\fC [virtual]\fP"
 .PP
-Remove a user's connection to the irc server, but leave their client in existence in the user hash. When you call this function, the user's file descriptor will be replaced with the value of FD_MAGIC_NUMBER and their old file descriptor will be closed. This idle client will remain until it is restored with a valid file descriptor, or is removed from IRC by an operator After this call, the pointer to user will be invalid.Definition at line 654 of file modules.cpp.
+Remove a user's connection to the irc server, but leave their client in existence in the user hash. When you call this function, the user's file descriptor will be replaced with the value of FD_MAGIC_NUMBER and their old file descriptor will be closed. This idle client will remain until it is restored with a valid file descriptor, or is removed from IRC by an operator After this call, the pointer to user will be invalid.Definition at line 656 of file modules.cpp.
 .PP
 References connection::fd, FD_MAGIC_NUMBER, connection::host, and userrec::ident.
 .PP
 .nf
-655 {
-656         unsigned int old_fd = user->fd;
-657         user->fd = FD_MAGIC_NUMBER;
-658         Write(old_fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,message.c_str());
-659         close(old_fd);
-660         shutdown (old_fd,2);
-661 }
+657 {
+658         unsigned int old_fd = user->fd;
+659         user->fd = FD_MAGIC_NUMBER;
+660         Write(old_fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,message.c_str());
+661         close(old_fd);
+662         shutdown (old_fd,2);
+663 }
 .fi
 
 
index 1c6c044053e1667c29f14e4bd3619a9c3340ecf3..bcdf741246c7e8dc5f6d873dc9b335e84d4cf10a 100644 (file)
@@ -1,4 +1,4 @@
-.TH "StrHashComp" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "StrHashComp" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 245c2b1840ffdd23788cab5889ed0278c1c7a507..2c0ed2ead952f3c92bc37bb703d22d62376b32d3 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Version" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "Version" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index cb8a54538f083faa1c2b9f47762ed11d9055e8e4..caad829bc37caec1c037146284a7c91d02df0b14 100644 (file)
@@ -1,4 +1,4 @@
-.TH "XLine" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "XLine" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 3ce871a9471923f553611db6f634a2b13a849e61..e350adf0e45ea1a80d479a48b68129bd1ff76238 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ZLine" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "ZLine" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 5d513596eabbf02bbaabee241f8890c8525dccce..bceb6d795f137b7b88ae8926643fcddaa68b2b00 100644 (file)
@@ -1,4 +1,4 @@
-.TH "base.h" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "base.h" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index cba651bbc7e6d286e2ff6c959bc8e20666772eeb..c1cbe6acbd27ccd05f7d26ae06545900d1dee07a 100644 (file)
@@ -1,4 +1,4 @@
-.TH "channels.cpp" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "channels.cpp" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -271,7 +271,7 @@ Definition at line 88 of file channels.cpp.
 Definition at line 103 of file channels.cpp.
 .SS "int \fBMODCOUNT\fP = -1"
 .PP
-Definition at line 1030 of file modules.cpp.
+Definition at line 1032 of file modules.cpp.
 .PP
 Referenced by Server::FindModule().
 .SS "std::vector<std::string> \fBmodule_names\fP"
index 028883c6de95b5b4a2fd8cc7a9e2a83b8f34d4fb..5d6c7051e6ddd0a838e8fdb731ced8b2569b3fa0 100644 (file)
@@ -1,4 +1,4 @@
-.TH "channels.h" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "channels.h" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -88,19 +88,19 @@ channels.h \-
 .PP 
 .SS "#define UCMODE_FOUNDER   16"
 .PP
-Definition at line 195 of file channels.h.
+Definition at line 250 of file channels.h.
 .SS "#define UCMODE_HOP   4"
 .PP
-Definition at line 193 of file channels.h.
+Definition at line 248 of file channels.h.
 .SS "#define UCMODE_OP   1"
 .PP
-Definition at line 191 of file channels.h.
+Definition at line 246 of file channels.h.
 .SS "#define UCMODE_PROTECT   8"
 .PP
-Definition at line 194 of file channels.h.
+Definition at line 249 of file channels.h.
 .SS "#define UCMODE_VOICE   2"
 .PP
-Definition at line 192 of file channels.h.
+Definition at line 247 of file channels.h.
 .SH "Typedef Documentation"
 .PP 
 .SS "typedef std::vector<\fBBanItem\fP> \fBBanList\fP"
index 5c9d0d9c4718ddab5579ccb1611176da4162f918..80b5db18dabb979fb201ea8ec62bed16ffd126b9 100644 (file)
@@ -1,4 +1,4 @@
-.TH "chanrec" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "chanrec" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -32,6 +32,30 @@ Inherits \fBExtensible\fP.
 .br
 .RI "\fIReturns the parameter for a custom mode on a channel. \fP"
 .ti -1c
+.RI "void \fBIncUserCounter\fP ()"
+.br
+.RI "\fIIncrement the channel 'user counter' The channel user counter is a reference counter which holds the number of users on the channel. \fP"
+.ti -1c
+.RI "void \fBDecUserCounter\fP ()"
+.br
+.RI "\fIDecrement the channel 'user counter' The channel user counter is a reference counter which holds the number of users on the channel. \fP"
+.ti -1c
+.RI "long \fBGetUserCounter\fP ()"
+.br
+.RI "\fIObtain the channel 'user counter' This returns the channel reference counter, which is initialized to 0 when the channel is created and incremented/decremented upon joins, parts quits and kicks. \fP"
+.ti -1c
+.RI "void \fBAddUser\fP (char *castuser)"
+.br
+.RI "\fIAdd a user pointer to the internal reference list The data inserted into the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. \fP"
+.ti -1c
+.RI "void \fBDelUser\fP (char *castuser)"
+.br
+.RI "\fIDelete a user pointer to the internal reference list The data removed from the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. \fP"
+.ti -1c
+.RI "std::vector< char * > * \fBGetUsers\fP ()"
+.br
+.RI "\fIObrain the internal reference list The internal reference list contains a list of userrec* cast to char*. \fP"
+.ti -1c
 .RI "\fBchanrec\fP ()"
 .br
 .RI "\fICreates a channel record and initialises it with default values. \fP"
@@ -51,6 +75,14 @@ Inherits \fBExtensible\fP.
 .br
 .RI "\fICustom modes for the channel. \fP"
 .ti -1c
+.RI "long \fBusers\fP"
+.br
+.RI "\fICount of users on the channel used for fast user counting. \fP"
+.ti -1c
+.RI "std::vector< char * > \fBinternal_userlist\fP"
+.br
+.RI "\fIUser list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!). \fP"
+.ti -1c
 .RI "char \fBtopic\fP [MAXBUF]"
 .br
 .RI "\fIChannel topic. \fP"
@@ -116,7 +148,7 @@ Definition at line 94 of file channels.h.
 .PP
 Creates a channel record and initialises it with default values. Definition at line 113 of file channels.cpp.
 .PP
-References c_private, created, custom_modes, inviteonly, key, limit, moderated, name, noexternal, secret, setby, topic, topiclock, and topicset.
+References c_private, created, custom_modes, internal_userlist, inviteonly, key, limit, moderated, name, noexternal, secret, setby, topic, topiclock, topicset, and users.
 .PP
 .nf
 114 {
@@ -125,134 +157,214 @@ References c_private, created, custom_modes, inviteonly, key, limit, moderated,
 117         strcpy(topic,'');
 118         strcpy(setby,'');
 119         strcpy(key,'');
-120         created = topicset = limit = 0;
+120         created = topicset = limit = users = 0;
 121         topiclock = noexternal = inviteonly = moderated = secret = c_private = false;
-122 }
+122         internal_userlist.clear();
+123 }
 .fi
 .SS "virtual chanrec::~\fBchanrec\fP ()\fC [inline, virtual]\fP"
 .PP
-Definition at line 185 of file channels.h.
+Definition at line 240 of file channels.h.
 .PP
 .nf
-185 { /* stub */ }
+240 { /* stub */ }
 .fi
 .SH "Member Function Documentation"
 .PP 
+.SS "void chanrec::AddUser (char * castuser)"
+.PP
+Add a user pointer to the internal reference list The data inserted into the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. Definition at line 220 of file channels.cpp.
+.PP
+References DEBUG, and internal_userlist.
+.PP
+.nf
+221 {
+222         internal_userlist.push_back(castuser);
+223         log(DEBUG,'Added casted user to channel's internal list');
+224 }
+.fi
+.SS "void chanrec::DecUserCounter ()"
+.PP
+Decrement the channel 'user counter' The channel user counter is a reference counter which holds the number of users on the channel. If it decremented to 0 then the channel is removed from the system. Modules may alter the reference count to hold channels open which have no users and would normally be deleted once empty.Definition at line 208 of file channels.cpp.
+.PP
+References DEBUG, name, and users.
+.PP
+.nf
+209 {
+210         if (this->users > 0)
+211                 this->users--;
+212         log(DEBUG,'Decremented channel user count for %s to %lu',name,(unsigned long)users);
+213 }
+.fi
+.SS "void chanrec::DelUser (char * castuser)"
+.PP
+Delete a user pointer to the internal reference list The data removed from the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. Definition at line 226 of file channels.cpp.
+.PP
+References DEBUG, internal_userlist, and name.
+.PP
+.nf
+227 {
+228         for (std::vector<char*>::iterator a = internal_userlist.begin(); a < internal_userlist.end(); a++)
+229         {
+230                 if (*a == castuser)
+231                 {
+232                         log(DEBUG,'Removed casted user from channel's internal list');
+233                         internal_userlist.erase(a);
+234                         return;
+235                 }
+236         }
+237         log(DEBUG,'BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!',name);
+238 }
+.fi
 .SS "std::string chanrec::GetModeParameter (char mode)"
 .PP
-Returns the parameter for a custom mode on a channel. For example if '+L #foo' is set, and you pass this method 'L', it will return '#foo'. If the mode is not set on the channel, or the mode has no parameters associated with it, it will return an empty string.Definition at line 186 of file channels.cpp.
+Returns the parameter for a custom mode on a channel. For example if '+L #foo' is set, and you pass this method 'L', it will return '#foo'. If the mode is not set on the channel, or the mode has no parameters associated with it, it will return an empty string.Definition at line 187 of file channels.cpp.
 .PP
 References custom_mode_params.
 .PP
 .nf
-187 {
-188         if (custom_mode_params.size())
-189         {
-190                 for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
-191                 {
-192                         if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
-193                         {
-194                                 return std::string(i->parameter);
-195                         }
-196                 }
-197         }
-198         return std::string('');
-199 }
+188 {
+189         if (custom_mode_params.size())
+190         {
+191                 for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
+192                 {
+193                         if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
+194                         {
+195                                 return std::string(i->parameter);
+196                         }
+197                 }
+198         }
+199         return std::string('');
+200 }
+.fi
+.SS "long chanrec::GetUserCounter ()"
+.PP
+Obtain the channel 'user counter' This returns the channel reference counter, which is initialized to 0 when the channel is created and incremented/decremented upon joins, parts quits and kicks. Definition at line 215 of file channels.cpp.
+.PP
+References users.
+.PP
+.nf
+216 {
+217         return (this->users);
+218 }
+.fi
+.SS "std::vector< char * > * chanrec::GetUsers ()"
+.PP
+Obrain the internal reference list The internal reference list contains a list of userrec* cast to char*. These are used for rapid comparison to determine channel membership for PRIVMSG, NOTICE, QUIT, PART etc. The resulting pointer to the vector should be considered readonly and only modified via AddUser and DelUser.Definition at line 240 of file channels.cpp.
+.PP
+References internal_userlist.
+.PP
+.nf
+241 {
+242         return &internal_userlist;
+243 }
+.fi
+.SS "void chanrec::IncUserCounter ()"
+.PP
+Increment the channel 'user counter' The channel user counter is a reference counter which holds the number of users on the channel. If it decremented to 0 then the channel is removed from the system.Definition at line 202 of file channels.cpp.
+.PP
+References DEBUG, name, and users.
+.PP
+.nf
+203 {
+204         this->users++;
+205         log(DEBUG,'Incremented channel user count for %s to %lu',name,(unsigned long)users);
+206 }
 .fi
 .SS "bool chanrec::IsCustomModeSet (char mode)"
 .PP
-Returns true if a custom mode is set on a channel. Definition at line 180 of file channels.cpp.
+Returns true if a custom mode is set on a channel. Definition at line 181 of file channels.cpp.
 .PP
 References DEBUG.
 .PP
 .nf
-181 {
-182         log(DEBUG,'Checking ISCustomModeSet: %c %s',mode,this->custom_modes);
-183         return (strchr(this->custom_modes,mode) != 0);
-184 }
+182 {
+183         log(DEBUG,'Checking ISCustomModeSet: %c %s',mode,this->custom_modes);
+184         return (strchr(this->custom_modes,mode) != 0);
+185 }
 .fi
 .SS "void chanrec::SetCustomMode (char mode, bool mode_on)"
 .PP
-Sets or unsets a custom mode in the channels info. Definition at line 124 of file channels.cpp.
+Sets or unsets a custom mode in the channels info. Definition at line 125 of file channels.cpp.
 .PP
 References custom_modes, DEBUG, and SetCustomModeParam().
 .PP
 .nf
-125 {
-126         if (mode_on) {
-127                 char m[3];
-128                 m[0] = mode;
-129                 m[1] = '\0';
-130                 if (!strchr(this->custom_modes,mode))
-131                 {
-132                         strlcat(custom_modes,m,MAXMODES);
-133                 }
-134                 log(DEBUG,'Custom mode %c set',mode);
-135         }
-136         else {
-137 
-138                 std::string a = this->custom_modes;
-139                 int pos = a.find(mode);
-140                 a.erase(pos,1);
-141                 strncpy(this->custom_modes,a.c_str(),MAXMODES);
-142 
-143                 log(DEBUG,'Custom mode %c removed: modelist='%s'',mode,this->custom_modes);
-144                 this->SetCustomModeParam(mode,'',false);
-145         }
-146 }
+126 {
+127         if (mode_on) {
+128                 char m[3];
+129                 m[0] = mode;
+130                 m[1] = '\0';
+131                 if (!strchr(this->custom_modes,mode))
+132                 {
+133                         strlcat(custom_modes,m,MAXMODES);
+134                 }
+135                 log(DEBUG,'Custom mode %c set',mode);
+136         }
+137         else {
+138 
+139                 std::string a = this->custom_modes;
+140                 int pos = a.find(mode);
+141                 a.erase(pos,1);
+142                 strncpy(this->custom_modes,a.c_str(),MAXMODES);
+143 
+144                 log(DEBUG,'Custom mode %c removed: modelist='%s'',mode,this->custom_modes);
+145                 this->SetCustomModeParam(mode,'',false);
+146         }
+147 }
 .fi
 .SS "void chanrec::SetCustomModeParam (char mode, char * parameter, bool mode_on)"
 .PP
-Sets or unsets the parameters for a custom mode in a channels info. Definition at line 149 of file channels.cpp.
+Sets or unsets the parameters for a custom mode in a channels info. Definition at line 150 of file channels.cpp.
 .PP
 References ModeParameter::channel, custom_mode_params, DEBUG, ModeParameter::mode, and ModeParameter::parameter.
 .PP
 Referenced by SetCustomMode().
 .PP
 .nf
-150 {
-151 
-152         log(DEBUG,'SetCustomModeParam called');
-153         ModeParameter M;
-154         M.mode = mode;
-155         strlcpy(M.channel,this->name,CHANMAX);
-156         strlcpy(M.parameter,parameter,MAXBUF);
-157         if (mode_on)
-158         {
-159                 log(DEBUG,'Custom mode parameter %c %s added',mode,parameter);
-160                 custom_mode_params.push_back(M);
-161         }
-162         else
-163         {
-164                 if (custom_mode_params.size())
-165                 {
-166                         for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
-167                         {
-168                                 if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
-169                                 {
-170                                         log(DEBUG,'Custom mode parameter %c %s removed',mode,parameter);
-171                                         custom_mode_params.erase(i);
-172                                         return;
-173                                 }
-174                         }
-175                 }
-176                 log(DEBUG,'*** BUG *** Attempt to remove non-existent mode parameter!');
-177         }
-178 }
+151 {
+152 
+153         log(DEBUG,'SetCustomModeParam called');
+154         ModeParameter M;
+155         M.mode = mode;
+156         strlcpy(M.channel,this->name,CHANMAX);
+157         strlcpy(M.parameter,parameter,MAXBUF);
+158         if (mode_on)
+159         {
+160                 log(DEBUG,'Custom mode parameter %c %s added',mode,parameter);
+161                 custom_mode_params.push_back(M);
+162         }
+163         else
+164         {
+165                 if (custom_mode_params.size())
+166                 {
+167                         for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
+168                         {
+169                                 if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
+170                                 {
+171                                         log(DEBUG,'Custom mode parameter %c %s removed',mode,parameter);
+172                                         custom_mode_params.erase(i);
+173                                         return;
+174                                 }
+175                         }
+176                 }
+177                 log(DEBUG,'*** BUG *** Attempt to remove non-existent mode parameter!');
+178         }
+179 }
 .fi
 .SH "Member Data Documentation"
 .PP 
 .SS "\fBBanList\fP \fBchanrec::bans\fP"
 .PP
-The list of all bans set on the channel. Definition at line 159 of file channels.h.
+The list of all bans set on the channel. Definition at line 168 of file channels.h.
 .SS "short int \fBchanrec::c_private\fP"
 .PP
-Nonzero if the mode +p is set. This value cannot be set at the same time as \fBchanrec::secret\fPDefinition at line 155 of file channels.h.
+Nonzero if the mode +p is set. This value cannot be set at the same time as \fBchanrec::secret\fPDefinition at line 164 of file channels.h.
 .PP
 Referenced by chanrec().
 .SS "time_t \fBchanrec::created\fP"
 .PP
-Creation time. Definition at line 111 of file channels.h.
+Creation time. Definition at line 120 of file channels.h.
 .PP
 Referenced by chanrec().
 .SS "char \fBchanrec::custom_modes\fP[MAXMODES]"
@@ -260,61 +372,71 @@ Referenced by chanrec().
 Custom modes for the channel. Plugins may use this field in any way they see fit.Definition at line 103 of file channels.h.
 .PP
 Referenced by chanrec(), and SetCustomMode().
+.SS "std::vector<char*> \fBchanrec::internal_userlist\fP"
+.PP
+User list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!). Definition at line 112 of file channels.h.
+.PP
+Referenced by AddUser(), chanrec(), DelUser(), and GetUsers().
 .SS "short int \fBchanrec::inviteonly\fP"
 .PP
-Nonzero if the mode +i is set. Definition at line 141 of file channels.h.
+Nonzero if the mode +i is set. Definition at line 150 of file channels.h.
 .PP
 Referenced by chanrec().
 .SS "char \fBchanrec::key\fP[32]"
 .PP
-Contains the channel key. If this value is an empty string, there is no channel key in place.Definition at line 129 of file channels.h.
+Contains the channel key. If this value is an empty string, there is no channel key in place.Definition at line 138 of file channels.h.
 .PP
 Referenced by chanrec().
 .SS "long \fBchanrec::limit\fP"
 .PP
-Contains the channel user limit. If this value is zero, there is no limit in place.Definition at line 124 of file channels.h.
+Contains the channel user limit. If this value is zero, there is no limit in place.Definition at line 133 of file channels.h.
 .PP
 Referenced by chanrec().
 .SS "short int \fBchanrec::moderated\fP"
 .PP
-Nonzero if the mode +m is set. Definition at line 145 of file channels.h.
+Nonzero if the mode +m is set. Definition at line 154 of file channels.h.
 .PP
 Referenced by chanrec().
 .SS "char \fBchanrec::name\fP[CHANMAX]"
 .PP
 The channels name. Definition at line 99 of file channels.h.
 .PP
-Referenced by chanrec(), and Server::PseudoToUser().
+Referenced by chanrec(), DecUserCounter(), DelUser(), IncUserCounter(), and Server::PseudoToUser().
 .SS "short int \fBchanrec::noexternal\fP"
 .PP
-Nonzero if the mode +n is set. Definition at line 137 of file channels.h.
+Nonzero if the mode +n is set. Definition at line 146 of file channels.h.
 .PP
 Referenced by chanrec().
 .SS "short int \fBchanrec::secret\fP"
 .PP
-Nonzero if the mode +s is set. This value cannot be set at the same time as \fBchanrec::c_private\fPDefinition at line 150 of file channels.h.
+Nonzero if the mode +s is set. This value cannot be set at the same time as \fBchanrec::c_private\fPDefinition at line 159 of file channels.h.
 .PP
 Referenced by chanrec().
 .SS "char \fBchanrec::setby\fP[NICKMAX]"
 .PP
-The last user to set the topic. If this member is an empty string, no topic was ever set.Definition at line 119 of file channels.h.
+The last user to set the topic. If this member is an empty string, no topic was ever set.Definition at line 128 of file channels.h.
 .PP
 Referenced by chanrec(), and Server::PseudoToUser().
 .SS "char \fBchanrec::topic\fP[MAXBUF]"
 .PP
-Channel topic. If this is an empty string, no channel topic is set.Definition at line 108 of file channels.h.
+Channel topic. If this is an empty string, no channel topic is set.Definition at line 117 of file channels.h.
 .PP
 Referenced by chanrec(), and Server::PseudoToUser().
 .SS "short int \fBchanrec::topiclock\fP"
 .PP
-Nonzero if the mode +t is set. Definition at line 133 of file channels.h.
+Nonzero if the mode +t is set. Definition at line 142 of file channels.h.
 .PP
 Referenced by chanrec().
 .SS "time_t \fBchanrec::topicset\fP"
 .PP
-Time topic was set. If no topic was ever set, this will be equal to \fBchanrec::created\fPDefinition at line 115 of file channels.h.
+Time topic was set. If no topic was ever set, this will be equal to \fBchanrec::created\fPDefinition at line 124 of file channels.h.
 .PP
 Referenced by chanrec(), and Server::PseudoToUser().
+.SS "long \fBchanrec::users\fP"
+.PP
+Count of users on the channel used for fast user counting. Definition at line 107 of file channels.h.
+.PP
+Referenced by chanrec(), DecUserCounter(), GetUserCounter(), and IncUserCounter().
 
 .SH "Author"
 .PP 
index a8299e1f5837c894b930339f7fb2668158d697ea..aa5dbd61e8f717bda8b000003552bd1ada55f64e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "classbase" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "classbase" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index ba965234c1a754ed3387185be29bf9781c0e6dcb..b826865e61363e637c1c65a8bb92b3eebd55fcea 100644 (file)
@@ -1,4 +1,4 @@
-.TH "command_t" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "command_t" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 27fa66676e8c3e9a8f19018b3c5230baed5c3aca..7f72427e75b4fff87482f0e4aee13cb37278ec71 100644 (file)
@@ -1,4 +1,4 @@
-.TH "commands.h" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "commands.h" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index d1e4e7e63c68482323d87f66ee3594125ec3dc07..ca2a699519125316d3a3e0087ff4ccd409a715e9 100644 (file)
@@ -1,4 +1,4 @@
-.TH "connection" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "connection" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -30,7 +30,7 @@ Inherited by \fBserverrec\fP, and \fBuserrec\fP.
 .br
 .RI "\fIBegin an outbound link to another ircd at targethost. \fP"
 .ti -1c
-.RI "bool \fBMeshCookie\fP (char *targethost, int \fBport\fP, long cookie, char *servername)"
+.RI "bool \fBMeshCookie\fP (char *targethost, int \fBport\fP, unsigned long cookie, char *servername)"
 .br
 .RI "\fIBegin an outbound mesh link to another ircd on a network you are already an authenticated member of. \fP"
 .ti -1c
@@ -140,7 +140,7 @@ Inherited by \fBserverrec\fP, and \fBuserrec\fP.
 .in -1c
 .SH "Detailed Description"
 .PP 
-Please note: classes serverrec and userrec both inherit from class connection. Definition at line 166 of file connection.h.
+Please note: classes serverrec and userrec both inherit from class connection. Definition at line 178 of file connection.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "connection::connection ()"
@@ -163,7 +163,7 @@ Find the \fBircd_connector\fP oject related to a certain servername given in 'ho
 .SS "long connection::GenKey ()"
 .PP
 This function is deprecated and may be removed in a later alpha/beta. 
-.SS "bool connection::MeshCookie (char * targethost, int port, long cookie, char * servername)"
+.SS "bool connection::MeshCookie (char * targethost, int port, unsigned long cookie, char * servername)"
 .PP
 Begin an outbound mesh link to another ircd on a network you are already an authenticated member of. 
 .SS "bool connection::RecvPacket (std::deque< std::string > & messages, char * host)"
@@ -179,91 +179,91 @@ Terminate a link to 'targethost' by calling the \fBircd_connector::CloseConnecti
 .PP 
 .SS "long \fBconnection::bytes_in\fP"
 .PP
-Stats counter for bytes inbound. Definition at line 187 of file connection.h.
+Stats counter for bytes inbound. Definition at line 199 of file connection.h.
 .PP
 Referenced by userrec::userrec().
 .SS "long \fBconnection::bytes_out\fP"
 .PP
-Stats counter for bytes outbound. Definition at line 191 of file connection.h.
+Stats counter for bytes outbound. Definition at line 203 of file connection.h.
 .PP
 Referenced by userrec::userrec().
 .SS "long \fBconnection::cmds_in\fP"
 .PP
-Stats counter for commands inbound. Definition at line 195 of file connection.h.
+Stats counter for commands inbound. Definition at line 207 of file connection.h.
 .PP
 Referenced by userrec::userrec().
 .SS "long \fBconnection::cmds_out\fP"
 .PP
-Stats counter for commands outbound. Definition at line 199 of file connection.h.
+Stats counter for commands outbound. Definition at line 211 of file connection.h.
 .PP
 Referenced by userrec::userrec().
 .SS "std::vector<\fBircd_connector\fP> \fBconnection::connectors\fP"
 .PP
-With a serverrec, this is a list of all established server connections. With a userrec this is unused.Definition at line 246 of file connection.h.
+With a serverrec, this is a list of all established server connections. With a userrec this is unused.Definition at line 258 of file connection.h.
 .SS "int \fBconnection::fd\fP"
 .PP
-File descriptor of the connection. Definition at line 171 of file connection.h.
+File descriptor of the connection. Definition at line 183 of file connection.h.
 .PP
 Referenced by ConfigReader::DumpErrors(), Server::PseudoToUser(), Server::SendTo(), serverrec::serverrec(), userrec::userrec(), and Server::UserToPseudo().
 .SS "bool \fBconnection::haspassed\fP"
 .PP
-True if server/user has authenticated, false if otherwise. Definition at line 203 of file connection.h.
+True if server/user has authenticated, false if otherwise. Definition at line 215 of file connection.h.
 .PP
 Referenced by userrec::userrec().
 .SS "char \fBconnection::host\fP[256]"
 .PP
-Hostname of connection. Not used if this is a serverrecDefinition at line 175 of file connection.h.
+Hostname of connection. Not used if this is a serverrecDefinition at line 187 of file connection.h.
 .PP
 Referenced by userrec::GetFullRealHost(), Server::PseudoToUser(), userrec::userrec(), and Server::UserToPseudo().
 .SS "time_t \fBconnection::idle_lastmsg\fP"
 .PP
-Time that the connection last sent data, used to calculate idle time. Definition at line 229 of file connection.h.
+Time that the connection last sent data, used to calculate idle time. Definition at line 241 of file connection.h.
 .PP
 Referenced by userrec::userrec().
 .SS "char \fBconnection::inbuf\fP[MAXBUF]"
 .PP
-Inbuf of connection. Only used for userrecDefinition at line 183 of file connection.h.
+Inbuf of connection. Only used for userrecDefinition at line 195 of file connection.h.
 .PP
 Referenced by userrec::userrec().
 .SS "char \fBconnection::internal_addr\fP[MAXBUF]"
 .PP
-Unused, will be removed in a future alpha/beta. Definition at line 237 of file connection.h.
+Unused, will be removed in a future alpha/beta. Definition at line 249 of file connection.h.
 .SS "int \fBconnection::internal_port\fP"
 .PP
-Unused, will be removed in a future alpha/beta. Definition at line 241 of file connection.h.
+Unused, will be removed in a future alpha/beta. Definition at line 253 of file connection.h.
 .SS "char \fBconnection::ip\fP[32]"
 .PP
-IP of connection. Reserved for future use.Definition at line 179 of file connection.h.
+IP of connection. Reserved for future use.Definition at line 191 of file connection.h.
 .PP
 Referenced by userrec::userrec().
 .SS "time_t \fBconnection::lastping\fP"
 .PP
-Time the connection was last pinged. Definition at line 221 of file connection.h.
+Time the connection was last pinged. Definition at line 233 of file connection.h.
 .PP
 Referenced by serverrec::serverrec(), and userrec::userrec().
 .SS "time_t \fBconnection::nping\fP"
 .PP
-Used by PING checks with clients. Definition at line 233 of file connection.h.
+Used by PING checks with clients. Definition at line 245 of file connection.h.
 .PP
 Referenced by userrec::userrec().
 .SS "int \fBconnection::port\fP"
 .PP
-Port number For a userrec, this is the port they connected to the network on. For a serverrec this is the current listening port of the serverrec object.Definition at line 209 of file connection.h.
+Port number For a userrec, this is the port they connected to the network on. For a serverrec this is the current listening port of the serverrec object.Definition at line 221 of file connection.h.
 .PP
 Referenced by userrec::userrec().
 .SS "int \fBconnection::registered\fP"
 .PP
-Used by userrec to indicate the registration status of the connection. Definition at line 213 of file connection.h.
+Used by userrec to indicate the registration status of the connection. Definition at line 225 of file connection.h.
 .PP
 Referenced by userrec::userrec().
 .SS "time_t \fBconnection::signon\fP"
 .PP
-Time the connection was created, set in the constructor. Definition at line 225 of file connection.h.
+Time the connection was created, set in the constructor. Definition at line 237 of file connection.h.
 .PP
 Referenced by serverrec::serverrec(), and userrec::userrec().
 .SS "short int \fBconnection::state\fP"
 .PP
-Reserved for future use. Definition at line 217 of file connection.h.
+Reserved for future use. Definition at line 229 of file connection.h.
 
 .SH "Author"
 .PP 
index e57b5cedeb60060e5a539c4f413e7e0d058db23b..b0d6374fcd8fe900c15908370a2c8f5700a00e78 100644 (file)
@@ -1,4 +1,4 @@
-.TH "connection.h" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "connection.h" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -32,6 +32,8 @@ connection.h \-
 .br
 \fC#include <deque>\fP
 .br
+\fC#include <sstream>\fP
+.br
 
 .SS "Compounds"
 
@@ -71,22 +73,22 @@ connection.h \-
 .PP 
 .SS "#define STATE_CONNECTED   1"
 .PP
-Definition at line 35 of file connection.h.
+Definition at line 36 of file connection.h.
 .SS "#define STATE_DISCONNECTED   0"
 .PP
-Definition at line 34 of file connection.h.
+Definition at line 35 of file connection.h.
 .SS "#define STATE_NOAUTH_INBOUND   3"
 .PP
-Definition at line 37 of file connection.h.
+Definition at line 38 of file connection.h.
 .SS "#define STATE_NOAUTH_OUTBOUND   4"
 .PP
-Definition at line 38 of file connection.h.
+Definition at line 39 of file connection.h.
 .SS "#define STATE_SERVICES   5"
 .PP
-Definition at line 39 of file connection.h.
+Definition at line 40 of file connection.h.
 .SS "#define STATE_SYNC   2"
 .PP
-Definition at line 36 of file connection.h.
+Definition at line 37 of file connection.h.
 .SH "Author"
 .PP 
 Generated automatically by Doxygen for InspIRCd from the source code.
index cf8d86cc371afc1ae9246b5d09dbec03443c2d24..6541dbb1ad4ce9ccdfabd56f01c3d90429995a4b 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ctables.h" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "ctables.h" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 508f04cff1f78871cc8a6f6ebfccbb1b5203da0e..3b715519478cd81fb10f62d8dc0b4b69dac344d8 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dns.h" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "dns.h" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 756ce99dfb4970999784fb0bf7c779ca0e1ef22a..f850d584a23594cbe680bb51938c312a20edbdce 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dns_ip4list" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "dns_ip4list" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 9a47718e034bd860650c602fee054669b389c8d9..5c9e3016b28038c3e14616b8784a124c99cb6e30 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ircd_connector" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "ircd_connector" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -16,7 +16,7 @@ Inherits \fBExtensible\fP.
 
 .in +1c
 .ti -1c
-.RI "bool \fBMakeOutboundConnection\fP (char *\fBhost\fP, int \fBport\fP)"
+.RI "bool \fBMakeOutboundConnection\fP (char *newhost, int newport)"
 .br
 .RI "\fICreate an outbound connection to a listening socket. \fP"
 .ti -1c
@@ -64,18 +64,34 @@ Inherits \fBExtensible\fP.
 .br
 .RI "\fISet the port used by this connection. \fP"
 .ti -1c
-.RI "bool \fBSetHostAndPort\fP (char *\fBhost\fP, int \fBport\fP)"
+.RI "bool \fBSetHostAndPort\fP (char *newhost, int newport)"
 .br
 .RI "\fISet both the host and the port in one operation for this connection. \fP"
 .ti -1c
 .RI "void \fBCloseConnection\fP ()"
 .br
 .RI "\fIClose the connection by calling close() on its file descriptor This function call updates no other data. \fP"
+.ti -1c
+.RI "void \fBAddBuffer\fP (std::string a)"
+.br
+.ti -1c
+.RI "bool \fBBufferIsComplete\fP ()"
+.br
+.ti -1c
+.RI "void \fBClearBuffer\fP ()"
+.br
+.ti -1c
+.RI "std::string \fBGetBuffer\fP ()"
+.br
 .in -1c
 .SS "Public Attributes"
 
 .in +1c
 .ti -1c
+.RI "std::string \fBircdbuffer\fP"
+.br
+.RI "\fIIRCD Buffer for input characters, holds one line. \fP"
+.ti -1c
 .RI "char \fBhost\fP [MAXBUF]"
 .br
 .RI "\fIWhen MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. \fP"
@@ -126,12 +142,20 @@ Each connection has one or more of these each represents ONE outbound connection
 
 A listening socket that accepts server type connections is represented by one class serverrec. Class serverrec will instantiate several objects of type ircd_connector to represent each established connection, inbound or outbound. So, to determine all linked servers you must walk through all the serverrecs that the core defines, and in each one iterate through until you find connection(s) relating to the server you want information on. The core and module API provide functions for this. 
 .PP
-Definition at line 53 of file connection.h.
+Definition at line 54 of file connection.h.
 .SH "Member Function Documentation"
 .PP 
+.SS "void ircd_connector::AddBuffer (std::string a)"
+.PP
+.SS "bool ircd_connector::BufferIsComplete ()"
+.PP
+.SS "void ircd_connector::ClearBuffer ()"
+.PP
 .SS "void ircd_connector::CloseConnection ()"
 .PP
 Close the connection by calling close() on its file descriptor This function call updates no other data. 
+.SS "std::string ircd_connector::GetBuffer ()"
+.PP
 .SS "std::string ircd_connector::GetDescription ()"
 .PP
 Get the server description of this connection. 
@@ -150,7 +174,7 @@ Get the port number being used for this connection If the connection is outbound
 .SS "int ircd_connector::GetState ()"
 .PP
 Get the state flags for this connection. 
-.SS "bool ircd_connector::MakeOutboundConnection (char * host, int port)"
+.SS "bool ircd_connector::MakeOutboundConnection (char * newhost, int newport)"
 .PP
 Create an outbound connection to a listening socket. 
 .SS "void ircd_connector::SetDescription (std::string desc)"
@@ -162,7 +186,7 @@ Set the file descriptor for this connection.
 .SS "bool ircd_connector::SetHostAddress (char * host, int port)\fC [private]\fP"
 .PP
 PRIVATE function to set the host address and port to connect to. 
-.SS "bool ircd_connector::SetHostAndPort (char * host, int port)"
+.SS "bool ircd_connector::SetHostAndPort (char * newhost, int newport)"
 .PP
 Set both the host and the port in one operation for this connection. 
 .SS "void ircd_connector::SetServerName (std::string serv)"
@@ -178,28 +202,31 @@ Set the state flags for this connection.
 .PP 
 .SS "sockaddr_in \fBircd_connector::addr\fP\fC [private]\fP"
 .PP
-Sockaddr of the outbound ip and port. Definition at line 58 of file connection.h.
+Sockaddr of the outbound ip and port. Definition at line 59 of file connection.h.
 .SS "std::string \fBircd_connector::description\fP\fC [private]\fP"
 .PP
-\fBServer\fP 'GECOS'. Definition at line 70 of file connection.h.
+\fBServer\fP 'GECOS'. Definition at line 71 of file connection.h.
 .SS "int \fBircd_connector::fd\fP\fC [private]\fP"
 .PP
-File descriptor of the connection. Definition at line 62 of file connection.h.
+File descriptor of the connection. Definition at line 63 of file connection.h.
 .SS "char \fBircd_connector::host\fP[MAXBUF]"
 .PP
-When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. Definition at line 87 of file connection.h.
+When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. Definition at line 94 of file connection.h.
+.SS "std::string \fBircd_connector::ircdbuffer\fP"
+.PP
+IRCD Buffer for input characters, holds one line. Definition at line 87 of file connection.h.
 .SS "int \fBircd_connector::port\fP"
 .PP
-When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. Definition at line 93 of file connection.h.
+When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. Definition at line 100 of file connection.h.
 .SS "std::vector<std::string> \fBircd_connector::routes\fP"
 .PP
-\fBServer\fP names of servers that this server is linked to So for A->B->C, if this was the record for B it would contain A and C whilever both servers are connected to B. Definition at line 99 of file connection.h.
+\fBServer\fP names of servers that this server is linked to So for A->B->C, if this was the record for B it would contain A and C whilever both servers are connected to B. Definition at line 106 of file connection.h.
 .SS "std::string \fBircd_connector::servername\fP\fC [private]\fP"
 .PP
-\fBServer\fP name. Definition at line 66 of file connection.h.
+\fBServer\fP name. Definition at line 67 of file connection.h.
 .SS "int \fBircd_connector::state\fP\fC [private]\fP"
 .PP
-State. STATE_NOAUTH_INBOUND, STATE_NOAUTH_OUTBOUND STATE_SYNC, STATE_DISCONNECTED, STATE_CONNECTEDDefinition at line 75 of file connection.h.
+State. STATE_NOAUTH_INBOUND, STATE_NOAUTH_OUTBOUND STATE_SYNC, STATE_DISCONNECTED, STATE_CONNECTEDDefinition at line 76 of file connection.h.
 
 .SH "Author"
 .PP 
index 613102a3ae7a89d6b9809a19b531490384fc8ad2..127926d3ed3a75ec66f80b1e3eede0d1f1a9546b 100644 (file)
@@ -1,4 +1,4 @@
-.TH "message.h" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "message.h" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index be2164f1bd538912f5ff3b958c3ec4ab2034cc8d..e6a1628c191714861c1ff9d8b4d8bf747bf2d921 100644 (file)
@@ -1,4 +1,4 @@
-.TH "mode.h" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "mode.h" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index b91ae0484a8da85ced2b302bfb8721f5d3da1580..cde9a3b91b01a53b8624b3255d791e1894015cfe 100644 (file)
@@ -1,4 +1,4 @@
-.TH "modules.cpp" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "modules.cpp" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -533,7 +533,7 @@ Definition at line 91 of file modules.cpp.
 Definition at line 106 of file modules.cpp.
 .SS "int \fBMODCOUNT\fP = -1"
 .PP
-Definition at line 1030 of file modules.cpp.
+Definition at line 1032 of file modules.cpp.
 .SS "std::vector<std::string> \fBmodule_names\fP"
 .PP
 Definition at line 95 of file modules.cpp.
index d2fb56fd45d590ce042cb41f4e84cd07f98de878..5b3be2f2a907906caa6e4e78e559d75bdf590023 100644 (file)
@@ -1,4 +1,4 @@
-.TH "modules.h" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "modules.h" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -139,7 +139,7 @@ modules.h \-
 .RI "#define \fBVF_COMMON\fP   8"
 .br
 .ti -1c
-.RI "#define \fBFOREACH_MOD\fP   for (int i = 0; i <= \fBMODCOUNT\fP; i++) modules[i]->"
+.RI "#define \fBFOREACH_MOD\fP   for (int _i = 0; _i <= \fBMODCOUNT\fP; _i++) modules[_i]->"
 .br
 .ti -1c
 .RI "#define \fBFOREACH_RESULT\fP(x)"
@@ -230,29 +230,29 @@ Referenced by Module::OnAccessCheck().
 Definition at line 38 of file modules.h.
 .SS "#define CONF_FILE_NOT_FOUND   0x000200"
 .PP
-Definition at line 1063 of file modules.h.
+Definition at line 1088 of file modules.h.
 .PP
 Referenced by ConfigReader::ConfigReader().
 .SS "#define CONF_NOT_A_NUMBER   0x000010"
 .PP
-Definition at line 1060 of file modules.h.
+Definition at line 1085 of file modules.h.
 .PP
 Referenced by ConfigReader::ReadInteger().
 .SS "#define CONF_NOT_UNSIGNED   0x000080"
 .PP
-Definition at line 1061 of file modules.h.
+Definition at line 1086 of file modules.h.
 .PP
 Referenced by ConfigReader::ReadInteger().
 .SS "#define CONF_VALUE_NOT_FOUND   0x000100"
 .PP
-Definition at line 1062 of file modules.h.
+Definition at line 1087 of file modules.h.
 .PP
 Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigReader::ReadValue().
 .SS "#define DEBUG   10"
 .PP
 Definition at line 23 of file modules.h.
 .PP
-Referenced by Server::AddExtendedMode(), userrec::HasPermission(), chanrec::IsCustomModeSet(), ModeDefined(), ModeDefinedOper(), ModeIsListMode(), userrec::RemoveInvite(), chanrec::SetCustomMode(), and chanrec::SetCustomModeParam().
+Referenced by Server::AddExtendedMode(), chanrec::AddUser(), chanrec::DecUserCounter(), chanrec::DelUser(), userrec::HasPermission(), chanrec::IncUserCounter(), chanrec::IsCustomModeSet(), ModeDefined(), ModeDefinedOper(), ModeIsListMode(), userrec::RemoveInvite(), chanrec::SetCustomMode(), and chanrec::SetCustomModeParam().
 .SS "#define DEFAULT   30"
 .PP
 Definition at line 25 of file modules.h.
@@ -261,7 +261,7 @@ Definition at line 25 of file modules.h.
 Definition at line 99 of file modules.h.
 .PP
 Referenced by Server::PseudoToUser(), and Server::UserToPseudo().
-.SS "#define FOREACH_MOD   for (int i = 0; i <= \fBMODCOUNT\fP; i++) modules[i]->"
+.SS "#define FOREACH_MOD   for (int _i = 0; _i <= \fBMODCOUNT\fP; _i++) modules[_i]->"
 .PP
 Definition at line 79 of file modules.h.
 .PP
@@ -270,8 +270,8 @@ Referenced by Event::Send().
 .PP
 \fBValue:\fP.nf
 { MOD_RESULT = 0; \
-                        for (int i = 0; i <= MODCOUNT; i++) { \
-                        int res = modules[i]->x ; \
+                        for (int _i = 0; _i <= MODCOUNT; _i++) { \
+                        int res = modules[_i]->x ; \
                         if (res != 0) { \
                                 MOD_RESULT = res; \
                                 break; \
@@ -333,7 +333,7 @@ Low level definition of a \fBFileReader\fP classes file cache area. Definition a
 Referenced by FileReader::FileReader(), and FileReader::LoadFile().
 .SS "typedef DLLFactory<\fBModuleFactory\fP> \fBircd_module\fP"
 .PP
-Definition at line 1229 of file modules.h.
+Definition at line 1254 of file modules.h.
 .SS "typedef \fBfile_cache\fP \fBstring_list\fP"
 .PP
 Definition at line 68 of file modules.h.
index 9ff36fa716fdca7fba91ffbdcf3412149e5ce437..7cfff7689371f63ea124c82e60bc1355f4673fa6 100644 (file)
@@ -1,4 +1,4 @@
-.TH "nspace" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "nspace" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 2c771436c80672e13a976c97eb0ff2ee130d119f..2f257e6977f52f62b95fb517bc2405f07c8e6a72 100644 (file)
@@ -1,4 +1,4 @@
-.TH "nspace::nspace::hash< in_addr >" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "nspace::nspace::hash< in_addr >" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 2c89b391372bb75aaab0e42c36bc8bcf3bafca10..dce6079d6f45b8fa95182d4459be011b5c14e7dc 100644 (file)
@@ -1,4 +1,4 @@
-.TH "nspace::nspace::hash< string >" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "nspace::nspace::hash< string >" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 937637ec0fce57be0ea03ff560ae703b54394b31..3517dc84d95edadd62de66b67d584942700dc2de 100644 (file)
@@ -1,4 +1,4 @@
-.TH "serverrec" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "serverrec" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 00ab9528da881e5574652366af32db2cc58af61c..ef1e28d83e321271c0151c6c19a00b06be34d2c2 100644 (file)
@@ -1,4 +1,4 @@
-.TH "servers.cpp" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "servers.cpp" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 707489eb114543ea3a44393dca1b127ab4269d9c..13cf4637171d709815eeef9e5ee686e9edc847d2 100644 (file)
@@ -1,4 +1,4 @@
-.TH "servers.h" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "servers.h" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 37b3ebb2655e07b2cc5cb27ea0a2160a0deb087c..107c01c591a9a8fadc27098973e7244dbfdba3c7 100644 (file)
@@ -1,4 +1,4 @@
-.TH "std" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "std" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 5b5cc328543a319c57968469057dc52ade9623ea..5f9098e255047a1828b6bbb6bc679984bfdf28c7 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ucrec" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "ucrec" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -40,33 +40,33 @@ Holds a user's modes on a channel This class associates a users privilages with
 
 The uc_modes member holds a bitmask of which privilages the user has on the channel, such as op, voice, etc. 
 .PP
-Definition at line 202 of file channels.h.
+Definition at line 257 of file channels.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "ucrec::ucrec ()\fC [inline]\fP"
 .PP
-Definition at line 215 of file channels.h.
+Definition at line 270 of file channels.h.
 .PP
 .nf
-215 { /* stub */ }
+270 { /* stub */ }
 .fi
 .SS "virtual ucrec::~\fBucrec\fP ()\fC [inline, virtual]\fP"
 .PP
-Definition at line 216 of file channels.h.
+Definition at line 271 of file channels.h.
 .PP
 .nf
-216 { /* stub */ }
+271 { /* stub */ }
 .fi
 .SH "Member Data Documentation"
 .PP 
 .SS "\fBchanrec\fP* \fBucrec::channel\fP"
 .PP
-Points to the channel record where the given modes apply. If the record is not in use, this value will be NULL.Definition at line 213 of file channels.h.
+Points to the channel record where the given modes apply. If the record is not in use, this value will be NULL.Definition at line 268 of file channels.h.
 .PP
 Referenced by Server::PseudoToUser(), and userrec::userrec().
 .SS "long \fBucrec::uc_modes\fP"
 .PP
-Contains a bitmask of the UCMODE_OP ... UCMODE_FOUNDER values. If this value is zero, the user has no privilages upon the channel.Definition at line 208 of file channels.h.
+Contains a bitmask of the UCMODE_OP ... UCMODE_FOUNDER values. If this value is zero, the user has no privilages upon the channel.Definition at line 263 of file channels.h.
 .PP
 Referenced by userrec::userrec().
 
index 83d323e83c7044b56d3476405133eac6a48bd9f8..2e78c52066b0c100c0619a396a6bb7691bfb11b6 100644 (file)
@@ -1,4 +1,4 @@
-.TH "userrec" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "userrec" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -104,6 +104,10 @@ Inherits \fBconnection\fP.
 .RI "unsigned long \fBpingmax\fP"
 .br
 .RI "\fINumber of seconds between PINGs for this user (set from <connect:allow> tag. \fP"
+.ti -1c
+.RI "char \fBpassword\fP [MAXBUF]"
+.br
+.RI "\fIPassword specified by the user when they registered. \fP"
 .in -1c
 .SS "Private Attributes"
 
@@ -158,10 +162,10 @@ References awaymsg, connection::bytes_in, connection::bytes_out, ucrec::channel,
 .fi
 .SS "virtual userrec::~\fBuserrec\fP ()\fC [inline, virtual]\fP"
 .PP
-Definition at line 172 of file users.h.
+Definition at line 178 of file users.h.
 .PP
 .nf
-172 {  }
+178 {  }
 .fi
 .SH "Member Function Documentation"
 .PP 
@@ -198,54 +202,53 @@ References config_f, and DEBUG.
 .nf
 115 {
 116         char TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
-117         char* myclass;
-118         char* mycmd;
-119         char* savept;
-120         char* savept2;
-121         
-122         // are they even an oper at all?
-123         if (strchr(this->modes,'o'))
-124         {
-125                 log(DEBUG,'*** HasPermission: %s is an oper',this->nick);
-126                 for (int j =0; j < ConfValueEnum('type',&config_f); j++)
-127                 {
-128                         ConfValue('type','name',j,TypeName,&config_f);
-129                         if (!strcmp(TypeName,this->oper))
-130                         {
-131                                 log(DEBUG,'*** HasPermission: %s is an oper of type '%s'',this->nick,this->oper);
-132                                 ConfValue('type','classes',j,Classes,&config_f);
-133                                 char* myclass = strtok_r(Classes,' ',&savept);
-134                                 while (myclass)
-135                                 {
-136                                         log(DEBUG,'*** HasPermission: checking classtype '%s'',myclass);
-137                                         for (int k =0; k < ConfValueEnum('class',&config_f); k++)
-138                                         {
-139                                                 ConfValue('class','name',k,ClassName,&config_f);
-140                                                 if (!strcmp(ClassName,myclass))
-141                                                 {
-142                                                         ConfValue('class','commands',k,CommandList,&config_f);
-143                                                         log(DEBUG,'*** HasPermission: found class named %s with commands: '%s'',ClassName,CommandList);
+117         char* mycmd;
+118         char* savept;
+119         char* savept2;
+120         
+121         // are they even an oper at all?
+122         if (strchr(this->modes,'o'))
+123         {
+124                 log(DEBUG,'*** HasPermission: %s is an oper',this->nick);
+125                 for (int j =0; j < ConfValueEnum('type',&config_f); j++)
+126                 {
+127                         ConfValue('type','name',j,TypeName,&config_f);
+128                         if (!strcmp(TypeName,this->oper))
+129                         {
+130                                 log(DEBUG,'*** HasPermission: %s is an oper of type '%s'',this->nick,this->oper);
+131                                 ConfValue('type','classes',j,Classes,&config_f);
+132                                 char* myclass = strtok_r(Classes,' ',&savept);
+133                                 while (myclass)
+134                                 {
+135                                         log(DEBUG,'*** HasPermission: checking classtype '%s'',myclass);
+136                                         for (int k =0; k < ConfValueEnum('class',&config_f); k++)
+137                                         {
+138                                                 ConfValue('class','name',k,ClassName,&config_f);
+139                                                 if (!strcmp(ClassName,myclass))
+140                                                 {
+141                                                         ConfValue('class','commands',k,CommandList,&config_f);
+142                                                         log(DEBUG,'*** HasPermission: found class named %s with commands: '%s'',ClassName,CommandList);
+143                                                         
 144                                                         
-145                                                         
-146                                                         mycmd = strtok_r(CommandList,' ',&savept2);
-147                                                         while (mycmd)
-148                                                         {
-149                                                                 if (!strcasecmp(mycmd,command))
-150                                                                 {
-151                                                                         log(DEBUG,'*** Command %s found, returning true',command);
-152                                                                         return true;
-153                                                                 }
-154                                                                 mycmd = strtok_r(NULL,' ',&savept2);
-155                                                         }
-156                                                 }
-157                                         }
-158                                         myclass = strtok_r(NULL,' ',&savept);
-159                                 }
-160                         }
-161                 }
-162         }
-163         return false;
-164 }
+145                                                         mycmd = strtok_r(CommandList,' ',&savept2);
+146                                                         while (mycmd)
+147                                                         {
+148                                                                 if (!strcasecmp(mycmd,command))
+149                                                                 {
+150                                                                         log(DEBUG,'*** Command %s found, returning true',command);
+151                                                                         return true;
+152                                                                 }
+153                                                                 mycmd = strtok_r(NULL,' ',&savept2);
+154                                                         }
+155                                                 }
+156                                         }
+157                                         myclass = strtok_r(NULL,' ',&savept);
+158                                 }
+159                         }
+160                 }
+161         }
+162         return false;
+163 }
 .fi
 .SS "void userrec::InviteTo (char * channel)\fC [virtual]\fP"
 .PP
@@ -365,6 +368,9 @@ Referenced by ConfigReader::DumpErrors(), GetFullHost(), GetFullRealHost(), Serv
 The oper type they logged in as, if they are an oper. This is used to check permissions in operclasses, so that we can say 'yay' or 'nay' to any commands they issue. The value of this is the value of a valid 'type name=' tag.Definition at line 160 of file users.h.
 .PP
 Referenced by userrec().
+.SS "char \fBuserrec::password\fP[MAXBUF]"
+.PP
+Password specified by the user when they registered. This is stored even if the  block doesnt need a password, so that modules may check it.Definition at line 174 of file users.h.
 .SS "unsigned long \fBuserrec::pingmax\fP"
 .PP
 Number of seconds between PINGs for this user (set from <connect:allow> tag. Definition at line 168 of file users.h.
index 5b1969971baeb3faa66803233090e8edcec6fa8e..614228ad20a2d22a8a645710a5c71170ec743b92 100644 (file)
@@ -1,4 +1,4 @@
-.TH "users.cpp" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "users.cpp" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 6e3177d254cd28cb0cd8adb4fc0af29a4228fba8..09eb0ae89d0b22238206359043ea6b1e677766e7 100644 (file)
@@ -1,4 +1,4 @@
-.TH "users.h" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "users.h" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 3cbdff2e283ea346863e4f8f783f8118f178b5d3..8a3263c2f9e650cfe49cf4b1ae1843d7166d81af 100644 (file)
@@ -1,4 +1,4 @@
-.TH "xline.h" 3 "20 Apr 2005" "InspIRCd" \" -*- nroff -*-
+.TH "xline.h" 3 "26 Apr 2005" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index ce826efc6cb9aa28af4a80f3619568915cdb89aa..6e437bf8f2e407638bf0f50ddaa9d0e9c645b803 100644 (file)
@@ -46,7 +46,7 @@
   <tr><td class="indexkey"><a class="el" href="classXLine.html">XLine</a></td><td class="indexvalue">XLine is the base class for ban lines such as G lines and K lines </td></tr>
   <tr><td class="indexkey"><a class="el" href="classZLine.html">ZLine</a></td><td class="indexvalue">ZLine class </td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:59 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 0d0fa25ddc7d3f69177291041ba7d8cb5cd41aae..66fe97bfe2fd4a31a5e2c13714a18654f07e3b01 100644 (file)
@@ -55,7 +55,7 @@
 00079 
 00080 <span class="preprocessor">#endif</span>
 00081 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:53 2005 for InspIRCd by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:43 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 1231ee9911d969040ad43b55d6630ef7bf6d5ba4..181c18aaea02bd0891220be2e12ce80722c28852 100644 (file)
@@ -49,7 +49,7 @@
 Definition at line <a class="el" href="base_8h-source.html#l00025">25</a> of file <a class="el" href="base_8h-source.html">base.h</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:56 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:44 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index a78f32fa8fadf6212f720420239b113f36c6904b..c149c9b12159e93dc7be30eb83476959c29505c5 100644 (file)
 00110 
 <a name="l00111"></a><a class="code" href="channels_8cpp.html#a38">00111</a> std::vector&lt;ModeParameter&gt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>;
 00112 
-<a name="l00113"></a><a class="code" href="classchanrec.html#a4">00113</a> <a class="code" href="classchanrec.html#a4">chanrec::chanrec</a>()
+<a name="l00113"></a><a class="code" href="classchanrec.html#a10">00113</a> <a class="code" href="classchanrec.html#a10">chanrec::chanrec</a>()
 00114 {
 00115         strcpy(<a class="code" href="classchanrec.html#o0">name</a>,<span class="stringliteral">""</span>);
 00116         strcpy(<a class="code" href="classchanrec.html#o1">custom_modes</a>,<span class="stringliteral">""</span>);
-00117         strcpy(<a class="code" href="classchanrec.html#o2">topic</a>,<span class="stringliteral">""</span>);
-00118         strcpy(<a class="code" href="classchanrec.html#o5">setby</a>,<span class="stringliteral">""</span>);
-00119         strcpy(<a class="code" href="classchanrec.html#o7">key</a>,<span class="stringliteral">""</span>);
-00120         <a class="code" href="classchanrec.html#o3">created</a> = <a class="code" href="classchanrec.html#o4">topicset</a> = <a class="code" href="classchanrec.html#o6">limit</a> = 0;
-00121         <a class="code" href="classchanrec.html#o8">topiclock</a> = <a class="code" href="classchanrec.html#o9">noexternal</a> = <a class="code" href="classchanrec.html#o10">inviteonly</a> = <a class="code" href="classchanrec.html#o11">moderated</a> = <a class="code" href="classchanrec.html#o12">secret</a> = <a class="code" href="classchanrec.html#o13">c_private</a> = <span class="keyword">false</span>;
-00122 }
-00123 
-<a name="l00124"></a><a class="code" href="classchanrec.html#a0">00124</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a0">chanrec::SetCustomMode</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">bool</span> mode_on)
-00125 {
-00126         <span class="keywordflow">if</span> (mode_on) {
-00127                 <span class="keywordtype">char</span> m[3];
-00128                 m[0] = mode;
-00129                 m[1] = <span class="charliteral">'\0'</span>;
-00130                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
-00131                 {
-00132                         strlcat(<a class="code" href="classchanrec.html#o1">custom_modes</a>,m,MAXMODES);
-00133                 }
-00134                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Custom mode %c set"</span>,mode);
-00135         }
-00136         <span class="keywordflow">else</span> {
-00137 
-00138                 std::string a = this-&gt;<a class="code" href="classchanrec.html#o1">custom_modes</a>;
-00139                 <span class="keywordtype">int</span> pos = a.find(mode);
-00140                 a.erase(pos,1);
-00141                 strncpy(this-&gt;custom_modes,a.c_str(),MAXMODES);
-00142 
-00143                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Custom mode %c removed: modelist='%s'"</span>,mode,this-&gt;custom_modes);
-00144                 this-&gt;<a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
-00145         }
-00146 }
-00147 
+00117         strcpy(<a class="code" href="classchanrec.html#o4">topic</a>,<span class="stringliteral">""</span>);
+00118         strcpy(<a class="code" href="classchanrec.html#o7">setby</a>,<span class="stringliteral">""</span>);
+00119         strcpy(<a class="code" href="classchanrec.html#o9">key</a>,<span class="stringliteral">""</span>);
+00120         <a class="code" href="classchanrec.html#o5">created</a> = <a class="code" href="classchanrec.html#o6">topicset</a> = <a class="code" href="classchanrec.html#o8">limit</a> = <a class="code" href="classchanrec.html#o2">users</a> = 0;
+00121         <a class="code" href="classchanrec.html#o10">topiclock</a> = <a class="code" href="classchanrec.html#o11">noexternal</a> = <a class="code" href="classchanrec.html#o12">inviteonly</a> = <a class="code" href="classchanrec.html#o13">moderated</a> = <a class="code" href="classchanrec.html#o14">secret</a> = <a class="code" href="classchanrec.html#o15">c_private</a> = <span class="keyword">false</span>;
+00122         <a class="code" href="classchanrec.html#o3">internal_userlist</a>.clear();
+00123 }
+00124 
+<a name="l00125"></a><a class="code" href="classchanrec.html#a0">00125</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a0">chanrec::SetCustomMode</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">bool</span> mode_on)
+00126 {
+00127         <span class="keywordflow">if</span> (mode_on) {
+00128                 <span class="keywordtype">char</span> m[3];
+00129                 m[0] = mode;
+00130                 m[1] = <span class="charliteral">'\0'</span>;
+00131                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
+00132                 {
+00133                         strlcat(<a class="code" href="classchanrec.html#o1">custom_modes</a>,m,MAXMODES);
+00134                 }
+00135                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Custom mode %c set"</span>,mode);
+00136         }
+00137         <span class="keywordflow">else</span> {
+00138 
+00139                 std::string a = this-&gt;<a class="code" href="classchanrec.html#o1">custom_modes</a>;
+00140                 <span class="keywordtype">int</span> pos = a.find(mode);
+00141                 a.erase(pos,1);
+00142                 strncpy(this-&gt;custom_modes,a.c_str(),MAXMODES);
+00143 
+00144                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Custom mode %c removed: modelist='%s'"</span>,mode,this-&gt;custom_modes);
+00145                 this-&gt;<a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
+00146         }
+00147 }
 00148 
-<a name="l00149"></a><a class="code" href="classchanrec.html#a1">00149</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a1">chanrec::SetCustomModeParam</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">char</span>* parameter,<span class="keywordtype">bool</span> mode_on)
-00150 {
-00151 
-00152         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"SetCustomModeParam called"</span>);
-00153         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
-00154         M.<a class="code" href="classModeParameter.html#o0">mode</a> = mode;
-00155         strlcpy(M.<a class="code" href="classModeParameter.html#o2">channel</a>,this-&gt;name,CHANMAX);
-00156         strlcpy(M.<a class="code" href="classModeParameter.html#o1">parameter</a>,parameter,MAXBUF);
-00157         <span class="keywordflow">if</span> (mode_on)
-00158         {
-00159                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
-00160                 <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.push_back(M);
-00161         }
-00162         <span class="keywordflow">else</span>
-00163         {
-00164                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
-00165                 {
-00166                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
-00167                         {
-00168                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-00169                                 {
-00170                                         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
-00171                                         <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.erase(i);
-00172                                         <span class="keywordflow">return</span>;
-00173                                 }
-00174                         }
-00175                 }
-00176                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
-00177         }
-00178 }
-00179 
-<a name="l00180"></a><a class="code" href="classchanrec.html#a2">00180</a> <span class="keywordtype">bool</span> <a class="code" href="classchanrec.html#a2">chanrec::IsCustomModeSet</a>(<span class="keywordtype">char</span> mode)
-00181 {
-00182         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Checking ISCustomModeSet: %c %s"</span>,mode,this-&gt;custom_modes);
-00183         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode) != 0);
-00184 }
-00185 
-<a name="l00186"></a><a class="code" href="classchanrec.html#a3">00186</a> std::string <a class="code" href="classchanrec.html#a3">chanrec::GetModeParameter</a>(<span class="keywordtype">char</span> mode)
-00187 {
-00188         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
-00189         {
-00190                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
-00191                 {
-00192                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-00193                         {
-00194                                 <span class="keywordflow">return</span> std::string(i-&gt;parameter);
-00195                         }
-00196                 }
-00197         }
-00198         <span class="keywordflow">return</span> std::string(<span class="stringliteral">""</span>);
-00199 }
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:53 2005 for InspIRCd by
+00149 
+<a name="l00150"></a><a class="code" href="classchanrec.html#a1">00150</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a1">chanrec::SetCustomModeParam</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">char</span>* parameter,<span class="keywordtype">bool</span> mode_on)
+00151 {
+00152 
+00153         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"SetCustomModeParam called"</span>);
+00154         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
+00155         M.<a class="code" href="classModeParameter.html#o0">mode</a> = mode;
+00156         strlcpy(M.<a class="code" href="classModeParameter.html#o2">channel</a>,this-&gt;name,CHANMAX);
+00157         strlcpy(M.<a class="code" href="classModeParameter.html#o1">parameter</a>,parameter,MAXBUF);
+00158         <span class="keywordflow">if</span> (mode_on)
+00159         {
+00160                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
+00161                 <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.push_back(M);
+00162         }
+00163         <span class="keywordflow">else</span>
+00164         {
+00165                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
+00166                 {
+00167                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
+00168                         {
+00169                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+00170                                 {
+00171                                         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
+00172                                         <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.erase(i);
+00173                                         <span class="keywordflow">return</span>;
+00174                                 }
+00175                         }
+00176                 }
+00177                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
+00178         }
+00179 }
+00180 
+<a name="l00181"></a><a class="code" href="classchanrec.html#a2">00181</a> <span class="keywordtype">bool</span> <a class="code" href="classchanrec.html#a2">chanrec::IsCustomModeSet</a>(<span class="keywordtype">char</span> mode)
+00182 {
+00183         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Checking ISCustomModeSet: %c %s"</span>,mode,this-&gt;custom_modes);
+00184         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode) != 0);
+00185 }
+00186 
+<a name="l00187"></a><a class="code" href="classchanrec.html#a3">00187</a> std::string <a class="code" href="classchanrec.html#a3">chanrec::GetModeParameter</a>(<span class="keywordtype">char</span> mode)
+00188 {
+00189         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
+00190         {
+00191                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
+00192                 {
+00193                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+00194                         {
+00195                                 <span class="keywordflow">return</span> std::string(i-&gt;parameter);
+00196                         }
+00197                 }
+00198         }
+00199         <span class="keywordflow">return</span> std::string(<span class="stringliteral">""</span>);
+00200 }
+00201 
+<a name="l00202"></a><a class="code" href="classchanrec.html#a4">00202</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a4">chanrec::IncUserCounter</a>()
+00203 {
+00204         this-&gt;<a class="code" href="classchanrec.html#o2">users</a>++;
+00205         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Incremented channel user count for %s to %lu"</span>,<a class="code" href="classchanrec.html#o0">name</a>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)<a class="code" href="classchanrec.html#o2">users</a>);
+00206 }
+00207 
+<a name="l00208"></a><a class="code" href="classchanrec.html#a5">00208</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a5">chanrec::DecUserCounter</a>()
+00209 {
+00210         <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classchanrec.html#o2">users</a> &gt; 0)
+00211                 this-&gt;<a class="code" href="classchanrec.html#o2">users</a>--;
+00212         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Decremented channel user count for %s to %lu"</span>,<a class="code" href="classchanrec.html#o0">name</a>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)<a class="code" href="classchanrec.html#o2">users</a>);
+00213 }
+00214 
+<a name="l00215"></a><a class="code" href="classchanrec.html#a6">00215</a> <span class="keywordtype">long</span> <a class="code" href="classchanrec.html#a6">chanrec::GetUserCounter</a>()
+00216 {
+00217         <span class="keywordflow">return</span> (this-&gt;<a class="code" href="classchanrec.html#o2">users</a>);
+00218 }
+00219 
+<a name="l00220"></a><a class="code" href="classchanrec.html#a7">00220</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a7">chanrec::AddUser</a>(<span class="keywordtype">char</span>* castuser)
+00221 {
+00222         <a class="code" href="classchanrec.html#o3">internal_userlist</a>.push_back(castuser);
+00223         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Added casted user to channel's internal list"</span>);
+00224 }
+00225 
+<a name="l00226"></a><a class="code" href="classchanrec.html#a8">00226</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a8">chanrec::DelUser</a>(<span class="keywordtype">char</span>* castuser)
+00227 {
+00228         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator a = <a class="code" href="classchanrec.html#o3">internal_userlist</a>.begin(); a &lt; <a class="code" href="classchanrec.html#o3">internal_userlist</a>.end(); a++)
+00229         {
+00230                 <span class="keywordflow">if</span> (*a == castuser)
+00231                 {
+00232                         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Removed casted user from channel's internal list"</span>);
+00233                         <a class="code" href="classchanrec.html#o3">internal_userlist</a>.erase(a);
+00234                         <span class="keywordflow">return</span>;
+00235                 }
+00236         }
+00237         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!"</span>,<a class="code" href="classchanrec.html#o0">name</a>);
+00238 }
+00239 
+<a name="l00240"></a><a class="code" href="classchanrec.html#a9">00240</a> std::vector&lt;char*&gt; *<a class="code" href="classchanrec.html#a9">chanrec::GetUsers</a>()
+00241 {
+00242         <span class="keywordflow">return</span> &amp;<a class="code" href="classchanrec.html#o3">internal_userlist</a>;
+00243 }
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:43 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 304e4c8b66a00608bddb11a93266fad10e301faf..9956afa921d59f1f61ed3d3dacb6b0c18f2774ea 100644 (file)
@@ -319,7 +319,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00114">userrec::HasPer
 <p>
 Definition at line <a class="el" href="channels_8cpp-source.html#l00111">111</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00186">chanrec::GetModeParameter()</a>, and <a class="el" href="channels_8cpp-source.html#l00149">chanrec::SetCustomModeParam()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00187">chanrec::GetModeParameter()</a>, and <a class="el" href="channels_8cpp-source.html#l00150">chanrec::SetCustomModeParam()</a>.    </td>
   </tr>
 </table>
 <a name="a18" doxytag="channels.cpp::debugging"></a><p>
@@ -631,9 +631,9 @@ Definition at line <a class="el" href="channels_8cpp-source.html#l00103">103</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l01030">1030</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l01032">1032</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00821">Server::FindModule()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00823">Server::FindModule()</a>.    </td>
   </tr>
 </table>
 <a name="a27" doxytag="channels.cpp::module_names"></a><p>
@@ -659,7 +659,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00821">Server::FindM
 <p>
 Definition at line <a class="el" href="channels_8cpp-source.html#l00092">92</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00821">Server::FindModule()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00823">Server::FindModule()</a>.    </td>
   </tr>
 </table>
 <a name="a2" doxytag="channels.cpp::modules"></a><p>
@@ -685,7 +685,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00821">Server::FindM
 <p>
 Definition at line <a class="el" href="channels_8cpp-source.html#l00064">64</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00821">Server::FindModule()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00823">Server::FindModule()</a>.    </td>
   </tr>
 </table>
 <a name="a13" doxytag="channels.cpp::motd"></a><p>
@@ -1074,7 +1074,7 @@ Definition at line <a class="el" href="channels_8cpp-source.html#l00084">84</a>
 Definition at line <a class="el" href="channels_8cpp-source.html#l00083">83</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:57 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:45 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index fd902fdf73e072a83a3ff5db4f7a424081848708..6d1312c539c050f9eb33e9f2582dc79204dbd068 100644 (file)
 00096  <span class="keyword">public</span>:
 <a name="l00099"></a><a class="code" href="classchanrec.html#o0">00099</a>         <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#o0">name</a>[CHANMAX]; <span class="comment">/* channel name */</span>
 <a name="l00103"></a><a class="code" href="classchanrec.html#o1">00103</a>         <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#o1">custom_modes</a>[MAXMODES];     <span class="comment">/* modes handled by modules */</span>
-00104         
-<a name="l00108"></a><a class="code" href="classchanrec.html#o2">00108</a>         <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#o2">topic</a>[MAXBUF];
-<a name="l00111"></a><a class="code" href="classchanrec.html#o3">00111</a>         time_t <a class="code" href="classchanrec.html#o3">created</a>;
-<a name="l00115"></a><a class="code" href="classchanrec.html#o4">00115</a>         time_t <a class="code" href="classchanrec.html#o4">topicset</a>;
-<a name="l00119"></a><a class="code" href="classchanrec.html#o5">00119</a>         <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#o5">setby</a>[NICKMAX];
-00120 
-<a name="l00124"></a><a class="code" href="classchanrec.html#o6">00124</a>         <span class="keywordtype">long</span> <a class="code" href="classchanrec.html#o6">limit</a>;
-00125         
-<a name="l00129"></a><a class="code" href="classchanrec.html#o7">00129</a>         <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#o7">key</a>[32];
-00130         
-<a name="l00133"></a><a class="code" href="classchanrec.html#o8">00133</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#o8">topiclock</a>;
+00104 
+<a name="l00107"></a><a class="code" href="classchanrec.html#o2">00107</a>         <span class="keywordtype">long</span> <a class="code" href="classchanrec.html#o2">users</a>;
+00108 
+<a name="l00112"></a><a class="code" href="classchanrec.html#o3">00112</a>         std::vector&lt;char*&gt; <a class="code" href="classchanrec.html#o3">internal_userlist</a>;
+00113         
+<a name="l00117"></a><a class="code" href="classchanrec.html#o4">00117</a>         <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#o4">topic</a>[MAXBUF];
+<a name="l00120"></a><a class="code" href="classchanrec.html#o5">00120</a>         time_t <a class="code" href="classchanrec.html#o5">created</a>;
+<a name="l00124"></a><a class="code" href="classchanrec.html#o6">00124</a>         time_t <a class="code" href="classchanrec.html#o6">topicset</a>;
+<a name="l00128"></a><a class="code" href="classchanrec.html#o7">00128</a>         <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#o7">setby</a>[NICKMAX];
+00129 
+<a name="l00133"></a><a class="code" href="classchanrec.html#o8">00133</a>         <span class="keywordtype">long</span> <a class="code" href="classchanrec.html#o8">limit</a>;
 00134         
-<a name="l00137"></a><a class="code" href="classchanrec.html#o9">00137</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#o9">noexternal</a>;
-00138         
-<a name="l00141"></a><a class="code" href="classchanrec.html#o10">00141</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#o10">inviteonly</a>;
-00142         
-<a name="l00145"></a><a class="code" href="classchanrec.html#o11">00145</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#o11">moderated</a>;
-00146         
-<a name="l00150"></a><a class="code" href="classchanrec.html#o12">00150</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#o12">secret</a>;
+<a name="l00138"></a><a class="code" href="classchanrec.html#o9">00138</a>         <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#o9">key</a>[32];
+00139         
+<a name="l00142"></a><a class="code" href="classchanrec.html#o10">00142</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#o10">topiclock</a>;
+00143         
+<a name="l00146"></a><a class="code" href="classchanrec.html#o11">00146</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#o11">noexternal</a>;
+00147         
+<a name="l00150"></a><a class="code" href="classchanrec.html#o12">00150</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#o12">inviteonly</a>;
 00151         
-<a name="l00155"></a><a class="code" href="classchanrec.html#o13">00155</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#o13">c_private</a>;
-00156         
-<a name="l00159"></a><a class="code" href="classchanrec.html#o14">00159</a>         <a class="code" href="channels_8h.html#a5">BanList</a> <a class="code" href="classchanrec.html#o14">bans</a>;
+<a name="l00154"></a><a class="code" href="classchanrec.html#o13">00154</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#o13">moderated</a>;
+00155         
+<a name="l00159"></a><a class="code" href="classchanrec.html#o14">00159</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#o14">secret</a>;
 00160         
-00163         <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a0">SetCustomMode</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">bool</span> mode_on);
-00164 
-00167         <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">char</span>* parameter,<span class="keywordtype">bool</span> mode_on);
-00168  
-00171         <span class="keywordtype">bool</span> <a class="code" href="classchanrec.html#a2">IsCustomModeSet</a>(<span class="keywordtype">char</span> mode);
-00172 
-00179         std::string <a class="code" href="classchanrec.html#a3">GetModeParameter</a>(<span class="keywordtype">char</span> mode);
-00180 
-00183         <a class="code" href="classchanrec.html#a4">chanrec</a>();
-00184 
-<a name="l00185"></a><a class="code" href="classchanrec.html#a5">00185</a>         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html#a5">~chanrec</a>() { <span class="comment">/* stub */</span> }
-00186 };
-00187 
-00188 <span class="comment">/* used to hold a channel and a users modes on that channel, e.g. +v, +h, +o</span>
-00189 <span class="comment"> * needs to come AFTER struct chanrec */</span>
-00190 
-<a name="l00191"></a><a class="code" href="channels_8h.html#a0">00191</a> <span class="preprocessor">#define UCMODE_OP      1</span>
-<a name="l00192"></a><a class="code" href="channels_8h.html#a1">00192</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_VOICE   2</span>
-<a name="l00193"></a><a class="code" href="channels_8h.html#a2">00193</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_HOP     4</span>
-<a name="l00194"></a><a class="code" href="channels_8h.html#a3">00194</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_PROTECT 8</span>
-<a name="l00195"></a><a class="code" href="channels_8h.html#a4">00195</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_FOUNDER 16</span>
-00196 <span class="preprocessor"></span> 
-<a name="l00202"></a><a class="code" href="classucrec.html">00202</a> <span class="keyword">class </span><a class="code" href="classucrec.html">ucrec</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-00203 {
-00204  <span class="keyword">public</span>:
-<a name="l00208"></a><a class="code" href="classucrec.html#o0">00208</a>         <span class="keywordtype">long</span> <a class="code" href="classucrec.html#o0">uc_modes</a>;
-00209         
-<a name="l00213"></a><a class="code" href="classucrec.html#o1">00213</a>         <a class="code" href="classchanrec.html">chanrec</a> *<a class="code" href="classucrec.html#o1">channel</a>;
-00214 
-<a name="l00215"></a><a class="code" href="classucrec.html#a0">00215</a>         <a class="code" href="classucrec.html#a0">ucrec</a>() { <span class="comment">/* stub */</span> }
-<a name="l00216"></a><a class="code" href="classucrec.html#a1">00216</a>         <span class="keyword">virtual</span> <a class="code" href="classucrec.html#a1">~ucrec</a>() { <span class="comment">/* stub */</span> }
-00217 };
-00218 
-00219 <span class="preprocessor">#endif</span>
-00220 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:53 2005 for InspIRCd by
+<a name="l00164"></a><a class="code" href="classchanrec.html#o15">00164</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#o15">c_private</a>;
+00165         
+<a name="l00168"></a><a class="code" href="classchanrec.html#o16">00168</a>         <a class="code" href="channels_8h.html#a5">BanList</a> <a class="code" href="classchanrec.html#o16">bans</a>;
+00169         
+00172         <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a0">SetCustomMode</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">bool</span> mode_on);
+00173 
+00176         <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">char</span>* parameter,<span class="keywordtype">bool</span> mode_on);
+00177  
+00180         <span class="keywordtype">bool</span> <a class="code" href="classchanrec.html#a2">IsCustomModeSet</a>(<span class="keywordtype">char</span> mode);
+00181 
+00188         std::string <a class="code" href="classchanrec.html#a3">GetModeParameter</a>(<span class="keywordtype">char</span> mode);
+00189 
+00195         <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a4">IncUserCounter</a>();
+00196 
+00204         <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a5">DecUserCounter</a>();
+00205 
+00211         <span class="keywordtype">long</span> <a class="code" href="classchanrec.html#a6">GetUserCounter</a>();
+00212 
+00218         <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a7">AddUser</a>(<span class="keywordtype">char</span>* castuser);
+00219 
+00225         <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a8">DelUser</a>(<span class="keywordtype">char</span>* castuser);
+00226 
+00234         std::vector&lt;char*&gt; *<a class="code" href="classchanrec.html#a9">GetUsers</a>();
+00235 
+00238         <a class="code" href="classchanrec.html#a10">chanrec</a>();
+00239 
+<a name="l00240"></a><a class="code" href="classchanrec.html#a11">00240</a>         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html#a11">~chanrec</a>() { <span class="comment">/* stub */</span> }
+00241 };
+00242 
+00243 <span class="comment">/* used to hold a channel and a users modes on that channel, e.g. +v, +h, +o</span>
+00244 <span class="comment"> * needs to come AFTER struct chanrec */</span>
+00245 
+<a name="l00246"></a><a class="code" href="channels_8h.html#a0">00246</a> <span class="preprocessor">#define UCMODE_OP      1</span>
+<a name="l00247"></a><a class="code" href="channels_8h.html#a1">00247</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_VOICE   2</span>
+<a name="l00248"></a><a class="code" href="channels_8h.html#a2">00248</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_HOP     4</span>
+<a name="l00249"></a><a class="code" href="channels_8h.html#a3">00249</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_PROTECT 8</span>
+<a name="l00250"></a><a class="code" href="channels_8h.html#a4">00250</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_FOUNDER 16</span>
+00251 <span class="preprocessor"></span> 
+<a name="l00257"></a><a class="code" href="classucrec.html">00257</a> <span class="keyword">class </span><a class="code" href="classucrec.html">ucrec</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+00258 {
+00259  <span class="keyword">public</span>:
+<a name="l00263"></a><a class="code" href="classucrec.html#o0">00263</a>         <span class="keywordtype">long</span> <a class="code" href="classucrec.html#o0">uc_modes</a>;
+00264         
+<a name="l00268"></a><a class="code" href="classucrec.html#o1">00268</a>         <a class="code" href="classchanrec.html">chanrec</a> *<a class="code" href="classucrec.html#o1">channel</a>;
+00269 
+<a name="l00270"></a><a class="code" href="classucrec.html#a0">00270</a>         <a class="code" href="classucrec.html#a0">ucrec</a>() { <span class="comment">/* stub */</span> }
+<a name="l00271"></a><a class="code" href="classucrec.html#a1">00271</a>         <span class="keyword">virtual</span> <a class="code" href="classucrec.html#a1">~ucrec</a>() { <span class="comment">/* stub */</span> }
+00272 };
+00273 
+00274 <span class="preprocessor">#endif</span>
+00275 <span class="preprocessor"></span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:43 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 766d863c1ff6d625339b3548c91c49b127b68fcf..cee3ed386c0b56396c19215d0b295387590a1350 100644 (file)
@@ -80,7 +80,7 @@
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00195">195</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+Definition at line <a class="el" href="channels_8h-source.html#l00250">250</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
   </tr>
 </table>
 <a name="a2" doxytag="channels.h::UCMODE_HOP"></a><p>
@@ -104,7 +104,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00195">195</a> o
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00193">193</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+Definition at line <a class="el" href="channels_8h-source.html#l00248">248</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
   </tr>
 </table>
 <a name="a0" doxytag="channels.h::UCMODE_OP"></a><p>
@@ -128,7 +128,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00193">193</a> o
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00191">191</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+Definition at line <a class="el" href="channels_8h-source.html#l00246">246</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
   </tr>
 </table>
 <a name="a3" doxytag="channels.h::UCMODE_PROTECT"></a><p>
@@ -152,7 +152,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00191">191</a> o
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00194">194</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+Definition at line <a class="el" href="channels_8h-source.html#l00249">249</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
   </tr>
 </table>
 <a name="a1" doxytag="channels.h::UCMODE_VOICE"></a><p>
@@ -176,7 +176,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00194">194</a> o
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00192">192</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+Definition at line <a class="el" href="channels_8h-source.html#l00247">247</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
   </tr>
 </table>
 <hr><h2>Typedef Documentation</h2>
@@ -258,7 +258,7 @@ Holds a complete invite list.
 Definition at line <a class="el" href="channels_8h-source.html#l00088">88</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:57 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:45 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 7719c1e7459e864229a5eeef6c3db2e56273e7c7..ac42b37059359676f80fa098781aeca9831bbbda 100644 (file)
@@ -13,7 +13,7 @@
   <tr class="memlist"><td><a class="el" href="classAdmin.html#o0">Name</a></td><td><a class="el" href="classAdmin.html">Admin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classAdmin.html#o2">Nick</a></td><td><a class="el" href="classAdmin.html">Admin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:00 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index c0e85bdbf9e4b7b87f3fa8b548c12c61633a12f5..585a7249b6cef150da44dea4e6c2937697646faa 100644 (file)
@@ -157,7 +157,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00126">126</a> of
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:00 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index c29fa5d5ba38b1f42437afc1d7c20dd520509b67..a5f221045355438559f1e544cf2e3cd3855835b8 100644 (file)
@@ -14,7 +14,7 @@
   <tr class="memlist"><td><a class="el" href="classHostItem.html#o0">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classHostItem.html#a1">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:00 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 221f6906106dd7571150eafa003d79e4efad1533..572bbc0f2e0d2010d4ae8239503e2d159c3c3b6a 100644 (file)
@@ -22,7 +22,7 @@ A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to h
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00045">45</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:00 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 6f7d3e741cf83ff871390d3361ada2c144247e69..1ed2aed930da50dad8363bbb0b0e468955193213 100644 (file)
@@ -24,7 +24,7 @@
   <tr class="memlist"><td><a class="el" href="classConfigReader.html#a8">Verify</a>()</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classConfigReader.html#a2">~ConfigReader</a>()</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:01 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:47 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 5a037b4de23dc9a42a6d1ca57bc7bb7c106f6d04..7b302eed2c072d248f439d6b046f43f0cea72e9a 100644 (file)
@@ -67,7 +67,7 @@ It may either be instantiated with one parameter or none. Constructing the class
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01072">1072</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l01097">1097</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a name="a0" doxytag="ConfigReader::ConfigReader"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -97,17 +97,17 @@ Default constructor.
 <p>
 This constructor initialises the ConfigReader class to read the inspircd.conf file as specified when running ./configure.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00833">833</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00835">835</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01080">cache</a>, <a class="el" href="modules_8h-source.html#l01063">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01085">error</a>, <a class="el" href="modules_8h-source.html#l01081">errorlog</a>, and <a class="el" href="modules_8h-source.html#l01084">readerror</a>.
+References <a class="el" href="modules_8h-source.html#l01105">cache</a>, <a class="el" href="modules_8h-source.html#l01088">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01110">error</a>, <a class="el" href="modules_8h-source.html#l01106">errorlog</a>, and <a class="el" href="modules_8h-source.html#l01109">readerror</a>.
 <p>
-<div class="fragment"><pre>00834 {
-00835         this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00836         this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00837         this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a> = LoadConf(CONFIG_FILE,this-&gt;cache,this-&gt;errorlog);
-00838         <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a>)
-00839                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a30">CONF_FILE_NOT_FOUND</a>;
-00840 }
+<div class="fragment"><pre>00836 {
+00837         this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+00838         this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+00839         this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a> = LoadConf(CONFIG_FILE,this-&gt;cache,this-&gt;errorlog);
+00840         <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a>)
+00841                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a30">CONF_FILE_NOT_FOUND</a>;
+00842 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -141,17 +141,17 @@ Overloaded constructor.
 <p>
 This constructor initialises the ConfigReader class to read a user-specified config file
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00852">852</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00854">854</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01080">cache</a>, <a class="el" href="modules_8h-source.html#l01063">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01085">error</a>, <a class="el" href="modules_8h-source.html#l01081">errorlog</a>, and <a class="el" href="modules_8h-source.html#l01084">readerror</a>.
+References <a class="el" href="modules_8h-source.html#l01105">cache</a>, <a class="el" href="modules_8h-source.html#l01088">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01110">error</a>, <a class="el" href="modules_8h-source.html#l01106">errorlog</a>, and <a class="el" href="modules_8h-source.html#l01109">readerror</a>.
 <p>
-<div class="fragment"><pre>00853 {
-00854         this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00855         this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00856         this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a> = LoadConf(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a>,this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a>);
-00857         <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a>)
-00858                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a30">CONF_FILE_NOT_FOUND</a>;
-00859 };
+<div class="fragment"><pre>00855 {
+00856         this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+00857         this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+00858         this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a> = LoadConf(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a>,this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a>);
+00859         <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a>)
+00860                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a30">CONF_FILE_NOT_FOUND</a>;
+00861 };
 </pre></div>    </td>
   </tr>
 </table>
@@ -184,16 +184,16 @@ Default destructor.
 <p>
 This method destroys the ConfigReader class.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00843">843</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00845">845</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01080">cache</a>, and <a class="el" href="modules_8h-source.html#l01081">errorlog</a>.
+References <a class="el" href="modules_8h-source.html#l01105">cache</a>, and <a class="el" href="modules_8h-source.html#l01106">errorlog</a>.
 <p>
-<div class="fragment"><pre>00844 {
-00845         <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a>)
-00846                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a>;
-00847         <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a>)
-00848                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a>;
-00849 }
+<div class="fragment"><pre>00846 {
+00847         <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a>)
+00848                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a>;
+00849         <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a>)
+00850                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a>;
+00851 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -237,40 +237,40 @@ Dumps the list of errors in a config file to an output location.
 <p>
 If bail is true, then the program will abort. If bail is false and user points to a valid user record, the error report will be spooled to the given user by means of NOTICE. if bool is false AND user is false, the error report will be spooled to all opers by means of a NOTICE to all opers.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00930">930</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01081">errorlog</a>, <a class="el" href="connection_8h-source.html#l00171">connection::fd</a>, and <a class="el" href="users_8h-source.html#l00106">userrec::nick</a>.
-<p>
-<div class="fragment"><pre>00931 {
-00932         <span class="keywordflow">if</span> (bail)
-00933         {
-00934                 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;str().c_str());
-00935                 exit(0);
-00936         }
-00937         <span class="keywordflow">else</span>
-00938         {
-00939                 <span class="keywordtype">char</span> dataline[1024];
-00940                 <span class="keywordflow">if</span> (user)
-00941                 {
-00942                         WriteServ(user-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>);
-00943                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;eof())
-00944                         {
-00945                                 <a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;getline(dataline,1024);
-00946                                 WriteServ(user-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>,dataline);
-00947                         }
-00948                 }
-00949                 <span class="keywordflow">else</span>
-00950                 {
-00951                         WriteOpers(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>);
-00952                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;eof())
-00953                         {
-00954                                 <a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;getline(dataline,1024);
-00955                                 WriteOpers(dataline);
-00956                         }
-00957                 }
-00958                 <span class="keywordflow">return</span>;
-00959         }
-00960 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00932">932</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01106">errorlog</a>, <a class="el" href="connection_8h-source.html#l00183">connection::fd</a>, and <a class="el" href="users_8h-source.html#l00106">userrec::nick</a>.
+<p>
+<div class="fragment"><pre>00933 {
+00934         <span class="keywordflow">if</span> (bail)
+00935         {
+00936                 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;str().c_str());
+00937                 exit(0);
+00938         }
+00939         <span class="keywordflow">else</span>
+00940         {
+00941                 <span class="keywordtype">char</span> dataline[1024];
+00942                 <span class="keywordflow">if</span> (user)
+00943                 {
+00944                         WriteServ(user-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>);
+00945                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;eof())
+00946                         {
+00947                                 <a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;getline(dataline,1024);
+00948                                 WriteServ(user-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>,dataline);
+00949                         }
+00950                 }
+00951                 <span class="keywordflow">else</span>
+00952                 {
+00953                         WriteOpers(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>);
+00954                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;eof())
+00955                         {
+00956                                 <a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;getline(dataline,1024);
+00957                                 WriteOpers(dataline);
+00958                         }
+00959                 }
+00960                 <span class="keywordflow">return</span>;
+00961         }
+00962 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -304,13 +304,13 @@ Counts the number of times a given tag appears in the config file.
 <p>
 This method counts the number of times a tag appears in a config file, for use where there are several tags of the same kind, e.g. with opers and connect types. It can be used with the index value of <a class="el" href="classConfigReader.html#a3">ConfigReader::ReadValue</a> to loop through all copies of a multiple instance tag.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00963">963</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00965">965</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01080">cache</a>.
+References <a class="el" href="modules_8h-source.html#l01105">cache</a>.
 <p>
-<div class="fragment"><pre>00964 {
-00965         <span class="keywordflow">return</span> EnumConf(cache,tag.c_str());
-00966 }
+<div class="fragment"><pre>00966 {
+00967         <span class="keywordflow">return</span> EnumConf(cache,tag.c_str());
+00968 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -353,13 +353,13 @@ Returns the number of items within a tag.
 <p>
 For example if the tag was &lt;test tag="blah" data="foo"&gt; then this function would return 2. Spaces and newlines both qualify as valid seperators between values.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00968">968</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00970">970</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01080">cache</a>.
+References <a class="el" href="modules_8h-source.html#l01105">cache</a>.
 <p>
-<div class="fragment"><pre>00969 {
-00970         <span class="keywordflow">return</span> EnumValues(cache, tag.c_str(), index);
-00971 }
+<div class="fragment"><pre>00971 {
+00972         <span class="keywordflow">return</span> EnumValues(cache, tag.c_str(), index);
+00973 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -392,15 +392,15 @@ Returns the last error to occur.
 <p>
 Valid errors can be found by looking in <a class="el" href="modules_8h.html">modules.h</a>. Any nonzero value indicates an error condition. A call to <a class="el" href="classConfigReader.html#a6">GetError()</a> resets the error flag back to 0.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00923">923</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00925">925</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01085">error</a>.
+References <a class="el" href="modules_8h-source.html#l01110">error</a>.
 <p>
-<div class="fragment"><pre>00924 {
-00925         <span class="keywordtype">long</span> olderr = this-&gt;<a class="code" href="classConfigReader.html#p3">error</a>;
-00926         this-&gt;error = 0;
-00927         <span class="keywordflow">return</span> olderr;
-00928 }
+<div class="fragment"><pre>00926 {
+00927         <span class="keywordtype">long</span> olderr = this-&gt;<a class="code" href="classConfigReader.html#p3">error</a>;
+00928         this-&gt;error = 0;
+00929         <span class="keywordflow">return</span> olderr;
+00930 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -449,25 +449,25 @@ Retrieves a boolean value from the config file.
 <p>
 This method retrieves a boolean value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. The values "1", "yes" and "true" in the config file count as true to ReadFlag, and any other value counts as false.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00877">877</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01080">cache</a>, <a class="el" href="modules_8h-source.html#l01062">CONF_VALUE_NOT_FOUND</a>, and <a class="el" href="modules_8h-source.html#l01085">error</a>.
-<p>
-<div class="fragment"><pre>00878 {
-00879         <span class="keywordtype">char</span> val[MAXBUF];
-00880         <span class="keywordtype">char</span> t[MAXBUF];
-00881         <span class="keywordtype">char</span> n[MAXBUF];
-00882         strlcpy(t,tag.c_str(),MAXBUF);
-00883         strlcpy(n,name.c_str(),MAXBUF);
-00884         <span class="keywordtype">int</span> res = ReadConf(cache,t,n,index,val);
-00885         <span class="keywordflow">if</span> (!res)
-00886         {
-00887                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a29">CONF_VALUE_NOT_FOUND</a>;
-00888                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00889         }
-00890         std::string s = val;
-00891         <span class="keywordflow">return</span> ((s == <span class="stringliteral">"yes"</span>) || (s == <span class="stringliteral">"YES"</span>) || (s == <span class="stringliteral">"true"</span>) || (s == <span class="stringliteral">"TRUE"</span>) || (s == <span class="stringliteral">"1"</span>));
-00892 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00879">879</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01105">cache</a>, <a class="el" href="modules_8h-source.html#l01087">CONF_VALUE_NOT_FOUND</a>, and <a class="el" href="modules_8h-source.html#l01110">error</a>.
+<p>
+<div class="fragment"><pre>00880 {
+00881         <span class="keywordtype">char</span> val[MAXBUF];
+00882         <span class="keywordtype">char</span> t[MAXBUF];
+00883         <span class="keywordtype">char</span> n[MAXBUF];
+00884         strlcpy(t,tag.c_str(),MAXBUF);
+00885         strlcpy(n,name.c_str(),MAXBUF);
+00886         <span class="keywordtype">int</span> res = ReadConf(cache,t,n,index,val);
+00887         <span class="keywordflow">if</span> (!res)
+00888         {
+00889                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a29">CONF_VALUE_NOT_FOUND</a>;
+00890                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00891         }
+00892         std::string s = val;
+00893         <span class="keywordflow">return</span> ((s == <span class="stringliteral">"yes"</span>) || (s == <span class="stringliteral">"YES"</span>) || (s == <span class="stringliteral">"true"</span>) || (s == <span class="stringliteral">"TRUE"</span>) || (s == <span class="stringliteral">"1"</span>));
+00894 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -522,37 +522,37 @@ Retrieves an integer value from the config file.
 <p>
 This method retrieves an integer value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. Any invalid integer values in the tag will cause the objects error value to be set, and any call to <a class="el" href="classConfigReader.html#a6">GetError()</a> will return CONF_INVALID_NUMBER to be returned. needs_unsigned is set if the number must be unsigned. If a signed number is placed into a tag which is specified unsigned, 0 will be returned and <a class="el" href="classConfigReader.html#a6">GetError()</a> will return CONF_NOT_UNSIGNED
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00894">894</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01080">cache</a>, <a class="el" href="modules_8h-source.html#l01060">CONF_NOT_A_NUMBER</a>, <a class="el" href="modules_8h-source.html#l01061">CONF_NOT_UNSIGNED</a>, <a class="el" href="modules_8h-source.html#l01062">CONF_VALUE_NOT_FOUND</a>, and <a class="el" href="modules_8h-source.html#l01085">error</a>.
-<p>
-<div class="fragment"><pre>00895 {
-00896         <span class="keywordtype">char</span> val[MAXBUF];
-00897         <span class="keywordtype">char</span> t[MAXBUF];
-00898         <span class="keywordtype">char</span> n[MAXBUF];
-00899         strlcpy(t,tag.c_str(),MAXBUF);
-00900         strlcpy(n,name.c_str(),MAXBUF);
-00901         <span class="keywordtype">int</span> res = ReadConf(cache,t,n,index,val);
-00902         <span class="keywordflow">if</span> (!res)
-00903         {
-00904                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a29">CONF_VALUE_NOT_FOUND</a>;
-00905                 <span class="keywordflow">return</span> 0;
-00906         }
-00907         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(val); i++)
-00908         {
-00909                 <span class="keywordflow">if</span> (!isdigit(val[i]))
-00910                 {
-00911                         this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a27">CONF_NOT_A_NUMBER</a>;
-00912                         <span class="keywordflow">return</span> 0;
-00913                 }
-00914         }
-00915         <span class="keywordflow">if</span> ((needs_unsigned) &amp;&amp; (atoi(val)&lt;0))
-00916         {
-00917                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a28">CONF_NOT_UNSIGNED</a>;
-00918                 <span class="keywordflow">return</span> 0;
-00919         }
-00920         <span class="keywordflow">return</span> atoi(val);
-00921 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00896">896</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01105">cache</a>, <a class="el" href="modules_8h-source.html#l01085">CONF_NOT_A_NUMBER</a>, <a class="el" href="modules_8h-source.html#l01086">CONF_NOT_UNSIGNED</a>, <a class="el" href="modules_8h-source.html#l01087">CONF_VALUE_NOT_FOUND</a>, and <a class="el" href="modules_8h-source.html#l01110">error</a>.
+<p>
+<div class="fragment"><pre>00897 {
+00898         <span class="keywordtype">char</span> val[MAXBUF];
+00899         <span class="keywordtype">char</span> t[MAXBUF];
+00900         <span class="keywordtype">char</span> n[MAXBUF];
+00901         strlcpy(t,tag.c_str(),MAXBUF);
+00902         strlcpy(n,name.c_str(),MAXBUF);
+00903         <span class="keywordtype">int</span> res = ReadConf(cache,t,n,index,val);
+00904         <span class="keywordflow">if</span> (!res)
+00905         {
+00906                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a29">CONF_VALUE_NOT_FOUND</a>;
+00907                 <span class="keywordflow">return</span> 0;
+00908         }
+00909         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(val); i++)
+00910         {
+00911                 <span class="keywordflow">if</span> (!isdigit(val[i]))
+00912                 {
+00913                         this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a27">CONF_NOT_A_NUMBER</a>;
+00914                         <span class="keywordflow">return</span> 0;
+00915                 }
+00916         }
+00917         <span class="keywordflow">if</span> ((needs_unsigned) &amp;&amp; (atoi(val)&lt;0))
+00918         {
+00919                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a28">CONF_NOT_UNSIGNED</a>;
+00920                 <span class="keywordflow">return</span> 0;
+00921         }
+00922         <span class="keywordflow">return</span> atoi(val);
+00923 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -601,24 +601,24 @@ Retrieves a value from the config file.
 <p>
 This method retrieves a value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00861">861</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01080">cache</a>, <a class="el" href="modules_8h-source.html#l01062">CONF_VALUE_NOT_FOUND</a>, and <a class="el" href="modules_8h-source.html#l01085">error</a>.
-<p>
-<div class="fragment"><pre>00862 {
-00863         <span class="keywordtype">char</span> val[MAXBUF];
-00864         <span class="keywordtype">char</span> t[MAXBUF];
-00865         <span class="keywordtype">char</span> n[MAXBUF];
-00866         strlcpy(t,tag.c_str(),MAXBUF);
-00867         strlcpy(n,name.c_str(),MAXBUF);
-00868         <span class="keywordtype">int</span> res = ReadConf(cache,t,n,index,val);
-00869         <span class="keywordflow">if</span> (!res)
-00870         {
-00871                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a29">CONF_VALUE_NOT_FOUND</a>;
-00872                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-00873         }
-00874         <span class="keywordflow">return</span> std::string(val);
-00875 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00863">863</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01105">cache</a>, <a class="el" href="modules_8h-source.html#l01087">CONF_VALUE_NOT_FOUND</a>, and <a class="el" href="modules_8h-source.html#l01110">error</a>.
+<p>
+<div class="fragment"><pre>00864 {
+00865         <span class="keywordtype">char</span> val[MAXBUF];
+00866         <span class="keywordtype">char</span> t[MAXBUF];
+00867         <span class="keywordtype">char</span> n[MAXBUF];
+00868         strlcpy(t,tag.c_str(),MAXBUF);
+00869         strlcpy(n,name.c_str(),MAXBUF);
+00870         <span class="keywordtype">int</span> res = ReadConf(cache,t,n,index,val);
+00871         <span class="keywordflow">if</span> (!res)
+00872         {
+00873                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a29">CONF_VALUE_NOT_FOUND</a>;
+00874                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00875         }
+00876         <span class="keywordflow">return</span> std::string(val);
+00877 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -651,13 +651,13 @@ Returns true if a config file is valid.
 <p>
 This method is partially implemented and will only return false if the config file does not exist or could not be opened.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00973">973</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00975">975</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01084">readerror</a>.
+References <a class="el" href="modules_8h-source.html#l01109">readerror</a>.
 <p>
-<div class="fragment"><pre>00974 {
-00975         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a>;
-00976 }
+<div class="fragment"><pre>00976 {
+00977         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a>;
+00978 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -685,9 +685,9 @@ The contents of the configuration file This protected member should never be acc
 <p>
 It will contain a pointer to the configuration file data with unneeded data (such as comments) stripped from it.
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01080">1080</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01105">1105</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00833">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00963">Enumerate()</a>, <a class="el" href="modules_8cpp-source.html#l00968">EnumerateValues()</a>, <a class="el" href="modules_8cpp-source.html#l00877">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00894">ReadInteger()</a>, <a class="el" href="modules_8cpp-source.html#l00861">ReadValue()</a>, and <a class="el" href="modules_8cpp-source.html#l00843">~ConfigReader()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00835">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00965">Enumerate()</a>, <a class="el" href="modules_8cpp-source.html#l00970">EnumerateValues()</a>, <a class="el" href="modules_8cpp-source.html#l00879">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00896">ReadInteger()</a>, <a class="el" href="modules_8cpp-source.html#l00863">ReadValue()</a>, and <a class="el" href="modules_8cpp-source.html#l00845">~ConfigReader()</a>.    </td>
   </tr>
 </table>
 <a name="p3" doxytag="ConfigReader::error"></a><p>
@@ -711,9 +711,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00833">ConfigReader(
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01085">1085</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01110">1110</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00833">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00923">GetError()</a>, <a class="el" href="modules_8cpp-source.html#l00877">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00894">ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00861">ReadValue()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00835">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00925">GetError()</a>, <a class="el" href="modules_8cpp-source.html#l00879">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00896">ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00863">ReadValue()</a>.    </td>
   </tr>
 </table>
 <a name="p1" doxytag="ConfigReader::errorlog"></a><p>
@@ -737,9 +737,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00833">ConfigReader(
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01081">1081</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01106">1106</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00833">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00930">DumpErrors()</a>, and <a class="el" href="modules_8cpp-source.html#l00843">~ConfigReader()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00835">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00932">DumpErrors()</a>, and <a class="el" href="modules_8cpp-source.html#l00845">~ConfigReader()</a>.    </td>
   </tr>
 </table>
 <a name="p2" doxytag="ConfigReader::readerror"></a><p>
@@ -765,14 +765,14 @@ Used to store errors.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01084">1084</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01109">1109</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00833">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00973">Verify()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00835">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00975">Verify()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:01 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:47 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index d29d1363bb3ea3132248b89a14e4ec6e90362b41..0f73e7de47f4d2c3d36f32b8f2adc63083b33223 100644 (file)
@@ -16,7 +16,7 @@
   <tr class="memlist"><td><a class="el" href="classConnectClass.html#o1">registration_timeout</a></td><td><a class="el" href="classConnectClass.html">ConnectClass</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classConnectClass.html#o0">type</a></td><td><a class="el" href="classConnectClass.html">ConnectClass</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:01 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:47 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index de93840c8c99687f78e6531143b44e6fa386e8e6..61fb38d40de1b1695e57aa4deb8c19bcc55693b0 100644 (file)
@@ -253,7 +253,7 @@ Definition at line <a class="el" href="users_8h-source.html#l00050">50</a> of fi
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="users_8h-source.html">users.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:01 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:47 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 9fe87f42582f6681c79be1c1d06e56164d85a5db..27446a1135bf66875c2fb3f766d63e3e23da1f13 100644 (file)
@@ -6,7 +6,7 @@
 <!-- Generated by Doxygen 1.3.3 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>DNS Member List</h1>This is the complete list of members for <a class="el" href="classDNS.html">DNS</a>, including all inherited members.<table>
-  <tr class="memlist"><td><a class="el" href="classDNS.html#r1">binip</a></td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classDNS.html#r0">binip</a></td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#a0">DNS</a>()</td><td><a class="el" href="classDNS.html">DNS</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#a1">DNS</a>(std::string dnsserver)</td><td><a class="el" href="classDNS.html">DNS</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#d2">dns_aton4</a>(const char *const ipstring)</td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#d3">dns_ntoa4</a>(const in_addr *const ip)</td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#d12">dns_ntoa4_r</a>(const in_addr *const ip)</td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#d9">dns_ntoa4_s</a>(const in_addr *const ip, char *const result)</td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classDNS.html#r4">fd</a></td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classDNS.html#r3">fd</a></td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#a4">ForwardLookup</a>(std::string host)</td><td><a class="el" href="classDNS.html">DNS</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#a7">GetFD</a>()</td><td><a class="el" href="classDNS.html">DNS</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#a6">GetResult</a>()</td><td><a class="el" href="classDNS.html">DNS</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#a5">HasResult</a>()</td><td><a class="el" href="classDNS.html">DNS</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classDNS.html#r3">i</a></td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classDNS.html#r0">result</a></td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classDNS.html#r1">result</a></td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#a3">ReverseLookup</a>(std::string ip)</td><td><a class="el" href="classDNS.html">DNS</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#a8">SetNS</a>(std::string dnsserver)</td><td><a class="el" href="classDNS.html">DNS</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#r2">t</a></td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#a2">~DNS</a>()</td><td><a class="el" href="classDNS.html">DNS</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:02 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 29354bad4cc596baf83685f7ec52b97de3e33d2d..9b2563cf4bf2ce389191339a42633ad9a2f55875 100644 (file)
 
 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#d6">dns_getname4</a> (const in_addr *const ip)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#d7">dns_getresult</a> (const int <a class="el" href="classDNS.html#r4">fd</a>)</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#d7">dns_getresult</a> (const int <a class="el" href="classDNS.html#r3">fd</a>)</td></tr>
 
 <tr><td class="memItemLeft" nowrap align=right valign=top>in_addr *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#d8">dns_aton4_s</a> (const char *const ipstring, in_addr *const ip)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#d9">dns_ntoa4_s</a> (const in_addr *const ip, char *const <a class="el" href="classDNS.html#r0">result</a>)</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#d9">dns_ntoa4_s</a> (const in_addr *const ip, char *const <a class="el" href="classDNS.html#r1">result</a>)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#d10">dns_getresult_s</a> (const int <a class="el" href="classDNS.html#r4">fd</a>, char *const <a class="el" href="classDNS.html#r0">result</a>)</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#d10">dns_getresult_s</a> (const int <a class="el" href="classDNS.html#r3">fd</a>, char *const <a class="el" href="classDNS.html#r1">result</a>)</td></tr>
 
 <tr><td class="memItemLeft" nowrap align=right valign=top>in_addr *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#d11">dns_aton4_r</a> (const char *const ipstring)</td></tr>
 
 <tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#d12">dns_ntoa4_r</a> (const in_addr *const ip)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#d13">dns_getresult_r</a> (const int <a class="el" href="classDNS.html#r4">fd</a>)</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#d13">dns_getresult_r</a> (const int <a class="el" href="classDNS.html#r3">fd</a>)</td></tr>
 
 <tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#r0">result</a></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>in_addr *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#r0">binip</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align=right valign=top>in_addr *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#r1">binip</a></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#r1">result</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#r2">t</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#r3">i</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align=right valign=top>unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#r4">fd</a></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#r3">fd</a></td></tr>
 
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
@@ -794,13 +792,13 @@ This method will start the reverse lookup of an ip given in dotted decimal forma
   </tr>
 </table>
 <hr><h2>Member Data Documentation</h2>
-<a name="r1" doxytag="DNS::binip"></a><p>
+<a name="r0" doxytag="DNS::binip"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> in_addr* <a class="el" href="classDNS.html#r1">DNS::binip</a><code> [private]</code>
+          <td class="md" nowrap valign="top"> in_addr* <a class="el" href="classDNS.html#r0">DNS::binip</a><code> [private]</code>
       </table>
     </td>
   </tr>
@@ -815,16 +813,16 @@ This method will start the reverse lookup of an ip given in dotted decimal forma
 <p>
 
 <p>
-Definition at line <a class="el" href="dns_8h-source.html#l00039">39</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>.    </td>
+Definition at line <a class="el" href="dns_8h-source.html#l00038">38</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>.    </td>
   </tr>
 </table>
-<a name="r4" doxytag="DNS::fd"></a><p>
+<a name="r3" doxytag="DNS::fd"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> unsigned int <a class="el" href="classDNS.html#r4">DNS::fd</a><code> [private]</code>
+          <td class="md" nowrap valign="top"> unsigned int <a class="el" href="classDNS.html#r3">DNS::fd</a><code> [private]</code>
       </table>
     </td>
   </tr>
@@ -842,13 +840,13 @@ Definition at line <a class="el" href="dns_8h-source.html#l00039">39</a> of file
 Definition at line <a class="el" href="dns_8h-source.html#l00042">42</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>.    </td>
   </tr>
 </table>
-<a name="r3" doxytag="DNS::i"></a><p>
+<a name="r1" doxytag="DNS::result"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> int <a class="el" href="classDNS.html#r3">DNS::i</a><code> [private]</code>
+          <td class="md" nowrap valign="top"> char* <a class="el" href="classDNS.html#r1">DNS::result</a><code> [private]</code>
       </table>
     </td>
   </tr>
@@ -863,31 +861,7 @@ Definition at line <a class="el" href="dns_8h-source.html#l00042">42</a> of file
 <p>
 
 <p>
-Definition at line <a class="el" href="dns_8h-source.html#l00040">40</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>.    </td>
-  </tr>
-</table>
-<a name="r0" doxytag="DNS::result"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"> char* <a class="el" href="classDNS.html#r0">DNS::result</a><code> [private]</code>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
-Definition at line <a class="el" href="dns_8h-source.html#l00038">38</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>.    </td>
+Definition at line <a class="el" href="dns_8h-source.html#l00039">39</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>.    </td>
   </tr>
 </table>
 <a name="r2" doxytag="DNS::t"></a><p>
@@ -916,7 +890,7 @@ Definition at line <a class="el" href="dns_8h-source.html#l00040">40</a> of file
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="dns_8h-source.html">dns.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:02 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index d0902d831c9f3e372e4a7c0438d4777c19d911f1..bed310fd6d4522902504b9d68735580c2453eb46 100644 (file)
@@ -15,7 +15,7 @@
   <tr class="memlist"><td><a class="el" href="classXLine.html#o0">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classXLine.html#o2">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:02 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index b04ff66b130d381e7d4e3ce76d05b50aef5bd1fc..7d4681a9948b16ba93fa8399c910573e94a13baf 100644 (file)
@@ -45,7 +45,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00088">88</a> of fi
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:02 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 24baef68431fd7274b08bc276b32307f617bcdbc..3e77cb876652af6df9ec58195657f30c8078427a 100644 (file)
@@ -17,7 +17,7 @@
   <tr class="memlist"><td><a class="el" href="classEvent.html#a4">Send</a>()</td><td><a class="el" href="classEvent.html">Event</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classEvent.html#p1">source</a></td><td><a class="el" href="classEvent.html">Event</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 170fa3474b57a3c60a849a3fece78254bcc002bb..86bb599fad045b10c48f486e11b5b0763320e14a 100644 (file)
@@ -48,7 +48,7 @@ When the class is properly instantiated it may be sent to all modules using the
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00191">191</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00194">194</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a name="a0" doxytag="Event::Event"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -132,7 +132,7 @@ Get the Event data.
 <p>
 Definition at line <a class="el" href="modules_8cpp-source.html#l00339">339</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00196">data</a>.
+References <a class="el" href="modules_8h-source.html#l00199">data</a>.
 <p>
 <div class="fragment"><pre>00340 {
 00341         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#p0">data</a>;
@@ -171,7 +171,7 @@ Use this to determine the event type for safe casting of the data
 <p>
 Definition at line <a class="el" href="modules_8cpp-source.html#l00355">355</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00205">id</a>.
+References <a class="el" href="modules_8h-source.html#l00208">id</a>.
 <p>
 <div class="fragment"><pre>00356 {
 00357         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#p2">id</a>;
@@ -210,7 +210,7 @@ Get the event Source.
 <p>
 Definition at line <a class="el" href="modules_8cpp-source.html#l00344">344</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00200">source</a>.
+References <a class="el" href="modules_8h-source.html#l00203">source</a>.
 <p>
 <div class="fragment"><pre>00345 {
 00346         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#p1">source</a>;
@@ -284,7 +284,7 @@ This member holds a pointer to arbitary data set by the emitter of the message.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00196">196</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00199">199</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
 Referenced by <a class="el" href="modules_8cpp-source.html#l00339">GetData()</a>.    </td>
   </tr>
@@ -312,7 +312,7 @@ The event identifier.
 <p>
 This is arbitary text which should be used to distinguish one type of event from another. 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00205">205</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00208">208</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
 Referenced by <a class="el" href="modules_8cpp-source.html#l00355">GetEventID()</a>.    </td>
   </tr>
@@ -340,14 +340,14 @@ This is a pointer to the sender of the message, which can be used to directly tr
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00200">200</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00203">203</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
 Referenced by <a class="el" href="modules_8cpp-source.html#l00344">GetSource()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index d52ce91721719df67a18e5340e5d3c5ceb294ea6..bbece52c244c82fac669e8b159abc6d3f3d5a46d 100644 (file)
@@ -14,7 +14,7 @@
   <tr class="memlist"><td><a class="el" href="classHostItem.html#o0">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classHostItem.html#a1">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 0b63537a6729d6ba3639f1841223f64cb00000fd..3eb87d59d942401ac7238b83db6bbcc7b531a6ca 100644 (file)
@@ -22,7 +22,7 @@ A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to h
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00053">53</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 8c3c7da3d68beaa8ddfd7e476fbead4ce02e30f5..a76751ffc1da95e57a6f647825c85aafd80023ef 100644 (file)
@@ -16,7 +16,7 @@
   <tr class="memlist"><td><a class="el" href="classExtMode.html#o2">params_when_on</a></td><td><a class="el" href="classExtMode.html">ExtMode</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classExtMode.html#o1">type</a></td><td><a class="el" href="classExtMode.html">ExtMode</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index c90e27944830d42ff3e71f608a4d7cb22467851c..c173b696f6ec6bb0c67e03bb5b8e5516e0dd6c62 100644 (file)
@@ -247,7 +247,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00201">ExtMode()</a>
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index a7cbccc24bbacfabf7ae68aba6f247e0902c9d38..9627587a2851ddbb9c956dd415c7a7dc021a84bf 100644 (file)
@@ -13,7 +13,7 @@
   <tr class="memlist"><td><a class="el" href="classExtensible.html#a2">GetExt</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classExtensible.html#a1">Shrink</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index c97ad8fcc9a50133ff99eeade43bc0aba819797e..eb493569337487648e98a645faecdc87da4bf721 100644 (file)
@@ -170,7 +170,7 @@ Definition at line <a class="el" href="base_8h-source.html#l00054">54</a> of fil
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="base_8h-source.html">base.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index e6eb6aae8ac04af214da68da51bab09fc35b7fe0..b4b4ce247dd9944da8d2b2320e5d450d2d2439db 100644 (file)
@@ -17,7 +17,7 @@
   <tr class="memlist"><td><a class="el" href="classFileReader.html#a3">LoadFile</a>(std::string filename)</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classFileReader.html#a2">~FileReader</a>()</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index ffccc4d3715dadf33d6b57bf86015df5c1164a32..15bfc3626c8edd32c41a0c471b3f523b21caa193 100644 (file)
@@ -47,7 +47,7 @@ This class contains methods for read-only manipulation of a text file in memory.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01161">1161</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l01186">1186</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a name="a0" doxytag="FileReader::FileReader"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -77,10 +77,10 @@ Default constructor.
 <p>
 This method does not load any file into memory, you must use the LoadFile method after constructing the class this way.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00986">986</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00988">988</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00987 {
-00988 }
+<div class="fragment"><pre>00989 {
+00990 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -114,15 +114,15 @@ Secondary constructor.
 <p>
 This method initialises the class with a file loaded into it ready for GetLine and and other methods to be called. If the file could not be loaded, <a class="el" href="classFileReader.html#a6">FileReader::FileSize</a> returns 0.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00979">979</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00981">981</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01163">fc</a>, and <a class="el" href="modules_8h-source.html#l00067">file_cache</a>.
+References <a class="el" href="modules_8h-source.html#l01188">fc</a>, and <a class="el" href="modules_8h-source.html#l00067">file_cache</a>.
 <p>
-<div class="fragment"><pre>00980 {
-00981         <a class="code" href="modules_8h.html#a31">file_cache</a> c;
-00982         readfile(c,filename.c_str());
-00983         this-&gt;<a class="code" href="classFileReader.html#r0">fc</a> = c;
-00984 }
+<div class="fragment"><pre>00982 {
+00983         <a class="code" href="modules_8h.html#a31">file_cache</a> c;
+00984         readfile(c,filename.c_str());
+00985         this-&gt;<a class="code" href="classFileReader.html#r0">fc</a> = c;
+00986 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -155,10 +155,10 @@ Default destructor.
 <p>
 This deletes the memory allocated to the file.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00998">998</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l01000">1000</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00999 {
-01000 }
+<div class="fragment"><pre>01001 {
+01002 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -192,20 +192,20 @@ Returns true if the file exists This function will return false if the file coul
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l01002">1002</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l01004">1004</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01163">fc</a>.
+References <a class="el" href="modules_8h-source.html#l01188">fc</a>.
 <p>
-<div class="fragment"><pre>01003 {
-01004         <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#r0">fc</a>.size() == 0)
-01005         {
-01006                 <span class="keywordflow">return</span>(<span class="keyword">false</span>);
-01007         }
-01008         <span class="keywordflow">else</span>
-01009         {
-01010                 <span class="keywordflow">return</span>(<span class="keyword">true</span>);
-01011         }
-01012 }
+<div class="fragment"><pre>01005 {
+01006         <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#r0">fc</a>.size() == 0)
+01007         {
+01008                 <span class="keywordflow">return</span>(<span class="keyword">false</span>);
+01009         }
+01010         <span class="keywordflow">else</span>
+01011         {
+01012                 <span class="keywordflow">return</span>(<span class="keyword">true</span>);
+01013         }
+01014 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -238,13 +238,13 @@ Returns the size of the file in lines.
 <p>
 This method returns the number of lines in the read file. If it is 0, no lines have been read into memory, either because the file is empty or it does not exist, or cannot be opened due to permission problems.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l01021">1021</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l01023">1023</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01163">fc</a>.
+References <a class="el" href="modules_8h-source.html#l01188">fc</a>.
 <p>
-<div class="fragment"><pre>01022 {
-01023         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#r0">fc</a>.size();
-01024 }
+<div class="fragment"><pre>01024 {
+01025         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#r0">fc</a>.size();
+01026 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -278,15 +278,15 @@ Retrieve one line from the file.
 <p>
 This method retrieves one line from the text file. If an empty non-NULL string is returned, the index was out of bounds, or the line had no data on it.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l01014">1014</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l01016">1016</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01163">fc</a>.
+References <a class="el" href="modules_8h-source.html#l01188">fc</a>.
 <p>
-<div class="fragment"><pre>01015 {
-01016         <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#r0">fc</a>.size()))
-01017                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-01018         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#r0">fc</a>[x];
-01019 }
+<div class="fragment"><pre>01017 {
+01018         <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#r0">fc</a>.size()))
+01019                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+01020         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#r0">fc</a>[x];
+01021 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -320,15 +320,15 @@ Used to load a file.
 <p>
 This method loads a file into the class ready for GetLine and and other methods to be called. If the file could not be loaded, <a class="el" href="classFileReader.html#a6">FileReader::FileSize</a> returns 0.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00990">990</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00992">992</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01163">fc</a>, and <a class="el" href="modules_8h-source.html#l00067">file_cache</a>.
+References <a class="el" href="modules_8h-source.html#l01188">fc</a>, and <a class="el" href="modules_8h-source.html#l00067">file_cache</a>.
 <p>
-<div class="fragment"><pre>00991 {
-00992         <a class="code" href="modules_8h.html#a31">file_cache</a> c;
-00993         readfile(c,filename.c_str());
-00994         this-&gt;<a class="code" href="classFileReader.html#r0">fc</a> = c;
-00995 }
+<div class="fragment"><pre>00993 {
+00994         <a class="code" href="modules_8h.html#a31">file_cache</a> c;
+00995         readfile(c,filename.c_str());
+00996         this-&gt;<a class="code" href="classFileReader.html#r0">fc</a> = c;
+00997 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -354,14 +354,14 @@ References <a class="el" href="modules_8h-source.html#l01163">fc</a>, and <a cla
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01163">1163</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01188">1188</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l01002">Exists()</a>, <a class="el" href="modules_8cpp-source.html#l00979">FileReader()</a>, <a class="el" href="modules_8cpp-source.html#l01021">FileSize()</a>, <a class="el" href="modules_8cpp-source.html#l01014">GetLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00990">LoadFile()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l01004">Exists()</a>, <a class="el" href="modules_8cpp-source.html#l00981">FileReader()</a>, <a class="el" href="modules_8cpp-source.html#l01023">FileSize()</a>, <a class="el" href="modules_8cpp-source.html#l01016">GetLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00992">LoadFile()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index c4ab25dee26511244a869fca7b95416279aea0e3..b8e35fd5853cd50a6e88a68a3fc66e943714b307 100644 (file)
@@ -15,7 +15,7 @@
   <tr class="memlist"><td><a class="el" href="classXLine.html#o0">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classXLine.html#o2">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 623741c5a07e4a5a266bb1e90047c3c9468df703..3ea20d2ce605b5c3f4fde0e3d05d30c8d29270a9 100644 (file)
@@ -53,7 +53,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00079">79</a> of fi
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index f1eeb07c76ee4e70054e362526f21267310be888..e76b1ac3e998c7e72f5d034d54f48990f4a5807c 100644 (file)
@@ -14,7 +14,7 @@
   <tr class="memlist"><td><a class="el" href="classHostItem.html#o0">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classHostItem.html#a1">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 97e3f7154a91c2514918432bceaf975f9474b18f..71d59cfe3656eedb559a189e482a195c0aa4202f 100644 (file)
@@ -178,7 +178,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00032">32</a> of
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 58554fc61495abaf946c7f3780cf667f693f3649..4a5a4aa56d8f1ff1f8682e76e14ad3c5049f32e9 100644 (file)
@@ -14,7 +14,7 @@
   <tr class="memlist"><td><a class="el" href="classHostItem.html#o0">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classHostItem.html#a1">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:04 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 626406afd11ecfbceb2454b35789cbbf62cab049..2172cc4ea40cd8fcacd9f307130567174ebd2a67 100644 (file)
@@ -22,7 +22,7 @@ A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to h
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00061">61</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:04 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index fee911d3812d54431bb712b2e4db46da87facb7e..e6442ed32bc9040484ff83f187a840696adc7da7 100644 (file)
@@ -10,7 +10,7 @@
   <tr class="memlist"><td><a class="el" href="classInvited.html#o0">channel</a></td><td><a class="el" href="classInvited.html">Invited</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a0">classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 57b456cd11d3205770480209c1cc16c71a315d01..61717cecc2aa7c9a180e1ea8d058c5183cd98b94 100644 (file)
@@ -52,7 +52,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00085">userrec::Invite
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="users_8h-source.html">users.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index b76cb3967396458ffe5e19fe2b1807dbd49c529c..556118288d4b1639cbab3b04ec6e1d7f856c23d4 100644 (file)
@@ -15,7 +15,7 @@
   <tr class="memlist"><td><a class="el" href="classXLine.html#o0">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classXLine.html#o2">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:04 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 424dee41d49a216779260982c2ed05d226910bc0..4f707ad9247bd8a830e2f78bb9e079e51d229ae4 100644 (file)
@@ -53,7 +53,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00068">68</a> of fi
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:04 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index dca5b61d42ca6208cbed7e14d35ecbed60fd956f..fceaaac90df31020877dfae693520ab3c3e48787 100644 (file)
@@ -12,7 +12,7 @@
   <tr class="memlist"><td><a class="el" href="classModeParameter.html#o0">mode</a></td><td><a class="el" href="classModeParameter.html">ModeParameter</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classModeParameter.html#o1">parameter</a></td><td><a class="el" href="classModeParameter.html">ModeParameter</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:04 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 8cd028b8c1105d2049a0a54fcc966bf1717fd675..4f4bdd98bef7b08e01bdb0f7829013c28efd3bb2 100644 (file)
@@ -53,7 +53,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00070">70</a> of
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00075">75</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00149">chanrec::SetCustomModeParam()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00150">chanrec::SetCustomModeParam()</a>.    </td>
   </tr>
 </table>
 <a name="o0" doxytag="ModeParameter::mode"></a><p>
@@ -79,7 +79,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00149">chanrec::Set
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00073">73</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00149">chanrec::SetCustomModeParam()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00150">chanrec::SetCustomModeParam()</a>.    </td>
   </tr>
 </table>
 <a name="o1" doxytag="ModeParameter::parameter"></a><p>
@@ -105,12 +105,12 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00149">chanrec::Set
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00074">74</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00149">chanrec::SetCustomModeParam()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00150">chanrec::SetCustomModeParam()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:04 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 899b9eb48f3b34dc03578b7d7758dc70fe7aaede..ddafaae13771ea9392460b85e8c33c39c91e7964 100644 (file)
   <tr class="memlist"><td><a class="el" href="classModule.html#a33">OnCheckReady</a>(userrec *user)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#a45">OnEvent</a>(Event *event)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#a12">OnExtendedMode</a>(userrec *user, void *target, char modechar, int type, bool mode_on, string_list &amp;params)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classModule.html#a49">OnGlobalConnect</a>(userrec *user)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classModule.html#a48">OnGlobalOper</a>(userrec *user)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#a17">OnInfo</a>(userrec *user)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#a28">OnKill</a>(userrec *source, userrec *dest, std::string reason)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#a29">OnLoadModule</a>(Module *mod, std::string name)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#a43">OnLocalTopicChange</a>(userrec *user, chanrec *chan, std::string topic)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#a44">OnMeshToken</a>(char token, string_list params, serverrec *source, serverrec *reply, std::string tcp_host, std::string ipaddr, int port)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#a16">OnOper</a>(userrec *user)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classModule.html#a47">OnOperCompare</a>(std::string password, std::string input)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#a9">OnPacketReceive</a>(std::string &amp;data, std::string serv)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#a8">OnPacketTransmit</a>(std::string &amp;data, std::string serv)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#a32">OnPreCommand</a>(std::string command, char **parameters, int pcnt, userrec *user)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
@@ -56,7 +59,7 @@
   <tr class="memlist"><td><a class="el" href="classModule.html#a18">OnWhois</a>(userrec *source, userrec *dest)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#a1">~Module</a>()</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:06 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:49 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 6062b07140633fd5c12e6ecdf94df174dda67093..c587dcc9027d27962445c71990078ef3cadb552c 100644 (file)
@@ -156,6 +156,15 @@ Inherits <a class="el" href="classclassbase.html">classbase</a>.
 <tr><td class="memItemLeft" nowrap align=right valign=top>virtual char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classModule.html#a46">OnRequest</a> (<a class="el" href="classRequest.html">Request</a> *request)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called whenever a <a class="el" href="classRequest.html">Request</a> class is sent to your module by another module. </em> <a href="#a46"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classModule.html#a47">OnOperCompare</a> (std::string password, std::string input)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called whenever an oper password is to be compared to what a user has input. </em> <a href="#a47"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classModule.html#a48">OnGlobalOper</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called whenever a user is given usermode +o, anywhere on the network. </em> <a href="#a48"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classModule.html#a49">OnGlobalConnect</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called whenever a user connects, anywhere on the network. </em> <a href="#a49"></a><em><br><br></td></tr>
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 Base class for all InspIRCd modules This class is the base class for InspIRCd modules. 
@@ -164,7 +173,7 @@ All modules must inherit from this class, its methods will be called when irc se
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00233">233</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00236">236</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a name="a0" doxytag="Module::Module"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -871,6 +880,78 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00373">373</a>
 </pre></div>    </td>
   </tr>
 </table>
+<a name="a49" doxytag="Module::OnGlobalConnect"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> void Module::OnGlobalConnect </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>user</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual]</code></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Called whenever a user connects, anywhere on the network. 
+<p>
+This event is informational only. You should not change any user information in this event. To do so, use the OnUserConnect method to change the state of local users.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00410">410</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00410 { };
+</pre></div>    </td>
+  </tr>
+</table>
+<a name="a48" doxytag="Module::OnGlobalOper"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> void Module::OnGlobalOper </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>user</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual]</code></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Called whenever a user is given usermode +o, anywhere on the network. 
+<p>
+You cannot override this and prevent it from happening as it is already happened and such a task must be performed by another server. You can however bounce modes by sending servermodes out to reverse mode changes.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00409">409</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00409 { };
+</pre></div>    </td>
+  </tr>
+</table>
 <a name="a17" doxytag="Module::OnInfo"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -1166,6 +1247,51 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00375">375</a>
 </pre></div>    </td>
   </tr>
 </table>
+<a name="a47" doxytag="Module::OnOperCompare"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> int Module::OnOperCompare </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">std::string&nbsp;</td>
+          <td class="mdname" nowrap> <em>password</em>, </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td class="md" nowrap>std::string&nbsp;</td>
+          <td class="mdname" nowrap> <em>input</em></td>
+        </tr>
+        <tr>
+          <td></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [virtual]</code></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Called whenever an oper password is to be compared to what a user has input. 
+<p>
+The password field (from the config file) is in 'password' and is to be compared against 'input'. This method allows for encryption of oper passwords and much more besides. You should return a nonzero value if you want to allow the comparison or zero if you wish to do nothing.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00408">408</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00408 { <span class="keywordflow">return</span> 0; };
+</pre></div>    </td>
+  </tr>
+</table>
 <a name="a9" doxytag="Module::OnPacketReceive"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -2334,7 +2460,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00377">377</a>
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:06 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:49 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 9349845bae9067d92844023db95b2800d9715bfe..eb43d4db8e558c7faa640d53560eca889de96c20 100644 (file)
@@ -12,7 +12,7 @@
   <tr class="memlist"><td><a class="el" href="classModuleFactory.html#a0">ModuleFactory</a>()</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModuleFactory.html#a1">~ModuleFactory</a>()</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:06 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:50 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 46ebd6f6c25a80be1c5916ac2d88abe428705f9e..b17f506434a40f563d100f9b2ec7c34324e24c74 100644 (file)
@@ -30,7 +30,7 @@ This is to allow for modules to create many different variants of <a class="el"
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01216">1216</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l01241">1241</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a name="a0" doxytag="ModuleFactory::ModuleFactory"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -58,9 +58,9 @@ Definition at line <a class="el" href="modules_8h-source.html#l01216">1216</a> o
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01219">1219</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01244">1244</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-<div class="fragment"><pre>01219 { }
+<div class="fragment"><pre>01244 { }
 </pre></div>    </td>
   </tr>
 </table>
@@ -91,9 +91,9 @@ Definition at line <a class="el" href="modules_8h-source.html#l01219">1219</a> o
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01220">1220</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01245">1245</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-<div class="fragment"><pre>01220 { }
+<div class="fragment"><pre>01245 { }
 </pre></div>    </td>
   </tr>
 </table>
@@ -130,7 +130,7 @@ Your inherited class of ModuleFactory must return a pointer to your <a class="el
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="modules_8h-source.html">modules.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:06 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:50 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index d580383176d1680e510b857343158b4754498782..91cee99f43b52026ada5d87b867aba646000ca54 100644 (file)
@@ -10,7 +10,7 @@
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a0">classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModuleMessage.html#a0">Send</a>()=0</td><td><a class="el" href="classModuleMessage.html">ModuleMessage</a></td><td><code> [pure virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:06 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:50 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 98ed3879d92614efc2c972404763a73bd3202ef4..75d1769b2d89f28c055ae5f7990b66f8e642a280 100644 (file)
@@ -26,7 +26,7 @@ The ModuleMessage class is the base class of <a class="el" href="classRequest.ht
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00138">138</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Member Function Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00141">141</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Member Function Documentation</h2>
 <a name="a0" doxytag="ModuleMessage::Send"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -61,7 +61,7 @@ Implemented in <a class="el" href="classRequest.html#a4">Request</a>, and <a cla
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="modules_8h-source.html">modules.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:06 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:50 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index fb7c04944527a949c1548e47fb5b66321c5cecb4..da0ee8a079989036588c622c32bd7f727b2ff6ef 100644 (file)
@@ -16,7 +16,7 @@
   <tr class="memlist"><td><a class="el" href="classXLine.html#o0">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classXLine.html#o2">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:06 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:50 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index a4fac087ac84e332aad5bb9d38a02351c7b85fa3..2404c5e44b22943bfd3f176a02ad36bc9b192363 100644 (file)
@@ -82,7 +82,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00114">114</a> of f
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:06 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:50 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 508792dd792269ce3ecb72da23a4e6267b297f25..e9c70663d0395d01cb0d2a12bebbfe29a6748cab 100644 (file)
@@ -17,7 +17,7 @@
   <tr class="memlist"><td><a class="el" href="classRequest.html#a4">Send</a>()</td><td><a class="el" href="classRequest.html">Request</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classRequest.html#p1">source</a></td><td><a class="el" href="classRequest.html">Request</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:07 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:50 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 8af50c2b9f8b2d0105928c11ecdd986575ecf04b..68ba84a00574c67c11dc13bd524068572162b1c6 100644 (file)
@@ -48,7 +48,7 @@ When this class is properly instantiated it may be sent to a module using the <a
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00151">151</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00154">154</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a name="a0" doxytag="Request::Request"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -132,7 +132,7 @@ Fetch the Request data.
 <p>
 Definition at line <a class="el" href="modules_8cpp-source.html#l00310">310</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00156">data</a>.
+References <a class="el" href="modules_8h-source.html#l00159">data</a>.
 <p>
 <div class="fragment"><pre>00311 {
 00312         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#p0">data</a>;
@@ -171,7 +171,7 @@ Fetch the request destination (should be 'this' in the receiving module).
 <p>
 Definition at line <a class="el" href="modules_8cpp-source.html#l00320">320</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00163">dest</a>.
+References <a class="el" href="modules_8h-source.html#l00166">dest</a>.
 <p>
 <div class="fragment"><pre>00321 {
 00322         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#p2">dest</a>;
@@ -210,7 +210,7 @@ Fetch the request source.
 <p>
 Definition at line <a class="el" href="modules_8cpp-source.html#l00315">315</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00160">source</a>.
+References <a class="el" href="modules_8h-source.html#l00163">source</a>.
 <p>
 <div class="fragment"><pre>00316 {
 00317         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#p1">source</a>;
@@ -251,7 +251,7 @@ Implements <a class="el" href="classModuleMessage.html#a0">ModuleMessage</a>.
 <p>
 Definition at line <a class="el" href="modules_8cpp-source.html#l00325">325</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00163">dest</a>, and <a class="el" href="modules_8cpp-source.html#l00407">Module::OnRequest()</a>.
+References <a class="el" href="modules_8h-source.html#l00166">dest</a>, and <a class="el" href="modules_8cpp-source.html#l00407">Module::OnRequest()</a>.
 <p>
 <div class="fragment"><pre>00326 {
 00327         <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classRequest.html#p2">dest</a>)
@@ -290,7 +290,7 @@ This member holds a pointer to arbitary data set by the emitter of the message.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00156">156</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00159">159</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
 Referenced by <a class="el" href="modules_8cpp-source.html#l00310">GetData()</a>.    </td>
   </tr>
@@ -318,7 +318,7 @@ The single destination of the Request.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00163">163</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00166">166</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
 Referenced by <a class="el" href="modules_8cpp-source.html#l00320">GetDest()</a>, and <a class="el" href="modules_8cpp-source.html#l00325">Send()</a>.    </td>
   </tr>
@@ -346,14 +346,14 @@ This is a pointer to the sender of the message, which can be used to directly tr
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00160">160</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00163">163</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
 Referenced by <a class="el" href="modules_8cpp-source.html#l00315">GetSource()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:07 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:50 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 4f69dbfbbf53d4fb26ff8755bbb43b01bf7d24f5..cff4e3588f8f00197c83f0e347069c1b70834d32 100644 (file)
@@ -67,7 +67,7 @@
   <tr class="memlist"><td><a class="el" href="classServer.html#a36">UserToPseudo</a>(userrec *user, std::string message)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classServer.html#a1">~Server</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:11 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:51 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index f5a542c977124584f4bb01af6ae0657f571d4cf8..ae31470bc51c48b2cd521cea92463e5deaa01683 100644 (file)
@@ -197,7 +197,7 @@ All modules should instantiate at least one copy of this class, and use its memb
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00627">627</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00652">652</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a name="a0" doxytag="Server::Server"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -227,10 +227,10 @@ Default constructor.
 <p>
 Creates a Server object.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00414">414</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00416">416</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00415 {
-00416 }
+<div class="fragment"><pre>00417 {
+00418 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -263,10 +263,10 @@ Default destructor.
 <p>
 Destroys a Server object.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00418">418</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00420">420</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00419 {
-00420 }
+<div class="fragment"><pre>00421 {
+00422 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -330,13 +330,13 @@ This allows modules to add extra commands into the command table. You must place
 typedef void (handlerfunc) (char**, int, userrec*); ... void <a class="el" href="commands_8h.html#a5">handle_kill(char **parameters, int pcnt, userrec *user)</a><p>
 When the command is typed, the parameters will be placed into the parameters array (similar to argv) and the parameter count will be placed into pcnt (similar to argv). There will never be any less parameters than the 'minparams' value you specified when creating the command. The *user parameter is the class of the user which caused the command to trigger, who will always have the flag you specified in 'flags' when creating the initial command. For example to create an oper only command create the commands with flags='o'. The source parameter is used for resource tracking, and should contain the name of your module (with file extension) e.g. "m_blarp.so". If you place the wrong identifier here, you can cause crashes if your module is unloaded.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00495">495</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00497">497</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="modules_8h.html#a35">createcommand()</a>.
 <p>
-<div class="fragment"><pre>00496 {
-00497         <a class="code" href="modules_8h.html#a35">createcommand</a>(cmd,f,flags,minparams,source);
-00498 }
+<div class="fragment"><pre>00498 {
+00499         <a class="code" href="modules_8h.html#a35">createcommand</a>(cmd,f,flags,minparams,source);
+00500 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -391,13 +391,13 @@ Adds a E-line The E-line is enforced as soon as it is added.
 <p>
 The duration must be in seconds, however you can use the <a class="el" href="classServer.html#a48">Server::CalcDuration</a> method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name. 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00713">713</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00715">715</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="xline_8h.html#a5">add_eline()</a>, and <a class="el" href="commands_8h.html#a75">duration()</a>.
 <p>
-<div class="fragment"><pre>00714 {
-00715         <a class="code" href="xline_8h.html#a5">add_eline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-00716 }
+<div class="fragment"><pre>00716 {
+00717         <a class="code" href="xline_8h.html#a5">add_eline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+00718 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -436,16 +436,16 @@ This call is used to implement modes like +q and +a. The characteristics of thes
 (4) The mode and its parameter are NOT stored in the channels modes structure<p>
 It is down to the module handling the mode to maintain state and determine what 'items' (e.g. users, or a banlist) have the mode set on them, and process the modes at the correct times, e.g. during access checks on channels, etc. When the extended mode is triggered the OnExtendedMode method will be triggered as above. Note that the target you are given will be a channel, if for example your mode is set 'on a user' (in for example +a) you must use Server::Find to locate the user the mode is operating on. Your mode handler may return 1 to handle the mode AND tell the core to display the mode change, e.g. '+aaa one two three' in the case of the mode for 'two', or it may return -1 to 'eat' the mode change, so the above example would become '+aa one three' after processing.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00640">640</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00642">642</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="modules_8cpp-source.html#l00277">DoAddExtendedMode()</a>, <a class="el" href="modules_8cpp-source.html#l00287">ModeMakeList()</a>, and <a class="el" href="modules_8h-source.html#l00031">MT_CHANNEL</a>.
 <p>
-<div class="fragment"><pre>00641 {
-00642         <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(modechar,MT_CHANNEL,<span class="keyword">false</span>,1,1);
-00643         <span class="keywordflow">if</span> (res)
-00644                 <a class="code" href="modules_8cpp.html#a58">ModeMakeList</a>(modechar);
-00645         <span class="keywordflow">return</span> res;
-00646 }
+<div class="fragment"><pre>00643 {
+00644         <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(modechar,MT_CHANNEL,<span class="keyword">false</span>,1,1);
+00645         <span class="keywordflow">if</span> (res)
+00646                 <a class="code" href="modules_8cpp.html#a58">ModeMakeList</a>(modechar);
+00647         <span class="keywordflow">return</span> res;
+00648 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -506,28 +506,28 @@ Adds an extended mode letter which is parsed by a module.
 <p>
 This allows modules to add extra mode letters, e.g. +x for hostcloak. the "type" parameter is either MT_CHANNEL, MT_CLIENT, or MT_SERVER, to indicate wether the mode is a channel mode, a client mode, or a server mode. requires_oper is used with MT_CLIENT type modes only to indicate the mode can only be set or unset by an oper. If this is used for MT_CHANNEL type modes it is ignored. params_when_on is the number of modes to expect when the mode is turned on (for type MT_CHANNEL only), e.g. with mode +k, this would have a value of 1. the params_when_off value has a similar value to params_when_on, except it indicates the number of parameters to expect when the mode is disabled. Modes which act in a similar way to channel mode +l (e.g. require a parameter to enable, but not to disable) should use this parameter. The function returns false if the mode is unavailable, and will not attempt to allocate another character, as this will confuse users. This also means that as only one module can claim a specific mode character, the core does not need to keep track of which modules own which modes, which speeds up operation of the server. In this version, a mode can have at most one parameter, attempting to use more parameters will have undefined effects.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00620">620</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00622">622</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="modules_8cpp-source.html#l00277">DoAddExtendedMode()</a>, <a class="el" href="modules_8h-source.html#l00032">MT_CLIENT</a>, and <a class="el" href="modules_8h-source.html#l00033">MT_SERVER</a>.
 <p>
-<div class="fragment"><pre>00621 {
-00622         <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#a7">MT_SERVER</a>)
-00623         {
-00624                 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
-00625                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00626         }
-00627         <span class="keywordflow">if</span> (((params_when_on&gt;0) || (params_when_off&gt;0)) &amp;&amp; (type == <a class="code" href="modules_8h.html#a6">MT_CLIENT</a>))
-00628         {
-00629                 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
-00630                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00631         }
-00632         <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
-00633         {
-00634                 log(DEBUG,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
-00635                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00636         }
-00637         <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
-00638 }
+<div class="fragment"><pre>00623 {
+00624         <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#a7">MT_SERVER</a>)
+00625         {
+00626                 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
+00627                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00628         }
+00629         <span class="keywordflow">if</span> (((params_when_on&gt;0) || (params_when_off&gt;0)) &amp;&amp; (type == <a class="code" href="modules_8h.html#a6">MT_CLIENT</a>))
+00630         {
+00631                 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
+00632                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00633         }
+00634         <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
+00635         {
+00636                 log(DEBUG,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
+00637                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00638         }
+00639         <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
+00640 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -582,13 +582,13 @@ Adds a G-line The G-line is propogated to all of the servers in the mesh and enf
 <p>
 The duration must be in seconds, however you can use the <a class="el" href="classServer.html#a48">Server::CalcDuration</a> method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00693">693</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00695">695</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="xline_8h.html#a1">add_gline()</a>, and <a class="el" href="commands_8h.html#a75">duration()</a>.
 <p>
-<div class="fragment"><pre>00694 {
-00695         <a class="code" href="xline_8h.html#a1">add_gline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-00696 }
+<div class="fragment"><pre>00696 {
+00697         <a class="code" href="xline_8h.html#a1">add_gline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+00698 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -643,13 +643,13 @@ Adds a K-line The K-line is enforced as soon as it is added.
 <p>
 The duration must be in seconds, however you can use the <a class="el" href="classServer.html#a48">Server::CalcDuration</a> method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name. 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00708">708</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00710">710</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="xline_8h.html#a4">add_kline()</a>, and <a class="el" href="commands_8h.html#a75">duration()</a>.
 <p>
-<div class="fragment"><pre>00709 {
-00710         <a class="code" href="xline_8h.html#a4">add_kline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-00711 }
+<div class="fragment"><pre>00711 {
+00712         <a class="code" href="xline_8h.html#a4">add_kline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+00713 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -704,13 +704,13 @@ Adds a Q-line The Q-line is propogated to all of the servers in the mesh and enf
 <p>
 The duration must be in seconds, however you can use the <a class="el" href="classServer.html#a48">Server::CalcDuration</a> method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name. 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00698">698</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00700">700</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="xline_8h.html#a2">add_qline()</a>, and <a class="el" href="commands_8h.html#a75">duration()</a>.
 <p>
-<div class="fragment"><pre>00699 {
-00700         <a class="code" href="xline_8h.html#a2">add_qline</a>(duration, source.c_str(), reason.c_str(), nickname.c_str());
-00701 }
+<div class="fragment"><pre>00701 {
+00702         <a class="code" href="xline_8h.html#a2">add_qline</a>(duration, source.c_str(), reason.c_str(), nickname.c_str());
+00703 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -765,13 +765,13 @@ Adds a Z-line The Z-line is propogated to all of the servers in the mesh and enf
 <p>
 The duration must be in seconds, however you can use the <a class="el" href="classServer.html#a48">Server::CalcDuration</a> method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name. 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00703">703</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00705">705</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="xline_8h.html#a3">add_zline()</a>, and <a class="el" href="commands_8h.html#a75">duration()</a>.
 <p>
-<div class="fragment"><pre>00704 {
-00705         <a class="code" href="xline_8h.html#a3">add_zline</a>(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
-00706 }
+<div class="fragment"><pre>00706 {
+00707         <a class="code" href="xline_8h.html#a3">add_zline</a>(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
+00708 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -805,13 +805,13 @@ Calculates a duration This method will take a string containing a formatted dura
 <p>
 "1w2d") and return its value as a total number of seconds. This is the same function used internally by /GLINE etc to set the ban times.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00743">743</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00745">745</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="commands_8h.html#a75">duration()</a>.
 <p>
-<div class="fragment"><pre>00744 {
-00745         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a75">duration</a>(delta.c_str());
-00746 }
+<div class="fragment"><pre>00746 {
+00747         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a75">duration</a>(delta.c_str());
+00748 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -867,11 +867,11 @@ Calls the handler for a command, either implemented by the core or by another mo
 You can use this function to trigger other commands in the ircd, such as PRIVMSG, JOIN, KICK etc, or even as a method of callback. By defining command names that are untypeable for users on irc (e.g. those which contain a  or <br>
 ) you may use them as callback identifiers. The first parameter to this method is the name of the command handler you wish to call, e.g. PRIVMSG. This will be a command handler previously registered by the core or wih <a class="el" href="classServer.html#a23">AddCommand()</a>. The second parameter is an array of parameters, and the third parameter is a count of parameters in the array. If you do not pass enough parameters to meet the minimum needed by the handler, the functiom will silently ignore it. The final parameter is the user executing the command handler, used for privilage checks, etc.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00485">485</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00487">487</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00486 {
-00487         call_handler(commandname.c_str(),parameters,pcnt,user);
-00488 }
+<div class="fragment"><pre>00488 {
+00489         call_handler(commandname.c_str(),parameters,pcnt,user);
+00490 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -914,13 +914,13 @@ Change GECOS (fullname) of a user.
 <p>
 You should always call this method to change a user's GECOS rather than writing directly to the fullname member of userrec, as any change applied via this method will be propogated to any linked servers.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00573">573</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00575">575</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="message_8h.html#a10">ChangeName()</a>.
 <p>
-<div class="fragment"><pre>00574 {
-00575         <a class="code" href="message_8h.html#a10">ChangeName</a>(user,gecos.c_str());
-00576 }
+<div class="fragment"><pre>00576 {
+00577         <a class="code" href="message_8h.html#a10">ChangeName</a>(user,gecos.c_str());
+00578 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -963,13 +963,13 @@ Change displayed hostname of a user.
 <p>
 You should always call this method to change a user's host rather than writing directly to the dhost member of userrec, as any change applied via this method will be propogated to any linked servers.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00568">568</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00570">570</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="message_8h.html#a11">ChangeDisplayedHost()</a>.
 <p>
-<div class="fragment"><pre>00569 {
-00570         <a class="code" href="message_8h.html#a11">ChangeDisplayedHost</a>(user,host.c_str());
-00571 }
+<div class="fragment"><pre>00571 {
+00572         <a class="code" href="message_8h.html#a11">ChangeDisplayedHost</a>(user,host.c_str());
+00573 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1012,11 +1012,11 @@ Forces a user nickchange.
 <p>
 This command works similarly to SVSNICK, and can be used to implement Q-lines etc. If you specify an invalid nickname, the nick change will be dropped and the target user will receive the error numeric for it.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00469">469</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00471">471</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00470 {
-00471         force_nickchange(user,nickname.c_str());
-00472 }
+<div class="fragment"><pre>00472 {
+00473         force_nickchange(user,nickname.c_str());
+00474 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1059,13 +1059,13 @@ Attempts to look up a user's privilages on a channel.
 <p>
 This function will return a string containing either @, , +, or an empty string, representing the user's privilages upon the channel you specify.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00593">593</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00595">595</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="message_8h.html#a14">cmode()</a>.
 <p>
-<div class="fragment"><pre>00594 {
-00595         <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a14">cmode</a>(User,Chan);
-00596 }
+<div class="fragment"><pre>00596 {
+00597         <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a14">cmode</a>(User,Chan);
+00598 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1108,13 +1108,13 @@ Returns true if two users share a common channel.
 <p>
 This method is used internally by the NICK and QUIT commands, and the <a class="el" href="classServer.html#a10">Server::SendCommon</a> method.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00546">546</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00548">548</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="message_8h.html#a0">common_channels()</a>.
 <p>
-<div class="fragment"><pre>00547 {
-00548         <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a0">common_channels</a>(u1,u2) != 0);
-00549 }
+<div class="fragment"><pre>00549 {
+00550         <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a0">common_channels</a>(u1,u2) != 0);
+00551 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1148,11 +1148,11 @@ Returns a count of the number of users on a channel.
 <p>
 This will NEVER be 0, as if the chanrec exists, it will have at least one user in the channel.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00648">648</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00650">650</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00649 {
-00650         <span class="keywordflow">return</span> usercount(c);
-00651 }
+<div class="fragment"><pre>00651 {
+00652         <span class="keywordflow">return</span> usercount(c);
+00653 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1186,13 +1186,13 @@ Deletes a local E-Line.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00738">738</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00740">740</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="xline_8h.html#a10">del_eline()</a>.
 <p>
-<div class="fragment"><pre>00739 {
-00740         <a class="code" href="xline_8h.html#a10">del_eline</a>(hostmask.c_str());
-00741 }
+<div class="fragment"><pre>00741 {
+00742         <a class="code" href="xline_8h.html#a10">del_eline</a>(hostmask.c_str());
+00743 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1226,13 +1226,13 @@ Deletes a G-Line from all servers on the mesh.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00718">718</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00720">720</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="xline_8h.html#a6">del_gline()</a>.
 <p>
-<div class="fragment"><pre>00719 {
-00720         <a class="code" href="xline_8h.html#a6">del_gline</a>(hostmask.c_str());
-00721 }
+<div class="fragment"><pre>00721 {
+00722         <a class="code" href="xline_8h.html#a6">del_gline</a>(hostmask.c_str());
+00723 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1266,13 +1266,13 @@ Deletes a local K-Line.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00733">733</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00735">735</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="xline_8h.html#a9">del_kline()</a>.
 <p>
-<div class="fragment"><pre>00734 {
-00735         <a class="code" href="xline_8h.html#a9">del_kline</a>(hostmask.c_str());
-00736 }
+<div class="fragment"><pre>00736 {
+00737         <a class="code" href="xline_8h.html#a9">del_kline</a>(hostmask.c_str());
+00738 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1306,13 +1306,13 @@ Deletes a Q-Line from all servers on the mesh.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00723">723</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00725">725</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="xline_8h.html#a7">del_qline()</a>.
 <p>
-<div class="fragment"><pre>00724 {
-00725         <a class="code" href="xline_8h.html#a7">del_qline</a>(nickname.c_str());
-00726 }
+<div class="fragment"><pre>00726 {
+00727         <a class="code" href="xline_8h.html#a7">del_qline</a>(nickname.c_str());
+00728 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1346,13 +1346,13 @@ Deletes a Z-Line from all servers on the mesh.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00728">728</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00730">730</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="xline_8h.html#a8">del_zline()</a>.
 <p>
-<div class="fragment"><pre>00729 {
-00730         <a class="code" href="xline_8h.html#a8">del_zline</a>(ipaddr.c_str());
-00731 }
+<div class="fragment"><pre>00731 {
+00732         <a class="code" href="xline_8h.html#a8">del_zline</a>(ipaddr.c_str());
+00733 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1386,11 +1386,11 @@ Attempts to look up a channel and return a pointer to it.
 <p>
 This function will return NULL if the channel does not exist.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00588">588</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00590">590</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00589 {
-00590         <span class="keywordflow">return</span> FindChan(channel.c_str());
-00591 }
+<div class="fragment"><pre>00591 {
+00592         <span class="keywordflow">return</span> FindChan(channel.c_str());
+00593 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1424,20 +1424,20 @@ This function finds a module by name.
 <p>
 You must provide the filename of the module. If the module cannot be found (is not loaded) the function will return NULL.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00821">821</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00823">823</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp-source.html#l01030">MODCOUNT</a>, <a class="el" href="channels_8cpp-source.html#l00092">module_names</a>, and <a class="el" href="channels_8cpp-source.html#l00064">modules</a>.
+References <a class="el" href="modules_8cpp-source.html#l01032">MODCOUNT</a>, <a class="el" href="channels_8cpp-source.html#l00092">module_names</a>, and <a class="el" href="channels_8cpp-source.html#l00064">modules</a>.
 <p>
-<div class="fragment"><pre>00822 {
-00823         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="modules_8cpp.html#a1">MODCOUNT</a>; i++)
-00824         {
-00825                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a27">module_names</a>[i] == name)
-00826                 {
-00827                         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#a2">modules</a>[i];
-00828                 }
-00829         }
-00830         <span class="keywordflow">return</span> NULL;
-00831 }
+<div class="fragment"><pre>00824 {
+00825         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="modules_8cpp.html#a1">MODCOUNT</a>; i++)
+00826         {
+00827                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a27">module_names</a>[i] == name)
+00828                 {
+00829                         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#a2">modules</a>[i];
+00830                 }
+00831         }
+00832         <span class="keywordflow">return</span> NULL;
+00833 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1471,11 +1471,11 @@ Attempts to look up a nick and return a pointer to it.
 <p>
 This function will return NULL if the nick does not exist.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00583">583</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00585">585</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00584 {
-00585         <span class="keywordflow">return</span> Find(nick);
-00586 }
+<div class="fragment"><pre>00586 {
+00587         <span class="keywordflow">return</span> Find(nick);
+00588 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1508,11 +1508,11 @@ Returns the information of the server as returned by the /ADMIN command.
 <p>
 See the <a class="el" href="classAdmin.html">Admin</a> class for further information of the return value. The members <a class="el" href="classAdmin.html#o2">Admin::Nick</a>, <a class="el" href="classAdmin.html#o1">Admin::Email</a> and <a class="el" href="classAdmin.html#o0">Admin::Name</a> contain the information for the server where the module is loaded.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00613">613</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00615">615</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00614 {
-00615         <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
-00616 }
+<div class="fragment"><pre>00616 {
+00617         <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+00618 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1545,11 +1545,11 @@ Returns the network name, global to all linked servers.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00608">608</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00610">610</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00609 {
-00610         <span class="keywordflow">return</span> getnetworkname();
-00611 }
+<div class="fragment"><pre>00611 {
+00612         <span class="keywordflow">return</span> getnetworkname();
+00613 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1582,11 +1582,11 @@ Returns the server name of the server where the module is loaded.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00603">603</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00605">605</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00604 {
-00605         <span class="keywordflow">return</span> getservername();
-00606 }
+<div class="fragment"><pre>00606 {
+00607         <span class="keywordflow">return</span> getservername();
+00608 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1620,28 +1620,28 @@ Fetches the userlist of a channel.
 <p>
 This function must be here and not a member of userrec or chanrec due to include constraints.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00450">450</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00452">452</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="modules_8h-source.html#l00072">chanuserlist</a>, <a class="el" href="modules_8cpp-source.html#l00181">clientlist</a>, <a class="el" href="message_8h.html#a16">has_channel()</a>, and <a class="el" href="message_8h.html#a13">isnick()</a>.
 <p>
-<div class="fragment"><pre>00451 {
-00452         <a class="code" href="modules_8h.html#a33">chanuserlist</a> userl;
-00453         userl.clear();
-00454         <span class="keywordflow">for</span> (user_hash::const_iterator i = <a class="code" href="modules_8cpp.html#a42">clientlist</a>.begin(); i != <a class="code" href="modules_8cpp.html#a42">clientlist</a>.end(); i++)
-00455         {
-00456                 <span class="keywordflow">if</span> (i-&gt;second)
-00457                 {
-00458                         <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#a16">has_channel</a>(i-&gt;second,chan))
-00459                         {
-00460                                 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#a13">isnick</a>(i-&gt;second-&gt;nick))
-00461                                 {
-00462                                         userl.push_back(i-&gt;second);
-00463                                 }
-00464                         }
-00465                 }
-00466         }
-00467         <span class="keywordflow">return</span> userl;
-00468 }
+<div class="fragment"><pre>00453 {
+00454         <a class="code" href="modules_8h.html#a33">chanuserlist</a> userl;
+00455         userl.clear();
+00456         <span class="keywordflow">for</span> (user_hash::const_iterator i = <a class="code" href="modules_8cpp.html#a42">clientlist</a>.begin(); i != <a class="code" href="modules_8cpp.html#a42">clientlist</a>.end(); i++)
+00457         {
+00458                 <span class="keywordflow">if</span> (i-&gt;second)
+00459                 {
+00460                         <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#a16">has_channel</a>(i-&gt;second,chan))
+00461                         {
+00462                                 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#a13">isnick</a>(i-&gt;second-&gt;nick))
+00463                                 {
+00464                                         userl.push_back(i-&gt;second);
+00465                                 }
+00466                         }
+00467                 }
+00468         }
+00469         <span class="keywordflow">return</span> userl;
+00470 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1675,13 +1675,13 @@ Returns true if a nick is valid.
 <p>
 Nicks for unregistered connections will return false.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00578">578</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00580">580</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="message_8h.html#a13">isnick()</a>.
 <p>
-<div class="fragment"><pre>00579 {
-00580         <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a13">isnick</a>(nick.c_str()) != 0);
-00581 }
+<div class="fragment"><pre>00581 {
+00582         <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a13">isnick</a>(nick.c_str()) != 0);
+00583 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1724,13 +1724,13 @@ Checks if a user is on a channel.
 <p>
 This function will return true or false to indicate if user 'User' is on channel 'Chan'.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00598">598</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00600">600</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="message_8h.html#a16">has_channel()</a>.
 <p>
-<div class="fragment"><pre>00599 {
-00600         <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a16">has_channel</a>(User,Chan);
-00601 }
+<div class="fragment"><pre>00601 {
+00602         <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a16">has_channel</a>(User,Chan);
+00603 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1764,13 +1764,13 @@ Returns true if the servername you give is ulined.
 <p>
 ULined servers have extra privilages. They are allowed to change nicknames on remote servers, change modes of clients which are on remote servers and set modes of channels where there are no channel operators for that channel on the ulined server, amongst other things. Ulined server data is also broadcast across the mesh at all times as opposed to selectively messaged in the case of normal servers, as many ulined server types (such as services) do not support meshed links and must operate in this manner.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00480">480</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00482">482</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="commands_8h.html#a74">is_uline()</a>.
 <p>
-<div class="fragment"><pre>00481 {
-00482         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a74">is_uline</a>(server.c_str());
-00483 }
+<div class="fragment"><pre>00483 {
+00484         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a74">is_uline</a>(server.c_str());
+00485 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1804,35 +1804,35 @@ Returns true if a nick!ident string is correctly formatted, false if otherwise.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00748">748</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00750">750</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00749 {
-00750         <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str();
-00751         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0)
-00752                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00753         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0)
+<div class="fragment"><pre>00751 {
+00752         <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str();
+00753         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0)
 00754                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00755         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-00756                 <span class="keywordflow">if</span> (dest[i] &lt; 32)
-00757                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00758         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-00759                 <span class="keywordflow">if</span> (dest[i] &gt; 126)
-00760                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00761         <span class="keywordtype">int</span> c = 0;
-00762         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-00763                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>)
-00764                         c++;
-00765         <span class="keywordflow">if</span> (c&gt;1)
-00766                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00767         c = 0;
-00768         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-00769                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>)
-00770                         c++;
-00771         <span class="keywordflow">if</span> (c&gt;1)
-00772                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00773 
-00774         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00775 }
+00755         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0)
+00756                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00757         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+00758                 <span class="keywordflow">if</span> (dest[i] &lt; 32)
+00759                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00760         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+00761                 <span class="keywordflow">if</span> (dest[i] &gt; 126)
+00762                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00763         <span class="keywordtype">int</span> c = 0;
+00764         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+00765                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>)
+00766                         c++;
+00767         <span class="keywordflow">if</span> (c&gt;1)
+00768                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00769         c = 0;
+00770         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+00771                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>)
+00772                         c++;
+00773         <span class="keywordflow">if</span> (c&gt;1)
+00774                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00775 
+00776         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00777 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1881,11 +1881,11 @@ Forces a user to join a channel.
 <p>
 This is similar to svsjoin and can be used to implement redirection, etc. On success, the return value is a valid pointer to a chanrec* of the channel the user was joined to. On failure, the result is NULL.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00440">440</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00442">442</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00441 {
-00442         <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">true</span>);
-00443 }
+<div class="fragment"><pre>00443 {
+00444         <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">true</span>);
+00445 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1928,11 +1928,11 @@ Writes a log string.
 <p>
 This method writes a line of text to the log. If the level given is lower than the level given in the configuration, this command has no effect.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00490">490</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00492">492</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00491 {
-00492         log(level,<span class="stringliteral">"%s"</span>,s.c_str());
-00493 }
+<div class="fragment"><pre>00493 {
+00494         log(level,<span class="stringliteral">"%s"</span>,s.c_str());
+00495 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -1975,14 +1975,14 @@ Matches text against a glob pattern.
 <p>
 Uses the ircd's internal matching function to match string against a globbing pattern, e.g. *!*@*.com Returns true if the literal successfully matches the pattern, false if otherwise.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00427">427</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00429">429</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00428 {
-00429         <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
-00430         strlcpy(literal,sliteral.c_str(),MAXBUF);
-00431         strlcpy(pattern,spattern.c_str(),MAXBUF);
-00432         <span class="keywordflow">return</span> match(literal,pattern);
-00433 }
+<div class="fragment"><pre>00430 {
+00431         <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
+00432         strlcpy(literal,sliteral.c_str(),MAXBUF);
+00433         strlcpy(pattern,spattern.c_str(),MAXBUF);
+00434         <span class="keywordflow">return</span> match(literal,pattern);
+00435 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2025,15 +2025,15 @@ This function is used to check if any users on channel c are on server servernam
 <p>
 This is used internally by PRIVMSG etc. You should not need to use it.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00803">803</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00805">805</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00804 {
-00805         <span class="keywordflow">if</span> (c)
-00806         {
-00807                 <span class="keywordflow">return</span> ChanAnyOnThisServer(c,(<span class="keywordtype">char</span>*)servername.c_str());
-00808         }
-00809         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00810 }
+<div class="fragment"><pre>00806 {
+00807         <span class="keywordflow">if</span> (c)
+00808         {
+00809                 <span class="keywordflow">return</span> ChanAnyOnThisServer(c,(<span class="keywordtype">char</span>*)servername.c_str());
+00810         }
+00811         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00812 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2076,15 +2076,15 @@ This function is used to check if user u has any channels in common with users o
 <p>
 This is used internally by <a class="el" href="classServer.html#a51">Server::MeshSendCommon</a>. You should very rarely need to use it.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00812">812</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00814">814</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00813 {
-00814         <span class="keywordflow">if</span> (u)
-00815         {
-00816                 <span class="keywordflow">return</span> CommonOnThisServer(u,(<span class="keywordtype">char</span>*)servername.c_str());
-00817         }
-00818         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00819 }
+<div class="fragment"><pre>00815 {
+00816         <span class="keywordflow">if</span> (u)
+00817         {
+00818                 <span class="keywordflow">return</span> CommonOnThisServer(u,(<span class="keywordtype">char</span>*)servername.c_str());
+00819         }
+00820         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00821 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2118,11 +2118,11 @@ Sends a line of text to all connected servers.
 <p>
 If a server is not directly reachable, the core deals with routing the message, and will also deal with failures transparently.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00777">777</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00779">779</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00778 {
-00779         NetSendToAll((<span class="keywordtype">char</span>*)text.c_str());
-00780 }
+<div class="fragment"><pre>00780 {
+00781         NetSendToAll((<span class="keywordtype">char</span>*)text.c_str());
+00782 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2156,11 +2156,11 @@ This function is equivalent to Server::MeshSendToAll except it will only route t
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00788">788</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00790">790</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00789 {
-00790         NetSendToAllAlive((<span class="keywordtype">char</span>*)text.c_str());
-00791 }
+<div class="fragment"><pre>00791 {
+00792         NetSendToAllAlive((<span class="keywordtype">char</span>*)text.c_str());
+00793 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2203,11 +2203,11 @@ This function sends to all servers EXCEPT the one you specify.
 <p>
 You should usually use this function to send messages, specifying the SENDER of your message as 'target'. This will prevent message loops.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00798">798</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00800">800</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00799 {
-00800         NetSendToAllExcept(target.c_str(),(<span class="keywordtype">char</span>*)text.c_str());
-00801 }
+<div class="fragment"><pre>00801 {
+00802         NetSendToAllExcept(target.c_str(),(<span class="keywordtype">char</span>*)text.c_str());
+00803 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2250,12 +2250,12 @@ This method sends a line of text to all servers who have users which share commo
 <p>
 For example, if user A is on server A, and they are on channels #one and #two, and user B is on server B, and also on channel #one, but user C is on server C and on neither #one or #two, this function will cause the text to only be sent to server B. However, if server B is only reachable via C, it will route it to C (you do not have to worry about this routing, it is done transparently, but its good to know how things work!)
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00782">782</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00784">784</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00783 {
-00784         <span class="keywordflow">if</span> (user)
-00785                 NetSendToCommon(user,(<span class="keywordtype">char</span>*)text.c_str());
-00786 }
+<div class="fragment"><pre>00785 {
+00786         <span class="keywordflow">if</span> (user)
+00787                 NetSendToCommon(user,(<span class="keywordtype">char</span>*)text.c_str());
+00788 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2298,11 +2298,11 @@ This function sends a line of text directly to a server.
 <p>
 If the server is not directly routable at this time, the server attempts to route text through the mesh.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00793">793</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00795">795</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00794 {
-00795         NetSendToOne((<span class="keywordtype">char</span>*)destination.c_str(),(<span class="keywordtype">char</span>*)text.c_str());
-00796 }
+<div class="fragment"><pre>00796 {
+00797         NetSendToOne((<span class="keywordtype">char</span>*)destination.c_str(),(<span class="keywordtype">char</span>*)text.c_str());
+00798 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2351,11 +2351,11 @@ Forces a user to part a channel.
 <p>
 This is similar to svspart and can be used to implement redirection, etc. Although the return value of this function is a pointer to a channel record, the returned data is undefined and should not be read or written to. This behaviour may be changed in a future version.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00445">445</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00447">447</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00446 {
-00447         <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
-00448 }
+<div class="fragment"><pre>00448 {
+00449         <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
+00450 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2404,38 +2404,38 @@ This user takes one user, and switches their file descriptor with another user,
 <p>
 The user in 'alive' is booted off the server with the given message. The user referred to by 'zombie' should have previously been locked with Server::ZombifyUser, otherwise stale sockets and file descriptor leaks can occur. After this call, the pointer to alive will be invalid, and the pointer to zombie will be equivalent in effect to the old pointer to alive.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00663">663</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="channels_8h-source.html#l00213">ucrec::channel</a>, <a class="el" href="users_8h-source.html#l00127">userrec::chans</a>, <a class="el" href="connection_8h-source.html#l00171">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00099">FD_MAGIC_NUMBER</a>, <a class="el" href="connection_8h-source.html#l00175">connection::host</a>, <a class="el" href="users_8h-source.html#l00110">userrec::ident</a>, <a class="el" href="channels_8h-source.html#l00099">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00106">userrec::nick</a>, <a class="el" href="channels_8h-source.html#l00119">chanrec::setby</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::topic</a>, and <a class="el" href="channels_8h-source.html#l00115">chanrec::topicset</a>.
-<p>
-<div class="fragment"><pre>00664 {
-00665         zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a> = alive-&gt;<a class="code" href="classconnection.html#o0">fd</a>;
-00666         alive-&gt;<a class="code" href="classconnection.html#o0">fd</a> = <a class="code" href="modules_8h.html#a26">FD_MAGIC_NUMBER</a>;
-00667         Write(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-&gt;<a class="code" href="classuserrec.html#o0">nick</a>,alive-&gt;<a class="code" href="classuserrec.html#o1">ident</a>,alive-&gt;<a class="code" href="classconnection.html#o1">host</a>,zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>);
-00668         kill_link(alive,message.c_str());
-00669         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i != MAXCHANS; i++)
-00670         {
-00671                 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a> != NULL)
-00672                 {
-00673                         <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a>-&gt;<a class="code" href="classchanrec.html#o0">name</a>)
-00674                         {
-00675                                 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a>;
-00676                                 WriteFrom(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>);
-00677                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#o4">topicset</a>)
-00678                                 {
-00679                                         WriteServ(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o2">topic</a>);
-00680                                         WriteServ(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o5">setby</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o4">topicset</a>);
-00681                                 }
-00682                                 userlist(zombie,Ptr);
-00683                                 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>);
-00684                                 <span class="comment">//WriteServ(zombie-&gt;fd,"324 %s %s +%s",zombie-&gt;nick, Ptr-&gt;name,chanmodes(Ptr));</span>
-00685                                 <span class="comment">//WriteServ(zombie-&gt;fd,"329 %s %s %d", zombie-&gt;nick, Ptr-&gt;name, Ptr-&gt;created);</span>
-00686 
-00687                         }
-00688                 }
-00689         }
-00690 
-00691 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00665">665</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00268">ucrec::channel</a>, <a class="el" href="users_8h-source.html#l00127">userrec::chans</a>, <a class="el" href="connection_8h-source.html#l00183">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00099">FD_MAGIC_NUMBER</a>, <a class="el" href="connection_8h-source.html#l00187">connection::host</a>, <a class="el" href="users_8h-source.html#l00110">userrec::ident</a>, <a class="el" href="channels_8h-source.html#l00099">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00106">userrec::nick</a>, <a class="el" href="channels_8h-source.html#l00128">chanrec::setby</a>, <a class="el" href="channels_8h-source.html#l00117">chanrec::topic</a>, and <a class="el" href="channels_8h-source.html#l00124">chanrec::topicset</a>.
+<p>
+<div class="fragment"><pre>00666 {
+00667         zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a> = alive-&gt;<a class="code" href="classconnection.html#o0">fd</a>;
+00668         alive-&gt;<a class="code" href="classconnection.html#o0">fd</a> = <a class="code" href="modules_8h.html#a26">FD_MAGIC_NUMBER</a>;
+00669         Write(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-&gt;<a class="code" href="classuserrec.html#o0">nick</a>,alive-&gt;<a class="code" href="classuserrec.html#o1">ident</a>,alive-&gt;<a class="code" href="classconnection.html#o1">host</a>,zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>);
+00670         kill_link(alive,message.c_str());
+00671         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i != MAXCHANS; i++)
+00672         {
+00673                 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a> != NULL)
+00674                 {
+00675                         <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a>-&gt;<a class="code" href="classchanrec.html#o0">name</a>)
+00676                         {
+00677                                 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a>;
+00678                                 WriteFrom(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>);
+00679                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#o6">topicset</a>)
+00680                                 {
+00681                                         WriteServ(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o4">topic</a>);
+00682                                         WriteServ(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o7">setby</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o6">topicset</a>);
+00683                                 }
+00684                                 userlist(zombie,Ptr);
+00685                                 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>);
+00686                                 <span class="comment">//WriteServ(zombie-&gt;fd,"324 %s %s +%s",zombie-&gt;nick, Ptr-&gt;name,chanmodes(Ptr));</span>
+00687                                 <span class="comment">//WriteServ(zombie-&gt;fd,"329 %s %s %d", zombie-&gt;nick, Ptr-&gt;name, Ptr-&gt;created);</span>
+00688 
+00689                         }
+00690                 }
+00691         }
+00692 
+00693 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2480,14 +2480,14 @@ To the user, it will appear as if they typed /QUIT themselves, except for the fa
 WARNING!<p>
 Once you call this function, userrec* user will immediately become INVALID. You MUST NOT write to, or read from this pointer after calling the QuitUser method UNDER ANY CIRCUMSTANCES! The best course of action after calling this method is to immediately bail from your handler.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00474">474</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00476">476</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="users_8h-source.html#l00106">userrec::nick</a>, and <a class="el" href="message_8h.html#a19">send_network_quit()</a>.
 <p>
-<div class="fragment"><pre>00475 {
-00476         <a class="code" href="message_8h.html#a19">send_network_quit</a>(user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>,reason.c_str());
-00477         kill_link(user,reason.c_str());
-00478 }
+<div class="fragment"><pre>00477 {
+00478         <a class="code" href="message_8h.html#a19">send_network_quit</a>(user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>,reason.c_str());
+00479         kill_link(user,reason.c_str());
+00480 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2530,11 +2530,11 @@ Sends a line of text down a TCP/IP socket.
 <p>
 This method writes a line of text to an established socket, cutting it to 510 characters plus a carriage return and linefeed if required.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00505">505</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00507">507</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00506 {
-00507         Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-00508 }
+<div class="fragment"><pre>00508 {
+00509         Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00510 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2589,18 +2589,18 @@ Sends text from a user to a channel (mulicast).
 <p>
 This method writes a line of text to a channel, with the given user's nick/ident /host combination prepended, as used in PRIVMSG etc commands (see RFC 1459). If the IncludeSender flag is set, then the text is also sent back to the user from which it originated, as seen in MODE (see RFC 1459).
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00534">534</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-<div class="fragment"><pre>00535 {
-00536         <span class="keywordflow">if</span> (IncludeSender)
-00537         {
-00538                 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00539         }
-00540         <span class="keywordflow">else</span>
-00541         {
-00542                 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00543         }
-00544 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00536">536</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00537 {
+00538         <span class="keywordflow">if</span> (IncludeSender)
+00539         {
+00540                 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00541         }
+00542         <span class="keywordflow">else</span>
+00543         {
+00544                 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00545         }
+00546 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2649,18 +2649,18 @@ Sends text from a user to one or more channels (mulicast).
 <p>
 This method writes a line of text to all users which share a common channel with a given user, with the user's nick/ident/host combination prepended, as used in PRIVMSG etc commands (see RFC 1459). If the IncludeSender flag is set, then the text is also sent back to the user from which it originated, as seen in NICK (see RFC 1459). Otherwise, it is only sent to the other recipients, as seen in QUIT.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00551">551</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-<div class="fragment"><pre>00552 {
-00553         <span class="keywordflow">if</span> (IncludeSender)
-00554         {
-00555                 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
-00556         }
-00557         <span class="keywordflow">else</span>
-00558         {
-00559                 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
-00560         }
-00561 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00553">553</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00554 {
+00555         <span class="keywordflow">if</span> (IncludeSender)
+00556         {
+00557                 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00558         }
+00559         <span class="keywordflow">else</span>
+00560         {
+00561                 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00562         }
+00563 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2709,11 +2709,11 @@ Sends text from a user to a socket.
 <p>
 This method writes a line of text to an established socket, with the given user's nick/ident /host combination prepended, as used in PRIVSG etc commands (see RFC 1459)
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00515">515</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00517">517</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00516 {
-00517         WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00518 }
+<div class="fragment"><pre>00518 {
+00519         WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00520 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2769,13 +2769,13 @@ modes[2] = user-&gt;nick;<p>
 Srv-&gt;SendMode(modes,3,user);<p>
 The modes will originate from the server where the command was issued, however responses (e.g. numerics) will be sent to the user you provide as the third parameter. You must be sure to get the number of parameters correct in the pcnt parameter otherwise you could leave your server in an unstable state!
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00500">500</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00502">502</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
 References <a class="el" href="modules_8h.html#a36">server_mode()</a>.
 <p>
-<div class="fragment"><pre>00501 {
-00502         <a class="code" href="modules_8h.html#a36">server_mode</a>(parameters,pcnt,user);
-00503 }
+<div class="fragment"><pre>00503 {
+00504         <a class="code" href="modules_8h.html#a36">server_mode</a>(parameters,pcnt,user);
+00505 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2809,11 +2809,11 @@ Sends text to all opers.
 <p>
 This method sends a server notice to all opers with the usermode +s.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00422">422</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00424">424</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00423 {
-00424         WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
-00425 }
+<div class="fragment"><pre>00425 {
+00426         WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
+00427 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2856,11 +2856,11 @@ Sends text from the server to a socket.
 <p>
 This method writes a line of text to an established socket, with the servername prepended as used by numerics (see RFC 1459)
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00510">510</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00512">512</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00511 {
-00512         WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-00513 }
+<div class="fragment"><pre>00513 {
+00514         WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00515 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2913,22 +2913,22 @@ The format will become:<p>
 :localserver TEXT<p>
 Which is useful for numerics and server notices to single users, etc.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00520">520</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="connection_8h-source.html#l00171">connection::fd</a>.
-<p>
-<div class="fragment"><pre>00521 {
-00522         <span class="keywordflow">if</span> (!Source)
-00523         {
-00524                 <span class="comment">// if source is NULL, then the message originates from the local server</span>
-00525                 Write(Dest-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
-00526         }
-00527         <span class="keywordflow">else</span>
-00528         {
-00529                 <span class="comment">// otherwise it comes from the user specified</span>
-00530                 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
-00531         }
-00532 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00522">522</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="connection_8h-source.html#l00183">connection::fd</a>.
+<p>
+<div class="fragment"><pre>00523 {
+00524         <span class="keywordflow">if</span> (!Source)
+00525         {
+00526                 <span class="comment">// if source is NULL, then the message originates from the local server</span>
+00527                 Write(Dest-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
+00528         }
+00529         <span class="keywordflow">else</span>
+00530         {
+00531                 <span class="comment">// otherwise it comes from the user specified</span>
+00532                 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+00533         }
+00534 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -2979,11 +2979,11 @@ These can be RFC specified modes such as +i, or module provided modes, including
 Serv-&gt;SendToModeMask("xi", WM_OR, "m00");<p>
 Then the text 'm00' will be sent to all users with EITHER mode x or i. Conversely if you used WM_AND, the user must have both modes set to receive the message.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00435">435</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00437">437</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00436 {
-00437         WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
-00438 }
+<div class="fragment"><pre>00438 {
+00439         WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
+00440 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -3026,11 +3026,11 @@ Sends a WALLOPS message.
 <p>
 This method writes a WALLOPS message to all users with the +w flag, originating from the specified user.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00563">563</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00565">565</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-<div class="fragment"><pre>00564 {
-00565         WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
-00566 }
+<div class="fragment"><pre>00566 {
+00567         WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
+00568 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -3073,23 +3073,23 @@ Remove a user's connection to the irc server, but leave their client in existenc
 <p>
 When you call this function, the user's file descriptor will be replaced with the value of FD_MAGIC_NUMBER and their old file descriptor will be closed. This idle client will remain until it is restored with a valid file descriptor, or is removed from IRC by an operator After this call, the pointer to user will be invalid.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00654">654</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00656">656</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="connection_8h-source.html#l00171">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00099">FD_MAGIC_NUMBER</a>, <a class="el" href="connection_8h-source.html#l00175">connection::host</a>, and <a class="el" href="users_8h-source.html#l00110">userrec::ident</a>.
+References <a class="el" href="connection_8h-source.html#l00183">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00099">FD_MAGIC_NUMBER</a>, <a class="el" href="connection_8h-source.html#l00187">connection::host</a>, and <a class="el" href="users_8h-source.html#l00110">userrec::ident</a>.
 <p>
-<div class="fragment"><pre>00655 {
-00656         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-&gt;<a class="code" href="classconnection.html#o0">fd</a>;
-00657         user-&gt;<a class="code" href="classconnection.html#o0">fd</a> = <a class="code" href="modules_8h.html#a26">FD_MAGIC_NUMBER</a>;
-00658         Write(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#o1">ident</a>,user-&gt;<a class="code" href="classconnection.html#o1">host</a>,message.c_str());
-00659         close(old_fd);
-00660         shutdown (old_fd,2);
-00661 }
+<div class="fragment"><pre>00657 {
+00658         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-&gt;<a class="code" href="classconnection.html#o0">fd</a>;
+00659         user-&gt;<a class="code" href="classconnection.html#o0">fd</a> = <a class="code" href="modules_8h.html#a26">FD_MAGIC_NUMBER</a>;
+00660         Write(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#o1">ident</a>,user-&gt;<a class="code" href="classconnection.html#o1">host</a>,message.c_str());
+00661         close(old_fd);
+00662         shutdown (old_fd,2);
+00663 }
 </pre></div>    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:11 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:51 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index dcd323e7c8326bfbf8ed2be2f9e4e3f6483bf10e..bfdff06366cc079655a520b2ea45b91eefa213a1 100644 (file)
@@ -15,7 +15,7 @@
   <tr class="memlist"><td><a class="el" href="classVersion.html#o2">Revision</a></td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVersion.html#a0">Version</a>(int major, int minor, int revision, int build, int flags)</td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 3a20119aee02c6103334e2533f6feca61778f68f..3312bb36414f59d8f1327e155b55b95964740492 100644 (file)
@@ -221,7 +221,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00114">114</a> of
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 8a209081ad99e7732a20eff6ff7fe2865ba751bd..62610243f1965edefe057a422c3856670d4c06a2 100644 (file)
@@ -14,7 +14,7 @@
   <tr class="memlist"><td><a class="el" href="classXLine.html#o0">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classXLine.html#o2">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index a5e56766b85db08e26c7318115c79c45748c6782..9eb242dd5516c20a45e8558265f67decdad0615b 100644 (file)
@@ -171,7 +171,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00048">48</a> of fi
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 228e29749156ed9613b52f3b26e266c23f0b4979..69aced7184043112b87c3a34ca2ee477fb095d8f 100644 (file)
@@ -16,7 +16,7 @@
   <tr class="memlist"><td><a class="el" href="classXLine.html#o0">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classXLine.html#o2">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 59cf6690f169188c133dce1e27dcae1fd2a697cb..ef8261a20be475146f5fbe063c83a96d6a909cec 100644 (file)
@@ -82,7 +82,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00103">103</a> of f
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 0773498b1432d602ed577a510da926570ce3493d..068b05362bc4410122878610361898239ee0eb73 100644 (file)
@@ -6,34 +6,42 @@
 <!-- Generated by Doxygen 1.3.3 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>chanrec Member List</h1>This is the complete list of members for <a class="el" href="classchanrec.html">chanrec</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#a7">AddUser</a>(char *castuser)</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#o0">age</a></td><td><a class="el" href="classclassbase.html">classbase</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o14">bans</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o13">c_private</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#a4">chanrec</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o16">bans</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o15">c_private</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#a10">chanrec</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a0">classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o3">created</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o5">created</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classchanrec.html#o1">custom_modes</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#a5">DecUserCounter</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#a8">DelUser</a>(char *castuser)</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classExtensible.html#a0">Extend</a>(std::string key, char *p)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classExtensible.html#a2">GetExt</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classchanrec.html#a3">GetModeParameter</a>(char mode)</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o10">inviteonly</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#a6">GetUserCounter</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#a9">GetUsers</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#a4">IncUserCounter</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o3">internal_userlist</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o12">inviteonly</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classchanrec.html#a2">IsCustomModeSet</a>(char mode)</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o7">key</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o6">limit</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o11">moderated</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o9">key</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o8">limit</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o13">moderated</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classchanrec.html#o0">name</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o9">noexternal</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o12">secret</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o5">setby</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o11">noexternal</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o14">secret</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o7">setby</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classchanrec.html#a0">SetCustomMode</a>(char mode, bool mode_on)</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classchanrec.html#a1">SetCustomModeParam</a>(char mode, char *parameter, bool mode_on)</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classExtensible.html#a1">Shrink</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o2">topic</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o8">topiclock</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#o4">topicset</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classchanrec.html#a5">~chanrec</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o4">topic</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o10">topiclock</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o6">topicset</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#o2">users</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classchanrec.html#a11">~chanrec</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:01 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:47 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index a24f0aad2699fbd8a0a8a25689d99eb70cfe0ee6..9ad664151f21499100146070a9915109f18f0637 100644 (file)
@@ -27,10 +27,28 @@ Inherits <a class="el" href="classExtensible.html">Extensible</a>.
 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a3">GetModeParameter</a> (char mode)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the parameter for a custom mode on a channel. </em> <a href="#a3"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a4">chanrec</a> ()</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a4">IncUserCounter</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a channel record and initialises it with default values. </em> <a href="#a4"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a5">~chanrec</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Increment the channel "user counter" The channel user counter is a reference counter which holds the number of users on the channel. </em> <a href="#a4"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a5">DecUserCounter</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decrement the channel "user counter" The channel user counter is a reference counter which holds the number of users on the channel. </em> <a href="#a5"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a6">GetUserCounter</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain the channel "user counter" This returns the channel reference counter, which is initialized to 0 when the channel is created and incremented/decremented upon joins, parts quits and kicks. </em> <a href="#a6"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a7">AddUser</a> (char *castuser)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a user pointer to the internal reference list The data inserted into the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. </em> <a href="#a7"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a8">DelUser</a> (char *castuser)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a user pointer to the internal reference list The data removed from the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. </em> <a href="#a8"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; char * &gt; *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a9">GetUsers</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obrain the internal reference list The internal reference list contains a list of userrec* cast to char*. </em> <a href="#a9"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a10">chanrec</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a channel record and initialises it with default values. </em> <a href="#a10"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a11">~chanrec</a> ()</td></tr>
 
 <tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o0">name</a> [CHANMAX]</td></tr>
@@ -39,45 +57,51 @@ Inherits <a class="el" href="classExtensible.html">Extensible</a>.
 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o1">custom_modes</a> [MAXMODES]</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Custom modes for the channel. </em> <a href="#o1"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o2">topic</a> [MAXBUF]</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o2">users</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count of users on the channel used for fast user counting. </em> <a href="#o2"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; char * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o3">internal_userlist</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">User list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!). </em> <a href="#o3"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o4">topic</a> [MAXBUF]</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Channel topic. </em> <a href="#o2"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>time_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o3">created</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Channel topic. </em> <a href="#o4"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>time_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o5">created</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creation time. </em> <a href="#o3"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>time_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o4">topicset</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creation time. </em> <a href="#o5"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>time_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o6">topicset</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Time topic was set. </em> <a href="#o4"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o5">setby</a> [NICKMAX]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Time topic was set. </em> <a href="#o6"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o7">setby</a> [NICKMAX]</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The last user to set the topic. </em> <a href="#o5"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o6">limit</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The last user to set the topic. </em> <a href="#o7"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o8">limit</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the channel user limit. </em> <a href="#o6"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o7">key</a> [32]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the channel user limit. </em> <a href="#o8"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o9">key</a> [32]</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the channel key. </em> <a href="#o7"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o8">topiclock</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the channel key. </em> <a href="#o9"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o10">topiclock</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +t is set. </em> <a href="#o8"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o9">noexternal</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +t is set. </em> <a href="#o10"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o11">noexternal</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +n is set. </em> <a href="#o9"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o10">inviteonly</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +n is set. </em> <a href="#o11"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o12">inviteonly</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +i is set. </em> <a href="#o10"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o11">moderated</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +i is set. </em> <a href="#o12"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o13">moderated</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +m is set. </em> <a href="#o11"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o12">secret</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +m is set. </em> <a href="#o13"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o14">secret</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +s is set. </em> <a href="#o12"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o13">c_private</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +s is set. </em> <a href="#o14"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o15">c_private</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +p is set. </em> <a href="#o13"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="channels_8h.html#a5">BanList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o14">bans</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +p is set. </em> <a href="#o15"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="channels_8h.html#a5">BanList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o16">bans</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The list of all bans set on the channel. </em> <a href="#o14"></a><em><br><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The list of all bans set on the channel. </em> <a href="#o16"></a><em><br><br></td></tr>
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 Holds all relevent information for a channel. 
@@ -87,7 +111,7 @@ This class represents a channel, and contains its name, modes, time created, top
 
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00094">94</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a name="a4" doxytag="chanrec::chanrec"></a><p>
+<a name="a10" doxytag="chanrec::chanrec"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -118,7 +142,7 @@ Creates a channel record and initialises it with default values.
 <p>
 Definition at line <a class="el" href="channels_8cpp-source.html#l00113">113</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-References <a class="el" href="channels_8h-source.html#l00155">c_private</a>, <a class="el" href="channels_8h-source.html#l00111">created</a>, <a class="el" href="channels_8h-source.html#l00103">custom_modes</a>, <a class="el" href="channels_8h-source.html#l00141">inviteonly</a>, <a class="el" href="channels_8h-source.html#l00129">key</a>, <a class="el" href="channels_8h-source.html#l00124">limit</a>, <a class="el" href="channels_8h-source.html#l00145">moderated</a>, <a class="el" href="channels_8h-source.html#l00099">name</a>, <a class="el" href="channels_8h-source.html#l00137">noexternal</a>, <a class="el" href="channels_8h-source.html#l00150">secret</a>, <a class="el" href="channels_8h-source.html#l00119">setby</a>, <a class="el" href="channels_8h-source.html#l00108">topic</a>, <a class="el" href="channels_8h-source.html#l00133">topiclock</a>, and <a class="el" href="channels_8h-source.html#l00115">topicset</a>.
+References <a class="el" href="channels_8h-source.html#l00164">c_private</a>, <a class="el" href="channels_8h-source.html#l00120">created</a>, <a class="el" href="channels_8h-source.html#l00103">custom_modes</a>, <a class="el" href="channels_8h-source.html#l00112">internal_userlist</a>, <a class="el" href="channels_8h-source.html#l00150">inviteonly</a>, <a class="el" href="channels_8h-source.html#l00138">key</a>, <a class="el" href="channels_8h-source.html#l00133">limit</a>, <a class="el" href="channels_8h-source.html#l00154">moderated</a>, <a class="el" href="channels_8h-source.html#l00099">name</a>, <a class="el" href="channels_8h-source.html#l00146">noexternal</a>, <a class="el" href="channels_8h-source.html#l00159">secret</a>, <a class="el" href="channels_8h-source.html#l00128">setby</a>, <a class="el" href="channels_8h-source.html#l00117">topic</a>, <a class="el" href="channels_8h-source.html#l00142">topiclock</a>, <a class="el" href="channels_8h-source.html#l00124">topicset</a>, and <a class="el" href="channels_8h-source.html#l00107">users</a>.
 <p>
 <div class="fragment"><pre>00114 {
 00115         strcpy(name,<span class="stringliteral">""</span>);
@@ -126,13 +150,14 @@ References <a class="el" href="channels_8h-source.html#l00155">c_private</a>, <a
 00117         strcpy(topic,<span class="stringliteral">""</span>);
 00118         strcpy(setby,<span class="stringliteral">""</span>);
 00119         strcpy(key,<span class="stringliteral">""</span>);
-00120         <a class="code" href="classchanrec.html#o3">created</a> = <a class="code" href="classchanrec.html#o4">topicset</a> = <a class="code" href="classchanrec.html#o6">limit</a> = 0;
-00121         <a class="code" href="classchanrec.html#o8">topiclock</a> = <a class="code" href="classchanrec.html#o9">noexternal</a> = <a class="code" href="classchanrec.html#o10">inviteonly</a> = <a class="code" href="classchanrec.html#o11">moderated</a> = <a class="code" href="classchanrec.html#o12">secret</a> = <a class="code" href="classchanrec.html#o13">c_private</a> = <span class="keyword">false</span>;
-00122 }
+00120         <a class="code" href="classchanrec.html#o5">created</a> = <a class="code" href="classchanrec.html#o6">topicset</a> = <a class="code" href="classchanrec.html#o8">limit</a> = <a class="code" href="classchanrec.html#o2">users</a> = 0;
+00121         <a class="code" href="classchanrec.html#o10">topiclock</a> = <a class="code" href="classchanrec.html#o11">noexternal</a> = <a class="code" href="classchanrec.html#o12">inviteonly</a> = <a class="code" href="classchanrec.html#o13">moderated</a> = <a class="code" href="classchanrec.html#o14">secret</a> = <a class="code" href="classchanrec.html#o15">c_private</a> = <span class="keyword">false</span>;
+00122         <a class="code" href="classchanrec.html#o3">internal_userlist</a>.clear();
+00123 }
 </pre></div>    </td>
   </tr>
 </table>
-<a name="a5" doxytag="chanrec::~chanrec"></a><p>
+<a name="a11" doxytag="chanrec::~chanrec"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -159,13 +184,144 @@ References <a class="el" href="channels_8h-source.html#l00155">c_private</a>, <a
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00185">185</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00240">240</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-<div class="fragment"><pre>00185 { <span class="comment">/* stub */</span> }
+<div class="fragment"><pre>00240 { <span class="comment">/* stub */</span> }
 </pre></div>    </td>
   </tr>
 </table>
 <hr><h2>Member Function Documentation</h2>
+<a name="a7" doxytag="chanrec::AddUser"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> void chanrec::AddUser </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>castuser</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Add a user pointer to the internal reference list The data inserted into the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. 
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8cpp-source.html#l00220">220</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, and <a class="el" href="channels_8h-source.html#l00112">internal_userlist</a>.
+<p>
+<div class="fragment"><pre>00221 {
+00222         <a class="code" href="classchanrec.html#o3">internal_userlist</a>.push_back(castuser);
+00223         log(DEBUG,<span class="stringliteral">"Added casted user to channel's internal list"</span>);
+00224 }
+</pre></div>    </td>
+  </tr>
+</table>
+<a name="a5" doxytag="chanrec::DecUserCounter"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> void chanrec::DecUserCounter </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Decrement the channel "user counter" The channel user counter is a reference counter which holds the number of users on the channel. 
+<p>
+If it decremented to 0 then the channel is removed from the system. Modules may alter the reference count to hold channels open which have no users and would normally be deleted once empty.
+<p>
+Definition at line <a class="el" href="channels_8cpp-source.html#l00208">208</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00099">name</a>, and <a class="el" href="channels_8h-source.html#l00107">users</a>.
+<p>
+<div class="fragment"><pre>00209 {
+00210         <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classchanrec.html#o2">users</a> &gt; 0)
+00211                 this-&gt;<a class="code" href="classchanrec.html#o2">users</a>--;
+00212         log(DEBUG,<span class="stringliteral">"Decremented channel user count for %s to %lu"</span>,name,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)users);
+00213 }
+</pre></div>    </td>
+  </tr>
+</table>
+<a name="a8" doxytag="chanrec::DelUser"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> void chanrec::DelUser </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>castuser</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Delete a user pointer to the internal reference list The data removed from the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. 
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8cpp-source.html#l00226">226</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00112">internal_userlist</a>, and <a class="el" href="channels_8h-source.html#l00099">name</a>.
+<p>
+<div class="fragment"><pre>00227 {
+00228         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator a = <a class="code" href="classchanrec.html#o3">internal_userlist</a>.begin(); a &lt; <a class="code" href="classchanrec.html#o3">internal_userlist</a>.end(); a++)
+00229         {
+00230                 <span class="keywordflow">if</span> (*a == castuser)
+00231                 {
+00232                         log(DEBUG,<span class="stringliteral">"Removed casted user from channel's internal list"</span>);
+00233                         <a class="code" href="classchanrec.html#o3">internal_userlist</a>.erase(a);
+00234                         <span class="keywordflow">return</span>;
+00235                 }
+00236         }
+00237         log(DEBUG,<span class="stringliteral">"BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!"</span>,name);
+00238 }
+</pre></div>    </td>
+  </tr>
+</table>
 <a name="a3" doxytag="chanrec::GetModeParameter"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -196,23 +352,141 @@ Returns the parameter for a custom mode on a channel.
 <p>
 For example if "+L #foo" is set, and you pass this method 'L', it will return '#foo'. If the mode is not set on the channel, or the mode has no parameters associated with it, it will return an empty string.
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00186">186</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00187">187</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
 References <a class="el" href="channels_8cpp-source.html#l00111">custom_mode_params</a>.
 <p>
-<div class="fragment"><pre>00187 {
-00188         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
-00189         {
-00190                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
-00191                 {
-00192                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-00193                         {
-00194                                 <span class="keywordflow">return</span> std::string(i-&gt;parameter);
-00195                         }
-00196                 }
-00197         }
-00198         <span class="keywordflow">return</span> std::string(<span class="stringliteral">""</span>);
-00199 }
+<div class="fragment"><pre>00188 {
+00189         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
+00190         {
+00191                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
+00192                 {
+00193                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+00194                         {
+00195                                 <span class="keywordflow">return</span> std::string(i-&gt;parameter);
+00196                         }
+00197                 }
+00198         }
+00199         <span class="keywordflow">return</span> std::string(<span class="stringliteral">""</span>);
+00200 }
+</pre></div>    </td>
+  </tr>
+</table>
+<a name="a6" doxytag="chanrec::GetUserCounter"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> long chanrec::GetUserCounter </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Obtain the channel "user counter" This returns the channel reference counter, which is initialized to 0 when the channel is created and incremented/decremented upon joins, parts quits and kicks. 
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8cpp-source.html#l00215">215</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00107">users</a>.
+<p>
+<div class="fragment"><pre>00216 {
+00217         <span class="keywordflow">return</span> (this-&gt;<a class="code" href="classchanrec.html#o2">users</a>);
+00218 }
+</pre></div>    </td>
+  </tr>
+</table>
+<a name="a9" doxytag="chanrec::GetUsers"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> std::vector&lt; char * &gt; * chanrec::GetUsers </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Obrain the internal reference list The internal reference list contains a list of userrec* cast to char*. 
+<p>
+These are used for rapid comparison to determine channel membership for PRIVMSG, NOTICE, QUIT, PART etc. The resulting pointer to the vector should be considered readonly and only modified via AddUser and DelUser.
+<p>
+Definition at line <a class="el" href="channels_8cpp-source.html#l00240">240</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00112">internal_userlist</a>.
+<p>
+<div class="fragment"><pre>00241 {
+00242         <span class="keywordflow">return</span> &amp;<a class="code" href="classchanrec.html#o3">internal_userlist</a>;
+00243 }
+</pre></div>    </td>
+  </tr>
+</table>
+<a name="a4" doxytag="chanrec::IncUserCounter"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> void chanrec::IncUserCounter </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Increment the channel "user counter" The channel user counter is a reference counter which holds the number of users on the channel. 
+<p>
+If it decremented to 0 then the channel is removed from the system.
+<p>
+Definition at line <a class="el" href="channels_8cpp-source.html#l00202">202</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00099">name</a>, and <a class="el" href="channels_8h-source.html#l00107">users</a>.
+<p>
+<div class="fragment"><pre>00203 {
+00204         this-&gt;<a class="code" href="classchanrec.html#o2">users</a>++;
+00205         log(DEBUG,<span class="stringliteral">"Incremented channel user count for %s to %lu"</span>,name,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)users);
+00206 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -246,14 +520,14 @@ Returns true if a custom mode is set on a channel.
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00180">180</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00181">181</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
 References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>.
 <p>
-<div class="fragment"><pre>00181 {
-00182         log(DEBUG,<span class="stringliteral">"Checking ISCustomModeSet: %c %s"</span>,mode,this-&gt;custom_modes);
-00183         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode) != 0);
-00184 }
+<div class="fragment"><pre>00182 {
+00183         log(DEBUG,<span class="stringliteral">"Checking ISCustomModeSet: %c %s"</span>,mode,this-&gt;custom_modes);
+00184         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode) != 0);
+00185 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -296,32 +570,32 @@ Sets or unsets a custom mode in the channels info.
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00124">124</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8h-source.html#l00103">custom_modes</a>, <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, and <a class="el" href="channels_8cpp-source.html#l00149">SetCustomModeParam()</a>.
-<p>
-<div class="fragment"><pre>00125 {
-00126         <span class="keywordflow">if</span> (mode_on) {
-00127                 <span class="keywordtype">char</span> m[3];
-00128                 m[0] = mode;
-00129                 m[1] = <span class="charliteral">'\0'</span>;
-00130                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
-00131                 {
-00132                         strlcat(custom_modes,m,MAXMODES);
-00133                 }
-00134                 log(DEBUG,<span class="stringliteral">"Custom mode %c set"</span>,mode);
-00135         }
-00136         <span class="keywordflow">else</span> {
-00137 
-00138                 std::string a = this-&gt;<a class="code" href="classchanrec.html#o1">custom_modes</a>;
-00139                 <span class="keywordtype">int</span> pos = a.find(mode);
-00140                 a.erase(pos,1);
-00141                 strncpy(this-&gt;custom_modes,a.c_str(),MAXMODES);
-00142 
-00143                 log(DEBUG,<span class="stringliteral">"Custom mode %c removed: modelist='%s'"</span>,mode,this-&gt;custom_modes);
-00144                 this-&gt;<a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
-00145         }
-00146 }
+Definition at line <a class="el" href="channels_8cpp-source.html#l00125">125</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00103">custom_modes</a>, <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, and <a class="el" href="channels_8cpp-source.html#l00150">SetCustomModeParam()</a>.
+<p>
+<div class="fragment"><pre>00126 {
+00127         <span class="keywordflow">if</span> (mode_on) {
+00128                 <span class="keywordtype">char</span> m[3];
+00129                 m[0] = mode;
+00130                 m[1] = <span class="charliteral">'\0'</span>;
+00131                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
+00132                 {
+00133                         strlcat(custom_modes,m,MAXMODES);
+00134                 }
+00135                 log(DEBUG,<span class="stringliteral">"Custom mode %c set"</span>,mode);
+00136         }
+00137         <span class="keywordflow">else</span> {
+00138 
+00139                 std::string a = this-&gt;<a class="code" href="classchanrec.html#o1">custom_modes</a>;
+00140                 <span class="keywordtype">int</span> pos = a.find(mode);
+00141                 a.erase(pos,1);
+00142                 strncpy(this-&gt;custom_modes,a.c_str(),MAXMODES);
+00143 
+00144                 log(DEBUG,<span class="stringliteral">"Custom mode %c removed: modelist='%s'"</span>,mode,this-&gt;custom_modes);
+00145                 this-&gt;<a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
+00146         }
+00147 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -370,52 +644,52 @@ Sets or unsets the parameters for a custom mode in a channels info.
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00149">149</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00150">150</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
 References <a class="el" href="channels_8h-source.html#l00075">ModeParameter::channel</a>, <a class="el" href="channels_8cpp-source.html#l00111">custom_mode_params</a>, <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00073">ModeParameter::mode</a>, and <a class="el" href="channels_8h-source.html#l00074">ModeParameter::parameter</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00124">SetCustomMode()</a>.
-<p>
-<div class="fragment"><pre>00150 {
-00151 
-00152         log(DEBUG,<span class="stringliteral">"SetCustomModeParam called"</span>);
-00153         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
-00154         M.<a class="code" href="classModeParameter.html#o0">mode</a> = mode;
-00155         strlcpy(M.<a class="code" href="classModeParameter.html#o2">channel</a>,this-&gt;name,CHANMAX);
-00156         strlcpy(M.<a class="code" href="classModeParameter.html#o1">parameter</a>,parameter,MAXBUF);
-00157         <span class="keywordflow">if</span> (mode_on)
-00158         {
-00159                 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
-00160                 <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.push_back(M);
-00161         }
-00162         <span class="keywordflow">else</span>
-00163         {
-00164                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
-00165                 {
-00166                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
-00167                         {
-00168                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-00169                                 {
-00170                                         log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
-00171                                         <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.erase(i);
-00172                                         <span class="keywordflow">return</span>;
-00173                                 }
-00174                         }
-00175                 }
-00176                 log(DEBUG,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
-00177         }
-00178 }
+Referenced by <a class="el" href="channels_8cpp-source.html#l00125">SetCustomMode()</a>.
+<p>
+<div class="fragment"><pre>00151 {
+00152 
+00153         log(DEBUG,<span class="stringliteral">"SetCustomModeParam called"</span>);
+00154         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
+00155         M.<a class="code" href="classModeParameter.html#o0">mode</a> = mode;
+00156         strlcpy(M.<a class="code" href="classModeParameter.html#o2">channel</a>,this-&gt;name,CHANMAX);
+00157         strlcpy(M.<a class="code" href="classModeParameter.html#o1">parameter</a>,parameter,MAXBUF);
+00158         <span class="keywordflow">if</span> (mode_on)
+00159         {
+00160                 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
+00161                 <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.push_back(M);
+00162         }
+00163         <span class="keywordflow">else</span>
+00164         {
+00165                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
+00166                 {
+00167                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
+00168                         {
+00169                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+00170                                 {
+00171                                         log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
+00172                                         <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.erase(i);
+00173                                         <span class="keywordflow">return</span>;
+00174                                 }
+00175                         }
+00176                 }
+00177                 log(DEBUG,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
+00178         }
+00179 }
 </pre></div>    </td>
   </tr>
 </table>
 <hr><h2>Member Data Documentation</h2>
-<a name="o14" doxytag="chanrec::bans"></a><p>
+<a name="o16" doxytag="chanrec::bans"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> <a class="el" href="channels_8h.html#a5">BanList</a> <a class="el" href="classchanrec.html#o14">chanrec::bans</a>
+          <td class="md" nowrap valign="top"> <a class="el" href="channels_8h.html#a5">BanList</a> <a class="el" href="classchanrec.html#o16">chanrec::bans</a>
       </table>
     </td>
   </tr>
@@ -432,16 +706,16 @@ The list of all bans set on the channel.
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00159">159</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+Definition at line <a class="el" href="channels_8h-source.html#l00168">168</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
   </tr>
 </table>
-<a name="o13" doxytag="chanrec::c_private"></a><p>
+<a name="o15" doxytag="chanrec::c_private"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o13">chanrec::c_private</a>
+          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o15">chanrec::c_private</a>
       </table>
     </td>
   </tr>
@@ -456,20 +730,20 @@ Definition at line <a class="el" href="channels_8h-source.html#l00159">159</a> o
 <p>
 Nonzero if the mode +p is set. 
 <p>
-This value cannot be set at the same time as <a class="el" href="classchanrec.html#o12">chanrec::secret</a>
+This value cannot be set at the same time as <a class="el" href="classchanrec.html#o14">chanrec::secret</a>
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00155">155</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00164">164</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
 </table>
-<a name="o3" doxytag="chanrec::created"></a><p>
+<a name="o5" doxytag="chanrec::created"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> time_t <a class="el" href="classchanrec.html#o3">chanrec::created</a>
+          <td class="md" nowrap valign="top"> time_t <a class="el" href="classchanrec.html#o5">chanrec::created</a>
       </table>
     </td>
   </tr>
@@ -486,7 +760,7 @@ Creation time.
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00111">111</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00120">120</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
@@ -516,16 +790,44 @@ Plugins may use this field in any way they see fit.
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00103">103</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="channels_8cpp-source.html#l00124">SetCustomMode()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="channels_8cpp-source.html#l00125">SetCustomMode()</a>.    </td>
+  </tr>
+</table>
+<a name="o3" doxytag="chanrec::internal_userlist"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> std::vector&lt;char*&gt; <a class="el" href="classchanrec.html#o3">chanrec::internal_userlist</a>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+User list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!). 
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00112">112</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00220">AddUser()</a>, <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00226">DelUser()</a>, and <a class="el" href="channels_8cpp-source.html#l00240">GetUsers()</a>.    </td>
   </tr>
 </table>
-<a name="o10" doxytag="chanrec::inviteonly"></a><p>
+<a name="o12" doxytag="chanrec::inviteonly"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o10">chanrec::inviteonly</a>
+          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o12">chanrec::inviteonly</a>
       </table>
     </td>
   </tr>
@@ -542,18 +844,18 @@ Nonzero if the mode +i is set.
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00141">141</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00150">150</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
 </table>
-<a name="o7" doxytag="chanrec::key"></a><p>
+<a name="o9" doxytag="chanrec::key"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o7">chanrec::key</a>[32]
+          <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o9">chanrec::key</a>[32]
       </table>
     </td>
   </tr>
@@ -570,18 +872,18 @@ Contains the channel key.
 <p>
 If this value is an empty string, there is no channel key in place.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00129">129</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00138">138</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
 </table>
-<a name="o6" doxytag="chanrec::limit"></a><p>
+<a name="o8" doxytag="chanrec::limit"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> long <a class="el" href="classchanrec.html#o6">chanrec::limit</a>
+          <td class="md" nowrap valign="top"> long <a class="el" href="classchanrec.html#o8">chanrec::limit</a>
       </table>
     </td>
   </tr>
@@ -598,18 +900,18 @@ Contains the channel user limit.
 <p>
 If this value is zero, there is no limit in place.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00124">124</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00133">133</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
 </table>
-<a name="o11" doxytag="chanrec::moderated"></a><p>
+<a name="o13" doxytag="chanrec::moderated"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o11">chanrec::moderated</a>
+          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o13">chanrec::moderated</a>
       </table>
     </td>
   </tr>
@@ -626,7 +928,7 @@ Nonzero if the mode +m is set.
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00145">145</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00154">154</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
@@ -656,16 +958,16 @@ The channels name.
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00099">99</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00208">DecUserCounter()</a>, <a class="el" href="channels_8cpp-source.html#l00226">DelUser()</a>, <a class="el" href="channels_8cpp-source.html#l00202">IncUserCounter()</a>, and <a class="el" href="modules_8cpp-source.html#l00665">Server::PseudoToUser()</a>.    </td>
   </tr>
 </table>
-<a name="o9" doxytag="chanrec::noexternal"></a><p>
+<a name="o11" doxytag="chanrec::noexternal"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o9">chanrec::noexternal</a>
+          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o11">chanrec::noexternal</a>
       </table>
     </td>
   </tr>
@@ -682,18 +984,18 @@ Nonzero if the mode +n is set.
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00137">137</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00146">146</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
 </table>
-<a name="o12" doxytag="chanrec::secret"></a><p>
+<a name="o14" doxytag="chanrec::secret"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o12">chanrec::secret</a>
+          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o14">chanrec::secret</a>
       </table>
     </td>
   </tr>
@@ -708,20 +1010,20 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a
 <p>
 Nonzero if the mode +s is set. 
 <p>
-This value cannot be set at the same time as <a class="el" href="classchanrec.html#o13">chanrec::c_private</a>
+This value cannot be set at the same time as <a class="el" href="classchanrec.html#o15">chanrec::c_private</a>
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00150">150</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00159">159</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
 </table>
-<a name="o5" doxytag="chanrec::setby"></a><p>
+<a name="o7" doxytag="chanrec::setby"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o5">chanrec::setby</a>[NICKMAX]
+          <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o7">chanrec::setby</a>[NICKMAX]
       </table>
     </td>
   </tr>
@@ -738,18 +1040,18 @@ The last user to set the topic.
 <p>
 If this member is an empty string, no topic was ever set.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00119">119</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00128">128</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00665">Server::PseudoToUser()</a>.    </td>
   </tr>
 </table>
-<a name="o2" doxytag="chanrec::topic"></a><p>
+<a name="o4" doxytag="chanrec::topic"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o2">chanrec::topic</a>[MAXBUF]
+          <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o4">chanrec::topic</a>[MAXBUF]
       </table>
     </td>
   </tr>
@@ -766,18 +1068,18 @@ Channel topic.
 <p>
 If this is an empty string, no channel topic is set.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00108">108</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00117">117</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00665">Server::PseudoToUser()</a>.    </td>
   </tr>
 </table>
-<a name="o8" doxytag="chanrec::topiclock"></a><p>
+<a name="o10" doxytag="chanrec::topiclock"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o8">chanrec::topiclock</a>
+          <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o10">chanrec::topiclock</a>
       </table>
     </td>
   </tr>
@@ -794,18 +1096,18 @@ Nonzero if the mode +t is set.
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00133">133</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00142">142</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
   </tr>
 </table>
-<a name="o4" doxytag="chanrec::topicset"></a><p>
+<a name="o6" doxytag="chanrec::topicset"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> time_t <a class="el" href="classchanrec.html#o4">chanrec::topicset</a>
+          <td class="md" nowrap valign="top"> time_t <a class="el" href="classchanrec.html#o6">chanrec::topicset</a>
       </table>
     </td>
   </tr>
@@ -820,16 +1122,44 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a
 <p>
 Time topic was set. 
 <p>
-If no topic was ever set, this will be equal to <a class="el" href="classchanrec.html#o3">chanrec::created</a>
+If no topic was ever set, this will be equal to <a class="el" href="classchanrec.html#o5">chanrec::created</a>
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00124">124</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00665">Server::PseudoToUser()</a>.    </td>
+  </tr>
+</table>
+<a name="o2" doxytag="chanrec::users"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> long <a class="el" href="classchanrec.html#o2">chanrec::users</a>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Count of users on the channel used for fast user counting. 
+<p>
+
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00115">115</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00107">107</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00208">DecUserCounter()</a>, <a class="el" href="channels_8cpp-source.html#l00215">GetUserCounter()</a>, and <a class="el" href="channels_8cpp-source.html#l00202">IncUserCounter()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="channels_8h-source.html">channels.h</a><li><a class="el" href="channels_8cpp-source.html">channels.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:00 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:47 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 0a1be60728b76ec912856b0100399b3c635b841f..eb0477ae73bbfd0bb6c45dc6285ba1dfd1980a5e 100644 (file)
@@ -9,7 +9,7 @@
   <tr class="memlist"><td><a class="el" href="classclassbase.html#o0">age</a></td><td><a class="el" href="classclassbase.html">classbase</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a0">classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:01 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:47 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 1c91ec3f5b3fbcefbed03db1dd9916bd97d9268b..e68905f3a17c0fc2a0ff5797258e650aa0309021 100644 (file)
@@ -132,7 +132,7 @@ Referenced by <a class="el" href="base_8h-source.html#l00039">classbase()</a>.
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="base_8h-source.html">base.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:01 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:47 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 73a148109c8453bb7e9e293c357fc1d9cd6da258..3687ae71fa5f70cd5f0b221084d8783fb82f3490 100644 (file)
@@ -19,7 +19,7 @@
   <tr class="memlist"><td><a class="el" href="classcommand__t.html#o5">total_bytes</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classcommand__t.html#o4">use_count</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:01 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:47 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index bae7eab98cd04051447d9285b290c528df078835..dfd8774e721b01d3fc50b2439c83e08869680f30 100644 (file)
@@ -227,7 +227,7 @@ Definition at line <a class="el" href="ctables_8h-source.html#l00043">43</a> of
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="ctables_8h-source.html">ctables.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:01 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:47 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 66246c9065b5fefa4fcaea5d6c6526e6a14119fd..c7f4c7f7eb8324c4d223fc6562e4c4e8981e924f 100644 (file)
@@ -30,7 +30,7 @@
   <tr class="memlist"><td><a class="el" href="classconnection.html#o17">internal_port</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#o2">ip</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#o12">lastping</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classconnection.html#a3">MeshCookie</a>(char *targethost, int port, long cookie, char *servername)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classconnection.html#a3">MeshCookie</a>(char *targethost, int port, unsigned long cookie, char *servername)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#o15">nping</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#o9">port</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#a6">RecvPacket</a>(std::deque&lt; std::string &gt; &amp;messages, char *host)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
@@ -41,7 +41,7 @@
   <tr class="memlist"><td><a class="el" href="classconnection.html#o11">state</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#a4">TerminateLink</a>(char *targethost)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:02 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:47 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 0666d43be35f7a3b0411866c692f2e618e027945..54e5565f11394635892a51cbcb14de1959b50f82 100644 (file)
@@ -26,7 +26,7 @@ Inherited by <a class="el" href="classserverrec.html">serverrec</a>, and <a clas
 <tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classconnection.html#a2">BeginLink</a> (char *targethost, int <a class="el" href="classconnection.html#o9">port</a>, char *password, char *servername, int myport)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Begin an outbound link to another ircd at targethost. </em> <a href="#a2"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classconnection.html#a3">MeshCookie</a> (char *targethost, int <a class="el" href="classconnection.html#o9">port</a>, long cookie, char *servername)</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classconnection.html#a3">MeshCookie</a> (char *targethost, int <a class="el" href="classconnection.html#o9">port</a>, unsigned long cookie, char *servername)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Begin an outbound mesh link to another ircd on a network you are already an authenticated member of. </em> <a href="#a3"></a><em><br><br></td></tr>
 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classconnection.html#a4">TerminateLink</a> (char *targethost)</td></tr>
@@ -111,7 +111,7 @@ Please note: classes serverrec and userrec both inherit from class connection.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00166">166</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="connection_8h-source.html#l00178">178</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a name="a0" doxytag="connection::connection"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -368,7 +368,7 @@ This function is deprecated and may be removed in a later alpha/beta.
         <tr>
           <td></td>
           <td></td>
-          <td class="md" nowrap>long&nbsp;</td>
+          <td class="md" nowrap>unsigned long&nbsp;</td>
           <td class="mdname" nowrap> <em>cookie</em>, </td>
         </tr>
         <tr>
@@ -535,7 +535,7 @@ Stats counter for bytes inbound.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00187">187</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00199">199</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -563,7 +563,7 @@ Stats counter for bytes outbound.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00191">191</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00203">203</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -591,7 +591,7 @@ Stats counter for commands inbound.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00195">195</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00207">207</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -619,7 +619,7 @@ Stats counter for commands outbound.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00199">199</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00211">211</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -647,7 +647,7 @@ With a serverrec, this is a list of all established server connections.
 <p>
 With a userrec this is unused.
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00246">246</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00258">258</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <a name="o0" doxytag="connection::fd"></a><p>
@@ -673,9 +673,9 @@ File descriptor of the connection.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00171">171</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00183">183</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00930">ConfigReader::DumpErrors()</a>, <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>, <a class="el" href="modules_8cpp-source.html#l00520">Server::SendTo()</a>, <a class="el" href="servers_8cpp-source.html#l00026">serverrec::serverrec()</a>, <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00654">Server::UserToPseudo()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00932">ConfigReader::DumpErrors()</a>, <a class="el" href="modules_8cpp-source.html#l00665">Server::PseudoToUser()</a>, <a class="el" href="modules_8cpp-source.html#l00522">Server::SendTo()</a>, <a class="el" href="servers_8cpp-source.html#l00026">serverrec::serverrec()</a>, <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00656">Server::UserToPseudo()</a>.    </td>
   </tr>
 </table>
 <a name="o8" doxytag="connection::haspassed"></a><p>
@@ -701,7 +701,7 @@ True if server/user has authenticated, false if otherwise.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00203">203</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00215">215</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -729,9 +729,9 @@ Hostname of connection.
 <p>
 Not used if this is a serverrec
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00175">175</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00187">187</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00065">userrec::GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00654">Server::UserToPseudo()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00065">userrec::GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00665">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00656">Server::UserToPseudo()</a>.    </td>
   </tr>
 </table>
 <a name="o14" doxytag="connection::idle_lastmsg"></a><p>
@@ -757,7 +757,7 @@ Time that the connection last sent data, used to calculate idle time.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00229">229</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00241">241</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -785,7 +785,7 @@ Inbuf of connection.
 <p>
 Only used for userrec
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00183">183</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00195">195</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -813,7 +813,7 @@ Unused, will be removed in a future alpha/beta.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00237">237</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00249">249</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <a name="o17" doxytag="connection::internal_port"></a><p>
@@ -839,7 +839,7 @@ Unused, will be removed in a future alpha/beta.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00241">241</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00253">253</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <a name="o2" doxytag="connection::ip"></a><p>
@@ -865,7 +865,7 @@ IP of connection.
 <p>
 Reserved for future use.
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00179">179</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00191">191</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -893,7 +893,7 @@ Time the connection was last pinged.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00221">221</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00233">233</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="servers_8cpp-source.html#l00026">serverrec::serverrec()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -921,7 +921,7 @@ Used by PING checks with clients.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00233">233</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00245">245</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -949,7 +949,7 @@ Port number For a userrec, this is the port they connected to the network on.
 <p>
 For a serverrec this is the current listening port of the serverrec object.
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00209">209</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00221">221</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -977,7 +977,7 @@ Used by userrec to indicate the registration status of the connection.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00213">213</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00225">225</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -1005,7 +1005,7 @@ Time the connection was created, set in the constructor.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00225">225</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
+Definition at line <a class="el" href="connection_8h-source.html#l00237">237</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
 Referenced by <a class="el" href="servers_8cpp-source.html#l00026">serverrec::serverrec()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
@@ -1033,12 +1033,12 @@ Reserved for future use.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00217">217</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00229">229</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="connection_8h-source.html">connection.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:02 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:47 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index efd1586dec2de9a8b9af25c4cfb71f16fa28eded..b3c5d17463b0a926c7d3743ed2488676d36d1409 100644 (file)
@@ -25,7 +25,7 @@
 </td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;Z&nbsp;&nbsp;</div></td></tr></table>
 </td></tr><tr><td><a class="el" href="classconnection.html">connection</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;G&nbsp;&nbsp;</div></td></tr></table>
 </td><td><a class="el" href="classModeParameter.html">ModeParameter</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classServer.html">Server</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classZLine.html">ZLine</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classGLine.html">GLine</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classModule.html">Module</a>&nbsp;&nbsp;&nbsp;</td></tr></table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:59 2005 for InspIRCd by
+</td><td><a class="el" href="classGLine.html">GLine</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classModule.html">Module</a>&nbsp;&nbsp;&nbsp;</td></tr></table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index ae5ada4a2728bfb8435d045d968d99414e3b4796..323460439edca4be430b3f65ff627f11419a5004 100644 (file)
@@ -6,13 +6,17 @@
 <!-- Generated by Doxygen 1.3.3 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>ircd_connector Member List</h1>This is the complete list of members for <a class="el" href="classircd__connector.html">ircd_connector</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="classircd__connector.html#a14">AddBuffer</a>(std::string a)</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#r0">addr</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#o0">age</a></td><td><a class="el" href="classclassbase.html">classbase</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classircd__connector.html#a15">BufferIsComplete</a>()</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a0">classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classircd__connector.html#a16">ClearBuffer</a>()</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#a13">CloseConnection</a>()</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#r3">description</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classExtensible.html#a0">Extend</a>(std::string key, char *p)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#r1">fd</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classircd__connector.html#a17">GetBuffer</a>()</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#a8">GetDescription</a>()</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#a3">GetDescriptor</a>()</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classExtensible.html#a2">GetExt</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#a1">GetServerName</a>()</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#a10">GetServerPort</a>()</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#a5">GetState</a>()</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classircd__connector.html#o0">host</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classircd__connector.html#a0">MakeOutboundConnection</a>(char *host, int port)</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classircd__connector.html#o1">port</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classircd__connector.html#o2">routes</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classircd__connector.html#o1">host</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classircd__connector.html#o0">ircdbuffer</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classircd__connector.html#a0">MakeOutboundConnection</a>(char *newhost, int newport)</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classircd__connector.html#o2">port</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classircd__connector.html#o3">routes</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#r2">servername</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#a9">SetDescription</a>(std::string desc)</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#a4">SetDescriptor</a>(int fd)</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#d0">SetHostAddress</a>(char *host, int port)</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td><code> [private]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classircd__connector.html#a12">SetHostAndPort</a>(char *host, int port)</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classircd__connector.html#a12">SetHostAndPort</a>(char *newhost, int newport)</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#a2">SetServerName</a>(std::string serv)</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#a11">SetServerPort</a>(int p)</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#a6">SetState</a>(int state)</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classExtensible.html#a1">Shrink</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classircd__connector.html#r4">state</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:04 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 6a366234bd922f3a67c9c5ec1405be7a50ecdd2b..a5acb44f18b3a78e1515532df0fe94e5814a47d0 100644 (file)
@@ -15,7 +15,7 @@ Inherits <a class="el" href="classExtensible.html">Extensible</a>.
 <a href="classircd__connector-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
 <tr><td></td></tr>
 <tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a0">MakeOutboundConnection</a> (char *<a class="el" href="classircd__connector.html#o0">host</a>, int <a class="el" href="classircd__connector.html#o1">port</a>)</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a0">MakeOutboundConnection</a> (char *newhost, int newport)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an outbound connection to a listening socket. </em> <a href="#a0"></a><em><br><br></td></tr>
 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a1">GetServerName</a> ()</td></tr>
@@ -51,24 +51,35 @@ Inherits <a class="el" href="classExtensible.html">Extensible</a>.
 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a11">SetServerPort</a> (int p)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the port used by this connection. </em> <a href="#a11"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a12">SetHostAndPort</a> (char *<a class="el" href="classircd__connector.html#o0">host</a>, int <a class="el" href="classircd__connector.html#o1">port</a>)</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a12">SetHostAndPort</a> (char *newhost, int newport)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set both the host and the port in one operation for this connection. </em> <a href="#a12"></a><em><br><br></td></tr>
 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a13">CloseConnection</a> ()</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close the connection by calling close() on its file descriptor This function call updates no other data. </em> <a href="#a13"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a14">AddBuffer</a> (std::string a)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a15">BufferIsComplete</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a16">ClearBuffer</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a17">GetBuffer</a> ()</td></tr>
+
 <tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#o0">host</a> [MAXBUF]</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#o0">ircdbuffer</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. </em> <a href="#o0"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#o1">port</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">IRCD Buffer for input characters, holds one line. </em> <a href="#o0"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#o1">host</a> [MAXBUF]</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. </em> <a href="#o1"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#o2">routes</a></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#o2">port</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. </em> <a href="#o2"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#o3">routes</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classServer.html">Server</a> names of servers that this server is linked to So for A-&gt;B-&gt;C, if this was the record for B it would contain A and C whilever both servers are connected to B. </em> <a href="#o2"></a><em><br><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classServer.html">Server</a> names of servers that this server is linked to So for A-&gt;B-&gt;C, if this was the record for B it would contain A and C whilever both servers are connected to B. </em> <a href="#o3"></a><em><br><br></td></tr>
 <tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#d0">SetHostAddress</a> (char *<a class="el" href="classircd__connector.html#o0">host</a>, int <a class="el" href="classircd__connector.html#o1">port</a>)</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#d0">SetHostAddress</a> (char *<a class="el" href="classircd__connector.html#o1">host</a>, int <a class="el" href="classircd__connector.html#o2">port</a>)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PRIVATE function to set the host address and port to connect to. </em> <a href="#d0"></a><em><br><br></td></tr>
 <tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
@@ -95,7 +106,92 @@ A listening socket that accepts server type connections is represented by one cl
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00053">53</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.<hr><h2>Member Function Documentation</h2>
+Definition at line <a class="el" href="connection_8h-source.html#l00054">54</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.<hr><h2>Member Function Documentation</h2>
+<a name="a14" doxytag="ircd_connector::AddBuffer"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> void ircd_connector::AddBuffer </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">std::string&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>a</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a name="a15" doxytag="ircd_connector::BufferIsComplete"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> bool ircd_connector::BufferIsComplete </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a name="a16" doxytag="ircd_connector::ClearBuffer"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> void ircd_connector::ClearBuffer </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
 <a name="a13" doxytag="ircd_connector::CloseConnection"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -122,6 +218,34 @@ Definition at line <a class="el" href="connection_8h-source.html#l00053">53</a>
 
 <p>
 Close the connection by calling close() on its file descriptor This function call updates no other data. 
+<p>
+    </td>
+  </tr>
+</table>
+<a name="a17" doxytag="ircd_connector::GetBuffer"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> std::string ircd_connector::GetBuffer </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
 <p>
     </td>
   </tr>
@@ -315,13 +439,13 @@ Get the state flags for this connection.
           <td class="md" nowrap valign="top"> bool ircd_connector::MakeOutboundConnection </td>
           <td class="md" valign="top">(&nbsp;</td>
           <td class="md" nowrap valign="top">char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>host</em>, </td>
+          <td class="mdname" nowrap> <em>newhost</em>, </td>
         </tr>
         <tr>
           <td></td>
           <td></td>
           <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>port</em></td>
+          <td class="mdname" nowrap> <em>newport</em></td>
         </tr>
         <tr>
           <td></td>
@@ -457,13 +581,13 @@ PRIVATE function to set the host address and port to connect to.
           <td class="md" nowrap valign="top"> bool ircd_connector::SetHostAndPort </td>
           <td class="md" valign="top">(&nbsp;</td>
           <td class="md" nowrap valign="top">char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>host</em>, </td>
+          <td class="mdname" nowrap> <em>newhost</em>, </td>
         </tr>
         <tr>
           <td></td>
           <td></td>
           <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>port</em></td>
+          <td class="mdname" nowrap> <em>newport</em></td>
         </tr>
         <tr>
           <td></td>
@@ -605,7 +729,7 @@ Sockaddr of the outbound ip and port.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00058">58</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00059">59</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <a name="r3" doxytag="ircd_connector::description"></a><p>
@@ -631,7 +755,7 @@ Definition at line <a class="el" href="connection_8h-source.html#l00058">58</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00070">70</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00071">71</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <a name="r1" doxytag="ircd_connector::fd"></a><p>
@@ -657,16 +781,16 @@ File descriptor of the connection.
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00062">62</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00063">63</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
-<a name="o0" doxytag="ircd_connector::host"></a><p>
+<a name="o1" doxytag="ircd_connector::host"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char <a class="el" href="classircd__connector.html#o0">ircd_connector::host</a>[MAXBUF]
+          <td class="md" nowrap valign="top"> char <a class="el" href="classircd__connector.html#o1">ircd_connector::host</a>[MAXBUF]
       </table>
     </td>
   </tr>
@@ -682,17 +806,43 @@ Definition at line <a class="el" href="connection_8h-source.html#l00062">62</a>
 When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. 
 <p>
 
+<p>
+Definition at line <a class="el" href="connection_8h-source.html#l00094">94</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+  </tr>
+</table>
+<a name="o0" doxytag="ircd_connector::ircdbuffer"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> std::string <a class="el" href="classircd__connector.html#o0">ircd_connector::ircdbuffer</a>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+IRCD Buffer for input characters, holds one line. 
+<p>
+
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00087">87</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
-<a name="o1" doxytag="ircd_connector::port"></a><p>
+<a name="o2" doxytag="ircd_connector::port"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> int <a class="el" href="classircd__connector.html#o1">ircd_connector::port</a>
+          <td class="md" nowrap valign="top"> int <a class="el" href="classircd__connector.html#o2">ircd_connector::port</a>
       </table>
     </td>
   </tr>
@@ -709,16 +859,16 @@ When MakeOutboundConnection is called, these public members are filled with the
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00093">93</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00100">100</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
-<a name="o2" doxytag="ircd_connector::routes"></a><p>
+<a name="o3" doxytag="ircd_connector::routes"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> std::vector&lt;std::string&gt; <a class="el" href="classircd__connector.html#o2">ircd_connector::routes</a>
+          <td class="md" nowrap valign="top"> std::vector&lt;std::string&gt; <a class="el" href="classircd__connector.html#o3">ircd_connector::routes</a>
       </table>
     </td>
   </tr>
@@ -735,7 +885,7 @@ Definition at line <a class="el" href="connection_8h-source.html#l00093">93</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00099">99</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00106">106</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <a name="r2" doxytag="ircd_connector::servername"></a><p>
@@ -761,7 +911,7 @@ Definition at line <a class="el" href="connection_8h-source.html#l00099">99</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00066">66</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00067">67</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <a name="r4" doxytag="ircd_connector::state"></a><p>
@@ -787,12 +937,12 @@ State.
 <p>
 STATE_NOAUTH_INBOUND, STATE_NOAUTH_OUTBOUND STATE_SYNC, STATE_DISCONNECTED, STATE_CONNECTED
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00075">75</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00076">76</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="connection_8h-source.html">connection.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:04 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index ad5c0403230515ea4d4c7db0f00e809b0ebe41f2..56dabbf32e556d4e91754d27e31537bb0c9d8a6e 100644 (file)
@@ -33,7 +33,7 @@
   <tr class="memlist"><td><a class="el" href="classconnection.html#o2">ip</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classserverrec.html#o7">jupiter</a></td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#o12">lastping</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classconnection.html#a3">MeshCookie</a>(char *targethost, int port, long cookie, char *servername)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classconnection.html#a3">MeshCookie</a>(char *targethost, int port, unsigned long cookie, char *servername)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classserverrec.html#o0">name</a></td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classserverrec.html#o9">nickserv</a></td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#o15">nping</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
@@ -55,7 +55,7 @@
   <tr class="memlist"><td><a class="el" href="classserverrec.html#o6">version</a></td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classserverrec.html#a2">~serverrec</a>()</td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:11 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:51 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 219ae630213d28a6f4d87a0306c8f4071b49907a..8f838c1a771f661ec33b93117d476c4602924982 100644 (file)
@@ -95,7 +95,7 @@ Constructor.
 <p>
 Definition at line <a class="el" href="servers_8cpp-source.html#l00026">26</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
 <p>
-References <a class="el" href="connection_8h-source.html#l00171">connection::fd</a>, <a class="el" href="servers_8h-source.html#l00051">hops_away</a>, <a class="el" href="servers_8h-source.html#l00057">jupiter</a>, <a class="el" href="connection_8h-source.html#l00221">connection::lastping</a>, <a class="el" href="servers_8h-source.html#l00036">name</a>, <a class="el" href="servers_8h-source.html#l00065">nickserv</a>, <a class="el" href="servers_8h-source.html#l00048">opercount</a>, <a class="el" href="servers_8h-source.html#l00039">pingtime</a>, <a class="el" href="connection_8h-source.html#l00225">connection::signon</a>, <a class="el" href="servers_8h-source.html#l00067">sync_soon</a>, <a class="el" href="channels_8cpp-source.html#l00107">TIME</a>, <a class="el" href="servers_8h-source.html#l00045">usercount</a>, <a class="el" href="servers_8h-source.html#l00042">usercount_i</a>, and <a class="el" href="servers_8h-source.html#l00054">version</a>.
+References <a class="el" href="connection_8h-source.html#l00183">connection::fd</a>, <a class="el" href="servers_8h-source.html#l00051">hops_away</a>, <a class="el" href="servers_8h-source.html#l00057">jupiter</a>, <a class="el" href="connection_8h-source.html#l00233">connection::lastping</a>, <a class="el" href="servers_8h-source.html#l00036">name</a>, <a class="el" href="servers_8h-source.html#l00065">nickserv</a>, <a class="el" href="servers_8h-source.html#l00048">opercount</a>, <a class="el" href="servers_8h-source.html#l00039">pingtime</a>, <a class="el" href="connection_8h-source.html#l00237">connection::signon</a>, <a class="el" href="servers_8h-source.html#l00067">sync_soon</a>, <a class="el" href="channels_8cpp-source.html#l00107">TIME</a>, <a class="el" href="servers_8h-source.html#l00045">usercount</a>, <a class="el" href="servers_8h-source.html#l00042">usercount_i</a>, and <a class="el" href="servers_8h-source.html#l00054">version</a>.
 <p>
 <div class="fragment"><pre>00027 {
 00028         strlcpy(name,<span class="stringliteral">""</span>,256);
@@ -159,7 +159,7 @@ Constructor which initialises some of the main variables.
 <p>
 Definition at line <a class="el" href="servers_8cpp-source.html#l00045">45</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
 <p>
-References <a class="el" href="connection_8h-source.html#l00171">connection::fd</a>, <a class="el" href="servers_8h-source.html#l00051">hops_away</a>, <a class="el" href="servers_8h-source.html#l00057">jupiter</a>, <a class="el" href="connection_8h-source.html#l00221">connection::lastping</a>, <a class="el" href="servers_8h-source.html#l00036">name</a>, <a class="el" href="servers_8h-source.html#l00065">nickserv</a>, <a class="el" href="servers_8h-source.html#l00048">opercount</a>, <a class="el" href="connection_8h-source.html#l00225">connection::signon</a>, <a class="el" href="servers_8h-source.html#l00067">sync_soon</a>, <a class="el" href="channels_8cpp-source.html#l00107">TIME</a>, <a class="el" href="servers_8h-source.html#l00045">usercount</a>, <a class="el" href="servers_8h-source.html#l00042">usercount_i</a>, and <a class="el" href="servers_8h-source.html#l00054">version</a>.
+References <a class="el" href="connection_8h-source.html#l00183">connection::fd</a>, <a class="el" href="servers_8h-source.html#l00051">hops_away</a>, <a class="el" href="servers_8h-source.html#l00057">jupiter</a>, <a class="el" href="connection_8h-source.html#l00233">connection::lastping</a>, <a class="el" href="servers_8h-source.html#l00036">name</a>, <a class="el" href="servers_8h-source.html#l00065">nickserv</a>, <a class="el" href="servers_8h-source.html#l00048">opercount</a>, <a class="el" href="connection_8h-source.html#l00237">connection::signon</a>, <a class="el" href="servers_8h-source.html#l00067">sync_soon</a>, <a class="el" href="channels_8cpp-source.html#l00107">TIME</a>, <a class="el" href="servers_8h-source.html#l00045">usercount</a>, <a class="el" href="servers_8h-source.html#l00042">usercount_i</a>, and <a class="el" href="servers_8h-source.html#l00054">version</a>.
 <p>
 <div class="fragment"><pre>00046 {
 00047         strlcpy(name,n,256);
@@ -519,7 +519,7 @@ Referenced by <a class="el" href="servers_8cpp-source.html#l00026">serverrec()</
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="servers_8h-source.html">servers.h</a><li><a class="el" href="servers_8cpp-source.html">servers.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:11 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:51 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 2a781b64cea84fd5e1bfb8a69251f8290d988bb0..7a55022ca1bb8f8511593320ae9b1315161939cc 100644 (file)
@@ -13,7 +13,7 @@
   <tr class="memlist"><td><a class="el" href="classucrec.html#a0">ucrec</a>()</td><td><a class="el" href="classucrec.html">ucrec</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classucrec.html#a1">~ucrec</a>()</td><td><a class="el" href="classucrec.html">ucrec</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:11 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:51 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 43cd75bff179c8efecfc9e2d76ce2be302f2beda..0d275e0e542948d529aca3484167988f968a638b 100644 (file)
@@ -34,7 +34,7 @@ The uc_modes member holds a bitmask of which privilages the user has on the chan
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00202">202</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="channels_8h-source.html#l00257">257</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a name="a0" doxytag="ucrec::ucrec"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -62,9 +62,9 @@ Definition at line <a class="el" href="channels_8h-source.html#l00202">202</a> o
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00215">215</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00270">270</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-<div class="fragment"><pre>00215 { <span class="comment">/* stub */</span> }
+<div class="fragment"><pre>00270 { <span class="comment">/* stub */</span> }
 </pre></div>    </td>
   </tr>
 </table>
@@ -95,9 +95,9 @@ Definition at line <a class="el" href="channels_8h-source.html#l00215">215</a> o
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00216">216</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00271">271</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-<div class="fragment"><pre>00216 { <span class="comment">/* stub */</span> }
+<div class="fragment"><pre>00271 { <span class="comment">/* stub */</span> }
 </pre></div>    </td>
   </tr>
 </table>
@@ -125,9 +125,9 @@ Points to the channel record where the given modes apply.
 <p>
 If the record is not in use, this value will be NULL.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00213">213</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00268">268</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00665">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a name="o0" doxytag="ucrec::uc_modes"></a><p>
@@ -153,14 +153,14 @@ Contains a bitmask of the UCMODE_OP ...
 <p>
 UCMODE_FOUNDER values. If this value is zero, the user has no privilages upon the channel.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00208">208</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+Definition at line <a class="el" href="channels_8h-source.html#l00263">263</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:11 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:51 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 07e9dfa18bde68394f26cb995c6a7e8707cf730a..1fad78737bd60a24109cb69d93be10f02c22e9c3 100644 (file)
   <tr class="memlist"><td><a class="el" href="classconnection.html#o2">ip</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#a4">IsInvited</a>(char *channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#o12">lastping</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classconnection.html#a3">MeshCookie</a>(char *targethost, int port, long cookie, char *servername)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classconnection.html#a3">MeshCookie</a>(char *targethost, int port, unsigned long cookie, char *servername)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#o4">modes</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#o0">nick</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#o15">nping</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#o11">oper</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classuserrec.html#o14">password</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#o13">pingmax</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#o9">port</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#a6">RecvPacket</a>(std::deque&lt; std::string &gt; &amp;messages, char *host)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
@@ -64,7 +65,7 @@
   <tr class="memlist"><td><a class="el" href="classuserrec.html#a0">userrec</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#a1">~userrec</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:12 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index d9c581f023e0471093573bec74e8ef9c8def77d6..0e698ae749dc5e3bba739f7e3a3fc8a1a7e4af70 100644 (file)
@@ -79,6 +79,9 @@ Inherits <a class="el" href="classconnection.html">connection</a>.
 <tr><td class="memItemLeft" nowrap align=right valign=top>unsigned long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o13">pingmax</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of seconds between PINGs for this user (set from &lt;connect:allow&gt; tag. </em> <a href="#o13"></a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o14">password</a> [MAXBUF]</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Password specified by the user when they registered. </em> <a href="#o14"></a><em><br><br></td></tr>
 <tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="users_8h.html#a6">InvitedList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#r0">invites</a></td></tr>
 
@@ -121,7 +124,7 @@ Definition at line <a class="el" href="users_8h-source.html#l00093">93</a> of fi
 <p>
 Definition at line <a class="el" href="users_8cpp-source.html#l00028">28</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
 <p>
-References <a class="el" href="users_8h-source.html#l00136">awaymsg</a>, <a class="el" href="connection_8h-source.html#l00187">connection::bytes_in</a>, <a class="el" href="connection_8h-source.html#l00191">connection::bytes_out</a>, <a class="el" href="channels_8h-source.html#l00213">ucrec::channel</a>, <a class="el" href="users_8h-source.html#l00127">chans</a>, <a class="el" href="connection_8h-source.html#l00195">connection::cmds_in</a>, <a class="el" href="connection_8h-source.html#l00199">connection::cmds_out</a>, <a class="el" href="users_8h-source.html#l00115">dhost</a>, <a class="el" href="users_8h-source.html#l00164">dns_done</a>, <a class="el" href="connection_8h-source.html#l00171">connection::fd</a>, <a class="el" href="users_8h-source.html#l00147">flood</a>, <a class="el" href="users_8h-source.html#l00119">fullname</a>, <a class="el" href="connection_8h-source.html#l00203">connection::haspassed</a>, <a class="el" href="connection_8h-source.html#l00175">connection::host</a>, <a class="el" href="users_8h-source.html#l00110">ident</a>, <a class="el" href="connection_8h-source.html#l00229">connection::idle_lastmsg</a>, <a class="el" href="connection_8h-source.html#l00183">connection::inbuf</a>, <a class="el" href="users_8h-source.html#l00099">invites</a>, <a class="el" href="connection_8h-source.html#l00179">connection::ip</a>, <a class="el" href="connection_8h-source.html#l00221">connection::lastping</a>, <a class="el" href="users_8h-source.html#l00125">modes</a>, <a class="el" href="users_8h-source.html#l00106">nick</a>, <a class="el" href="connection_8h-source.html#l00233">connection::nping</a>, <a class="el" href="users_8h-source.html#l00160">oper</a>, <a class="el" href="connection_8h-source.html#l00209">connection::port</a>, <a class="el" href="connection_8h-source.html#l00213">connection::registered</a>, <a class="el" href="users_8h-source.html#l00141">result</a>, <a class="el" href="users_8h-source.html#l00131">server</a>, <a class="el" href="connection_8h-source.html#l00225">connection::signon</a>, <a class="el" href="users_8h-source.html#l00153">timeout</a>, and <a class="el" href="channels_8h-source.html#l00208">ucrec::uc_modes</a>.
+References <a class="el" href="users_8h-source.html#l00136">awaymsg</a>, <a class="el" href="connection_8h-source.html#l00199">connection::bytes_in</a>, <a class="el" href="connection_8h-source.html#l00203">connection::bytes_out</a>, <a class="el" href="channels_8h-source.html#l00268">ucrec::channel</a>, <a class="el" href="users_8h-source.html#l00127">chans</a>, <a class="el" href="connection_8h-source.html#l00207">connection::cmds_in</a>, <a class="el" href="connection_8h-source.html#l00211">connection::cmds_out</a>, <a class="el" href="users_8h-source.html#l00115">dhost</a>, <a class="el" href="users_8h-source.html#l00164">dns_done</a>, <a class="el" href="connection_8h-source.html#l00183">connection::fd</a>, <a class="el" href="users_8h-source.html#l00147">flood</a>, <a class="el" href="users_8h-source.html#l00119">fullname</a>, <a class="el" href="connection_8h-source.html#l00215">connection::haspassed</a>, <a class="el" href="connection_8h-source.html#l00187">connection::host</a>, <a class="el" href="users_8h-source.html#l00110">ident</a>, <a class="el" href="connection_8h-source.html#l00241">connection::idle_lastmsg</a>, <a class="el" href="connection_8h-source.html#l00195">connection::inbuf</a>, <a class="el" href="users_8h-source.html#l00099">invites</a>, <a class="el" href="connection_8h-source.html#l00191">connection::ip</a>, <a class="el" href="connection_8h-source.html#l00233">connection::lastping</a>, <a class="el" href="users_8h-source.html#l00125">modes</a>, <a class="el" href="users_8h-source.html#l00106">nick</a>, <a class="el" href="connection_8h-source.html#l00245">connection::nping</a>, <a class="el" href="users_8h-source.html#l00160">oper</a>, <a class="el" href="connection_8h-source.html#l00221">connection::port</a>, <a class="el" href="connection_8h-source.html#l00225">connection::registered</a>, <a class="el" href="users_8h-source.html#l00141">result</a>, <a class="el" href="users_8h-source.html#l00131">server</a>, <a class="el" href="connection_8h-source.html#l00237">connection::signon</a>, <a class="el" href="users_8h-source.html#l00153">timeout</a>, and <a class="el" href="channels_8h-source.html#l00263">ucrec::uc_modes</a>.
 <p>
 <div class="fragment"><pre>00029 {
 00030         <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
@@ -179,9 +182,9 @@ References <a class="el" href="users_8h-source.html#l00136">awaymsg</a>, <a clas
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00172">172</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00178">178</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
 <p>
-<div class="fragment"><pre>00172 {  }
+<div class="fragment"><pre>00178 {  }
 </pre></div>    </td>
   </tr>
 </table>
@@ -257,7 +260,7 @@ If any form of hostname cloaking is in operation, e.g. through a module, then th
 <p>
 Definition at line <a class="el" href="users_8cpp-source.html#l00065">65</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
 <p>
-References <a class="el" href="connection_8h-source.html#l00175">connection::host</a>, <a class="el" href="users_8h-source.html#l00110">ident</a>, <a class="el" href="users_8h-source.html#l00106">nick</a>, and <a class="el" href="users_8h-source.html#l00141">result</a>.
+References <a class="el" href="connection_8h-source.html#l00187">connection::host</a>, <a class="el" href="users_8h-source.html#l00110">ident</a>, <a class="el" href="users_8h-source.html#l00106">nick</a>, and <a class="el" href="users_8h-source.html#l00141">result</a>.
 <p>
 <div class="fragment"><pre>00066 {
 00067         snprintf(result,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,host);
@@ -302,54 +305,53 @@ References <a class="el" href="channels_8cpp-source.html#l00101">config_f</a>, a
 <p>
 <div class="fragment"><pre>00115 {
 00116         <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
-00117         <span class="keywordtype">char</span>* myclass;
-00118         <span class="keywordtype">char</span>* mycmd;
-00119         <span class="keywordtype">char</span>* savept;
-00120         <span class="keywordtype">char</span>* savept2;
-00121         
-00122         <span class="comment">// are they even an oper at all?</span>
-00123         <span class="keywordflow">if</span> (strchr(this-&gt;modes,<span class="charliteral">'o'</span>))
-00124         {
-00125                 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper"</span>,this-&gt;nick);
-00126                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j &lt; ConfValueEnum(<span class="stringliteral">"type"</span>,&amp;config_f); j++)
-00127                 {
-00128                         ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&amp;config_f);
-00129                         <span class="keywordflow">if</span> (!strcmp(TypeName,this-&gt;oper))
-00130                         {
-00131                                 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this-&gt;nick,this-&gt;oper);
-00132                                 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&amp;config_f);
-00133                                 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&amp;savept);
-00134                                 <span class="keywordflow">while</span> (myclass)
-00135                                 {
-00136                                         log(DEBUG,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
-00137                                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;config_f); k++)
-00138                                         {
-00139                                                 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;config_f);
-00140                                                 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
-00141                                                 {
-00142                                                         ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;config_f);
-00143                                                         log(DEBUG,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
+00117         <span class="keywordtype">char</span>* mycmd;
+00118         <span class="keywordtype">char</span>* savept;
+00119         <span class="keywordtype">char</span>* savept2;
+00120         
+00121         <span class="comment">// are they even an oper at all?</span>
+00122         <span class="keywordflow">if</span> (strchr(this-&gt;modes,<span class="charliteral">'o'</span>))
+00123         {
+00124                 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper"</span>,this-&gt;nick);
+00125                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j &lt; ConfValueEnum(<span class="stringliteral">"type"</span>,&amp;config_f); j++)
+00126                 {
+00127                         ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&amp;config_f);
+00128                         <span class="keywordflow">if</span> (!strcmp(TypeName,this-&gt;oper))
+00129                         {
+00130                                 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this-&gt;nick,this-&gt;oper);
+00131                                 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&amp;config_f);
+00132                                 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&amp;savept);
+00133                                 <span class="keywordflow">while</span> (myclass)
+00134                                 {
+00135                                         log(DEBUG,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
+00136                                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;config_f); k++)
+00137                                         {
+00138                                                 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;config_f);
+00139                                                 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
+00140                                                 {
+00141                                                         ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;config_f);
+00142                                                         log(DEBUG,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
+00143                                                         
 00144                                                         
-00145                                                         
-00146                                                         mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
-00147                                                         <span class="keywordflow">while</span> (mycmd)
-00148                                                         {
-00149                                                                 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
-00150                                                                 {
-00151                                                                         log(DEBUG,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
-00152                                                                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00153                                                                 }
-00154                                                                 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
-00155                                                         }
-00156                                                 }
-00157                                         }
-00158                                         myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
-00159                                 }
-00160                         }
-00161                 }
-00162         }
-00163         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00164 }
+00145                                                         mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
+00146                                                         <span class="keywordflow">while</span> (mycmd)
+00147                                                         {
+00148                                                                 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
+00149                                                                 {
+00150                                                                         log(DEBUG,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
+00151                                                                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00152                                                                 }
+00153                                                                 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
+00154                                                         }
+00155                                                 }
+00156                                         }
+00157                                         myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
+00158                                 }
+00159                         }
+00160                 }
+00161         }
+00162         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00163 }
 </pre></div>    </td>
   </tr>
 </table>
@@ -553,7 +555,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.
 <p>
 Definition at line <a class="el" href="users_8h-source.html#l00127">127</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00665">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
   </tr>
 </table>
 <a name="o2" doxytag="userrec::dhost"></a><p>
@@ -693,7 +695,7 @@ The users ident reply.
 <p>
 Definition at line <a class="el" href="users_8h-source.html#l00110">110</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00058">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00065">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00654">Server::UserToPseudo()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00058">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00065">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00665">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00656">Server::UserToPseudo()</a>.    </td>
   </tr>
 </table>
 <a name="r0" doxytag="userrec::invites"></a><p>
@@ -777,7 +779,7 @@ An invalid nickname indicates an unregistered connection prior to the NICK comma
 <p>
 Definition at line <a class="el" href="users_8h-source.html#l00106">106</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00930">ConfigReader::DumpErrors()</a>, <a class="el" href="users_8cpp-source.html#l00058">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00065">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>, <a class="el" href="modules_8cpp-source.html#l00474">Server::QuitUser()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00932">ConfigReader::DumpErrors()</a>, <a class="el" href="users_8cpp-source.html#l00058">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00065">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00665">Server::PseudoToUser()</a>, <a class="el" href="modules_8cpp-source.html#l00476">Server::QuitUser()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
   </tr>
 </table>
 <a name="o11" doxytag="userrec::oper"></a><p>
@@ -808,6 +810,32 @@ Definition at line <a class="el" href="users_8h-source.html#l00160">160</a> of f
 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
   </tr>
 </table>
+<a name="o14" doxytag="userrec::password"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o14">userrec::password</a>[MAXBUF]
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Password specified by the user when they registered. 
+<p>
+This is stored even if the  block doesnt need a password, so that modules may check it.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00174">174</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+  </tr>
+</table>
 <a name="o13" doxytag="userrec::pingmax"></a><p>
 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
   <tr>
@@ -920,7 +948,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="users_8h-source.html">users.h</a><li><a class="el" href="users_8cpp-source.html">users.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:12 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 5ea853b0de82d077a4df7b6854a29d75fb0ec367..cadb3d3f206b395243db0c3b9c29bfca0393c60b 100644 (file)
 00121 <span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a75">duration</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);
 00122 
 00123 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:54 2005 for InspIRCd by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:43 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 4e948d4f815c596f301c88d95d5b4106b82158e6..578df85d6086ed3d3c20090872c3eb8c8057b53e 100644 (file)
@@ -207,7 +207,7 @@ Other useful functions.
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00713">Server::AddELine()</a>, <a class="el" href="modules_8cpp-source.html#l00693">Server::AddGLine()</a>, <a class="el" href="modules_8cpp-source.html#l00708">Server::AddKLine()</a>, <a class="el" href="modules_8cpp-source.html#l00698">Server::AddQLine()</a>, <a class="el" href="modules_8cpp-source.html#l00703">Server::AddZLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00743">Server::CalcDuration()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00715">Server::AddELine()</a>, <a class="el" href="modules_8cpp-source.html#l00695">Server::AddGLine()</a>, <a class="el" href="modules_8cpp-source.html#l00710">Server::AddKLine()</a>, <a class="el" href="modules_8cpp-source.html#l00700">Server::AddQLine()</a>, <a class="el" href="modules_8cpp-source.html#l00705">Server::AddZLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00745">Server::CalcDuration()</a>.    </td>
   </tr>
 </table>
 <a name="a58" doxytag="commands.h::handle_a"></a><p>
@@ -3722,7 +3722,7 @@ Functions for u:lined servers.
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00480">Server::IsUlined()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00482">Server::IsUlined()</a>.    </td>
   </tr>
 </table>
 <a name="a51" doxytag="commands.h::process_restricted_commands"></a><p>
@@ -3793,7 +3793,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00480">Server::IsUli
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:57 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:45 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 07a4f3867625cd28892e519a90121eb7a2fd352f..52c7221adc401296b8254aae9dd45395441ea3dd 100644 (file)
 00027 <span class="preprocessor">#include &lt;time.h&gt;</span>
 00028 <span class="preprocessor">#include &lt;vector&gt;</span>
 00029 <span class="preprocessor">#include &lt;deque&gt;</span>
-00030 
-00031 <span class="preprocessor">#ifndef __CONNECTION_H__</span>
-00032 <span class="preprocessor"></span><span class="preprocessor">#define __CONNECTION_H__</span>
-00033 <span class="preprocessor"></span>
-<a name="l00034"></a><a class="code" href="connection_8h.html#a0">00034</a> <span class="preprocessor">#define STATE_DISCONNECTED      0</span>
-<a name="l00035"></a><a class="code" href="connection_8h.html#a1">00035</a> <span class="preprocessor"></span><span class="preprocessor">#define STATE_CONNECTED         1</span>
-<a name="l00036"></a><a class="code" href="connection_8h.html#a2">00036</a> <span class="preprocessor"></span><span class="preprocessor">#define STATE_SYNC              2</span>
-<a name="l00037"></a><a class="code" href="connection_8h.html#a3">00037</a> <span class="preprocessor"></span><span class="preprocessor">#define STATE_NOAUTH_INBOUND    3</span>
-<a name="l00038"></a><a class="code" href="connection_8h.html#a4">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define STATE_NOAUTH_OUTBOUND   4</span>
-<a name="l00039"></a><a class="code" href="connection_8h.html#a5">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define STATE_SERVICES          5</span>
-00040 <span class="preprocessor"></span>
-<a name="l00053"></a><a class="code" href="classircd__connector.html">00053</a> <span class="keyword">class </span><a class="code" href="classircd__connector.html">ircd_connector</a> : <span class="keyword">public</span> <a class="code" href="classExtensible.html">Extensible</a>
-00054 {
-00055  <span class="keyword">private</span>:
-<a name="l00058"></a><a class="code" href="classircd__connector.html#r0">00058</a>         sockaddr_in <a class="code" href="classircd__connector.html#r0">addr</a>;
-00059         
-<a name="l00062"></a><a class="code" href="classircd__connector.html#r1">00062</a>         <span class="keywordtype">int</span> <a class="code" href="classircd__connector.html#r1">fd</a>;
-00063         
-<a name="l00066"></a><a class="code" href="classircd__connector.html#r2">00066</a>         std::string <a class="code" href="classircd__connector.html#r2">servername</a>;
-00067         
-<a name="l00070"></a><a class="code" href="classircd__connector.html#r3">00070</a>         std::string <a class="code" href="classircd__connector.html#r3">description</a>;
-00071         
-<a name="l00075"></a><a class="code" href="classircd__connector.html#r4">00075</a>         <span class="keywordtype">int</span> <a class="code" href="classircd__connector.html#r4">state</a>;
-00076         
-00079         <span class="keywordtype">bool</span> <a class="code" href="classircd__connector.html#d0">SetHostAddress</a>(<span class="keywordtype">char</span>* host, <span class="keywordtype">int</span> port);
-00080 
-00081  <span class="keyword">public</span>:
-00082  
-<a name="l00087"></a><a class="code" href="classircd__connector.html#o0">00087</a>         <span class="keywordtype">char</span> <a class="code" href="classircd__connector.html#o0">host</a>[MAXBUF];
+00030 <span class="preprocessor">#include &lt;sstream&gt;</span>
+00031 
+00032 <span class="preprocessor">#ifndef __CONNECTION_H__</span>
+00033 <span class="preprocessor"></span><span class="preprocessor">#define __CONNECTION_H__</span>
+00034 <span class="preprocessor"></span>
+<a name="l00035"></a><a class="code" href="connection_8h.html#a0">00035</a> <span class="preprocessor">#define STATE_DISCONNECTED      0</span>
+<a name="l00036"></a><a class="code" href="connection_8h.html#a1">00036</a> <span class="preprocessor"></span><span class="preprocessor">#define STATE_CONNECTED         1</span>
+<a name="l00037"></a><a class="code" href="connection_8h.html#a2">00037</a> <span class="preprocessor"></span><span class="preprocessor">#define STATE_SYNC              2</span>
+<a name="l00038"></a><a class="code" href="connection_8h.html#a3">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define STATE_NOAUTH_INBOUND    3</span>
+<a name="l00039"></a><a class="code" href="connection_8h.html#a4">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define STATE_NOAUTH_OUTBOUND   4</span>
+<a name="l00040"></a><a class="code" href="connection_8h.html#a5">00040</a> <span class="preprocessor"></span><span class="preprocessor">#define STATE_SERVICES          5</span>
+00041 <span class="preprocessor"></span>
+<a name="l00054"></a><a class="code" href="classircd__connector.html">00054</a> <span class="keyword">class </span><a class="code" href="classircd__connector.html">ircd_connector</a> : <span class="keyword">public</span> <a class="code" href="classExtensible.html">Extensible</a>
+00055 {
+00056  <span class="keyword">private</span>:
+<a name="l00059"></a><a class="code" href="classircd__connector.html#r0">00059</a>         sockaddr_in <a class="code" href="classircd__connector.html#r0">addr</a>;
+00060         
+<a name="l00063"></a><a class="code" href="classircd__connector.html#r1">00063</a>         <span class="keywordtype">int</span> <a class="code" href="classircd__connector.html#r1">fd</a>;
+00064         
+<a name="l00067"></a><a class="code" href="classircd__connector.html#r2">00067</a>         std::string <a class="code" href="classircd__connector.html#r2">servername</a>;
+00068         
+<a name="l00071"></a><a class="code" href="classircd__connector.html#r3">00071</a>         std::string <a class="code" href="classircd__connector.html#r3">description</a>;
+00072         
+<a name="l00076"></a><a class="code" href="classircd__connector.html#r4">00076</a>         <span class="keywordtype">int</span> <a class="code" href="classircd__connector.html#r4">state</a>;
+00077         
+00080         <span class="keywordtype">bool</span> <a class="code" href="classircd__connector.html#d0">SetHostAddress</a>(<span class="keywordtype">char</span>* host, <span class="keywordtype">int</span> port);
+00081 
+00082 
+00083  <span class="keyword">public</span>:
+00084 
+<a name="l00087"></a><a class="code" href="classircd__connector.html#o0">00087</a>         std::string <a class="code" href="classircd__connector.html#o0">ircdbuffer</a>;
 00088 
-<a name="l00093"></a><a class="code" href="classircd__connector.html#o1">00093</a>         <span class="keywordtype">int</span> <a class="code" href="classircd__connector.html#o1">port</a>;
-00094         
-<a name="l00099"></a><a class="code" href="classircd__connector.html#o2">00099</a>         std::vector&lt;std::string&gt; <a class="code" href="classircd__connector.html#o2">routes</a>;
-00100         
-00101 
-00104         <span class="keywordtype">bool</span> <a class="code" href="classircd__connector.html#a0">MakeOutboundConnection</a>(<span class="keywordtype">char</span>* host, <span class="keywordtype">int</span> port);
-00105         
-00108         std::string <a class="code" href="classircd__connector.html#a1">GetServerName</a>();
-00109         
-00112         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a2">SetServerName</a>(std::string serv);
-00113         
-00116         <span class="keywordtype">int</span> <a class="code" href="classircd__connector.html#a3">GetDescriptor</a>();
-00117         
-00120         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a4">SetDescriptor</a>(<span class="keywordtype">int</span> fd);
-00121         
-00124         <span class="keywordtype">int</span> <a class="code" href="classircd__connector.html#a5">GetState</a>();
-00125         
-00128         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a6">SetState</a>(<span class="keywordtype">int</span> state);
-00129         
-00132         <span class="keywordtype">char</span>* <a class="code" href="classircd__connector.html#a7">GetServerIP</a>();
-00133         
-00136         std::string <a class="code" href="classircd__connector.html#a8">GetDescription</a>();
-00137         
-00140         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a9">SetDescription</a>(std::string desc);
-00141         
-00147         <span class="keywordtype">int</span> <a class="code" href="classircd__connector.html#a10">GetServerPort</a>();
+00089  
+<a name="l00094"></a><a class="code" href="classircd__connector.html#o1">00094</a>         <span class="keywordtype">char</span> <a class="code" href="classircd__connector.html#o1">host</a>[MAXBUF];
+00095 
+<a name="l00100"></a><a class="code" href="classircd__connector.html#o2">00100</a>         <span class="keywordtype">int</span> <a class="code" href="classircd__connector.html#o2">port</a>;
+00101         
+<a name="l00106"></a><a class="code" href="classircd__connector.html#o3">00106</a>         std::vector&lt;std::string&gt; <a class="code" href="classircd__connector.html#o3">routes</a>;
+00107         
+00108 
+00111         <span class="keywordtype">bool</span> <a class="code" href="classircd__connector.html#a0">MakeOutboundConnection</a>(<span class="keywordtype">char</span>* newhost, <span class="keywordtype">int</span> newport);
+00112         
+00115         std::string <a class="code" href="classircd__connector.html#a1">GetServerName</a>();
+00116         
+00119         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a2">SetServerName</a>(std::string serv);
+00120         
+00123         <span class="keywordtype">int</span> <a class="code" href="classircd__connector.html#a3">GetDescriptor</a>();
+00124         
+00127         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a4">SetDescriptor</a>(<span class="keywordtype">int</span> fd);
+00128         
+00131         <span class="keywordtype">int</span> <a class="code" href="classircd__connector.html#a5">GetState</a>();
+00132         
+00135         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a6">SetState</a>(<span class="keywordtype">int</span> state);
+00136         
+00139         <span class="keywordtype">char</span>* <a class="code" href="classircd__connector.html#a7">GetServerIP</a>();
+00140         
+00143         std::string <a class="code" href="classircd__connector.html#a8">GetDescription</a>();
+00144         
+00147         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a9">SetDescription</a>(std::string desc);
 00148         
-00151         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a11">SetServerPort</a>(<span class="keywordtype">int</span> p);
-00152         
-00155         <span class="keywordtype">bool</span> <a class="code" href="classircd__connector.html#a12">SetHostAndPort</a>(<span class="keywordtype">char</span>* host, <span class="keywordtype">int</span> port);
-00156         
-00160         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a13">CloseConnection</a>();
-00161 };
-00162 
-00163 
-<a name="l00166"></a><a class="code" href="classconnection.html">00166</a> <span class="keyword">class </span><a class="code" href="classconnection.html">connection</a> : <span class="keyword">public</span> <a class="code" href="classExtensible.html">Extensible</a>
-00167 {
-00168  <span class="keyword">public</span>:
-<a name="l00171"></a><a class="code" href="classconnection.html#o0">00171</a>         <span class="keywordtype">int</span> <a class="code" href="classconnection.html#o0">fd</a>;
-00172         
-<a name="l00175"></a><a class="code" href="classconnection.html#o1">00175</a>         <span class="keywordtype">char</span> <a class="code" href="classconnection.html#o1">host</a>[256];
-00176         
-<a name="l00179"></a><a class="code" href="classconnection.html#o2">00179</a>         <span class="keywordtype">char</span> <a class="code" href="classconnection.html#o2">ip</a>[32];
-00180         
-<a name="l00183"></a><a class="code" href="classconnection.html#o3">00183</a>         <span class="keywordtype">char</span> <a class="code" href="classconnection.html#o3">inbuf</a>[MAXBUF];
+00154         <span class="keywordtype">int</span> <a class="code" href="classircd__connector.html#a10">GetServerPort</a>();
+00155         
+00158         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a11">SetServerPort</a>(<span class="keywordtype">int</span> p);
+00159         
+00162         <span class="keywordtype">bool</span> <a class="code" href="classircd__connector.html#a12">SetHostAndPort</a>(<span class="keywordtype">char</span>* newhost, <span class="keywordtype">int</span> newport);
+00163         
+00167         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a13">CloseConnection</a>();
+00168 
+00169         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a14">AddBuffer</a>(std::string a);
+00170         <span class="keywordtype">bool</span> <a class="code" href="classircd__connector.html#a15">BufferIsComplete</a>();
+00171         <span class="keywordtype">void</span> <a class="code" href="classircd__connector.html#a16">ClearBuffer</a>();
+00172         std::string <a class="code" href="classircd__connector.html#a17">GetBuffer</a>();
+00173 };
+00174 
+00175 
+<a name="l00178"></a><a class="code" href="classconnection.html">00178</a> <span class="keyword">class </span><a class="code" href="classconnection.html">connection</a> : <span class="keyword">public</span> <a class="code" href="classExtensible.html">Extensible</a>
+00179 {
+00180  <span class="keyword">public</span>:
+<a name="l00183"></a><a class="code" href="classconnection.html#o0">00183</a>         <span class="keywordtype">int</span> <a class="code" href="classconnection.html#o0">fd</a>;
 00184         
-<a name="l00187"></a><a class="code" href="classconnection.html#o4">00187</a>         <span class="keywordtype">long</span> <a class="code" href="classconnection.html#o4">bytes_in</a>;
-00188 
-<a name="l00191"></a><a class="code" href="classconnection.html#o5">00191</a>         <span class="keywordtype">long</span> <a class="code" href="classconnection.html#o5">bytes_out</a>;
-00192 
-<a name="l00195"></a><a class="code" href="classconnection.html#o6">00195</a>         <span class="keywordtype">long</span> <a class="code" href="classconnection.html#o6">cmds_in</a>;
-00196 
-<a name="l00199"></a><a class="code" href="classconnection.html#o7">00199</a>         <span class="keywordtype">long</span> <a class="code" href="classconnection.html#o7">cmds_out</a>;
+<a name="l00187"></a><a class="code" href="classconnection.html#o1">00187</a>         <span class="keywordtype">char</span> <a class="code" href="classconnection.html#o1">host</a>[256];
+00188         
+<a name="l00191"></a><a class="code" href="classconnection.html#o2">00191</a>         <span class="keywordtype">char</span> <a class="code" href="classconnection.html#o2">ip</a>[32];
+00192         
+<a name="l00195"></a><a class="code" href="classconnection.html#o3">00195</a>         <span class="keywordtype">char</span> <a class="code" href="classconnection.html#o3">inbuf</a>[MAXBUF];
+00196         
+<a name="l00199"></a><a class="code" href="classconnection.html#o4">00199</a>         <span class="keywordtype">long</span> <a class="code" href="classconnection.html#o4">bytes_in</a>;
 00200 
-<a name="l00203"></a><a class="code" href="classconnection.html#o8">00203</a>         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#o8">haspassed</a>;
+<a name="l00203"></a><a class="code" href="classconnection.html#o5">00203</a>         <span class="keywordtype">long</span> <a class="code" href="classconnection.html#o5">bytes_out</a>;
 00204 
-<a name="l00209"></a><a class="code" href="classconnection.html#o9">00209</a>         <span class="keywordtype">int</span> <a class="code" href="classconnection.html#o9">port</a>;
-00210         
-<a name="l00213"></a><a class="code" href="classconnection.html#o10">00213</a>         <span class="keywordtype">int</span> <a class="code" href="classconnection.html#o10">registered</a>;
-00214         
-<a name="l00217"></a><a class="code" href="classconnection.html#o11">00217</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classconnection.html#o11">state</a>;
-00218         
-<a name="l00221"></a><a class="code" href="classconnection.html#o12">00221</a>         time_t <a class="code" href="classconnection.html#o12">lastping</a>;
+<a name="l00207"></a><a class="code" href="classconnection.html#o6">00207</a>         <span class="keywordtype">long</span> <a class="code" href="classconnection.html#o6">cmds_in</a>;
+00208 
+<a name="l00211"></a><a class="code" href="classconnection.html#o7">00211</a>         <span class="keywordtype">long</span> <a class="code" href="classconnection.html#o7">cmds_out</a>;
+00212 
+<a name="l00215"></a><a class="code" href="classconnection.html#o8">00215</a>         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#o8">haspassed</a>;
+00216 
+<a name="l00221"></a><a class="code" href="classconnection.html#o9">00221</a>         <span class="keywordtype">int</span> <a class="code" href="classconnection.html#o9">port</a>;
 00222         
-<a name="l00225"></a><a class="code" href="classconnection.html#o13">00225</a>         time_t <a class="code" href="classconnection.html#o13">signon</a>;
+<a name="l00225"></a><a class="code" href="classconnection.html#o10">00225</a>         <span class="keywordtype">int</span> <a class="code" href="classconnection.html#o10">registered</a>;
 00226         
-<a name="l00229"></a><a class="code" href="classconnection.html#o14">00229</a>         time_t <a class="code" href="classconnection.html#o14">idle_lastmsg</a>;
+<a name="l00229"></a><a class="code" href="classconnection.html#o11">00229</a>         <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classconnection.html#o11">state</a>;
 00230         
-<a name="l00233"></a><a class="code" href="classconnection.html#o15">00233</a>         time_t <a class="code" href="classconnection.html#o15">nping</a>;
+<a name="l00233"></a><a class="code" href="classconnection.html#o12">00233</a>         time_t <a class="code" href="classconnection.html#o12">lastping</a>;
 00234         
-<a name="l00237"></a><a class="code" href="classconnection.html#o16">00237</a>         <span class="keywordtype">char</span> <a class="code" href="classconnection.html#o16">internal_addr</a>[MAXBUF];
+<a name="l00237"></a><a class="code" href="classconnection.html#o13">00237</a>         time_t <a class="code" href="classconnection.html#o13">signon</a>;
 00238         
-<a name="l00241"></a><a class="code" href="classconnection.html#o17">00241</a>         <span class="keywordtype">int</span> <a class="code" href="classconnection.html#o17">internal_port</a>;
-00242 
-<a name="l00246"></a><a class="code" href="classconnection.html#o18">00246</a>         std::vector&lt;ircd_connector&gt; <a class="code" href="classconnection.html#o18">connectors</a>;
-00247         
-00250         <a class="code" href="classconnection.html#a0">connection</a>();
-00251         
-00254         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#a1">CreateListener</a>(<span class="keywordtype">char</span>* host, <span class="keywordtype">int</span> p);
-00255         
-00258         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#a2">BeginLink</a>(<span class="keywordtype">char</span>* targethost, <span class="keywordtype">int</span> port, <span class="keywordtype">char</span>* password, <span class="keywordtype">char</span>* servername, <span class="keywordtype">int</span> myport);
+<a name="l00241"></a><a class="code" href="classconnection.html#o14">00241</a>         time_t <a class="code" href="classconnection.html#o14">idle_lastmsg</a>;
+00242         
+<a name="l00245"></a><a class="code" href="classconnection.html#o15">00245</a>         time_t <a class="code" href="classconnection.html#o15">nping</a>;
+00246         
+<a name="l00249"></a><a class="code" href="classconnection.html#o16">00249</a>         <span class="keywordtype">char</span> <a class="code" href="classconnection.html#o16">internal_addr</a>[MAXBUF];
+00250         
+<a name="l00253"></a><a class="code" href="classconnection.html#o17">00253</a>         <span class="keywordtype">int</span> <a class="code" href="classconnection.html#o17">internal_port</a>;
+00254 
+<a name="l00258"></a><a class="code" href="classconnection.html#o18">00258</a>         std::vector&lt;ircd_connector&gt; <a class="code" href="classconnection.html#o18">connectors</a>;
 00259         
-00262         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#a3">MeshCookie</a>(<span class="keywordtype">char</span>* targethost, <span class="keywordtype">int</span> port, <span class="keywordtype">long</span> cookie, <span class="keywordtype">char</span>* servername);
+00262         <a class="code" href="classconnection.html#a0">connection</a>();
 00263         
-00266         <span class="keywordtype">void</span> <a class="code" href="classconnection.html#a4">TerminateLink</a>(<span class="keywordtype">char</span>* targethost);
+00266         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#a1">CreateListener</a>(<span class="keywordtype">char</span>* host, <span class="keywordtype">int</span> p);
 00267         
-00271         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#a5">SendPacket</a>(<span class="keywordtype">char</span> *message, <span class="keyword">const</span> <span class="keywordtype">char</span>* host);
-00272         
-00277         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#a6">RecvPacket</a>(std::deque&lt;std::string&gt; &amp;messages, <span class="keywordtype">char</span>* host);
-00278         
-00281         <a class="code" href="classircd__connector.html">ircd_connector</a>* <a class="code" href="classconnection.html#a7">FindHost</a>(std::string host);
-00282         
-00286         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#a8">AddIncoming</a>(<span class="keywordtype">int</span> fd,<span class="keywordtype">char</span>* targethost, <span class="keywordtype">int</span> sourceport);
-00287         
-00290         <span class="keywordtype">long</span> <a class="code" href="classconnection.html#a9">GenKey</a>();
-00291 };
-00292 
-00293 
-00294 <span class="preprocessor">#endif</span>
-00295 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:54 2005 for InspIRCd by
+00270         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#a2">BeginLink</a>(<span class="keywordtype">char</span>* targethost, <span class="keywordtype">int</span> port, <span class="keywordtype">char</span>* password, <span class="keywordtype">char</span>* servername, <span class="keywordtype">int</span> myport);
+00271         
+00274         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#a3">MeshCookie</a>(<span class="keywordtype">char</span>* targethost, <span class="keywordtype">int</span> port, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> cookie, <span class="keywordtype">char</span>* servername);
+00275         
+00278         <span class="keywordtype">void</span> <a class="code" href="classconnection.html#a4">TerminateLink</a>(<span class="keywordtype">char</span>* targethost);
+00279         
+00283         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#a5">SendPacket</a>(<span class="keywordtype">char</span> *message, <span class="keyword">const</span> <span class="keywordtype">char</span>* host);
+00284         
+00289         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#a6">RecvPacket</a>(std::deque&lt;std::string&gt; &amp;messages, <span class="keywordtype">char</span>* host);
+00290         
+00293         <a class="code" href="classircd__connector.html">ircd_connector</a>* <a class="code" href="classconnection.html#a7">FindHost</a>(std::string host);
+00294         
+00298         <span class="keywordtype">bool</span> <a class="code" href="classconnection.html#a8">AddIncoming</a>(<span class="keywordtype">int</span> fd,<span class="keywordtype">char</span>* targethost, <span class="keywordtype">int</span> sourceport);
+00299         
+00302         <span class="keywordtype">long</span> <a class="code" href="classconnection.html#a9">GenKey</a>();
+00303 };
+00304 
+00305 
+00306 <span class="preprocessor">#endif</span>
+00307 <span class="preprocessor"></span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:43 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 325ee4b36a3863c715f93c6b35de0d4ad248aa81..e3d38e665541c08b13d20ff8891c06d11a3a25f1 100644 (file)
@@ -18,6 +18,7 @@
 <code>#include &lt;time.h&gt;</code><br>
 <code>#include &lt;vector&gt;</code><br>
 <code>#include &lt;deque&gt;</code><br>
+<code>#include &lt;sstream&gt;</code><br>
 
 <p>
 <a href="connection_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
@@ -65,7 +66,7 @@
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00035">35</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00036">36</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <a name="a0" doxytag="connection.h::STATE_DISCONNECTED"></a><p>
@@ -89,7 +90,7 @@ Definition at line <a class="el" href="connection_8h-source.html#l00035">35</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00034">34</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00035">35</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <a name="a3" doxytag="connection.h::STATE_NOAUTH_INBOUND"></a><p>
@@ -113,7 +114,7 @@ Definition at line <a class="el" href="connection_8h-source.html#l00034">34</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00037">37</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00038">38</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <a name="a4" doxytag="connection.h::STATE_NOAUTH_OUTBOUND"></a><p>
@@ -137,7 +138,7 @@ Definition at line <a class="el" href="connection_8h-source.html#l00037">37</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00038">38</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00039">39</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <a name="a5" doxytag="connection.h::STATE_SERVICES"></a><p>
@@ -161,7 +162,7 @@ Definition at line <a class="el" href="connection_8h-source.html#l00038">38</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00039">39</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00040">40</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
 <a name="a2" doxytag="connection.h::STATE_SYNC"></a><p>
@@ -185,10 +186,10 @@ Definition at line <a class="el" href="connection_8h-source.html#l00039">39</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="connection_8h-source.html#l00036">36</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
+Definition at line <a class="el" href="connection_8h-source.html#l00037">37</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:58 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:45 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 120212277096c08b412cda36c53995c4ea002159..5d6cf02e2c05ab35cc60b7f0161e418e7138e0bc 100644 (file)
@@ -42,7 +42,7 @@
 00051 
 00052 <span class="preprocessor">#endif</span>
 00053 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:54 2005 for InspIRCd by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:43 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 2eb7d246bb1ef4eeb55c068ab3769055dd0a2716..e1c5676a6d1fd3b98e774c9dc80cffa56257302f 100644 (file)
@@ -17,7 +17,7 @@
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A structure that defines a command. </em> <a href="classcommand__t.html#_details">More...</a><em><br><br></td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:58 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:45 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 189c8230da420721fbf2288fcf2b3bb92c610943..1ad1225207f84449f3dc797b59f78bbb1a282914 100644 (file)
 <a name="l00035"></a><a class="code" href="classDNS.html">00035</a> <span class="keyword">class </span><a class="code" href="classDNS.html">DNS</a>
 00036 {
 00037 <span class="keyword">private</span>:
-<a name="l00038"></a><a class="code" href="classDNS.html#r0">00038</a>         <span class="keywordtype">char</span> *<a class="code" href="classDNS.html#r0">result</a>;
-<a name="l00039"></a><a class="code" href="classDNS.html#r1">00039</a>         in_addr *<a class="code" href="classDNS.html#r1">binip</a>;
-<a name="l00040"></a><a class="code" href="classDNS.html#r2">00040</a>         <span class="keywordtype">int</span> <a class="code" href="classDNS.html#r2">t</a>,<a class="code" href="classDNS.html#r3">i</a>;
+<a name="l00038"></a><a class="code" href="classDNS.html#r0">00038</a>         in_addr *<a class="code" href="classDNS.html#r0">binip</a>;
+<a name="l00039"></a><a class="code" href="classDNS.html#r1">00039</a>         <span class="keywordtype">char</span>* <a class="code" href="classDNS.html#r1">result</a>;
+<a name="l00040"></a><a class="code" href="classDNS.html#r2">00040</a>         <span class="keywordtype">int</span> <a class="code" href="classDNS.html#r2">t</a>;
 00041         <span class="keywordtype">void</span> <a class="code" href="classDNS.html#d0">dns_init</a>();
-<a name="l00042"></a><a class="code" href="classDNS.html#r4">00042</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classDNS.html#r4">fd</a>;
+<a name="l00042"></a><a class="code" href="classDNS.html#r3">00042</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classDNS.html#r3">fd</a>;
 00043         <span class="keywordtype">void</span> <a class="code" href="classDNS.html#d1">dns_init_2</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* dnsserver);
 00044         in_addr *<a class="code" href="classDNS.html#d2">dns_aton4</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ipstring);
 00045         <span class="keywordtype">char</span> *<a class="code" href="classDNS.html#d3">dns_ntoa4</a>(<span class="keyword">const</span> in_addr * <span class="keyword">const</span> ip);
@@ -70,7 +70,7 @@
 00093 };
 00094 
 00095 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:54 2005 for InspIRCd by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:43 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 115ac8c92624dc5cbb215d445dc0616bbc851e0a..2bfda7fe8b7d9a1ed9bbc5071276160257a53ee2 100644 (file)
@@ -20,7 +20,7 @@
 <tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="structdns__ip4list.html">dns_ip4list</a></td></tr>
 
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:58 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:45 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index c3ffe9d2a21a56a14126ea00346f612d52d24582..7dc8a974a03a42a3b41faee1ed23e46fe06e3473 100644 (file)
@@ -23,7 +23,7 @@
   <tr><td class="indexkey"><a class="el" href="users_8h.html">users.h</a> <a href="users_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="xline_8h.html">xline.h</a> <a href="xline_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:53 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:43 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 5c74ffd02ec60e72bcda9b22fb365444bcbdd0ea..f6d0133825432cc5c453d391aa742871a5785021 100644 (file)
@@ -13,7 +13,8 @@
 <p>
 Here is a list of all class members with links to the classes they belong to:<h3><a name="index_a">- a -</a>
 </h3><ul>
-<li>AddCommand()
+<li>AddBuffer()
+: <a class="el" href="classircd__connector.html#a14">ircd_connector</a><li>AddCommand()
 : <a class="el" href="classServer.html#a23">Server</a><li>AddELine()
 : <a class="el" href="classServer.html#a42">Server</a><li>AddExtendedListMode()
 : <a class="el" href="classServer.html#a22">Server</a><li>AddExtendedMode()
@@ -22,7 +23,8 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classconnection.html#a8">connection</a><li>AddKLine()
 : <a class="el" href="classServer.html#a41">Server</a><li>AddQLine()
 : <a class="el" href="classServer.html#a39">Server</a><li>addr
-: <a class="el" href="classircd__connector.html#r0">ircd_connector</a><li>AddZLine()
+: <a class="el" href="classircd__connector.html#r0">ircd_connector</a><li>AddUser()
+: <a class="el" href="classchanrec.html#a7">chanrec</a><li>AddZLine()
 : <a class="el" href="classServer.html#a40">Server</a><li>Admin()
 : <a class="el" href="classAdmin.html#a0">Admin</a><li>age
 : <a class="el" href="classclassbase.html#o0">classbase</a><li>awaymsg
@@ -30,16 +32,17 @@ Here is a list of all class members with links to the classes they belong to:<h3
 <h3><a name="index_b">- b -</a>
 </h3><ul>
 <li>bans
-: <a class="el" href="classchanrec.html#o14">chanrec</a><li>BeginLink()
+: <a class="el" href="classchanrec.html#o16">chanrec</a><li>BeginLink()
 : <a class="el" href="classconnection.html#a2">connection</a><li>binip
-: <a class="el" href="classDNS.html#r1">DNS</a><li>Build
+: <a class="el" href="classDNS.html#r0">DNS</a><li>BufferIsComplete()
+: <a class="el" href="classircd__connector.html#a15">ircd_connector</a><li>Build
 : <a class="el" href="classVersion.html#o3">Version</a><li>bytes_in
 : <a class="el" href="classconnection.html#o4">connection</a><li>bytes_out
 : <a class="el" href="classconnection.html#o5">connection</a></ul>
 <h3><a name="index_c">- c -</a>
 </h3><ul>
 <li>c_private
-: <a class="el" href="classchanrec.html#o13">chanrec</a><li>cache
+: <a class="el" href="classchanrec.html#o15">chanrec</a><li>cache
 : <a class="el" href="classConfigReader.html#p0">ConfigReader</a><li>CalcDuration()
 : <a class="el" href="classServer.html#a48">Server</a><li>CallCommandHandler()
 : <a class="el" href="classServer.html#a31">Server</a><li>ChangeGECOS()
@@ -48,9 +51,10 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classServer.html#a28">Server</a><li>ChanMode()
 : <a class="el" href="classServer.html#a16">Server</a><li>channel
 : <a class="el" href="classInvited.html#o0">Invited</a>, <a class="el" href="classucrec.html#o1">ucrec</a>, <a class="el" href="classModeParameter.html#o2">ModeParameter</a><li>chanrec()
-: <a class="el" href="classchanrec.html#a4">chanrec</a><li>chans
+: <a class="el" href="classchanrec.html#a10">chanrec</a><li>chans
 : <a class="el" href="classuserrec.html#o5">userrec</a><li>classbase()
-: <a class="el" href="classclassbase.html#a0">classbase</a><li>CloseConnection()
+: <a class="el" href="classclassbase.html#a0">classbase</a><li>ClearBuffer()
+: <a class="el" href="classircd__connector.html#a16">ircd_connector</a><li>CloseConnection()
 : <a class="el" href="classircd__connector.html#a13">ircd_connector</a><li>cmds_in
 : <a class="el" href="classconnection.html#o6">connection</a><li>cmds_out
 : <a class="el" href="classconnection.html#o7">connection</a><li>command
@@ -61,18 +65,20 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classconnection.html#a0">connection</a><li>connectors
 : <a class="el" href="classconnection.html#o18">connection</a><li>CountUsers()
 : <a class="el" href="classServer.html#a13">Server</a><li>created
-: <a class="el" href="classchanrec.html#o3">chanrec</a><li>CreateListener()
+: <a class="el" href="classchanrec.html#o5">chanrec</a><li>CreateListener()
 : <a class="el" href="classconnection.html#a1">connection</a><li>CreateModule()
 : <a class="el" href="classModuleFactory.html#a2">ModuleFactory</a><li>custom_modes
 : <a class="el" href="classchanrec.html#o1">chanrec</a></ul>
 <h3><a name="index_d">- d -</a>
 </h3><ul>
 <li>data
-: <a class="el" href="classEvent.html#p0">Event</a>, <a class="el" href="classRequest.html#p0">Request</a>, <a class="el" href="classHostItem.html#o2">HostItem</a><li>DelELine()
+: <a class="el" href="classEvent.html#p0">Event</a>, <a class="el" href="classRequest.html#p0">Request</a>, <a class="el" href="classHostItem.html#o2">HostItem</a><li>DecUserCounter()
+: <a class="el" href="classchanrec.html#a5">chanrec</a><li>DelELine()
 : <a class="el" href="classServer.html#a47">Server</a><li>DelGLine()
 : <a class="el" href="classServer.html#a43">Server</a><li>DelKLine()
 : <a class="el" href="classServer.html#a46">Server</a><li>DelQLine()
-: <a class="el" href="classServer.html#a44">Server</a><li>DelZLine()
+: <a class="el" href="classServer.html#a44">Server</a><li>DelUser()
+: <a class="el" href="classchanrec.html#a8">chanrec</a><li>DelZLine()
 : <a class="el" href="classServer.html#a45">Server</a><li>description
 : <a class="el" href="classserverrec.html#o8">serverrec</a>, <a class="el" href="classircd__connector.html#r3">ircd_connector</a><li>dest
 : <a class="el" href="classRequest.html#p2">Request</a><li>dhost
@@ -112,7 +118,7 @@ Here is a list of all class members with links to the classes they belong to:<h3
 </h3><ul>
 <li>fc
 : <a class="el" href="classFileReader.html#r0">FileReader</a><li>fd
-: <a class="el" href="classDNS.html#r4">DNS</a>, <a class="el" href="classconnection.html#o0">connection</a>, <a class="el" href="classircd__connector.html#r1">ircd_connector</a><li>FileReader()
+: <a class="el" href="classDNS.html#r3">DNS</a>, <a class="el" href="classconnection.html#o0">connection</a>, <a class="el" href="classircd__connector.html#r1">ircd_connector</a><li>FileReader()
 : <a class="el" href="classFileReader.html#a1">FileReader</a><li>FileSize()
 : <a class="el" href="classFileReader.html#a6">FileReader</a><li>FindChannel()
 : <a class="el" href="classServer.html#a15">Server</a><li>FindHost()
@@ -128,7 +134,8 @@ Here is a list of all class members with links to the classes they belong to:<h3
 </h3><ul>
 <li>GenKey()
 : <a class="el" href="classconnection.html#a9">connection</a><li>GetAdmin()
-: <a class="el" href="classServer.html#a20">Server</a><li>GetData()
+: <a class="el" href="classServer.html#a20">Server</a><li>GetBuffer()
+: <a class="el" href="classircd__connector.html#a17">ircd_connector</a><li>GetData()
 : <a class="el" href="classEvent.html#a1">Event</a>, <a class="el" href="classRequest.html#a1">Request</a><li>GetDescription()
 : <a class="el" href="classircd__connector.html#a8">ircd_connector</a><li>GetDescriptor()
 : <a class="el" href="classircd__connector.html#a3">ircd_connector</a><li>GetDest()
@@ -147,8 +154,9 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classServer.html#a18">Server</a>, <a class="el" href="classircd__connector.html#a1">ircd_connector</a><li>GetServerPort()
 : <a class="el" href="classircd__connector.html#a10">ircd_connector</a><li>GetSource()
 : <a class="el" href="classEvent.html#a2">Event</a>, <a class="el" href="classRequest.html#a2">Request</a><li>GetState()
-: <a class="el" href="classircd__connector.html#a5">ircd_connector</a><li>GetUsers()
-: <a class="el" href="classServer.html#a35">Server</a><li>GetVersion()
+: <a class="el" href="classircd__connector.html#a5">ircd_connector</a><li>GetUserCounter()
+: <a class="el" href="classchanrec.html#a6">chanrec</a><li>GetUsers()
+: <a class="el" href="classServer.html#a35">Server</a>, <a class="el" href="classchanrec.html#a9">chanrec</a><li>GetVersion()
 : <a class="el" href="classModule.html#a2">Module</a></ul>
 <h3><a name="index_h">- h -</a>
 </h3><ul>
@@ -158,24 +166,26 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classuserrec.html#a7">userrec</a><li>HasResult()
 : <a class="el" href="classDNS.html#a5">DNS</a><li>hops_away
 : <a class="el" href="classserverrec.html#o5">serverrec</a><li>host
-: <a class="el" href="classConnectClass.html#o3">ConnectClass</a>, <a class="el" href="classconnection.html#o1">connection</a>, <a class="el" href="classircd__connector.html#o0">ircd_connector</a><li>HostItem()
+: <a class="el" href="classConnectClass.html#o3">ConnectClass</a>, <a class="el" href="classconnection.html#o1">connection</a>, <a class="el" href="classircd__connector.html#o1">ircd_connector</a><li>HostItem()
 : <a class="el" href="classHostItem.html#a0">HostItem</a><li>hostmask
 : <a class="el" href="classELine.html#o0">ELine</a>, <a class="el" href="classGLine.html#o0">GLine</a>, <a class="el" href="classKLine.html#o0">KLine</a></ul>
 <h3><a name="index_i">- i -</a>
 </h3><ul>
-<li>i
-: <a class="el" href="classDNS.html#r3">DNS</a><li>id
+<li>id
 : <a class="el" href="classEvent.html#p2">Event</a><li>ident
 : <a class="el" href="classuserrec.html#o1">userrec</a><li>idle_lastmsg
 : <a class="el" href="classconnection.html#o14">connection</a><li>inbuf
-: <a class="el" href="classconnection.html#o3">connection</a><li>internal_addr
+: <a class="el" href="classconnection.html#o3">connection</a><li>IncUserCounter()
+: <a class="el" href="classchanrec.html#a4">chanrec</a><li>internal_addr
 : <a class="el" href="classconnection.html#o16">connection</a><li>internal_port
-: <a class="el" href="classconnection.html#o17">connection</a><li>inviteonly
-: <a class="el" href="classchanrec.html#o10">chanrec</a><li>invites
+: <a class="el" href="classconnection.html#o17">connection</a><li>internal_userlist
+: <a class="el" href="classchanrec.html#o3">chanrec</a><li>inviteonly
+: <a class="el" href="classchanrec.html#o12">chanrec</a><li>invites
 : <a class="el" href="classuserrec.html#r0">userrec</a><li>InviteTo()
 : <a class="el" href="classuserrec.html#a5">userrec</a><li>ip
 : <a class="el" href="structdns__ip4list.html#o0">dns_ip4list</a>, <a class="el" href="classconnection.html#o2">connection</a><li>ipaddr
-: <a class="el" href="classZLine.html#o0">ZLine</a><li>is_global
+: <a class="el" href="classZLine.html#o0">ZLine</a><li>ircdbuffer
+: <a class="el" href="classircd__connector.html#o0">ircd_connector</a><li>is_global
 : <a class="el" href="classQLine.html#o1">QLine</a>, <a class="el" href="classZLine.html#o1">ZLine</a><li>IsCustomModeSet()
 : <a class="el" href="classchanrec.html#a2">chanrec</a><li>IsInvited()
 : <a class="el" href="classuserrec.html#a4">userrec</a><li>IsNick()
@@ -191,12 +201,12 @@ Here is a list of all class members with links to the classes they belong to:<h3
 <h3><a name="index_k">- k -</a>
 </h3><ul>
 <li>key
-: <a class="el" href="classchanrec.html#o7">chanrec</a></ul>
+: <a class="el" href="classchanrec.html#o9">chanrec</a></ul>
 <h3><a name="index_l">- l -</a>
 </h3><ul>
 <li>lastping
 : <a class="el" href="classconnection.html#o12">connection</a><li>limit
-: <a class="el" href="classchanrec.html#o6">chanrec</a><li>list
+: <a class="el" href="classchanrec.html#o8">chanrec</a><li>list
 : <a class="el" href="classExtMode.html#o5">ExtMode</a><li>LoadFile()
 : <a class="el" href="classFileReader.html#a3">FileReader</a><li>Log()
 : <a class="el" href="classServer.html#a3">Server</a></ul>
@@ -218,7 +228,7 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classVersion.html#o1">Version</a><li>mode
 : <a class="el" href="classModeParameter.html#o0">ModeParameter</a><li>modechar
 : <a class="el" href="classExtMode.html#o0">ExtMode</a><li>moderated
-: <a class="el" href="classchanrec.html#o11">chanrec</a><li>modes
+: <a class="el" href="classchanrec.html#o13">chanrec</a><li>modes
 : <a class="el" href="classuserrec.html#o4">userrec</a><li>Module()
 : <a class="el" href="classModule.html#a0">Module</a><li>ModuleFactory()
 : <a class="el" href="classModuleFactory.html#a0">ModuleFactory</a></ul>
@@ -229,11 +239,11 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classAdmin.html#o0">Admin</a><li>name
 : <a class="el" href="classserverrec.html#o0">serverrec</a>, <a class="el" href="classchanrec.html#o0">chanrec</a><li>needsoper
 : <a class="el" href="classExtMode.html#o4">ExtMode</a><li>next
-: <a class="el" href="structdns__ip4list.html#o1">dns_ip4list</a><li>Nick
-: <a class="el" href="classAdmin.html#o2">Admin</a><li>nick
-: <a class="el" href="classQLine.html#o0">QLine</a>, <a class="el" href="classuserrec.html#o0">userrec</a><li>nickserv
+: <a class="el" href="structdns__ip4list.html#o1">dns_ip4list</a><li>nick
+: <a class="el" href="classQLine.html#o0">QLine</a>, <a class="el" href="classuserrec.html#o0">userrec</a><li>Nick
+: <a class="el" href="classAdmin.html#o2">Admin</a><li>nickserv
 : <a class="el" href="classserverrec.html#o9">serverrec</a><li>noexternal
-: <a class="el" href="classchanrec.html#o9">chanrec</a><li>nping
+: <a class="el" href="classchanrec.html#o11">chanrec</a><li>nping
 : <a class="el" href="classconnection.html#o15">connection</a></ul>
 <h3><a name="index_o">- o -</a>
 </h3><ul>
@@ -250,13 +260,16 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classModule.html#a38">Module</a><li>OnCheckReady()
 : <a class="el" href="classModule.html#a33">Module</a><li>OnEvent()
 : <a class="el" href="classModule.html#a45">Module</a><li>OnExtendedMode()
-: <a class="el" href="classModule.html#a12">Module</a><li>OnInfo()
+: <a class="el" href="classModule.html#a12">Module</a><li>OnGlobalConnect()
+: <a class="el" href="classModule.html#a49">Module</a><li>OnGlobalOper()
+: <a class="el" href="classModule.html#a48">Module</a><li>OnInfo()
 : <a class="el" href="classModule.html#a17">Module</a><li>OnKill()
 : <a class="el" href="classModule.html#a28">Module</a><li>OnLoadModule()
 : <a class="el" href="classModule.html#a29">Module</a><li>OnLocalTopicChange()
 : <a class="el" href="classModule.html#a43">Module</a><li>OnMeshToken()
 : <a class="el" href="classModule.html#a44">Module</a><li>OnOper()
-: <a class="el" href="classModule.html#a16">Module</a><li>OnPacketReceive()
+: <a class="el" href="classModule.html#a16">Module</a><li>OnOperCompare()
+: <a class="el" href="classModule.html#a47">Module</a><li>OnPacketReceive()
 : <a class="el" href="classModule.html#a9">Module</a><li>OnPacketTransmit()
 : <a class="el" href="classModule.html#a8">Module</a><li>OnPreCommand()
 : <a class="el" href="classModule.html#a32">Module</a><li>OnRawMode()
@@ -292,10 +305,11 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classExtMode.html#o3">ExtMode</a><li>params_when_on
 : <a class="el" href="classExtMode.html#o2">ExtMode</a><li>PartUserFromChannel()
 : <a class="el" href="classServer.html#a27">Server</a><li>pass
-: <a class="el" href="classConnectClass.html#o5">ConnectClass</a><li>pingmax
+: <a class="el" href="classConnectClass.html#o5">ConnectClass</a><li>password
+: <a class="el" href="classuserrec.html#o14">userrec</a><li>pingmax
 : <a class="el" href="classuserrec.html#o13">userrec</a><li>pingtime
 : <a class="el" href="classConnectClass.html#o4">ConnectClass</a>, <a class="el" href="classserverrec.html#o1">serverrec</a><li>port
-: <a class="el" href="classconnection.html#o9">connection</a>, <a class="el" href="classircd__connector.html#o1">ircd_connector</a><li>PseudoToUser()
+: <a class="el" href="classconnection.html#o9">connection</a>, <a class="el" href="classircd__connector.html#o2">ircd_connector</a><li>PseudoToUser()
 : <a class="el" href="classServer.html#a37">Server</a></ul>
 <h3><a name="index_q">- q -</a>
 </h3><ul>
@@ -314,14 +328,14 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classConnectClass.html#o1">ConnectClass</a><li>RemoveInvite()
 : <a class="el" href="classuserrec.html#a6">userrec</a><li>Request()
 : <a class="el" href="classRequest.html#a0">Request</a><li>result
-: <a class="el" href="classuserrec.html#o8">userrec</a>, <a class="el" href="classDNS.html#r0">DNS</a><li>ReverseLookup()
+: <a class="el" href="classuserrec.html#o8">userrec</a>, <a class="el" href="classDNS.html#r1">DNS</a><li>ReverseLookup()
 : <a class="el" href="classDNS.html#a3">DNS</a><li>Revision
 : <a class="el" href="classVersion.html#o2">Version</a><li>routes
-: <a class="el" href="classircd__connector.html#o2">ircd_connector</a></ul>
+: <a class="el" href="classircd__connector.html#o3">ircd_connector</a></ul>
 <h3><a name="index_s">- s -</a>
 </h3><ul>
 <li>secret
-: <a class="el" href="classchanrec.html#o12">chanrec</a><li>Send()
+: <a class="el" href="classchanrec.html#o14">chanrec</a><li>Send()
 : <a class="el" href="classServer.html#a4">Server</a>, <a class="el" href="classEvent.html#a4">Event</a>, <a class="el" href="classRequest.html#a4">Request</a>, <a class="el" href="classModuleMessage.html#a0">ModuleMessage</a><li>SendChannel()
 : <a class="el" href="classServer.html#a8">Server</a><li>SendCommon()
 : <a class="el" href="classServer.html#a10">Server</a><li>SendFrom()
@@ -339,7 +353,7 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classserverrec.html#a1">serverrec</a><li>set_by
 : <a class="el" href="classHostItem.html#o1">HostItem</a><li>set_time
 : <a class="el" href="classXLine.html#o0">XLine</a>, <a class="el" href="classHostItem.html#o0">HostItem</a><li>setby
-: <a class="el" href="classchanrec.html#o5">chanrec</a><li>SetCustomMode()
+: <a class="el" href="classchanrec.html#o7">chanrec</a><li>SetCustomMode()
 : <a class="el" href="classchanrec.html#a0">chanrec</a><li>SetCustomModeParam()
 : <a class="el" href="classchanrec.html#a1">chanrec</a><li>SetDescription()
 : <a class="el" href="classircd__connector.html#a9">ircd_connector</a><li>SetDescriptor()
@@ -361,9 +375,9 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classDNS.html#r2">DNS</a><li>TerminateLink()
 : <a class="el" href="classconnection.html#a4">connection</a><li>timeout
 : <a class="el" href="classuserrec.html#o10">userrec</a><li>topic
-: <a class="el" href="classchanrec.html#o2">chanrec</a><li>topiclock
-: <a class="el" href="classchanrec.html#o8">chanrec</a><li>topicset
-: <a class="el" href="classchanrec.html#o4">chanrec</a><li>total_bytes
+: <a class="el" href="classchanrec.html#o4">chanrec</a><li>topiclock
+: <a class="el" href="classchanrec.html#o10">chanrec</a><li>topicset
+: <a class="el" href="classchanrec.html#o6">chanrec</a><li>total_bytes
 : <a class="el" href="classcommand__t.html#o5">command_t</a><li>type
 : <a class="el" href="classConnectClass.html#o0">ConnectClass</a>, <a class="el" href="classExtMode.html#o1">ExtMode</a></ul>
 <h3><a name="index_u">- u -</a>
@@ -374,7 +388,8 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classcommand__t.html#o4">command_t</a><li>usercount
 : <a class="el" href="classserverrec.html#o3">serverrec</a><li>usercount_i
 : <a class="el" href="classserverrec.html#o2">serverrec</a><li>userrec()
-: <a class="el" href="classuserrec.html#a0">userrec</a><li>UserToPseudo()
+: <a class="el" href="classuserrec.html#a0">userrec</a><li>users
+: <a class="el" href="classchanrec.html#o2">chanrec</a><li>UserToPseudo()
 : <a class="el" href="classServer.html#a36">Server</a></ul>
 <h3><a name="index_v">- v -</a>
 </h3><ul>
@@ -385,7 +400,7 @@ Here is a list of all class members with links to the classes they belong to:<h3
 <h3><a name="index_~">- ~ -</a>
 </h3><ul>
 <li>~chanrec()
-: <a class="el" href="classchanrec.html#a5">chanrec</a><li>~classbase()
+: <a class="el" href="classchanrec.html#a11">chanrec</a><li>~classbase()
 : <a class="el" href="classclassbase.html#a1">classbase</a><li>~ConfigReader()
 : <a class="el" href="classConfigReader.html#a2">ConfigReader</a><li>~DNS()
 : <a class="el" href="classDNS.html#a2">DNS</a><li>~FileReader()
@@ -397,7 +412,7 @@ Here is a list of all class members with links to the classes they belong to:<h3
 : <a class="el" href="classserverrec.html#a2">serverrec</a><li>~ucrec()
 : <a class="el" href="classucrec.html#a1">ucrec</a><li>~userrec()
 : <a class="el" href="classuserrec.html#a1">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:00 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index daf2ea9228d4296ce257eda2f0cb1e772cc0ea9d..41dd60c14d66dc9e357d3b6f0504a61ba87c1b74 100644 (file)
@@ -13,7 +13,8 @@
 <p>
 <h3><a name="index_a">- a -</a>
 </h3><ul>
-<li>AddCommand()
+<li>AddBuffer()
+: <a class="el" href="classircd__connector.html#a14">ircd_connector</a><li>AddCommand()
 : <a class="el" href="classServer.html#a23">Server</a><li>AddELine()
 : <a class="el" href="classServer.html#a42">Server</a><li>AddExtendedListMode()
 : <a class="el" href="classServer.html#a22">Server</a><li>AddExtendedMode()
 : <a class="el" href="classServer.html#a38">Server</a><li>AddIncoming()
 : <a class="el" href="classconnection.html#a8">connection</a><li>AddKLine()
 : <a class="el" href="classServer.html#a41">Server</a><li>AddQLine()
-: <a class="el" href="classServer.html#a39">Server</a><li>AddZLine()
+: <a class="el" href="classServer.html#a39">Server</a><li>AddUser()
+: <a class="el" href="classchanrec.html#a7">chanrec</a><li>AddZLine()
 : <a class="el" href="classServer.html#a40">Server</a><li>Admin()
 : <a class="el" href="classAdmin.html#a0">Admin</a></ul>
 <h3><a name="index_b">- b -</a>
 </h3><ul>
 <li>BeginLink()
-: <a class="el" href="classconnection.html#a2">connection</a></ul>
+: <a class="el" href="classconnection.html#a2">connection</a><li>BufferIsComplete()
+: <a class="el" href="classircd__connector.html#a15">ircd_connector</a></ul>
 <h3><a name="index_c">- c -</a>
 </h3><ul>
 <li>CalcDuration()
@@ -37,8 +40,9 @@
 : <a class="el" href="classServer.html#a32">Server</a><li>ChangeUserNick()
 : <a class="el" href="classServer.html#a28">Server</a><li>ChanMode()
 : <a class="el" href="classServer.html#a16">Server</a><li>chanrec()
-: <a class="el" href="classchanrec.html#a4">chanrec</a><li>classbase()
-: <a class="el" href="classclassbase.html#a0">classbase</a><li>CloseConnection()
+: <a class="el" href="classchanrec.html#a10">chanrec</a><li>classbase()
+: <a class="el" href="classclassbase.html#a0">classbase</a><li>ClearBuffer()
+: <a class="el" href="classircd__connector.html#a16">ircd_connector</a><li>CloseConnection()
 : <a class="el" href="classircd__connector.html#a13">ircd_connector</a><li>CommonChannels()
 : <a class="el" href="classServer.html#a9">Server</a><li>ConfigReader()
 : <a class="el" href="classConfigReader.html#a1">ConfigReader</a><li>ConnectClass()
 : <a class="el" href="classModuleFactory.html#a2">ModuleFactory</a></ul>
 <h3><a name="index_d">- d -</a>
 </h3><ul>
-<li>DelELine()
+<li>DecUserCounter()
+: <a class="el" href="classchanrec.html#a5">chanrec</a><li>DelELine()
 : <a class="el" href="classServer.html#a47">Server</a><li>DelGLine()
 : <a class="el" href="classServer.html#a43">Server</a><li>DelKLine()
 : <a class="el" href="classServer.html#a46">Server</a><li>DelQLine()
-: <a class="el" href="classServer.html#a44">Server</a><li>DelZLine()
+: <a class="el" href="classServer.html#a44">Server</a><li>DelUser()
+: <a class="el" href="classchanrec.html#a8">chanrec</a><li>DelZLine()
 : <a class="el" href="classServer.html#a45">Server</a><li>DNS()
 : <a class="el" href="classDNS.html#a1">DNS</a><li>dns_aton4()
 : <a class="el" href="classDNS.html#d2">DNS</a><li>dns_aton4_r()
 </h3><ul>
 <li>GenKey()
 : <a class="el" href="classconnection.html#a9">connection</a><li>GetAdmin()
-: <a class="el" href="classServer.html#a20">Server</a><li>GetData()
+: <a class="el" href="classServer.html#a20">Server</a><li>GetBuffer()
+: <a class="el" href="classircd__connector.html#a17">ircd_connector</a><li>GetData()
 : <a class="el" href="classEvent.html#a1">Event</a>, <a class="el" href="classRequest.html#a1">Request</a><li>GetDescription()
 : <a class="el" href="classircd__connector.html#a8">ircd_connector</a><li>GetDescriptor()
 : <a class="el" href="classircd__connector.html#a3">ircd_connector</a><li>GetDest()
 : <a class="el" href="classServer.html#a18">Server</a>, <a class="el" href="classircd__connector.html#a1">ircd_connector</a><li>GetServerPort()
 : <a class="el" href="classircd__connector.html#a10">ircd_connector</a><li>GetSource()
 : <a class="el" href="classEvent.html#a2">Event</a>, <a class="el" href="classRequest.html#a2">Request</a><li>GetState()
-: <a class="el" href="classircd__connector.html#a5">ircd_connector</a><li>GetUsers()
-: <a class="el" href="classServer.html#a35">Server</a><li>GetVersion()
+: <a class="el" href="classircd__connector.html#a5">ircd_connector</a><li>GetUserCounter()
+: <a class="el" href="classchanrec.html#a6">chanrec</a><li>GetUsers()
+: <a class="el" href="classServer.html#a35">Server</a>, <a class="el" href="classchanrec.html#a9">chanrec</a><li>GetVersion()
 : <a class="el" href="classModule.html#a2">Module</a></ul>
 <h3><a name="index_h">- h -</a>
 </h3><ul>
 : <a class="el" href="classHostItem.html#a0">HostItem</a></ul>
 <h3><a name="index_i">- i -</a>
 </h3><ul>
-<li>InviteTo()
+<li>IncUserCounter()
+: <a class="el" href="classchanrec.html#a4">chanrec</a><li>InviteTo()
 : <a class="el" href="classuserrec.html#a5">userrec</a><li>IsCustomModeSet()
 : <a class="el" href="classchanrec.html#a2">chanrec</a><li>IsInvited()
 : <a class="el" href="classuserrec.html#a4">userrec</a><li>IsNick()
 : <a class="el" href="classModule.html#a38">Module</a><li>OnCheckReady()
 : <a class="el" href="classModule.html#a33">Module</a><li>OnEvent()
 : <a class="el" href="classModule.html#a45">Module</a><li>OnExtendedMode()
-: <a class="el" href="classModule.html#a12">Module</a><li>OnInfo()
+: <a class="el" href="classModule.html#a12">Module</a><li>OnGlobalConnect()
+: <a class="el" href="classModule.html#a49">Module</a><li>OnGlobalOper()
+: <a class="el" href="classModule.html#a48">Module</a><li>OnInfo()
 : <a class="el" href="classModule.html#a17">Module</a><li>OnKill()
 : <a class="el" href="classModule.html#a28">Module</a><li>OnLoadModule()
 : <a class="el" href="classModule.html#a29">Module</a><li>OnLocalTopicChange()
 : <a class="el" href="classModule.html#a43">Module</a><li>OnMeshToken()
 : <a class="el" href="classModule.html#a44">Module</a><li>OnOper()
-: <a class="el" href="classModule.html#a16">Module</a><li>OnPacketReceive()
+: <a class="el" href="classModule.html#a16">Module</a><li>OnOperCompare()
+: <a class="el" href="classModule.html#a47">Module</a><li>OnPacketReceive()
 : <a class="el" href="classModule.html#a9">Module</a><li>OnPacketTransmit()
 : <a class="el" href="classModule.html#a8">Module</a><li>OnPreCommand()
 : <a class="el" href="classModule.html#a32">Module</a><li>OnRawMode()
 <h3><a name="index_~">- ~ -</a>
 </h3><ul>
 <li>~chanrec()
-: <a class="el" href="classchanrec.html#a5">chanrec</a><li>~classbase()
+: <a class="el" href="classchanrec.html#a11">chanrec</a><li>~classbase()
 : <a class="el" href="classclassbase.html#a1">classbase</a><li>~ConfigReader()
 : <a class="el" href="classConfigReader.html#a2">ConfigReader</a><li>~DNS()
 : <a class="el" href="classDNS.html#a2">DNS</a><li>~FileReader()
 : <a class="el" href="classserverrec.html#a2">serverrec</a><li>~ucrec()
 : <a class="el" href="classucrec.html#a1">ucrec</a><li>~userrec()
 : <a class="el" href="classuserrec.html#a1">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:00 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index dbee6869d1bd41a3f4e9a9a0ab69633aea1c79ba..232a0479a25131f6a9df45bbfd61a0bee2fada6d 100644 (file)
 <h3><a name="index_b">- b -</a>
 </h3><ul>
 <li>bans
-: <a class="el" href="classchanrec.html#o14">chanrec</a><li>binip
-: <a class="el" href="classDNS.html#r1">DNS</a><li>Build
+: <a class="el" href="classchanrec.html#o16">chanrec</a><li>binip
+: <a class="el" href="classDNS.html#r0">DNS</a><li>Build
 : <a class="el" href="classVersion.html#o3">Version</a><li>bytes_in
 : <a class="el" href="classconnection.html#o4">connection</a><li>bytes_out
 : <a class="el" href="classconnection.html#o5">connection</a></ul>
 <h3><a name="index_c">- c -</a>
 </h3><ul>
 <li>c_private
-: <a class="el" href="classchanrec.html#o13">chanrec</a><li>cache
+: <a class="el" href="classchanrec.html#o15">chanrec</a><li>cache
 : <a class="el" href="classConfigReader.html#p0">ConfigReader</a><li>channel
 : <a class="el" href="classInvited.html#o0">Invited</a>, <a class="el" href="classucrec.html#o1">ucrec</a>, <a class="el" href="classModeParameter.html#o2">ModeParameter</a><li>chans
 : <a class="el" href="classuserrec.html#o5">userrec</a><li>cmds_in
@@ -36,7 +36,7 @@
 : <a class="el" href="classconnection.html#o7">connection</a><li>command
 : <a class="el" href="classcommand__t.html#o0">command_t</a><li>connectors
 : <a class="el" href="classconnection.html#o18">connection</a><li>created
-: <a class="el" href="classchanrec.html#o3">chanrec</a><li>custom_modes
+: <a class="el" href="classchanrec.html#o5">chanrec</a><li>custom_modes
 : <a class="el" href="classchanrec.html#o1">chanrec</a></ul>
 <h3><a name="index_d">- d -</a>
 </h3><ul>
@@ -58,7 +58,7 @@
 </h3><ul>
 <li>fc
 : <a class="el" href="classFileReader.html#r0">FileReader</a><li>fd
-: <a class="el" href="classDNS.html#r4">DNS</a>, <a class="el" href="classconnection.html#o0">connection</a>, <a class="el" href="classircd__connector.html#r1">ircd_connector</a><li>Flags
+: <a class="el" href="classDNS.html#r3">DNS</a>, <a class="el" href="classconnection.html#o0">connection</a>, <a class="el" href="classircd__connector.html#r1">ircd_connector</a><li>Flags
 : <a class="el" href="classVersion.html#o4">Version</a><li>flags_needed
 : <a class="el" href="classcommand__t.html#o2">command_t</a><li>flood
 : <a class="el" href="classuserrec.html#o9">userrec</a>, <a class="el" href="classConnectClass.html#o2">ConnectClass</a><li>fullname
 : <a class="el" href="classcommand__t.html#o1">command_t</a><li>haspassed
 : <a class="el" href="classconnection.html#o8">connection</a><li>hops_away
 : <a class="el" href="classserverrec.html#o5">serverrec</a><li>host
-: <a class="el" href="classConnectClass.html#o3">ConnectClass</a>, <a class="el" href="classconnection.html#o1">connection</a>, <a class="el" href="classircd__connector.html#o0">ircd_connector</a><li>hostmask
+: <a class="el" href="classConnectClass.html#o3">ConnectClass</a>, <a class="el" href="classconnection.html#o1">connection</a>, <a class="el" href="classircd__connector.html#o1">ircd_connector</a><li>hostmask
 : <a class="el" href="classELine.html#o0">ELine</a>, <a class="el" href="classGLine.html#o0">GLine</a>, <a class="el" href="classKLine.html#o0">KLine</a></ul>
 <h3><a name="index_i">- i -</a>
 </h3><ul>
-<li>i
-: <a class="el" href="classDNS.html#r3">DNS</a><li>id
+<li>id
 : <a class="el" href="classEvent.html#p2">Event</a><li>ident
 : <a class="el" href="classuserrec.html#o1">userrec</a><li>idle_lastmsg
 : <a class="el" href="classconnection.html#o14">connection</a><li>inbuf
 : <a class="el" href="classconnection.html#o3">connection</a><li>internal_addr
 : <a class="el" href="classconnection.html#o16">connection</a><li>internal_port
-: <a class="el" href="classconnection.html#o17">connection</a><li>inviteonly
-: <a class="el" href="classchanrec.html#o10">chanrec</a><li>invites
+: <a class="el" href="classconnection.html#o17">connection</a><li>internal_userlist
+: <a class="el" href="classchanrec.html#o3">chanrec</a><li>inviteonly
+: <a class="el" href="classchanrec.html#o12">chanrec</a><li>invites
 : <a class="el" href="classuserrec.html#r0">userrec</a><li>ip
 : <a class="el" href="structdns__ip4list.html#o0">dns_ip4list</a>, <a class="el" href="classconnection.html#o2">connection</a><li>ipaddr
-: <a class="el" href="classZLine.html#o0">ZLine</a><li>is_global
+: <a class="el" href="classZLine.html#o0">ZLine</a><li>ircdbuffer
+: <a class="el" href="classircd__connector.html#o0">ircd_connector</a><li>is_global
 : <a class="el" href="classQLine.html#o1">QLine</a>, <a class="el" href="classZLine.html#o1">ZLine</a></ul>
 <h3><a name="index_j">- j -</a>
 </h3><ul>
 <h3><a name="index_k">- k -</a>
 </h3><ul>
 <li>key
-: <a class="el" href="classchanrec.html#o7">chanrec</a></ul>
+: <a class="el" href="classchanrec.html#o9">chanrec</a></ul>
 <h3><a name="index_l">- l -</a>
 </h3><ul>
 <li>lastping
 : <a class="el" href="classconnection.html#o12">connection</a><li>limit
-: <a class="el" href="classchanrec.html#o6">chanrec</a><li>list
+: <a class="el" href="classchanrec.html#o8">chanrec</a><li>list
 : <a class="el" href="classExtMode.html#o5">ExtMode</a></ul>
 <h3><a name="index_m">- m -</a>
 </h3><ul>
 : <a class="el" href="classVersion.html#o1">Version</a><li>mode
 : <a class="el" href="classModeParameter.html#o0">ModeParameter</a><li>modechar
 : <a class="el" href="classExtMode.html#o0">ExtMode</a><li>moderated
-: <a class="el" href="classchanrec.html#o11">chanrec</a><li>modes
+: <a class="el" href="classchanrec.html#o13">chanrec</a><li>modes
 : <a class="el" href="classuserrec.html#o4">userrec</a></ul>
 <h3><a name="index_n">- n -</a>
 </h3><ul>
 : <a class="el" href="classAdmin.html#o0">Admin</a><li>name
 : <a class="el" href="classserverrec.html#o0">serverrec</a>, <a class="el" href="classchanrec.html#o0">chanrec</a><li>needsoper
 : <a class="el" href="classExtMode.html#o4">ExtMode</a><li>next
-: <a class="el" href="structdns__ip4list.html#o1">dns_ip4list</a><li>Nick
-: <a class="el" href="classAdmin.html#o2">Admin</a><li>nick
-: <a class="el" href="classQLine.html#o0">QLine</a>, <a class="el" href="classuserrec.html#o0">userrec</a><li>nickserv
+: <a class="el" href="structdns__ip4list.html#o1">dns_ip4list</a><li>nick
+: <a class="el" href="classQLine.html#o0">QLine</a>, <a class="el" href="classuserrec.html#o0">userrec</a><li>Nick
+: <a class="el" href="classAdmin.html#o2">Admin</a><li>nickserv
 : <a class="el" href="classserverrec.html#o9">serverrec</a><li>noexternal
-: <a class="el" href="classchanrec.html#o9">chanrec</a><li>nping
+: <a class="el" href="classchanrec.html#o11">chanrec</a><li>nping
 : <a class="el" href="classconnection.html#o15">connection</a></ul>
 <h3><a name="index_o">- o -</a>
 </h3><ul>
 : <a class="el" href="classModeParameter.html#o1">ModeParameter</a><li>params_when_off
 : <a class="el" href="classExtMode.html#o3">ExtMode</a><li>params_when_on
 : <a class="el" href="classExtMode.html#o2">ExtMode</a><li>pass
-: <a class="el" href="classConnectClass.html#o5">ConnectClass</a><li>pingmax
+: <a class="el" href="classConnectClass.html#o5">ConnectClass</a><li>password
+: <a class="el" href="classuserrec.html#o14">userrec</a><li>pingmax
 : <a class="el" href="classuserrec.html#o13">userrec</a><li>pingtime
 : <a class="el" href="classConnectClass.html#o4">ConnectClass</a>, <a class="el" href="classserverrec.html#o1">serverrec</a><li>port
-: <a class="el" href="classconnection.html#o9">connection</a>, <a class="el" href="classircd__connector.html#o1">ircd_connector</a></ul>
+: <a class="el" href="classconnection.html#o9">connection</a>, <a class="el" href="classircd__connector.html#o2">ircd_connector</a></ul>
 <h3><a name="index_r">- r -</a>
 </h3><ul>
 <li>readerror
 : <a class="el" href="classXLine.html#o3">XLine</a><li>registered
 : <a class="el" href="classconnection.html#o10">connection</a><li>registration_timeout
 : <a class="el" href="classConnectClass.html#o1">ConnectClass</a><li>result
-: <a class="el" href="classuserrec.html#o8">userrec</a>, <a class="el" href="classDNS.html#r0">DNS</a><li>Revision
+: <a class="el" href="classuserrec.html#o8">userrec</a>, <a class="el" href="classDNS.html#r1">DNS</a><li>Revision
 : <a class="el" href="classVersion.html#o2">Version</a><li>routes
-: <a class="el" href="classircd__connector.html#o2">ircd_connector</a></ul>
+: <a class="el" href="classircd__connector.html#o3">ircd_connector</a></ul>
 <h3><a name="index_s">- s -</a>
 </h3><ul>
 <li>secret
-: <a class="el" href="classchanrec.html#o12">chanrec</a><li>server
+: <a class="el" href="classchanrec.html#o14">chanrec</a><li>server
 : <a class="el" href="classuserrec.html#o6">userrec</a><li>servername
 : <a class="el" href="classircd__connector.html#r2">ircd_connector</a><li>set_by
 : <a class="el" href="classHostItem.html#o1">HostItem</a><li>set_time
 : <a class="el" href="classXLine.html#o0">XLine</a>, <a class="el" href="classHostItem.html#o0">HostItem</a><li>setby
-: <a class="el" href="classchanrec.html#o5">chanrec</a><li>signon
+: <a class="el" href="classchanrec.html#o7">chanrec</a><li>signon
 : <a class="el" href="classconnection.html#o13">connection</a><li>source
 : <a class="el" href="classXLine.html#o2">XLine</a>, <a class="el" href="classEvent.html#p1">Event</a>, <a class="el" href="classRequest.html#p1">Request</a>, <a class="el" href="classcommand__t.html#o6">command_t</a><li>state
 : <a class="el" href="classconnection.html#o11">connection</a>, <a class="el" href="classircd__connector.html#r4">ircd_connector</a><li>sync_soon
 <li>t
 : <a class="el" href="classDNS.html#r2">DNS</a><li>timeout
 : <a class="el" href="classuserrec.html#o10">userrec</a><li>topic
-: <a class="el" href="classchanrec.html#o2">chanrec</a><li>topiclock
-: <a class="el" href="classchanrec.html#o8">chanrec</a><li>topicset
-: <a class="el" href="classchanrec.html#o4">chanrec</a><li>total_bytes
+: <a class="el" href="classchanrec.html#o4">chanrec</a><li>topiclock
+: <a class="el" href="classchanrec.html#o10">chanrec</a><li>topicset
+: <a class="el" href="classchanrec.html#o6">chanrec</a><li>total_bytes
 : <a class="el" href="classcommand__t.html#o5">command_t</a><li>type
 : <a class="el" href="classConnectClass.html#o0">ConnectClass</a>, <a class="el" href="classExtMode.html#o1">ExtMode</a></ul>
 <h3><a name="index_u">- u -</a>
 : <a class="el" href="classucrec.html#o0">ucrec</a><li>use_count
 : <a class="el" href="classcommand__t.html#o4">command_t</a><li>usercount
 : <a class="el" href="classserverrec.html#o3">serverrec</a><li>usercount_i
-: <a class="el" href="classserverrec.html#o2">serverrec</a></ul>
+: <a class="el" href="classserverrec.html#o2">serverrec</a><li>users
+: <a class="el" href="classchanrec.html#o2">chanrec</a></ul>
 <h3><a name="index_v">- v -</a>
 </h3><ul>
 <li>version
 : <a class="el" href="classserverrec.html#o6">serverrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:00 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 44697a8c5f486e4ce08c2c8d6a1ee4700ee96e07..f60106e7b75c450ccd0f0aff8207cea42abe669a 100644 (file)
@@ -334,7 +334,7 @@ Here is a list of all file members with links to the files they belong to:<h3><a
 <li>zline_make_global()
 : <a class="el" href="xline_8h.html#a26">xline.h</a><li>zline_set_creation_time()
 : <a class="el" href="xline_8h.html#a25">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 6039f1f85fe09eae6faf0f2b277b923da35d4aca..d8998d96b50420f96be55361bd10381383ebfe98 100644 (file)
@@ -92,7 +92,7 @@
 : <a class="el" href="modules_8h.html#a22">modules.h</a><li>VF_STATIC
 : <a class="el" href="modules_8h.html#a20">modules.h</a><li>VF_VENDOR
 : <a class="el" href="modules_8h.html#a21">modules.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:14 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 70e34b6770348e67803ee5de441521427c0b7013..f972c317cc38fab5e8f8dcf9faf63c9ca07b734c 100644 (file)
 <li>zline_make_global()
 : <a class="el" href="xline_8h.html#a26">xline.h</a><li>zline_set_creation_time()
 : <a class="el" href="xline_8h.html#a25">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index db1d263cf14f40d4d27b361edb3467b9b3896d63..7b6b38f787f268cfdf3e719d84d19c39c9b1b13a 100644 (file)
@@ -26,7 +26,7 @@
 : <a class="el" href="modules_8h.html#a32">modules.h</a><li>user_hash
 : <a class="el" href="modules_8cpp.html#a38">modules.cpp</a><li>VoidPointer
 : <a class="el" href="base_8h.html#a0">base.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:14 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 6648b8a356d5352d7d002e09848cb92e8f475f13..a9891509ef39e63ac2abe9d521c52701146b9650 100644 (file)
 : <a class="el" href="modules_8cpp.html#a44">modules.cpp</a><li>WHOWAS_MAX
 : <a class="el" href="modules_8cpp.html#a21">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a20">channels.cpp</a><li>WHOWAS_STALE
 : <a class="el" href="modules_8cpp.html#a20">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a19">channels.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 8abfbf430db1cca2508563ae5707642c65fdb58f..f7ca3fd04537a00f3521372bd2ce5f0a9e2d5877 100644 (file)
@@ -58,7 +58,7 @@
 <li><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html">nspace::hash&lt; string &gt;</a>
 <li><a class="el" href="structStrHashComp.html">StrHashComp</a>
 </ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:00 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 60cca88151203e8a1b032550c178a8e7dc2bd8a4..2ebb5c84c10916de74352a71b2e150ba9437351b 100644 (file)
@@ -7,7 +7,7 @@
 <div class="qindex"><a class="qindexHL" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>InspIRCd Documentation</h1>
 <p>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:53 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:43 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 48542281c9a602aa8ce8b270361fa6398e6241ea..6902ce0e8b9a0b62198b7e7e3c82fdf0e81bcea6 100644 (file)
@@ -57,7 +57,7 @@
 00050 <span class="keywordtype">void</span> <a class="code" href="message_8h.html#a19">send_network_quit</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* nick, <span class="keyword">const</span> <span class="keywordtype">char</span>* reason);
 00051 
 00052 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:54 2005 for InspIRCd by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:43 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index e82d5b940d13b709c71557ece16bc0cfc478c4ff..1407037f288506667e626745e4600e24dd76778e 100644 (file)
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00568">Server::ChangeHost()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00570">Server::ChangeHost()</a>.    </td>
   </tr>
 </table>
 <a name="a10" doxytag="message.h::ChangeName"></a><p>
@@ -195,7 +195,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00568">Server::Chang
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00573">Server::ChangeGECOS()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00575">Server::ChangeGECOS()</a>.    </td>
   </tr>
 </table>
 <a name="a18" doxytag="message.h::chlist"></a><p>
@@ -331,7 +331,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00573">Server::Chang
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00593">Server::ChanMode()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00595">Server::ChanMode()</a>.    </td>
   </tr>
 </table>
 <a name="a0" doxytag="message.h::common_channels"></a><p>
@@ -371,7 +371,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00593">Server::ChanM
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00546">Server::CommonChannels()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00548">Server::CommonChannels()</a>.    </td>
   </tr>
 </table>
 <a name="a15" doxytag="message.h::cstatus"></a><p>
@@ -449,7 +449,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00546">Server::Commo
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00450">Server::GetUsers()</a>, and <a class="el" href="modules_8cpp-source.html#l00598">Server::IsOnChannel()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00452">Server::GetUsers()</a>, and <a class="el" href="modules_8cpp-source.html#l00600">Server::IsOnChannel()</a>.    </td>
   </tr>
 </table>
 <a name="a9" doxytag="message.h::hasumode"></a><p>
@@ -547,7 +547,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00450">Server::GetUs
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00450">Server::GetUsers()</a>, and <a class="el" href="modules_8cpp-source.html#l00578">Server::IsNick()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00452">Server::GetUsers()</a>, and <a class="el" href="modules_8cpp-source.html#l00580">Server::IsNick()</a>.    </td>
   </tr>
 </table>
 <a name="a6" doxytag="message.h::NonBlocking"></a><p>
@@ -674,7 +674,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00450">Server::GetUs
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00474">Server::QuitUser()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00476">Server::QuitUser()</a>.    </td>
   </tr>
 </table>
 <a name="a17" doxytag="message.h::TidyBan"></a><p>
@@ -735,7 +735,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00474">Server::QuitU
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:58 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:45 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 493a31b49d340a0b3ca820bb7d84be9be892299e..3454d6b52dd0e0644bd631a2b6ab9d441ffb8ad4 100644 (file)
@@ -53,7 +53,7 @@
 00046 
 00047 
 00048 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:54 2005 for InspIRCd by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:43 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 80bf7906fced6cac25cf7ee8c3281aff9f6717b5..07fcd656a370804b37d161b8051cf544f8bbf670 100644 (file)
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:58 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:45 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 48b1ce27a835163f55615c5d944843c11a8e5b81..6d44556287d20e6dcbc29ace42faa2fa23be2fff 100644 (file)
 <a name="l00405"></a><a class="code" href="classModule.html#a44">00405</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a44">Module::OnMeshToken</a>(<span class="keywordtype">char</span> token,string_list params,<a class="code" href="classserverrec.html">serverrec</a>* source,<a class="code" href="classserverrec.html">serverrec</a>* reply, std::string tcp_host,std::string ipaddr,<span class="keywordtype">int</span> port) { <span class="keywordflow">return</span> 0; };
 <a name="l00406"></a><a class="code" href="classModule.html#a45">00406</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a45">Module::OnEvent</a>(<a class="code" href="classEvent.html">Event</a>* event) { <span class="keywordflow">return</span>; };
 <a name="l00407"></a><a class="code" href="classModule.html#a46">00407</a> <span class="keywordtype">char</span>* <a class="code" href="classModule.html#a46">Module::OnRequest</a>(<a class="code" href="classRequest.html">Request</a>* request) { <span class="keywordflow">return</span> NULL; };
-00408 
-00409 
-00410 <span class="comment">// server is a wrapper class that provides methods to all of the C-style</span>
-00411 <span class="comment">// exports in the core</span>
-00412 <span class="comment">//</span>
-00413 
-<a name="l00414"></a><a class="code" href="classServer.html#a0">00414</a> <a class="code" href="classServer.html#a0">Server::Server</a>()
-00415 {
-00416 }
-00417 
-<a name="l00418"></a><a class="code" href="classServer.html#a1">00418</a> <a class="code" href="classServer.html#a1">Server::~Server</a>()
-00419 {
-00420 }
-00421 
-<a name="l00422"></a><a class="code" href="classServer.html#a2">00422</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">Server::SendOpers</a>(std::string s)
-00423 {
-00424         WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
-00425 }
-00426 
-<a name="l00427"></a><a class="code" href="classServer.html#a30">00427</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a30">Server::MatchText</a>(std::string sliteral, std::string spattern)
-00428 {
-00429         <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
-00430         strlcpy(literal,sliteral.c_str(),MAXBUF);
-00431         strlcpy(pattern,spattern.c_str(),MAXBUF);
-00432         <span class="keywordflow">return</span> match(literal,pattern);
-00433 }
-00434 
-<a name="l00435"></a><a class="code" href="classServer.html#a25">00435</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a25">Server::SendToModeMask</a>(std::string modes, <span class="keywordtype">int</span> flags, std::string text)
-00436 {
-00437         WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
-00438 }
-00439 
-<a name="l00440"></a><a class="code" href="classServer.html#a26">00440</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a26">Server::JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string key)
-00441 {
-00442         <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">true</span>);
-00443 }
-00444 
-<a name="l00445"></a><a class="code" href="classServer.html#a27">00445</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a27">Server::PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string reason)
-00446 {
-00447         <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
-00448 }
-00449 
-<a name="l00450"></a><a class="code" href="classServer.html#a35">00450</a> <a class="code" href="modules_8h.html#a33">chanuserlist</a> <a class="code" href="classServer.html#a35">Server::GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan)
-00451 {
-00452         <a class="code" href="modules_8h.html#a33">chanuserlist</a> userl;
-00453         userl.clear();
-00454         <span class="keywordflow">for</span> (user_hash::const_iterator i = <a class="code" href="modules_8cpp.html#a42">clientlist</a>.begin(); i != <a class="code" href="modules_8cpp.html#a42">clientlist</a>.end(); i++)
-00455         {
-00456                 <span class="keywordflow">if</span> (i-&gt;second)
-00457                 {
-00458                         <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#a16">has_channel</a>(i-&gt;second,chan))
-00459                         {
-00460                                 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#a13">isnick</a>(i-&gt;second-&gt;nick))
-00461                                 {
-00462                                         userl.push_back(i-&gt;second);
-00463                                 }
-00464                         }
-00465                 }
-00466         }
-00467         <span class="keywordflow">return</span> userl;
-00468 }
-<a name="l00469"></a><a class="code" href="classServer.html#a28">00469</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a28">Server::ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string nickname)
-00470 {
-00471         force_nickchange(user,nickname.c_str());
-00472 }
-00473 
-<a name="l00474"></a><a class="code" href="classServer.html#a29">00474</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a29">Server::QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string reason)
-00475 {
-00476         <a class="code" href="message_8h.html#a19">send_network_quit</a>(user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>,reason.c_str());
-00477         kill_link(user,reason.c_str());
-00478 }
-00479 
-<a name="l00480"></a><a class="code" href="classServer.html#a34">00480</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a34">Server::IsUlined</a>(std::string server)
-00481 {
-00482         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a74">is_uline</a>(server.c_str());
-00483 }
-00484 
-<a name="l00485"></a><a class="code" href="classServer.html#a31">00485</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a31">Server::CallCommandHandler</a>(std::string commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user)
-00486 {
-00487         call_handler(commandname.c_str(),parameters,pcnt,user);
-00488 }
-00489 
-<a name="l00490"></a><a class="code" href="classServer.html#a3">00490</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Server::Log</a>(<span class="keywordtype">int</span> level, std::string s)
-00491 {
-00492         log(level,<span class="stringliteral">"%s"</span>,s.c_str());
-00493 }
-00494 
-<a name="l00495"></a><a class="code" href="classServer.html#a23">00495</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a23">Server::AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source)
-00496 {
-00497         <a class="code" href="modules_8h.html#a35">createcommand</a>(cmd,f,flags,minparams,source);
-00498 }
-00499 
-<a name="l00500"></a><a class="code" href="classServer.html#a24">00500</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a24">Server::SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user)
-00501 {
-00502         <a class="code" href="modules_8h.html#a36">server_mode</a>(parameters,pcnt,user);
-00503 }
-00504 
-<a name="l00505"></a><a class="code" href="classServer.html#a4">00505</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Server::Send</a>(<span class="keywordtype">int</span> Socket, std::string s)
-00506 {
-00507         Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-00508 }
-00509 
-<a name="l00510"></a><a class="code" href="classServer.html#a5">00510</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">Server::SendServ</a>(<span class="keywordtype">int</span> Socket, std::string s)
-00511 {
-00512         WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-00513 }
-00514 
-<a name="l00515"></a><a class="code" href="classServer.html#a6">00515</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">Server::SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, std::string s)
-00516 {
-00517         WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00518 }
-00519 
-<a name="l00520"></a><a class="code" href="classServer.html#a7">00520</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">Server::SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, std::string s)
-00521 {
-00522         <span class="keywordflow">if</span> (!Source)
-00523         {
-00524                 <span class="comment">// if source is NULL, then the message originates from the local server</span>
-00525                 Write(Dest-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
-00526         }
-00527         <span class="keywordflow">else</span>
-00528         {
-00529                 <span class="comment">// otherwise it comes from the user specified</span>
-00530                 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
-00531         }
-00532 }
-00533 
-<a name="l00534"></a><a class="code" href="classServer.html#a8">00534</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">Server::SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, std::string s,<span class="keywordtype">bool</span> IncludeSender)
-00535 {
-00536         <span class="keywordflow">if</span> (IncludeSender)
-00537         {
-00538                 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00539         }
-00540         <span class="keywordflow">else</span>
-00541         {
-00542                 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00543         }
-00544 }
-00545 
-<a name="l00546"></a><a class="code" href="classServer.html#a9">00546</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a9">Server::CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2)
-00547 {
-00548         <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a0">common_channels</a>(u1,u2) != 0);
-00549 }
-00550 
-<a name="l00551"></a><a class="code" href="classServer.html#a10">00551</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a10">Server::SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text,<span class="keywordtype">bool</span> IncludeSender)
-00552 {
-00553         <span class="keywordflow">if</span> (IncludeSender)
-00554         {
-00555                 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
-00556         }
-00557         <span class="keywordflow">else</span>
-00558         {
-00559                 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
-00560         }
-00561 }
-00562 
-<a name="l00563"></a><a class="code" href="classServer.html#a11">00563</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">Server::SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text)
-00564 {
-00565         WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
-00566 }
-00567 
-<a name="l00568"></a><a class="code" href="classServer.html#a32">00568</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a32">Server::ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string host)
-00569 {
-00570         <a class="code" href="message_8h.html#a11">ChangeDisplayedHost</a>(user,host.c_str());
-00571 }
-00572 
-<a name="l00573"></a><a class="code" href="classServer.html#a33">00573</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a33">Server::ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string gecos)
-00574 {
-00575         <a class="code" href="message_8h.html#a10">ChangeName</a>(user,gecos.c_str());
-00576 }
-00577 
-<a name="l00578"></a><a class="code" href="classServer.html#a12">00578</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">Server::IsNick</a>(std::string nick)
-00579 {
-00580         <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a13">isnick</a>(nick.c_str()) != 0);
-00581 }
-00582 
-<a name="l00583"></a><a class="code" href="classServer.html#a14">00583</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a14">Server::FindNick</a>(std::string nick)
-00584 {
-00585         <span class="keywordflow">return</span> Find(nick);
-00586 }
-00587 
-<a name="l00588"></a><a class="code" href="classServer.html#a15">00588</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a15">Server::FindChannel</a>(std::string channel)
-00589 {
-00590         <span class="keywordflow">return</span> FindChan(channel.c_str());
-00591 }
-00592 
-<a name="l00593"></a><a class="code" href="classServer.html#a16">00593</a> std::string <a class="code" href="classServer.html#a16">Server::ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
-00594 {
-00595         <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a14">cmode</a>(User,Chan);
-00596 }
-00597 
-<a name="l00598"></a><a class="code" href="classServer.html#a17">00598</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a17">Server::IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
-00599 {
-00600         <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a16">has_channel</a>(User,Chan);
-00601 }
-00602 
-<a name="l00603"></a><a class="code" href="classServer.html#a18">00603</a> std::string <a class="code" href="classServer.html#a18">Server::GetServerName</a>()
-00604 {
-00605         <span class="keywordflow">return</span> getservername();
-00606 }
-00607 
-<a name="l00608"></a><a class="code" href="classServer.html#a19">00608</a> std::string <a class="code" href="classServer.html#a19">Server::GetNetworkName</a>()
-00609 {
-00610         <span class="keywordflow">return</span> getnetworkname();
-00611 }
-00612 
-<a name="l00613"></a><a class="code" href="classServer.html#a20">00613</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a20">Server::GetAdmin</a>()
-00614 {
-00615         <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
-00616 }
-00617 
-00618 
+<a name="l00408"></a><a class="code" href="classModule.html#a47">00408</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a47">Module::OnOperCompare</a>(std::string password, std::string input) { <span class="keywordflow">return</span> 0; };
+<a name="l00409"></a><a class="code" href="classModule.html#a48">00409</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a48">Module::OnGlobalOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
+<a name="l00410"></a><a class="code" href="classModule.html#a49">00410</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a49">Module::OnGlobalConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
+00411 
+00412 <span class="comment">// server is a wrapper class that provides methods to all of the C-style</span>
+00413 <span class="comment">// exports in the core</span>
+00414 <span class="comment">//</span>
+00415 
+<a name="l00416"></a><a class="code" href="classServer.html#a0">00416</a> <a class="code" href="classServer.html#a0">Server::Server</a>()
+00417 {
+00418 }
+00419 
+<a name="l00420"></a><a class="code" href="classServer.html#a1">00420</a> <a class="code" href="classServer.html#a1">Server::~Server</a>()
+00421 {
+00422 }
+00423 
+<a name="l00424"></a><a class="code" href="classServer.html#a2">00424</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">Server::SendOpers</a>(std::string s)
+00425 {
+00426         WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
+00427 }
+00428 
+<a name="l00429"></a><a class="code" href="classServer.html#a30">00429</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a30">Server::MatchText</a>(std::string sliteral, std::string spattern)
+00430 {
+00431         <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
+00432         strlcpy(literal,sliteral.c_str(),MAXBUF);
+00433         strlcpy(pattern,spattern.c_str(),MAXBUF);
+00434         <span class="keywordflow">return</span> match(literal,pattern);
+00435 }
+00436 
+<a name="l00437"></a><a class="code" href="classServer.html#a25">00437</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a25">Server::SendToModeMask</a>(std::string modes, <span class="keywordtype">int</span> flags, std::string text)
+00438 {
+00439         WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
+00440 }
+00441 
+<a name="l00442"></a><a class="code" href="classServer.html#a26">00442</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a26">Server::JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string key)
+00443 {
+00444         <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">true</span>);
+00445 }
+00446 
+<a name="l00447"></a><a class="code" href="classServer.html#a27">00447</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a27">Server::PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string reason)
+00448 {
+00449         <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
+00450 }
+00451 
+<a name="l00452"></a><a class="code" href="classServer.html#a35">00452</a> <a class="code" href="modules_8h.html#a33">chanuserlist</a> <a class="code" href="classServer.html#a35">Server::GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan)
+00453 {
+00454         <a class="code" href="modules_8h.html#a33">chanuserlist</a> userl;
+00455         userl.clear();
+00456         <span class="keywordflow">for</span> (user_hash::const_iterator i = <a class="code" href="modules_8cpp.html#a42">clientlist</a>.begin(); i != <a class="code" href="modules_8cpp.html#a42">clientlist</a>.end(); i++)
+00457         {
+00458                 <span class="keywordflow">if</span> (i-&gt;second)
+00459                 {
+00460                         <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#a16">has_channel</a>(i-&gt;second,chan))
+00461                         {
+00462                                 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#a13">isnick</a>(i-&gt;second-&gt;nick))
+00463                                 {
+00464                                         userl.push_back(i-&gt;second);
+00465                                 }
+00466                         }
+00467                 }
+00468         }
+00469         <span class="keywordflow">return</span> userl;
+00470 }
+<a name="l00471"></a><a class="code" href="classServer.html#a28">00471</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a28">Server::ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string nickname)
+00472 {
+00473         force_nickchange(user,nickname.c_str());
+00474 }
+00475 
+<a name="l00476"></a><a class="code" href="classServer.html#a29">00476</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a29">Server::QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string reason)
+00477 {
+00478         <a class="code" href="message_8h.html#a19">send_network_quit</a>(user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>,reason.c_str());
+00479         kill_link(user,reason.c_str());
+00480 }
+00481 
+<a name="l00482"></a><a class="code" href="classServer.html#a34">00482</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a34">Server::IsUlined</a>(std::string server)
+00483 {
+00484         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a74">is_uline</a>(server.c_str());
+00485 }
+00486 
+<a name="l00487"></a><a class="code" href="classServer.html#a31">00487</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a31">Server::CallCommandHandler</a>(std::string commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user)
+00488 {
+00489         call_handler(commandname.c_str(),parameters,pcnt,user);
+00490 }
+00491 
+<a name="l00492"></a><a class="code" href="classServer.html#a3">00492</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Server::Log</a>(<span class="keywordtype">int</span> level, std::string s)
+00493 {
+00494         log(level,<span class="stringliteral">"%s"</span>,s.c_str());
+00495 }
+00496 
+<a name="l00497"></a><a class="code" href="classServer.html#a23">00497</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a23">Server::AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source)
+00498 {
+00499         <a class="code" href="modules_8h.html#a35">createcommand</a>(cmd,f,flags,minparams,source);
+00500 }
+00501 
+<a name="l00502"></a><a class="code" href="classServer.html#a24">00502</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a24">Server::SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user)
+00503 {
+00504         <a class="code" href="modules_8h.html#a36">server_mode</a>(parameters,pcnt,user);
+00505 }
+00506 
+<a name="l00507"></a><a class="code" href="classServer.html#a4">00507</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Server::Send</a>(<span class="keywordtype">int</span> Socket, std::string s)
+00508 {
+00509         Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00510 }
+00511 
+<a name="l00512"></a><a class="code" href="classServer.html#a5">00512</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">Server::SendServ</a>(<span class="keywordtype">int</span> Socket, std::string s)
+00513 {
+00514         WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00515 }
+00516 
+<a name="l00517"></a><a class="code" href="classServer.html#a6">00517</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">Server::SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, std::string s)
+00518 {
+00519         WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00520 }
+00521 
+<a name="l00522"></a><a class="code" href="classServer.html#a7">00522</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">Server::SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, std::string s)
+00523 {
+00524         <span class="keywordflow">if</span> (!Source)
+00525         {
+00526                 <span class="comment">// if source is NULL, then the message originates from the local server</span>
+00527                 Write(Dest-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
+00528         }
+00529         <span class="keywordflow">else</span>
+00530         {
+00531                 <span class="comment">// otherwise it comes from the user specified</span>
+00532                 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+00533         }
+00534 }
+00535 
+<a name="l00536"></a><a class="code" href="classServer.html#a8">00536</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">Server::SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, std::string s,<span class="keywordtype">bool</span> IncludeSender)
+00537 {
+00538         <span class="keywordflow">if</span> (IncludeSender)
+00539         {
+00540                 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00541         }
+00542         <span class="keywordflow">else</span>
+00543         {
+00544                 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00545         }
+00546 }
+00547 
+<a name="l00548"></a><a class="code" href="classServer.html#a9">00548</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a9">Server::CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2)
+00549 {
+00550         <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a0">common_channels</a>(u1,u2) != 0);
+00551 }
+00552 
+<a name="l00553"></a><a class="code" href="classServer.html#a10">00553</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a10">Server::SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text,<span class="keywordtype">bool</span> IncludeSender)
+00554 {
+00555         <span class="keywordflow">if</span> (IncludeSender)
+00556         {
+00557                 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00558         }
+00559         <span class="keywordflow">else</span>
+00560         {
+00561                 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00562         }
+00563 }
+00564 
+<a name="l00565"></a><a class="code" href="classServer.html#a11">00565</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">Server::SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text)
+00566 {
+00567         WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
+00568 }
+00569 
+<a name="l00570"></a><a class="code" href="classServer.html#a32">00570</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a32">Server::ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string host)
+00571 {
+00572         <a class="code" href="message_8h.html#a11">ChangeDisplayedHost</a>(user,host.c_str());
+00573 }
+00574 
+<a name="l00575"></a><a class="code" href="classServer.html#a33">00575</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a33">Server::ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string gecos)
+00576 {
+00577         <a class="code" href="message_8h.html#a10">ChangeName</a>(user,gecos.c_str());
+00578 }
+00579 
+<a name="l00580"></a><a class="code" href="classServer.html#a12">00580</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">Server::IsNick</a>(std::string nick)
+00581 {
+00582         <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a13">isnick</a>(nick.c_str()) != 0);
+00583 }
+00584 
+<a name="l00585"></a><a class="code" href="classServer.html#a14">00585</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a14">Server::FindNick</a>(std::string nick)
+00586 {
+00587         <span class="keywordflow">return</span> Find(nick);
+00588 }
+00589 
+<a name="l00590"></a><a class="code" href="classServer.html#a15">00590</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a15">Server::FindChannel</a>(std::string channel)
+00591 {
+00592         <span class="keywordflow">return</span> FindChan(channel.c_str());
+00593 }
+00594 
+<a name="l00595"></a><a class="code" href="classServer.html#a16">00595</a> std::string <a class="code" href="classServer.html#a16">Server::ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
+00596 {
+00597         <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a14">cmode</a>(User,Chan);
+00598 }
+00599 
+<a name="l00600"></a><a class="code" href="classServer.html#a17">00600</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a17">Server::IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
+00601 {
+00602         <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a16">has_channel</a>(User,Chan);
+00603 }
+00604 
+<a name="l00605"></a><a class="code" href="classServer.html#a18">00605</a> std::string <a class="code" href="classServer.html#a18">Server::GetServerName</a>()
+00606 {
+00607         <span class="keywordflow">return</span> getservername();
+00608 }
+00609 
+<a name="l00610"></a><a class="code" href="classServer.html#a19">00610</a> std::string <a class="code" href="classServer.html#a19">Server::GetNetworkName</a>()
+00611 {
+00612         <span class="keywordflow">return</span> getnetworkname();
+00613 }
+00614 
+<a name="l00615"></a><a class="code" href="classServer.html#a20">00615</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a20">Server::GetAdmin</a>()
+00616 {
+00617         <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+00618 }
 00619 
-<a name="l00620"></a><a class="code" href="classServer.html#a21">00620</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a21">Server::AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off)
-00621 {
-00622         <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#a7">MT_SERVER</a>)
-00623         {
-00624                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
-00625                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00626         }
-00627         <span class="keywordflow">if</span> (((params_when_on&gt;0) || (params_when_off&gt;0)) &amp;&amp; (type == <a class="code" href="modules_8h.html#a6">MT_CLIENT</a>))
-00628         {
-00629                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
-00630                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00631         }
-00632         <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
-00633         {
-00634                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
-00635                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00636         }
-00637         <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
-00638 }
-00639 
-<a name="l00640"></a><a class="code" href="classServer.html#a22">00640</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a22">Server::AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar)
-00641 {
-00642         <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(modechar,<a class="code" href="modules_8h.html#a5">MT_CHANNEL</a>,<span class="keyword">false</span>,1,1);
-00643         <span class="keywordflow">if</span> (res)
-00644                 <a class="code" href="modules_8cpp.html#a58">ModeMakeList</a>(modechar);
-00645         <span class="keywordflow">return</span> res;
-00646 }
-00647 
-<a name="l00648"></a><a class="code" href="classServer.html#a13">00648</a> <span class="keywordtype">int</span> <a class="code" href="classServer.html#a13">Server::CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c)
-00649 {
-00650         <span class="keywordflow">return</span> usercount(c);
-00651 }
-00652 
-00653 
-<a name="l00654"></a><a class="code" href="classServer.html#a36">00654</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a36">Server::UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,std::string message)
-00655 {
-00656         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-&gt;<a class="code" href="classconnection.html#o0">fd</a>;
-00657         user-&gt;<a class="code" href="classconnection.html#o0">fd</a> = <a class="code" href="modules_8h.html#a26">FD_MAGIC_NUMBER</a>;
-00658         Write(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#o1">ident</a>,user-&gt;<a class="code" href="classconnection.html#o1">host</a>,message.c_str());
-00659         close(old_fd);
-00660         shutdown (old_fd,2);
-00661 }
-00662 
-<a name="l00663"></a><a class="code" href="classServer.html#a37">00663</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a37">Server::PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,std::string message)
-00664 {
-00665         zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a> = alive-&gt;<a class="code" href="classconnection.html#o0">fd</a>;
-00666         alive-&gt;<a class="code" href="classconnection.html#o0">fd</a> = <a class="code" href="modules_8h.html#a26">FD_MAGIC_NUMBER</a>;
-00667         Write(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-&gt;<a class="code" href="classuserrec.html#o0">nick</a>,alive-&gt;<a class="code" href="classuserrec.html#o1">ident</a>,alive-&gt;<a class="code" href="classconnection.html#o1">host</a>,zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>);
-00668         kill_link(alive,message.c_str());
-00669         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i != MAXCHANS; i++)
-00670         {
-00671                 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a> != NULL)
-00672                 {
-00673                         <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a>-&gt;<a class="code" href="classchanrec.html#o0">name</a>)
-00674                         {
-00675                                 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a>;
-00676                                 WriteFrom(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>);
-00677                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#o4">topicset</a>)
-00678                                 {
-00679                                         WriteServ(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o2">topic</a>);
-00680                                         WriteServ(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o5">setby</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o4">topicset</a>);
-00681                                 }
-00682                                 userlist(zombie,Ptr);
-00683                                 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>);
-00684                                 <span class="comment">//WriteServ(zombie-&gt;fd,"324 %s %s +%s",zombie-&gt;nick, Ptr-&gt;name,chanmodes(Ptr));</span>
-00685                                 <span class="comment">//WriteServ(zombie-&gt;fd,"329 %s %s %d", zombie-&gt;nick, Ptr-&gt;name, Ptr-&gt;created);</span>
-00686 
-00687                         }
-00688                 }
-00689         }
-00690 
-00691 }
+00620 
+00621 
+<a name="l00622"></a><a class="code" href="classServer.html#a21">00622</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a21">Server::AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off)
+00623 {
+00624         <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#a7">MT_SERVER</a>)
+00625         {
+00626                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
+00627                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00628         }
+00629         <span class="keywordflow">if</span> (((params_when_on&gt;0) || (params_when_off&gt;0)) &amp;&amp; (type == <a class="code" href="modules_8h.html#a6">MT_CLIENT</a>))
+00630         {
+00631                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
+00632                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00633         }
+00634         <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
+00635         {
+00636                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
+00637                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00638         }
+00639         <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
+00640 }
+00641 
+<a name="l00642"></a><a class="code" href="classServer.html#a22">00642</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a22">Server::AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar)
+00643 {
+00644         <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(modechar,<a class="code" href="modules_8h.html#a5">MT_CHANNEL</a>,<span class="keyword">false</span>,1,1);
+00645         <span class="keywordflow">if</span> (res)
+00646                 <a class="code" href="modules_8cpp.html#a58">ModeMakeList</a>(modechar);
+00647         <span class="keywordflow">return</span> res;
+00648 }
+00649 
+<a name="l00650"></a><a class="code" href="classServer.html#a13">00650</a> <span class="keywordtype">int</span> <a class="code" href="classServer.html#a13">Server::CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c)
+00651 {
+00652         <span class="keywordflow">return</span> usercount(c);
+00653 }
+00654 
+00655 
+<a name="l00656"></a><a class="code" href="classServer.html#a36">00656</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a36">Server::UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,std::string message)
+00657 {
+00658         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-&gt;<a class="code" href="classconnection.html#o0">fd</a>;
+00659         user-&gt;<a class="code" href="classconnection.html#o0">fd</a> = <a class="code" href="modules_8h.html#a26">FD_MAGIC_NUMBER</a>;
+00660         Write(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#o1">ident</a>,user-&gt;<a class="code" href="classconnection.html#o1">host</a>,message.c_str());
+00661         close(old_fd);
+00662         shutdown (old_fd,2);
+00663 }
+00664 
+<a name="l00665"></a><a class="code" href="classServer.html#a37">00665</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a37">Server::PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,std::string message)
+00666 {
+00667         zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a> = alive-&gt;<a class="code" href="classconnection.html#o0">fd</a>;
+00668         alive-&gt;<a class="code" href="classconnection.html#o0">fd</a> = <a class="code" href="modules_8h.html#a26">FD_MAGIC_NUMBER</a>;
+00669         Write(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-&gt;<a class="code" href="classuserrec.html#o0">nick</a>,alive-&gt;<a class="code" href="classuserrec.html#o1">ident</a>,alive-&gt;<a class="code" href="classconnection.html#o1">host</a>,zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>);
+00670         kill_link(alive,message.c_str());
+00671         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i != MAXCHANS; i++)
+00672         {
+00673                 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a> != NULL)
+00674                 {
+00675                         <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a>-&gt;<a class="code" href="classchanrec.html#o0">name</a>)
+00676                         {
+00677                                 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a>;
+00678                                 WriteFrom(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>);
+00679                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#o6">topicset</a>)
+00680                                 {
+00681                                         WriteServ(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o4">topic</a>);
+00682                                         WriteServ(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o7">setby</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o6">topicset</a>);
+00683                                 }
+00684                                 userlist(zombie,Ptr);
+00685                                 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-&gt;<a class="code" href="classuserrec.html#o0">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#o0">name</a>);
+00686                                 <span class="comment">//WriteServ(zombie-&gt;fd,"324 %s %s +%s",zombie-&gt;nick, Ptr-&gt;name,chanmodes(Ptr));</span>
+00687                                 <span class="comment">//WriteServ(zombie-&gt;fd,"329 %s %s %d", zombie-&gt;nick, Ptr-&gt;name, Ptr-&gt;created);</span>
+00688 
+00689                         }
+00690                 }
+00691         }
 00692 
-<a name="l00693"></a><a class="code" href="classServer.html#a38">00693</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a38">Server::AddGLine</a>(<span class="keywordtype">long</span> duration, std::string source, std::string reason, std::string hostmask)
-00694 {
-00695         <a class="code" href="xline_8h.html#a1">add_gline</a>(<a class="code" href="commands_8h.html#a75">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
-00696 }
-00697 
-<a name="l00698"></a><a class="code" href="classServer.html#a39">00698</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a39">Server::AddQLine</a>(<span class="keywordtype">long</span> duration, std::string source, std::string reason, std::string nickname)
-00699 {
-00700         <a class="code" href="xline_8h.html#a2">add_qline</a>(<a class="code" href="commands_8h.html#a75">duration</a>, source.c_str(), reason.c_str(), nickname.c_str());
-00701 }
-00702 
-<a name="l00703"></a><a class="code" href="classServer.html#a40">00703</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a40">Server::AddZLine</a>(<span class="keywordtype">long</span> duration, std::string source, std::string reason, std::string ipaddr)
-00704 {
-00705         <a class="code" href="xline_8h.html#a3">add_zline</a>(<a class="code" href="commands_8h.html#a75">duration</a>, source.c_str(), reason.c_str(), ipaddr.c_str());
-00706 }
-00707 
-<a name="l00708"></a><a class="code" href="classServer.html#a41">00708</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a41">Server::AddKLine</a>(<span class="keywordtype">long</span> duration, std::string source, std::string reason, std::string hostmask)
-00709 {
-00710         <a class="code" href="xline_8h.html#a4">add_kline</a>(<a class="code" href="commands_8h.html#a75">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
-00711 }
-00712 
-<a name="l00713"></a><a class="code" href="classServer.html#a42">00713</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a42">Server::AddELine</a>(<span class="keywordtype">long</span> duration, std::string source, std::string reason, std::string hostmask)
-00714 {
-00715         <a class="code" href="xline_8h.html#a5">add_eline</a>(<a class="code" href="commands_8h.html#a75">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
-00716 }
-00717 
-<a name="l00718"></a><a class="code" href="classServer.html#a43">00718</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a43">Server::DelGLine</a>(std::string hostmask)
-00719 {
-00720         <a class="code" href="xline_8h.html#a6">del_gline</a>(hostmask.c_str());
-00721 }
-00722 
-<a name="l00723"></a><a class="code" href="classServer.html#a44">00723</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a44">Server::DelQLine</a>(std::string nickname)
-00724 {
-00725         <a class="code" href="xline_8h.html#a7">del_qline</a>(nickname.c_str());
-00726 }
-00727 
-<a name="l00728"></a><a class="code" href="classServer.html#a45">00728</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a45">Server::DelZLine</a>(std::string ipaddr)
-00729 {
-00730         <a class="code" href="xline_8h.html#a8">del_zline</a>(ipaddr.c_str());
-00731 }
-00732 
-<a name="l00733"></a><a class="code" href="classServer.html#a46">00733</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a46">Server::DelKLine</a>(std::string hostmask)
-00734 {
-00735         <a class="code" href="xline_8h.html#a9">del_kline</a>(hostmask.c_str());
-00736 }
-00737 
-<a name="l00738"></a><a class="code" href="classServer.html#a47">00738</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a47">Server::DelELine</a>(std::string hostmask)
-00739 {
-00740         <a class="code" href="xline_8h.html#a10">del_eline</a>(hostmask.c_str());
-00741 }
-00742 
-<a name="l00743"></a><a class="code" href="classServer.html#a48">00743</a> <span class="keywordtype">long</span> <a class="code" href="classServer.html#a48">Server::CalcDuration</a>(std::string delta)
-00744 {
-00745         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a75">duration</a>(delta.c_str());
-00746 }
-00747 
-<a name="l00748"></a><a class="code" href="classServer.html#a49">00748</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a49">Server::IsValidMask</a>(std::string mask)
-00749 {
-00750         <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str();
-00751         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0)
-00752                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00753         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0)
+00693 }
+00694 
+<a name="l00695"></a><a class="code" href="classServer.html#a38">00695</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a38">Server::AddGLine</a>(<span class="keywordtype">long</span> duration, std::string source, std::string reason, std::string hostmask)
+00696 {
+00697         <a class="code" href="xline_8h.html#a1">add_gline</a>(<a class="code" href="commands_8h.html#a75">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
+00698 }
+00699 
+<a name="l00700"></a><a class="code" href="classServer.html#a39">00700</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a39">Server::AddQLine</a>(<span class="keywordtype">long</span> duration, std::string source, std::string reason, std::string nickname)
+00701 {
+00702         <a class="code" href="xline_8h.html#a2">add_qline</a>(<a class="code" href="commands_8h.html#a75">duration</a>, source.c_str(), reason.c_str(), nickname.c_str());
+00703 }
+00704 
+<a name="l00705"></a><a class="code" href="classServer.html#a40">00705</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a40">Server::AddZLine</a>(<span class="keywordtype">long</span> duration, std::string source, std::string reason, std::string ipaddr)
+00706 {
+00707         <a class="code" href="xline_8h.html#a3">add_zline</a>(<a class="code" href="commands_8h.html#a75">duration</a>, source.c_str(), reason.c_str(), ipaddr.c_str());
+00708 }
+00709 
+<a name="l00710"></a><a class="code" href="classServer.html#a41">00710</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a41">Server::AddKLine</a>(<span class="keywordtype">long</span> duration, std::string source, std::string reason, std::string hostmask)
+00711 {
+00712         <a class="code" href="xline_8h.html#a4">add_kline</a>(<a class="code" href="commands_8h.html#a75">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
+00713 }
+00714 
+<a name="l00715"></a><a class="code" href="classServer.html#a42">00715</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a42">Server::AddELine</a>(<span class="keywordtype">long</span> duration, std::string source, std::string reason, std::string hostmask)
+00716 {
+00717         <a class="code" href="xline_8h.html#a5">add_eline</a>(<a class="code" href="commands_8h.html#a75">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
+00718 }
+00719 
+<a name="l00720"></a><a class="code" href="classServer.html#a43">00720</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a43">Server::DelGLine</a>(std::string hostmask)
+00721 {
+00722         <a class="code" href="xline_8h.html#a6">del_gline</a>(hostmask.c_str());
+00723 }
+00724 
+<a name="l00725"></a><a class="code" href="classServer.html#a44">00725</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a44">Server::DelQLine</a>(std::string nickname)
+00726 {
+00727         <a class="code" href="xline_8h.html#a7">del_qline</a>(nickname.c_str());
+00728 }
+00729 
+<a name="l00730"></a><a class="code" href="classServer.html#a45">00730</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a45">Server::DelZLine</a>(std::string ipaddr)
+00731 {
+00732         <a class="code" href="xline_8h.html#a8">del_zline</a>(ipaddr.c_str());
+00733 }
+00734 
+<a name="l00735"></a><a class="code" href="classServer.html#a46">00735</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a46">Server::DelKLine</a>(std::string hostmask)
+00736 {
+00737         <a class="code" href="xline_8h.html#a9">del_kline</a>(hostmask.c_str());
+00738 }
+00739 
+<a name="l00740"></a><a class="code" href="classServer.html#a47">00740</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a47">Server::DelELine</a>(std::string hostmask)
+00741 {
+00742         <a class="code" href="xline_8h.html#a10">del_eline</a>(hostmask.c_str());
+00743 }
+00744 
+<a name="l00745"></a><a class="code" href="classServer.html#a48">00745</a> <span class="keywordtype">long</span> <a class="code" href="classServer.html#a48">Server::CalcDuration</a>(std::string delta)
+00746 {
+00747         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a75">duration</a>(delta.c_str());
+00748 }
+00749 
+<a name="l00750"></a><a class="code" href="classServer.html#a49">00750</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a49">Server::IsValidMask</a>(std::string mask)
+00751 {
+00752         <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str();
+00753         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0)
 00754                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00755         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-00756                 <span class="keywordflow">if</span> (dest[i] &lt; 32)
-00757                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00758         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-00759                 <span class="keywordflow">if</span> (dest[i] &gt; 126)
-00760                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00761         <span class="keywordtype">int</span> c = 0;
-00762         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-00763                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>)
-00764                         c++;
-00765         <span class="keywordflow">if</span> (c&gt;1)
-00766                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00767         c = 0;
-00768         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-00769                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>)
-00770                         c++;
-00771         <span class="keywordflow">if</span> (c&gt;1)
-00772                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00773 
-00774         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00775 }
-00776 
-<a name="l00777"></a><a class="code" href="classServer.html#a50">00777</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a50">Server::MeshSendAll</a>(std::string text)
-00778 {
-00779         NetSendToAll((<span class="keywordtype">char</span>*)text.c_str());
-00780 }
-00781 
-<a name="l00782"></a><a class="code" href="classServer.html#a51">00782</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a51">Server::MeshSendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string text)
-00783 {
-00784         <span class="keywordflow">if</span> (user)
-00785                 NetSendToCommon(user,(<span class="keywordtype">char</span>*)text.c_str());
-00786 }
-00787 
-<a name="l00788"></a><a class="code" href="classServer.html#a52">00788</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a52">Server::MeshSendAllAlive</a>(std::string text)
-00789 {
-00790         NetSendToAllAlive((<span class="keywordtype">char</span>*)text.c_str());
-00791 }
-00792 
-<a name="l00793"></a><a class="code" href="classServer.html#a53">00793</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a53">Server::MeshSendUnicast</a>(std::string destination, std::string text)
-00794 {
-00795         NetSendToOne((<span class="keywordtype">char</span>*)destination.c_str(),(<span class="keywordtype">char</span>*)text.c_str());
-00796 }
-00797 
-<a name="l00798"></a><a class="code" href="classServer.html#a54">00798</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a54">Server::MeshSendAllExcept</a>(std::string target, std::string text)
-00799 {
-00800         NetSendToAllExcept(target.c_str(),(<span class="keywordtype">char</span>*)text.c_str());
-00801 }
-00802 
-<a name="l00803"></a><a class="code" href="classServer.html#a55">00803</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a55">Server::MeshCheckChan</a>(<a class="code" href="classchanrec.html">chanrec</a> *c,std::string servername)
-00804 {
-00805         <span class="keywordflow">if</span> (c)
-00806         {
-00807                 <span class="keywordflow">return</span> ChanAnyOnThisServer(c,(<span class="keywordtype">char</span>*)servername.c_str());
-00808         }
-00809         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00810 }
-00811 
-<a name="l00812"></a><a class="code" href="classServer.html#a56">00812</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a56">Server::MeshCheckCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* u,std::string servername)
-00813 {
-00814         <span class="keywordflow">if</span> (u)
-00815         {
-00816                 <span class="keywordflow">return</span> CommonOnThisServer(u,(<span class="keywordtype">char</span>*)servername.c_str());
-00817         }
-00818         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00819 }
-00820 
-<a name="l00821"></a><a class="code" href="classServer.html#a57">00821</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#a57">Server::FindModule</a>(std::string name)
-00822 {
-00823         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="modules_8cpp.html#a1">MODCOUNT</a>; i++)
-00824         {
-00825                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a27">module_names</a>[i] == name)
-00826                 {
-00827                         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#a2">modules</a>[i];
-00828                 }
-00829         }
-00830         <span class="keywordflow">return</span> NULL;
-00831 }
-00832 
-<a name="l00833"></a><a class="code" href="classConfigReader.html#a0">00833</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>()
-00834 {
-00835         this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00836         this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00837         this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a> = LoadConf(CONFIG_FILE,this-&gt;cache,this-&gt;errorlog);
-00838         <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a>)
-00839                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a30">CONF_FILE_NOT_FOUND</a>;
-00840 }
-00841 
-00842 
-<a name="l00843"></a><a class="code" href="classConfigReader.html#a2">00843</a> <a class="code" href="classConfigReader.html#a2">ConfigReader::~ConfigReader</a>()
-00844 {
-00845         <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a>)
-00846                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a>;
-00847         <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a>)
-00848                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a>;
-00849 }
-00850 
-00851 
-<a name="l00852"></a><a class="code" href="classConfigReader.html#a1">00852</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>(std::string filename)
-00853 {
-00854         this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00855         this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00856         this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a> = LoadConf(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a>,this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a>);
-00857         <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a>)
-00858                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a30">CONF_FILE_NOT_FOUND</a>;
-00859 };
-00860 
-<a name="l00861"></a><a class="code" href="classConfigReader.html#a3">00861</a> std::string <a class="code" href="classConfigReader.html#a3">ConfigReader::ReadValue</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index)
-00862 {
-00863         <span class="keywordtype">char</span> val[MAXBUF];
-00864         <span class="keywordtype">char</span> t[MAXBUF];
-00865         <span class="keywordtype">char</span> n[MAXBUF];
-00866         strlcpy(t,tag.c_str(),MAXBUF);
-00867         strlcpy(n,name.c_str(),MAXBUF);
-00868         <span class="keywordtype">int</span> res = ReadConf(<a class="code" href="classConfigReader.html#p0">cache</a>,t,n,index,val);
-00869         <span class="keywordflow">if</span> (!res)
-00870         {
-00871                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a29">CONF_VALUE_NOT_FOUND</a>;
-00872                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-00873         }
-00874         <span class="keywordflow">return</span> std::string(val);
-00875 }
-00876 
-<a name="l00877"></a><a class="code" href="classConfigReader.html#a4">00877</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a4">ConfigReader::ReadFlag</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index)
-00878 {
-00879         <span class="keywordtype">char</span> val[MAXBUF];
-00880         <span class="keywordtype">char</span> t[MAXBUF];
-00881         <span class="keywordtype">char</span> n[MAXBUF];
-00882         strlcpy(t,tag.c_str(),MAXBUF);
-00883         strlcpy(n,name.c_str(),MAXBUF);
-00884         <span class="keywordtype">int</span> res = ReadConf(<a class="code" href="classConfigReader.html#p0">cache</a>,t,n,index,val);
-00885         <span class="keywordflow">if</span> (!res)
-00886         {
-00887                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a29">CONF_VALUE_NOT_FOUND</a>;
-00888                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00889         }
-00890         std::string s = val;
-00891         <span class="keywordflow">return</span> ((s == <span class="stringliteral">"yes"</span>) || (s == <span class="stringliteral">"YES"</span>) || (s == <span class="stringliteral">"true"</span>) || (s == <span class="stringliteral">"TRUE"</span>) || (s == <span class="stringliteral">"1"</span>));
-00892 }
-00893 
-<a name="l00894"></a><a class="code" href="classConfigReader.html#a5">00894</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#a5">ConfigReader::ReadInteger</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned)
-00895 {
-00896         <span class="keywordtype">char</span> val[MAXBUF];
-00897         <span class="keywordtype">char</span> t[MAXBUF];
-00898         <span class="keywordtype">char</span> n[MAXBUF];
-00899         strlcpy(t,tag.c_str(),MAXBUF);
-00900         strlcpy(n,name.c_str(),MAXBUF);
-00901         <span class="keywordtype">int</span> res = ReadConf(<a class="code" href="classConfigReader.html#p0">cache</a>,t,n,index,val);
-00902         <span class="keywordflow">if</span> (!res)
-00903         {
-00904                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a29">CONF_VALUE_NOT_FOUND</a>;
-00905                 <span class="keywordflow">return</span> 0;
-00906         }
-00907         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(val); i++)
-00908         {
-00909                 <span class="keywordflow">if</span> (!isdigit(val[i]))
-00910                 {
-00911                         this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a27">CONF_NOT_A_NUMBER</a>;
-00912                         <span class="keywordflow">return</span> 0;
-00913                 }
-00914         }
-00915         <span class="keywordflow">if</span> ((needs_unsigned) &amp;&amp; (atoi(val)&lt;0))
-00916         {
-00917                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a28">CONF_NOT_UNSIGNED</a>;
-00918                 <span class="keywordflow">return</span> 0;
-00919         }
-00920         <span class="keywordflow">return</span> atoi(val);
-00921 }
-00922 
-<a name="l00923"></a><a class="code" href="classConfigReader.html#a6">00923</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#a6">ConfigReader::GetError</a>()
-00924 {
-00925         <span class="keywordtype">long</span> olderr = this-&gt;<a class="code" href="classConfigReader.html#p3">error</a>;
-00926         this-&gt;error = 0;
-00927         <span class="keywordflow">return</span> olderr;
-00928 }
-00929 
-<a name="l00930"></a><a class="code" href="classConfigReader.html#a9">00930</a> <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#a9">ConfigReader::DumpErrors</a>(<span class="keywordtype">bool</span> bail, <a class="code" href="classuserrec.html">userrec</a>* user)
-00931 {
-00932         <span class="keywordflow">if</span> (bail)
-00933         {
-00934                 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;str().c_str());
-00935                 exit(0);
-00936         }
-00937         <span class="keywordflow">else</span>
-00938         {
-00939                 <span class="keywordtype">char</span> dataline[1024];
-00940                 <span class="keywordflow">if</span> (user)
-00941                 {
-00942                         WriteServ(user-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>);
-00943                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;eof())
-00944                         {
-00945                                 <a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;getline(dataline,1024);
-00946                                 WriteServ(user-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>,dataline);
-00947                         }
-00948                 }
-00949                 <span class="keywordflow">else</span>
-00950                 {
-00951                         WriteOpers(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>);
-00952                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;eof())
-00953                         {
-00954                                 <a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;getline(dataline,1024);
-00955                                 WriteOpers(dataline);
-00956                         }
-00957                 }
-00958                 <span class="keywordflow">return</span>;
-00959         }
-00960 }
-00961 
-00962 
-<a name="l00963"></a><a class="code" href="classConfigReader.html#a7">00963</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a7">ConfigReader::Enumerate</a>(std::string tag)
-00964 {
-00965         <span class="keywordflow">return</span> EnumConf(<a class="code" href="classConfigReader.html#p0">cache</a>,tag.c_str());
-00966 }
-00967 
-<a name="l00968"></a><a class="code" href="classConfigReader.html#a10">00968</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a10">ConfigReader::EnumerateValues</a>(std::string tag, <span class="keywordtype">int</span> index)
-00969 {
-00970         <span class="keywordflow">return</span> EnumValues(<a class="code" href="classConfigReader.html#p0">cache</a>, tag.c_str(), index);
-00971 }
-00972 
-<a name="l00973"></a><a class="code" href="classConfigReader.html#a8">00973</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a8">ConfigReader::Verify</a>()
-00974 {
-00975         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a>;
-00976 }
-00977 
-00978 
-<a name="l00979"></a><a class="code" href="classFileReader.html#a1">00979</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>(std::string filename)
-00980 {
-00981         <a class="code" href="modules_8h.html#a31">file_cache</a> c;
-00982         readfile(c,filename.c_str());
-00983         this-&gt;<a class="code" href="classFileReader.html#r0">fc</a> = c;
-00984 }
-00985 
-<a name="l00986"></a><a class="code" href="classFileReader.html#a0">00986</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>()
-00987 {
-00988 }
-00989 
-<a name="l00990"></a><a class="code" href="classFileReader.html#a3">00990</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">FileReader::LoadFile</a>(std::string filename)
-00991 {
-00992         <a class="code" href="modules_8h.html#a31">file_cache</a> c;
-00993         readfile(c,filename.c_str());
-00994         this-&gt;<a class="code" href="classFileReader.html#r0">fc</a> = c;
-00995 }
-00996 
-00997 
-<a name="l00998"></a><a class="code" href="classFileReader.html#a2">00998</a> <a class="code" href="classFileReader.html#a2">FileReader::~FileReader</a>()
-00999 {
-01000 }
-01001 
-<a name="l01002"></a><a class="code" href="classFileReader.html#a4">01002</a> <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#a4">FileReader::Exists</a>()
-01003 {
-01004         <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#r0">fc</a>.size() == 0)
-01005         {
-01006                 <span class="keywordflow">return</span>(<span class="keyword">false</span>);
-01007         }
-01008         <span class="keywordflow">else</span>
-01009         {
-01010                 <span class="keywordflow">return</span>(<span class="keyword">true</span>);
-01011         }
-01012 }
-01013 
-<a name="l01014"></a><a class="code" href="classFileReader.html#a5">01014</a> std::string <a class="code" href="classFileReader.html#a5">FileReader::GetLine</a>(<span class="keywordtype">int</span> x)
-01015 {
-01016         <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#r0">fc</a>.size()))
-01017                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-01018         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#r0">fc</a>[x];
-01019 }
-01020 
-<a name="l01021"></a><a class="code" href="classFileReader.html#a6">01021</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a6">FileReader::FileSize</a>()
-01022 {
-01023         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#r0">fc</a>.size();
-01024 }
-01025 
-01026 
-01027 std::vector&lt;Module*&gt; <a class="code" href="modules_8cpp.html#a59">modules</a>(255);
-01028 std::vector&lt;ircd_module*&gt; <a class="code" href="modules_8cpp.html#a60">factory</a>(255);
-01029 
-<a name="l01030"></a><a class="code" href="modules_8cpp.html#a1">01030</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a1">MODCOUNT</a>  = -1;
+00755         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0)
+00756                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00757         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+00758                 <span class="keywordflow">if</span> (dest[i] &lt; 32)
+00759                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00760         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+00761                 <span class="keywordflow">if</span> (dest[i] &gt; 126)
+00762                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00763         <span class="keywordtype">int</span> c = 0;
+00764         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+00765                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>)
+00766                         c++;
+00767         <span class="keywordflow">if</span> (c&gt;1)
+00768                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00769         c = 0;
+00770         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+00771                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>)
+00772                         c++;
+00773         <span class="keywordflow">if</span> (c&gt;1)
+00774                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00775 
+00776         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00777 }
+00778 
+<a name="l00779"></a><a class="code" href="classServer.html#a50">00779</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a50">Server::MeshSendAll</a>(std::string text)
+00780 {
+00781         NetSendToAll((<span class="keywordtype">char</span>*)text.c_str());
+00782 }
+00783 
+<a name="l00784"></a><a class="code" href="classServer.html#a51">00784</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a51">Server::MeshSendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string text)
+00785 {
+00786         <span class="keywordflow">if</span> (user)
+00787                 NetSendToCommon(user,(<span class="keywordtype">char</span>*)text.c_str());
+00788 }
+00789 
+<a name="l00790"></a><a class="code" href="classServer.html#a52">00790</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a52">Server::MeshSendAllAlive</a>(std::string text)
+00791 {
+00792         NetSendToAllAlive((<span class="keywordtype">char</span>*)text.c_str());
+00793 }
+00794 
+<a name="l00795"></a><a class="code" href="classServer.html#a53">00795</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a53">Server::MeshSendUnicast</a>(std::string destination, std::string text)
+00796 {
+00797         NetSendToOne((<span class="keywordtype">char</span>*)destination.c_str(),(<span class="keywordtype">char</span>*)text.c_str());
+00798 }
+00799 
+<a name="l00800"></a><a class="code" href="classServer.html#a54">00800</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a54">Server::MeshSendAllExcept</a>(std::string target, std::string text)
+00801 {
+00802         NetSendToAllExcept(target.c_str(),(<span class="keywordtype">char</span>*)text.c_str());
+00803 }
+00804 
+<a name="l00805"></a><a class="code" href="classServer.html#a55">00805</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a55">Server::MeshCheckChan</a>(<a class="code" href="classchanrec.html">chanrec</a> *c,std::string servername)
+00806 {
+00807         <span class="keywordflow">if</span> (c)
+00808         {
+00809                 <span class="keywordflow">return</span> ChanAnyOnThisServer(c,(<span class="keywordtype">char</span>*)servername.c_str());
+00810         }
+00811         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00812 }
+00813 
+<a name="l00814"></a><a class="code" href="classServer.html#a56">00814</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a56">Server::MeshCheckCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* u,std::string servername)
+00815 {
+00816         <span class="keywordflow">if</span> (u)
+00817         {
+00818                 <span class="keywordflow">return</span> CommonOnThisServer(u,(<span class="keywordtype">char</span>*)servername.c_str());
+00819         }
+00820         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00821 }
+00822 
+<a name="l00823"></a><a class="code" href="classServer.html#a57">00823</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#a57">Server::FindModule</a>(std::string name)
+00824 {
+00825         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="modules_8cpp.html#a1">MODCOUNT</a>; i++)
+00826         {
+00827                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a27">module_names</a>[i] == name)
+00828                 {
+00829                         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#a2">modules</a>[i];
+00830                 }
+00831         }
+00832         <span class="keywordflow">return</span> NULL;
+00833 }
+00834 
+<a name="l00835"></a><a class="code" href="classConfigReader.html#a0">00835</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>()
+00836 {
+00837         this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+00838         this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+00839         this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a> = LoadConf(CONFIG_FILE,this-&gt;cache,this-&gt;errorlog);
+00840         <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a>)
+00841                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a30">CONF_FILE_NOT_FOUND</a>;
+00842 }
+00843 
+00844 
+<a name="l00845"></a><a class="code" href="classConfigReader.html#a2">00845</a> <a class="code" href="classConfigReader.html#a2">ConfigReader::~ConfigReader</a>()
+00846 {
+00847         <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a>)
+00848                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a>;
+00849         <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a>)
+00850                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a>;
+00851 }
+00852 
+00853 
+<a name="l00854"></a><a class="code" href="classConfigReader.html#a1">00854</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>(std::string filename)
+00855 {
+00856         this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+00857         this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+00858         this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a> = LoadConf(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#p0">cache</a>,this-&gt;<a class="code" href="classConfigReader.html#p1">errorlog</a>);
+00859         <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a>)
+00860                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a30">CONF_FILE_NOT_FOUND</a>;
+00861 };
+00862 
+<a name="l00863"></a><a class="code" href="classConfigReader.html#a3">00863</a> std::string <a class="code" href="classConfigReader.html#a3">ConfigReader::ReadValue</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index)
+00864 {
+00865         <span class="keywordtype">char</span> val[MAXBUF];
+00866         <span class="keywordtype">char</span> t[MAXBUF];
+00867         <span class="keywordtype">char</span> n[MAXBUF];
+00868         strlcpy(t,tag.c_str(),MAXBUF);
+00869         strlcpy(n,name.c_str(),MAXBUF);
+00870         <span class="keywordtype">int</span> res = ReadConf(<a class="code" href="classConfigReader.html#p0">cache</a>,t,n,index,val);
+00871         <span class="keywordflow">if</span> (!res)
+00872         {
+00873                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a29">CONF_VALUE_NOT_FOUND</a>;
+00874                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00875         }
+00876         <span class="keywordflow">return</span> std::string(val);
+00877 }
+00878 
+<a name="l00879"></a><a class="code" href="classConfigReader.html#a4">00879</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a4">ConfigReader::ReadFlag</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index)
+00880 {
+00881         <span class="keywordtype">char</span> val[MAXBUF];
+00882         <span class="keywordtype">char</span> t[MAXBUF];
+00883         <span class="keywordtype">char</span> n[MAXBUF];
+00884         strlcpy(t,tag.c_str(),MAXBUF);
+00885         strlcpy(n,name.c_str(),MAXBUF);
+00886         <span class="keywordtype">int</span> res = ReadConf(<a class="code" href="classConfigReader.html#p0">cache</a>,t,n,index,val);
+00887         <span class="keywordflow">if</span> (!res)
+00888         {
+00889                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a29">CONF_VALUE_NOT_FOUND</a>;
+00890                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00891         }
+00892         std::string s = val;
+00893         <span class="keywordflow">return</span> ((s == <span class="stringliteral">"yes"</span>) || (s == <span class="stringliteral">"YES"</span>) || (s == <span class="stringliteral">"true"</span>) || (s == <span class="stringliteral">"TRUE"</span>) || (s == <span class="stringliteral">"1"</span>));
+00894 }
+00895 
+<a name="l00896"></a><a class="code" href="classConfigReader.html#a5">00896</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#a5">ConfigReader::ReadInteger</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned)
+00897 {
+00898         <span class="keywordtype">char</span> val[MAXBUF];
+00899         <span class="keywordtype">char</span> t[MAXBUF];
+00900         <span class="keywordtype">char</span> n[MAXBUF];
+00901         strlcpy(t,tag.c_str(),MAXBUF);
+00902         strlcpy(n,name.c_str(),MAXBUF);
+00903         <span class="keywordtype">int</span> res = ReadConf(<a class="code" href="classConfigReader.html#p0">cache</a>,t,n,index,val);
+00904         <span class="keywordflow">if</span> (!res)
+00905         {
+00906                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a29">CONF_VALUE_NOT_FOUND</a>;
+00907                 <span class="keywordflow">return</span> 0;
+00908         }
+00909         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; strlen(val); i++)
+00910         {
+00911                 <span class="keywordflow">if</span> (!isdigit(val[i]))
+00912                 {
+00913                         this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a27">CONF_NOT_A_NUMBER</a>;
+00914                         <span class="keywordflow">return</span> 0;
+00915                 }
+00916         }
+00917         <span class="keywordflow">if</span> ((needs_unsigned) &amp;&amp; (atoi(val)&lt;0))
+00918         {
+00919                 this-&gt;<a class="code" href="classConfigReader.html#p3">error</a> = <a class="code" href="modules_8h.html#a28">CONF_NOT_UNSIGNED</a>;
+00920                 <span class="keywordflow">return</span> 0;
+00921         }
+00922         <span class="keywordflow">return</span> atoi(val);
+00923 }
+00924 
+<a name="l00925"></a><a class="code" href="classConfigReader.html#a6">00925</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#a6">ConfigReader::GetError</a>()
+00926 {
+00927         <span class="keywordtype">long</span> olderr = this-&gt;<a class="code" href="classConfigReader.html#p3">error</a>;
+00928         this-&gt;error = 0;
+00929         <span class="keywordflow">return</span> olderr;
+00930 }
+00931 
+<a name="l00932"></a><a class="code" href="classConfigReader.html#a9">00932</a> <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#a9">ConfigReader::DumpErrors</a>(<span class="keywordtype">bool</span> bail, <a class="code" href="classuserrec.html">userrec</a>* user)
+00933 {
+00934         <span class="keywordflow">if</span> (bail)
+00935         {
+00936                 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;str().c_str());
+00937                 exit(0);
+00938         }
+00939         <span class="keywordflow">else</span>
+00940         {
+00941                 <span class="keywordtype">char</span> dataline[1024];
+00942                 <span class="keywordflow">if</span> (user)
+00943                 {
+00944                         WriteServ(user-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>);
+00945                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;eof())
+00946                         {
+00947                                 <a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;getline(dataline,1024);
+00948                                 WriteServ(user-&gt;<a class="code" href="classconnection.html#o0">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>,dataline);
+00949                         }
+00950                 }
+00951                 <span class="keywordflow">else</span>
+00952                 {
+00953                         WriteOpers(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#o0">nick</a>);
+00954                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;eof())
+00955                         {
+00956                                 <a class="code" href="classConfigReader.html#p1">errorlog</a>-&gt;getline(dataline,1024);
+00957                                 WriteOpers(dataline);
+00958                         }
+00959                 }
+00960                 <span class="keywordflow">return</span>;
+00961         }
+00962 }
+00963 
+00964 
+<a name="l00965"></a><a class="code" href="classConfigReader.html#a7">00965</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a7">ConfigReader::Enumerate</a>(std::string tag)
+00966 {
+00967         <span class="keywordflow">return</span> EnumConf(<a class="code" href="classConfigReader.html#p0">cache</a>,tag.c_str());
+00968 }
+00969 
+<a name="l00970"></a><a class="code" href="classConfigReader.html#a10">00970</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a10">ConfigReader::EnumerateValues</a>(std::string tag, <span class="keywordtype">int</span> index)
+00971 {
+00972         <span class="keywordflow">return</span> EnumValues(<a class="code" href="classConfigReader.html#p0">cache</a>, tag.c_str(), index);
+00973 }
+00974 
+<a name="l00975"></a><a class="code" href="classConfigReader.html#a8">00975</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a8">ConfigReader::Verify</a>()
+00976 {
+00977         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#p2">readerror</a>;
+00978 }
+00979 
+00980 
+<a name="l00981"></a><a class="code" href="classFileReader.html#a1">00981</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>(std::string filename)
+00982 {
+00983         <a class="code" href="modules_8h.html#a31">file_cache</a> c;
+00984         readfile(c,filename.c_str());
+00985         this-&gt;<a class="code" href="classFileReader.html#r0">fc</a> = c;
+00986 }
+00987 
+<a name="l00988"></a><a class="code" href="classFileReader.html#a0">00988</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>()
+00989 {
+00990 }
+00991 
+<a name="l00992"></a><a class="code" href="classFileReader.html#a3">00992</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">FileReader::LoadFile</a>(std::string filename)
+00993 {
+00994         <a class="code" href="modules_8h.html#a31">file_cache</a> c;
+00995         readfile(c,filename.c_str());
+00996         this-&gt;<a class="code" href="classFileReader.html#r0">fc</a> = c;
+00997 }
+00998 
+00999 
+<a name="l01000"></a><a class="code" href="classFileReader.html#a2">01000</a> <a class="code" href="classFileReader.html#a2">FileReader::~FileReader</a>()
+01001 {
+01002 }
+01003 
+<a name="l01004"></a><a class="code" href="classFileReader.html#a4">01004</a> <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#a4">FileReader::Exists</a>()
+01005 {
+01006         <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#r0">fc</a>.size() == 0)
+01007         {
+01008                 <span class="keywordflow">return</span>(<span class="keyword">false</span>);
+01009         }
+01010         <span class="keywordflow">else</span>
+01011         {
+01012                 <span class="keywordflow">return</span>(<span class="keyword">true</span>);
+01013         }
+01014 }
+01015 
+<a name="l01016"></a><a class="code" href="classFileReader.html#a5">01016</a> std::string <a class="code" href="classFileReader.html#a5">FileReader::GetLine</a>(<span class="keywordtype">int</span> x)
+01017 {
+01018         <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#r0">fc</a>.size()))
+01019                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+01020         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#r0">fc</a>[x];
+01021 }
+01022 
+<a name="l01023"></a><a class="code" href="classFileReader.html#a6">01023</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a6">FileReader::FileSize</a>()
+01024 {
+01025         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#r0">fc</a>.size();
+01026 }
+01027 
+01028 
+01029 std::vector&lt;Module*&gt; <a class="code" href="modules_8cpp.html#a59">modules</a>(255);
+01030 std::vector&lt;ircd_module*&gt; <a class="code" href="modules_8cpp.html#a60">factory</a>(255);
 01031 
-01032 
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:55 2005 for InspIRCd by
+<a name="l01032"></a><a class="code" href="modules_8cpp.html#a1">01032</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a1">MODCOUNT</a>  = -1;
+01033 
+01034 
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:44 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 701a6f0cd40ae259b1c08acf9cf81e7a8247dfb6..ead727c76a585786606b213af492462e87846bd4 100644 (file)
@@ -416,7 +416,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00277">277</a>
 <p>
 References <a class="el" href="modules_8cpp-source.html#l00208">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00211">ModeDefined()</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00640">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00620">Server::AddExtendedMode()</a>.
+Referenced by <a class="el" href="modules_8cpp-source.html#l00642">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00622">Server::AddExtendedMode()</a>.
 <p>
 <div class="fragment"><pre>00278 {
 00279         <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#a52">ModeDefined</a>(modechar,type)) {
@@ -764,7 +764,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00287">287</a>
 <p>
 References <a class="el" href="modules_8cpp-source.html#l00208">EMode</a>, <a class="el" href="modules_8cpp-source.html#l00205">ExtModeListIter</a>, and <a class="el" href="modules_8h-source.html#l00031">MT_CHANNEL</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00640">Server::AddExtendedListMode()</a>.
+Referenced by <a class="el" href="modules_8cpp-source.html#l00642">Server::AddExtendedListMode()</a>.
 <p>
 <div class="fragment"><pre>00288 {
 00289         <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
@@ -977,7 +977,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00182">182</a>
 <p>
 Definition at line <a class="el" href="modules_8cpp-source.html#l00181">181</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00450">Server::GetUsers()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00452">Server::GetUsers()</a>.    </td>
   </tr>
 </table>
 <a name="a45" doxytag="modules.cpp::cmdlist"></a><p>
@@ -1387,7 +1387,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00106">106</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l01030">1030</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.    </td>
+Definition at line <a class="el" href="modules_8cpp-source.html#l01032">1032</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.    </td>
   </tr>
 </table>
 <a name="a28" doxytag="modules.cpp::module_names"></a><p>
@@ -1894,7 +1894,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00087">87</a> o
 Definition at line <a class="el" href="modules_8cpp-source.html#l00086">86</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:59 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index e76cb5143c5f477486ca789de524fa458d646998..c9a740a950e05aa42bd3675131df8df51033a3ec 100644 (file)
@@ -79,7 +79,7 @@
 00076 <span class="comment">// loaded modules in a readable simple way, e.g.:</span>
 00077 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span>
 00078 
-<a name="l00079"></a><a class="code" href="modules_8h.html#a24">00079</a> <span class="preprocessor">#define FOREACH_MOD for (int i = 0; i &lt;= MODCOUNT; i++) modules[i]-&gt;</span>
+<a name="l00079"></a><a class="code" href="modules_8h.html#a24">00079</a> <span class="preprocessor">#define FOREACH_MOD for (int _i = 0; _i &lt;= MODCOUNT; _i++) modules[_i]-&gt;</span>
 00080 <span class="preprocessor"></span>
 00081 <span class="comment">// This define is similar to the one above but returns a result in MOD_RESULT.</span>
 00082 <span class="comment">// The first module to return a nonzero result is the value to be accepted,</span>
@@ -88,8 +88,8 @@
 00085 <span class="comment">// *********************************************************************************************</span>
 00086 
 <a name="l00087"></a><a class="code" href="modules_8h.html#a25">00087</a> <span class="preprocessor">#define FOREACH_RESULT(x) { MOD_RESULT = 0; \</span>
-00088 <span class="preprocessor">                        for (int i = 0; i &lt;= MODCOUNT; i++) { \</span>
-00089 <span class="preprocessor">                        int res = modules[i]-&gt;x ; \</span>
+00088 <span class="preprocessor">                        for (int _i = 0; _i &lt;= MODCOUNT; _i++) { \</span>
+00089 <span class="preprocessor">                        int res = modules[_i]-&gt;x ; \</span>
 00090 <span class="preprocessor">                        if (res != 0) { \</span>
 00091 <span class="preprocessor">                                MOD_RESULT = res; \</span>
 00092 <span class="preprocessor">                                break; \</span>
 00131 <span class="comment">// Forward-delacare module for ModuleMessage etc</span>
 00132 <span class="keyword">class </span><a class="code" href="classModule.html">Module</a>;
 00133 
-<a name="l00138"></a><a class="code" href="classModuleMessage.html">00138</a> <span class="keyword">class </span><a class="code" href="classModuleMessage.html">ModuleMessage</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-00139 {
-00140  <span class="keyword">public</span>:
-00143         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModuleMessage.html#a0">Send</a>() = 0;
-00144 };
-00145 
-<a name="l00151"></a><a class="code" href="classRequest.html">00151</a> <span class="keyword">class </span><a class="code" href="classRequest.html">Request</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a>
-00152 {
-00153  <span class="keyword">protected</span>:
-<a name="l00156"></a><a class="code" href="classRequest.html#p0">00156</a>         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#p0">data</a>;
-<a name="l00160"></a><a class="code" href="classRequest.html#p1">00160</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#p1">source</a>;
-<a name="l00163"></a><a class="code" href="classRequest.html#p2">00163</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#p2">dest</a>;
-00164  <span class="keyword">public</span>:
-00167         <a class="code" href="classRequest.html#a0">Request</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="classModule.html">Module</a>* dst);
-00170         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#a1">GetData</a>();
-00173         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#a2">GetSource</a>();
-00176         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#a3">GetDest</a>();
-00182         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#a4">Send</a>();
-00183 };
-00184 
-00185 
-<a name="l00191"></a><a class="code" href="classEvent.html">00191</a> <span class="keyword">class </span><a class="code" href="classEvent.html">Event</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a>
-00192 {
-00193  <span class="keyword">protected</span>:
-<a name="l00196"></a><a class="code" href="classEvent.html#p0">00196</a>         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#p0">data</a>;
-<a name="l00200"></a><a class="code" href="classEvent.html#p1">00200</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#p1">source</a>;
-<a name="l00205"></a><a class="code" href="classEvent.html#p2">00205</a>         std::string <a class="code" href="classEvent.html#p2">id</a>;
-00206  <span class="keyword">public</span>:
-00209         <a class="code" href="classEvent.html#a0">Event</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, std::string eventid);
-00212         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#a1">GetData</a>();
-00215         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#a2">GetSource</a>();
-00219         std::string <a class="code" href="classEvent.html#a3">GetEventID</a>();
-00224         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#a4">Send</a>();
-00225 };
-00226 
-00227 
-<a name="l00233"></a><a class="code" href="classModule.html">00233</a> <span class="keyword">class </span><a class="code" href="classModule.html">Module</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-00234 {
-00235  <span class="keyword">public</span>:
-00236 
-00240         <a class="code" href="classModule.html#a0">Module</a>();
-00241 
-00245         <span class="keyword">virtual</span> <a class="code" href="classModule.html#a1">~Module</a>();
-00246 
-00251         <span class="keyword">virtual</span> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#a2">GetVersion</a>();
-00252 
-00256         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a3">OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-00257 
-00263         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a4">OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-00264 
-00270         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a5">OnUserDisconnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-00271 
-00276         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a6">OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
-00277 
-00282         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a7">OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
-00283 
-00289         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a8">OnPacketTransmit</a>(std::string &amp;data, std::string serv);
-00290 
-00297         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a9">OnPacketReceive</a>(std::string &amp;data, std::string serv);
-00298 
-00304         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a10">OnRehash</a>();
-00305 
-00314         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a11">OnServerRaw</a>(std::string &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user);
-00315 
-00325         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a12">OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, <a class="code" href="modules_8h.html#a32">string_list</a> &amp;params);
-00326         
-00340         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a13">OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname);
-00341         
-00347         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a14">OnUserPreKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, std::string reason);
-00348 
-00353         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a15">OnUserKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, std::string reason);
-00354 
-00359         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a16">OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-00360         
-00369         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a17">OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-00370         
-00375         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a18">OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest);
-00376         
-00382         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a19">OnUserPreInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel);
-00383         
-00392         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a20">OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string &amp;text);
-00393 
-00405         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a21">OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string &amp;text);
-00406         
-00414         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a22">OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newnick);
-00415         
-00423         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a23">OnUserPostNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string oldnick);
-00424 
-00446         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a24">OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type);
-00447 
-00453         <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#a32">string_list</a> <a class="code" href="classModule.html#a25">OnUserSync</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-00454 
-00460         <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#a32">string_list</a> <a class="code" href="classModule.html#a26">OnChannelSync</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan);
-00461 
-00465         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a27">On005Numeric</a>(std::string &amp;output);
-00466 
-00476         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a28">OnKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, std::string reason);
-00477 
-00488         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a29">OnLoadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,std::string name);
-00489 
-00495         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a30">OnBackgroundTimer</a>(time_t curtime);
-00496 
-00504         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a31">OnSendList</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel, <span class="keywordtype">char</span> mode);
-00505 
-00516         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a32">OnPreCommand</a>(std::string command, <span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-00517 
-00526         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classModule.html#a33">OnCheckReady</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-00527 
-00535         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a34">OnUserRegister</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-00536 
-00542         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a35">OnRawMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keywordtype">char</span> mode, std::string param, <span class="keywordtype">bool</span> adding, <span class="keywordtype">int</span> pcnt);
-00543 
-00549         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a36">OnCheckInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
-00550 
-00557         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a37">OnCheckKey</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, std::string keygiven);
-00558 
-00564         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a38">OnCheckLimit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
-00565 
-00571         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a39">OnCheckBan</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
-00572 
-00576         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a40">OnStats</a>(<span class="keywordtype">char</span> symbol);
-00577 
-00581         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a41">OnChangeLocalUserHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newhost);
-00582 
-00586         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a42">OnChangeLocalUserGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newhost); 
-00587 
-00591         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a43">OnLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, std::string topic);
-00592 
-00603         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a44">OnMeshToken</a>(<span class="keywordtype">char</span> token,<a class="code" href="modules_8h.html#a32">string_list</a> params,<a class="code" href="classserverrec.html">serverrec</a>* source,<a class="code" href="classserverrec.html">serverrec</a>* reply, std::string tcp_host,std::string ipaddr,<span class="keywordtype">int</span> port);
-00604 
-00610         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a45">OnEvent</a>(<a class="code" href="classEvent.html">Event</a>* event);
-00611 
-00618         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModule.html#a46">OnRequest</a>(<a class="code" href="classRequest.html">Request</a>* request);
-00619 };
-00620 
-00621 
-<a name="l00627"></a><a class="code" href="classServer.html">00627</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-00628 {
-00629  <span class="keyword">public</span>:
-00633         <a class="code" href="classServer.html#a0">Server</a>();
-00637         <span class="keyword">virtual</span> <a class="code" href="classServer.html#a1">~Server</a>();
-00638 
-00642         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">SendOpers</a>(std::string s);
-00647         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Log</a>(<span class="keywordtype">int</span> level, std::string s);
-00652         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Send</a>(<span class="keywordtype">int</span> Socket, std::string s);
-00657         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">SendServ</a>(<span class="keywordtype">int</span> Socket, std::string s);
-00662         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, std::string s);
-00677         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, std::string s);
-00684         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, std::string s,<span class="keywordtype">bool</span> IncludeSender);
-00689         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a9">CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2);
-00697         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a10">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text,<span class="keywordtype">bool</span> IncludeSender);
-00702         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text);
-00703 
-00707         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">IsNick</a>(std::string nick);
-00711         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classServer.html#a13">CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c);
-00715         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a14">FindNick</a>(std::string nick);
-00719         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a15">FindChannel</a>(std::string channel);
-00724         <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a16">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
-00728         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a17">IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
-00731         <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a18">GetServerName</a>();
-00734         <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a19">GetNetworkName</a>();
-00740         <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a20">GetAdmin</a>();
-00759         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a21">AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off);
-00760 
-00782         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a22">AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar);
-00783 
-00801         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a23">AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source);
-00802          
-00824         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a24">SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-00825         
-00838         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a25">SendToModeMask</a>(std::string modes, <span class="keywordtype">int</span> flags, std::string text);
-00839 
-00845         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a26">JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string key);
-00846         
-00852         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a27">PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string reason);
-00853         
-00859         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a28">ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string nickname);
-00860         
-00871         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a29">QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string reason);
-00872         
-00877         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a30">MatchText</a>(std::string sliteral, std::string spattern);
+00134 <span class="comment">// Thanks to Rob (from anope) for the idea of this message passing API</span>
+00135 <span class="comment">// (its been done before, but this seemed a very neat and tidy way...</span>
+00136 
+<a name="l00141"></a><a class="code" href="classModuleMessage.html">00141</a> <span class="keyword">class </span><a class="code" href="classModuleMessage.html">ModuleMessage</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+00142 {
+00143  <span class="keyword">public</span>:
+00146         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModuleMessage.html#a0">Send</a>() = 0;
+00147 };
+00148 
+<a name="l00154"></a><a class="code" href="classRequest.html">00154</a> <span class="keyword">class </span><a class="code" href="classRequest.html">Request</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a>
+00155 {
+00156  <span class="keyword">protected</span>:
+<a name="l00159"></a><a class="code" href="classRequest.html#p0">00159</a>         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#p0">data</a>;
+<a name="l00163"></a><a class="code" href="classRequest.html#p1">00163</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#p1">source</a>;
+<a name="l00166"></a><a class="code" href="classRequest.html#p2">00166</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#p2">dest</a>;
+00167  <span class="keyword">public</span>:
+00170         <a class="code" href="classRequest.html#a0">Request</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="classModule.html">Module</a>* dst);
+00173         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#a1">GetData</a>();
+00176         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#a2">GetSource</a>();
+00179         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#a3">GetDest</a>();
+00185         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#a4">Send</a>();
+00186 };
+00187 
+00188 
+<a name="l00194"></a><a class="code" href="classEvent.html">00194</a> <span class="keyword">class </span><a class="code" href="classEvent.html">Event</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a>
+00195 {
+00196  <span class="keyword">protected</span>:
+<a name="l00199"></a><a class="code" href="classEvent.html#p0">00199</a>         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#p0">data</a>;
+<a name="l00203"></a><a class="code" href="classEvent.html#p1">00203</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#p1">source</a>;
+<a name="l00208"></a><a class="code" href="classEvent.html#p2">00208</a>         std::string <a class="code" href="classEvent.html#p2">id</a>;
+00209  <span class="keyword">public</span>:
+00212         <a class="code" href="classEvent.html#a0">Event</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, std::string eventid);
+00215         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#a1">GetData</a>();
+00218         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#a2">GetSource</a>();
+00222         std::string <a class="code" href="classEvent.html#a3">GetEventID</a>();
+00227         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#a4">Send</a>();
+00228 };
+00229 
+00230 
+<a name="l00236"></a><a class="code" href="classModule.html">00236</a> <span class="keyword">class </span><a class="code" href="classModule.html">Module</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+00237 {
+00238  <span class="keyword">public</span>:
+00239 
+00243         <a class="code" href="classModule.html#a0">Module</a>();
+00244 
+00248         <span class="keyword">virtual</span> <a class="code" href="classModule.html#a1">~Module</a>();
+00249 
+00254         <span class="keyword">virtual</span> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#a2">GetVersion</a>();
+00255 
+00259         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a3">OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00260 
+00266         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a4">OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00267 
+00273         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a5">OnUserDisconnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00274 
+00279         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a6">OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
+00280 
+00285         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a7">OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
+00286 
+00292         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a8">OnPacketTransmit</a>(std::string &amp;data, std::string serv);
+00293 
+00300         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a9">OnPacketReceive</a>(std::string &amp;data, std::string serv);
+00301 
+00307         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a10">OnRehash</a>();
+00308 
+00317         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a11">OnServerRaw</a>(std::string &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user);
+00318 
+00328         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a12">OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, <a class="code" href="modules_8h.html#a32">string_list</a> &amp;params);
+00329         
+00343         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a13">OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname);
+00344         
+00350         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a14">OnUserPreKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, std::string reason);
+00351 
+00356         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a15">OnUserKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, std::string reason);
+00357 
+00362         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a16">OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00363         
+00372         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a17">OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00373         
+00378         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a18">OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest);
+00379         
+00385         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a19">OnUserPreInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel);
+00386         
+00395         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a20">OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string &amp;text);
+00396 
+00408         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a21">OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string &amp;text);
+00409         
+00417         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a22">OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newnick);
+00418         
+00426         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a23">OnUserPostNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string oldnick);
+00427 
+00449         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a24">OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type);
+00450 
+00456         <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#a32">string_list</a> <a class="code" href="classModule.html#a25">OnUserSync</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00457 
+00463         <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#a32">string_list</a> <a class="code" href="classModule.html#a26">OnChannelSync</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan);
+00464 
+00468         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a27">On005Numeric</a>(std::string &amp;output);
+00469 
+00479         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a28">OnKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, std::string reason);
+00480 
+00491         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a29">OnLoadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,std::string name);
+00492 
+00498         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a30">OnBackgroundTimer</a>(time_t curtime);
+00499 
+00507         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a31">OnSendList</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel, <span class="keywordtype">char</span> mode);
+00508 
+00519         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a32">OnPreCommand</a>(std::string command, <span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
+00520 
+00529         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classModule.html#a33">OnCheckReady</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00530 
+00538         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a34">OnUserRegister</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00539 
+00545         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a35">OnRawMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keywordtype">char</span> mode, std::string param, <span class="keywordtype">bool</span> adding, <span class="keywordtype">int</span> pcnt);
+00546 
+00552         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a36">OnCheckInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
+00553 
+00560         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a37">OnCheckKey</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, std::string keygiven);
+00561 
+00567         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a38">OnCheckLimit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
+00568 
+00574         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a39">OnCheckBan</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
+00575 
+00579         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a40">OnStats</a>(<span class="keywordtype">char</span> symbol);
+00580 
+00584         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a41">OnChangeLocalUserHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newhost);
+00585 
+00589         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a42">OnChangeLocalUserGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newhost); 
+00590 
+00594         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a43">OnLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, std::string topic);
+00595 
+00606         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a44">OnMeshToken</a>(<span class="keywordtype">char</span> token,<a class="code" href="modules_8h.html#a32">string_list</a> params,<a class="code" href="classserverrec.html">serverrec</a>* source,<a class="code" href="classserverrec.html">serverrec</a>* reply, std::string tcp_host,std::string ipaddr,<span class="keywordtype">int</span> port);
+00607 
+00613         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a45">OnEvent</a>(<a class="code" href="classEvent.html">Event</a>* event);
+00614 
+00621         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModule.html#a46">OnRequest</a>(<a class="code" href="classRequest.html">Request</a>* request);
+00622 
+00629         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a47">OnOperCompare</a>(std::string password, std::string input);
+00630 
+00636         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a48">OnGlobalOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00637 
+00642         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a49">OnGlobalConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00643 
+00644 };
+00645 
+00646 
+<a name="l00652"></a><a class="code" href="classServer.html">00652</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+00653 {
+00654  <span class="keyword">public</span>:
+00658         <a class="code" href="classServer.html#a0">Server</a>();
+00662         <span class="keyword">virtual</span> <a class="code" href="classServer.html#a1">~Server</a>();
+00663 
+00667         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">SendOpers</a>(std::string s);
+00672         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Log</a>(<span class="keywordtype">int</span> level, std::string s);
+00677         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Send</a>(<span class="keywordtype">int</span> Socket, std::string s);
+00682         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">SendServ</a>(<span class="keywordtype">int</span> Socket, std::string s);
+00687         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, std::string s);
+00702         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, std::string s);
+00709         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, std::string s,<span class="keywordtype">bool</span> IncludeSender);
+00714         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a9">CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2);
+00722         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a10">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text,<span class="keywordtype">bool</span> IncludeSender);
+00727         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text);
+00728 
+00732         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">IsNick</a>(std::string nick);
+00736         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classServer.html#a13">CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c);
+00740         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a14">FindNick</a>(std::string nick);
+00744         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a15">FindChannel</a>(std::string channel);
+00749         <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a16">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
+00753         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a17">IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
+00756         <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a18">GetServerName</a>();
+00759         <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a19">GetNetworkName</a>();
+00765         <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a20">GetAdmin</a>();
+00784         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a21">AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off);
+00785 
+00807         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a22">AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar);
+00808 
+00826         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a23">AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source);
+00827          
+00849         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a24">SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
+00850         
+00863         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a25">SendToModeMask</a>(std::string modes, <span class="keywordtype">int</span> flags, std::string text);
+00864 
+00870         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a26">JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string key);
+00871         
+00877         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a27">PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string reason);
 00878         
-00890         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a31">CallCommandHandler</a>(std::string commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
-00891         
-00897         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a32">ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string host);
-00898         
-00904         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a33">ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string gecos);
-00905         
-00914         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a34">IsUlined</a>(std::string server);
-00915         
-00919         <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#a33">chanuserlist</a> <a class="code" href="classServer.html#a35">GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan);
-00920 
-00927         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a36">UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,std::string message);
-00928 
-00935         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a37">PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,std::string message);
-00936 
-00944         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a38">AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a75">duration</a>, std::string source, std::string reason, std::string hostmask);
+00884         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a28">ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string nickname);
+00885         
+00896         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a29">QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string reason);
+00897         
+00902         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a30">MatchText</a>(std::string sliteral, std::string spattern);
+00903         
+00915         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a31">CallCommandHandler</a>(std::string commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
+00916         
+00922         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a32">ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string host);
+00923         
+00929         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a33">ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string gecos);
+00930         
+00939         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a34">IsUlined</a>(std::string server);
+00940         
+00944         <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#a33">chanuserlist</a> <a class="code" href="classServer.html#a35">GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan);
 00945 
-00953         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a39">AddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a75">duration</a>, std::string source, std::string reason, std::string nickname);
-00954 
-00962         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a40">AddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a75">duration</a>, std::string source, std::string reason, std::string ipaddr);
-00963 
-00971         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a41">AddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a75">duration</a>, std::string source, std::string reason, std::string hostmask);
-00972 
-00980         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a42">AddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a75">duration</a>, std::string source, std::string reason, std::string hostmask);
-00981 
-00984         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a43">DelGLine</a>(std::string hostmask);
-00985 
-00988         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a44">DelQLine</a>(std::string nickname);
-00989 
-00992         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a45">DelZLine</a>(std::string ipaddr);
-00993 
-00996         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a46">DelKLine</a>(std::string hostmask);
+00952         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a36">UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,std::string message);
+00953 
+00960         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a37">PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,std::string message);
+00961 
+00969         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a38">AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a75">duration</a>, std::string source, std::string reason, std::string hostmask);
+00970 
+00978         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a39">AddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a75">duration</a>, std::string source, std::string reason, std::string nickname);
+00979 
+00987         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a40">AddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a75">duration</a>, std::string source, std::string reason, std::string ipaddr);
+00988 
+00996         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a41">AddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a75">duration</a>, std::string source, std::string reason, std::string hostmask);
 00997 
-01000         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a47">DelELine</a>(std::string hostmask);
-01001 
-01007         <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classServer.html#a48">CalcDuration</a>(std::string <a class="code" href="commands_8h.html#a75">duration</a>);
-01008 
-01011         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a49">IsValidMask</a>(std::string mask);
-01012 
-01017         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a50">MeshSendAll</a>(std::string text);
+01005         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a42">AddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a75">duration</a>, std::string source, std::string reason, std::string hostmask);
+01006 
+01009         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a43">DelGLine</a>(std::string hostmask);
+01010 
+01013         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a44">DelQLine</a>(std::string nickname);
+01014 
+01017         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a45">DelZLine</a>(std::string ipaddr);
 01018 
-01025         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a51">MeshSendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string text);
+01021         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a46">DelKLine</a>(std::string hostmask);
+01022 
+01025         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a47">DelELine</a>(std::string hostmask);
 01026 
-01029         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a52">MeshSendAllAlive</a>(std::string text);
-01030 
-01034         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a53">MeshSendUnicast</a>(std::string destination, std::string text);
-01035 
-01040         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a54">MeshSendAllExcept</a>(std::string target, std::string text);
-01041 
-01045         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a55">MeshCheckChan</a>(<a class="code" href="classchanrec.html">chanrec</a> *c,std::string servername);
-01046 
-01050         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a56">MeshCheckCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* u,std::string servername);
+01032         <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classServer.html#a48">CalcDuration</a>(std::string <a class="code" href="commands_8h.html#a75">duration</a>);
+01033 
+01036         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a49">IsValidMask</a>(std::string mask);
+01037 
+01042         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a50">MeshSendAll</a>(std::string text);
+01043 
+01050         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a51">MeshSendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string text);
 01051 
-01056         <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#a57">FindModule</a>(std::string name);
-01057 };
-01058 
-01059 
-<a name="l01060"></a><a class="code" href="modules_8h.html#a27">01060</a> <span class="preprocessor">#define CONF_NOT_A_NUMBER       0x000010</span>
-<a name="l01061"></a><a class="code" href="modules_8h.html#a28">01061</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_NOT_UNSIGNED       0x000080</span>
-<a name="l01062"></a><a class="code" href="modules_8h.html#a29">01062</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_VALUE_NOT_FOUND    0x000100</span>
-<a name="l01063"></a><a class="code" href="modules_8h.html#a30">01063</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_FILE_NOT_FOUND     0x000200</span>
-01064 <span class="preprocessor"></span>
-01065 
-<a name="l01072"></a><a class="code" href="classConfigReader.html">01072</a> <span class="keyword">class </span><a class="code" href="classConfigReader.html">ConfigReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-01073 {
-01074   <span class="keyword">protected</span>:
-<a name="l01080"></a><a class="code" href="classConfigReader.html#p0">01080</a>         std::stringstream *<a class="code" href="classConfigReader.html#p0">cache</a>;
-<a name="l01081"></a><a class="code" href="classConfigReader.html#p1">01081</a>         std::stringstream *<a class="code" href="classConfigReader.html#p1">errorlog</a>;
-<a name="l01084"></a><a class="code" href="classConfigReader.html#p2">01084</a>         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#p2">readerror</a>;
-<a name="l01085"></a><a class="code" href="classConfigReader.html#p3">01085</a>         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#p3">error</a>;
-01086         
-01087   <span class="keyword">public</span>:
-01092         <a class="code" href="classConfigReader.html#a0">ConfigReader</a>();                 <span class="comment">// default constructor reads ircd.conf</span>
-01096 <span class="comment"></span>        <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(std::string filename);     <span class="comment">// read a module-specific config</span>
-01100 <span class="comment"></span>        <a class="code" href="classConfigReader.html#a2">~ConfigReader</a>();
-01105         std::string <a class="code" href="classConfigReader.html#a3">ReadValue</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index);
-01111         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a4">ReadFlag</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index);
-01120         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#a5">ReadInteger</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned);
-01125         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#a6">GetError</a>();
-01132         <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a7">Enumerate</a>(std::string tag);
-01137         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a8">Verify</a>();
-01144         <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#a9">DumpErrors</a>(<span class="keywordtype">bool</span> bail,<a class="code" href="classuserrec.html">userrec</a>* user);
-01145 
-01151         <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a10">EnumerateValues</a>(std::string tag, <span class="keywordtype">int</span> index);
-01152 };
-01153 
-01154 
-01155 
-<a name="l01161"></a><a class="code" href="classFileReader.html">01161</a> <span class="keyword">class </span><a class="code" href="classFileReader.html">FileReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-01162 {
-<a name="l01163"></a><a class="code" href="classFileReader.html#r0">01163</a>  <a class="code" href="modules_8h.html#a31">file_cache</a> <a class="code" href="classFileReader.html#r0">fc</a>;
-01164  <span class="keyword">public</span>:
-01169          <a class="code" href="classFileReader.html#a0">FileReader</a>();
+01054         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a52">MeshSendAllAlive</a>(std::string text);
+01055 
+01059         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a53">MeshSendUnicast</a>(std::string destination, std::string text);
+01060 
+01065         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a54">MeshSendAllExcept</a>(std::string target, std::string text);
+01066 
+01070         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a55">MeshCheckChan</a>(<a class="code" href="classchanrec.html">chanrec</a> *c,std::string servername);
+01071 
+01075         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a56">MeshCheckCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* u,std::string servername);
+01076 
+01081         <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#a57">FindModule</a>(std::string name);
+01082 };
+01083 
+01084 
+<a name="l01085"></a><a class="code" href="modules_8h.html#a27">01085</a> <span class="preprocessor">#define CONF_NOT_A_NUMBER       0x000010</span>
+<a name="l01086"></a><a class="code" href="modules_8h.html#a28">01086</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_NOT_UNSIGNED       0x000080</span>
+<a name="l01087"></a><a class="code" href="modules_8h.html#a29">01087</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_VALUE_NOT_FOUND    0x000100</span>
+<a name="l01088"></a><a class="code" href="modules_8h.html#a30">01088</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_FILE_NOT_FOUND     0x000200</span>
+01089 <span class="preprocessor"></span>
+01090 
+<a name="l01097"></a><a class="code" href="classConfigReader.html">01097</a> <span class="keyword">class </span><a class="code" href="classConfigReader.html">ConfigReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+01098 {
+01099   <span class="keyword">protected</span>:
+<a name="l01105"></a><a class="code" href="classConfigReader.html#p0">01105</a>         std::stringstream *<a class="code" href="classConfigReader.html#p0">cache</a>;
+<a name="l01106"></a><a class="code" href="classConfigReader.html#p1">01106</a>         std::stringstream *<a class="code" href="classConfigReader.html#p1">errorlog</a>;
+<a name="l01109"></a><a class="code" href="classConfigReader.html#p2">01109</a>         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#p2">readerror</a>;
+<a name="l01110"></a><a class="code" href="classConfigReader.html#p3">01110</a>         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#p3">error</a>;
+01111         
+01112   <span class="keyword">public</span>:
+01117         <a class="code" href="classConfigReader.html#a0">ConfigReader</a>();                 <span class="comment">// default constructor reads ircd.conf</span>
+01121 <span class="comment"></span>        <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(std::string filename);     <span class="comment">// read a module-specific config</span>
+01125 <span class="comment"></span>        <a class="code" href="classConfigReader.html#a2">~ConfigReader</a>();
+01130         std::string <a class="code" href="classConfigReader.html#a3">ReadValue</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index);
+01136         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a4">ReadFlag</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index);
+01145         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#a5">ReadInteger</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned);
+01150         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#a6">GetError</a>();
+01157         <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a7">Enumerate</a>(std::string tag);
+01162         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a8">Verify</a>();
+01169         <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#a9">DumpErrors</a>(<span class="keywordtype">bool</span> bail,<a class="code" href="classuserrec.html">userrec</a>* user);
 01170 
-01176          <a class="code" href="classFileReader.html#a0">FileReader</a>(std::string filename);
-01177 
-01181          <a class="code" href="classFileReader.html#a2">~FileReader</a>();
-01182 
-01188          <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">LoadFile</a>(std::string filename);
-01189 
-01193          <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#a4">Exists</a>();
-01194          
-01199          std::string <a class="code" href="classFileReader.html#a5">GetLine</a>(<span class="keywordtype">int</span> x);
-01200 
-01206          <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a6">FileSize</a>();
-01207 };
-01208 
-01209 
-<a name="l01216"></a><a class="code" href="classModuleFactory.html">01216</a> <span class="keyword">class </span><a class="code" href="classModuleFactory.html">ModuleFactory</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-01217 {
-01218  <span class="keyword">public</span>:
-<a name="l01219"></a><a class="code" href="classModuleFactory.html#a0">01219</a>         <a class="code" href="classModuleFactory.html#a0">ModuleFactory</a>() { }
-<a name="l01220"></a><a class="code" href="classModuleFactory.html#a1">01220</a>         <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#a1">~ModuleFactory</a>() { }
-01225         <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#a2">CreateModule</a>() = 0;
-01226 };
-01227 
-01228 
-<a name="l01229"></a><a class="code" href="modules_8h.html#a34">01229</a> <span class="keyword">typedef</span> DLLFactory&lt;ModuleFactory&gt; <a class="code" href="modules_8h.html#a34">ircd_module</a>;
-01230 
-01231 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:56 2005 for InspIRCd by
+01176         <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a10">EnumerateValues</a>(std::string tag, <span class="keywordtype">int</span> index);
+01177 };
+01178 
+01179 
+01180 
+<a name="l01186"></a><a class="code" href="classFileReader.html">01186</a> <span class="keyword">class </span><a class="code" href="classFileReader.html">FileReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+01187 {
+<a name="l01188"></a><a class="code" href="classFileReader.html#r0">01188</a>  <a class="code" href="modules_8h.html#a31">file_cache</a> <a class="code" href="classFileReader.html#r0">fc</a>;
+01189  <span class="keyword">public</span>:
+01194          <a class="code" href="classFileReader.html#a0">FileReader</a>();
+01195 
+01201          <a class="code" href="classFileReader.html#a0">FileReader</a>(std::string filename);
+01202 
+01206          <a class="code" href="classFileReader.html#a2">~FileReader</a>();
+01207 
+01213          <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">LoadFile</a>(std::string filename);
+01214 
+01218          <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#a4">Exists</a>();
+01219          
+01224          std::string <a class="code" href="classFileReader.html#a5">GetLine</a>(<span class="keywordtype">int</span> x);
+01225 
+01231          <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a6">FileSize</a>();
+01232 };
+01233 
+01234 
+<a name="l01241"></a><a class="code" href="classModuleFactory.html">01241</a> <span class="keyword">class </span><a class="code" href="classModuleFactory.html">ModuleFactory</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+01242 {
+01243  <span class="keyword">public</span>:
+<a name="l01244"></a><a class="code" href="classModuleFactory.html#a0">01244</a>         <a class="code" href="classModuleFactory.html#a0">ModuleFactory</a>() { }
+<a name="l01245"></a><a class="code" href="classModuleFactory.html#a1">01245</a>         <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#a1">~ModuleFactory</a>() { }
+01250         <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#a2">CreateModule</a>() = 0;
+01251 };
+01252 
+01253 
+<a name="l01254"></a><a class="code" href="modules_8h.html#a34">01254</a> <span class="keyword">typedef</span> DLLFactory&lt;ModuleFactory&gt; <a class="code" href="modules_8h.html#a34">ircd_module</a>;
+01255 
+01256 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:44 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 5c8d5320e82189134f856e0e6f8258d6f9aa587d..68cb59620e5eebf9621f25cd70103fec8c1116b9 100644 (file)
@@ -95,7 +95,7 @@
 
 <tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="modules_8h.html#a23">VF_COMMON</a>&nbsp;&nbsp;&nbsp;8</td></tr>
 
-<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="modules_8h.html#a24">FOREACH_MOD</a>&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt;= <a class="el" href="modules_8cpp.html#a1">MODCOUNT</a>; i++) modules[i]-&gt;</td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="modules_8h.html#a24">FOREACH_MOD</a>&nbsp;&nbsp;&nbsp;for (int _i = 0; _i &lt;= <a class="el" href="modules_8cpp.html#a1">MODCOUNT</a>; _i++) modules[_i]-&gt;</td></tr>
 
 <tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="modules_8h.html#a25">FOREACH_RESULT</a>(x)</td></tr>
 
@@ -438,9 +438,9 @@ Definition at line <a class="el" href="modules_8h-source.html#l00038">38</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01063">1063</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01088">1088</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00833">ConfigReader::ConfigReader()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00835">ConfigReader::ConfigReader()</a>.    </td>
   </tr>
 </table>
 <a name="a27" doxytag="modules.h::CONF_NOT_A_NUMBER"></a><p>
@@ -464,9 +464,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00833">ConfigReader:
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01060">1060</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01085">1085</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00894">ConfigReader::ReadInteger()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00896">ConfigReader::ReadInteger()</a>.    </td>
   </tr>
 </table>
 <a name="a28" doxytag="modules.h::CONF_NOT_UNSIGNED"></a><p>
@@ -490,9 +490,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00894">ConfigReader:
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01061">1061</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01086">1086</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00894">ConfigReader::ReadInteger()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00896">ConfigReader::ReadInteger()</a>.    </td>
   </tr>
 </table>
 <a name="a29" doxytag="modules.h::CONF_VALUE_NOT_FOUND"></a><p>
@@ -516,9 +516,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00894">ConfigReader:
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01062">1062</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01087">1087</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00877">ConfigReader::ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00894">ConfigReader::ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00861">ConfigReader::ReadValue()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00879">ConfigReader::ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00896">ConfigReader::ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00863">ConfigReader::ReadValue()</a>.    </td>
   </tr>
 </table>
 <a name="a0" doxytag="modules.h::DEBUG"></a><p>
@@ -544,7 +544,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00877">ConfigReader:
 <p>
 Definition at line <a class="el" href="modules_8h-source.html#l00023">23</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00620">Server::AddExtendedMode()</a>, <a class="el" href="users_8cpp-source.html#l00114">userrec::HasPermission()</a>, <a class="el" href="channels_8cpp-source.html#l00180">chanrec::IsCustomModeSet()</a>, <a class="el" href="modules_8cpp-source.html#l00211">ModeDefined()</a>, <a class="el" href="modules_8cpp-source.html#l00237">ModeDefinedOper()</a>, <a class="el" href="modules_8cpp-source.html#l00224">ModeIsListMode()</a>, <a class="el" href="users_8cpp-source.html#l00092">userrec::RemoveInvite()</a>, <a class="el" href="channels_8cpp-source.html#l00124">chanrec::SetCustomMode()</a>, and <a class="el" href="channels_8cpp-source.html#l00149">chanrec::SetCustomModeParam()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00622">Server::AddExtendedMode()</a>, <a class="el" href="channels_8cpp-source.html#l00220">chanrec::AddUser()</a>, <a class="el" href="channels_8cpp-source.html#l00208">chanrec::DecUserCounter()</a>, <a class="el" href="channels_8cpp-source.html#l00226">chanrec::DelUser()</a>, <a class="el" href="users_8cpp-source.html#l00114">userrec::HasPermission()</a>, <a class="el" href="channels_8cpp-source.html#l00202">chanrec::IncUserCounter()</a>, <a class="el" href="channels_8cpp-source.html#l00181">chanrec::IsCustomModeSet()</a>, <a class="el" href="modules_8cpp-source.html#l00211">ModeDefined()</a>, <a class="el" href="modules_8cpp-source.html#l00237">ModeDefinedOper()</a>, <a class="el" href="modules_8cpp-source.html#l00224">ModeIsListMode()</a>, <a class="el" href="users_8cpp-source.html#l00092">userrec::RemoveInvite()</a>, <a class="el" href="channels_8cpp-source.html#l00125">chanrec::SetCustomMode()</a>, and <a class="el" href="channels_8cpp-source.html#l00150">chanrec::SetCustomModeParam()</a>.    </td>
   </tr>
 </table>
 <a name="a2" doxytag="modules.h::DEFAULT"></a><p>
@@ -594,7 +594,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00025">25</a> of
 <p>
 Definition at line <a class="el" href="modules_8h-source.html#l00099">99</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00654">Server::UserToPseudo()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00665">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00656">Server::UserToPseudo()</a>.    </td>
   </tr>
 </table>
 <a name="a24" doxytag="modules.h::FOREACH_MOD"></a><p>
@@ -603,7 +603,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00663">Server::Pseud
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> #define FOREACH_MOD&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt;= <a class="el" href="modules_8cpp.html#a1">MODCOUNT</a>; i++) modules[i]-&gt;
+          <td class="md" nowrap valign="top"> #define FOREACH_MOD&nbsp;&nbsp;&nbsp;for (int _i = 0; _i &lt;= <a class="el" href="modules_8cpp.html#a1">MODCOUNT</a>; _i++) modules[_i]-&gt;
       </table>
     </td>
   </tr>
@@ -648,8 +648,8 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00349">Event::Send()
 
 <p>
 <b>Value:</b><div class="fragment"><pre>{ MOD_RESULT = 0; \
-                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="modules_8cpp.html#a1">MODCOUNT</a>; i++) { \
-                        <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#a2">modules</a>[i]-&gt;x ; \
+                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> _i = 0; _i &lt;= <a class="code" href="modules_8cpp.html#a1">MODCOUNT</a>; _i++) { \
+                        <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#a2">modules</a>[_i]-&gt;x ; \
                         <span class="keywordflow">if</span> (res != 0) { \
                                 MOD_RESULT = res; \
                                 <span class="keywordflow">break</span>; \
@@ -684,7 +684,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00087">87</a> of
 <p>
 Definition at line <a class="el" href="modules_8h-source.html#l00031">31</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00640">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00287">ModeMakeList()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00642">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00287">ModeMakeList()</a>.    </td>
   </tr>
 </table>
 <a name="a6" doxytag="modules.h::MT_CLIENT"></a><p>
@@ -710,7 +710,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00640">Server::AddEx
 <p>
 Definition at line <a class="el" href="modules_8h-source.html#l00032">32</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00620">Server::AddExtendedMode()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00622">Server::AddExtendedMode()</a>.    </td>
   </tr>
 </table>
 <a name="a7" doxytag="modules.h::MT_SERVER"></a><p>
@@ -736,7 +736,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00620">Server::AddEx
 <p>
 Definition at line <a class="el" href="modules_8h-source.html#l00033">33</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00620">Server::AddExtendedMode()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00622">Server::AddExtendedMode()</a>.    </td>
   </tr>
 </table>
 <a name="a4" doxytag="modules.h::NONE"></a><p>
@@ -935,7 +935,7 @@ Holds a list of users in a channel.
 <p>
 Definition at line <a class="el" href="modules_8h-source.html#l00072">72</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00450">Server::GetUsers()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00452">Server::GetUsers()</a>.    </td>
   </tr>
 </table>
 <a name="a31" doxytag="modules.h::file_cache"></a><p>
@@ -963,7 +963,7 @@ Low level definition of a <a class="el" href="classFileReader.html">FileReader</
 <p>
 Definition at line <a class="el" href="modules_8h-source.html#l00067">67</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00979">FileReader::FileReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00990">FileReader::LoadFile()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00981">FileReader::FileReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00992">FileReader::LoadFile()</a>.    </td>
   </tr>
 </table>
 <a name="a34" doxytag="modules.h::ircd_module"></a><p>
@@ -987,7 +987,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00979">FileReader::F
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01229">1229</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l01254">1254</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a name="a32" doxytag="modules.h::string_list"></a><p>
@@ -1072,7 +1072,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00385">Module::OnCha
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00495">Server::AddCommand()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00497">Server::AddCommand()</a>.    </td>
   </tr>
 </table>
 <a name="a36" doxytag="modules.h::server_mode"></a><p>
@@ -1118,10 +1118,10 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00495">Server::AddCo
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00500">Server::SendMode()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00502">Server::SendMode()</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:59 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 8fdcf1610a47e2b5a63527b1d2ad42c6c7499cb9..534867ea7cb9e377650ad7d9b1bd2c89b5232cf2 100644 (file)
@@ -15,7 +15,7 @@
 <tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html">nspace.hash&lt; string &gt;</a></td></tr>
 
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index cc0f1f44ad671c852edea8b53fe923d129a7b0ec..2f246fd980021d5b3e306b816a016160a32970e6 100644 (file)
@@ -9,7 +9,7 @@
   <tr><td class="indexkey"><a class="el" href="namespacenspace.html">nspace</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="namespacestd.html">std</a></td><td class="indexvalue"></td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index bd2cb6d219db41a70bc451a84858a69cc1b0a0ab..ccdc6898f61dbf85f7c3f6e56a0485dc0aee2ece 100644 (file)
@@ -10,7 +10,7 @@
 <table border=0 cellpadding=0 cellspacing=0>
 <tr><td></td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 77ca68d38317f18c6b0ece2a1529d7efdb7c0e46..a5fa077c472868f670edc047972071ba65a853ba 100644 (file)
@@ -63,7 +63,7 @@
 00056         strlcpy(<a class="code" href="classserverrec.html#o9">nickserv</a>,<span class="stringliteral">""</span>,NICKMAX);
 00057 }
 00058 
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:56 2005 for InspIRCd by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:44 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 6d0638576da9ab9bd574cca9bc1ea31d91e946ee..0efa693190994592d9d43c395e6f1da6f2168d4c 100644 (file)
@@ -44,7 +44,7 @@
 Definition at line <a class="el" href="servers_8cpp-source.html#l00024">24</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:59 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 06f6fe5036ef60011a51e0fbfa71e3449155678a..2c1befe741d170c23c8274c35c70633726048110 100644 (file)
@@ -61,7 +61,7 @@
 00082 
 00083 <span class="preprocessor">#endif</span>
 00084 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:56 2005 for InspIRCd by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:44 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 9ef99c3e35f584cf8d7c4ea064f7e5357a0f100a..80556cb113823d330eb59b1942c1085a2ddb23d5 100644 (file)
@@ -72,7 +72,7 @@ Definition at line <a class="el" href="servers_8h-source.html#l00025">25</a> of
 Definition at line <a class="el" href="servers_8h-source.html#l00026">26</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:59 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index ffde1c22225254fb4eb8b7db5c5612152931b037..24f48167337199491f37d152883d49f8ef5f4368 100644 (file)
@@ -7,7 +7,7 @@
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>InAddr_HashComp Member List</h1>This is the complete list of members for <a class="el" href="structInAddr__HashComp.html">InAddr_HashComp</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="structInAddr__HashComp.html#a0">operator()</a>(const in_addr &amp;s1, const in_addr &amp;s2) const</td><td><a class="el" href="structInAddr__HashComp.html">InAddr_HashComp</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 74f550c280e86b87d1cacb7aa9cf782b099dd84c..b45ca83c3a844534a014eb5ed042b34b8d78995d 100644 (file)
@@ -65,7 +65,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00161">161</a>
 </table>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:03 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index f3666a1c3529b9419b5a5eeff5ac98e5babcc6d4..0c6279dfe728b72f5acd7be3306bf9640cd46d7c 100644 (file)
@@ -7,7 +7,7 @@
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>StrHashComp Member List</h1>This is the complete list of members for <a class="el" href="structStrHashComp.html">StrHashComp</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="structStrHashComp.html#a0">operator()</a>(const string &amp;s1, const string &amp;s2) const</td><td><a class="el" href="structStrHashComp.html">StrHashComp</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:11 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:51 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 96baff71569368f8705bb19bbd9a3571a3dd626a..1ea550cd7babd462fff9a88be6d4a8fb15d6dcf2 100644 (file)
@@ -64,7 +64,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00146">146</a>
 </table>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:11 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:51 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index a82af08e81e3b64e196324e305e389816abdca8d..2296bfd9997bdccacfffe0f65e5f70cb420bd4e3 100644 (file)
@@ -8,7 +8,7 @@
 <h1>dns_ip4list Member List</h1>This is the complete list of members for <a class="el" href="structdns__ip4list.html">dns_ip4list</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="structdns__ip4list.html#o0">ip</a></td><td><a class="el" href="structdns__ip4list.html">dns_ip4list</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structdns__ip4list.html#o1">next</a></td><td><a class="el" href="structdns__ip4list.html">dns_ip4list</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:02 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index b0db972145c762eb66085065eecde1c260155cb4..28b8f7177826048cc595a99d4ee1ea0442934388 100644 (file)
@@ -66,7 +66,7 @@ Definition at line <a class="el" href="dns_8h-source.html#l00028">28</a> of file
 </table>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="dns_8h-source.html">dns.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:02 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:48 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index c5879fc5fb076714dac4d74584ac9f8ef83d3a8a..77c30e7f7217f6cb99303e83e8cb52a6ba95b455 100644 (file)
@@ -7,7 +7,7 @@
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>nspace::hash&lt; in_addr &gt; Member List</h1>This is the complete list of members for <a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html">nspace::hash&lt; in_addr &gt;</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html#a0">operator()</a>(const struct in_addr &amp;a) const</td><td><a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html">nspace::hash&lt; in_addr &gt;</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 2da3718dde4eb799ca08ecc4899b045ec0fd44c8..2e34eaa3efd0d02c1a8af1d68824ccd5cd754fda 100644 (file)
@@ -55,7 +55,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00119">119</a>
 </table>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index feba7abc6dcfc75708594a49501d684506fe1065..fa3749c8ac16666561b235a62c436cb9ffe69c02 100644 (file)
@@ -7,7 +7,7 @@
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>nspace::hash&lt; string &gt; Member List</h1>This is the complete list of members for <a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html">nspace::hash&lt; string &gt;</a>, including all inherited members.<table>
   <tr class="memlist"><td><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html#a0">operator()</a>(const string &amp;s) const</td><td><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html">nspace::hash&lt; string &gt;</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+</table><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index fce23c8f209b369fe04928f1ba883b29f818df25..ab59de41f0482c9a9f19b9f8544118bd6e46bf0b 100644 (file)
@@ -57,7 +57,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00132">132</a>
 </table>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:13 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:52 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index dcba28e4f9a7b717001e34bb6c5834367710a19b..1d43fea60949f03a2a9e807b054519d07461aa14 100644 (file)
 <a name="l00114"></a><a class="code" href="classuserrec.html#a7">00114</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a7">userrec::HasPermission</a>(<span class="keywordtype">char</span>* command)
 00115 {
 00116         <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
-00117         <span class="keywordtype">char</span>* myclass;
-00118         <span class="keywordtype">char</span>* mycmd;
-00119         <span class="keywordtype">char</span>* savept;
-00120         <span class="keywordtype">char</span>* savept2;
-00121         
-00122         <span class="comment">// are they even an oper at all?</span>
-00123         <span class="keywordflow">if</span> (strchr(this-&gt;modes,<span class="charliteral">'o'</span>))
-00124         {
-00125                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: %s is an oper"</span>,this-&gt;nick);
-00126                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j &lt; ConfValueEnum(<span class="stringliteral">"type"</span>,&amp;<a class="code" href="channels_8cpp.html#a34">config_f</a>); j++)
-00127                 {
-00128                         ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&amp;<a class="code" href="channels_8cpp.html#a34">config_f</a>);
-00129                         <span class="keywordflow">if</span> (!strcmp(TypeName,this-&gt;oper))
-00130                         {
-00131                                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this-&gt;nick,this-&gt;oper);
-00132                                 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&amp;<a class="code" href="channels_8cpp.html#a34">config_f</a>);
-00133                                 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&amp;savept);
-00134                                 <span class="keywordflow">while</span> (myclass)
-00135                                 {
-00136                                         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
-00137                                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;<a class="code" href="channels_8cpp.html#a34">config_f</a>); k++)
-00138                                         {
-00139                                                 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;<a class="code" href="channels_8cpp.html#a34">config_f</a>);
-00140                                                 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
-00141                                                 {
-00142                                                         ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;<a class="code" href="channels_8cpp.html#a34">config_f</a>);
-00143                                                         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
+00117         <span class="keywordtype">char</span>* mycmd;
+00118         <span class="keywordtype">char</span>* savept;
+00119         <span class="keywordtype">char</span>* savept2;
+00120         
+00121         <span class="comment">// are they even an oper at all?</span>
+00122         <span class="keywordflow">if</span> (strchr(this-&gt;modes,<span class="charliteral">'o'</span>))
+00123         {
+00124                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: %s is an oper"</span>,this-&gt;nick);
+00125                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j &lt; ConfValueEnum(<span class="stringliteral">"type"</span>,&amp;<a class="code" href="channels_8cpp.html#a34">config_f</a>); j++)
+00126                 {
+00127                         ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&amp;<a class="code" href="channels_8cpp.html#a34">config_f</a>);
+00128                         <span class="keywordflow">if</span> (!strcmp(TypeName,this-&gt;oper))
+00129                         {
+00130                                 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this-&gt;nick,this-&gt;oper);
+00131                                 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&amp;<a class="code" href="channels_8cpp.html#a34">config_f</a>);
+00132                                 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&amp;savept);
+00133                                 <span class="keywordflow">while</span> (myclass)
+00134                                 {
+00135                                         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
+00136                                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;<a class="code" href="channels_8cpp.html#a34">config_f</a>); k++)
+00137                                         {
+00138                                                 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;<a class="code" href="channels_8cpp.html#a34">config_f</a>);
+00139                                                 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
+00140                                                 {
+00141                                                         ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;<a class="code" href="channels_8cpp.html#a34">config_f</a>);
+00142                                                         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
+00143                                                         
 00144                                                         
-00145                                                         
-00146                                                         mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
-00147                                                         <span class="keywordflow">while</span> (mycmd)
-00148                                                         {
-00149                                                                 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
-00150                                                                 {
-00151                                                                         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
-00152                                                                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00153                                                                 }
-00154                                                                 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
-00155                                                         }
-00156                                                 }
-00157                                         }
-00158                                         myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
-00159                                 }
-00160                         }
-00161                 }
-00162         }
-00163         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00164 }
+00145                                                         mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
+00146                                                         <span class="keywordflow">while</span> (mycmd)
+00147                                                         {
+00148                                                                 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
+00149                                                                 {
+00150                                                                         log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
+00151                                                                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00152                                                                 }
+00153                                                                 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
+00154                                                         }
+00155                                                 }
+00156                                         }
+00157                                         myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
+00158                                 }
+00159                         }
+00160                 }
+00161         }
+00162         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00163 }
+00164 
 00165 
-00166 
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:56 2005 for InspIRCd by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:44 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 83dbec46cd19e2cfe4b355db77d299c2d3665034..b39702ebef17c0e2fa27d9ee2df0a5ade83432b6 100644 (file)
@@ -70,7 +70,7 @@ Definition at line <a class="el" href="users_8cpp-source.html#l00024">24</a> of
 Definition at line <a class="el" href="users_8cpp-source.html#l00026">26</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:59 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index f09962a8bdd0729a06108a0787720eb376ecec72..3427aae77b5a6439f22c0a3a6791c1c98c25f9e7 100644 (file)
 00165 
 <a name="l00168"></a><a class="code" href="classuserrec.html#o13">00168</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#o13">pingmax</a>;
 00169 
-00170         <a class="code" href="classuserrec.html#a0">userrec</a>();
-00171         
-<a name="l00172"></a><a class="code" href="classuserrec.html#a1">00172</a>         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html#a1">~userrec</a>() {  }
-00173         
-00178         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a2">GetFullHost</a>();
+<a name="l00174"></a><a class="code" href="classuserrec.html#o14">00174</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#o14">password</a>[MAXBUF];
+00175 
+00176         <a class="code" href="classuserrec.html#a0">userrec</a>();
+00177         
+<a name="l00178"></a><a class="code" href="classuserrec.html#a1">00178</a>         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html#a1">~userrec</a>() {  }
 00179         
-00185         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a3">GetFullRealHost</a>();
-00186         
-00189         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a4">IsInvited</a>(<span class="keywordtype">char</span>* channel);
-00190         
-00193         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a5">InviteTo</a>(<span class="keywordtype">char</span>* channel);
-00194         
-00199         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a6">RemoveInvite</a>(<span class="keywordtype">char</span>* channel);
+00184         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a2">GetFullHost</a>();
+00185         
+00191         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a3">GetFullRealHost</a>();
+00192         
+00195         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a4">IsInvited</a>(<span class="keywordtype">char</span>* channel);
+00196         
+00199         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a5">InviteTo</a>(<span class="keywordtype">char</span>* channel);
 00200         
-00205         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a7">HasPermission</a>(<span class="keywordtype">char</span>* command);
+00205         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a6">RemoveInvite</a>(<span class="keywordtype">char</span>* channel);
 00206         
-00207 };
-00208 
-00209 
-00210 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:56 2005 for InspIRCd by
+00211         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a7">HasPermission</a>(<span class="keywordtype">char</span>* command);
+00212         
+00213 };
+00214 
+00215 
+00216 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:44 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 72821c061eba5af9bcc138fa2200337f6e7fda18..fd23fdc167b61b5aeaaf5e6aa32fe8dd7ac58b0d 100644 (file)
@@ -243,7 +243,7 @@ Holds a complete list of all channels to which a user has been invited and has n
 Definition at line <a class="el" href="users_8h-source.html#l00079">79</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:59 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 374fbd6317216b819d81685ba04ad62af8ff82e9..a1063db89448318d97023e957c39d376e8c19c9b 100644 (file)
 00157 <span class="keywordtype">void</span> <a class="code" href="xline_8h.html#a28">sync_xlines</a>(<a class="code" href="classserverrec.html">serverrec</a>* serv, <span class="keywordtype">char</span>* tcp_host);
 00158 
 00159 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:56 2005 for InspIRCd by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:44 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>
index 515e50d29a70142db299aa8a1f1b562ffdceb34f..4a903f2797f6fa8fb8e51b420a06bcf202c897b6 100644 (file)
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00713">Server::AddELine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00715">Server::AddELine()</a>.    </td>
   </tr>
 </table>
 <a name="a1" doxytag="xline.h::add_gline"></a><p>
@@ -197,7 +197,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00713">Server::AddEL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00693">Server::AddGLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00695">Server::AddGLine()</a>.    </td>
   </tr>
 </table>
 <a name="a4" doxytag="xline.h::add_kline"></a><p>
@@ -249,7 +249,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00693">Server::AddGL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00708">Server::AddKLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00710">Server::AddKLine()</a>.    </td>
   </tr>
 </table>
 <a name="a2" doxytag="xline.h::add_qline"></a><p>
@@ -301,7 +301,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00708">Server::AddKL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00698">Server::AddQLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00700">Server::AddQLine()</a>.    </td>
   </tr>
 </table>
 <a name="a3" doxytag="xline.h::add_zline"></a><p>
@@ -353,7 +353,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00698">Server::AddQL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00703">Server::AddZLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00705">Server::AddZLine()</a>.    </td>
   </tr>
 </table>
 <a name="a17" doxytag="xline.h::apply_lines"></a><p>
@@ -412,7 +412,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00703">Server::AddZL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00738">Server::DelELine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00740">Server::DelELine()</a>.    </td>
   </tr>
 </table>
 <a name="a6" doxytag="xline.h::del_gline"></a><p>
@@ -443,7 +443,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00738">Server::DelEL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00718">Server::DelGLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00720">Server::DelGLine()</a>.    </td>
   </tr>
 </table>
 <a name="a9" doxytag="xline.h::del_kline"></a><p>
@@ -474,7 +474,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00718">Server::DelGL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00733">Server::DelKLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00735">Server::DelKLine()</a>.    </td>
   </tr>
 </table>
 <a name="a7" doxytag="xline.h::del_qline"></a><p>
@@ -505,7 +505,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00733">Server::DelKL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00723">Server::DelQLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00725">Server::DelQLine()</a>.    </td>
   </tr>
 </table>
 <a name="a8" doxytag="xline.h::del_zline"></a><p>
@@ -536,7 +536,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00723">Server::DelQL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00728">Server::DelZLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00730">Server::DelZLine()</a>.    </td>
   </tr>
 </table>
 <a name="a16" doxytag="xline.h::expire_lines"></a><p>
@@ -1095,7 +1095,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00728">Server::DelZL
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:46:59 2005 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Tue Apr 26 17:11:46 2005 for InspIRCd by
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
 </a>1.3.3 </small></address>