summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/man/man3/ConfigReader.3270
-rw-r--r--docs/man/man3/FileReader.382
-rw-r--r--docs/man/man3/ModuleFactory.310
-rw-r--r--docs/man/man3/Server.3694
-rw-r--r--docs/man/man3/ServerConfig.3214
-rw-r--r--docs/man/man3/channels.cpp.32
-rw-r--r--docs/man/man3/inspircd_io.h.34
-rw-r--r--docs/man/man3/ircd_connector.3487
-rw-r--r--docs/man/man3/modules.cpp.32
-rw-r--r--docs/man/man3/modules.h.310
-rw-r--r--docs/man/man3/serverrec.3733
-rw-r--r--docs/man/man3/servers.cpp.3150
-rw-r--r--docs/man/man3/servers.h.346
-rw-r--r--docs/module-doc/annotated.html4
-rw-r--r--docs/module-doc/base_8h-source.html2
-rw-r--r--docs/module-doc/base_8h.html2
-rw-r--r--docs/module-doc/channels_8cpp-source.html2
-rw-r--r--docs/module-doc/channels_8cpp.html8
-rw-r--r--docs/module-doc/channels_8h-source.html2
-rw-r--r--docs/module-doc/channels_8h.html2
-rw-r--r--docs/module-doc/classAdmin-members.html2
-rw-r--r--docs/module-doc/classAdmin.html2
-rw-r--r--docs/module-doc/classBanItem-members.html2
-rw-r--r--docs/module-doc/classBanItem.html2
-rw-r--r--docs/module-doc/classBoolSet-members.html2
-rw-r--r--docs/module-doc/classBoolSet.html2
-rw-r--r--docs/module-doc/classConfigReader-members.html2
-rw-r--r--docs/module-doc/classConfigReader.html286
-rw-r--r--docs/module-doc/classConnectClass-members.html2
-rw-r--r--docs/module-doc/classConnectClass.html2
-rw-r--r--docs/module-doc/classDNS-members.html2
-rw-r--r--docs/module-doc/classDNS.html2
-rw-r--r--docs/module-doc/classELine-members.html2
-rw-r--r--docs/module-doc/classELine.html2
-rw-r--r--docs/module-doc/classEvent-members.html2
-rw-r--r--docs/module-doc/classEvent.html2
-rw-r--r--docs/module-doc/classExemptItem-members.html2
-rw-r--r--docs/module-doc/classExemptItem.html2
-rw-r--r--docs/module-doc/classExtMode-members.html2
-rw-r--r--docs/module-doc/classExtMode.html2
-rw-r--r--docs/module-doc/classExtensible-members.html2
-rw-r--r--docs/module-doc/classExtensible.html2
-rw-r--r--docs/module-doc/classFileReader-members.html2
-rw-r--r--docs/module-doc/classFileReader.html84
-rw-r--r--docs/module-doc/classGLine-members.html2
-rw-r--r--docs/module-doc/classGLine.html2
-rw-r--r--docs/module-doc/classHostItem-members.html2
-rw-r--r--docs/module-doc/classHostItem.html2
-rw-r--r--docs/module-doc/classInspSocket-members.html2
-rw-r--r--docs/module-doc/classInspSocket.html2
-rw-r--r--docs/module-doc/classInviteItem-members.html2
-rw-r--r--docs/module-doc/classInviteItem.html2
-rw-r--r--docs/module-doc/classInvited-members.html2
-rw-r--r--docs/module-doc/classInvited.html2
-rw-r--r--docs/module-doc/classKLine-members.html2
-rw-r--r--docs/module-doc/classKLine.html2
-rw-r--r--docs/module-doc/classModeParameter-members.html2
-rw-r--r--docs/module-doc/classModeParameter.html2
-rw-r--r--docs/module-doc/classModule-members.html2
-rw-r--r--docs/module-doc/classModule.html2
-rw-r--r--docs/module-doc/classModuleFactory-members.html2
-rw-r--r--docs/module-doc/classModuleFactory.html8
-rw-r--r--docs/module-doc/classModuleMessage-members.html2
-rw-r--r--docs/module-doc/classModuleMessage.html2
-rw-r--r--docs/module-doc/classQLine-members.html2
-rw-r--r--docs/module-doc/classQLine.html2
-rw-r--r--docs/module-doc/classRequest-members.html2
-rw-r--r--docs/module-doc/classRequest.html2
-rw-r--r--docs/module-doc/classServer-members.html3
-rw-r--r--docs/module-doc/classServer.html675
-rw-r--r--docs/module-doc/classServerConfig-members.html2
-rw-r--r--docs/module-doc/classServerConfig.html230
-rw-r--r--docs/module-doc/classSocketEngine-members.html2
-rw-r--r--docs/module-doc/classSocketEngine.html4
-rw-r--r--docs/module-doc/classVersion-members.html2
-rw-r--r--docs/module-doc/classVersion.html2
-rw-r--r--docs/module-doc/classWhoWasUser-members.html2
-rw-r--r--docs/module-doc/classWhoWasUser.html2
-rw-r--r--docs/module-doc/classXLine-members.html2
-rw-r--r--docs/module-doc/classXLine.html2
-rw-r--r--docs/module-doc/classZLine-members.html2
-rw-r--r--docs/module-doc/classZLine.html2
-rw-r--r--docs/module-doc/classchanrec-members.html2
-rw-r--r--docs/module-doc/classchanrec.html12
-rw-r--r--docs/module-doc/classclassbase-members.html2
-rw-r--r--docs/module-doc/classclassbase.html2
-rw-r--r--docs/module-doc/classcommand__t-members.html2
-rw-r--r--docs/module-doc/classcommand__t.html2
-rw-r--r--docs/module-doc/classconnection-members.html2
-rw-r--r--docs/module-doc/classconnection.html6
-rw-r--r--docs/module-doc/classes.html2
-rw-r--r--docs/module-doc/classircd__connector-members.html63
-rw-r--r--docs/module-doc/classircd__connector.html1542
-rw-r--r--docs/module-doc/classircd__connector__coll__graph.gifbin6239 -> 0 bytes
-rw-r--r--docs/module-doc/classircd__connector__inherit__graph.gifbin1306 -> 0 bytes
-rw-r--r--docs/module-doc/classserverrec-members.html59
-rw-r--r--docs/module-doc/classserverrec.html1447
-rw-r--r--docs/module-doc/classserverrec__coll__graph.gifbin7628 -> 0 bytes
-rw-r--r--docs/module-doc/classserverrec__inherit__graph.gifbin1503 -> 0 bytes
-rw-r--r--docs/module-doc/classstd_1_1char__traits.html2
-rw-r--r--docs/module-doc/classucrec-members.html2
-rw-r--r--docs/module-doc/classucrec.html2
-rw-r--r--docs/module-doc/classuserrec-members.html2
-rw-r--r--docs/module-doc/classuserrec.html14
-rw-r--r--docs/module-doc/commands_8h-source.html2
-rw-r--r--docs/module-doc/commands_8h.html6
-rw-r--r--docs/module-doc/connection_8h-source.html2
-rw-r--r--docs/module-doc/connection_8h.html2
-rw-r--r--docs/module-doc/ctables_8h-source.html2
-rw-r--r--docs/module-doc/ctables_8h.html2
-rw-r--r--docs/module-doc/dir_000000.html2
-rw-r--r--docs/module-doc/dir_000001.html2
-rw-r--r--docs/module-doc/dir_000002.html2
-rw-r--r--docs/module-doc/dir_000003.html2
-rw-r--r--docs/module-doc/dir_000004.html2
-rw-r--r--docs/module-doc/dir_000005.html2
-rw-r--r--docs/module-doc/dir_000005_000004.html2
-rw-r--r--docs/module-doc/dirs.html2
-rw-r--r--docs/module-doc/dns_8h-source.html2
-rw-r--r--docs/module-doc/dns_8h.html2
-rw-r--r--docs/module-doc/files.html2
-rw-r--r--docs/module-doc/functions.html2
-rw-r--r--docs/module-doc/functions_0x62.html2
-rw-r--r--docs/module-doc/functions_0x63.html2
-rw-r--r--docs/module-doc/functions_0x64.html2
-rw-r--r--docs/module-doc/functions_0x65.html2
-rw-r--r--docs/module-doc/functions_0x66.html2
-rw-r--r--docs/module-doc/functions_0x67.html5
-rw-r--r--docs/module-doc/functions_0x68.html2
-rw-r--r--docs/module-doc/functions_0x69.html2
-rw-r--r--docs/module-doc/functions_0x6a.html2
-rw-r--r--docs/module-doc/functions_0x6b.html2
-rw-r--r--docs/module-doc/functions_0x6c.html2
-rw-r--r--docs/module-doc/functions_0x6d.html2
-rw-r--r--docs/module-doc/functions_0x6e.html2
-rw-r--r--docs/module-doc/functions_0x6f.html2
-rw-r--r--docs/module-doc/functions_0x70.html2
-rw-r--r--docs/module-doc/functions_0x71.html2
-rw-r--r--docs/module-doc/functions_0x72.html8
-rw-r--r--docs/module-doc/functions_0x73.html8
-rw-r--r--docs/module-doc/functions_0x74.html8
-rw-r--r--docs/module-doc/functions_0x75.html2
-rw-r--r--docs/module-doc/functions_0x76.html2
-rw-r--r--docs/module-doc/functions_0x77.html2
-rw-r--r--docs/module-doc/functions_0x7e.html2
-rw-r--r--docs/module-doc/functions_func.html2
-rw-r--r--docs/module-doc/functions_func_0x62.html2
-rw-r--r--docs/module-doc/functions_func_0x63.html2
-rw-r--r--docs/module-doc/functions_func_0x64.html2
-rw-r--r--docs/module-doc/functions_func_0x65.html2
-rw-r--r--docs/module-doc/functions_func_0x66.html2
-rw-r--r--docs/module-doc/functions_func_0x67.html5
-rw-r--r--docs/module-doc/functions_func_0x68.html2
-rw-r--r--docs/module-doc/functions_func_0x69.html2
-rw-r--r--docs/module-doc/functions_func_0x6a.html2
-rw-r--r--docs/module-doc/functions_func_0x6c.html2
-rw-r--r--docs/module-doc/functions_func_0x6d.html2
-rw-r--r--docs/module-doc/functions_func_0x6e.html2
-rw-r--r--docs/module-doc/functions_func_0x6f.html2
-rw-r--r--docs/module-doc/functions_func_0x70.html2
-rw-r--r--docs/module-doc/functions_func_0x71.html2
-rw-r--r--docs/module-doc/functions_func_0x72.html2
-rw-r--r--docs/module-doc/functions_func_0x73.html2
-rw-r--r--docs/module-doc/functions_func_0x74.html2
-rw-r--r--docs/module-doc/functions_func_0x75.html2
-rw-r--r--docs/module-doc/functions_func_0x76.html2
-rw-r--r--docs/module-doc/functions_func_0x77.html2
-rw-r--r--docs/module-doc/functions_func_0x7e.html2
-rw-r--r--docs/module-doc/functions_vars.html8
-rw-r--r--docs/module-doc/globals.html2
-rw-r--r--docs/module-doc/globals_0x62.html2
-rw-r--r--docs/module-doc/globals_0x63.html2
-rw-r--r--docs/module-doc/globals_0x64.html2
-rw-r--r--docs/module-doc/globals_0x65.html2
-rw-r--r--docs/module-doc/globals_0x66.html2
-rw-r--r--docs/module-doc/globals_0x67.html2
-rw-r--r--docs/module-doc/globals_0x68.html2
-rw-r--r--docs/module-doc/globals_0x69.html2
-rw-r--r--docs/module-doc/globals_0x6c.html2
-rw-r--r--docs/module-doc/globals_0x6d.html2
-rw-r--r--docs/module-doc/globals_0x6e.html2
-rw-r--r--docs/module-doc/globals_0x6f.html2
-rw-r--r--docs/module-doc/globals_0x70.html2
-rw-r--r--docs/module-doc/globals_0x71.html2
-rw-r--r--docs/module-doc/globals_0x72.html2
-rw-r--r--docs/module-doc/globals_0x73.html2
-rw-r--r--docs/module-doc/globals_0x74.html2
-rw-r--r--docs/module-doc/globals_0x75.html2
-rw-r--r--docs/module-doc/globals_0x76.html2
-rw-r--r--docs/module-doc/globals_0x77.html2
-rw-r--r--docs/module-doc/globals_0x78.html2
-rw-r--r--docs/module-doc/globals_0x7a.html2
-rw-r--r--docs/module-doc/globals_defs.html2
-rw-r--r--docs/module-doc/globals_enum.html2
-rw-r--r--docs/module-doc/globals_eval.html2
-rw-r--r--docs/module-doc/globals_func.html2
-rw-r--r--docs/module-doc/globals_type.html2
-rw-r--r--docs/module-doc/globals_vars.html2
-rw-r--r--docs/module-doc/graph_legend.html2
-rw-r--r--docs/module-doc/hashcomp_8h-source.html2
-rw-r--r--docs/module-doc/hashcomp_8h.html2
-rw-r--r--docs/module-doc/hierarchy.html2
-rw-r--r--docs/module-doc/inherits.html2
-rw-r--r--docs/module-doc/inspircd__io_8h-source.html186
-rw-r--r--docs/module-doc/inspircd__io_8h.html8
-rw-r--r--docs/module-doc/main.html2
-rw-r--r--docs/module-doc/message_8h-source.html2
-rw-r--r--docs/module-doc/message_8h.html14
-rw-r--r--docs/module-doc/mode_8h-source.html2
-rw-r--r--docs/module-doc/mode_8h.html4
-rw-r--r--docs/module-doc/modules_8cpp-source.html923
-rw-r--r--docs/module-doc/modules_8cpp.html10
-rw-r--r--docs/module-doc/modules_8h-source.html298
-rw-r--r--docs/module-doc/modules_8h.html30
-rw-r--r--docs/module-doc/namespaceirc.html2
-rw-r--r--docs/module-doc/namespacemembers.html2
-rw-r--r--docs/module-doc/namespacemembers_type.html2
-rw-r--r--docs/module-doc/namespacenspace.html2
-rw-r--r--docs/module-doc/namespaces.html2
-rw-r--r--docs/module-doc/namespacestd.html2
-rw-r--r--docs/module-doc/servers_8cpp-source.html575
-rw-r--r--docs/module-doc/servers_8cpp.html290
-rw-r--r--docs/module-doc/servers_8cpp__incl.gifbin11979 -> 0 bytes
-rw-r--r--docs/module-doc/servers_8h-source.html87
-rw-r--r--docs/module-doc/servers_8h.html94
-rw-r--r--docs/module-doc/servers_8h__dep__incl.gifbin1726 -> 0 bytes
-rw-r--r--docs/module-doc/servers_8h__incl.gifbin2579 -> 0 bytes
-rw-r--r--docs/module-doc/socket_8cpp-source.html2
-rw-r--r--docs/module-doc/socket_8cpp.html2
-rw-r--r--docs/module-doc/socket_8h-source.html2
-rw-r--r--docs/module-doc/socket_8h.html2
-rw-r--r--docs/module-doc/socketengine_8cpp-source.html2
-rw-r--r--docs/module-doc/socketengine_8cpp.html2
-rw-r--r--docs/module-doc/socketengine_8h-source.html2
-rw-r--r--docs/module-doc/socketengine_8h.html2
-rw-r--r--docs/module-doc/structdns__ip4list-members.html2
-rw-r--r--docs/module-doc/structdns__ip4list.html2
-rw-r--r--docs/module-doc/structirc_1_1InAddr__HashComp-members.html2
-rw-r--r--docs/module-doc/structirc_1_1InAddr__HashComp.html2
-rw-r--r--docs/module-doc/structirc_1_1StrHashComp-members.html2
-rw-r--r--docs/module-doc/structirc_1_1StrHashComp.html2
-rw-r--r--docs/module-doc/structirc_1_1irc__char__traits-members.html2
-rw-r--r--docs/module-doc/structirc_1_1irc__char__traits.html2
-rw-r--r--docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4-members.html2
-rw-r--r--docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4.html2
-rw-r--r--docs/module-doc/structnspace_1_1hash_3_01string_01_4-members.html2
-rw-r--r--docs/module-doc/structnspace_1_1hash_3_01string_01_4.html2
-rw-r--r--docs/module-doc/typedefs_8h-source.html2
-rw-r--r--docs/module-doc/typedefs_8h.html2
-rw-r--r--docs/module-doc/userprocess_8h-source.html2
-rw-r--r--docs/module-doc/userprocess_8h.html2
-rw-r--r--docs/module-doc/users_8cpp-source.html2
-rw-r--r--docs/module-doc/users_8cpp.html2
-rw-r--r--docs/module-doc/users_8h-source.html2
-rw-r--r--docs/module-doc/users_8h.html2
-rw-r--r--docs/module-doc/xline_8h-source.html2
-rw-r--r--docs/module-doc/xline_8h.html22
257 files changed, 2467 insertions, 7673 deletions
diff --git a/docs/man/man3/ConfigReader.3 b/docs/man/man3/ConfigReader.3
index 009733cae..f0236bfe9 100644
--- a/docs/man/man3/ConfigReader.3
+++ b/docs/man/man3/ConfigReader.3
@@ -84,7 +84,7 @@ 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 1525 of file modules.h.
+Definition at line 1529 of file modules.h.
.SH "Constructor & Destructor Documentation"
.PP
.SS "ConfigReader::ConfigReader ()"
@@ -93,19 +93,19 @@ Default constructor.
.PP
This constructor initialises the ConfigReader class to read the inspircd.conf file as specified when running ./configure.
.PP
-Definition at line 734 of file modules.cpp.
+Definition at line 739 of file modules.cpp.
.PP
References cache, ServerConfig::ClearStack(), CONF_FILE_NOT_FOUND, error, errorlog, ServerConfig::LoadConf(), and readerror.
.PP
.nf
-735 {
-736 Config->ClearStack();
-737 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
-738 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
-739 this->readerror = Config->LoadConf(CONFIG_FILE,this->cache,this->errorlog);
-740 if (!this->readerror)
-741 this->error = CONF_FILE_NOT_FOUND;
-742 }
+740 {
+741 Config->ClearStack();
+742 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
+743 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
+744 this->readerror = Config->LoadConf(CONFIG_FILE,this->cache,this->errorlog);
+745 if (!this->readerror)
+746 this->error = CONF_FILE_NOT_FOUND;
+747 }
.fi
.PP
.SS "ConfigReader::ConfigReader (\fBstd::string\fP filename)"
@@ -114,19 +114,19 @@ Overloaded constructor.
.PP
This constructor initialises the ConfigReader class to read a user-specified config file
.PP
-Definition at line 754 of file modules.cpp.
+Definition at line 759 of file modules.cpp.
.PP
References cache, ServerConfig::ClearStack(), CONF_FILE_NOT_FOUND, error, errorlog, ServerConfig::LoadConf(), and readerror.
.PP
.nf
-755 {
-756 Config->ClearStack();
-757 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
-758 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
-759 this->readerror = Config->LoadConf(filename.c_str(),this->cache,this->errorlog);
-760 if (!this->readerror)
-761 this->error = CONF_FILE_NOT_FOUND;
-762 };
+760 {
+761 Config->ClearStack();
+762 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
+763 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
+764 this->readerror = Config->LoadConf(filename.c_str(),this->cache,this->errorlog);
+765 if (!this->readerror)
+766 this->error = CONF_FILE_NOT_FOUND;
+767 };
.fi
.PP
.SS "ConfigReader::~ConfigReader ()"
@@ -135,17 +135,17 @@ Default destructor.
.PP
This method destroys the ConfigReader class.
.PP
-Definition at line 745 of file modules.cpp.
+Definition at line 750 of file modules.cpp.
.PP
References cache, and errorlog.
.PP
.nf
-746 {
-747 if (this->cache)
-748 delete this->cache;
-749 if (this->errorlog)
-750 delete this->errorlog;
-751 }
+751 {
+752 if (this->cache)
+753 delete this->cache;
+754 if (this->errorlog)
+755 delete this->errorlog;
+756 }
.fi
.PP
.SH "Member Function Documentation"
@@ -156,41 +156,41 @@ Dumps the list of errors in a config file to an output location.
.PP
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.
.PP
-Definition at line 833 of file modules.cpp.
+Definition at line 838 of file modules.cpp.
.PP
References errorlog, connection::fd, and userrec::nick.
.PP
.nf
-834 {
-835 if (bail)
-836 {
-837 printf('There were errors in your configuration:\n%s',errorlog->str().c_str());
-838 exit(0);
-839 }
-840 else
+839 {
+840 if (bail)
841 {
-842 char dataline[1024];
-843 if (user)
-844 {
-845 WriteServ(user->fd,'NOTICE %s :There were errors in the configuration file:',user->nick);
-846 while (!errorlog->eof())
-847 {
-848 errorlog->getline(dataline,1024);
-849 WriteServ(user->fd,'NOTICE %s :%s',user->nick,dataline);
-850 }
-851 }
-852 else
-853 {
-854 WriteOpers('There were errors in the configuration file:',user->nick);
-855 while (!errorlog->eof())
-856 {
-857 errorlog->getline(dataline,1024);
-858 WriteOpers(dataline);
-859 }
-860 }
-861 return;
-862 }
-863 }
+842 printf('There were errors in your configuration:\n%s',errorlog->str().c_str());
+843 exit(0);
+844 }
+845 else
+846 {
+847 char dataline[1024];
+848 if (user)
+849 {
+850 WriteServ(user->fd,'NOTICE %s :There were errors in the configuration file:',user->nick);
+851 while (!errorlog->eof())
+852 {
+853 errorlog->getline(dataline,1024);
+854 WriteServ(user->fd,'NOTICE %s :%s',user->nick,dataline);
+855 }
+856 }
+857 else
+858 {
+859 WriteOpers('There were errors in the configuration file:',user->nick);
+860 while (!errorlog->eof())
+861 {
+862 errorlog->getline(dataline,1024);
+863 WriteOpers(dataline);
+864 }
+865 }
+866 return;
+867 }
+868 }
.fi
.PP
.SS "int ConfigReader::Enumerate (\fBstd::string\fP tag)"
@@ -199,14 +199,14 @@ Counts the number of times a given tag appears in the config file.
.PP
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.
.PP
-Definition at line 866 of file modules.cpp.
+Definition at line 871 of file modules.cpp.
.PP
References cache, and ServerConfig::EnumConf().
.PP
.nf
-867 {
-868 return Config->EnumConf(cache,tag.c_str());
-869 }
+872 {
+873 return Config->EnumConf(cache,tag.c_str());
+874 }
.fi
.PP
.SS "int ConfigReader::EnumerateValues (\fBstd::string\fP tag, int index)"
@@ -215,14 +215,14 @@ Returns the number of items within a tag.
.PP
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.
.PP
-Definition at line 871 of file modules.cpp.
+Definition at line 876 of file modules.cpp.
.PP
References cache, and ServerConfig::EnumValues().
.PP
.nf
-872 {
-873 return Config->EnumValues(cache, tag.c_str(), index);
-874 }
+877 {
+878 return Config->EnumValues(cache, tag.c_str(), index);
+879 }
.fi
.PP
.SS "long ConfigReader::GetError ()"
@@ -231,16 +231,16 @@ Returns the last error to occur.
.PP
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.
.PP
-Definition at line 826 of file modules.cpp.
+Definition at line 831 of file modules.cpp.
.PP
References error.
.PP
.nf
-827 {
-828 long olderr = this->error;
-829 this->error = 0;
-830 return olderr;
-831 }
+832 {
+833 long olderr = this->error;
+834 this->error = 0;
+835 return olderr;
+836 }
.fi
.PP
.SS "bool ConfigReader::ReadFlag (\fBstd::string\fP tag, \fBstd::string\fP name, int index)"
@@ -249,26 +249,26 @@ Retrieves a boolean value from the config file.
.PP
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.
.PP
-Definition at line 780 of file modules.cpp.
+Definition at line 785 of file modules.cpp.
.PP
References cache, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().
.PP
.nf
-781 {
-782 char val[MAXBUF];
-783 char t[MAXBUF];
-784 char n[MAXBUF];
-785 strlcpy(t,tag.c_str(),MAXBUF);
-786 strlcpy(n,name.c_str(),MAXBUF);
-787 int res = Config->ReadConf(cache,t,n,index,val);
-788 if (!res)
-789 {
-790 this->error = CONF_VALUE_NOT_FOUND;
-791 return false;
-792 }
-793 std::string s = val;
-794 return ((s == 'yes') || (s == 'YES') || (s == 'true') || (s == 'TRUE') || (s == '1'));
-795 }
+786 {
+787 char val[MAXBUF];
+788 char t[MAXBUF];
+789 char n[MAXBUF];
+790 strlcpy(t,tag.c_str(),MAXBUF);
+791 strlcpy(n,name.c_str(),MAXBUF);
+792 int res = Config->ReadConf(cache,t,n,index,val);
+793 if (!res)
+794 {
+795 this->error = CONF_VALUE_NOT_FOUND;
+796 return false;
+797 }
+798 std::string s = val;
+799 return ((s == 'yes') || (s == 'YES') || (s == 'true') || (s == 'TRUE') || (s == '1'));
+800 }
.fi
.PP
.SS "long ConfigReader::ReadInteger (\fBstd::string\fP tag, \fBstd::string\fP name, int index, bool needs_unsigned)"
@@ -277,38 +277,38 @@ Retrieves an integer value from the config file.
.PP
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_UNSIGNED
.PP
-Definition at line 797 of file modules.cpp.
+Definition at line 802 of file modules.cpp.
.PP
References cache, CONF_NOT_A_NUMBER, CONF_NOT_UNSIGNED, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().
.PP
.nf
-798 {
-799 char val[MAXBUF];
-800 char t[MAXBUF];
-801 char n[MAXBUF];
-802 strlcpy(t,tag.c_str(),MAXBUF);
-803 strlcpy(n,name.c_str(),MAXBUF);
-804 int res = Config->ReadConf(cache,t,n,index,val);
-805 if (!res)
-806 {
-807 this->error = CONF_VALUE_NOT_FOUND;
-808 return 0;
-809 }
-810 for (unsigned int i = 0; i < strlen(val); i++)
+803 {
+804 char val[MAXBUF];
+805 char t[MAXBUF];
+806 char n[MAXBUF];
+807 strlcpy(t,tag.c_str(),MAXBUF);
+808 strlcpy(n,name.c_str(),MAXBUF);
+809 int res = Config->ReadConf(cache,t,n,index,val);
+810 if (!res)
811 {
-812 if (!isdigit(val[i]))
-813 {
-814 this->error = CONF_NOT_A_NUMBER;
-815 return 0;
-816 }
-817 }
-818 if ((needs_unsigned) && (atoi(val)<0))
-819 {
-820 this->error = CONF_NOT_UNSIGNED;
-821 return 0;
+812 this->error = CONF_VALUE_NOT_FOUND;
+813 return 0;
+814 }
+815 for (unsigned int i = 0; i < strlen(val); i++)
+816 {
+817 if (!isdigit(val[i]))
+818 {
+819 this->error = CONF_NOT_A_NUMBER;
+820 return 0;
+821 }
822 }
-823 return atoi(val);
-824 }
+823 if ((needs_unsigned) && (atoi(val)<0))
+824 {
+825 this->error = CONF_NOT_UNSIGNED;
+826 return 0;
+827 }
+828 return atoi(val);
+829 }
.fi
.PP
.SS "\fBstd::string\fP ConfigReader::ReadValue (\fBstd::string\fP tag, \fBstd::string\fP name, int index)"
@@ -317,25 +317,25 @@ Retrieves a value from the config file.
.PP
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.
.PP
-Definition at line 764 of file modules.cpp.
+Definition at line 769 of file modules.cpp.
.PP
References cache, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().
.PP
.nf
-765 {
-766 char val[MAXBUF];
-767 char t[MAXBUF];
-768 char n[MAXBUF];
-769 strlcpy(t,tag.c_str(),MAXBUF);
-770 strlcpy(n,name.c_str(),MAXBUF);
-771 int res = Config->ReadConf(cache,t,n,index,val);
-772 if (!res)
-773 {
-774 this->error = CONF_VALUE_NOT_FOUND;
-775 return '';
-776 }
-777 return val;
-778 }
+770 {
+771 char val[MAXBUF];
+772 char t[MAXBUF];
+773 char n[MAXBUF];
+774 strlcpy(t,tag.c_str(),MAXBUF);
+775 strlcpy(n,name.c_str(),MAXBUF);
+776 int res = Config->ReadConf(cache,t,n,index,val);
+777 if (!res)
+778 {
+779 this->error = CONF_VALUE_NOT_FOUND;
+780 return '';
+781 }
+782 return val;
+783 }
.fi
.PP
.SS "bool ConfigReader::Verify ()"
@@ -344,14 +344,14 @@ Returns true if a config file is valid.
.PP
This method is partially implemented and will only return false if the config file does not exist or could not be opened.
.PP
-Definition at line 876 of file modules.cpp.
+Definition at line 881 of file modules.cpp.
.PP
References readerror.
.PP
.nf
-877 {
-878 return this->readerror;
-879 }
+882 {
+883 return this->readerror;
+884 }
.fi
.PP
.SH "Member Data Documentation"
@@ -362,24 +362,24 @@ The contents of the configuration file This protected member should never be acc
.PP
It will contain a pointer to the configuration file data with unneeded data (such as comments) stripped from it.
.PP
-Definition at line 1533 of file modules.h.
+Definition at line 1537 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 1538 of file modules.h.
+Definition at line 1542 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 1534 of file modules.h.
+Definition at line 1538 of file modules.h.
.PP
Referenced by ConfigReader(), DumpErrors(), and ~ConfigReader().
.SS "bool \fBConfigReader::readerror\fP\fC [protected]\fP"
.PP
Used to store errors.
.PP
-Definition at line 1537 of file modules.h.
+Definition at line 1541 of file modules.h.
.PP
Referenced by ConfigReader(), and Verify().
diff --git a/docs/man/man3/FileReader.3 b/docs/man/man3/FileReader.3
index 05fbaae25..f9688416d 100644
--- a/docs/man/man3/FileReader.3
+++ b/docs/man/man3/FileReader.3
@@ -57,7 +57,7 @@ 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 1614 of file modules.h.
+Definition at line 1618 of file modules.h.
.SH "Constructor & Destructor Documentation"
.PP
.SS "FileReader::FileReader ()"
@@ -66,11 +66,11 @@ Default constructor.
.PP
This method does not load any file into memory, you must use the LoadFile method after constructing the class this way.
.PP
-Definition at line 889 of file modules.cpp.
+Definition at line 894 of file modules.cpp.
.PP
.nf
-890 {
-891 }
+895 {
+896 }
.fi
.PP
.SS "FileReader::FileReader (\fBstd::string\fP filename)"
@@ -79,16 +79,16 @@ Secondary constructor.
.PP
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.
.PP
-Definition at line 882 of file modules.cpp.
+Definition at line 887 of file modules.cpp.
.PP
References fc.
.PP
.nf
-883 {
-884 file_cache c;
-885 readfile(c,filename.c_str());
-886 this->fc = c;
-887 }
+888 {
+889 file_cache c;
+890 readfile(c,filename.c_str());
+891 this->fc = c;
+892 }
.fi
.PP
.SS "FileReader::~FileReader ()"
@@ -97,11 +97,11 @@ Default destructor.
.PP
This deletes the memory allocated to the file.
.PP
-Definition at line 901 of file modules.cpp.
+Definition at line 906 of file modules.cpp.
.PP
.nf
-902 {
-903 }
+907 {
+908 }
.fi
.PP
.SH "Member Function Documentation"
@@ -110,21 +110,21 @@ Definition at line 901 of file modules.cpp.
.PP
Returns true if the file exists This function will return false if the file could not be opened.
.PP
-Definition at line 905 of file modules.cpp.
+Definition at line 910 of file modules.cpp.
.PP
References fc.
.PP
.nf
-906 {
-907 if (fc.size() == 0)
-908 {
-909 return(false);
-910 }
-911 else
-912 {
-913 return(true);
-914 }
-915 }
+911 {
+912 if (fc.size() == 0)
+913 {
+914 return(false);
+915 }
+916 else
+917 {
+918 return(true);
+919 }
+920 }
.fi
.PP
.SS "int FileReader::FileSize ()"
@@ -133,14 +133,14 @@ Returns the size of the file in lines.
.PP
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.
.PP
-Definition at line 924 of file modules.cpp.
+Definition at line 929 of file modules.cpp.
.PP
References fc.
.PP
.nf
-925 {
-926 return fc.size();
-927 }
+930 {
+931 return fc.size();
+932 }
.fi
.PP
.SS "\fBstd::string\fP FileReader::GetLine (int x)"
@@ -149,16 +149,16 @@ Retrieve one line from the file.
.PP
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.
.PP
-Definition at line 917 of file modules.cpp.
+Definition at line 922 of file modules.cpp.
.PP
References fc.
.PP
.nf
-918 {
-919 if ((x<0) || ((unsigned)x>fc.size()))
-920 return '';
-921 return fc[x];
-922 }
+923 {
+924 if ((x<0) || ((unsigned)x>fc.size()))
+925 return '';
+926 return fc[x];
+927 }
.fi
.PP
.SS "void FileReader::LoadFile (\fBstd::string\fP filename)"
@@ -167,23 +167,23 @@ Used to load a file.
.PP
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.
.PP
-Definition at line 893 of file modules.cpp.
+Definition at line 898 of file modules.cpp.
.PP
References fc.
.PP
.nf
-894 {
-895 file_cache c;
-896 readfile(c,filename.c_str());
-897 this->fc = c;
-898 }
+899 {
+900 file_cache c;
+901 readfile(c,filename.c_str());
+902 this->fc = c;
+903 }
.fi
.PP
.SH "Member Data Documentation"
.PP
.SS "\fBfile_cache\fP \fBFileReader::fc\fP\fC [private]\fP"
.PP
-Definition at line 1616 of file modules.h.
+Definition at line 1620 of file modules.h.
.PP
Referenced by Exists(), FileReader(), FileSize(), GetLine(), and LoadFile().
diff --git a/docs/man/man3/ModuleFactory.3 b/docs/man/man3/ModuleFactory.3
index c1964f216..476737145 100644
--- a/docs/man/man3/ModuleFactory.3
+++ b/docs/man/man3/ModuleFactory.3
@@ -32,23 +32,23 @@ 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 1669 of file modules.h.
+Definition at line 1673 of file modules.h.
.SH "Constructor & Destructor Documentation"
.PP
.SS "ModuleFactory::ModuleFactory ()\fC [inline]\fP"
.PP
-Definition at line 1672 of file modules.h.
+Definition at line 1676 of file modules.h.
.PP
.nf
-1672 { }
+1676 { }
.fi
.PP
.SS "virtual ModuleFactory::~ModuleFactory ()\fC [inline, virtual]\fP"
.PP
-Definition at line 1673 of file modules.h.
+Definition at line 1677 of file modules.h.
.PP
.nf
-1673 { }
+1677 { }
.fi
.PP
.SH "Member Function Documentation"
diff --git a/docs/man/man3/Server.3 b/docs/man/man3/Server.3
index 5ec1f020d..0584cb751 100644
--- a/docs/man/man3/Server.3
+++ b/docs/man/man3/Server.3
@@ -24,6 +24,10 @@ Inherits \fBclassbase\fP.
.br
.RI "\fIDefault destructor. \fP"
.ti -1c
+.RI "\fBServerConfig\fP * \fBGetConfig\fP ()"
+.br
+.RI "\fIObtains a pointer to the server's \fBServerConfig\fP object. \fP"
+.ti -1c
.RI "virtual void \fBSendOpers\fP (\fBstd::string\fP s)"
.br
.RI "\fISends text to all opers. \fP"
@@ -293,14 +297,14 @@ typedef void (handlerfunc) (char**, int, userrec*); ... void \fBhandle_kill(char
.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.
.PP
-Definition at line 414 of file modules.cpp.
+Definition at line 419 of file modules.cpp.
.PP
References createcommand().
.PP
.nf
-415 {
-416 createcommand(cmd,f,flags,minparams,source);
-417 }
+420 {
+421 createcommand(cmd,f,flags,minparams,source);
+422 }
.fi
.PP
.SS "void Server::AddELine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
@@ -309,14 +313,14 @@ Adds a E-line The E-line is enforced as soon as it is added.
.PP
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.
.PP
-Definition at line 658 of file modules.cpp.
+Definition at line 663 of file modules.cpp.
.PP
References add_eline().
.PP
.nf
-659 {
-660 add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-661 }
+664 {
+665 add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+666 }
.fi
.PP
.SS "bool Server::AddExtendedListMode (char modechar)\fC [virtual]\fP"
@@ -335,17 +339,17 @@ This call is used to implement modes like +q and +a. The characteristics of thes
.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.
.PP
-Definition at line 582 of file modules.cpp.
+Definition at line 587 of file modules.cpp.
.PP
References DoAddExtendedMode(), ModeMakeList(), and MT_CHANNEL.
.PP
.nf
-583 {
-584 bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1);
-585 if (res)
-586 ModeMakeList(modechar);
-587 return res;
-588 }
+588 {
+589 bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1);
+590 if (res)
+591 ModeMakeList(modechar);
+592 return res;
+593 }
.fi
.PP
.SS "bool Server::AddExtendedMode (char modechar, int type, bool requires_oper, int params_when_on, int params_when_off)\fC [virtual]\fP"
@@ -354,37 +358,37 @@ Adds an extended mode letter which is parsed by a module.
.PP
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.
.PP
-Definition at line 554 of file modules.cpp.
+Definition at line 559 of file modules.cpp.
.PP
References DEBUG, DoAddExtendedMode(), MT_CLIENT, and MT_SERVER.
.PP
.nf
-555 {
-556 if (((modechar >= 'A') && (modechar <= 'Z')) || ((modechar >= 'a') && (modechar <= 'z')))
-557 {
-558 if (type == MT_SERVER)
-559 {
-560 log(DEBUG,'*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion');
-561 return false;
-562 }
-563 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT))
+560 {
+561 if (((modechar >= 'A') && (modechar <= 'Z')) || ((modechar >= 'a') && (modechar <= 'z')))
+562 {
+563 if (type == MT_SERVER)
564 {
-565 log(DEBUG,'*** API ERROR *** Parameters on MT_CLIENT modes are not supported');
+565 log(DEBUG,'*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion');
566 return false;
567 }
-568 if ((params_when_on>1) || (params_when_off>1))
+568 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT))
569 {
-570 log(DEBUG,'*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported');
+570 log(DEBUG,'*** API ERROR *** Parameters on MT_CLIENT modes are not supported');
571 return false;
572 }
-573 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off);
-574 }
-575 else
-576 {
-577 log(DEBUG,'*** API ERROR *** Muppet modechar detected.');
-578 }
-579 return false;
-580 }
+573 if ((params_when_on>1) || (params_when_off>1))
+574 {
+575 log(DEBUG,'*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported');
+576 return false;
+577 }
+578 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off);
+579 }
+580 else
+581 {
+582 log(DEBUG,'*** API ERROR *** Muppet modechar detected.');
+583 }
+584 return false;
+585 }
.fi
.PP
.SS "void Server::AddGLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
@@ -393,14 +397,14 @@ Adds a G-line The G-line is propogated to all of the servers in the mesh and enf
.PP
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.
.PP
-Definition at line 638 of file modules.cpp.
+Definition at line 643 of file modules.cpp.
.PP
References add_gline().
.PP
.nf
-639 {
-640 add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-641 }
+644 {
+645 add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+646 }
.fi
.PP
.SS "void Server::AddKLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
@@ -409,14 +413,14 @@ Adds a K-line The K-line is enforced as soon as it is added.
.PP
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.
.PP
-Definition at line 653 of file modules.cpp.
+Definition at line 658 of file modules.cpp.
.PP
References add_kline().
.PP
.nf
-654 {
-655 add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-656 }
+659 {
+660 add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+661 }
.fi
.PP
.SS "void Server::AddQLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP nickname)\fC [virtual]\fP"
@@ -425,14 +429,14 @@ Adds a Q-line The Q-line is propogated to all of the servers in the mesh and enf
.PP
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.
.PP
-Definition at line 643 of file modules.cpp.
+Definition at line 648 of file modules.cpp.
.PP
References add_qline().
.PP
.nf
-644 {
-645 add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str());
-646 }
+649 {
+650 add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str());
+651 }
.fi
.PP
.SS "void Server::AddSocket (\fBInspSocket\fP * sock)\fC [virtual]\fP"
@@ -455,14 +459,14 @@ Adds a Z-line The Z-line is propogated to all of the servers in the mesh and enf
.PP
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.
.PP
-Definition at line 648 of file modules.cpp.
+Definition at line 653 of file modules.cpp.
.PP
References add_zline().
.PP
.nf
-649 {
-650 add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
-651 }
+654 {
+655 add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
+656 }
.fi
.PP
.SS "long Server::CalcDuration (\fBstd::string\fP duration)\fC [virtual]\fP"
@@ -471,14 +475,14 @@ Calculates a duration This method will take a string containing a formatted dura
.PP
'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.
.PP
-Definition at line 688 of file modules.cpp.
+Definition at line 693 of file modules.cpp.
.PP
References duration().
.PP
.nf
-689 {
-690 return duration(delta.c_str());
-691 }
+694 {
+695 return duration(delta.c_str());
+696 }
.fi
.PP
.SS "void Server::CallCommandHandler (\fBstd::string\fP commandname, char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
@@ -489,12 +493,12 @@ You can use this function to trigger other commands in the ircd, such as PRIVMSG
.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.
.PP
-Definition at line 399 of file modules.cpp.
+Definition at line 404 of file modules.cpp.
.PP
.nf
-400 {
-401 call_handler(commandname.c_str(),parameters,pcnt,user);
-402 }
+405 {
+406 call_handler(commandname.c_str(),parameters,pcnt,user);
+407 }
.fi
.PP
.SS "void Server::ChangeGECOS (\fBuserrec\fP * user, \fBstd::string\fP gecos)\fC [virtual]\fP"
@@ -503,14 +507,14 @@ Change GECOS (fullname) of a user.
.PP
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.
.PP
-Definition at line 497 of file modules.cpp.
+Definition at line 502 of file modules.cpp.
.PP
References ChangeName().
.PP
.nf
-498 {
-499 ChangeName(user,gecos.c_str());
-500 }
+503 {
+504 ChangeName(user,gecos.c_str());
+505 }
.fi
.PP
.SS "void Server::ChangeHost (\fBuserrec\fP * user, \fBstd::string\fP host)\fC [virtual]\fP"
@@ -519,14 +523,14 @@ Change displayed hostname of a user.
.PP
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.
.PP
-Definition at line 492 of file modules.cpp.
+Definition at line 497 of file modules.cpp.
.PP
References ChangeDisplayedHost().
.PP
.nf
-493 {
-494 ChangeDisplayedHost(user,host.c_str());
-495 }
+498 {
+499 ChangeDisplayedHost(user,host.c_str());
+500 }
.fi
.PP
.SS "void Server::ChangeUserNick (\fBuserrec\fP * user, \fBstd::string\fP nickname)\fC [virtual]\fP"
@@ -535,12 +539,12 @@ Forces a user nickchange.
.PP
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.
.PP
-Definition at line 384 of file modules.cpp.
+Definition at line 389 of file modules.cpp.
.PP
.nf
-385 {
-386 force_nickchange(user,nickname.c_str());
-387 }
+390 {
+391 force_nickchange(user,nickname.c_str());
+392 }
.fi
.PP
.SS "\fBstd::string\fP Server::ChanMode (\fBuserrec\fP * User, \fBchanrec\fP * Chan)\fC [virtual]\fP"
@@ -549,14 +553,14 @@ Attempts to look up a user's privilages on a channel.
.PP
This function will return a string containing either @, %, +, or an empty string, representing the user's privilages upon the channel you specify.
.PP
-Definition at line 522 of file modules.cpp.
+Definition at line 527 of file modules.cpp.
.PP
References cmode().
.PP
.nf
-523 {
-524 return cmode(User,Chan);
-525 }
+528 {
+529 return cmode(User,Chan);
+530 }
.fi
.PP
.SS "bool Server::CommonChannels (\fBuserrec\fP * u1, \fBuserrec\fP * u2)\fC [virtual]\fP"
@@ -565,14 +569,14 @@ Returns true if two users share a common channel.
.PP
This method is used internally by the NICK and QUIT commands, and the \fBServer::SendCommon\fP method.
.PP
-Definition at line 470 of file modules.cpp.
+Definition at line 475 of file modules.cpp.
.PP
References common_channels().
.PP
.nf
-471 {
-472 return (common_channels(u1,u2) != 0);
-473 }
+476 {
+477 return (common_channels(u1,u2) != 0);
+478 }
.fi
.PP
.SS "int Server::CountUsers (\fBchanrec\fP * c)\fC [virtual]\fP"
@@ -581,103 +585,103 @@ Returns a count of the number of users on a channel.
.PP
This will NEVER be 0, as if the chanrec exists, it will have at least one user in the channel.
.PP
-Definition at line 590 of file modules.cpp.
+Definition at line 595 of file modules.cpp.
.PP
.nf
-591 {
-592 return usercount(c);
-593 }
+596 {
+597 return usercount(c);
+598 }
.fi
.PP
.SS "bool Server::DelELine (\fBstd::string\fP hostmask)\fC [virtual]\fP"
.PP
Deletes a local E-Line.
.PP
-Definition at line 683 of file modules.cpp.
+Definition at line 688 of file modules.cpp.
.PP
References del_eline().
.PP
.nf
-684 {
-685 return del_eline(hostmask.c_str());
-686 }
+689 {
+690 return del_eline(hostmask.c_str());
+691 }
.fi
.PP
.SS "bool Server::DelGLine (\fBstd::string\fP hostmask)\fC [virtual]\fP"
.PP
Deletes a G-Line from all servers on the mesh.
.PP
-Definition at line 663 of file modules.cpp.
+Definition at line 668 of file modules.cpp.
.PP
References del_gline().
.PP
.nf
-664 {
-665 return del_gline(hostmask.c_str());
-666 }
+669 {
+670 return del_gline(hostmask.c_str());
+671 }
.fi
.PP
.SS "bool Server::DelKLine (\fBstd::string\fP hostmask)\fC [virtual]\fP"
.PP
Deletes a local K-Line.
.PP
-Definition at line 678 of file modules.cpp.
+Definition at line 683 of file modules.cpp.
.PP
References del_kline().
.PP
.nf
-679 {
-680 return del_kline(hostmask.c_str());
-681 }
+684 {
+685 return del_kline(hostmask.c_str());
+686 }
.fi
.PP
.SS "bool Server::DelQLine (\fBstd::string\fP nickname)\fC [virtual]\fP"
.PP
Deletes a Q-Line from all servers on the mesh.
.PP
-Definition at line 668 of file modules.cpp.
+Definition at line 673 of file modules.cpp.
.PP
References del_qline().
.PP
.nf
-669 {
-670 return del_qline(nickname.c_str());
-671 }
+674 {
+675 return del_qline(nickname.c_str());
+676 }
.fi
.PP
.SS "void Server::DelSocket (\fBInspSocket\fP * sock)\fC [virtual]\fP"
.PP
Deletes a class derived from \fBInspSocket\fP from the server's socket engine.
.PP
-Definition at line 332 of file modules.cpp.
+Definition at line 337 of file modules.cpp.
.PP
References module_sockets.
.PP
.nf
-333 {
-334 for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++)
-335 {
-336 if (*a == sock)
-337 {
-338 module_sockets.erase(a);
-339 return;
-340 }
-341 }
-342 }
+338 {
+339 for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++)
+340 {
+341 if (*a == sock)
+342 {
+343 module_sockets.erase(a);
+344 return;
+345 }
+346 }
+347 }
.fi
.PP
.SS "bool Server::DelZLine (\fBstd::string\fP ipaddr)\fC [virtual]\fP"
.PP
Deletes a Z-Line from all servers on the mesh.
.PP
-Definition at line 673 of file modules.cpp.
+Definition at line 678 of file modules.cpp.
.PP
References del_zline().
.PP
.nf
-674 {
-675 return del_zline(ipaddr.c_str());
-676 }
+679 {
+680 return del_zline(ipaddr.c_str());
+681 }
.fi
.PP
.SS "\fBchanrec\fP * Server::FindChannel (\fBstd::string\fP channel)\fC [virtual]\fP"
@@ -686,12 +690,12 @@ Attempts to look up a channel and return a pointer to it.
.PP
This function will return NULL if the channel does not exist.
.PP
-Definition at line 517 of file modules.cpp.
+Definition at line 522 of file modules.cpp.
.PP
.nf
-518 {
-519 return FindChan(channel.c_str());
-520 }
+523 {
+524 return FindChan(channel.c_str());
+525 }
.fi
.PP
.SS "\fBuserrec\fP * Server::FindDescriptor (int socket)\fC [virtual]\fP"
@@ -700,12 +704,12 @@ Attempts to look up a nick using the file descriptor associated with that nick.
.PP
This function will return NULL if the file descriptor is not associated with a valid user.
.PP
-Definition at line 512 of file modules.cpp.
+Definition at line 517 of file modules.cpp.
.PP
.nf
-513 {
-514 return (socket < 65536 ? fd_ref_table[socket] : NULL);
-515 }
+518 {
+519 return (socket < 65536 ? fd_ref_table[socket] : NULL);
+520 }
.fi
.PP
.SS "\fBModule\fP * Server::FindModule (\fBstd::string\fP name)\fC [virtual]\fP"
@@ -714,21 +718,21 @@ This function finds a module by name.
.PP
You must provide the filename of the module. If the module cannot be found (is not loaded) the function will return NULL.
.PP
-Definition at line 722 of file modules.cpp.
+Definition at line 727 of file modules.cpp.
.PP
References MODCOUNT, ServerConfig::module_names, and modules.
.PP
.nf
-723 {
-724 for (int i = 0; i <= MODCOUNT; i++)
-725 {
-726 if (Config->module_names[i] == name)
-727 {
-728 return modules[i];
-729 }
-730 }
-731 return NULL;
-732 }
+728 {
+729 for (int i = 0; i <= MODCOUNT; i++)
+730 {
+731 if (Config->module_names[i] == name)
+732 {
+733 return modules[i];
+734 }
+735 }
+736 return NULL;
+737 }
.fi
.PP
.SS "\fBuserrec\fP * Server::FindNick (\fBstd::string\fP nick)\fC [virtual]\fP"
@@ -737,12 +741,12 @@ Attempts to look up a nick and return a pointer to it.
.PP
This function will return NULL if the nick does not exist.
.PP
-Definition at line 507 of file modules.cpp.
+Definition at line 512 of file modules.cpp.
.PP
.nf
-508 {
-509 return Find(nick);
-510 }
+513 {
+514 return Find(nick);
+515 }
.fi
.PP
.SS "\fBAdmin\fP Server::GetAdmin ()\fC [virtual]\fP"
@@ -751,48 +755,62 @@ Returns the information of the server as returned by the /ADMIN command.
.PP
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.
.PP
-Definition at line 547 of file modules.cpp.
+Definition at line 552 of file modules.cpp.
.PP
.nf
-548 {
-549 return Admin(getadminname(),getadminemail(),getadminnick());
-550 }
+553 {
+554 return Admin(getadminname(),getadminemail(),getadminnick());
+555 }
+.fi
+.PP
+.SS "\fBServerConfig\fP * Server::GetConfig ()"
+.PP
+Obtains a pointer to the server's \fBServerConfig\fP object.
+.PP
+The \fBServerConfig\fP object contains most of the configuration data of the IRC server, as read from the config file by the core.
+.PP
+Definition at line 332 of file modules.cpp.
+.PP
+.nf
+333 {
+334 return Config;
+335 }
.fi
.PP
.SS "\fBstd::string\fP Server::GetNetworkName ()\fC [virtual]\fP"
.PP
Returns the network name, global to all linked servers.
.PP
-Definition at line 537 of file modules.cpp.
+Definition at line 542 of file modules.cpp.
.PP
.nf
-538 {
-539 return getnetworkname();
-540 }
+543 {
+544 return getnetworkname();
+545 }
.fi
.PP
.SS "\fBstd::string\fP Server::GetServerDescription ()\fC [virtual]\fP"
.PP
Returns the server description string of the local server.
.PP
-Definition at line 542 of file modules.cpp.
+Definition at line 547 of file modules.cpp.
.PP
.nf
-543 {
-544 return getserverdesc();
-545 }
+548 {
+549 return getserverdesc();
+550 }
.fi
.PP
.SS "\fBstd::string\fP Server::GetServerName ()\fC [virtual]\fP"
.PP
Returns the server name of the server where the module is loaded.
.PP
-Definition at line 532 of file modules.cpp.
+Definition at line 537 of file modules.cpp.
.PP
.nf
-533 {
-534 return getservername();
-535 }
+538 {
+539 return getservername();
+540 }
.fi
.PP
.SS "\fBchanuserlist\fP Server::GetUsers (\fBchanrec\fP * chan)\fC [virtual]\fP"
@@ -801,22 +819,22 @@ Fetches the userlist of a channel.
.PP
This function must be here and not a member of userrec or chanrec due to include constraints.
.PP
-Definition at line 372 of file modules.cpp.
+Definition at line 377 of file modules.cpp.
.PP
References chanrec::GetUsers().
.PP
.nf
-373 {
-374 chanuserlist userl;
-375 userl.clear();
-376 std::vector<char*> *list = chan->GetUsers();
-377 for (std::vector<char*>::iterator i = list->begin(); i != list->end(); i++)
-378 {
-379 char* o = *i;
-380 userl.push_back((userrec*)o);
-381 }
-382 return userl;
-383 }
+378 {
+379 chanuserlist userl;
+380 userl.clear();
+381 std::vector<char*> *list = chan->GetUsers();
+382 for (std::vector<char*>::iterator i = list->begin(); i != list->end(); i++)
+383 {
+384 char* o = *i;
+385 userl.push_back((userrec*)o);
+386 }
+387 return userl;
+388 }
.fi
.PP
.SS "bool Server::IsNick (\fBstd::string\fP nick)\fC [virtual]\fP"
@@ -825,14 +843,14 @@ Returns true if a nick is valid.
.PP
Nicks for unregistered connections will return false.
.PP
-Definition at line 502 of file modules.cpp.
+Definition at line 507 of file modules.cpp.
.PP
References isnick().
.PP
.nf
-503 {
-504 return (isnick(nick.c_str()) != 0);
-505 }
+508 {
+509 return (isnick(nick.c_str()) != 0);
+510 }
.fi
.PP
.SS "bool Server::IsOnChannel (\fBuserrec\fP * User, \fBchanrec\fP * Chan)\fC [virtual]\fP"
@@ -841,14 +859,14 @@ Checks if a user is on a channel.
.PP
This function will return true or false to indicate if user 'User' is on channel 'Chan'.
.PP
-Definition at line 527 of file modules.cpp.
+Definition at line 532 of file modules.cpp.
.PP
References has_channel().
.PP
.nf
-528 {
-529 return has_channel(User,Chan);
-530 }
+533 {
+534 return has_channel(User,Chan);
+535 }
.fi
.PP
.SS "bool Server::IsUlined (\fBstd::string\fP server)\fC [virtual]\fP"
@@ -857,60 +875,60 @@ Returns true if the servername you give is ulined.
.PP
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.
.PP
-Definition at line 394 of file modules.cpp.
+Definition at line 399 of file modules.cpp.
.PP
References is_uline().
.PP
.nf
-395 {
-396 return is_uline(server.c_str());
-397 }
+400 {
+401 return is_uline(server.c_str());
+402 }
.fi
.PP
.SS "bool Server::IsValidMask (\fBstd::string\fP mask)\fC [virtual]\fP"
.PP
Returns true if a nick!ident string is correctly formatted, false if otherwise.
.PP
-Definition at line 693 of file modules.cpp.
+Definition at line 698 of file modules.cpp.
.PP
.nf
-694 {
-695 const char* dest = mask.c_str();
-696 if (strchr(dest,'!')==0)
-697 return false;
-698 if (strchr(dest,'@')==0)
-699 return false;
-700 for (unsigned int i = 0; i < strlen(dest); i++)
-701 if (dest[i] < 32)
-702 return false;
-703 for (unsigned int i = 0; i < strlen(dest); i++)
-704 if (dest[i] > 126)
-705 return false;
-706 unsigned int c = 0;
-707 for (unsigned int i = 0; i < strlen(dest); i++)
-708 if (dest[i] == '!')
-709 c++;
-710 if (c>1)
-711 return false;
-712 c = 0;
-713 for (unsigned int i = 0; i < strlen(dest); i++)
-714 if (dest[i] == '@')
-715 c++;
-716 if (c>1)
-717 return false;
-718
-719 return true;
-720 }
+699 {
+700 const char* dest = mask.c_str();
+701 if (strchr(dest,'!')==0)
+702 return false;
+703 if (strchr(dest,'@')==0)
+704 return false;
+705 for (unsigned int i = 0; i < strlen(dest); i++)
+706 if (dest[i] < 32)
+707 return false;
+708 for (unsigned int i = 0; i < strlen(dest); i++)
+709 if (dest[i] > 126)
+710 return false;
+711 unsigned int c = 0;
+712 for (unsigned int i = 0; i < strlen(dest); i++)
+713 if (dest[i] == '!')
+714 c++;
+715 if (c>1)
+716 return false;
+717 c = 0;
+718 for (unsigned int i = 0; i < strlen(dest); i++)
+719 if (dest[i] == '@')
+720 c++;
+721 if (c>1)
+722 return false;
+723
+724 return true;
+725 }
.fi
.PP
.SS "bool Server::IsValidModuleCommand (\fBstd::string\fP commandname, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
.PP
-Definition at line 404 of file modules.cpp.
+Definition at line 409 of file modules.cpp.
.PP
.nf
-405 {
-406 return is_valid_cmd(commandname.c_str(), pcnt, user);
-407 }
+410 {
+411 return is_valid_cmd(commandname.c_str(), pcnt, user);
+412 }
.fi
.PP
.SS "\fBchanrec\fP * Server::JoinUserToChannel (\fBuserrec\fP * user, \fBstd::string\fP cname, \fBstd::string\fP key)\fC [virtual]\fP"
@@ -919,12 +937,12 @@ Forces a user to join a channel.
.PP
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.
.PP
-Definition at line 362 of file modules.cpp.
+Definition at line 367 of file modules.cpp.
.PP
.nf
-363 {
-364 return add_channel(user,cname.c_str(),key.c_str(),false);
-365 }
+368 {
+369 return add_channel(user,cname.c_str(),key.c_str(),false);
+370 }
.fi
.PP
.SS "void Server::Log (int level, \fBstd::string\fP s)\fC [virtual]\fP"
@@ -933,12 +951,12 @@ Writes a log string.
.PP
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.
.PP
-Definition at line 409 of file modules.cpp.
+Definition at line 414 of file modules.cpp.
.PP
.nf
-410 {
-411 log(level,'%s',s.c_str());
-412 }
+415 {
+416 log(level,'%s',s.c_str());
+417 }
.fi
.PP
.SS "bool Server::MatchText (\fBstd::string\fP sliteral, \fBstd::string\fP spattern)\fC [virtual]\fP"
@@ -947,15 +965,15 @@ Matches text against a glob pattern.
.PP
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.
.PP
-Definition at line 349 of file modules.cpp.
+Definition at line 354 of file modules.cpp.
.PP
.nf
-350 {
-351 char literal[MAXBUF],pattern[MAXBUF];
-352 strlcpy(literal,sliteral.c_str(),MAXBUF);
-353 strlcpy(pattern,spattern.c_str(),MAXBUF);
-354 return match(literal,pattern);
-355 }
+355 {
+356 char literal[MAXBUF],pattern[MAXBUF];
+357 strlcpy(literal,sliteral.c_str(),MAXBUF);
+358 strlcpy(pattern,spattern.c_str(),MAXBUF);
+359 return match(literal,pattern);
+360 }
.fi
.PP
.SS "\fBchanrec\fP * Server::PartUserFromChannel (\fBuserrec\fP * user, \fBstd::string\fP cname, \fBstd::string\fP reason)\fC [virtual]\fP"
@@ -964,12 +982,12 @@ Forces a user to part a channel.
.PP
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.
.PP
-Definition at line 367 of file modules.cpp.
+Definition at line 372 of file modules.cpp.
.PP
.nf
-368 {
-369 return del_channel(user,cname.c_str(),reason.c_str(),false);
-370 }
+373 {
+374 return del_channel(user,cname.c_str(),reason.c_str(),false);
+375 }
.fi
.PP
.SS "bool Server::PseudoToUser (\fBuserrec\fP * alive, \fBuserrec\fP * zombie, \fBstd::string\fP message)\fC [virtual]\fP"
@@ -978,39 +996,39 @@ This user takes one user, and switches their file descriptor with another user,
.PP
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.
.PP
-Definition at line 608 of file modules.cpp.
+Definition at line 613 of file modules.cpp.
.PP
References userrec::chans, userrec::ClearBuffer(), connection::fd, FD_MAGIC_NUMBER, connection::host, userrec::ident, chanrec::name, userrec::nick, chanrec::setby, chanrec::topic, and chanrec::topicset.
.PP
.nf
-609 {
-610 zombie->fd = alive->fd;
-611 alive->fd = FD_MAGIC_NUMBER;
-612 alive->ClearBuffer();
-613 Write(zombie->fd,':%s!%s@%s NICK %s',alive->nick,alive->ident,alive->host,zombie->nick);
-614 kill_link(alive,message.c_str());
-615 fd_ref_table[zombie->fd] = zombie;
-616 for (unsigned int i = 0; i < zombie->chans.size(); i++)
-617 {
-618 if (zombie->chans[i].channel != NULL)
-619 {
-620 if (zombie->chans[i].channel->name)
-621 {
-622 chanrec* Ptr = zombie->chans[i].channel;
-623 WriteFrom(zombie->fd,zombie,'JOIN %s',Ptr->name);
-624 if (Ptr->topicset)
-625 {
-626 WriteServ(zombie->fd,'332 %s %s :%s', zombie->nick, Ptr->name, Ptr->topic);
-627 WriteServ(zombie->fd,'333 %s %s %s %d', zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset);
-628 }
-629 userlist(zombie,Ptr);
-630 WriteServ(zombie->fd,'366 %s %s :End of /NAMES list.', zombie->nick, Ptr->name);
-631
-632 }
-633 }
-634 }
-635 return true;
-636 }
+614 {
+615 zombie->fd = alive->fd;
+616 alive->fd = FD_MAGIC_NUMBER;
+617 alive->ClearBuffer();
+618 Write(zombie->fd,':%s!%s@%s NICK %s',alive->nick,alive->ident,alive->host,zombie->nick);
+619 kill_link(alive,message.c_str());
+620 fd_ref_table[zombie->fd] = zombie;
+621 for (unsigned int i = 0; i < zombie->chans.size(); i++)
+622 {
+623 if (zombie->chans[i].channel != NULL)
+624 {
+625 if (zombie->chans[i].channel->name)
+626 {
+627 chanrec* Ptr = zombie->chans[i].channel;
+628 WriteFrom(zombie->fd,zombie,'JOIN %s',Ptr->name);
+629 if (Ptr->topicset)
+630 {
+631 WriteServ(zombie->fd,'332 %s %s :%s', zombie->nick, Ptr->name, Ptr->topic);
+632 WriteServ(zombie->fd,'333 %s %s %s %d', zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset);
+633 }
+634 userlist(zombie,Ptr);
+635 WriteServ(zombie->fd,'366 %s %s :End of /NAMES list.', zombie->nick, Ptr->name);
+636
+637 }
+638 }
+639 }
+640 return true;
+641 }
.fi
.PP
.SS "void Server::QuitUser (\fBuserrec\fP * user, \fBstd::string\fP reason)\fC [virtual]\fP"
@@ -1023,12 +1041,12 @@ 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.
.PP
-Definition at line 389 of file modules.cpp.
+Definition at line 394 of file modules.cpp.
.PP
.nf
-390 {
-391 kill_link(user,reason.c_str());
-392 }
+395 {
+396 kill_link(user,reason.c_str());
+397 }
.fi
.PP
.SS "void Server::RehashServer ()\fC [virtual]\fP"
@@ -1050,12 +1068,12 @@ Sends a line of text down a TCP/IP socket.
.PP
This method writes a line of text to an established socket, cutting it to 510 characters plus a carriage return and linefeed if required.
.PP
-Definition at line 424 of file modules.cpp.
+Definition at line 429 of file modules.cpp.
.PP
.nf
-425 {
-426 Write(Socket,'%s',s.c_str());
-427 }
+430 {
+431 Write(Socket,'%s',s.c_str());
+432 }
.fi
.PP
.SS "void Server::SendChannel (\fBuserrec\fP * User, \fBchanrec\fP * Channel, \fBstd::string\fP s, bool IncludeSender)\fC [virtual]\fP"
@@ -1064,19 +1082,19 @@ Sends text from a user to a channel (mulicast).
.PP
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).
.PP
-Definition at line 458 of file modules.cpp.
+Definition at line 463 of file modules.cpp.
.PP
.nf
-459 {
-460 if (IncludeSender)
-461 {
-462 WriteChannel(Channel,User,'%s',s.c_str());
-463 }
-464 else
-465 {
-466 ChanExceptSender(Channel,User,'%s',s.c_str());
-467 }
-468 }
+464 {
+465 if (IncludeSender)
+466 {
+467 WriteChannel(Channel,User,'%s',s.c_str());
+468 }
+469 else
+470 {
+471 ChanExceptSender(Channel,User,'%s',s.c_str());
+472 }
+473 }
.fi
.PP
.SS "void Server::SendChannelServerNotice (\fBstd::string\fP ServName, \fBchanrec\fP * Channel, \fBstd::string\fP text)\fC [virtual]\fP"
@@ -1085,12 +1103,12 @@ Writes text to a channel, but from a server, including all.
.PP
This can be used to send server notices to a group of users.
.PP
-Definition at line 453 of file modules.cpp.
+Definition at line 458 of file modules.cpp.
.PP
.nf
-454 {
-455 WriteChannelWithServ((char*)ServName.c_str(), Channel, '%s', text.c_str());
-456 }
+459 {
+460 WriteChannelWithServ((char*)ServName.c_str(), Channel, '%s', text.c_str());
+461 }
.fi
.PP
.SS "void Server::SendCommon (\fBuserrec\fP * User, \fBstd::string\fP text, bool IncludeSender)\fC [virtual]\fP"
@@ -1099,19 +1117,19 @@ Sends text from a user to one or more channels (mulicast).
.PP
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.
.PP
-Definition at line 475 of file modules.cpp.
+Definition at line 480 of file modules.cpp.
.PP
.nf
-476 {
-477 if (IncludeSender)
-478 {
-479 WriteCommon(User,'%s',text.c_str());
-480 }
-481 else
-482 {
-483 WriteCommonExcept(User,'%s',text.c_str());
-484 }
-485 }
+481 {
+482 if (IncludeSender)
+483 {
+484 WriteCommon(User,'%s',text.c_str());
+485 }
+486 else
+487 {
+488 WriteCommonExcept(User,'%s',text.c_str());
+489 }
+490 }
.fi
.PP
.SS "void Server::SendFrom (int Socket, \fBuserrec\fP * User, \fBstd::string\fP s)\fC [virtual]\fP"
@@ -1120,12 +1138,12 @@ Sends text from a user to a socket.
.PP
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)
.PP
-Definition at line 434 of file modules.cpp.
+Definition at line 439 of file modules.cpp.
.PP
.nf
-435 {
-436 WriteFrom(Socket,User,'%s',s.c_str());
-437 }
+440 {
+441 WriteFrom(Socket,User,'%s',s.c_str());
+442 }
.fi
.PP
.SS "void Server::SendMode (char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
@@ -1148,14 +1166,14 @@ 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!
.PP
-Definition at line 419 of file modules.cpp.
+Definition at line 424 of file modules.cpp.
.PP
References server_mode().
.PP
.nf
-420 {
-421 server_mode(parameters,pcnt,user);
-422 }
+425 {
+426 server_mode(parameters,pcnt,user);
+427 }
.fi
.PP
.SS "void Server::SendOpers (\fBstd::string\fP s)\fC [virtual]\fP"
@@ -1164,12 +1182,12 @@ Sends text to all opers.
.PP
This method sends a server notice to all opers with the usermode +s.
.PP
-Definition at line 344 of file modules.cpp.
+Definition at line 349 of file modules.cpp.
.PP
.nf
-345 {
-346 WriteOpers('%s',s.c_str());
-347 }
+350 {
+351 WriteOpers('%s',s.c_str());
+352 }
.fi
.PP
.SS "void Server::SendServ (int Socket, \fBstd::string\fP s)\fC [virtual]\fP"
@@ -1178,12 +1196,12 @@ Sends text from the server to a socket.
.PP
This method writes a line of text to an established socket, with the servername prepended as used by numerics (see RFC 1459)
.PP
-Definition at line 429 of file modules.cpp.
+Definition at line 434 of file modules.cpp.
.PP
.nf
-430 {
-431 WriteServ(Socket,'%s',s.c_str());
-432 }
+435 {
+436 WriteServ(Socket,'%s',s.c_str());
+437 }
.fi
.PP
.SS "void Server::SendTo (\fBuserrec\fP * Source, \fBuserrec\fP * Dest, \fBstd::string\fP s)\fC [virtual]\fP"
@@ -1200,23 +1218,23 @@ The format will become:
.PP
Which is useful for numerics and server notices to single users, etc.
.PP
-Definition at line 439 of file modules.cpp.
+Definition at line 444 of file modules.cpp.
.PP
References connection::fd.
.PP
.nf
-440 {
-441 if (!Source)
-442 {
-443 // if source is NULL, then the message originates from the local server
-444 Write(Dest->fd,':%s %s',this->GetServerName().c_str(),s.c_str());
-445 }
-446 else
+445 {
+446 if (!Source)
447 {
-448 // otherwise it comes from the user specified
-449 WriteTo(Source,Dest,'%s',s.c_str());
+448 // if source is NULL, then the message originates from the local server
+449 Write(Dest->fd,':%s %s',this->GetServerName().c_str(),s.c_str());
450 }
-451 }
+451 else
+452 {
+453 // otherwise it comes from the user specified
+454 WriteTo(Source,Dest,'%s',s.c_str());
+455 }
+456 }
.fi
.PP
.SS "void Server::SendToModeMask (\fBstd::string\fP modes, int flags, \fBstd::string\fP text)\fC [virtual]\fP"
@@ -1229,12 +1247,12 @@ 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.
.PP
-Definition at line 357 of file modules.cpp.
+Definition at line 362 of file modules.cpp.
.PP
.nf
-358 {
-359 WriteMode(modes.c_str(),flags,'%s',text.c_str());
-360 }
+363 {
+364 WriteMode(modes.c_str(),flags,'%s',text.c_str());
+365 }
.fi
.PP
.SS "void Server::SendWallops (\fBuserrec\fP * User, \fBstd::string\fP text)\fC [virtual]\fP"
@@ -1243,12 +1261,12 @@ Sends a WALLOPS message.
.PP
This method writes a WALLOPS message to all users with the +w flag, originating from the specified user.
.PP
-Definition at line 487 of file modules.cpp.
+Definition at line 492 of file modules.cpp.
.PP
.nf
-488 {
-489 WriteWallOps(User,false,'%s',text.c_str());
-490 }
+493 {
+494 WriteWallOps(User,false,'%s',text.c_str());
+495 }
.fi
.PP
.SS "bool Server::UserToPseudo (\fBuserrec\fP * user, \fBstd::string\fP message)\fC [virtual]\fP"
@@ -1257,21 +1275,21 @@ Remove a user's connection to the irc server, but leave their client in existenc
.PP
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.
.PP
-Definition at line 596 of file modules.cpp.
+Definition at line 601 of file modules.cpp.
.PP
References userrec::ClearBuffer(), SocketEngine::DelFd(), connection::fd, FD_MAGIC_NUMBER, connection::host, and userrec::ident.
.PP
.nf
-597 {
-598 unsigned int old_fd = user->fd;
-599 user->fd = FD_MAGIC_NUMBER;
-600 user->ClearBuffer();
-601 Write(old_fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,message.c_str());
-602 SE->DelFd(old_fd);
-603 shutdown(old_fd,2);
-604 close(old_fd);
-605 return true;
-606 }
+602 {
+603 unsigned int old_fd = user->fd;
+604 user->fd = FD_MAGIC_NUMBER;
+605 user->ClearBuffer();
+606 Write(old_fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,message.c_str());
+607 SE->DelFd(old_fd);
+608 shutdown(old_fd,2);
+609 close(old_fd);
+610 return true;
+611 }
.fi
.PP
diff --git a/docs/man/man3/ServerConfig.3 b/docs/man/man3/ServerConfig.3
index 9f5733197..8a713cdc1 100644
--- a/docs/man/man3/ServerConfig.3
+++ b/docs/man/man3/ServerConfig.3
@@ -2,7 +2,9 @@
.ad l
.nh
.SH NAME
-ServerConfig \-
+ServerConfig \- This class holds the bulk of the runtime configuration for the ircd.
+
+.PP
.SH SYNOPSIS
.br
.PP
@@ -19,9 +21,11 @@ Inherits \fBclassbase\fP.
.ti -1c
.RI "void \fBClearStack\fP ()"
.br
+.RI "\fIClears the include stack in preperation for a \fBRead()\fP call. \fP"
.ti -1c
.RI "void \fBRead\fP (bool bail, \fBuserrec\fP *user)"
.br
+.RI "\fIRead the entire configuration into memory and initialize this class. \fP"
.ti -1c
.RI "bool \fBLoadConf\fP (const char *filename, std::stringstream *target, std::stringstream *errorstream)"
.br
@@ -47,108 +51,142 @@ Inherits \fBclassbase\fP.
.ti -1c
.RI "char \fBServerName\fP [MAXBUF]"
.br
+.RI "\fIHolds the server name of the local server as defined by the administrator. \fP"
.ti -1c
.RI "char \fBNetwork\fP [MAXBUF]"
.br
.ti -1c
.RI "char \fBServerDesc\fP [MAXBUF]"
.br
+.RI "\fIHolds the description of the local server as defined by the administrator. \fP"
.ti -1c
.RI "char \fBAdminName\fP [MAXBUF]"
.br
+.RI "\fIHolds the admin's name, for output in the /ADMIN command. \fP"
.ti -1c
.RI "char \fBAdminEmail\fP [MAXBUF]"
.br
+.RI "\fIHolds the email address of the admin, for output in the /ADMIN command. \fP"
.ti -1c
.RI "char \fBAdminNick\fP [MAXBUF]"
.br
+.RI "\fIHolds the admin's nickname, for output in the /ADMIN command. \fP"
.ti -1c
.RI "char \fBdiepass\fP [MAXBUF]"
.br
+.RI "\fIThe admin-configured /DIE password. \fP"
.ti -1c
.RI "char \fBrestartpass\fP [MAXBUF]"
.br
+.RI "\fIThe admin-configured /RESTART password. \fP"
.ti -1c
.RI "char \fBmotd\fP [MAXBUF]"
.br
+.RI "\fIThe pathname and filename of the message of the day file, as defined by the administrator. \fP"
.ti -1c
.RI "char \fBrules\fP [MAXBUF]"
.br
+.RI "\fIThe pathname and filename of the rules file, as defined by the administrator. \fP"
.ti -1c
.RI "char \fBPrefixQuit\fP [MAXBUF]"
.br
+.RI "\fIThe quit prefix in use, or an empty string. \fP"
.ti -1c
.RI "char \fBDieValue\fP [MAXBUF]"
.br
+.RI "\fIThe last string found within a <die> tag, or an empty string. \fP"
.ti -1c
.RI "char \fBDNSServer\fP [MAXBUF]"
.br
+.RI "\fIThe \fBDNS\fP server to use for \fBDNS\fP queries. \fP"
.ti -1c
.RI "char \fBDisabledCommands\fP [MAXBUF]"
.br
+.RI "\fIThis variable contains a space-seperated list of commands which are disabled by the administrator of the server for non-opers. \fP"
.ti -1c
.RI "char \fBModPath\fP [1024]"
.br
+.RI "\fIThe full path to the modules directory. \fP"
.ti -1c
.RI "char \fBMyExecutable\fP [1024]"
.br
+.RI "\fIThe full pathname to the executable, as given in argv[0] when the program starts. \fP"
.ti -1c
.RI "FILE * \fBlog_file\fP"
.br
+.RI "\fIThe file handle of the logfile. \fP"
.ti -1c
.RI "bool \fBnofork\fP"
.br
+.RI "\fIIf this value is true, the owner of the server specified -nofork on the command line, causing the daemon to stay in the foreground. \fP"
.ti -1c
.RI "bool \fBunlimitcore\fP"
.br
+.RI "\fIIf this value is true, the owner of the server has chosen to unlimit the coredump size to as large a value as his account settings will allow. \fP"
.ti -1c
.RI "bool \fBAllowHalfop\fP"
.br
+.RI "\fIIf this value is true, halfops have been enabled in the configuration file. \fP"
.ti -1c
.RI "int \fBdns_timeout\fP"
.br
+.RI "\fIThe number of seconds the \fBDNS\fP subsystem will wait before timing out any request. \fP"
.ti -1c
.RI "int \fBNetBufferSize\fP"
.br
+.RI "\fIThe size of the read() buffer in the user handling code, used to read data into a user's recvQ. \fP"
.ti -1c
.RI "int \fBMaxConn\fP"
.br
+.RI "\fIThe value to be used for listen() backlogs as default. \fP"
.ti -1c
.RI "unsigned int \fBSoftLimit\fP"
.br
+.RI "\fIThe soft limit value assigned to the irc server. \fP"
.ti -1c
.RI "int \fBMaxWhoResults\fP"
.br
+.RI "\fIThe maximum number of /WHO results allowed in any single /WHO command. \fP"
.ti -1c
.RI "int \fBdebugging\fP"
.br
+.RI "\fITrue if the DEBUG loglevel is selected. \fP"
.ti -1c
.RI "int \fBLogLevel\fP"
.br
+.RI "\fIThe loglevel in use by the IRC server. \fP"
.ti -1c
.RI "int \fBDieDelay\fP"
.br
+.RI "\fIHow many seconds to wait before exiting the program when /DIE is correctly issued. \fP"
.ti -1c
.RI "char \fBaddrs\fP [MAXBUF][255]"
.br
+.RI "\fIA list of IP addresses the server is listening on. \fP"
.ti -1c
.RI "\fBfile_cache\fP \fBMOTD\fP"
.br
+.RI "\fIThe MOTD file, cached in a file_cache type. \fP"
.ti -1c
.RI "\fBfile_cache\fP \fBRULES\fP"
.br
+.RI "\fIThe RULES file, cached in a file_cache type. \fP"
.ti -1c
.RI "char \fBPID\fP [1024]"
.br
+.RI "\fIThe full pathname and filename of the PID file as defined in the configuration. \fP"
.ti -1c
.RI "std::stringstream \fBconfig_f\fP"
.br
+.RI "\fIThe parsed configuration file as a stringstream. \fP"
.ti -1c
.RI "\fBClassVector\fP \fBClasses\fP"
.br
+.RI "\fIThe connect classes in use by the IRC server. \fP"
.ti -1c
.RI "std::vector< \fBstd::string\fP > \fBmodule_names\fP"
.br
+.RI "\fIA list of module names (names only, no paths) which are currently loaded by the server. \fP"
.in -1c
.SS "Private Member Functions"
@@ -156,9 +194,11 @@ Inherits \fBclassbase\fP.
.ti -1c
.RI "int \fBfgets_safe\fP (char *buffer, size_t maxsize, FILE *&file)"
.br
+.RI "\fIUsed by the config file subsystem to safely read a C-style string without dependency upon any certain style of linefeed, e.g. \fP"
.ti -1c
.RI "\fBstd::string\fP \fBConfProcess\fP (char *buffer, long linenumber, std::stringstream *errorstream, bool &error, \fBstd::string\fP filename)"
.br
+.RI "\fIThis private method processes one line of configutation, appending errors to errorstream and setting error if an error has occured. \fP"
.in -1c
.SS "Private Attributes"
@@ -166,10 +206,15 @@ Inherits \fBclassbase\fP.
.ti -1c
.RI "std::vector< \fBstd::string\fP > \fBinclude_stack\fP"
.br
+.RI "\fIThis variable holds the names of all files included from the main one. \fP"
.in -1c
.SH "Detailed Description"
.PP
-Definition at line 34 of file inspircd_io.h.
+This class holds the bulk of the runtime configuration for the ircd.
+
+It allows for reading new config values, accessing configuration files, and storage of the configuration data needed to run the ircd, such as the servername, connect classes, /ADMIN data, MOTDs and filenames etc.
+.PP
+Definition at line 39 of file inspircd_io.h.
.SH "Constructor & Destructor Documentation"
.PP
.SS "ServerConfig::ServerConfig ()"
@@ -178,9 +223,13 @@ Definition at line 34 of file inspircd_io.h.
.PP
.SS "void ServerConfig::ClearStack ()"
.PP
+Clears the include stack in preperation for a \fBRead()\fP call.
+.PP
Referenced by ConfigReader::ConfigReader().
.SS "\fBstd::string\fP ServerConfig::ConfProcess (char * buffer, long linenumber, std::stringstream * errorstream, bool & error, \fBstd::string\fP filename)\fC [private]\fP"
.PP
+This private method processes one line of configutation, appending errors to errorstream and setting error if an error has occured.
+.PP
.SS "int ServerConfig::ConfValue (char * tag, char * var, int index, char * result, std::stringstream * config)"
.PP
Referenced by userrec::HasPermission().
@@ -194,11 +243,18 @@ Referenced by ConfigReader::Enumerate().
Referenced by ConfigReader::EnumerateValues().
.SS "int ServerConfig::fgets_safe (char * buffer, size_t maxsize, FILE *& file)\fC [private]\fP"
.PP
+Used by the config file subsystem to safely read a C-style string without dependency upon any certain style of linefeed, e.g.
+.PP
+it can read both windows and UNIX style linefeeds transparently.
.SS "bool ServerConfig::LoadConf (const char * filename, std::stringstream * target, std::stringstream * errorstream)"
.PP
Referenced by ConfigReader::ConfigReader().
.SS "void ServerConfig::Read (bool bail, \fBuserrec\fP * user)"
.PP
+Read the entire configuration into memory and initialize this class.
+.PP
+All other methods should be used only by the core.
+.PP
Referenced by Server::RehashServer().
.SS "int ServerConfig::ReadConf (std::stringstream * config_f, const char * tag, const char * var, int index, char * result)"
.PP
@@ -207,118 +263,200 @@ Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigR
.PP
.SS "char \fBServerConfig::addrs\fP[MAXBUF][255]"
.PP
-Definition at line 70 of file inspircd_io.h.
+A list of IP addresses the server is listening on.
+.PP
+Definition at line 216 of file inspircd_io.h.
.SS "char \fBServerConfig::AdminEmail\fP[MAXBUF]"
.PP
-Definition at line 46 of file inspircd_io.h.
+Holds the email address of the admin, for output in the /ADMIN command.
+.PP
+Definition at line 89 of file inspircd_io.h.
.SS "char \fBServerConfig::AdminName\fP[MAXBUF]"
.PP
-Definition at line 45 of file inspircd_io.h.
+Holds the admin's name, for output in the /ADMIN command.
+.PP
+Definition at line 84 of file inspircd_io.h.
.SS "char \fBServerConfig::AdminNick\fP[MAXBUF]"
.PP
-Definition at line 47 of file inspircd_io.h.
+Holds the admin's nickname, for output in the /ADMIN command.
+.PP
+Definition at line 94 of file inspircd_io.h.
.SS "bool \fBServerConfig::AllowHalfop\fP"
.PP
-Definition at line 61 of file inspircd_io.h.
+If this value is true, halfops have been enabled in the configuration file.
+.PP
+Definition at line 171 of file inspircd_io.h.
.SS "\fBClassVector\fP \fBServerConfig::Classes\fP"
.PP
-Definition at line 75 of file inspircd_io.h.
+The connect classes in use by the IRC server.
+.PP
+Definition at line 242 of file inspircd_io.h.
.SS "std::stringstream \fBServerConfig::config_f\fP"
.PP
-Definition at line 74 of file inspircd_io.h.
+The parsed configuration file as a stringstream.
+.PP
+You should pass this to any configuration methods of this class, and not access it directly. It is recommended that modules use \fBConfigReader\fP instead which provides a simpler abstraction of configuration files.
+.PP
+Definition at line 238 of file inspircd_io.h.
.PP
Referenced by userrec::HasPermission().
.SS "int \fBServerConfig::debugging\fP"
.PP
-Definition at line 67 of file inspircd_io.h.
+True if the DEBUG loglevel is selected.
+.PP
+Definition at line 202 of file inspircd_io.h.
.SS "int \fBServerConfig::DieDelay\fP"
.PP
-Definition at line 69 of file inspircd_io.h.
+How many seconds to wait before exiting the program when /DIE is correctly issued.
+.PP
+Definition at line 211 of file inspircd_io.h.
.SS "char \fBServerConfig::diepass\fP[MAXBUF]"
.PP
-Definition at line 48 of file inspircd_io.h.
+The admin-configured /DIE password.
+.PP
+Definition at line 98 of file inspircd_io.h.
.SS "char \fBServerConfig::DieValue\fP[MAXBUF]"
.PP
-Definition at line 53 of file inspircd_io.h.
+The last string found within a <die> tag, or an empty string.
+.PP
+Definition at line 121 of file inspircd_io.h.
.SS "char \fBServerConfig::DisabledCommands\fP[MAXBUF]"
.PP
-Definition at line 55 of file inspircd_io.h.
+This variable contains a space-seperated list of commands which are disabled by the administrator of the server for non-opers.
+.PP
+Definition at line 131 of file inspircd_io.h.
.SS "int \fBServerConfig::dns_timeout\fP"
.PP
-Definition at line 62 of file inspircd_io.h.
+The number of seconds the \fBDNS\fP subsystem will wait before timing out any request.
+.PP
+Definition at line 176 of file inspircd_io.h.
.SS "char \fBServerConfig::DNSServer\fP[MAXBUF]"
.PP
-Definition at line 54 of file inspircd_io.h.
+The \fBDNS\fP server to use for \fBDNS\fP queries.
+.PP
+Definition at line 125 of file inspircd_io.h.
.SS "std::vector<\fBstd::string\fP> \fBServerConfig::include_stack\fP\fC [private]\fP"
.PP
-Definition at line 37 of file inspircd_io.h.
+This variable holds the names of all files included from the main one.
+.PP
+This is used to make sure that no files are recursively included.
+.PP
+Definition at line 47 of file inspircd_io.h.
.SS "FILE* \fBServerConfig::log_file\fP"
.PP
-Definition at line 58 of file inspircd_io.h.
+The file handle of the logfile.
+.PP
+If this value is NULL, the log file is not open, probably due to a permissions error on startup (this should not happen in normal operation!).
+.PP
+Definition at line 151 of file inspircd_io.h.
.SS "int \fBServerConfig::LogLevel\fP"
.PP
-Definition at line 68 of file inspircd_io.h.
+The loglevel in use by the IRC server.
+.PP
+Definition at line 206 of file inspircd_io.h.
.SS "int \fBServerConfig::MaxConn\fP"
.PP
-Definition at line 64 of file inspircd_io.h.
+The value to be used for listen() backlogs as default.
+.PP
+Definition at line 187 of file inspircd_io.h.
.SS "int \fBServerConfig::MaxWhoResults\fP"
.PP
-Definition at line 66 of file inspircd_io.h.
+The maximum number of /WHO results allowed in any single /WHO command.
+.PP
+Definition at line 198 of file inspircd_io.h.
.SS "char \fBServerConfig::ModPath\fP[1024]"
.PP
-Definition at line 56 of file inspircd_io.h.
+The full path to the modules directory.
+.PP
+This is either set at compile time, or overridden in the configuration file via the <options> tag.
+.PP
+Definition at line 138 of file inspircd_io.h.
.SS "std::vector<\fBstd::string\fP> \fBServerConfig::module_names\fP"
.PP
-Definition at line 76 of file inspircd_io.h.
+A list of module names (names only, no paths) which are currently loaded by the server.
+.PP
+Definition at line 247 of file inspircd_io.h.
.PP
Referenced by Server::FindModule().
.SS "\fBfile_cache\fP \fBServerConfig::MOTD\fP"
.PP
-Definition at line 71 of file inspircd_io.h.
+The MOTD file, cached in a file_cache type.
+.PP
+Definition at line 220 of file inspircd_io.h.
.SS "char \fBServerConfig::motd\fP[MAXBUF]"
.PP
-Definition at line 50 of file inspircd_io.h.
+The pathname and filename of the message of the day file, as defined by the administrator.
+.PP
+Definition at line 107 of file inspircd_io.h.
.SS "char \fBServerConfig::MyExecutable\fP[1024]"
.PP
-Definition at line 57 of file inspircd_io.h.
+The full pathname to the executable, as given in argv[0] when the program starts.
+.PP
+Definition at line 143 of file inspircd_io.h.
.SS "int \fBServerConfig::NetBufferSize\fP"
.PP
-Definition at line 63 of file inspircd_io.h.
+The size of the read() buffer in the user handling code, used to read data into a user's recvQ.
+.PP
+Definition at line 182 of file inspircd_io.h.
.SS "char \fBServerConfig::Network\fP[MAXBUF]"
.PP
-Definition at line 43 of file inspircd_io.h.
+Definition at line 74 of file inspircd_io.h.
.SS "bool \fBServerConfig::nofork\fP"
.PP
-Definition at line 59 of file inspircd_io.h.
+If this value is true, the owner of the server specified -nofork on the command line, causing the daemon to stay in the foreground.
+.PP
+Definition at line 158 of file inspircd_io.h.
.SS "char \fBServerConfig::PID\fP[1024]"
.PP
-Definition at line 73 of file inspircd_io.h.
+The full pathname and filename of the PID file as defined in the configuration.
+.PP
+Definition at line 229 of file inspircd_io.h.
.SS "char \fBServerConfig::PrefixQuit\fP[MAXBUF]"
.PP
-Definition at line 52 of file inspircd_io.h.
+The quit prefix in use, or an empty string.
+.PP
+Definition at line 116 of file inspircd_io.h.
.SS "char \fBServerConfig::restartpass\fP[MAXBUF]"
.PP
-Definition at line 49 of file inspircd_io.h.
+The admin-configured /RESTART password.
+.PP
+Definition at line 102 of file inspircd_io.h.
.SS "\fBfile_cache\fP \fBServerConfig::RULES\fP"
.PP
-Definition at line 72 of file inspircd_io.h.
+The RULES file, cached in a file_cache type.
+.PP
+Definition at line 224 of file inspircd_io.h.
.SS "char \fBServerConfig::rules\fP[MAXBUF]"
.PP
-Definition at line 51 of file inspircd_io.h.
+The pathname and filename of the rules file, as defined by the administrator.
+.PP
+Definition at line 112 of file inspircd_io.h.
.SS "char \fBServerConfig::ServerDesc\fP[MAXBUF]"
.PP
-Definition at line 44 of file inspircd_io.h.
+Holds the description of the local server as defined by the administrator.
+.PP
+Definition at line 79 of file inspircd_io.h.
.SS "char \fBServerConfig::ServerName\fP[MAXBUF]"
.PP
-Definition at line 42 of file inspircd_io.h.
+Holds the server name of the local server as defined by the administrator.
+.PP
+Definition at line 68 of file inspircd_io.h.
.PP
Referenced by userrec::userrec().
.SS "unsigned int \fBServerConfig::SoftLimit\fP"
.PP
-Definition at line 65 of file inspircd_io.h.
+The soft limit value assigned to the irc server.
+.PP
+The IRC server will not allow more than this number of local users.
+.PP
+Definition at line 193 of file inspircd_io.h.
.SS "bool \fBServerConfig::unlimitcore\fP"
.PP
-Definition at line 60 of file inspircd_io.h.
+If this value is true, the owner of the server has chosen to unlimit the coredump size to as large a value as his account settings will allow.
+.PP
+This is often used when debugging.
+.PP
+Definition at line 166 of file inspircd_io.h.
.SH "Author"
.PP
diff --git a/docs/man/man3/channels.cpp.3 b/docs/man/man3/channels.cpp.3
index 429b0ccdd..0d5feb55c 100644
--- a/docs/man/man3/channels.cpp.3
+++ b/docs/man/man3/channels.cpp.3
@@ -135,7 +135,7 @@ Referenced by chanrec::GetModeParameter(), and chanrec::SetCustomModeParam().
.PP
.SS "int \fBMODCOUNT\fP = -1"
.PP
-Definition at line 933 of file modules.cpp.
+Definition at line 938 of file modules.cpp.
.PP
Referenced by Server::FindModule().
.SS "std::vector<\fBstd::string\fP> \fBmodule_names\fP"
diff --git a/docs/man/man3/inspircd_io.h.3 b/docs/man/man3/inspircd_io.h.3
index b832da93e..fa150ea79 100644
--- a/docs/man/man3/inspircd_io.h.3
+++ b/docs/man/man3/inspircd_io.h.3
@@ -23,6 +23,7 @@ inspircd_io.h \-
.ti -1c
.RI "class \fBServerConfig\fP"
.br
+.RI "\fIThis class holds the bulk of the runtime configuration for the ircd. \fP"
.in -1c
.SS "Defines"
@@ -30,6 +31,7 @@ inspircd_io.h \-
.ti -1c
.RI "#define \fBDEBUG\fP 10"
.br
+.RI "\fIFlags for use with log(). \fP"
.ti -1c
.RI "#define \fBVERBOSE\fP 20"
.br
@@ -72,6 +74,8 @@ inspircd_io.h \-
.PP
.SS "#define DEBUG 10"
.PP
+Flags for use with log().
+.PP
Definition at line 28 of file inspircd_io.h.
.PP
Referenced by Server::AddExtendedMode(), SocketEngine::AddFd(), chanrec::AddUser(), SocketEngine::DelFd(), chanrec::DelUser(), InspSocket::InspSocket(), InspSocket::Read(), userrec::RemoveInvite(), chanrec::SetCustomMode(), chanrec::SetCustomModeParam(), InspSocket::SetState(), userrec::SetWriteError(), SocketEngine::SocketEngine(), and SocketEngine::~SocketEngine().
diff --git a/docs/man/man3/ircd_connector.3 b/docs/man/man3/ircd_connector.3
deleted file mode 100644
index 7198b4947..000000000
--- a/docs/man/man3/ircd_connector.3
+++ /dev/null
@@ -1,487 +0,0 @@
-.TH "ircd_connector" 3 "30 May 2005" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ircd_connector \- Each connection has one or more of these each represents ONE outbound connection to another ircd so each inbound has multiple outbounds.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <connection.h>\fP
-.PP
-Inherits \fBExtensible\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBircd_connector\fP ()"
-.br
-.RI "\fIConstructor clears the sendq and initialises the fd to -1. \fP"
-.ti -1c
-.RI "bool \fBMakeOutboundConnection\fP (char *newhost, int newport)"
-.br
-.RI "\fICreate an outbound connection to a listening socket. \fP"
-.ti -1c
-.RI "std::string \fBGetServerName\fP ()"
-.br
-.RI "\fIReturn the servername on this established connection. \fP"
-.ti -1c
-.RI "void \fBSetServerName\fP (std::string serv)"
-.br
-.RI "\fISet the server name of this connection. \fP"
-.ti -1c
-.RI "int \fBGetDescriptor\fP ()"
-.br
-.RI "\fIGet the file descriptor associated with this connection. \fP"
-.ti -1c
-.RI "void \fBSetDescriptor\fP (int \fBfd\fP)"
-.br
-.RI "\fISet the file descriptor for this connection. \fP"
-.ti -1c
-.RI "int \fBGetState\fP ()"
-.br
-.RI "\fIGet the state flags for this connection. \fP"
-.ti -1c
-.RI "void \fBSetState\fP (int \fBstate\fP)"
-.br
-.RI "\fISet the state flags for this connection. \fP"
-.ti -1c
-.RI "char * \fBGetServerIP\fP ()"
-.br
-.RI "\fIGet the ip address (not servername) associated with this connection. \fP"
-.ti -1c
-.RI "std::string \fBGetDescription\fP ()"
-.br
-.RI "\fIGet the server description of this connection. \fP"
-.ti -1c
-.RI "void \fBSetDescription\fP (std::string desc)"
-.br
-.RI "\fISet the server description of this connection. \fP"
-.ti -1c
-.RI "int \fBGetServerPort\fP ()"
-.br
-.RI "\fIGet the port number being used for this connection If the connection is outbound this will be the remote port otherwise it will be the local port, so it can always be gautanteed as open at the address given in \fBGetServerIP()\fP. \fP"
-.ti -1c
-.RI "void \fBSetServerPort\fP (int p)"
-.br
-.RI "\fISet the port used by this connection. \fP"
-.ti -1c
-.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 "bool \fBAddBuffer\fP (std::string a)"
-.br
-.RI "\fIThis method adds text to the ircd connection's buffer. \fP"
-.ti -1c
-.RI "bool \fBBufferIsComplete\fP ()"
-.br
-.RI "\fIThis method returns true if the buffer contains at least one carriage return character, e.g. \fP"
-.ti -1c
-.RI "void \fBClearBuffer\fP ()"
-.br
-.RI "\fIThis method clears the server's buffer by setting it to an empty string. \fP"
-.ti -1c
-.RI "std::string \fBGetBuffer\fP ()"
-.br
-.RI "\fIThis method retrieves the first string from the tail end of the buffer and advances the tail end of the buffer past the returned string, in a similar manner to strtok(). \fP"
-.ti -1c
-.RI "void \fBSetVersionString\fP (std::string newversion)"
-.br
-.RI "\fIThis method sets the version string of the remote server. \fP"
-.ti -1c
-.RI "std::string \fBGetVersionString\fP ()"
-.br
-.RI "\fIThis method returns the version string of the remote server. \fP"
-.ti -1c
-.RI "bool \fBAddWriteBuf\fP (std::string data)"
-.br
-.RI "\fIAdds data to the connection's sendQ to be flushed later. \fP"
-.ti -1c
-.RI "bool \fBFlushWriteBuf\fP ()"
-.br
-.RI "\fIFlushes as much of the data from the buffer as possible, and advances the queue pointer to what is left. \fP"
-.ti -1c
-.RI "void \fBSetWriteError\fP (std::string error)"
-.br
-.RI "\fISets the error string for this connection. \fP"
-.ti -1c
-.RI "std::string \fBGetWriteError\fP ()"
-.br
-.RI "\fIGets the error string for this connection. \fP"
-.ti -1c
-.RI "bool \fBHasBufferedOutput\fP ()"
-.br
-.RI "\fIReturns true if there is data to be written that hasn't been sent yet. \fP"
-.ti -1c
-.RI "bool \fBCheckPing\fP ()"
-.br
-.RI "\fIChecks if the connection replied to its last ping, and if it did sends another and returns true, if not, returns false. \fP"
-.ti -1c
-.RI "void \fBResetPing\fP ()"
-.br
-.RI "\fIResets the ping counter. \fP"
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "std::string \fBircdbuffer\fP"
-.br
-.RI "\fIIRCD Buffer for input characters, holds as many lines as are pending - Note that the final line may not be complete and should only be read when there is a
-.br
- seperator. \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"
-.ti -1c
-.RI "int \fBport\fP"
-.br
-.RI "\fIWhen MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. \fP"
-.ti -1c
-.RI "std::vector< std::string > \fBroutes\fP"
-.br
-.RI "\fI\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. \fP"
-.in -1c
-.SS "Private Member Functions"
-
-.in +1c
-.ti -1c
-.RI "bool \fBSetHostAddress\fP (char *\fBhost\fP, int \fBport\fP)"
-.br
-.RI "\fIPRIVATE function to set the host address and port to connect to. \fP"
-.in -1c
-.SS "Private Attributes"
-
-.in +1c
-.ti -1c
-.RI "sockaddr_in \fBaddr\fP"
-.br
-.RI "\fISockaddr of the outbound ip and port. \fP"
-.ti -1c
-.RI "int \fBfd\fP"
-.br
-.RI "\fIFile descriptor of the connection. \fP"
-.ti -1c
-.RI "std::string \fBservername\fP"
-.br
-.RI "\fI\fBServer\fP name. \fP"
-.ti -1c
-.RI "std::string \fBdescription\fP"
-.br
-.RI "\fI\fBServer\fP 'GECOS'. \fP"
-.ti -1c
-.RI "char \fBstate\fP"
-.br
-.RI "\fIState. \fP"
-.ti -1c
-.RI "std::string \fBversion\fP"
-.br
-.RI "\fIThis string holds the ircd's version response. \fP"
-.ti -1c
-.RI "std::string \fBsendq\fP"
-.br
-.RI "\fISendQ of the outbound connector, does not have a limit. \fP"
-.ti -1c
-.RI "std::string \fBWriteError\fP"
-.br
-.RI "\fIWrite error of connection. \fP"
-.ti -1c
-.RI "time_t \fBnextping\fP"
-.br
-.RI "\fITime this connection was last pinged. \fP"
-.ti -1c
-.RI "bool \fBreplied\fP"
-.br
-.RI "\fIDid this connection reply to its last ping? \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-Each connection has one or more of these each represents ONE outbound connection to another ircd so each inbound has multiple outbounds.
-
-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 56 of file connection.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "ircd_connector::ircd_connector ()"
-.PP
-Constructor clears the sendq and initialises the fd to -1.
-.SH "Member Function Documentation"
-.PP
-.SS "bool ircd_connector::AddBuffer (std::string a)"
-.PP
-This method adds text to the ircd connection's buffer. \fBParameters:\fP
-.RS 4
-\fIa\fP The text to add to the buffer up to a maximum size of 1MB
-.RE
-.PP
-This buffer's maximum size is one megabyte, the method returning false if the buffer is full.
-.PP
-\fBReturns:\fP
-.RS 4
-True on success, false if the buffer is full or the connection is down
-.RE
-.PP
-
-.SS "bool ircd_connector::AddWriteBuf (std::string data)"
-.PP
-Adds data to the connection's sendQ to be flushed later. \fBParameters:\fP
-.RS 4
-\fIdata\fP The data to add to the write buffer
-.RE
-.PP
-Fails if there is an error pending on the connection.
-.PP
-\fBReturns:\fP
-.RS 4
-True on success, false if the connection is down or the buffer is full
-.RE
-.PP
-Referenced by serverrec::SendPacket().
-.SS "bool ircd_connector::BufferIsComplete ()"
-.PP
-This method returns true if the buffer contains at least one carriage return character, e.g. one line can be read from the buffer successfully.
-.PP
-\fBReturns:\fP
-.RS 4
-True if there is at least one complete line waiting to be processed
-.RE
-.PP
-
-.SS "bool ircd_connector::CheckPing ()"
-.PP
-Checks if the connection replied to its last ping, and if it did sends another and returns true, if not, returns false. \fBReturns:\fP
-.RS 4
-True if the server is still replying to pings
-.RE
-.PP
-
-.SS "void ircd_connector::ClearBuffer ()"
-.PP
-This method clears the server's buffer by setting it to an empty string.
-.SS "void ircd_connector::CloseConnection ()"
-.PP
-Close the connection by calling close() on its file descriptor This function call updates no other data. Referenced by serverrec::SendPacket().
-.SS "bool ircd_connector::FlushWriteBuf ()"
-.PP
-Flushes as much of the data from the buffer as possible, and advances the queue pointer to what is left. \fBReturns:\fP
-.RS 4
-True if the flush succeeded, false if the connection is down
-.RE
-.PP
-Referenced by serverrec::SendPacket().
-.SS "std::string ircd_connector::GetBuffer ()"
-.PP
-This method retrieves the first string from the tail end of the buffer and advances the tail end of the buffer past the returned string, in a similar manner to strtok(). \fBReturns:\fP
-.RS 4
-The first line of the buffer up to a carriage return
-.RE
-.PP
-
-.SS "std::string ircd_connector::GetDescription ()"
-.PP
-Get the server description of this connection. \fBReturns:\fP
-.RS 4
-The description (GECOS) of this connection
-.RE
-.PP
-
-.SS "int ircd_connector::GetDescriptor ()"
-.PP
-Get the file descriptor associated with this connection. \fBReturns:\fP
-.RS 4
-The file descriptor associated with this connection
-.RE
-.PP
-
-.SS "char* ircd_connector::GetServerIP ()"
-.PP
-Get the ip address (not servername) associated with this connection. \fBReturns:\fP
-.RS 4
-The connections IP address in dotted decimal form
-.RE
-.PP
-
-.SS "std::string ircd_connector::GetServerName ()"
-.PP
-Return the servername on this established connection. Referenced by serverrec::SendPacket().
-.SS "int ircd_connector::GetServerPort ()"
-.PP
-Get the port number being used for this connection If the connection is outbound this will be the remote port otherwise it will be the local port, so it can always be gautanteed as open at the address given in \fBGetServerIP()\fP. \fBReturns:\fP
-.RS 4
-The port number of this connection
-.RE
-.PP
-
-.SS "int ircd_connector::GetState ()"
-.PP
-Get the state flags for this connection. \fBReturns:\fP
-.RS 4
-The state flags associated with this connection
-.RE
-.PP
-Referenced by serverrec::SendPacket().
-.SS "std::string ircd_connector::GetVersionString ()"
-.PP
-This method returns the version string of the remote server. If the server has no version string an empty string is returned.
-.PP
-\fBReturns:\fP
-.RS 4
-The version text of this connection
-.RE
-.PP
-
-.SS "std::string ircd_connector::GetWriteError ()"
-.PP
-Gets the error string for this connection. \fBReturns:\fP
-.RS 4
-The last error to occur or an empty string
-.RE
-.PP
-Referenced by serverrec::SendPacket().
-.SS "bool ircd_connector::HasBufferedOutput ()"
-.PP
-Returns true if there is data to be written that hasn't been sent yet. \fBReturns:\fP
-.RS 4
-True if the buffer is not empty
-.RE
-.PP
-
-.SS "bool ircd_connector::MakeOutboundConnection (char * newhost, int newport)"
-.PP
-Create an outbound connection to a listening socket. Referenced by serverrec::BeginLink(), and serverrec::MeshCookie().
-.SS "void ircd_connector::ResetPing ()"
-.PP
-Resets the ping counter.
-.SS "void ircd_connector::SetDescription (std::string desc)"
-.PP
-Set the server description of this connection. \fBParameters:\fP
-.RS 4
-\fIdesc\fP The description (GECOS) of this connection to be set
-.RE
-.PP
-
-.SS "void ircd_connector::SetDescriptor (int fd)"
-.PP
-Set the file descriptor for this connection. \fBParameters:\fP
-.RS 4
-\fIfd\fP The file descriptor to associate with the connection
-.RE
-.PP
-Referenced by serverrec::AddIncoming().
-.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 * newhost, int newport)"
-.PP
-Set both the host and the port in one operation for this connection. \fBParameters:\fP
-.RS 4
-\fInewhost\fP The hostname to set for this connection
-.br
-\fInewport\fP The port number to set for this connection
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-True on success, false on failure
-.RE
-.PP
-Referenced by serverrec::AddIncoming(), serverrec::BeginLink(), and serverrec::MeshCookie().
-.SS "void ircd_connector::SetServerName (std::string serv)"
-.PP
-Set the server name of this connection. \fBParameters:\fP
-.RS 4
-\fIserv\fP The server name to set
-.RE
-.PP
-Referenced by serverrec::AddIncoming(), serverrec::BeginLink(), and serverrec::MeshCookie().
-.SS "void ircd_connector::SetServerPort (int p)"
-.PP
-Set the port used by this connection. \fBParameters:\fP
-.RS 4
-\fIp\fP The port number to set for this connection
-.RE
-.PP
-
-.SS "void ircd_connector::SetState (int state)"
-.PP
-Set the state flags for this connection. \fBParameters:\fP
-.RS 4
-\fIstate\fP The state flags to set for this connection
-.RE
-.PP
-Referenced by serverrec::AddIncoming(), serverrec::BeginLink(), serverrec::MeshCookie(), and serverrec::SendPacket().
-.SS "void ircd_connector::SetVersionString (std::string newversion)"
-.PP
-This method sets the version string of the remote server. \fBParameters:\fP
-.RS 4
-\fInewversion\fP The version string to set
-.RE
-.PP
-
-.SS "void ircd_connector::SetWriteError (std::string error)"
-.PP
-Sets the error string for this connection. \fBParameters:\fP
-.RS 4
-\fIerror\fP The error string to set
-.RE
-.PP
-
-.SH "Member Data Documentation"
-.PP
-.SS "sockaddr_in \fBircd_connector::addr\fP\fC [private]\fP"
-.PP
-Sockaddr of the outbound ip and port. Definition at line 61 of file connection.h.
-.SS "std::string \fBircd_connector::description\fP\fC [private]\fP"
-.PP
-\fBServer\fP 'GECOS'. Definition at line 73 of file connection.h.
-.SS "int \fBircd_connector::fd\fP\fC [private]\fP"
-.PP
-File descriptor of the connection. Definition at line 65 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 117 of file connection.h.
-.SS "std::string \fBircd_connector::ircdbuffer\fP"
-.PP
-IRCD Buffer for input characters, holds as many lines as are pending - Note that the final line may not be complete and should only be read when there is a
-.br
- seperator. Definition at line 110 of file connection.h.
-.SS "time_t \fBircd_connector::nextping\fP\fC [private]\fP"
-.PP
-Time this connection was last pinged. Definition at line 98 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 123 of file connection.h.
-.SS "bool \fBircd_connector::replied\fP\fC [private]\fP"
-.PP
-Did this connection reply to its last ping? Definition at line 102 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 129 of file connection.h.
-.SS "std::string \fBircd_connector::sendq\fP\fC [private]\fP"
-.PP
-SendQ of the outbound connector, does not have a limit. Definition at line 90 of file connection.h.
-.SS "std::string \fBircd_connector::servername\fP\fC [private]\fP"
-.PP
-\fBServer\fP name. Definition at line 69 of file connection.h.
-.SS "char \fBircd_connector::state\fP\fC [private]\fP"
-.PP
-State. STATE_NOAUTH_INBOUND, STATE_NOAUTH_OUTBOUND STATE_SYNC, STATE_DISCONNECTED, STATE_CONNECTEDDefinition at line 78 of file connection.h.
-.SS "std::string \fBircd_connector::version\fP\fC [private]\fP"
-.PP
-This string holds the ircd's version response. Definition at line 86 of file connection.h.
-.SS "std::string \fBircd_connector::WriteError\fP\fC [private]\fP"
-.PP
-Write error of connection. Definition at line 94 of file connection.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/modules.cpp.3 b/docs/man/man3/modules.cpp.3
index 2b4dae325..b8eec9add 100644
--- a/docs/man/man3/modules.cpp.3
+++ b/docs/man/man3/modules.cpp.3
@@ -328,7 +328,7 @@ Referenced by DoAddExtendedMode(), ModeDefined(), ModeDefinedOff(), ModeDefinedO
.PP
.SS "int \fBMODCOUNT\fP = -1"
.PP
-Definition at line 933 of file modules.cpp.
+Definition at line 938 of file modules.cpp.
.SS "std::vector<\fBInspSocket\fP*> \fBmodule_sockets\fP"
.PP
Referenced by Server::AddSocket(), and Server::DelSocket().
diff --git a/docs/man/man3/modules.h.3 b/docs/man/man3/modules.h.3
index b65b4ac89..28f7e5404 100644
--- a/docs/man/man3/modules.h.3
+++ b/docs/man/man3/modules.h.3
@@ -242,22 +242,22 @@ Referenced by Module::OnAccessCheck().
Definition at line 38 of file modules.h.
.SS "#define CONF_FILE_NOT_FOUND 0x000200"
.PP
-Definition at line 1516 of file modules.h.
+Definition at line 1520 of file modules.h.
.PP
Referenced by ConfigReader::ConfigReader().
.SS "#define CONF_NOT_A_NUMBER 0x000010"
.PP
-Definition at line 1513 of file modules.h.
+Definition at line 1517 of file modules.h.
.PP
Referenced by ConfigReader::ReadInteger().
.SS "#define CONF_NOT_UNSIGNED 0x000080"
.PP
-Definition at line 1514 of file modules.h.
+Definition at line 1518 of file modules.h.
.PP
Referenced by ConfigReader::ReadInteger().
.SS "#define CONF_VALUE_NOT_FOUND 0x000100"
.PP
-Definition at line 1515 of file modules.h.
+Definition at line 1519 of file modules.h.
.PP
Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigReader::ReadValue().
.SS "#define DEBUG 10"
@@ -351,7 +351,7 @@ Low level definition of a \fBFileReader\fP classes file cache area.
Definition at line 65 of file modules.h.
.SS "typedef DLLFactory<\fBModuleFactory\fP> \fBircd_module\fP"
.PP
-Definition at line 1682 of file modules.h.
+Definition at line 1686 of file modules.h.
.SS "typedef \fBfile_cache\fP \fBstring_list\fP"
.PP
Definition at line 70 of file modules.h.
diff --git a/docs/man/man3/serverrec.3 b/docs/man/man3/serverrec.3
deleted file mode 100644
index 428f509df..000000000
--- a/docs/man/man3/serverrec.3
+++ /dev/null
@@ -1,733 +0,0 @@
-.TH "serverrec" 3 "30 May 2005" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-serverrec \- A class that defines the local server or a remote server.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <servers.h>\fP
-.PP
-Inherits \fBconnection\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBserverrec\fP ()"
-.br
-.RI "\fIConstructor. \fP"
-.ti -1c
-.RI "\fBserverrec\fP (char *n, long ver, bool jupe)"
-.br
-.RI "\fIConstructor which initialises some of the main variables. \fP"
-.ti -1c
-.RI "\fB~serverrec\fP ()"
-.br
-.RI "\fIDestructor. \fP"
-.ti -1c
-.RI "bool \fBCreateListener\fP (char *\fBhost\fP, int p)"
-.br
-.RI "\fICreate a listening socket on 'host' using port number 'p'. \fP"
-.ti -1c
-.RI "bool \fBBeginLink\fP (char *targethost, int \fBport\fP, char *password, char *servername, int myport)"
-.br
-.RI "\fIBegin an outbound link to another ircd at targethost. \fP"
-.ti -1c
-.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
-.RI "void \fBTerminateLink\fP (char *targethost)"
-.br
-.RI "\fITerminate a link to 'targethost' by calling the \fBircd_connector::CloseConnection\fP method. \fP"
-.ti -1c
-.RI "bool \fBSendPacket\fP (char *message, const char *\fBhost\fP)"
-.br
-.RI "\fISend a message to a server by name, if the server is unavailable directly route the packet via another server If the server still cannot be reached after attempting to route the message remotely, returns false. \fP"
-.ti -1c
-.RI "bool \fBRecvPacket\fP (std::deque< std::string > &messages, char *\fBhost\fP, std::deque< std::string > &sums)"
-.br
-.RI "\fIReturns the next available packet and returns true if data is available. \fP"
-.ti -1c
-.RI "\fBircd_connector\fP * \fBFindHost\fP (std::string \fBhost\fP)"
-.br
-.RI "\fIFind the \fBircd_connector\fP oject related to a certain servername given in 'host'. \fP"
-.ti -1c
-.RI "bool \fBAddIncoming\fP (int \fBfd\fP, char *targethost, int sourceport)"
-.br
-.RI "\fIAdd an incoming connection to the connection pool. \fP"
-.ti -1c
-.RI "void \fBFlushWriteBuffers\fP ()"
-.br
-.RI "\fIFlushes all data waiting to be written for all of this server's connections. \fP"
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBname\fP [MAXBUF]"
-.br
-.RI "\fIserver name \fP"
-.ti -1c
-.RI "long \fBpingtime\fP"
-.br
-.RI "\fIlast ping response (ms) \fP"
-.ti -1c
-.RI "long \fBusercount_i\fP"
-.br
-.RI "\fIinvisible users on server \fP"
-.ti -1c
-.RI "long \fBusercount\fP"
-.br
-.RI "\fInon-invisible users on server \fP"
-.ti -1c
-.RI "long \fBopercount\fP"
-.br
-.RI "\fIopers on server \fP"
-.ti -1c
-.RI "int \fBhops_away\fP"
-.br
-.RI "\fInumber of hops away (for quick access) \fP"
-.ti -1c
-.RI "long \fBversion\fP"
-.br
-.RI "\fIircd version \fP"
-.ti -1c
-.RI "bool \fBjupiter\fP"
-.br
-.RI "\fIis a JUPE server (faked to enforce a server ban) \fP"
-.ti -1c
-.RI "char \fBdescription\fP [MAXBUF]"
-.br
-.RI "\fIDescription of the server. \fP"
-.ti -1c
-.RI "char \fBnickserv\fP [NICKMAX]"
-.br
-.RI "\fIHolds nickserv's name on U:lined (services) servers (this is a kludge for ircservices which ASSUMES things :/). \fP"
-.ti -1c
-.RI "bool \fBsync_soon\fP"
-.br
-.ti -1c
-.RI "std::vector< \fBircd_connector\fP > \fBconnectors\fP"
-.br
-.RI "\fIWith a serverrec, this is a list of all established server connections. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-A class that defines the local server or a remote server. Definition at line 30 of file servers.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "serverrec::serverrec ()"
-.PP
-Constructor. Definition at line 46 of file servers.cpp.
-.PP
-References connectors, connection::fd, hops_away, jupiter, connection::lastping, name, nickserv, opercount, pingtime, connection::signon, sync_soon, TIME, usercount, usercount_i, and version.
-.PP
-.nf
-47 {
-48 strlcpy(name,'',256);
-49 pingtime = 0;
-50 lastping = TIME;
-51 usercount_i = usercount = opercount = version = 0;
-52 hops_away = 1;
-53 signon = TIME;
-54 jupiter = false;
-55 fd = 0;
-56 sync_soon = false;
-57 strlcpy(nickserv,'',NICKMAX);
-58 connectors.clear();
-59 }
-.fi
-.SS "serverrec::serverrec (char * n, long ver, bool jupe)"
-.PP
-Constructor which initialises some of the main variables. Definition at line 66 of file servers.cpp.
-.PP
-References connectors, connection::fd, hops_away, jupiter, connection::lastping, name, nickserv, opercount, connection::signon, sync_soon, TIME, usercount, usercount_i, and version.
-.PP
-.nf
-67 {
-68 strlcpy(name,n,256);
-69 lastping = TIME;
-70 usercount_i = usercount = opercount = 0;
-71 version = ver;
-72 hops_away = 1;
-73 signon = TIME;
-74 jupiter = jupe;
-75 fd = 0;
-76 sync_soon = false;
-77 strlcpy(nickserv,'',NICKMAX);
-78 connectors.clear();
-79 }
-.fi
-.SS "serverrec::~\fBserverrec\fP ()"
-.PP
-Destructor. Definition at line 62 of file servers.cpp.
-.PP
-.nf
-63 {
-64 }
-.fi
-.SH "Member Function Documentation"
-.PP
-.SS "bool serverrec::AddIncoming (int fd, char * targethost, int sourceport)"
-.PP
-Add an incoming connection to the connection pool. (reserved for core use) Definition at line 212 of file servers.cpp.
-.PP
-References connectors, DEBUG, ircd_connector::SetDescriptor(), ircd_connector::SetHostAndPort(), ircd_connector::SetServerName(), ircd_connector::SetState(), and STATE_NOAUTH_INBOUND.
-.PP
-.nf
-213 {
-214 ircd_connector connector;
-215
-216 // targethost has been turned into an ip...
-217 // we dont want this as the server name.
-218 connector.SetServerName(targethost);
-219 connector.SetDescriptor(newfd);
-220 connector.SetState(STATE_NOAUTH_INBOUND);
-221 int flags = fcntl(newfd, F_GETFL, 0);
-222 fcntl(newfd, F_SETFL, flags | O_NONBLOCK);
-223 int sendbuf = 32768;
-224 int recvbuf = 32768;
-225 setsockopt(newfd,SOL_SOCKET,SO_SNDBUF,(const void *)&sendbuf,sizeof(sendbuf));
-226 setsockopt(newfd,SOL_SOCKET,SO_RCVBUF,(const void *)&recvbuf,sizeof(sendbuf));
-227 connector.SetHostAndPort(targethost, sourceport);
-228 connector.SetState(STATE_NOAUTH_INBOUND);
-229 log(DEBUG,'serverrec::AddIncoming() Added connection: %s:%d',targethost,sourceport);
-230 this->connectors.push_back(connector);
-231 return true;
-232 }
-.fi
-.SS "bool serverrec::BeginLink (char * targethost, int port, char * password, char * servername, int myport)"
-.PP
-Begin an outbound link to another ircd at targethost. Definition at line 142 of file servers.cpp.
-.PP
-References connectors, connection::fd, FindHost(), ircd_connector::MakeOutboundConnection(), SendPacket(), ircd_connector::SetHostAndPort(), ircd_connector::SetServerName(), ircd_connector::SetState(), STATE_DISCONNECTED, and STATE_NOAUTH_OUTBOUND.
-.PP
-.nf
-143 {
-144 char connect[MAXBUF];
-145
-146 ircd_connector connector;
-147 ircd_connector *cn = this->FindHost(servername);
-148
-149
-150 if (cn)
-151 {
-152 WriteOpers('CONNECT aborted: Server %s already exists',servername);
-153 return false;
-154 }
-155
-156
-157 if (this->fd)
-158 {
-159 if (connector.MakeOutboundConnection(targethost,newport))
-160 {
-161 // targethost has been turned into an ip...
-162 // we dont want this as the server name.
-163 connector.SetServerName(servername);
-164 snprintf(connect,MAXBUF,'S %s %s %lu %s :%s',getservername().c_str(),password,(unsigned long)myport,GetRevision().c_str(),getserverdesc().c_str());
-165 connector.SetState(STATE_NOAUTH_OUTBOUND);
-166 connector.SetHostAndPort(targethost, newport);
-167 this->connectors.push_back(connector);
-168 // this packet isn't actually sent until the socket connects -- the STATE_NOAUTH_OUTBOUND state
-169 // queues outbound data until the socket is polled as writeable (e.g. the connection is established)
-170 return this->SendPacket(connect, servername);
-171 }
-172 else
-173 {
-174 connector.SetState(STATE_DISCONNECTED);
-175 WriteOpers('Could not create outbound connection to %s:%d',targethost,newport);
-176 }
-177 }
-178 return false;
-179 }
-.fi
-.SS "bool serverrec::CreateListener (char * host, int p)"
-.PP
-Create a listening socket on 'host' using port number 'p'. Definition at line 81 of file servers.cpp.
-.PP
-References connection::fd, MaxConn, and connection::port.
-.PP
-.nf
-82 {
-83 sockaddr_in host_address;
-84 int flags;
-85 in_addr addy;
-86 int on = 0;
-87 struct linger linger = { 0 };
-88
-89 this->port = p;
-90
-91 fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-92 if (fd <= 0)
-93 {
-94 return false;
-95 }
-96
-97 setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,(const char*)&on,sizeof(on));
-98 linger.l_onoff = 1;
-99 linger.l_linger = 1;
-100 setsockopt(fd,SOL_SOCKET,SO_LINGER,(const char*)&linger,sizeof(linger));
-101
-102 // attempt to increase socket sendq and recvq as high as its possible
-103 // to get them on linux.
-104 int sendbuf = 32768;
-105 int recvbuf = 32768;
-106 setsockopt(fd,SOL_SOCKET,SO_SNDBUF,(const void *)&sendbuf,sizeof(sendbuf));
-107 setsockopt(fd,SOL_SOCKET,SO_RCVBUF,(const void *)&recvbuf,sizeof(sendbuf));
-108
-109 memset((void*)&host_address, 0, sizeof(host_address));
-110
-111 host_address.sin_family = AF_INET;
-112
-113 if (!strcmp(newhost,''))
-114 {
-115 host_address.sin_addr.s_addr = htonl(INADDR_ANY);
-116 }
-117 else
-118 {
-119 inet_aton(newhost,&addy);
-120 host_address.sin_addr = addy;
-121 }
-122
-123 host_address.sin_port = htons(p);
-124
-125 if (bind(fd,(sockaddr*)&host_address,sizeof(host_address))<0)
-126 {
-127 return false;
-128 }
-129
-130 // make the socket non-blocking
-131 flags = fcntl(fd, F_GETFL, 0);
-132 fcntl(fd, F_SETFL, flags | O_NONBLOCK);
-133
-134 this->port = p;
-135
-136 listen(this->fd, MaxConn);
-137
-138 return true;
-139 }
-.fi
-.SS "\fBircd_connector\fP * serverrec::FindHost (std::string host)"
-.PP
-Find the \fBircd_connector\fP oject related to a certain servername given in 'host'. Definition at line 242 of file servers.cpp.
-.PP
-References connectors.
-.PP
-Referenced by BeginLink(), and SendPacket().
-.PP
-.nf
-243 {
-244 for (int i = 0; i < this->connectors.size(); i++)
-245 {
-246 if (this->connectors[i].GetServerName() == findhost)
-247 {
-248 return &this->connectors[i];
-249 }
-250 }
-251 return NULL;
-252 }
-.fi
-.SS "void serverrec::FlushWriteBuffers ()"
-.PP
-Flushes all data waiting to be written for all of this server's connections. Definition at line 274 of file servers.cpp.
-.PP
-References connectors, has_been_netsplit, IsRoutable(), STATE_DISCONNECTED, STATE_NOAUTH_INBOUND, STATE_NOAUTH_OUTBOUND, and TIME.
-.PP
-.nf
-275 {
-276 char buffer[MAXBUF];
-277 for (int i = 0; i < this->connectors.size(); i++)
-278 {
-279 // don't try and ping a NOAUTH_OUTBOUND state, its not authed yet!
-280 if ((this->connectors[i].GetState() == STATE_NOAUTH_OUTBOUND) && (TIME > this->connectors[i].age+30))
-281 {
-282 // however if we reach this timer its connected timed out :)
-283 WriteOpers('*** Connection to %s timed out',this->connectors[i].GetServerName().c_str());
-284 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str());
-285 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-286 DoSplit(this->connectors[i].GetServerName().c_str());
-287 return;
-288 }
-289 if ((this->connectors[i].GetState() == STATE_NOAUTH_INBOUND) && (TIME > this->connectors[i].age+30))
-290 {
-291 WriteOpers('*** Connection from %s timed out',this->connectors[i].GetServerName().c_str());
-292 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str());
-293 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-294 DoSplit(this->connectors[i].GetServerName().c_str());
-295 return;
-296 }
-297 if (this->connectors[i].GetState() != STATE_DISCONNECTED)
-298 {
-299 if (!this->connectors[i].CheckPing())
-300 {
-301 WriteOpers('*** Lost single connection to %s: Ping timeout',this->connectors[i].GetServerName().c_str());
-302 this->connectors[i].CloseConnection();
-303 this->connectors[i].SetState(STATE_DISCONNECTED);
-304 if (!IsRoutable(this->connectors[i].GetServerName()))
-305 {
-306 WriteOpers('*** Server %s is no longer routable, disconnecting.',this->connectors[i].GetServerName().c_str());
-307 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str());
-308 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-309 DoSplit(this->connectors[i].GetServerName().c_str());
-310 }
-311 has_been_netsplit = true;
-312 }
-313 }
-314 if ((this->connectors[i].GetWriteError() !='') && (this->connectors[i].GetState() != STATE_DISCONNECTED))
-315 {
-316 // if we're here the write() caused an error, we cannot proceed
-317 WriteOpers('*** Lost single connection to %s, link inactive and retrying: %s',this->connectors[i].GetServerName().c_str(),this->connectors[i].GetWriteError().c_str());
-318 this->connectors[i].CloseConnection();
-319 this->connectors[i].SetState(STATE_DISCONNECTED);
-320 if (!IsRoutable(this->connectors[i].GetServerName()))
-321 {
-322 WriteOpers('*** Server %s is no longer routable, disconnecting.',this->connectors[i].GetServerName().c_str());
-323 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str());
-324 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-325 DoSplit(this->connectors[i].GetServerName().c_str());
-326 }
-327 has_been_netsplit = true;
-328 }
-329 if ((this->connectors[i].HasBufferedOutput()) && (this->connectors[i].GetState() != STATE_DISCONNECTED))
-330 {
-331 if (!this->connectors[i].FlushWriteBuf())
-332 {
-333 // if we're here the write() caused an error, we cannot proceed
-334 WriteOpers('*** Lost single connection to %s, link inactive and retrying: %s',this->connectors[i].GetServerName().c_str(),this->connectors[i].GetWriteError().c_str());
-335 this->connectors[i].CloseConnection();
-336 this->connectors[i].SetState(STATE_DISCONNECTED);
-337 if (!IsRoutable(this->connectors[i].GetServerName()))
-338 {
-339 WriteOpers('*** Server %s is no longer routable, disconnecting.',this->connectors[i].GetServerName().c_str());
-340 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str());
-341 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-342 DoSplit(this->connectors[i].GetServerName().c_str());
-343 }
-344 has_been_netsplit = true;
-345 }
-346 }
-347 }
-348 }
-.fi
-.SS "bool serverrec::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. Definition at line 182 of file servers.cpp.
-.PP
-References connectors, connection::fd, ircd_connector::MakeOutboundConnection(), SendPacket(), ircd_connector::SetHostAndPort(), ircd_connector::SetServerName(), ircd_connector::SetState(), STATE_DISCONNECTED, and STATE_NOAUTH_OUTBOUND.
-.PP
-.nf
-183 {
-184 char connect[MAXBUF];
-185
-186 ircd_connector connector;
-187
-188 WriteOpers('Establishing meshed link to %s:%d',servername,newport);
-189
-190 if (this->fd)
-191 {
-192 if (connector.MakeOutboundConnection(targethost,newport))
-193 {
-194 // targethost has been turned into an ip...
-195 // we dont want this as the server name.
-196 connector.SetServerName(servername);
-197 snprintf(connect,MAXBUF,'- %lu %s :%s',cookie,getservername().c_str(),getserverdesc().c_str());
-198 connector.SetState(STATE_NOAUTH_OUTBOUND);
-199 connector.SetHostAndPort(targethost, newport);
-200 this->connectors.push_back(connector);
-201 return this->SendPacket(connect, servername);
-202 }
-203 else
-204 {
-205 connector.SetState(STATE_DISCONNECTED);
-206 WriteOpers('Could not create outbound connection to %s:%d',targethost,newport);
-207 }
-208 }
-209 return false;
-210 }
-.fi
-.SS "bool serverrec::RecvPacket (std::deque< std::string > & messages, char * host, std::deque< std::string > & sums)"
-.PP
-Returns the next available packet and returns true if data is available. Writes the servername the data came from to 'host'. If no data is available this function returns false. This function will automatically close broken links and reroute pathways, generating split messages on the network. Definition at line 445 of file servers.cpp.
-.PP
-References already_have_sum(), connectors, DEBUG, has_been_netsplit, IsRoutable(), and STATE_DISCONNECTED.
-.PP
-.nf
-446 {
-447 char data[65536],buffer[MAXBUF];
-448 memset(data, 0, 65536);
-449 for (int i = 0; i < this->connectors.size(); i++)
-450 {
-451 if (this->connectors[i].GetState() != STATE_DISCONNECTED)
-452 {
-453 // returns false if the packet could not be sent (e.g. target host down)
-454 int rcvsize = 0;
-455
-456 // check if theres any data on this socket
-457 // if not, continue onwards to the next.
-458 pollfd polls;
-459 polls.fd = this->connectors[i].GetDescriptor();
-460 polls.events = POLLIN;
-461 int ret = poll(&polls,1,1);
-462 if (ret <= 0) continue;
-463
-464 rcvsize = recv(this->connectors[i].GetDescriptor(),data,65000,0);
-465 data[rcvsize] = '\0';
-466 if (rcvsize == 0)
-467 {
-468 log(DEBUG,'recv() failed for serverrec::RecvPacket(): EOF');
-469 log(DEBUG,'Disabling connector: %s',this->connectors[i].GetServerName().c_str());
-470 this->connectors[i].CloseConnection();
-471 this->connectors[i].SetState(STATE_DISCONNECTED);
-472 if (!IsRoutable(this->connectors[i].GetServerName()))
-473 {
-474 WriteOpers('*** Server %s is no longer routable, disconnecting (EOF)',this->connectors[i].GetServerName().c_str());
-475 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str());
-476 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-477 DoSplit(this->connectors[i].GetServerName().c_str());
-478 }
-479 has_been_netsplit = true;
-480 }
-481 if (rcvsize == -1)
-482 {
-483 if (errno != EAGAIN)
-484 {
-485 log(DEBUG,'recv() failed for serverrec::RecvPacket(): %s',strerror(errno));
-486 log(DEBUG,'Disabling connector: %s',this->connectors[i].GetServerName().c_str());
-487 this->connectors[i].CloseConnection();
-488 this->connectors[i].SetState(STATE_DISCONNECTED);
-489 if (!IsRoutable(this->connectors[i].GetServerName()))
-490 {
-491 WriteOpers('*** Server %s is no longer routable, disconnecting.',this->connectors[i].GetServerName().c_str());
-492 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str());
-493 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-494 DoSplit(this->connectors[i].GetServerName().c_str());
-495 }
-496 has_been_netsplit = true;
-497 }
-498 }
-499 int pushed = 0;
-500 if (rcvsize > 0)
-501 {
-502 if (!this->connectors[i].AddBuffer(data))
-503 {
-504 WriteOpers('*** Read buffer for %s exceeds maximum, closing connection!',this->connectors[i].GetServerName().c_str());
-505 this->connectors[i].CloseConnection();
-506 this->connectors[i].SetState(STATE_DISCONNECTED);
-507 if (!IsRoutable(this->connectors[i].GetServerName()))
-508 {
-509 WriteOpers('*** Server %s is no longer routable, disconnecting.',this->connectors[i].GetServerName().c_str());
-510 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str());
-511 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-512 DoSplit(this->connectors[i].GetServerName().c_str());
-513 }
-514 has_been_netsplit = true;
-515 }
-516 if (this->connectors[i].BufferIsComplete())
-517 {
-518 this->connectors[i].ResetPing();
-519 while (this->connectors[i].BufferIsComplete())
-520 {
-521 std::string text = this->connectors[i].GetBuffer();
-522 if (text != '')
-523 {
-524 if ((text[0] == ':') && (text.find(' ') != std::string::npos))
-525 {
-526 std::string orig = text;
-527 log(DEBUG,'Original: %s',text.c_str());
-528 std::string sum = text.substr(1,text.find(' ')-1);
-529 text = text.substr(text.find(' ')+1,text.length());
-530 std::string possible_token = text.substr(1,text.find(' ')-1);
-531 if (possible_token.length() > 1)
-532 {
-533 sums.push_back('*');
-534 text = orig;
-535 log(DEBUG,'Non-mesh, non-tokenized string passed up the chain');
-536 }
-537 else
-538 {
-539 log(DEBUG,'Packet sum: '%s'',sum.c_str());
-540 if ((already_have_sum(sum)) && (sum != '*'))
-541 {
-542 // we don't accept dupes
-543 continue;
-544 }
-545 sums.push_back(sum.c_str());
-546 }
-547 }
-548 else sums.push_back('*');
-549 messages.push_back(text.c_str());
-550 strlcpy(recvhost,this->connectors[i].GetServerName().c_str(),160);
-551 log(DEBUG,'serverrec::RecvPacket() %d:%s->%s',pushed++,recvhost,text.c_str());
-552 }
-553 }
-554 return true;
-555 }
-556 }
-557 }
-558 }
-559 // nothing new yet -- message and host will be undefined
-560 return false;
-561 }
-.fi
-.SS "bool serverrec::SendPacket (char * message, const char * host)"
-.PP
-Send a message to a server by name, if the server is unavailable directly route the packet via another server If the server still cannot be reached after attempting to route the message remotely, returns false. Definition at line 350 of file servers.cpp.
-.PP
-References ircd_connector::AddWriteBuf(), ircd_connector::CloseConnection(), connectors, DEBUG, FindHost(), ircd_connector::FlushWriteBuf(), ircd_connector::GetServerName(), ircd_connector::GetState(), ircd_connector::GetWriteError(), ircd_connector::SetState(), and STATE_DISCONNECTED.
-.PP
-Referenced by BeginLink(), and MeshCookie().
-.PP
-.nf
-351 {
-352 if ((!message) || (!sendhost))
-353 return true;
-354
-355 ircd_connector* cn = this->FindHost(sendhost);
-356
-357 if (!strchr(message,'\n'))
-358 {
-359 strlcat(message,'\n',MAXBUF);
-360 }
-361
-362 if (cn)
-363 {
-364 log(DEBUG,'main: serverrec::SendPacket() sent '%s' to %s',message,cn->GetServerName().c_str());
-365
-366 if (cn->GetState() == STATE_DISCONNECTED)
-367 {
-368 // fix: can only route one hop to avoid a loop
-369 if (strncmp(message,'R ',2))
-370 {
-371 log(DEBUG,'Not a double reroute');
-372 // this route is down, we must re-route the packet through an available point in the mesh.
-373 for (int k = 0; k < this->connectors.size(); k++)
-374 {
-375 log(DEBUG,'Check connector %d: %s',k,this->connectors[k].GetServerName().c_str());
-376 // search for another point in the mesh which can 'reach' where we want to go
-377 for (int m = 0; m < this->connectors[k].routes.size(); m++)
-378 {
-379 if (!strcasecmp(this->connectors[k].routes[m].c_str(),sendhost))
-380 {
-381 log(DEBUG,'Found alternative route for packet: %s',this->connectors[k].GetServerName().c_str());
-382 char buffer[MAXBUF];
-383 snprintf(buffer,MAXBUF,'R %s %s',sendhost,message);
-384 this->SendPacket(buffer,this->connectors[k].GetServerName().c_str());
-385 return true;
-386 }
-387 }
-388 }
-389 }
-390 char buffer[MAXBUF];
-391 snprintf(buffer,MAXBUF,'& %s',sendhost);
-392 WriteOpers('*** All connections to %s lost.',sendhost);
-393 NetSendToAllExcept(sendhost,buffer);
-394 DoSplit(sendhost);
-395 return false;
-396 }
-397
-398 // returns false if the packet could not be sent (e.g. target host down)
-399 if (!cn->AddWriteBuf(message))
-400 {
-401 // if we're here, there was an error pending, and the send cannot proceed
-402 log(DEBUG,'cn->AddWriteBuf() failed for serverrec::SendPacket(): %s',cn->GetWriteError().c_str());
-403 log(DEBUG,'Disabling connector: %s',cn->GetServerName().c_str());
-404 cn->CloseConnection();
-405 cn->SetState(STATE_DISCONNECTED);
-406 WriteOpers('*** Lost single connection to %s, link inactive and retrying: %s',cn->GetServerName().c_str(),cn->GetWriteError().c_str());
-407 // retry the packet along a new route so either arrival OR failure are gauranteed (bugfix)
-408 return this->SendPacket(message,sendhost);
-409 }
-410 if (!cn->FlushWriteBuf())
-411 {
-412 // if we're here the write() caused an error, we cannot proceed
-413 log(DEBUG,'cn->FlushWriteBuf() failed for serverrec::SendPacket(): %s',cn->GetWriteError().c_str());
-414 log(DEBUG,'Disabling connector: %s',cn->GetServerName().c_str());
-415 cn->CloseConnection();
-416 cn->SetState(STATE_DISCONNECTED);
-417 WriteOpers('*** Lost single connection to %s, link inactive and retrying: %s',cn->GetServerName().c_str(),cn->GetWriteError().c_str());
-418 // retry the packet along a new route so either arrival OR failure are gauranteed
-419 return this->SendPacket(message,sendhost);
-420 }
-421 return true;
-422 }
-423 }
-.fi
-.SS "void serverrec::TerminateLink (char * targethost)"
-.PP
-Terminate a link to 'targethost' by calling the \fBircd_connector::CloseConnection\fP method. Definition at line 234 of file servers.cpp.
-.PP
-.nf
-235 {
-236 // this locates the targethost in the serverrec::connectors vector of the class,
-237 // and terminates it by sending it an SQUIT token and closing its descriptor.
-238 // TerminateLink with a null string causes a terminate of ALL links
-239 }
-.fi
-.SH "Member Data Documentation"
-.PP
-.SS "std::vector<\fBircd_connector\fP> \fBserverrec::connectors\fP"
-.PP
-With a serverrec, this is a list of all established server connections. Definition at line 81 of file servers.h.
-.PP
-Referenced by AddIncoming(), BeginLink(), FindHost(), FlushWriteBuffers(), IsRoutable(), MeshCookie(), RecvPacket(), SendPacket(), and serverrec().
-.SS "char \fBserverrec::description\fP[MAXBUF]"
-.PP
-Description of the server. Definition at line 61 of file servers.h.
-.SS "int \fBserverrec::hops_away\fP"
-.PP
-number of hops away (for quick access) Definition at line 51 of file servers.h.
-.PP
-Referenced by serverrec().
-.SS "bool \fBserverrec::jupiter\fP"
-.PP
-is a JUPE server (faked to enforce a server ban) Definition at line 57 of file servers.h.
-.PP
-Referenced by serverrec().
-.SS "char \fBserverrec::name\fP[MAXBUF]"
-.PP
-server name Definition at line 36 of file servers.h.
-.PP
-Referenced by serverrec().
-.SS "char \fBserverrec::nickserv\fP[NICKMAX]"
-.PP
-Holds nickserv's name on U:lined (services) servers (this is a kludge for ircservices which ASSUMES things :/). Definition at line 65 of file servers.h.
-.PP
-Referenced by serverrec().
-.SS "long \fBserverrec::opercount\fP"
-.PP
-opers on server Definition at line 48 of file servers.h.
-.PP
-Referenced by serverrec().
-.SS "long \fBserverrec::pingtime\fP"
-.PP
-last ping response (ms) Definition at line 39 of file servers.h.
-.PP
-Referenced by serverrec().
-.SS "bool \fBserverrec::sync_soon\fP"
-.PP
-Definition at line 67 of file servers.h.
-.PP
-Referenced by serverrec().
-.SS "long \fBserverrec::usercount\fP"
-.PP
-non-invisible users on server Definition at line 45 of file servers.h.
-.PP
-Referenced by serverrec().
-.SS "long \fBserverrec::usercount_i\fP"
-.PP
-invisible users on server Definition at line 42 of file servers.h.
-.PP
-Referenced by serverrec().
-.SS "long \fBserverrec::version\fP"
-.PP
-ircd version Definition at line 54 of file servers.h.
-.PP
-Referenced by serverrec().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/servers.cpp.3 b/docs/man/man3/servers.cpp.3
deleted file mode 100644
index ff4d1a736..000000000
--- a/docs/man/man3/servers.cpp.3
+++ /dev/null
@@ -1,150 +0,0 @@
-.TH "servers.cpp" 3 "30 May 2005" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-servers.cpp \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include 'servers.h'\fP
-.br
-\fC#include 'inspircd.h'\fP
-.br
-\fC#include <unistd.h>\fP
-.br
-\fC#include <fcntl.h>\fP
-.br
-\fC#include <poll.h>\fP
-.br
-\fC#include <sys/errno.h>\fP
-.br
-\fC#include <sys/ioctl.h>\fP
-.br
-\fC#include <sys/utsname.h>\fP
-.br
-\fC#include <vector>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include <sstream>\fP
-.br
-\fC#include <map>\fP
-.br
-\fC#include 'inspstring.h'\fP
-.br
-\fC#include 'helperfuncs.h'\fP
-.br
-\fC#include 'connection.h'\fP
-.br
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "bool \fBIsRoutable\fP (std::string servername)"
-.br
-.ti -1c
-.RI "bool \fBalready_have_sum\fP (std::string sum)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "time_t \fBTIME\fP"
-.br
-.ti -1c
-.RI "int \fBMaxConn\fP"
-.br
-.ti -1c
-.RI "\fBserverrec\fP * \fBme\fP [32]"
-.br
-.ti -1c
-.RI "bool \fBhas_been_netsplit\fP"
-.br
-.ti -1c
-.RI "std::deque< std::string > \fBxsums\fP"
-.br
-.in -1c
-.SH "Function Documentation"
-.PP
-.SS "bool already_have_sum (std::string sum)"
-.PP
-Definition at line 425 of file servers.cpp.
-.PP
-References xsums.
-.PP
-Referenced by serverrec::RecvPacket().
-.PP
-.nf
-426 {
-427 for (int i = 0; i < xsums.size(); i++)
-428 {
-429 if (xsums[i] == sum)
-430 {
-431 return true;
-432 }
-433 }
-434 if (xsums.size() >= 128)
-435 {
-436 xsums.pop_front();
-437 }
-438 xsums.push_back(sum);
-439 return false;
-440 }
-.fi
-.SS "bool IsRoutable (std::string servername)"
-.PP
-Definition at line 256 of file servers.cpp.
-.PP
-References serverrec::connectors, me, and STATE_DISCONNECTED.
-.PP
-Referenced by serverrec::FlushWriteBuffers(), and serverrec::RecvPacket().
-.PP
-.nf
-257 {
-258 int c = 0;
-259 for (int x = 0; x < 32; x++)
-260 if (me[x])
-261 {
-262 for (int i = 0; i < me[x]->connectors.size(); i++)
-263 {
-264 if ((me[x]->connectors[i].GetServerName() == servername) && (me[x]->connectors[i].GetState() != STATE_DISCONNECTED))
-265 {
-266 c++;
-267 }
-268 }
-269 }
-270 return (c != 0);
-271 }
-.fi
-.SH "Variable Documentation"
-.PP
-.SS "bool \fBhas_been_netsplit\fP"
-.PP
-Definition at line 42 of file servers.cpp.
-.PP
-Referenced by serverrec::FlushWriteBuffers(), and serverrec::RecvPacket().
-.SS "int \fBMaxConn\fP"
-.PP
-Definition at line 38 of file servers.cpp.
-.PP
-Referenced by serverrec::CreateListener().
-.SS "\fBserverrec\fP* \fBme\fP[32]"
-.PP
-Definition at line 40 of file servers.cpp.
-.SS "time_t \fBTIME\fP"
-.PP
-Definition at line 37 of file servers.cpp.
-.SS "std::deque<std::string> \fBxsums\fP"
-.PP
-Definition at line 44 of file servers.cpp.
-.PP
-Referenced by already_have_sum().
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/servers.h.3 b/docs/man/man3/servers.h.3
deleted file mode 100644
index 44c07711f..000000000
--- a/docs/man/man3/servers.h.3
+++ /dev/null
@@ -1,46 +0,0 @@
-.TH "servers.h" 3 "30 May 2005" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-servers.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include 'connection.h'\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <map>\fP
-.br
-
-.SS "Compounds"
-
-.in +1c
-.ti -1c
-.RI "class \fBserverrec\fP"
-.br
-.RI "\fIA class that defines the local server or a remote server. \fP"
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBLINK_ACTIVE\fP 1"
-.br
-.ti -1c
-.RI "#define \fBLINK_INACTIVE\fP 0"
-.br
-.in -1c
-.SH "Define Documentation"
-.PP
-.SS "#define LINK_ACTIVE 1"
-.PP
-Definition at line 25 of file servers.h.
-.SS "#define LINK_INACTIVE 0"
-.PP
-Definition at line 26 of file servers.h.
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/module-doc/annotated.html b/docs/module-doc/annotated.html
index 953b3abef..4138116fc 100644
--- a/docs/module-doc/annotated.html
+++ b/docs/module-doc/annotated.html
@@ -41,7 +41,7 @@
<tr><td class="indexkey"><a class="el" href="classQLine.html">QLine</a></td><td class="indexvalue">QLine class </td></tr>
<tr><td class="indexkey"><a class="el" href="classRequest.html">Request</a></td><td class="indexvalue">Unicast message directed at a given module </td></tr>
<tr><td class="indexkey"><a class="el" href="classServer.html">Server</a></td><td class="indexvalue">Allows server output and query functions This class contains methods which allow a module to query the state of the irc server, and produce output to users and other servers </td></tr>
- <tr><td class="indexkey"><a class="el" href="classServerConfig.html">ServerConfig</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="classServerConfig.html">ServerConfig</a></td><td class="indexvalue">This class holds the bulk of the runtime configuration for the ircd </td></tr>
<tr><td class="indexkey"><a class="el" href="classSocketEngine.html">SocketEngine</a></td><td class="indexvalue">The actual socketengine class presents the same interface on all operating systems, but its private members and internal behaviour should be treated as blackboxed, and vary from system to system and upon the config settings chosen by the server admin </td></tr>
<tr><td class="indexkey"><a class="el" href="structirc_1_1StrHashComp.html">irc::StrHashComp</a></td><td class="indexvalue">This class returns true if two strings match </td></tr>
<tr><td class="indexkey"><a class="el" href="classucrec.html">ucrec</a></td><td class="indexvalue">Holds a user's modes on a channel This class associates a users privilages with a channel by creating a pointer link between a userrec and chanrec class </td></tr>
@@ -51,7 +51,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 Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/base_8h-source.html b/docs/module-doc/base_8h-source.html
index 0f408fcca..48ac11d29 100644
--- a/docs/module-doc/base_8h-source.html
+++ b/docs/module-doc/base_8h-source.html
@@ -88,7 +88,7 @@
<a name="l00161"></a>00161
<a name="l00162"></a>00162 <span class="preprocessor">#endif</span>
<a name="l00163"></a>00163 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/base_8h.html b/docs/module-doc/base_8h.html
index 96473e680..1468dbb28 100644
--- a/docs/module-doc/base_8h.html
+++ b/docs/module-doc/base_8h.html
@@ -68,7 +68,7 @@ This graph shows which files directly or indirectly include this file:<p><center
Definition at line <a class="el" href="base_8h-source.html#l00026">26</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 Dec 14 14:49:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/channels_8cpp-source.html b/docs/module-doc/channels_8cpp-source.html
index 64c350bcc..49355b4a8 100644
--- a/docs/module-doc/channels_8cpp-source.html
+++ b/docs/module-doc/channels_8cpp-source.html
@@ -196,7 +196,7 @@
<a name="l00187"></a>00187 {
<a name="l00188"></a>00188 <span class="keywordflow">return</span> &amp;<a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>;
<a name="l00189"></a>00189 }
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/channels_8cpp.html b/docs/module-doc/channels_8cpp.html
index 2e0e6ea5e..996394eac 100644
--- a/docs/module-doc/channels_8cpp.html
+++ b/docs/module-doc/channels_8cpp.html
@@ -249,9 +249,9 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00146">chanrec::Get
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00933">933</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#l00938">938</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#l00722">Server::FindModule()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00727">Server::FindModule()</a>. </td>
</tr>
</table>
<a class="anchor" name="module_5Fnames"></a><!-- doxytag: member="channels.cpp::module_names" ref="module_5Fnames" args="" --><p>
@@ -299,7 +299,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00722">Server::FindM
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00722">Server::FindModule()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00727">Server::FindModule()</a>. </td>
</tr>
</table>
<a class="anchor" name="startup_5Ftime"></a><!-- doxytag: member="channels.cpp::startup_time" ref="startup_5Ftime" args="" --><p>
@@ -396,7 +396,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userre
</td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/channels_8h-source.html b/docs/module-doc/channels_8h-source.html
index 2d66f3926..b97c331ba 100644
--- a/docs/module-doc/channels_8h-source.html
+++ b/docs/module-doc/channels_8h-source.html
@@ -148,7 +148,7 @@
<a name="l00257"></a>00257
<a name="l00258"></a>00258 <span class="preprocessor">#endif</span>
<a name="l00259"></a>00259 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/channels_8h.html b/docs/module-doc/channels_8h.html
index 5012b33ef..70eddfacb 100644
--- a/docs/module-doc/channels_8h.html
+++ b/docs/module-doc/channels_8h.html
@@ -451,7 +451,7 @@ Holds a complete invite list.
Definition at line <a class="el" href="channels_8h-source.html#l00095">95</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 Dec 14 14:49:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classAdmin-members.html b/docs/module-doc/classAdmin-members.html
index 76da48ea6..083cbdaba 100644
--- a/docs/module-doc/classAdmin-members.html
+++ b/docs/module-doc/classAdmin-members.html
@@ -13,7 +13,7 @@
<tr class="memlist"><td><a class="el" href="classAdmin.html#Name">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#Nick">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#_7Eclassbase_28_29">~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 Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classAdmin.html b/docs/module-doc/classAdmin.html
index b6052bb4f..a42bdad48 100644
--- a/docs/module-doc/classAdmin.html
+++ b/docs/module-doc/classAdmin.html
@@ -165,7 +165,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00128">128</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 Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classBanItem-members.html b/docs/module-doc/classBanItem-members.html
index f36451712..69799a6c7 100644
--- a/docs/module-doc/classBanItem-members.html
+++ b/docs/module-doc/classBanItem-members.html
@@ -14,7 +14,7 @@
<tr class="memlist"><td><a class="el" href="classHostItem.html#set_5Ftime">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#_7Eclassbase_28_29">~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#_7EHostItem_28_29">~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 Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classBanItem.html b/docs/module-doc/classBanItem.html
index e716b98cd..a05193b22 100644
--- a/docs/module-doc/classBanItem.html
+++ b/docs/module-doc/classBanItem.html
@@ -30,7 +30,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#l00052">52</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 Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classBoolSet-members.html b/docs/module-doc/classBoolSet-members.html
index fa5588cd5..3b044c3fe 100644
--- a/docs/module-doc/classBoolSet-members.html
+++ b/docs/module-doc/classBoolSet-members.html
@@ -17,7 +17,7 @@
<tr class="memlist"><td><a class="el" href="classBoolSet.html#operator_7C_28BoolSet_20other_29">operator|</a>(BoolSet other)</td><td><a class="el" href="classBoolSet.html">BoolSet</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classBoolSet.html#Set_28int_20number_29">Set</a>(int number)</td><td><a class="el" href="classBoolSet.html">BoolSet</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classBoolSet.html#Unset_28int_20number_29">Unset</a>(int number)</td><td><a class="el" href="classBoolSet.html">BoolSet</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classBoolSet.html b/docs/module-doc/classBoolSet.html
index 8b69968c0..067b3beb3 100644
--- a/docs/module-doc/classBoolSet.html
+++ b/docs/module-doc/classBoolSet.html
@@ -405,7 +405,7 @@ Definition at line <a class="el" href="base_8h-source.html#l00106">106</a> of fi
</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 Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classConfigReader-members.html b/docs/module-doc/classConfigReader-members.html
index c38b6e130..06a8d7d5d 100644
--- a/docs/module-doc/classConfigReader-members.html
+++ b/docs/module-doc/classConfigReader-members.html
@@ -24,7 +24,7 @@
<tr class="memlist"><td><a class="el" href="classConfigReader.html#Verify_28_29">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#_7Eclassbase_28_29">~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#_7EConfigReader_28_29">~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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classConfigReader.html b/docs/module-doc/classConfigReader.html
index f5da7b3a4..24e0048aa 100644
--- a/docs/module-doc/classConfigReader.html
+++ b/docs/module-doc/classConfigReader.html
@@ -73,7 +73,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#l01525">1525</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#l01529">1529</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="ConfigReader_28_29"></a><!-- doxytag: member="ConfigReader::ConfigReader" ref="ConfigReader_28_29" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
@@ -102,16 +102,16 @@ 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#l00734">734</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#l00739">739</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l01533">cache</a>, <a class="el" href="classServerConfig.html#ClearStack_28_29">ServerConfig::ClearStack()</a>, <a class="el" href="modules_8h-source.html#l01516">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01538">error</a>, <a class="el" href="modules_8h-source.html#l01534">errorlog</a>, <a class="el" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">ServerConfig::LoadConf()</a>, and <a class="el" href="modules_8h-source.html#l01537">readerror</a>.<div class="fragment"><pre class="fragment"><a name="l00735"></a>00735 {
-<a name="l00736"></a>00736 <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
-<a name="l00737"></a>00737 this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00738"></a>00738 this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00739"></a>00739 this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(CONFIG_FILE,this-&gt;cache,this-&gt;errorlog);
-<a name="l00740"></a>00740 <span class="keywordflow">if</span> (!this-&gt;readerror)
-<a name="l00741"></a>00741 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
-<a name="l00742"></a>00742 }
+References <a class="el" href="modules_8h-source.html#l01537">cache</a>, <a class="el" href="classServerConfig.html#ClearStack_28_29">ServerConfig::ClearStack()</a>, <a class="el" href="modules_8h-source.html#l01520">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01542">error</a>, <a class="el" href="modules_8h-source.html#l01538">errorlog</a>, <a class="el" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">ServerConfig::LoadConf()</a>, and <a class="el" href="modules_8h-source.html#l01541">readerror</a>.<div class="fragment"><pre class="fragment"><a name="l00740"></a>00740 {
+<a name="l00741"></a>00741 <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
+<a name="l00742"></a>00742 this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00743"></a>00743 this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00744"></a>00744 this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(CONFIG_FILE,this-&gt;cache,this-&gt;errorlog);
+<a name="l00745"></a>00745 <span class="keywordflow">if</span> (!this-&gt;readerror)
+<a name="l00746"></a>00746 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
+<a name="l00747"></a>00747 }
</pre></div>
<p>
</td>
@@ -146,16 +146,16 @@ 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#l00754">754</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#l00759">759</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l01533">cache</a>, <a class="el" href="classServerConfig.html#ClearStack_28_29">ServerConfig::ClearStack()</a>, <a class="el" href="modules_8h-source.html#l01516">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01538">error</a>, <a class="el" href="modules_8h-source.html#l01534">errorlog</a>, <a class="el" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">ServerConfig::LoadConf()</a>, and <a class="el" href="modules_8h-source.html#l01537">readerror</a>.<div class="fragment"><pre class="fragment"><a name="l00755"></a>00755 {
-<a name="l00756"></a>00756 <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
-<a name="l00757"></a>00757 this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00758"></a>00758 this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00759"></a>00759 this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>,this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>);
-<a name="l00760"></a>00760 <span class="keywordflow">if</span> (!this-&gt;readerror)
-<a name="l00761"></a>00761 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
-<a name="l00762"></a>00762 };
+References <a class="el" href="modules_8h-source.html#l01537">cache</a>, <a class="el" href="classServerConfig.html#ClearStack_28_29">ServerConfig::ClearStack()</a>, <a class="el" href="modules_8h-source.html#l01520">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01542">error</a>, <a class="el" href="modules_8h-source.html#l01538">errorlog</a>, <a class="el" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">ServerConfig::LoadConf()</a>, and <a class="el" href="modules_8h-source.html#l01541">readerror</a>.<div class="fragment"><pre class="fragment"><a name="l00760"></a>00760 {
+<a name="l00761"></a>00761 <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
+<a name="l00762"></a>00762 this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00763"></a>00763 this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00764"></a>00764 this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>,this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>);
+<a name="l00765"></a>00765 <span class="keywordflow">if</span> (!this-&gt;readerror)
+<a name="l00766"></a>00766 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
+<a name="l00767"></a>00767 };
</pre></div>
<p>
</td>
@@ -189,14 +189,14 @@ Default destructor.
<p>
This method destroys the ConfigReader class.
<p>
-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>.
+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>
-References <a class="el" href="modules_8h-source.html#l01533">cache</a>, and <a class="el" href="modules_8h-source.html#l01534">errorlog</a>.<div class="fragment"><pre class="fragment"><a name="l00746"></a>00746 {
-<a name="l00747"></a>00747 <span class="keywordflow">if</span> (this-&gt;cache)
-<a name="l00748"></a>00748 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>;
-<a name="l00749"></a>00749 <span class="keywordflow">if</span> (this-&gt;errorlog)
-<a name="l00750"></a>00750 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
-<a name="l00751"></a>00751 }
+References <a class="el" href="modules_8h-source.html#l01537">cache</a>, and <a class="el" href="modules_8h-source.html#l01538">errorlog</a>.<div class="fragment"><pre class="fragment"><a name="l00751"></a>00751 {
+<a name="l00752"></a>00752 <span class="keywordflow">if</span> (this-&gt;cache)
+<a name="l00753"></a>00753 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>;
+<a name="l00754"></a>00754 <span class="keywordflow">if</span> (this-&gt;errorlog)
+<a name="l00755"></a>00755 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
+<a name="l00756"></a>00756 }
</pre></div>
<p>
</td>
@@ -241,38 +241,38 @@ 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#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#l00838">838</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l01534">errorlog</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, and <a class="el" href="users_8h-source.html#l00124">userrec::nick</a>.<div class="fragment"><pre class="fragment"><a name="l00834"></a>00834 {
-<a name="l00835"></a>00835 <span class="keywordflow">if</span> (bail)
-<a name="l00836"></a>00836 {
-<a name="l00837"></a>00837 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;str().c_str());
-<a name="l00838"></a>00838 exit(0);
-<a name="l00839"></a>00839 }
-<a name="l00840"></a>00840 <span class="keywordflow">else</span>
+References <a class="el" href="modules_8h-source.html#l01538">errorlog</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, and <a class="el" href="users_8h-source.html#l00124">userrec::nick</a>.<div class="fragment"><pre class="fragment"><a name="l00839"></a>00839 {
+<a name="l00840"></a>00840 <span class="keywordflow">if</span> (bail)
<a name="l00841"></a>00841 {
-<a name="l00842"></a>00842 <span class="keywordtype">char</span> dataline[1024];
-<a name="l00843"></a>00843 <span class="keywordflow">if</span> (user)
-<a name="l00844"></a>00844 {
-<a name="l00845"></a>00845 WriteServ(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
-<a name="l00846"></a>00846 <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
-<a name="l00847"></a>00847 {
-<a name="l00848"></a>00848 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
-<a name="l00849"></a>00849 WriteServ(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,dataline);
-<a name="l00850"></a>00850 }
-<a name="l00851"></a>00851 }
-<a name="l00852"></a>00852 <span class="keywordflow">else</span>
-<a name="l00853"></a>00853 {
-<a name="l00854"></a>00854 WriteOpers(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
-<a name="l00855"></a>00855 <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
-<a name="l00856"></a>00856 {
-<a name="l00857"></a>00857 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
-<a name="l00858"></a>00858 WriteOpers(dataline);
-<a name="l00859"></a>00859 }
-<a name="l00860"></a>00860 }
-<a name="l00861"></a>00861 <span class="keywordflow">return</span>;
-<a name="l00862"></a>00862 }
-<a name="l00863"></a>00863 }
+<a name="l00842"></a>00842 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;str().c_str());
+<a name="l00843"></a>00843 exit(0);
+<a name="l00844"></a>00844 }
+<a name="l00845"></a>00845 <span class="keywordflow">else</span>
+<a name="l00846"></a>00846 {
+<a name="l00847"></a>00847 <span class="keywordtype">char</span> dataline[1024];
+<a name="l00848"></a>00848 <span class="keywordflow">if</span> (user)
+<a name="l00849"></a>00849 {
+<a name="l00850"></a>00850 WriteServ(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00851"></a>00851 <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
+<a name="l00852"></a>00852 {
+<a name="l00853"></a>00853 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
+<a name="l00854"></a>00854 WriteServ(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,dataline);
+<a name="l00855"></a>00855 }
+<a name="l00856"></a>00856 }
+<a name="l00857"></a>00857 <span class="keywordflow">else</span>
+<a name="l00858"></a>00858 {
+<a name="l00859"></a>00859 WriteOpers(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00860"></a>00860 <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
+<a name="l00861"></a>00861 {
+<a name="l00862"></a>00862 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
+<a name="l00863"></a>00863 WriteOpers(dataline);
+<a name="l00864"></a>00864 }
+<a name="l00865"></a>00865 }
+<a name="l00866"></a>00866 <span class="keywordflow">return</span>;
+<a name="l00867"></a>00867 }
+<a name="l00868"></a>00868 }
</pre></div>
<p>
</td>
@@ -307,11 +307,11 @@ 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#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">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#l00866">866</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#l00871">871</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l01533">cache</a>, and <a class="el" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">ServerConfig::EnumConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00867"></a>00867 {
-<a name="l00868"></a>00868 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,tag.c_str());
-<a name="l00869"></a>00869 }
+References <a class="el" href="modules_8h-source.html#l01537">cache</a>, and <a class="el" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">ServerConfig::EnumConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00872"></a>00872 {
+<a name="l00873"></a>00873 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,tag.c_str());
+<a name="l00874"></a>00874 }
</pre></div>
<p>
</td>
@@ -355,11 +355,11 @@ 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#l00871">871</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#l00876">876</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l01533">cache</a>, and <a class="el" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">ServerConfig::EnumValues()</a>.<div class="fragment"><pre class="fragment"><a name="l00872"></a>00872 {
-<a name="l00873"></a>00873 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(<a class="code" href="classConfigReader.html#cache">cache</a>, tag.c_str(), index);
-<a name="l00874"></a>00874 }
+References <a class="el" href="modules_8h-source.html#l01537">cache</a>, and <a class="el" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">ServerConfig::EnumValues()</a>.<div class="fragment"><pre class="fragment"><a name="l00877"></a>00877 {
+<a name="l00878"></a>00878 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(<a class="code" href="classConfigReader.html#cache">cache</a>, tag.c_str(), index);
+<a name="l00879"></a>00879 }
</pre></div>
<p>
</td>
@@ -393,13 +393,13 @@ 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#GetError_28_29">GetError()</a> resets the error flag back to 0.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00826">826</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#l00831">831</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l01538">error</a>.<div class="fragment"><pre class="fragment"><a name="l00827"></a>00827 {
-<a name="l00828"></a>00828 <span class="keywordtype">long</span> olderr = this-&gt;<a class="code" href="classConfigReader.html#error">error</a>;
-<a name="l00829"></a>00829 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = 0;
-<a name="l00830"></a>00830 <span class="keywordflow">return</span> olderr;
-<a name="l00831"></a>00831 }
+References <a class="el" href="modules_8h-source.html#l01542">error</a>.<div class="fragment"><pre class="fragment"><a name="l00832"></a>00832 {
+<a name="l00833"></a>00833 <span class="keywordtype">long</span> olderr = this-&gt;<a class="code" href="classConfigReader.html#error">error</a>;
+<a name="l00834"></a>00834 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = 0;
+<a name="l00835"></a>00835 <span class="keywordflow">return</span> olderr;
+<a name="l00836"></a>00836 }
</pre></div>
<p>
</td>
@@ -449,23 +449,23 @@ 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#l00780">780</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01533">cache</a>, <a class="el" href="modules_8h-source.html#l01515">CONF_VALUE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01538">error</a>, and <a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ServerConfig::ReadConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00781"></a>00781 {
-<a name="l00782"></a>00782 <span class="keywordtype">char</span> val[MAXBUF];
-<a name="l00783"></a>00783 <span class="keywordtype">char</span> t[MAXBUF];
-<a name="l00784"></a>00784 <span class="keywordtype">char</span> n[MAXBUF];
-<a name="l00785"></a>00785 strlcpy(t,tag.c_str(),MAXBUF);
-<a name="l00786"></a>00786 strlcpy(n,name.c_str(),MAXBUF);
-<a name="l00787"></a>00787 <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
-<a name="l00788"></a>00788 <span class="keywordflow">if</span> (!res)
-<a name="l00789"></a>00789 {
-<a name="l00790"></a>00790 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
-<a name="l00791"></a>00791 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00792"></a>00792 }
-<a name="l00793"></a>00793 <a class="code" href="namespaceirc.html#string">std::string</a> s = val;
-<a name="l00794"></a>00794 <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>));
-<a name="l00795"></a>00795 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00785">785</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01537">cache</a>, <a class="el" href="modules_8h-source.html#l01519">CONF_VALUE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01542">error</a>, and <a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ServerConfig::ReadConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00786"></a>00786 {
+<a name="l00787"></a>00787 <span class="keywordtype">char</span> val[MAXBUF];
+<a name="l00788"></a>00788 <span class="keywordtype">char</span> t[MAXBUF];
+<a name="l00789"></a>00789 <span class="keywordtype">char</span> n[MAXBUF];
+<a name="l00790"></a>00790 strlcpy(t,tag.c_str(),MAXBUF);
+<a name="l00791"></a>00791 strlcpy(n,name.c_str(),MAXBUF);
+<a name="l00792"></a>00792 <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
+<a name="l00793"></a>00793 <span class="keywordflow">if</span> (!res)
+<a name="l00794"></a>00794 {
+<a name="l00795"></a>00795 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
+<a name="l00796"></a>00796 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00797"></a>00797 }
+<a name="l00798"></a>00798 <a class="code" href="namespaceirc.html#string">std::string</a> s = val;
+<a name="l00799"></a>00799 <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>));
+<a name="l00800"></a>00800 }
</pre></div>
<p>
</td>
@@ -521,35 +521,35 @@ 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#GetError_28_29">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#GetError_28_29">GetError()</a> will return CONF_NOT_UNSIGNED
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00797">797</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01533">cache</a>, <a class="el" href="modules_8h-source.html#l01513">CONF_NOT_A_NUMBER</a>, <a class="el" href="modules_8h-source.html#l01514">CONF_NOT_UNSIGNED</a>, <a class="el" href="modules_8h-source.html#l01515">CONF_VALUE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01538">error</a>, and <a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ServerConfig::ReadConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00798"></a>00798 {
-<a name="l00799"></a>00799 <span class="keywordtype">char</span> val[MAXBUF];
-<a name="l00800"></a>00800 <span class="keywordtype">char</span> t[MAXBUF];
-<a name="l00801"></a>00801 <span class="keywordtype">char</span> n[MAXBUF];
-<a name="l00802"></a>00802 strlcpy(t,tag.c_str(),MAXBUF);
-<a name="l00803"></a>00803 strlcpy(n,name.c_str(),MAXBUF);
-<a name="l00804"></a>00804 <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
-<a name="l00805"></a>00805 <span class="keywordflow">if</span> (!res)
-<a name="l00806"></a>00806 {
-<a name="l00807"></a>00807 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
-<a name="l00808"></a>00808 <span class="keywordflow">return</span> 0;
-<a name="l00809"></a>00809 }
-<a name="l00810"></a>00810 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(val); i++)
+Definition at line <a class="el" href="modules_8cpp-source.html#l00802">802</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01537">cache</a>, <a class="el" href="modules_8h-source.html#l01517">CONF_NOT_A_NUMBER</a>, <a class="el" href="modules_8h-source.html#l01518">CONF_NOT_UNSIGNED</a>, <a class="el" href="modules_8h-source.html#l01519">CONF_VALUE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01542">error</a>, and <a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ServerConfig::ReadConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00803"></a>00803 {
+<a name="l00804"></a>00804 <span class="keywordtype">char</span> val[MAXBUF];
+<a name="l00805"></a>00805 <span class="keywordtype">char</span> t[MAXBUF];
+<a name="l00806"></a>00806 <span class="keywordtype">char</span> n[MAXBUF];
+<a name="l00807"></a>00807 strlcpy(t,tag.c_str(),MAXBUF);
+<a name="l00808"></a>00808 strlcpy(n,name.c_str(),MAXBUF);
+<a name="l00809"></a>00809 <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
+<a name="l00810"></a>00810 <span class="keywordflow">if</span> (!res)
<a name="l00811"></a>00811 {
-<a name="l00812"></a>00812 <span class="keywordflow">if</span> (!isdigit(val[i]))
-<a name="l00813"></a>00813 {
-<a name="l00814"></a>00814 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">CONF_NOT_A_NUMBER</a>;
-<a name="l00815"></a>00815 <span class="keywordflow">return</span> 0;
-<a name="l00816"></a>00816 }
-<a name="l00817"></a>00817 }
-<a name="l00818"></a>00818 <span class="keywordflow">if</span> ((needs_unsigned) &amp;&amp; (atoi(val)&lt;0))
-<a name="l00819"></a>00819 {
-<a name="l00820"></a>00820 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">CONF_NOT_UNSIGNED</a>;
-<a name="l00821"></a>00821 <span class="keywordflow">return</span> 0;
+<a name="l00812"></a>00812 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
+<a name="l00813"></a>00813 <span class="keywordflow">return</span> 0;
+<a name="l00814"></a>00814 }
+<a name="l00815"></a>00815 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(val); i++)
+<a name="l00816"></a>00816 {
+<a name="l00817"></a>00817 <span class="keywordflow">if</span> (!isdigit(val[i]))
+<a name="l00818"></a>00818 {
+<a name="l00819"></a>00819 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">CONF_NOT_A_NUMBER</a>;
+<a name="l00820"></a>00820 <span class="keywordflow">return</span> 0;
+<a name="l00821"></a>00821 }
<a name="l00822"></a>00822 }
-<a name="l00823"></a>00823 <span class="keywordflow">return</span> atoi(val);
-<a name="l00824"></a>00824 }
+<a name="l00823"></a>00823 <span class="keywordflow">if</span> ((needs_unsigned) &amp;&amp; (atoi(val)&lt;0))
+<a name="l00824"></a>00824 {
+<a name="l00825"></a>00825 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">CONF_NOT_UNSIGNED</a>;
+<a name="l00826"></a>00826 <span class="keywordflow">return</span> 0;
+<a name="l00827"></a>00827 }
+<a name="l00828"></a>00828 <span class="keywordflow">return</span> atoi(val);
+<a name="l00829"></a>00829 }
</pre></div>
<p>
</td>
@@ -599,22 +599,22 @@ 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#l00764">764</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01533">cache</a>, <a class="el" href="modules_8h-source.html#l01515">CONF_VALUE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01538">error</a>, and <a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ServerConfig::ReadConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00765"></a>00765 {
-<a name="l00766"></a>00766 <span class="keywordtype">char</span> val[MAXBUF];
-<a name="l00767"></a>00767 <span class="keywordtype">char</span> t[MAXBUF];
-<a name="l00768"></a>00768 <span class="keywordtype">char</span> n[MAXBUF];
-<a name="l00769"></a>00769 strlcpy(t,tag.c_str(),MAXBUF);
-<a name="l00770"></a>00770 strlcpy(n,name.c_str(),MAXBUF);
-<a name="l00771"></a>00771 <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
-<a name="l00772"></a>00772 <span class="keywordflow">if</span> (!res)
-<a name="l00773"></a>00773 {
-<a name="l00774"></a>00774 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
-<a name="l00775"></a>00775 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00776"></a>00776 }
-<a name="l00777"></a>00777 <span class="keywordflow">return</span> val;
-<a name="l00778"></a>00778 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00769">769</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01537">cache</a>, <a class="el" href="modules_8h-source.html#l01519">CONF_VALUE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01542">error</a>, and <a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ServerConfig::ReadConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00770"></a>00770 {
+<a name="l00771"></a>00771 <span class="keywordtype">char</span> val[MAXBUF];
+<a name="l00772"></a>00772 <span class="keywordtype">char</span> t[MAXBUF];
+<a name="l00773"></a>00773 <span class="keywordtype">char</span> n[MAXBUF];
+<a name="l00774"></a>00774 strlcpy(t,tag.c_str(),MAXBUF);
+<a name="l00775"></a>00775 strlcpy(n,name.c_str(),MAXBUF);
+<a name="l00776"></a>00776 <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
+<a name="l00777"></a>00777 <span class="keywordflow">if</span> (!res)
+<a name="l00778"></a>00778 {
+<a name="l00779"></a>00779 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
+<a name="l00780"></a>00780 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00781"></a>00781 }
+<a name="l00782"></a>00782 <span class="keywordflow">return</span> val;
+<a name="l00783"></a>00783 }
</pre></div>
<p>
</td>
@@ -648,11 +648,11 @@ 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#l00876">876</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#l00881">881</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l01537">readerror</a>.<div class="fragment"><pre class="fragment"><a name="l00877"></a>00877 {
-<a name="l00878"></a>00878 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a>;
-<a name="l00879"></a>00879 }
+References <a class="el" href="modules_8h-source.html#l01541">readerror</a>.<div class="fragment"><pre class="fragment"><a name="l00882"></a>00882 {
+<a name="l00883"></a>00883 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a>;
+<a name="l00884"></a>00884 }
</pre></div>
<p>
</td>
@@ -683,9 +683,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#l01533">1533</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#l01537">1537</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#l00734">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00866">Enumerate()</a>, <a class="el" href="modules_8cpp-source.html#l00871">EnumerateValues()</a>, <a class="el" href="modules_8cpp-source.html#l00780">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00797">ReadInteger()</a>, <a class="el" href="modules_8cpp-source.html#l00764">ReadValue()</a>, and <a class="el" href="modules_8cpp-source.html#l00745">~ConfigReader()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00739">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00871">Enumerate()</a>, <a class="el" href="modules_8cpp-source.html#l00876">EnumerateValues()</a>, <a class="el" href="modules_8cpp-source.html#l00785">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00802">ReadInteger()</a>, <a class="el" href="modules_8cpp-source.html#l00769">ReadValue()</a>, and <a class="el" href="modules_8cpp-source.html#l00750">~ConfigReader()</a>. </td>
</tr>
</table>
<a class="anchor" name="error"></a><!-- doxytag: member="ConfigReader::error" ref="error" args="" --><p>
@@ -710,9 +710,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00734">ConfigReader(
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l01538">1538</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#l01542">1542</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#l00734">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00826">GetError()</a>, <a class="el" href="modules_8cpp-source.html#l00780">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00797">ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00764">ReadValue()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00739">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00831">GetError()</a>, <a class="el" href="modules_8cpp-source.html#l00785">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00802">ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00769">ReadValue()</a>. </td>
</tr>
</table>
<a class="anchor" name="errorlog"></a><!-- doxytag: member="ConfigReader::errorlog" ref="errorlog" args="" --><p>
@@ -737,9 +737,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00734">ConfigReader(
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l01534">1534</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#l01538">1538</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#l00734">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00833">DumpErrors()</a>, and <a class="el" href="modules_8cpp-source.html#l00745">~ConfigReader()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00739">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00838">DumpErrors()</a>, and <a class="el" href="modules_8cpp-source.html#l00750">~ConfigReader()</a>. </td>
</tr>
</table>
<a class="anchor" name="readerror"></a><!-- doxytag: member="ConfigReader::readerror" ref="readerror" args="" --><p>
@@ -766,14 +766,14 @@ Used to store errors.
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l01537">1537</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#l01541">1541</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#l00734">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00876">Verify()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00739">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00881">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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classConnectClass-members.html b/docs/module-doc/classConnectClass-members.html
index c038bba90..8526cd42f 100644
--- a/docs/module-doc/classConnectClass-members.html
+++ b/docs/module-doc/classConnectClass-members.html
@@ -19,7 +19,7 @@
<tr class="memlist"><td><a class="el" href="classConnectClass.html#threshold">threshold</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#type">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#_7Eclassbase_28_29">~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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classConnectClass.html b/docs/module-doc/classConnectClass.html
index 9a47bc371..eca316bed 100644
--- a/docs/module-doc/classConnectClass.html
+++ b/docs/module-doc/classConnectClass.html
@@ -363,7 +363,7 @@ Definition at line <a class="el" href="users_8h-source.html#l00053">53</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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classDNS-members.html b/docs/module-doc/classDNS-members.html
index f9ad9c12f..a42729e56 100644
--- a/docs/module-doc/classDNS-members.html
+++ b/docs/module-doc/classDNS-members.html
@@ -36,7 +36,7 @@
<tr class="memlist"><td><a class="el" href="classDNS.html#SetNS_28std_3A_3Astring_20dnsserver_29">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#t">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#_7EDNS_28_29">~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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classDNS.html b/docs/module-doc/classDNS.html
index 34132e93b..8e6422155 100644
--- a/docs/module-doc/classDNS.html
+++ b/docs/module-doc/classDNS.html
@@ -961,7 +961,7 @@ Definition at line <a class="el" href="dns_8h-source.html#l00041">41</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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classELine-members.html b/docs/module-doc/classELine-members.html
index 53219dd60..059ffbd77 100644
--- a/docs/module-doc/classELine-members.html
+++ b/docs/module-doc/classELine-members.html
@@ -15,7 +15,7 @@
<tr class="memlist"><td><a class="el" href="classXLine.html#set_5Ftime">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#source_5B_32_35_36_5D">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#_7Eclassbase_28_29">~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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classELine.html b/docs/module-doc/classELine.html
index 9930e3e49..0e6a9d2bb 100644
--- a/docs/module-doc/classELine.html
+++ b/docs/module-doc/classELine.html
@@ -59,7 +59,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00093">93</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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classEvent-members.html b/docs/module-doc/classEvent-members.html
index 58be64f3b..38fa1817c 100644
--- a/docs/module-doc/classEvent-members.html
+++ b/docs/module-doc/classEvent-members.html
@@ -18,7 +18,7 @@
<tr class="memlist"><td><a class="el" href="classEvent.html#source">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#_7Eclassbase_28_29">~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#_7EModuleMessage_28_29">~ModuleMessage</a>()</td><td><a class="el" href="classModuleMessage.html">ModuleMessage</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classEvent.html b/docs/module-doc/classEvent.html
index 92cb6514f..345726b9e 100644
--- a/docs/module-doc/classEvent.html
+++ b/docs/module-doc/classEvent.html
@@ -354,7 +354,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00209">GetSource()</
</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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classExemptItem-members.html b/docs/module-doc/classExemptItem-members.html
index 82d6c61cb..19c71af5a 100644
--- a/docs/module-doc/classExemptItem-members.html
+++ b/docs/module-doc/classExemptItem-members.html
@@ -14,7 +14,7 @@
<tr class="memlist"><td><a class="el" href="classHostItem.html#set_5Ftime">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#_7Eclassbase_28_29">~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#_7EHostItem_28_29">~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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classExemptItem.html b/docs/module-doc/classExemptItem.html
index ee474bfa8..7e9604702 100644
--- a/docs/module-doc/classExemptItem.html
+++ b/docs/module-doc/classExemptItem.html
@@ -30,7 +30,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#l00060">60</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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classExtMode-members.html b/docs/module-doc/classExtMode-members.html
index 91bc4f1bd..256a367de 100644
--- a/docs/module-doc/classExtMode-members.html
+++ b/docs/module-doc/classExtMode-members.html
@@ -16,7 +16,7 @@
<tr class="memlist"><td><a class="el" href="classExtMode.html#params_5Fwhen_5Fon">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#type">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#_7Eclassbase_28_29">~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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classExtMode.html b/docs/module-doc/classExtMode.html
index 9e99d9982..b884de563 100644
--- a/docs/module-doc/classExtMode.html
+++ b/docs/module-doc/classExtMode.html
@@ -258,7 +258,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00240">240</a> of
</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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classExtensible-members.html b/docs/module-doc/classExtensible-members.html
index 517c60378..605569d09 100644
--- a/docs/module-doc/classExtensible-members.html
+++ b/docs/module-doc/classExtensible-members.html
@@ -14,7 +14,7 @@
<tr class="memlist"><td><a class="el" href="classExtensible.html#GetExtList_28std_3A_3Adeque_3C_20std_3A_3Astring_20_3E_20_26list_29">GetExtList</a>(std::deque&lt; std::string &gt; &amp;list)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classExtensible.html#Shrink_28std_3A_3Astring_20key_29">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#_7Eclassbase_28_29">~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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classExtensible.html b/docs/module-doc/classExtensible.html
index 70253eef4..981e24c9d 100644
--- a/docs/module-doc/classExtensible.html
+++ b/docs/module-doc/classExtensible.html
@@ -236,7 +236,7 @@ Definition at line <a class="el" href="base_8h-source.html#l00055">55</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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classFileReader-members.html b/docs/module-doc/classFileReader-members.html
index 23fad510f..59000b532 100644
--- a/docs/module-doc/classFileReader-members.html
+++ b/docs/module-doc/classFileReader-members.html
@@ -17,7 +17,7 @@
<tr class="memlist"><td><a class="el" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">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#_7Eclassbase_28_29">~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#_7EFileReader_28_29">~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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classFileReader.html b/docs/module-doc/classFileReader.html
index 04c1c960b..68ee50110 100644
--- a/docs/module-doc/classFileReader.html
+++ b/docs/module-doc/classFileReader.html
@@ -53,7 +53,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#l01614">1614</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#l01618">1618</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="FileReader_28_29"></a><!-- doxytag: member="FileReader::FileReader" ref="FileReader_28_29" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
@@ -82,8 +82,8 @@ 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#l00889">889</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00890"></a>00890 {
-<a name="l00891"></a>00891 }
+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>.<div class="fragment"><pre class="fragment"><a name="l00895"></a>00895 {
+<a name="l00896"></a>00896 }
</pre></div>
<p>
</td>
@@ -118,13 +118,13 @@ 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#FileSize_28_29">FileReader::FileSize</a> returns 0.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00882">882</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#l00887">887</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l01616">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00883"></a>00883 {
-<a name="l00884"></a>00884 <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> c;
-<a name="l00885"></a>00885 readfile(c,filename.c_str());
-<a name="l00886"></a>00886 this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
-<a name="l00887"></a>00887 }
+References <a class="el" href="modules_8h-source.html#l01620">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00888"></a>00888 {
+<a name="l00889"></a>00889 <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> c;
+<a name="l00890"></a>00890 readfile(c,filename.c_str());
+<a name="l00891"></a>00891 this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
+<a name="l00892"></a>00892 }
</pre></div>
<p>
</td>
@@ -158,8 +158,8 @@ Default destructor.
<p>
This deletes the memory allocated to the file.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00901">901</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00902"></a>00902 {
-<a name="l00903"></a>00903 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00906">906</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00907"></a>00907 {
+<a name="l00908"></a>00908 }
</pre></div>
<p>
</td>
@@ -194,18 +194,18 @@ 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#l00905">905</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01616">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00906"></a>00906 {
-<a name="l00907"></a>00907 <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#fc">fc</a>.size() == 0)
-<a name="l00908"></a>00908 {
-<a name="l00909"></a>00909 <span class="keywordflow">return</span>(<span class="keyword">false</span>);
-<a name="l00910"></a>00910 }
-<a name="l00911"></a>00911 <span class="keywordflow">else</span>
-<a name="l00912"></a>00912 {
-<a name="l00913"></a>00913 <span class="keywordflow">return</span>(<span class="keyword">true</span>);
-<a name="l00914"></a>00914 }
-<a name="l00915"></a>00915 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00910">910</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01620">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00911"></a>00911 {
+<a name="l00912"></a>00912 <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#fc">fc</a>.size() == 0)
+<a name="l00913"></a>00913 {
+<a name="l00914"></a>00914 <span class="keywordflow">return</span>(<span class="keyword">false</span>);
+<a name="l00915"></a>00915 }
+<a name="l00916"></a>00916 <span class="keywordflow">else</span>
+<a name="l00917"></a>00917 {
+<a name="l00918"></a>00918 <span class="keywordflow">return</span>(<span class="keyword">true</span>);
+<a name="l00919"></a>00919 }
+<a name="l00920"></a>00920 }
</pre></div>
<p>
</td>
@@ -239,11 +239,11 @@ 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#l00924">924</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#l00929">929</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l01616">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00925"></a>00925 {
-<a name="l00926"></a>00926 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>.size();
-<a name="l00927"></a>00927 }
+References <a class="el" href="modules_8h-source.html#l01620">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00930"></a>00930 {
+<a name="l00931"></a>00931 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>.size();
+<a name="l00932"></a>00932 }
</pre></div>
<p>
</td>
@@ -278,13 +278,13 @@ 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#l00917">917</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#l00922">922</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l01616">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00918"></a>00918 {
-<a name="l00919"></a>00919 <span class="keywordflow">if</span> ((x&lt;0) || ((<span class="keywordtype">unsigned</span>)x&gt;<a class="code" href="classFileReader.html#fc">fc</a>.size()))
-<a name="l00920"></a>00920 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00921"></a>00921 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>[x];
-<a name="l00922"></a>00922 }
+References <a class="el" href="modules_8h-source.html#l01620">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00923"></a>00923 {
+<a name="l00924"></a>00924 <span class="keywordflow">if</span> ((x&lt;0) || ((<span class="keywordtype">unsigned</span>)x&gt;<a class="code" href="classFileReader.html#fc">fc</a>.size()))
+<a name="l00925"></a>00925 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00926"></a>00926 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>[x];
+<a name="l00927"></a>00927 }
</pre></div>
<p>
</td>
@@ -319,13 +319,13 @@ 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#FileSize_28_29">FileReader::FileSize</a> returns 0.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00893">893</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#l00898">898</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l01616">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00894"></a>00894 {
-<a name="l00895"></a>00895 <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> c;
-<a name="l00896"></a>00896 readfile(c,filename.c_str());
-<a name="l00897"></a>00897 this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
-<a name="l00898"></a>00898 }
+References <a class="el" href="modules_8h-source.html#l01620">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00899"></a>00899 {
+<a name="l00900"></a>00900 <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> c;
+<a name="l00901"></a>00901 readfile(c,filename.c_str());
+<a name="l00902"></a>00902 this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
+<a name="l00903"></a>00903 }
</pre></div>
<p>
</td>
@@ -354,14 +354,14 @@ References <a class="el" href="modules_8h-source.html#l01616">fc</a>.<div class=
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l01616">1616</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#l01620">1620</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#l00905">Exists()</a>, <a class="el" href="modules_8cpp-source.html#l00882">FileReader()</a>, <a class="el" href="modules_8cpp-source.html#l00924">FileSize()</a>, <a class="el" href="modules_8cpp-source.html#l00917">GetLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00893">LoadFile()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00910">Exists()</a>, <a class="el" href="modules_8cpp-source.html#l00887">FileReader()</a>, <a class="el" href="modules_8cpp-source.html#l00929">FileSize()</a>, <a class="el" href="modules_8cpp-source.html#l00922">GetLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00898">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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classGLine-members.html b/docs/module-doc/classGLine-members.html
index 92111ef1a..43c9572d7 100644
--- a/docs/module-doc/classGLine-members.html
+++ b/docs/module-doc/classGLine-members.html
@@ -15,7 +15,7 @@
<tr class="memlist"><td><a class="el" href="classXLine.html#set_5Ftime">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#source_5B_32_35_36_5D">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#_7Eclassbase_28_29">~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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classGLine.html b/docs/module-doc/classGLine.html
index d566431e5..dbc12a0c4 100644
--- a/docs/module-doc/classGLine.html
+++ b/docs/module-doc/classGLine.html
@@ -62,7 +62,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00084">84</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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classHostItem-members.html b/docs/module-doc/classHostItem-members.html
index bb46359fe..0c1672c7b 100644
--- a/docs/module-doc/classHostItem-members.html
+++ b/docs/module-doc/classHostItem-members.html
@@ -14,7 +14,7 @@
<tr class="memlist"><td><a class="el" href="classHostItem.html#set_5Ftime">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#_7Eclassbase_28_29">~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#_7EHostItem_28_29">~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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classHostItem.html b/docs/module-doc/classHostItem.html
index 519603b37..068f139c1 100644
--- a/docs/module-doc/classHostItem.html
+++ b/docs/module-doc/classHostItem.html
@@ -186,7 +186,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00039">39</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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classInspSocket-members.html b/docs/module-doc/classInspSocket-members.html
index ba8d98eaf..16d215b62 100644
--- a/docs/module-doc/classInspSocket-members.html
+++ b/docs/module-doc/classInspSocket-members.html
@@ -39,7 +39,7 @@
<tr class="memlist"><td><a class="el" href="classInspSocket.html#timeout_5Fend">timeout_end</a></td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">Write</a>(std::string data)</td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInspSocket.html#_7EInspSocket_28_29">~InspSocket</a>()</td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classInspSocket.html b/docs/module-doc/classInspSocket.html
index 755cb1ca0..7118cc2c1 100644
--- a/docs/module-doc/classInspSocket.html
+++ b/docs/module-doc/classInspSocket.html
@@ -1465,7 +1465,7 @@ Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket()</
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="socket_8h-source.html">socket.h</a><li><a class="el" href="socket_8cpp-source.html">socket.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classInviteItem-members.html b/docs/module-doc/classInviteItem-members.html
index 87fc586f3..2baba93c3 100644
--- a/docs/module-doc/classInviteItem-members.html
+++ b/docs/module-doc/classInviteItem-members.html
@@ -14,7 +14,7 @@
<tr class="memlist"><td><a class="el" href="classHostItem.html#set_5Ftime">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#_7Eclassbase_28_29">~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#_7EHostItem_28_29">~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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classInviteItem.html b/docs/module-doc/classInviteItem.html
index da205d319..ffdb356d1 100644
--- a/docs/module-doc/classInviteItem.html
+++ b/docs/module-doc/classInviteItem.html
@@ -30,7 +30,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#l00068">68</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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classInvited-members.html b/docs/module-doc/classInvited-members.html
index 4483039d5..a96f81b00 100644
--- a/docs/module-doc/classInvited-members.html
+++ b/docs/module-doc/classInvited-members.html
@@ -10,7 +10,7 @@
<tr class="memlist"><td><a class="el" href="classInvited.html#channel_5BCHANMAX_5D">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#classbase_28_29">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#_7Eclassbase_28_29">~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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classInvited.html b/docs/module-doc/classInvited.html
index 37855ae92..311975774 100644
--- a/docs/module-doc/classInvited.html
+++ b/docs/module-doc/classInvited.html
@@ -59,7 +59,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00115">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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classKLine-members.html b/docs/module-doc/classKLine-members.html
index 6fde9c7a7..81ea4c30e 100644
--- a/docs/module-doc/classKLine-members.html
+++ b/docs/module-doc/classKLine-members.html
@@ -15,7 +15,7 @@
<tr class="memlist"><td><a class="el" href="classXLine.html#set_5Ftime">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#source_5B_32_35_36_5D">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#_7Eclassbase_28_29">~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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classKLine.html b/docs/module-doc/classKLine.html
index 15da3a497..967be95a3 100644
--- a/docs/module-doc/classKLine.html
+++ b/docs/module-doc/classKLine.html
@@ -62,7 +62,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00073">73</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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classModeParameter-members.html b/docs/module-doc/classModeParameter-members.html
index 9b29ec516..83b9cd56f 100644
--- a/docs/module-doc/classModeParameter-members.html
+++ b/docs/module-doc/classModeParameter-members.html
@@ -12,7 +12,7 @@
<tr class="memlist"><td><a class="el" href="classModeParameter.html#mode">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#parameter_5BMAXBUF_5D">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#_7Eclassbase_28_29">~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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classModeParameter.html b/docs/module-doc/classModeParameter.html
index 09feccdd7..1504087e2 100644
--- a/docs/module-doc/classModeParameter.html
+++ b/docs/module-doc/classModeParameter.html
@@ -119,7 +119,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00110">chanrec::Set
</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 Dec 14 14:49:31 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classModule-members.html b/docs/module-doc/classModule-members.html
index 83252cb19..6afedb7df 100644
--- a/docs/module-doc/classModule-members.html
+++ b/docs/module-doc/classModule-members.html
@@ -89,7 +89,7 @@
<tr class="memlist"><td><a class="el" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">ProtoSendMode</a>(void *opaque, int target_type, void *target, std::string modeline)</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#_7Eclassbase_28_29">~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#_7EModule_28_29">~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 Dec 14 14:49:32 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classModule.html b/docs/module-doc/classModule.html
index 64c512801..da8947364 100644
--- a/docs/module-doc/classModule.html
+++ b/docs/module-doc/classModule.html
@@ -4570,7 +4570,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00289">289</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 Dec 14 14:49:32 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classModuleFactory-members.html b/docs/module-doc/classModuleFactory-members.html
index ebc250794..7525c56fc 100644
--- a/docs/module-doc/classModuleFactory-members.html
+++ b/docs/module-doc/classModuleFactory-members.html
@@ -12,7 +12,7 @@
<tr class="memlist"><td><a class="el" href="classModuleFactory.html#ModuleFactory_28_29">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#_7Eclassbase_28_29">~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#_7EModuleFactory_28_29">~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 Dec 14 14:49:32 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classModuleFactory.html b/docs/module-doc/classModuleFactory.html
index 9efbcdbde..b85431e98 100644
--- a/docs/module-doc/classModuleFactory.html
+++ b/docs/module-doc/classModuleFactory.html
@@ -36,7 +36,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#l01669">1669</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#l01673">1673</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="ModuleFactory_28_29"></a><!-- doxytag: member="ModuleFactory::ModuleFactory" ref="ModuleFactory_28_29" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
@@ -63,7 +63,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l01669">1669</a> o
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l01672">1672</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<div class="fragment"><pre class="fragment"><a name="l01672"></a>01672 { }
+Definition at line <a class="el" href="modules_8h-source.html#l01676">1676</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<div class="fragment"><pre class="fragment"><a name="l01676"></a>01676 { }
</pre></div>
<p>
</td>
@@ -95,7 +95,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l01672">1672</a> o
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l01673">1673</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<div class="fragment"><pre class="fragment"><a name="l01673"></a>01673 { }
+Definition at line <a class="el" href="modules_8h-source.html#l01677">1677</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<div class="fragment"><pre class="fragment"><a name="l01677"></a>01677 { }
</pre></div>
<p>
</td>
@@ -134,7 +134,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 Dec 14 14:49:32 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classModuleMessage-members.html b/docs/module-doc/classModuleMessage-members.html
index 6344dc7ec..c6b0fe1f9 100644
--- a/docs/module-doc/classModuleMessage-members.html
+++ b/docs/module-doc/classModuleMessage-members.html
@@ -11,7 +11,7 @@
<tr class="memlist"><td><a class="el" href="classModuleMessage.html#Send_28_29_3D_30">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#_7Eclassbase_28_29">~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#_7EModuleMessage_28_29">~ModuleMessage</a>()</td><td><a class="el" href="classModuleMessage.html">ModuleMessage</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:32 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classModuleMessage.html b/docs/module-doc/classModuleMessage.html
index 15e7cf853..314d2a5be 100644
--- a/docs/module-doc/classModuleMessage.html
+++ b/docs/module-doc/classModuleMessage.html
@@ -101,7 +101,7 @@ Implemented in <a class="el" href="classRequest.html#Send_28_29">Request</a>, an
</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 Dec 14 14:49:32 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classQLine-members.html b/docs/module-doc/classQLine-members.html
index 42df673a3..943dc5c4e 100644
--- a/docs/module-doc/classQLine-members.html
+++ b/docs/module-doc/classQLine-members.html
@@ -16,7 +16,7 @@
<tr class="memlist"><td><a class="el" href="classXLine.html#set_5Ftime">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#source_5B_32_35_36_5D">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#_7Eclassbase_28_29">~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 Dec 14 14:49:32 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classQLine.html b/docs/module-doc/classQLine.html
index 871d00756..e40dfe340 100644
--- a/docs/module-doc/classQLine.html
+++ b/docs/module-doc/classQLine.html
@@ -92,7 +92,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00119">119</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 Dec 14 14:49:32 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classRequest-members.html b/docs/module-doc/classRequest-members.html
index 8a4b1022f..9db0d82ad 100644
--- a/docs/module-doc/classRequest-members.html
+++ b/docs/module-doc/classRequest-members.html
@@ -18,7 +18,7 @@
<tr class="memlist"><td><a class="el" href="classRequest.html#source">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#_7Eclassbase_28_29">~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#_7EModuleMessage_28_29">~ModuleMessage</a>()</td><td><a class="el" href="classModuleMessage.html">ModuleMessage</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:32 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classRequest.html b/docs/module-doc/classRequest.html
index 7be89f99e..bab6382ae 100644
--- a/docs/module-doc/classRequest.html
+++ b/docs/module-doc/classRequest.html
@@ -360,7 +360,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00180">GetSource()</
</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 Dec 14 14:49:32 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classServer-members.html b/docs/module-doc/classServer-members.html
index 5e1b87e29..20ed4fe2c 100644
--- a/docs/module-doc/classServer-members.html
+++ b/docs/module-doc/classServer-members.html
@@ -36,6 +36,7 @@
<tr class="memlist"><td><a class="el" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">FindModule</a>(std::string name)</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="classServer.html#FindNick_28std_3A_3Astring_20nick_29">FindNick</a>(std::string nick)</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="classServer.html#GetAdmin_28_29">GetAdmin</a>()</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="classServer.html#GetConfig_28_29">GetConfig</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classServer.html#GetNetworkName_28_29">GetNetworkName</a>()</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="classServer.html#GetServerDescription_28_29">GetServerDescription</a>()</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="classServer.html#GetServerName_28_29">GetServerName</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
@@ -67,7 +68,7 @@
<tr class="memlist"><td><a class="el" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">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#_7Eclassbase_28_29">~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#_7EServer_28_29">~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 Dec 14 14:49:33 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classServer.html b/docs/module-doc/classServer.html
index 8b98f4482..065d3386c 100644
--- a/docs/module-doc/classServer.html
+++ b/docs/module-doc/classServer.html
@@ -27,6 +27,9 @@ Inheritance diagram for Server:<p><center><img src="classServer__inherit__graph.
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServer.html#_7EServer_28_29">~Server</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default destructor. <a href="#_7EServer_28_29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classServerConfig.html">ServerConfig</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServer.html#GetConfig_28_29">GetConfig</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains a pointer to the server's <a class="el" href="classServerConfig.html">ServerConfig</a> object. <a href="#GetConfig_28_29"></a><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="classServer.html#SendOpers_28std_3A_3Astring_20s_29">SendOpers</a> (<a class="el" href="namespaceirc.html#string">std::string</a> s)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sends text to all opers. <a href="#SendOpers_28std_3A_3Astring_20s_29"></a><br></td></tr>
@@ -331,11 +334,11 @@ 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#handle_5Fkill_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">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#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#l00419">419</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand()</a>.<div class="fragment"><pre class="fragment"><a name="l00415"></a>00415 {
-<a name="l00416"></a>00416 <a class="code" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand</a>(cmd,f,flags,minparams,source);
-<a name="l00417"></a>00417 }
+References <a class="el" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand()</a>.<div class="fragment"><pre class="fragment"><a name="l00420"></a>00420 {
+<a name="l00421"></a>00421 <a class="code" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand</a>(cmd,f,flags,minparams,source);
+<a name="l00422"></a>00422 }
</pre></div>
<p>
</td>
@@ -391,11 +394,11 @@ 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#CalcDuration_28std_3A_3Astring_20duration_29">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#l00658">658</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#l00663">663</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline()</a>.<div class="fragment"><pre class="fragment"><a name="l00659"></a>00659 {
-<a name="l00660"></a>00660 <a class="code" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
-<a name="l00661"></a>00661 }
+References <a class="el" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline()</a>.<div class="fragment"><pre class="fragment"><a name="l00664"></a>00664 {
+<a name="l00665"></a>00665 <a class="code" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
+<a name="l00666"></a>00666 }
</pre></div>
<p>
</td>
@@ -435,14 +438,14 @@ 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#l00582">582</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#l00587">587</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00142">DoAddExtendedMode()</a>, <a class="el" href="modules_8cpp-source.html#l00152">ModeMakeList()</a>, and <a class="el" href="modules_8h-source.html#l00031">MT_CHANNEL</a>.<div class="fragment"><pre class="fragment"><a name="l00583"></a>00583 {
-<a name="l00584"></a>00584 <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,<a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>,<span class="keyword">false</span>,1,1);
-<a name="l00585"></a>00585 <span class="keywordflow">if</span> (res)
-<a name="l00586"></a>00586 <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(modechar);
-<a name="l00587"></a>00587 <span class="keywordflow">return</span> res;
-<a name="l00588"></a>00588 }
+References <a class="el" href="modules_8cpp-source.html#l00142">DoAddExtendedMode()</a>, <a class="el" href="modules_8cpp-source.html#l00152">ModeMakeList()</a>, and <a class="el" href="modules_8h-source.html#l00031">MT_CHANNEL</a>.<div class="fragment"><pre class="fragment"><a name="l00588"></a>00588 {
+<a name="l00589"></a>00589 <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,<a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>,<span class="keyword">false</span>,1,1);
+<a name="l00590"></a>00590 <span class="keywordflow">if</span> (res)
+<a name="l00591"></a>00591 <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(modechar);
+<a name="l00592"></a>00592 <span class="keywordflow">return</span> res;
+<a name="l00593"></a>00593 }
</pre></div>
<p>
</td>
@@ -504,34 +507,34 @@ 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#l00554">554</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="modules_8cpp-source.html#l00142">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>.<div class="fragment"><pre class="fragment"><a name="l00555"></a>00555 {
-<a name="l00556"></a>00556 <span class="keywordflow">if</span> (((modechar &gt;= <span class="charliteral">'A'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'Z'</span>)) || ((modechar &gt;= <span class="charliteral">'a'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'z'</span>)))
-<a name="l00557"></a>00557 {
-<a name="l00558"></a>00558 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#MT_5FSERVER">MT_SERVER</a>)
-<a name="l00559"></a>00559 {
-<a name="l00560"></a>00560 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
-<a name="l00561"></a>00561 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00562"></a>00562 }
-<a name="l00563"></a>00563 <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#MT_5FCLIENT">MT_CLIENT</a>))
+Definition at line <a class="el" href="modules_8cpp-source.html#l00559">559</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="modules_8cpp-source.html#l00142">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>.<div class="fragment"><pre class="fragment"><a name="l00560"></a>00560 {
+<a name="l00561"></a>00561 <span class="keywordflow">if</span> (((modechar &gt;= <span class="charliteral">'A'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'Z'</span>)) || ((modechar &gt;= <span class="charliteral">'a'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'z'</span>)))
+<a name="l00562"></a>00562 {
+<a name="l00563"></a>00563 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#MT_5FSERVER">MT_SERVER</a>)
<a name="l00564"></a>00564 {
-<a name="l00565"></a>00565 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
+<a name="l00565"></a>00565 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
<a name="l00566"></a>00566 <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00567"></a>00567 }
-<a name="l00568"></a>00568 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
+<a name="l00568"></a>00568 <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#MT_5FCLIENT">MT_CLIENT</a>))
<a name="l00569"></a>00569 {
-<a name="l00570"></a>00570 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
+<a name="l00570"></a>00570 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
<a name="l00571"></a>00571 <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00572"></a>00572 }
-<a name="l00573"></a>00573 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
-<a name="l00574"></a>00574 }
-<a name="l00575"></a>00575 <span class="keywordflow">else</span>
-<a name="l00576"></a>00576 {
-<a name="l00577"></a>00577 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Muppet modechar detected."</span>);
-<a name="l00578"></a>00578 }
-<a name="l00579"></a>00579 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00580"></a>00580 }
+<a name="l00573"></a>00573 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
+<a name="l00574"></a>00574 {
+<a name="l00575"></a>00575 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
+<a name="l00576"></a>00576 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00577"></a>00577 }
+<a name="l00578"></a>00578 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
+<a name="l00579"></a>00579 }
+<a name="l00580"></a>00580 <span class="keywordflow">else</span>
+<a name="l00581"></a>00581 {
+<a name="l00582"></a>00582 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Muppet modechar detected."</span>);
+<a name="l00583"></a>00583 }
+<a name="l00584"></a>00584 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00585"></a>00585 }
</pre></div>
<p>
</td>
@@ -587,11 +590,11 @@ 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#CalcDuration_28std_3A_3Astring_20duration_29">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#l00638">638</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#l00643">643</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline()</a>.<div class="fragment"><pre class="fragment"><a name="l00639"></a>00639 {
-<a name="l00640"></a>00640 <a class="code" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
-<a name="l00641"></a>00641 }
+References <a class="el" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline()</a>.<div class="fragment"><pre class="fragment"><a name="l00644"></a>00644 {
+<a name="l00645"></a>00645 <a class="code" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
+<a name="l00646"></a>00646 }
</pre></div>
<p>
</td>
@@ -647,11 +650,11 @@ 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#CalcDuration_28std_3A_3Astring_20duration_29">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#l00653">653</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#l00658">658</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline()</a>.<div class="fragment"><pre class="fragment"><a name="l00654"></a>00654 {
-<a name="l00655"></a>00655 <a class="code" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
-<a name="l00656"></a>00656 }
+References <a class="el" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline()</a>.<div class="fragment"><pre class="fragment"><a name="l00659"></a>00659 {
+<a name="l00660"></a>00660 <a class="code" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
+<a name="l00661"></a>00661 }
</pre></div>
<p>
</td>
@@ -707,11 +710,11 @@ 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#CalcDuration_28std_3A_3Astring_20duration_29">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#l00643">643</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#l00648">648</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline()</a>.<div class="fragment"><pre class="fragment"><a name="l00644"></a>00644 {
-<a name="l00645"></a>00645 <a class="code" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), nickname.c_str());
-<a name="l00646"></a>00646 }
+References <a class="el" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline()</a>.<div class="fragment"><pre class="fragment"><a name="l00649"></a>00649 {
+<a name="l00650"></a>00650 <a class="code" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), nickname.c_str());
+<a name="l00651"></a>00651 }
</pre></div>
<p>
</td>
@@ -806,11 +809,11 @@ 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#CalcDuration_28std_3A_3Astring_20duration_29">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#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#l00653">653</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline()</a>.<div class="fragment"><pre class="fragment"><a name="l00649"></a>00649 {
-<a name="l00650"></a>00650 <a class="code" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), ipaddr.c_str());
-<a name="l00651"></a>00651 }
+References <a class="el" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline()</a>.<div class="fragment"><pre class="fragment"><a name="l00654"></a>00654 {
+<a name="l00655"></a>00655 <a class="code" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), ipaddr.c_str());
+<a name="l00656"></a>00656 }
</pre></div>
<p>
</td>
@@ -845,11 +848,11 @@ 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#l00688">688</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#l00693">693</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration()</a>.<div class="fragment"><pre class="fragment"><a name="l00689"></a>00689 {
-<a name="l00690"></a>00690 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>(delta.c_str());
-<a name="l00691"></a>00691 }
+References <a class="el" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration()</a>.<div class="fragment"><pre class="fragment"><a name="l00694"></a>00694 {
+<a name="l00695"></a>00695 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>(delta.c_str());
+<a name="l00696"></a>00696 }
</pre></div>
<p>
</td>
@@ -906,9 +909,9 @@ 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#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">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#l00399">399</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00400"></a>00400 {
-<a name="l00401"></a>00401 call_handler(commandname.c_str(),parameters,pcnt,user);
-<a name="l00402"></a>00402 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00404">404</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00405"></a>00405 {
+<a name="l00406"></a>00406 call_handler(commandname.c_str(),parameters,pcnt,user);
+<a name="l00407"></a>00407 }
</pre></div>
<p>
</td>
@@ -952,11 +955,11 @@ 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#l00497">497</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="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName()</a>.<div class="fragment"><pre class="fragment"><a name="l00498"></a>00498 {
-<a name="l00499"></a>00499 <a class="code" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName</a>(user,gecos.c_str());
-<a name="l00500"></a>00500 }
+References <a class="el" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName()</a>.<div class="fragment"><pre class="fragment"><a name="l00503"></a>00503 {
+<a name="l00504"></a>00504 <a class="code" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName</a>(user,gecos.c_str());
+<a name="l00505"></a>00505 }
</pre></div>
<p>
</td>
@@ -1000,11 +1003,11 @@ 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#l00492">492</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="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost()</a>.<div class="fragment"><pre class="fragment"><a name="l00493"></a>00493 {
-<a name="l00494"></a>00494 <a class="code" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost</a>(user,host.c_str());
-<a name="l00495"></a>00495 }
+References <a class="el" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost()</a>.<div class="fragment"><pre class="fragment"><a name="l00498"></a>00498 {
+<a name="l00499"></a>00499 <a class="code" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost</a>(user,host.c_str());
+<a name="l00500"></a>00500 }
</pre></div>
<p>
</td>
@@ -1048,9 +1051,9 @@ 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#l00384">384</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00385"></a>00385 {
-<a name="l00386"></a>00386 force_nickchange(user,nickname.c_str());
-<a name="l00387"></a>00387 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00389">389</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00390"></a>00390 {
+<a name="l00391"></a>00391 force_nickchange(user,nickname.c_str());
+<a name="l00392"></a>00392 }
</pre></div>
<p>
</td>
@@ -1094,11 +1097,11 @@ 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#l00522">522</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#l00527">527</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="message_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode()</a>.<div class="fragment"><pre class="fragment"><a name="l00523"></a>00523 {
-<a name="l00524"></a>00524 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode</a>(User,Chan);
-<a name="l00525"></a>00525 }
+References <a class="el" href="message_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode()</a>.<div class="fragment"><pre class="fragment"><a name="l00528"></a>00528 {
+<a name="l00529"></a>00529 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode</a>(User,Chan);
+<a name="l00530"></a>00530 }
</pre></div>
<p>
</td>
@@ -1142,11 +1145,11 @@ 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#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">Server::SendCommon</a> method.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00470">470</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#l00475">475</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="message_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels()</a>.<div class="fragment"><pre class="fragment"><a name="l00471"></a>00471 {
-<a name="l00472"></a>00472 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels</a>(u1,u2) != 0);
-<a name="l00473"></a>00473 }
+References <a class="el" href="message_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels()</a>.<div class="fragment"><pre class="fragment"><a name="l00476"></a>00476 {
+<a name="l00477"></a>00477 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels</a>(u1,u2) != 0);
+<a name="l00478"></a>00478 }
</pre></div>
<p>
</td>
@@ -1181,9 +1184,9 @@ 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#l00590">590</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00591"></a>00591 {
-<a name="l00592"></a>00592 <span class="keywordflow">return</span> usercount(c);
-<a name="l00593"></a>00593 }
+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>.<div class="fragment"><pre class="fragment"><a name="l00596"></a>00596 {
+<a name="l00597"></a>00597 <span class="keywordflow">return</span> usercount(c);
+<a name="l00598"></a>00598 }
</pre></div>
<p>
</td>
@@ -1218,11 +1221,11 @@ Deletes a local E-Line.
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00683">683</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#l00688">688</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline()</a>.<div class="fragment"><pre class="fragment"><a name="l00684"></a>00684 {
-<a name="l00685"></a>00685 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline</a>(hostmask.c_str());
-<a name="l00686"></a>00686 }
+References <a class="el" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline()</a>.<div class="fragment"><pre class="fragment"><a name="l00689"></a>00689 {
+<a name="l00690"></a>00690 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline</a>(hostmask.c_str());
+<a name="l00691"></a>00691 }
</pre></div>
<p>
</td>
@@ -1257,11 +1260,11 @@ Deletes a G-Line from all servers on the mesh.
<p>
<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>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00668">668</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline()</a>.<div class="fragment"><pre class="fragment"><a name="l00664"></a>00664 {
-<a name="l00665"></a>00665 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline</a>(hostmask.c_str());
-<a name="l00666"></a>00666 }
+References <a class="el" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline()</a>.<div class="fragment"><pre class="fragment"><a name="l00669"></a>00669 {
+<a name="l00670"></a>00670 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline</a>(hostmask.c_str());
+<a name="l00671"></a>00671 }
</pre></div>
<p>
</td>
@@ -1296,11 +1299,11 @@ Deletes a local K-Line.
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00678">678</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#l00683">683</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline()</a>.<div class="fragment"><pre class="fragment"><a name="l00679"></a>00679 {
-<a name="l00680"></a>00680 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline</a>(hostmask.c_str());
-<a name="l00681"></a>00681 }
+References <a class="el" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline()</a>.<div class="fragment"><pre class="fragment"><a name="l00684"></a>00684 {
+<a name="l00685"></a>00685 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline</a>(hostmask.c_str());
+<a name="l00686"></a>00686 }
</pre></div>
<p>
</td>
@@ -1335,11 +1338,11 @@ Deletes a Q-Line from all servers on the mesh.
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00668">668</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#l00673">673</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline()</a>.<div class="fragment"><pre class="fragment"><a name="l00669"></a>00669 {
-<a name="l00670"></a>00670 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline</a>(nickname.c_str());
-<a name="l00671"></a>00671 }
+References <a class="el" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline()</a>.<div class="fragment"><pre class="fragment"><a name="l00674"></a>00674 {
+<a name="l00675"></a>00675 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline</a>(nickname.c_str());
+<a name="l00676"></a>00676 }
</pre></div>
<p>
</td>
@@ -1374,18 +1377,18 @@ Deletes a class derived from <a class="el" href="classInspSocket.html">InspSocke
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00332">332</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#l00337">337</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.<div class="fragment"><pre class="fragment"><a name="l00333"></a>00333 {
-<a name="l00334"></a>00334 <span class="keywordflow">for</span> (std::vector&lt;InspSocket*&gt;::iterator a = <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.begin(); a &lt; <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.end(); a++)
-<a name="l00335"></a>00335 {
-<a name="l00336"></a>00336 <span class="keywordflow">if</span> (*a == sock)
-<a name="l00337"></a>00337 {
-<a name="l00338"></a>00338 <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.erase(a);
-<a name="l00339"></a>00339 <span class="keywordflow">return</span>;
-<a name="l00340"></a>00340 }
-<a name="l00341"></a>00341 }
-<a name="l00342"></a>00342 }
+References <a class="el" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.<div class="fragment"><pre class="fragment"><a name="l00338"></a>00338 {
+<a name="l00339"></a>00339 <span class="keywordflow">for</span> (std::vector&lt;InspSocket*&gt;::iterator a = <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.begin(); a &lt; <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.end(); a++)
+<a name="l00340"></a>00340 {
+<a name="l00341"></a>00341 <span class="keywordflow">if</span> (*a == sock)
+<a name="l00342"></a>00342 {
+<a name="l00343"></a>00343 <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.erase(a);
+<a name="l00344"></a>00344 <span class="keywordflow">return</span>;
+<a name="l00345"></a>00345 }
+<a name="l00346"></a>00346 }
+<a name="l00347"></a>00347 }
</pre></div>
<p>
</td>
@@ -1420,11 +1423,11 @@ Deletes a Z-Line from all servers on the mesh.
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00673">673</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#l00678">678</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline()</a>.<div class="fragment"><pre class="fragment"><a name="l00674"></a>00674 {
-<a name="l00675"></a>00675 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline</a>(ipaddr.c_str());
-<a name="l00676"></a>00676 }
+References <a class="el" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline()</a>.<div class="fragment"><pre class="fragment"><a name="l00679"></a>00679 {
+<a name="l00680"></a>00680 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline</a>(ipaddr.c_str());
+<a name="l00681"></a>00681 }
</pre></div>
<p>
</td>
@@ -1459,9 +1462,9 @@ 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#l00517">517</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00518"></a>00518 {
-<a name="l00519"></a>00519 <span class="keywordflow">return</span> FindChan(channel.c_str());
-<a name="l00520"></a>00520 }
+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>.<div class="fragment"><pre class="fragment"><a name="l00523"></a>00523 {
+<a name="l00524"></a>00524 <span class="keywordflow">return</span> FindChan(channel.c_str());
+<a name="l00525"></a>00525 }
</pre></div>
<p>
</td>
@@ -1496,9 +1499,9 @@ Attempts to look up a nick using the file descriptor associated with that nick.
<p>
This function will return NULL if the file descriptor is not associated with a valid user.
<p>
-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>.<div class="fragment"><pre class="fragment"><a name="l00513"></a>00513 {
-<a name="l00514"></a>00514 <span class="keywordflow">return</span> (socket &lt; 65536 ? fd_ref_table[socket] : NULL);
-<a name="l00515"></a>00515 }
+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>.<div class="fragment"><pre class="fragment"><a name="l00518"></a>00518 {
+<a name="l00519"></a>00519 <span class="keywordflow">return</span> (socket &lt; 65536 ? fd_ref_table[socket] : NULL);
+<a name="l00520"></a>00520 }
</pre></div>
<p>
</td>
@@ -1533,18 +1536,18 @@ 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#l00722">722</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8cpp-source.html#l00933">MODCOUNT</a>, <a class="el" href="inspircd__io_8h-source.html#l00076">ServerConfig::module_names</a>, and <a class="el" href="channels_8cpp.html#modules">modules</a>.<div class="fragment"><pre class="fragment"><a name="l00723"></a>00723 {
-<a name="l00724"></a>00724 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>; i++)
-<a name="l00725"></a>00725 {
-<a name="l00726"></a>00726 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>[i] == name)
-<a name="l00727"></a>00727 {
-<a name="l00728"></a>00728 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#modules">modules</a>[i];
-<a name="l00729"></a>00729 }
-<a name="l00730"></a>00730 }
-<a name="l00731"></a>00731 <span class="keywordflow">return</span> NULL;
-<a name="l00732"></a>00732 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00727">727</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8cpp-source.html#l00938">MODCOUNT</a>, <a class="el" href="inspircd__io_8h-source.html#l00247">ServerConfig::module_names</a>, and <a class="el" href="channels_8cpp.html#modules">modules</a>.<div class="fragment"><pre class="fragment"><a name="l00728"></a>00728 {
+<a name="l00729"></a>00729 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>; i++)
+<a name="l00730"></a>00730 {
+<a name="l00731"></a>00731 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>[i] == name)
+<a name="l00732"></a>00732 {
+<a name="l00733"></a>00733 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#modules">modules</a>[i];
+<a name="l00734"></a>00734 }
+<a name="l00735"></a>00735 }
+<a name="l00736"></a>00736 <span class="keywordflow">return</span> NULL;
+<a name="l00737"></a>00737 }
</pre></div>
<p>
</td>
@@ -1579,9 +1582,9 @@ 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#l00507">507</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00508"></a>00508 {
-<a name="l00509"></a>00509 <span class="keywordflow">return</span> Find(nick);
-<a name="l00510"></a>00510 }
+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>.<div class="fragment"><pre class="fragment"><a name="l00513"></a>00513 {
+<a name="l00514"></a>00514 <span class="keywordflow">return</span> Find(nick);
+<a name="l00515"></a>00515 }
</pre></div>
<p>
</td>
@@ -1615,9 +1618,45 @@ 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#Nick">Admin::Nick</a>, <a class="el" href="classAdmin.html#Email">Admin::Email</a> and <a class="el" href="classAdmin.html#Name">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#l00547">547</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00548"></a>00548 {
-<a name="l00549"></a>00549 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
-<a name="l00550"></a>00550 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00552">552</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00553"></a>00553 {
+<a name="l00554"></a>00554 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+<a name="l00555"></a>00555 }
+</pre></div>
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="GetConfig_28_29"></a><!-- doxytag: member="Server::GetConfig" ref="GetConfig_28_29" args="()" --><p>
+<table class="mdTable" 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="classServerConfig.html">ServerConfig</a> * Server::GetConfig </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>
+Obtains a pointer to the server's <a class="el" href="classServerConfig.html">ServerConfig</a> object.
+<p>
+The <a class="el" href="classServerConfig.html">ServerConfig</a> object contains most of the configuration data of the IRC server, as read from the config file by the core.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00332">332</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00333"></a>00333 {
+<a name="l00334"></a>00334 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>;
+<a name="l00335"></a>00335 }
</pre></div>
<p>
</td>
@@ -1651,9 +1690,9 @@ Returns the network name, global to all linked servers.
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00537">537</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00538"></a>00538 {
-<a name="l00539"></a>00539 <span class="keywordflow">return</span> getnetworkname();
-<a name="l00540"></a>00540 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00542">542</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00543"></a>00543 {
+<a name="l00544"></a>00544 <span class="keywordflow">return</span> getnetworkname();
+<a name="l00545"></a>00545 }
</pre></div>
<p>
</td>
@@ -1687,9 +1726,9 @@ Returns the server description string of the local server.
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00542">542</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00543"></a>00543 {
-<a name="l00544"></a>00544 <span class="keywordflow">return</span> getserverdesc();
-<a name="l00545"></a>00545 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00547">547</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00548"></a>00548 {
+<a name="l00549"></a>00549 <span class="keywordflow">return</span> getserverdesc();
+<a name="l00550"></a>00550 }
</pre></div>
<p>
</td>
@@ -1723,9 +1762,9 @@ 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#l00532">532</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00533"></a>00533 {
-<a name="l00534"></a>00534 <span class="keywordflow">return</span> getservername();
-<a name="l00535"></a>00535 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00537">537</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00538"></a>00538 {
+<a name="l00539"></a>00539 <span class="keywordflow">return</span> getservername();
+<a name="l00540"></a>00540 }
</pre></div>
<p>
</td>
@@ -1760,19 +1799,19 @@ 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#l00372">372</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="channels_8cpp-source.html#l00186">chanrec::GetUsers()</a>.<div class="fragment"><pre class="fragment"><a name="l00373"></a>00373 {
-<a name="l00374"></a>00374 <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> userl;
-<a name="l00375"></a>00375 userl.clear();
-<a name="l00376"></a>00376 std::vector&lt;char*&gt; *list = chan-&gt;<a class="code" href="classchanrec.html#GetUsers_28_29">GetUsers</a>();
-<a name="l00377"></a>00377 <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator i = list-&gt;begin(); i != list-&gt;end(); i++)
-<a name="l00378"></a>00378 {
-<a name="l00379"></a>00379 <span class="keywordtype">char</span>* o = *i;
-<a name="l00380"></a>00380 userl.push_back((<a class="code" href="classuserrec.html">userrec</a>*)o);
-<a name="l00381"></a>00381 }
-<a name="l00382"></a>00382 <span class="keywordflow">return</span> userl;
-<a name="l00383"></a>00383 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00377">377</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="channels_8cpp-source.html#l00186">chanrec::GetUsers()</a>.<div class="fragment"><pre class="fragment"><a name="l00378"></a>00378 {
+<a name="l00379"></a>00379 <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> userl;
+<a name="l00380"></a>00380 userl.clear();
+<a name="l00381"></a>00381 std::vector&lt;char*&gt; *list = chan-&gt;<a class="code" href="classchanrec.html#GetUsers_28_29">GetUsers</a>();
+<a name="l00382"></a>00382 <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator i = list-&gt;begin(); i != list-&gt;end(); i++)
+<a name="l00383"></a>00383 {
+<a name="l00384"></a>00384 <span class="keywordtype">char</span>* o = *i;
+<a name="l00385"></a>00385 userl.push_back((<a class="code" href="classuserrec.html">userrec</a>*)o);
+<a name="l00386"></a>00386 }
+<a name="l00387"></a>00387 <span class="keywordflow">return</span> userl;
+<a name="l00388"></a>00388 }
</pre></div>
<p>
</td>
@@ -1807,11 +1846,11 @@ 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#l00502">502</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>
-References <a class="el" href="message_8h.html#isnick_28const_20char_20_2An_29">isnick()</a>.<div class="fragment"><pre class="fragment"><a name="l00503"></a>00503 {
-<a name="l00504"></a>00504 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#isnick_28const_20char_20_2An_29">isnick</a>(nick.c_str()) != 0);
-<a name="l00505"></a>00505 }
+References <a class="el" href="message_8h.html#isnick_28const_20char_20_2An_29">isnick()</a>.<div class="fragment"><pre class="fragment"><a name="l00508"></a>00508 {
+<a name="l00509"></a>00509 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#isnick_28const_20char_20_2An_29">isnick</a>(nick.c_str()) != 0);
+<a name="l00510"></a>00510 }
</pre></div>
<p>
</td>
@@ -1855,11 +1894,11 @@ 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#l00527">527</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#l00532">532</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00528"></a>00528 {
-<a name="l00529"></a>00529 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(User,Chan);
-<a name="l00530"></a>00530 }
+References <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00533"></a>00533 {
+<a name="l00534"></a>00534 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(User,Chan);
+<a name="l00535"></a>00535 }
</pre></div>
<p>
</td>
@@ -1894,11 +1933,11 @@ 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#l00394">394</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#l00399">399</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline()</a>.<div class="fragment"><pre class="fragment"><a name="l00395"></a>00395 {
-<a name="l00396"></a>00396 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(server.c_str());
-<a name="l00397"></a>00397 }
+References <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline()</a>.<div class="fragment"><pre class="fragment"><a name="l00400"></a>00400 {
+<a name="l00401"></a>00401 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(server.c_str());
+<a name="l00402"></a>00402 }
</pre></div>
<p>
</td>
@@ -1933,33 +1972,33 @@ 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#l00693">693</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00694"></a>00694 {
-<a name="l00695"></a>00695 <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str();
-<a name="l00696"></a>00696 <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0)
-<a name="l00697"></a>00697 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00698"></a>00698 <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0)
-<a name="l00699"></a>00699 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00700"></a>00700 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00701"></a>00701 <span class="keywordflow">if</span> (dest[i] &lt; 32)
-<a name="l00702"></a>00702 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00703"></a>00703 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00704"></a>00704 <span class="keywordflow">if</span> (dest[i] &gt; 126)
-<a name="l00705"></a>00705 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00706"></a>00706 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> c = 0;
-<a name="l00707"></a>00707 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00708"></a>00708 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>)
-<a name="l00709"></a>00709 c++;
-<a name="l00710"></a>00710 <span class="keywordflow">if</span> (c&gt;1)
-<a name="l00711"></a>00711 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00712"></a>00712 c = 0;
-<a name="l00713"></a>00713 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00714"></a>00714 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>)
-<a name="l00715"></a>00715 c++;
-<a name="l00716"></a>00716 <span class="keywordflow">if</span> (c&gt;1)
-<a name="l00717"></a>00717 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00718"></a>00718
-<a name="l00719"></a>00719 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00720"></a>00720 }
+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>.<div class="fragment"><pre class="fragment"><a name="l00699"></a>00699 {
+<a name="l00700"></a>00700 <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str();
+<a name="l00701"></a>00701 <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0)
+<a name="l00702"></a>00702 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00703"></a>00703 <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0)
+<a name="l00704"></a>00704 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00705"></a>00705 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00706"></a>00706 <span class="keywordflow">if</span> (dest[i] &lt; 32)
+<a name="l00707"></a>00707 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00708"></a>00708 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00709"></a>00709 <span class="keywordflow">if</span> (dest[i] &gt; 126)
+<a name="l00710"></a>00710 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00711"></a>00711 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> c = 0;
+<a name="l00712"></a>00712 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00713"></a>00713 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>)
+<a name="l00714"></a>00714 c++;
+<a name="l00715"></a>00715 <span class="keywordflow">if</span> (c&gt;1)
+<a name="l00716"></a>00716 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00717"></a>00717 c = 0;
+<a name="l00718"></a>00718 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00719"></a>00719 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>)
+<a name="l00720"></a>00720 c++;
+<a name="l00721"></a>00721 <span class="keywordflow">if</span> (c&gt;1)
+<a name="l00722"></a>00722 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00723"></a>00723
+<a name="l00724"></a>00724 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00725"></a>00725 }
</pre></div>
<p>
</td>
@@ -2007,9 +2046,9 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00693">693</a>
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00404">404</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00405"></a>00405 {
-<a name="l00406"></a>00406 <span class="keywordflow">return</span> is_valid_cmd(commandname.c_str(), pcnt, user);
-<a name="l00407"></a>00407 }
+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>.<div class="fragment"><pre class="fragment"><a name="l00410"></a>00410 {
+<a name="l00411"></a>00411 <span class="keywordflow">return</span> is_valid_cmd(commandname.c_str(), pcnt, user);
+<a name="l00412"></a>00412 }
</pre></div>
<p>
</td>
@@ -2059,9 +2098,9 @@ 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#l00362">362</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00363"></a>00363 {
-<a name="l00364"></a>00364 <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">false</span>);
-<a name="l00365"></a>00365 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00367">367</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00368"></a>00368 {
+<a name="l00369"></a>00369 <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">false</span>);
+<a name="l00370"></a>00370 }
</pre></div>
<p>
</td>
@@ -2105,9 +2144,9 @@ 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#l00409">409</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00410"></a>00410 {
-<a name="l00411"></a>00411 log(level,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00412"></a>00412 }
+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>.<div class="fragment"><pre class="fragment"><a name="l00415"></a>00415 {
+<a name="l00416"></a>00416 log(level,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00417"></a>00417 }
</pre></div>
<p>
</td>
@@ -2151,12 +2190,12 @@ 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#l00349">349</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00350"></a>00350 {
-<a name="l00351"></a>00351 <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
-<a name="l00352"></a>00352 strlcpy(literal,sliteral.c_str(),MAXBUF);
-<a name="l00353"></a>00353 strlcpy(pattern,spattern.c_str(),MAXBUF);
-<a name="l00354"></a>00354 <span class="keywordflow">return</span> match(literal,pattern);
-<a name="l00355"></a>00355 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00354">354</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00355"></a>00355 {
+<a name="l00356"></a>00356 <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
+<a name="l00357"></a>00357 strlcpy(literal,sliteral.c_str(),MAXBUF);
+<a name="l00358"></a>00358 strlcpy(pattern,spattern.c_str(),MAXBUF);
+<a name="l00359"></a>00359 <span class="keywordflow">return</span> match(literal,pattern);
+<a name="l00360"></a>00360 }
</pre></div>
<p>
</td>
@@ -2206,9 +2245,9 @@ 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#l00367">367</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00368"></a>00368 {
-<a name="l00369"></a>00369 <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
-<a name="l00370"></a>00370 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00372">372</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00373"></a>00373 {
+<a name="l00374"></a>00374 <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
+<a name="l00375"></a>00375 }
</pre></div>
<p>
</td>
@@ -2258,36 +2297,36 @@ 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#l00608">608</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="users_8h-source.html#l00149">userrec::chans</a>, <a class="el" href="users_8cpp-source.html#l00232">userrec::ClearBuffer()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00101">FD_MAGIC_NUMBER</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00129">userrec::ident</a>, <a class="el" href="channels_8h-source.html#l00106">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00124">userrec::nick</a>, <a class="el" href="channels_8h-source.html#l00131">chanrec::setby</a>, <a class="el" href="channels_8h-source.html#l00120">chanrec::topic</a>, and <a class="el" href="channels_8h-source.html#l00127">chanrec::topicset</a>.<div class="fragment"><pre class="fragment"><a name="l00609"></a>00609 {
-<a name="l00610"></a>00610 zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a> = alive-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
-<a name="l00611"></a>00611 alive-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
-<a name="l00612"></a>00612 alive-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
-<a name="l00613"></a>00613 Write(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,alive-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,alive-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
-<a name="l00614"></a>00614 kill_link(alive,message.c_str());
-<a name="l00615"></a>00615 <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>] = zombie;
-<a name="l00616"></a>00616 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; zombie-&gt;chans.size(); i++)
-<a name="l00617"></a>00617 {
-<a name="l00618"></a>00618 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel != NULL)
-<a name="l00619"></a>00619 {
-<a name="l00620"></a>00620 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel-&gt;name)
-<a name="l00621"></a>00621 {
-<a name="l00622"></a>00622 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel;
-<a name="l00623"></a>00623 WriteFrom(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00624"></a>00624 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>)
-<a name="l00625"></a>00625 {
-<a name="l00626"></a>00626 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>);
-<a name="l00627"></a>00627 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>);
-<a name="l00628"></a>00628 }
-<a name="l00629"></a>00629 userlist(zombie,Ptr);
-<a name="l00630"></a>00630 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00631"></a>00631
-<a name="l00632"></a>00632 }
-<a name="l00633"></a>00633 }
-<a name="l00634"></a>00634 }
-<a name="l00635"></a>00635 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00636"></a>00636 }
+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>.
+<p>
+References <a class="el" href="users_8h-source.html#l00149">userrec::chans</a>, <a class="el" href="users_8cpp-source.html#l00232">userrec::ClearBuffer()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00101">FD_MAGIC_NUMBER</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00129">userrec::ident</a>, <a class="el" href="channels_8h-source.html#l00106">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00124">userrec::nick</a>, <a class="el" href="channels_8h-source.html#l00131">chanrec::setby</a>, <a class="el" href="channels_8h-source.html#l00120">chanrec::topic</a>, and <a class="el" href="channels_8h-source.html#l00127">chanrec::topicset</a>.<div class="fragment"><pre class="fragment"><a name="l00614"></a>00614 {
+<a name="l00615"></a>00615 zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a> = alive-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
+<a name="l00616"></a>00616 alive-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
+<a name="l00617"></a>00617 alive-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
+<a name="l00618"></a>00618 Write(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,alive-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,alive-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00619"></a>00619 kill_link(alive,message.c_str());
+<a name="l00620"></a>00620 <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>] = zombie;
+<a name="l00621"></a>00621 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; zombie-&gt;chans.size(); i++)
+<a name="l00622"></a>00622 {
+<a name="l00623"></a>00623 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel != NULL)
+<a name="l00624"></a>00624 {
+<a name="l00625"></a>00625 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel-&gt;name)
+<a name="l00626"></a>00626 {
+<a name="l00627"></a>00627 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel;
+<a name="l00628"></a>00628 WriteFrom(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00629"></a>00629 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>)
+<a name="l00630"></a>00630 {
+<a name="l00631"></a>00631 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>);
+<a name="l00632"></a>00632 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>);
+<a name="l00633"></a>00633 }
+<a name="l00634"></a>00634 userlist(zombie,Ptr);
+<a name="l00635"></a>00635 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00636"></a>00636
+<a name="l00637"></a>00637 }
+<a name="l00638"></a>00638 }
+<a name="l00639"></a>00639 }
+<a name="l00640"></a>00640 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00641"></a>00641 }
</pre></div>
<p>
</td>
@@ -2333,9 +2372,9 @@ 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#l00389">389</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00390"></a>00390 {
-<a name="l00391"></a>00391 kill_link(user,reason.c_str());
-<a name="l00392"></a>00392 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00394">394</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00395"></a>00395 {
+<a name="l00396"></a>00396 kill_link(user,reason.c_str());
+<a name="l00397"></a>00397 }
</pre></div>
<p>
</td>
@@ -2416,9 +2455,9 @@ 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#l00424">424</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00425"></a>00425 {
-<a name="l00426"></a>00426 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00427"></a>00427 }
+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>.<div class="fragment"><pre class="fragment"><a name="l00430"></a>00430 {
+<a name="l00431"></a>00431 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00432"></a>00432 }
</pre></div>
<p>
</td>
@@ -2474,16 +2513,16 @@ 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#l00458">458</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00459"></a>00459 {
-<a name="l00460"></a>00460 <span class="keywordflow">if</span> (IncludeSender)
-<a name="l00461"></a>00461 {
-<a name="l00462"></a>00462 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00463"></a>00463 }
-<a name="l00464"></a>00464 <span class="keywordflow">else</span>
-<a name="l00465"></a>00465 {
-<a name="l00466"></a>00466 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00467"></a>00467 }
-<a name="l00468"></a>00468 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00463">463</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00464"></a>00464 {
+<a name="l00465"></a>00465 <span class="keywordflow">if</span> (IncludeSender)
+<a name="l00466"></a>00466 {
+<a name="l00467"></a>00467 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00468"></a>00468 }
+<a name="l00469"></a>00469 <span class="keywordflow">else</span>
+<a name="l00470"></a>00470 {
+<a name="l00471"></a>00471 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00472"></a>00472 }
+<a name="l00473"></a>00473 }
</pre></div>
<p>
</td>
@@ -2533,9 +2572,9 @@ Writes text to a channel, but from a server, including all.
<p>
This can be used to send server notices to a group of users.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00453">453</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00454"></a>00454 {
-<a name="l00455"></a>00455 WriteChannelWithServ((<span class="keywordtype">char</span>*)ServName.c_str(), Channel, <span class="stringliteral">"%s"</span>, text.c_str());
-<a name="l00456"></a>00456 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00458">458</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00459"></a>00459 {
+<a name="l00460"></a>00460 WriteChannelWithServ((<span class="keywordtype">char</span>*)ServName.c_str(), Channel, <span class="stringliteral">"%s"</span>, text.c_str());
+<a name="l00461"></a>00461 }
</pre></div>
<p>
</td>
@@ -2585,16 +2624,16 @@ 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#l00475">475</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00476"></a>00476 {
-<a name="l00477"></a>00477 <span class="keywordflow">if</span> (IncludeSender)
-<a name="l00478"></a>00478 {
-<a name="l00479"></a>00479 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00480"></a>00480 }
-<a name="l00481"></a>00481 <span class="keywordflow">else</span>
-<a name="l00482"></a>00482 {
-<a name="l00483"></a>00483 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00484"></a>00484 }
-<a name="l00485"></a>00485 }
+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>.<div class="fragment"><pre class="fragment"><a name="l00481"></a>00481 {
+<a name="l00482"></a>00482 <span class="keywordflow">if</span> (IncludeSender)
+<a name="l00483"></a>00483 {
+<a name="l00484"></a>00484 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00485"></a>00485 }
+<a name="l00486"></a>00486 <span class="keywordflow">else</span>
+<a name="l00487"></a>00487 {
+<a name="l00488"></a>00488 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00489"></a>00489 }
+<a name="l00490"></a>00490 }
</pre></div>
<p>
</td>
@@ -2644,9 +2683,9 @@ 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#l00434">434</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00435"></a>00435 {
-<a name="l00436"></a>00436 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00437"></a>00437 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00439">439</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00440"></a>00440 {
+<a name="l00441"></a>00441 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00442"></a>00442 }
</pre></div>
<p>
</td>
@@ -2703,11 +2742,11 @@ 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#l00419">419</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>
-References <a class="el" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode()</a>.<div class="fragment"><pre class="fragment"><a name="l00420"></a>00420 {
-<a name="l00421"></a>00421 <a class="code" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a>(parameters,pcnt,user);
-<a name="l00422"></a>00422 }
+References <a class="el" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode()</a>.<div class="fragment"><pre class="fragment"><a name="l00425"></a>00425 {
+<a name="l00426"></a>00426 <a class="code" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a>(parameters,pcnt,user);
+<a name="l00427"></a>00427 }
</pre></div>
<p>
</td>
@@ -2742,9 +2781,9 @@ 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#l00344">344</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00345"></a>00345 {
-<a name="l00346"></a>00346 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00347"></a>00347 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00349">349</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00350"></a>00350 {
+<a name="l00351"></a>00351 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00352"></a>00352 }
</pre></div>
<p>
</td>
@@ -2788,9 +2827,9 @@ 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#l00429">429</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00430"></a>00430 {
-<a name="l00431"></a>00431 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00432"></a>00432 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00434">434</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00435"></a>00435 {
+<a name="l00436"></a>00436 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00437"></a>00437 }
</pre></div>
<p>
</td>
@@ -2844,20 +2883,20 @@ 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#l00439">439</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#l00444">444</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>.<div class="fragment"><pre class="fragment"><a name="l00440"></a>00440 {
-<a name="l00441"></a>00441 <span class="keywordflow">if</span> (!Source)
-<a name="l00442"></a>00442 {
-<a name="l00443"></a>00443 <span class="comment">// if source is NULL, then the message originates from the local server</span>
-<a name="l00444"></a>00444 Write(Dest-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
-<a name="l00445"></a>00445 }
-<a name="l00446"></a>00446 <span class="keywordflow">else</span>
+References <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>.<div class="fragment"><pre class="fragment"><a name="l00445"></a>00445 {
+<a name="l00446"></a>00446 <span class="keywordflow">if</span> (!Source)
<a name="l00447"></a>00447 {
-<a name="l00448"></a>00448 <span class="comment">// otherwise it comes from the user specified</span>
-<a name="l00449"></a>00449 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00448"></a>00448 <span class="comment">// if source is NULL, then the message originates from the local server</span>
+<a name="l00449"></a>00449 Write(Dest-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
<a name="l00450"></a>00450 }
-<a name="l00451"></a>00451 }
+<a name="l00451"></a>00451 <span class="keywordflow">else</span>
+<a name="l00452"></a>00452 {
+<a name="l00453"></a>00453 <span class="comment">// otherwise it comes from the user specified</span>
+<a name="l00454"></a>00454 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00455"></a>00455 }
+<a name="l00456"></a>00456 }
</pre></div>
<p>
</td>
@@ -2909,9 +2948,9 @@ 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#l00357">357</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00358"></a>00358 {
-<a name="l00359"></a>00359 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00360"></a>00360 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00362">362</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00363"></a>00363 {
+<a name="l00364"></a>00364 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00365"></a>00365 }
</pre></div>
<p>
</td>
@@ -2955,9 +2994,9 @@ 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#l00487">487</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00488"></a>00488 {
-<a name="l00489"></a>00489 WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00490"></a>00490 }
+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>.<div class="fragment"><pre class="fragment"><a name="l00493"></a>00493 {
+<a name="l00494"></a>00494 WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00495"></a>00495 }
</pre></div>
<p>
</td>
@@ -3001,18 +3040,18 @@ 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#l00596">596</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="users_8cpp-source.html#l00232">userrec::ClearBuffer()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00101">FD_MAGIC_NUMBER</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, and <a class="el" href="users_8h-source.html#l00129">userrec::ident</a>.<div class="fragment"><pre class="fragment"><a name="l00597"></a>00597 {
-<a name="l00598"></a>00598 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
-<a name="l00599"></a>00599 user-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
-<a name="l00600"></a>00600 user-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
-<a name="l00601"></a>00601 Write(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,message.c_str());
-<a name="l00602"></a>00602 <a class="code" href="modules_8cpp.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(old_fd);
-<a name="l00603"></a>00603 shutdown(old_fd,2);
-<a name="l00604"></a>00604 close(old_fd);
-<a name="l00605"></a>00605 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00606"></a>00606 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00601">601</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="users_8cpp-source.html#l00232">userrec::ClearBuffer()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00101">FD_MAGIC_NUMBER</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, and <a class="el" href="users_8h-source.html#l00129">userrec::ident</a>.<div class="fragment"><pre class="fragment"><a name="l00602"></a>00602 {
+<a name="l00603"></a>00603 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
+<a name="l00604"></a>00604 user-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
+<a name="l00605"></a>00605 user-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
+<a name="l00606"></a>00606 Write(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,message.c_str());
+<a name="l00607"></a>00607 <a class="code" href="modules_8cpp.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(old_fd);
+<a name="l00608"></a>00608 shutdown(old_fd,2);
+<a name="l00609"></a>00609 close(old_fd);
+<a name="l00610"></a>00610 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00611"></a>00611 }
</pre></div>
<p>
</td>
@@ -3020,7 +3059,7 @@ References <a class="el" href="users_8cpp-source.html#l00232">userrec::ClearBuff
</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 Dec 14 14:49:33 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classServerConfig-members.html b/docs/module-doc/classServerConfig-members.html
index 927a91cc5..5e30ba1de 100644
--- a/docs/module-doc/classServerConfig-members.html
+++ b/docs/module-doc/classServerConfig-members.html
@@ -56,7 +56,7 @@
<tr class="memlist"><td><a class="el" href="classServerConfig.html#SoftLimit">SoftLimit</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classServerConfig.html#unlimitcore">unlimitcore</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~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 Dec 14 14:49:34 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classServerConfig.html b/docs/module-doc/classServerConfig.html
index 7991b1f19..c359b2c7d 100644
--- a/docs/module-doc/classServerConfig.html
+++ b/docs/module-doc/classServerConfig.html
@@ -5,7 +5,10 @@
</head><body>
<!-- Generated by Doxygen 1.4.4-20050815 -->
<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">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<h1>ServerConfig Class Reference</h1><!-- doxytag: class="ServerConfig" --><!-- doxytag: inherits="classbase" --><code>#include &lt;<a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>&gt;</code>
+<h1>ServerConfig Class Reference</h1><!-- doxytag: class="ServerConfig" --><!-- doxytag: inherits="classbase" -->This class holds the bulk of the runtime configuration for the ircd.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>&gt;</code>
<p>
Inheritance diagram for ServerConfig:<p><center><img src="classServerConfig__inherit__graph.gif" border="0" usemap="#ServerConfig__inherit__map" alt="Inheritance graph"></center>
<map name="ServerConfig__inherit__map">
@@ -22,8 +25,10 @@ Inheritance diagram for ServerConfig:<p><center><img src="classServerConfig__inh
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#ClearStack_28_29">ClearStack</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the include stack in preperation for a <a class="el" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read()</a> call. <a href="#ClearStack_28_29"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a> (bool bail, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read the entire configuration into memory and initialize this class. <a href="#Read_28bool_20bail_2C_20userrec_20_2Auser_29"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a> (const char *filename, std::stringstream *target, std::stringstream *errorstream)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a> (char *tag, char *var, int index, char *result, std::stringstream *config)</td></tr>
@@ -39,89 +44,128 @@ Inheritance diagram for ServerConfig:<p><center><img src="classServerConfig__inh
<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="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the server name of the local server as defined by the administrator. <a href="#ServerName_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a> [MAXBUF]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerDesc</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the description of the local server as defined by the administrator. <a href="#ServerDesc_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#AdminName_5BMAXBUF_5D">AdminName</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the admin's name, for output in the /ADMIN command. <a href="#AdminName_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">AdminEmail</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the email address of the admin, for output in the /ADMIN command. <a href="#AdminEmail_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">AdminNick</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the admin's nickname, for output in the /ADMIN command. <a href="#AdminNick_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#diepass_5BMAXBUF_5D">diepass</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The admin-configured /DIE password. <a href="#diepass_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#restartpass_5BMAXBUF_5D">restartpass</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The admin-configured /RESTART password. <a href="#restartpass_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#motd_5BMAXBUF_5D">motd</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The pathname and filename of the message of the day file, as defined by the administrator. <a href="#motd_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#rules_5BMAXBUF_5D">rules</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The pathname and filename of the rules file, as defined by the administrator. <a href="#rules_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#PrefixQuit_5BMAXBUF_5D">PrefixQuit</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The quit prefix in use, or an empty string. <a href="#PrefixQuit_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#DieValue_5BMAXBUF_5D">DieValue</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The last string found within a &lt;die&gt; tag, or an empty string. <a href="#DieValue_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#DNSServer_5BMAXBUF_5D">DNSServer</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="classDNS.html">DNS</a> server to use for <a class="el" href="classDNS.html">DNS</a> queries. <a href="#DNSServer_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#DisabledCommands_5BMAXBUF_5D">DisabledCommands</a> [MAXBUF]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This variable contains a space-seperated list of commands which are disabled by the administrator of the server for non-opers. <a href="#DisabledCommands_5BMAXBUF_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#ModPath_5B_31_30_32_34_5D">ModPath</a> [1024]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The full path to the modules directory. <a href="#ModPath_5B_31_30_32_34_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#MyExecutable_5B_31_30_32_34_5D">MyExecutable</a> [1024]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The full pathname to the executable, as given in argv[0] when the program starts. <a href="#MyExecutable_5B_31_30_32_34_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">FILE *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#log_5Ffile">log_file</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The file handle of the logfile. <a href="#log_5Ffile"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#nofork">nofork</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If this value is true, the owner of the server specified -nofork on the command line, causing the daemon to stay in the foreground. <a href="#nofork"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#unlimitcore">unlimitcore</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If this value is true, the owner of the server has chosen to unlimit the coredump size to as large a value as his account settings will allow. <a href="#unlimitcore"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#AllowHalfop">AllowHalfop</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If this value is true, halfops have been enabled in the configuration file. <a href="#AllowHalfop"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#dns_5Ftimeout">dns_timeout</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The number of seconds the <a class="el" href="classDNS.html">DNS</a> subsystem will wait before timing out any request. <a href="#dns_5Ftimeout"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#NetBufferSize">NetBufferSize</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The size of the read() buffer in the user handling code, used to read data into a user's recvQ. <a href="#NetBufferSize"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#MaxConn">MaxConn</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The value to be used for listen() backlogs as default. <a href="#MaxConn"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#SoftLimit">SoftLimit</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The soft limit value assigned to the irc server. <a href="#SoftLimit"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#MaxWhoResults">MaxWhoResults</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The maximum number of /WHO results allowed in any single /WHO command. <a href="#MaxWhoResults"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#debugging">debugging</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True if the DEBUG loglevel is selected. <a href="#debugging"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#LogLevel">LogLevel</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The loglevel in use by the IRC server. <a href="#LogLevel"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#DieDelay">DieDelay</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">How many seconds to wait before exiting the program when /DIE is correctly issued. <a href="#DieDelay"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#addrs_5BMAXBUF_5D_5B_32_35_35_5D">addrs</a> [MAXBUF][255]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A list of IP addresses the server is listening on. <a href="#addrs_5BMAXBUF_5D_5B_32_35_35_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="modules_8h.html#file_5Fcache">file_cache</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#MOTD">MOTD</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The MOTD file, cached in a file_cache type. <a href="#MOTD"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="modules_8h.html#file_5Fcache">file_cache</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#RULES">RULES</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The RULES file, cached in a file_cache type. <a href="#RULES"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#PID_5B_31_30_32_34_5D">PID</a> [1024]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The full pathname and filename of the PID file as defined in the configuration. <a href="#PID_5B_31_30_32_34_5D"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::stringstream&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#config_5Ff">config_f</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The parsed configuration file as a stringstream. <a href="#config_5Ff"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="users_8h.html#ClassVector">ClassVector</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#Classes">Classes</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The connect classes in use by the IRC server. <a href="#Classes"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; <a class="el" href="namespaceirc.html#string">std::string</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#module_5Fnames">module_names</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A list of module names (names only, no paths) which are currently loaded by the server. <a href="#module_5Fnames"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#fgets_5Fsafe_28char_20_2Abuffer_2C_20size_5Ft_20maxsize_2C_20FILE_20_2A_26file_29">fgets_safe</a> (char *buffer, size_t maxsize, FILE *&amp;file)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used by the config file subsystem to safely read a C-style string without dependency upon any certain style of linefeed, e.g. <a href="#fgets_5Fsafe_28char_20_2Abuffer_2C_20size_5Ft_20maxsize_2C_20FILE_20_2A_26file_29"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#ConfProcess_28char_20_2Abuffer_2C_20long_20linenumber_2C_20std_3A_3Astringstream_20_2Aerrorstream_2C_20bool_20_26error_2C_20std_3A_3Astring_20filename_29">ConfProcess</a> (char *buffer, long linenumber, std::stringstream *errorstream, bool &amp;error, <a class="el" href="namespaceirc.html#string">std::string</a> filename)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This private method processes one line of configutation, appending errors to errorstream and setting error if an error has occured. <a href="#ConfProcess_28char_20_2Abuffer_2C_20long_20linenumber_2C_20std_3A_3Astringstream_20_2Aerrorstream_2C_20bool_20_26error_2C_20std_3A_3Astring_20filename_29"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; <a class="el" href="namespaceirc.html#string">std::string</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#include_5Fstack">include_stack</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This variable holds the names of all files included from the main one. <a href="#include_5Fstack"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
-
+This class holds the bulk of the runtime configuration for the ircd.
+<p>
+It allows for reading new config values, accessing configuration files, and storage of the configuration data needed to run the ircd, such as the servername, connect classes, /ADMIN data, MOTDs and filenames etc.
<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00034">34</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00039">39</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="ServerConfig_28_29"></a><!-- doxytag: member="ServerConfig::ServerConfig" ref="ServerConfig_28_29" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
@@ -174,9 +218,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00034">34</a
<td>
<p>
+Clears the include stack in preperation for a <a class="el" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read()</a> call.
+<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00734">ConfigReader::ConfigReader()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00739">ConfigReader::ConfigReader()</a>. </td>
</tr>
</table>
<a class="anchor" name="ConfProcess_28char_20_2Abuffer_2C_20long_20linenumber_2C_20std_3A_3Astringstream_20_2Aerrorstream_2C_20bool_20_26error_2C_20std_3A_3Astring_20filename_29"></a><!-- doxytag: member="ServerConfig::ConfProcess" ref="ConfProcess_28char_20_2Abuffer_2C_20long_20linenumber_2C_20std_3A_3Astringstream_20_2Aerrorstream_2C_20bool_20_26error_2C_20std_3A_3Astring_20filename_29" args="(char *buffer, long linenumber, std::stringstream *errorstream, bool &amp;error, std::string filename)" --><p>
@@ -231,6 +277,8 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00734">ConfigReader:
<td>
<p>
+This private method processes one line of configutation, appending errors to errorstream and setting error if an error has occured.
+<p>
</td>
</tr>
</table>
@@ -364,7 +412,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00144">userrec::HasPer
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00866">ConfigReader::Enumerate()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00871">ConfigReader::Enumerate()</a>. </td>
</tr>
</table>
<a class="anchor" name="EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29"></a><!-- doxytag: member="ServerConfig::EnumValues" ref="EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29" args="(std::stringstream *config, const char *tag, int index)" --><p>
@@ -409,7 +457,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00866">ConfigReader:
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00871">ConfigReader::EnumerateValues()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00876">ConfigReader::EnumerateValues()</a>. </td>
</tr>
</table>
<a class="anchor" name="fgets_5Fsafe_28char_20_2Abuffer_2C_20size_5Ft_20maxsize_2C_20FILE_20_2A_26file_29"></a><!-- doxytag: member="ServerConfig::fgets_safe" ref="fgets_5Fsafe_28char_20_2Abuffer_2C_20size_5Ft_20maxsize_2C_20FILE_20_2A_26file_29" args="(char *buffer, size_t maxsize, FILE *&amp;file)" --><p>
@@ -452,7 +500,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00871">ConfigReader:
<td>
<p>
- </td>
+Used by the config file subsystem to safely read a C-style string without dependency upon any certain style of linefeed, e.g.
+<p>
+it can read both windows and UNIX style linefeeds transparently. </td>
</tr>
</table>
<a class="anchor" name="LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29"></a><!-- doxytag: member="ServerConfig::LoadConf" ref="LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29" args="(const char *filename, std::stringstream *target, std::stringstream *errorstream)" --><p>
@@ -497,7 +547,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00871">ConfigReader:
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00734">ConfigReader::ConfigReader()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00739">ConfigReader::ConfigReader()</a>. </td>
</tr>
</table>
<a class="anchor" name="Read_28bool_20bail_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="ServerConfig::Read" ref="Read_28bool_20bail_2C_20userrec_20_2Auser_29" args="(bool bail, userrec *user)" --><p>
@@ -534,7 +584,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00734">ConfigReader:
<td>
<p>
-
+Read the entire configuration into memory and initialize this class.
+<p>
+All other methods should be used only by the core.
<p>
Referenced by <a class="el" href="modules_8cpp-source.html#l00326">Server::RehashServer()</a>. </td>
</tr>
@@ -593,7 +645,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00326">Server::Rehas
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00780">ConfigReader::ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00797">ConfigReader::ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00764">ConfigReader::ReadValue()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00785">ConfigReader::ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00802">ConfigReader::ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00769">ConfigReader::ReadValue()</a>. </td>
</tr>
</table>
<hr><h2>Member Data Documentation</h2>
@@ -617,9 +669,11 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00780">ConfigReader:
<td>
<p>
+A list of IP addresses the server is listening on.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00070">70</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00216">216</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="AdminEmail_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::AdminEmail" ref="AdminEmail_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -642,9 +696,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00070">70</a
<td>
<p>
+Holds the email address of the admin, for output in the /ADMIN command.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00046">46</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00089">89</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="AdminName_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::AdminName" ref="AdminName_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -667,9 +723,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00046">46</a
<td>
<p>
+Holds the admin's name, for output in the /ADMIN command.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00045">45</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00084">84</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="AdminNick_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::AdminNick" ref="AdminNick_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -692,9 +750,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00045">45</a
<td>
<p>
+Holds the admin's nickname, for output in the /ADMIN command.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00047">47</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00094">94</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="AllowHalfop"></a><!-- doxytag: member="ServerConfig::AllowHalfop" ref="AllowHalfop" args="" --><p>
@@ -717,9 +777,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00047">47</a
<td>
<p>
+If this value is true, halfops have been enabled in the configuration file.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00061">61</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00171">171</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="Classes"></a><!-- doxytag: member="ServerConfig::Classes" ref="Classes" args="" --><p>
@@ -742,9 +804,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00061">61</a
<td>
<p>
+The connect classes in use by the IRC server.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00075">75</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00242">242</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="config_5Ff"></a><!-- doxytag: member="ServerConfig::config_f" ref="config_5Ff" args="" --><p>
@@ -767,9 +831,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00075">75</a
<td>
<p>
-
+The parsed configuration file as a stringstream.
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00074">74</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+You should pass this to any configuration methods of this class, and not access it directly. It is recommended that modules use <a class="el" href="classConfigReader.html">ConfigReader</a> instead which provides a simpler abstraction of configuration files.
+<p>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00238">238</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
<p>
Referenced by <a class="el" href="users_8cpp-source.html#l00144">userrec::HasPermission()</a>. </td>
</tr>
@@ -794,9 +860,11 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00144">userrec::HasPer
<td>
<p>
+True if the DEBUG loglevel is selected.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00067">67</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00202">202</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="DieDelay"></a><!-- doxytag: member="ServerConfig::DieDelay" ref="DieDelay" args="" --><p>
@@ -819,9 +887,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00067">67</a
<td>
<p>
+How many seconds to wait before exiting the program when /DIE is correctly issued.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00069">69</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00211">211</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="diepass_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::diepass" ref="diepass_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -844,9 +914,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00069">69</a
<td>
<p>
+The admin-configured /DIE password.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00048">48</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00098">98</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="DieValue_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::DieValue" ref="DieValue_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -869,9 +941,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00048">48</a
<td>
<p>
+The last string found within a &lt;die&gt; tag, or an empty string.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00053">53</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00121">121</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="DisabledCommands_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::DisabledCommands" ref="DisabledCommands_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -894,9 +968,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00053">53</a
<td>
<p>
+This variable contains a space-seperated list of commands which are disabled by the administrator of the server for non-opers.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00055">55</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00131">131</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="dns_5Ftimeout"></a><!-- doxytag: member="ServerConfig::dns_timeout" ref="dns_5Ftimeout" args="" --><p>
@@ -919,9 +995,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00055">55</a
<td>
<p>
+The number of seconds the <a class="el" href="classDNS.html">DNS</a> subsystem will wait before timing out any request.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00062">62</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00176">176</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="DNSServer_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::DNSServer" ref="DNSServer_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -944,9 +1022,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00062">62</a
<td>
<p>
+The <a class="el" href="classDNS.html">DNS</a> server to use for <a class="el" href="classDNS.html">DNS</a> queries.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00054">54</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00125">125</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="include_5Fstack"></a><!-- doxytag: member="ServerConfig::include_stack" ref="include_5Fstack" args="" --><p>
@@ -969,9 +1049,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00054">54</a
<td>
<p>
-
+This variable holds the names of all files included from the main one.
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00037">37</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+This is used to make sure that no files are recursively included.
+<p>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00047">47</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="log_5Ffile"></a><!-- doxytag: member="ServerConfig::log_file" ref="log_5Ffile" args="" --><p>
@@ -994,9 +1076,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00037">37</a
<td>
<p>
-
+The file handle of the logfile.
+<p>
+If this value is NULL, the log file is not open, probably due to a permissions error on startup (this should not happen in normal operation!).
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00058">58</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00151">151</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="LogLevel"></a><!-- doxytag: member="ServerConfig::LogLevel" ref="LogLevel" args="" --><p>
@@ -1019,9 +1103,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00058">58</a
<td>
<p>
+The loglevel in use by the IRC server.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00068">68</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00206">206</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="MaxConn"></a><!-- doxytag: member="ServerConfig::MaxConn" ref="MaxConn" args="" --><p>
@@ -1044,9 +1130,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00068">68</a
<td>
<p>
+The value to be used for listen() backlogs as default.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00064">64</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00187">187</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="MaxWhoResults"></a><!-- doxytag: member="ServerConfig::MaxWhoResults" ref="MaxWhoResults" args="" --><p>
@@ -1069,9 +1157,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00064">64</a
<td>
<p>
+The maximum number of /WHO results allowed in any single /WHO command.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00066">66</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00198">198</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="ModPath_5B_31_30_32_34_5D"></a><!-- doxytag: member="ServerConfig::ModPath" ref="ModPath_5B_31_30_32_34_5D" args="[1024]" --><p>
@@ -1094,9 +1184,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00066">66</a
<td>
<p>
-
+The full path to the modules directory.
+<p>
+This is either set at compile time, or overridden in the configuration file via the &lt;options&gt; tag.
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00056">56</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00138">138</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="module_5Fnames"></a><!-- doxytag: member="ServerConfig::module_names" ref="module_5Fnames" args="" --><p>
@@ -1119,11 +1211,13 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00056">56</a
<td>
<p>
+A list of module names (names only, no paths) which are currently loaded by the server.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00076">76</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00247">247</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00722">Server::FindModule()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00727">Server::FindModule()</a>. </td>
</tr>
</table>
<a class="anchor" name="MOTD"></a><!-- doxytag: member="ServerConfig::MOTD" ref="MOTD" args="" --><p>
@@ -1146,9 +1240,11 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00722">Server::FindM
<td>
<p>
+The MOTD file, cached in a file_cache type.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00071">71</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00220">220</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="motd_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::motd" ref="motd_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1171,9 +1267,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00071">71</a
<td>
<p>
+The pathname and filename of the message of the day file, as defined by the administrator.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00050">50</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00107">107</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="MyExecutable_5B_31_30_32_34_5D"></a><!-- doxytag: member="ServerConfig::MyExecutable" ref="MyExecutable_5B_31_30_32_34_5D" args="[1024]" --><p>
@@ -1196,9 +1294,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00050">50</a
<td>
<p>
+The full pathname to the executable, as given in argv[0] when the program starts.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00057">57</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00143">143</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="NetBufferSize"></a><!-- doxytag: member="ServerConfig::NetBufferSize" ref="NetBufferSize" args="" --><p>
@@ -1221,9 +1321,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00057">57</a
<td>
<p>
+The size of the read() buffer in the user handling code, used to read data into a user's recvQ.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00063">63</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00182">182</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="Network_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::Network" ref="Network_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1248,7 +1350,7 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00063">63</a
<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00043">43</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00074">74</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="nofork"></a><!-- doxytag: member="ServerConfig::nofork" ref="nofork" args="" --><p>
@@ -1271,9 +1373,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00043">43</a
<td>
<p>
+If this value is true, the owner of the server specified -nofork on the command line, causing the daemon to stay in the foreground.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00059">59</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00158">158</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="PID_5B_31_30_32_34_5D"></a><!-- doxytag: member="ServerConfig::PID" ref="PID_5B_31_30_32_34_5D" args="[1024]" --><p>
@@ -1296,9 +1400,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00059">59</a
<td>
<p>
+The full pathname and filename of the PID file as defined in the configuration.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00073">73</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00229">229</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="PrefixQuit_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::PrefixQuit" ref="PrefixQuit_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1321,9 +1427,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00073">73</a
<td>
<p>
+The quit prefix in use, or an empty string.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00052">52</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00116">116</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="restartpass_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::restartpass" ref="restartpass_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1346,9 +1454,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00052">52</a
<td>
<p>
+The admin-configured /RESTART password.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00049">49</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00102">102</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="RULES"></a><!-- doxytag: member="ServerConfig::RULES" ref="RULES" args="" --><p>
@@ -1371,9 +1481,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00049">49</a
<td>
<p>
+The RULES file, cached in a file_cache type.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00072">72</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00224">224</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="rules_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::rules" ref="rules_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1396,9 +1508,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00072">72</a
<td>
<p>
+The pathname and filename of the rules file, as defined by the administrator.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00051">51</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00112">112</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="ServerDesc_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::ServerDesc" ref="ServerDesc_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1421,9 +1535,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00051">51</a
<td>
<p>
+Holds the description of the local server as defined by the administrator.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00044">44</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00079">79</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="ServerName_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::ServerName" ref="ServerName_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1446,9 +1562,11 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00044">44</a
<td>
<p>
+Holds the server name of the local server as defined by the administrator.
+<p>
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00042">42</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00068">68</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
<p>
Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>. </td>
</tr>
@@ -1473,9 +1591,11 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userre
<td>
<p>
-
+The soft limit value assigned to the irc server.
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00065">65</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+The IRC server will not allow more than this number of local users.
+<p>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00193">193</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<a class="anchor" name="unlimitcore"></a><!-- doxytag: member="ServerConfig::unlimitcore" ref="unlimitcore" args="" --><p>
@@ -1498,14 +1618,16 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00065">65</a
<td>
<p>
-
+If this value is true, the owner of the server has chosen to unlimit the coredump size to as large a value as his account settings will allow.
+<p>
+This is often used when debugging.
<p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00060">60</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00166">166</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>. </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:34 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classSocketEngine-members.html b/docs/module-doc/classSocketEngine-members.html
index 920035deb..a19d6103a 100644
--- a/docs/module-doc/classSocketEngine-members.html
+++ b/docs/module-doc/classSocketEngine-members.html
@@ -17,7 +17,7 @@
<tr class="memlist"><td><a class="el" href="classSocketEngine.html#ts">ts</a></td><td><a class="el" href="classSocketEngine.html">SocketEngine</a></td><td><code> [private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classSocketEngine.html#Wait_28std_3A_3Avector_3C_20int_20_3E_20_26fdlist_29">Wait</a>(std::vector&lt; int &gt; &amp;fdlist)</td><td><a class="el" href="classSocketEngine.html">SocketEngine</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classSocketEngine.html#_7ESocketEngine_28_29">~SocketEngine</a>()</td><td><a class="el" href="classSocketEngine.html">SocketEngine</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:34 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classSocketEngine.html b/docs/module-doc/classSocketEngine.html
index 96c5a96e2..772f60752 100644
--- a/docs/module-doc/classSocketEngine.html
+++ b/docs/module-doc/classSocketEngine.html
@@ -264,7 +264,7 @@ Definition at line <a class="el" href="socketengine_8cpp-source.html#l00103">103
<p>
References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="socketengine_8h-source.html#l00069">EngineHandle</a>, <a class="el" href="socketengine_8h-source.html#l00068">fds</a>, <a class="el" href="socketengine_8cpp-source.html#l00033">ref</a>, and <a class="el" href="socketengine_8h-source.html#l00055">X_READBIT</a>.
<p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00217">InspSocket::Poll()</a>, and <a class="el" href="modules_8cpp-source.html#l00596">Server::UserToPseudo()</a>.<div class="fragment"><pre class="fragment"><a name="l00104"></a>00104 {
+Referenced by <a class="el" href="socket_8cpp-source.html#l00217">InspSocket::Poll()</a>, and <a class="el" href="modules_8cpp-source.html#l00601">Server::UserToPseudo()</a>.<div class="fragment"><pre class="fragment"><a name="l00104"></a>00104 {
<a name="l00105"></a>00105 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"SocketEngine::DelFd(%d)"</span>,fd);
<a name="l00106"></a>00106
<a name="l00107"></a>00107 <span class="keywordflow">if</span> ((fd &lt; 0) || (fd &gt; 65535))
@@ -589,7 +589,7 @@ Referenced by <a class="el" href="socketengine_8cpp-source.html#l00146">Wait()</
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="socketengine_8h-source.html">socketengine.h</a><li><a class="el" href="socketengine_8cpp-source.html">socketengine.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:34 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classVersion-members.html b/docs/module-doc/classVersion-members.html
index cfb859e88..807f49cea 100644
--- a/docs/module-doc/classVersion-members.html
+++ b/docs/module-doc/classVersion-members.html
@@ -15,7 +15,7 @@
<tr class="memlist"><td><a class="el" href="classVersion.html#Revision">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#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">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#_7Eclassbase_28_29">~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 Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classVersion.html b/docs/module-doc/classVersion.html
index 07fa12a14..245964d99 100644
--- a/docs/module-doc/classVersion.html
+++ b/docs/module-doc/classVersion.html
@@ -231,7 +231,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00116">116</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 Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classWhoWasUser-members.html b/docs/module-doc/classWhoWasUser-members.html
index 3e9351ddc..d7492b9e1 100644
--- a/docs/module-doc/classWhoWasUser-members.html
+++ b/docs/module-doc/classWhoWasUser-members.html
@@ -13,7 +13,7 @@
<tr class="memlist"><td><a class="el" href="classWhoWasUser.html#nick_5BNICKMAX_5D">nick</a></td><td><a class="el" href="classWhoWasUser.html">WhoWasUser</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classWhoWasUser.html#server_5B_32_35_36_5D">server</a></td><td><a class="el" href="classWhoWasUser.html">WhoWasUser</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classWhoWasUser.html#signon">signon</a></td><td><a class="el" href="classWhoWasUser.html">WhoWasUser</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classWhoWasUser.html b/docs/module-doc/classWhoWasUser.html
index 6fdfa0518..31b53e3e2 100644
--- a/docs/module-doc/classWhoWasUser.html
+++ b/docs/module-doc/classWhoWasUser.html
@@ -212,7 +212,7 @@ Definition at line <a class="el" href="users_8h-source.html#l00341">341</a> of f
</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 Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classXLine-members.html b/docs/module-doc/classXLine-members.html
index ef2188e8e..d17c0a1c6 100644
--- a/docs/module-doc/classXLine-members.html
+++ b/docs/module-doc/classXLine-members.html
@@ -14,7 +14,7 @@
<tr class="memlist"><td><a class="el" href="classXLine.html#set_5Ftime">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#source_5B_32_35_36_5D">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#_7Eclassbase_28_29">~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 Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classXLine.html b/docs/module-doc/classXLine.html
index 2f9771cb2..813b8cac1 100644
--- a/docs/module-doc/classXLine.html
+++ b/docs/module-doc/classXLine.html
@@ -185,7 +185,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00053">53</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 Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classZLine-members.html b/docs/module-doc/classZLine-members.html
index fc8645ecf..2e483c05d 100644
--- a/docs/module-doc/classZLine-members.html
+++ b/docs/module-doc/classZLine-members.html
@@ -16,7 +16,7 @@
<tr class="memlist"><td><a class="el" href="classXLine.html#set_5Ftime">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#source_5B_32_35_36_5D">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#_7Eclassbase_28_29">~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 Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classZLine.html b/docs/module-doc/classZLine.html
index 84dfd5be4..769ce9807 100644
--- a/docs/module-doc/classZLine.html
+++ b/docs/module-doc/classZLine.html
@@ -92,7 +92,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00108">108</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 Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classchanrec-members.html b/docs/module-doc/classchanrec-members.html
index 11464dd07..3cc7f0f90 100644
--- a/docs/module-doc/classchanrec-members.html
+++ b/docs/module-doc/classchanrec-members.html
@@ -34,7 +34,7 @@
<tr class="memlist"><td><a class="el" href="classchanrec.html#topicset">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#_7Echanrec_28_29">~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#_7Eclassbase_28_29">~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 Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classchanrec.html b/docs/module-doc/classchanrec.html
index 808cabf95..eaa2780f0 100644
--- a/docs/module-doc/classchanrec.html
+++ b/docs/module-doc/classchanrec.html
@@ -398,7 +398,7 @@ Definition at line <a class="el" href="channels_8cpp-source.html#l00186">186</a>
<p>
References <a class="el" href="channels_8h-source.html#l00115">internal_userlist</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00372">Server::GetUsers()</a>.<div class="fragment"><pre class="fragment"><a name="l00187"></a>00187 {
+Referenced by <a class="el" href="modules_8cpp-source.html#l00377">Server::GetUsers()</a>.<div class="fragment"><pre class="fragment"><a name="l00187"></a>00187 {
<a name="l00188"></a>00188 <span class="keywordflow">return</span> &amp;<a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>;
<a name="l00189"></a>00189 }
</pre></div>
@@ -839,7 +839,7 @@ The channels name.
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00106">106</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#l00073">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00172">DelUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00608">Server::PseudoToUser()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00172">DelUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00613">Server::PseudoToUser()</a>. </td>
</tr>
</table>
<a class="anchor" name="setby_5BNICKMAX_5D"></a><!-- doxytag: member="chanrec::setby" ref="setby_5BNICKMAX_5D" args="[NICKMAX]" --><p>
@@ -868,7 +868,7 @@ If this member is an empty string, no topic was ever set.
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00131">131</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#l00073">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00608">Server::PseudoToUser()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00613">Server::PseudoToUser()</a>. </td>
</tr>
</table>
<a class="anchor" name="topic_5BMAXBUF_5D"></a><!-- doxytag: member="chanrec::topic" ref="topic_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -897,7 +897,7 @@ If this is an empty string, no channel topic is set.
<p>
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#l00073">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00608">Server::PseudoToUser()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00613">Server::PseudoToUser()</a>. </td>
</tr>
</table>
<a class="anchor" name="topicset"></a><!-- doxytag: member="chanrec::topicset" ref="topicset" args="" --><p>
@@ -926,12 +926,12 @@ If no topic was ever set, this will be equal to <a class="el" href="classchanrec
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00127">127</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#l00073">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00608">Server::PseudoToUser()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00613">Server::PseudoToUser()</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 Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classclassbase-members.html b/docs/module-doc/classclassbase-members.html
index 970fa0896..501d7adb1 100644
--- a/docs/module-doc/classclassbase-members.html
+++ b/docs/module-doc/classclassbase-members.html
@@ -9,7 +9,7 @@
<tr class="memlist"><td><a class="el" href="classclassbase.html#age">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#classbase_28_29">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#_7Eclassbase_28_29">~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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classclassbase.html b/docs/module-doc/classclassbase.html
index b5c474bf1..db3b992fd 100644
--- a/docs/module-doc/classclassbase.html
+++ b/docs/module-doc/classclassbase.html
@@ -150,7 +150,7 @@ Referenced by <a class="el" href="base_8h-source.html#l00040">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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classcommand__t-members.html b/docs/module-doc/classcommand__t-members.html
index e6a640d17..1d7a72aae 100644
--- a/docs/module-doc/classcommand__t-members.html
+++ b/docs/module-doc/classcommand__t-members.html
@@ -20,7 +20,7 @@
<tr class="memlist"><td><a class="el" href="classcommand__t.html#total_5Fbytes">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#use_5Fcount">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#_7Eclassbase_28_29">~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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classcommand__t.html b/docs/module-doc/classcommand__t.html
index 4442940b4..51c0d9577 100644
--- a/docs/module-doc/classcommand__t.html
+++ b/docs/module-doc/classcommand__t.html
@@ -242,7 +242,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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classconnection-members.html b/docs/module-doc/classconnection-members.html
index f2d0f5a26..cdf28dcb6 100644
--- a/docs/module-doc/classconnection-members.html
+++ b/docs/module-doc/classconnection-members.html
@@ -28,7 +28,7 @@
<tr class="memlist"><td><a class="el" href="classExtensible.html#Shrink_28std_3A_3Astring_20key_29">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="classconnection.html#signon">signon</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classconnection.html b/docs/module-doc/classconnection.html
index b412af793..bf0ea2c46 100644
--- a/docs/module-doc/classconnection.html
+++ b/docs/module-doc/classconnection.html
@@ -258,7 +258,7 @@ File descriptor of the connection.
<p>
Definition at line <a class="el" href="connection_8h-source.html#l00042">42</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
<p>
-Referenced by <a class="el" href="connection_8h-source.html#l00100">connection()</a>, <a class="el" href="modules_8cpp-source.html#l00833">ConfigReader::DumpErrors()</a>, <a class="el" href="modules_8cpp-source.html#l00608">Server::PseudoToUser()</a>, <a class="el" href="modules_8cpp-source.html#l00439">Server::SendTo()</a>, <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00596">Server::UserToPseudo()</a>. </td>
+Referenced by <a class="el" href="connection_8h-source.html#l00100">connection()</a>, <a class="el" href="modules_8cpp-source.html#l00838">ConfigReader::DumpErrors()</a>, <a class="el" href="modules_8cpp-source.html#l00613">Server::PseudoToUser()</a>, <a class="el" href="modules_8cpp-source.html#l00444">Server::SendTo()</a>, <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00601">Server::UserToPseudo()</a>. </td>
</tr>
</table>
<a class="anchor" name="haspassed"></a><!-- doxytag: member="connection::haspassed" ref="haspassed" args="" --><p>
@@ -316,7 +316,7 @@ Not used if this is a serverrec
<p>
Definition at line <a class="el" href="connection_8h-source.html#l00046">46</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#l00089">userrec::GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00608">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00596">Server::UserToPseudo()</a>. </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00089">userrec::GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00613">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00601">Server::UserToPseudo()</a>. </td>
</tr>
</table>
<a class="anchor" name="idle_5Flastmsg"></a><!-- doxytag: member="connection::idle_lastmsg" ref="idle_5Flastmsg" args="" --><p>
@@ -524,7 +524,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userre
</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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classes.html b/docs/module-doc/classes.html
index 29a5189f7..aa4fe2804 100644
--- a/docs/module-doc/classes.html
+++ b/docs/module-doc/classes.html
@@ -27,7 +27,7 @@
</td></tr><tr><td><a class="el" href="classConnectClass.html">ConnectClass</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_G"></a><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="classKLine.html">KLine</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classSocketEngine.html">SocketEngine</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classZLine.html">ZLine</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classconnection.html">connection</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classGLine.html">GLine</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;M&nbsp;&nbsp;</div></td></tr></table>
</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_E">E</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_F">F</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_G">G</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_H">H</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_K">K</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_M">M</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Q">Q</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_R">R</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_U">U</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_V">V</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_W">W</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_X">X</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Z">Z</a></div><p>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classircd__connector-members.html b/docs/module-doc/classircd__connector-members.html
deleted file mode 100644
index 8d838171f..000000000
--- a/docs/module-doc/classircd__connector-members.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>InspIRCd: Member List</title>
-<link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- 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="namespacemembers.html">Namespace&nbsp;Members</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#a15">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="classircd__connector.html#a21">AddWriteBuf</a>(std::string data)</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#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#a16">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="classircd__connector.html#a26">CheckPing</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#a17">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#a14">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#a22">FlushWriteBuf</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#a18">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#a9">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#a4">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#a8">GetServerIP</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#a2">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#a11">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#a6">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#a20">GetVersionString</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#a24">GetWriteError</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#a25">HasBufferedOutput</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#a0">ircd_connector</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#a1">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#r8">nextping</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#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#r9">replied</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#a27">ResetPing</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#r6">sendq</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#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#a10">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#a5">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#a13">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#a3">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#a12">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#a7">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="classircd__connector.html#a19">SetVersionString</a>(std::string newversion)</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#a23">SetWriteError</a>(std::string error)</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="classircd__connector.html#r5">version</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#r7">WriteError</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 Mon May 30 05:17:18 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>
-</body>
-</html>
diff --git a/docs/module-doc/classircd__connector.html b/docs/module-doc/classircd__connector.html
deleted file mode 100644
index 930a30da1..000000000
--- a/docs/module-doc/classircd__connector.html
+++ /dev/null
@@ -1,1542 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>InspIRCd: ircd_connector class Reference</title>
-<link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- 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="namespacemembers.html">Namespace&nbsp;Members</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 Class Reference</h1>Each connection has one or more of these each represents ONE outbound connection to another ircd so each inbound has multiple outbounds.
-<a href="#_details">More...</a>
-<p>
-<code>#include &lt;<a class="el" href="connection_8h-source.html">connection.h</a>&gt;</code>
-<p>
-Inheritance diagram for ircd_connector:<p><center><img src="classircd__connector__inherit__graph.gif" border="0" usemap="#ircd__connector__inherit__map" alt="Inheritance graph"></center>
-<map name="ircd__connector__inherit__map">
-<area href="classExtensible.html" shape="rect" coords="21,82,103,109" alt="">
-<area href="classclassbase.html" shape="rect" coords="22,8,102,34" alt="">
-</map>
-<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for ircd_connector:<p><center><img src="classircd__connector__coll__graph.gif" border="0" usemap="#ircd__connector__coll__map" alt="Collaboration graph"></center>
-<map name="ircd__connector__coll__map">
-<area href="classExtensible.html" shape="rect" coords="37,8,120,34" alt="">
-</map>
-<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><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>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a0">ircd_connector</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor clears the sendq and initialises the fd to -1. </em> <a href="#a0"></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#a1">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="#a1"></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#a2">GetServerName</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the servername on this established connection. </em> <a href="#a2"></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#a3">SetServerName</a> (std::string serv)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the server name of this connection. </em> <a href="#a3"></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#a4">GetDescriptor</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the file descriptor associated with this connection. </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="classircd__connector.html#a5">SetDescriptor</a> (int <a class="el" href="classircd__connector.html#r1">fd</a>)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the file descriptor for this connection. </em> <a href="#a5"></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#a6">GetState</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the state flags for this connection. </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="classircd__connector.html#a7">SetState</a> (int <a class="el" href="classircd__connector.html#r4">state</a>)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the state flags for this connection. </em> <a href="#a7"></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#a8">GetServerIP</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the ip address (not servername) associated with this connection. </em> <a href="#a8"></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#a9">GetDescription</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the server description of this connection. </em> <a href="#a9"></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#a10">SetDescription</a> (std::string desc)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the server description of this connection. </em> <a href="#a10"></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#a11">GetServerPort</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the port number being used for this connection If the connection is outbound this will be the remote port otherwise it will be the local port, so it can always be gautanteed as open at the address given in <a class="el" href="classircd__connector.html#a8">GetServerIP()</a>. </em> <a href="#a11"></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#a12">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="#a12"></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#a13">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="#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">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="#a14"></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#a15">AddBuffer</a> (std::string a)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method adds text to the ircd connection's buffer. </em> <a href="#a15"></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#a16">BufferIsComplete</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method returns true if the buffer contains at least one carriage return character, e.g. </em> <a href="#a16"></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#a17">ClearBuffer</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method clears the server's buffer by setting it to an empty string. </em> <a href="#a17"></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#a18">GetBuffer</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method retrieves the first string from the tail end of the buffer and advances the tail end of the buffer past the returned string, in a similar manner to strtok(). </em> <a href="#a18"></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#a19">SetVersionString</a> (std::string newversion)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method sets the version string of the remote server. </em> <a href="#a19"></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#a20">GetVersionString</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method returns the version string of the remote server. </em> <a href="#a20"></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#a21">AddWriteBuf</a> (std::string data)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds data to the connection's sendQ to be flushed later. </em> <a href="#a21"></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#a22">FlushWriteBuf</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flushes as much of the data from the buffer as possible, and advances the queue pointer to what is left. </em> <a href="#a22"></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#a23">SetWriteError</a> (std::string error)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the error string for this connection. </em> <a href="#a23"></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#a24">GetWriteError</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the error string for this connection. </em> <a href="#a24"></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#a25">HasBufferedOutput</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if there is data to be written that hasn't been sent yet. </em> <a href="#a25"></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#a26">CheckPing</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks if the connection replied to its last ping, and if it did sends another and returns true, if not, returns false. </em> <a href="#a26"></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#a27">ResetPing</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets the ping counter. </em> <a href="#a27"></a><em><br><br></td></tr>
-<tr><td colspan=2><br><h2>Public Attributes</h2></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">IRCD Buffer for input characters, holds as many lines as are pending - Note that the final line may not be complete and should only be read when there is a <br>
- seperator. </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>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="#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#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>
-<tr><td class="memItemLeft" nowrap align=right valign=top>sockaddr_in&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#r0">addr</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sockaddr of the outbound ip and port. </em> <a href="#r0"></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#r1">fd</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">File descriptor of the connection. </em> <a href="#r1"></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#r2">servername</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classServer.html">Server</a> name. </em> <a href="#r2"></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#r3">description</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classServer.html">Server</a> 'GECOS'. </em> <a href="#r3"></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#r4">state</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">State. </em> <a href="#r4"></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#r5">version</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This string holds the ircd's version response. </em> <a href="#r5"></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#r6">sendq</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SendQ of the outbound connector, does not have a limit. </em> <a href="#r6"></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#r7">WriteError</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write error of connection. </em> <a href="#r7"></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="classircd__connector.html#r8">nextping</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Time this connection was last pinged. </em> <a href="#r8"></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#r9">replied</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Did this connection reply to its last ping? </em> <a href="#r9"></a><em><br><br></td></tr>
-</table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-Each connection has one or more of these each represents ONE outbound connection to another ircd so each inbound has multiple outbounds.
-<p>
-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.
-<p>
-
-<p>
-Definition at line <a class="el" href="connection_8h-source.html#l00056">56</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="ircd_connector::ircd_connector"></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"> ircd_connector::ircd_connector </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>
-Constructor clears the sendq and initialises the fd to -1.
-<p>
- </td>
- </tr>
-</table>
-<hr><h2>Member Function Documentation</h2>
-<a name="a15" 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"> bool 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>
-This method adds text to the ircd connection's buffer.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign=top><em>a</em>&nbsp;</td><td>The text to add to the buffer up to a maximum size of 1MB</td></tr>
- </table>
-</dl>
-This buffer's maximum size is one megabyte, the method returning false if the buffer is full.<p>
-<dl compact><dt><b>Returns:</b></dt><dd>True on success, false if the buffer is full or the connection is down</dd></dl>
- </td>
- </tr>
-</table>
-<a name="a21" doxytag="ircd_connector::AddWriteBuf"></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::AddWriteBuf </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>data</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>
-Adds data to the connection's sendQ to be flushed later.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign=top><em>data</em>&nbsp;</td><td>The data to add to the write buffer</td></tr>
- </table>
-</dl>
-Fails if there is an error pending on the connection.<p>
-<dl compact><dt><b>Returns:</b></dt><dd>True on success, false if the connection is down or the buffer is full</dd></dl>
-
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00350">serverrec::SendPacket()</a>. </td>
- </tr>
-</table>
-<a name="a16" 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>
-This method returns true if the buffer contains at least one carriage return character, e.g.
-<p>
-one line can be read from the buffer successfully.<p>
-<dl compact><dt><b>Returns:</b></dt><dd>True if there is at least one complete line waiting to be processed</dd></dl>
- </td>
- </tr>
-</table>
-<a name="a26" doxytag="ircd_connector::CheckPing"></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::CheckPing </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>
-Checks if the connection replied to its last ping, and if it did sends another and returns true, if not, returns false.
-<p>
-<dl compact><dt><b>Returns:</b></dt><dd>True if the server is still replying to pings</dd></dl>
- </td>
- </tr>
-</table>
-<a name="a17" 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>
-This method clears the server's buffer by setting it to an empty string.
-<p>
- </td>
- </tr>
-</table>
-<a name="a14" doxytag="ircd_connector::CloseConnection"></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::CloseConnection </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>
-Close the connection by calling close() on its file descriptor This function call updates no other data.
-<p>
-
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00350">serverrec::SendPacket()</a>. </td>
- </tr>
-</table>
-<a name="a22" doxytag="ircd_connector::FlushWriteBuf"></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::FlushWriteBuf </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>
-Flushes as much of the data from the buffer as possible, and advances the queue pointer to what is left.
-<p>
-<dl compact><dt><b>Returns:</b></dt><dd>True if the flush succeeded, false if the connection is down</dd></dl>
-
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00350">serverrec::SendPacket()</a>. </td>
- </tr>
-</table>
-<a name="a18" 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>
-This method retrieves the first string from the tail end of the buffer and advances the tail end of the buffer past the returned string, in a similar manner to strtok().
-<p>
-<dl compact><dt><b>Returns:</b></dt><dd>The first line of the buffer up to a carriage return</dd></dl>
- </td>
- </tr>
-</table>
-<a name="a9" doxytag="ircd_connector::GetDescription"></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::GetDescription </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>
-Get the server description of this connection.
-<p>
-<dl compact><dt><b>Returns:</b></dt><dd>The description (GECOS) of this connection</dd></dl>
- </td>
- </tr>
-</table>
-<a name="a4" doxytag="ircd_connector::GetDescriptor"></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 ircd_connector::GetDescriptor </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>
-Get the file descriptor associated with this connection.
-<p>
-<dl compact><dt><b>Returns:</b></dt><dd>The file descriptor associated with this connection</dd></dl>
- </td>
- </tr>
-</table>
-<a name="a8" doxytag="ircd_connector::GetServerIP"></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* ircd_connector::GetServerIP </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>
-Get the ip address (not servername) associated with this connection.
-<p>
-<dl compact><dt><b>Returns:</b></dt><dd>The connections IP address in dotted decimal form</dd></dl>
- </td>
- </tr>
-</table>
-<a name="a2" doxytag="ircd_connector::GetServerName"></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::GetServerName </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>
-Return the servername on this established connection.
-<p>
-
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00350">serverrec::SendPacket()</a>. </td>
- </tr>
-</table>
-<a name="a11" doxytag="ircd_connector::GetServerPort"></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 ircd_connector::GetServerPort </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>
-Get the port number being used for this connection If the connection is outbound this will be the remote port otherwise it will be the local port, so it can always be gautanteed as open at the address given in <a class="el" href="classircd__connector.html#a8">GetServerIP()</a>.
-<p>
-<dl compact><dt><b>Returns:</b></dt><dd>The port number of this connection</dd></dl>
- </td>
- </tr>
-</table>
-<a name="a6" doxytag="ircd_connector::GetState"></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 ircd_connector::GetState </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>
-Get the state flags for this connection.
-<p>
-<dl compact><dt><b>Returns:</b></dt><dd>The state flags associated with this connection</dd></dl>
-
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00350">serverrec::SendPacket()</a>. </td>
- </tr>
-</table>
-<a name="a20" doxytag="ircd_connector::GetVersionString"></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::GetVersionString </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>
-This method returns the version string of the remote server.
-<p>
-If the server has no version string an empty string is returned.<p>
-<dl compact><dt><b>Returns:</b></dt><dd>The version text of this connection</dd></dl>
- </td>
- </tr>
-</table>
-<a name="a24" doxytag="ircd_connector::GetWriteError"></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::GetWriteError </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>
-Gets the error string for this connection.
-<p>
-<dl compact><dt><b>Returns:</b></dt><dd>The last error to occur or an empty string</dd></dl>
-
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00350">serverrec::SendPacket()</a>. </td>
- </tr>
-</table>
-<a name="a25" doxytag="ircd_connector::HasBufferedOutput"></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::HasBufferedOutput </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>
-Returns true if there is data to be written that hasn't been sent yet.
-<p>
-<dl compact><dt><b>Returns:</b></dt><dd>True if the buffer is not empty</dd></dl>
- </td>
- </tr>
-</table>
-<a name="a1" doxytag="ircd_connector::MakeOutboundConnection"></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::MakeOutboundConnection </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">char *&nbsp;</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>newport</em></td>
- </tr>
- <tr>
- <td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"></td>
- </tr>
-
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Create an outbound connection to a listening socket.
-<p>
-
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00142">serverrec::BeginLink()</a>, and <a class="el" href="servers_8cpp-source.html#l00182">serverrec::MeshCookie()</a>. </td>
- </tr>
-</table>
-<a name="a27" doxytag="ircd_connector::ResetPing"></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::ResetPing </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>
-Resets the ping counter.
-<p>
- </td>
- </tr>
-</table>
-<a name="a10" doxytag="ircd_connector::SetDescription"></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::SetDescription </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>desc</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>
-Set the server description of this connection.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign=top><em>desc</em>&nbsp;</td><td>The description (GECOS) of this connection to be set</td></tr>
- </table>
-</dl>
- </td>
- </tr>
-</table>
-<a name="a5" doxytag="ircd_connector::SetDescriptor"></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::SetDescriptor </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">int&nbsp;</td>
- <td class="mdname1" valign="top" nowrap> <em>fd</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>
-Set the file descriptor for this connection.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign=top><em>fd</em>&nbsp;</td><td>The file descriptor to associate with the connection</td></tr>
- </table>
-</dl>
-
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00212">serverrec::AddIncoming()</a>. </td>
- </tr>
-</table>
-<a name="d0" doxytag="ircd_connector::SetHostAddress"></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::SetHostAddress </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>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>int&nbsp;</td>
- <td class="mdname" nowrap> <em>port</em></td>
- </tr>
- <tr>
- <td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"><code> [private]</code></td>
- </tr>
-
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-PRIVATE function to set the host address and port to connect to.
-<p>
- </td>
- </tr>
-</table>
-<a name="a13" doxytag="ircd_connector::SetHostAndPort"></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::SetHostAndPort </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">char *&nbsp;</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>newport</em></td>
- </tr>
- <tr>
- <td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"></td>
- </tr>
-
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Set both the host and the port in one operation for this connection.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign=top><em>newhost</em>&nbsp;</td><td>The hostname to set for this connection </td></tr>
- <tr><td valign=top><em>newport</em>&nbsp;</td><td>The port number to set for this connection </td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>True on success, false on failure</dd></dl>
-
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00212">serverrec::AddIncoming()</a>, <a class="el" href="servers_8cpp-source.html#l00142">serverrec::BeginLink()</a>, and <a class="el" href="servers_8cpp-source.html#l00182">serverrec::MeshCookie()</a>. </td>
- </tr>
-</table>
-<a name="a3" doxytag="ircd_connector::SetServerName"></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::SetServerName </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>serv</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>
-Set the server name of this connection.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign=top><em>serv</em>&nbsp;</td><td>The server name to set</td></tr>
- </table>
-</dl>
-
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00212">serverrec::AddIncoming()</a>, <a class="el" href="servers_8cpp-source.html#l00142">serverrec::BeginLink()</a>, and <a class="el" href="servers_8cpp-source.html#l00182">serverrec::MeshCookie()</a>. </td>
- </tr>
-</table>
-<a name="a12" doxytag="ircd_connector::SetServerPort"></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::SetServerPort </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">int&nbsp;</td>
- <td class="mdname1" valign="top" nowrap> <em>p</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>
-Set the port used by this connection.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign=top><em>p</em>&nbsp;</td><td>The port number to set for this connection</td></tr>
- </table>
-</dl>
- </td>
- </tr>
-</table>
-<a name="a7" doxytag="ircd_connector::SetState"></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::SetState </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">int&nbsp;</td>
- <td class="mdname1" valign="top" nowrap> <em>state</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>
-Set the state flags for this connection.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign=top><em>state</em>&nbsp;</td><td>The state flags to set for this connection</td></tr>
- </table>
-</dl>
-
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00212">serverrec::AddIncoming()</a>, <a class="el" href="servers_8cpp-source.html#l00142">serverrec::BeginLink()</a>, <a class="el" href="servers_8cpp-source.html#l00182">serverrec::MeshCookie()</a>, and <a class="el" href="servers_8cpp-source.html#l00350">serverrec::SendPacket()</a>. </td>
- </tr>
-</table>
-<a name="a19" doxytag="ircd_connector::SetVersionString"></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::SetVersionString </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>newversion</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>
-This method sets the version string of the remote server.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign=top><em>newversion</em>&nbsp;</td><td>The version string to set</td></tr>
- </table>
-</dl>
- </td>
- </tr>
-</table>
-<a name="a23" doxytag="ircd_connector::SetWriteError"></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::SetWriteError </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>error</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>
-Sets the error string for this connection.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign=top><em>error</em>&nbsp;</td><td>The error string to set</td></tr>
- </table>
-</dl>
- </td>
- </tr>
-</table>
-<hr><h2>Member Data Documentation</h2>
-<a name="r0" doxytag="ircd_connector::addr"></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"> sockaddr_in <a class="el" href="classircd__connector.html#r0">ircd_connector::addr</a><code> [private]</code>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Sockaddr of the outbound ip and port.
-<p>
-
-<p>
-Definition at line <a class="el" href="connection_8h-source.html#l00061">61</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>
-<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#r3">ircd_connector::description</a><code> [private]</code>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-<a class="el" href="classServer.html">Server</a> 'GECOS'.
-<p>
-
-<p>
-Definition at line <a class="el" href="connection_8h-source.html#l00073">73</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>
-<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#r1">ircd_connector::fd</a><code> [private]</code>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-File descriptor of the connection.
-<p>
-
-<p>
-Definition at line <a class="el" href="connection_8h-source.html#l00065">65</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>. </td>
- </tr>
-</table>
-<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#o1">ircd_connector::host</a>[MAXBUF]
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-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#l00117">117</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 as many lines as are pending - Note that the final line may not be complete and should only be read when there is a <br>
- seperator.
-<p>
-
-<p>
-Definition at line <a class="el" href="connection_8h-source.html#l00110">110</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>. </td>
- </tr>
-</table>
-<a name="r8" doxytag="ircd_connector::nextping"></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="classircd__connector.html#r8">ircd_connector::nextping</a><code> [private]</code>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Time this connection was last pinged.
-<p>
-
-<p>
-Definition at line <a class="el" href="connection_8h-source.html#l00098">98</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>. </td>
- </tr>
-</table>
-<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#o2">ircd_connector::port</a>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-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#l00123">123</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>. </td>
- </tr>
-</table>
-<a name="r9" doxytag="ircd_connector::replied"></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 <a class="el" href="classircd__connector.html#r9">ircd_connector::replied</a><code> [private]</code>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Did this connection reply to its last ping?
-<p>
-
-<p>
-Definition at line <a class="el" href="connection_8h-source.html#l00102">102</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>. </td>
- </tr>
-</table>
-<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#o3">ircd_connector::routes</a>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-<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.
-<p>
-
-<p>
-Definition at line <a class="el" href="connection_8h-source.html#l00129">129</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>. </td>
- </tr>
-</table>
-<a name="r6" doxytag="ircd_connector::sendq"></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#r6">ircd_connector::sendq</a><code> [private]</code>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-SendQ of the outbound connector, does not have a limit.
-<p>
-
-<p>
-Definition at line <a class="el" href="connection_8h-source.html#l00090">90</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>
-<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#r2">ircd_connector::servername</a><code> [private]</code>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-<a class="el" href="classServer.html">Server</a> name.
-<p>
-
-<p>
-Definition at line <a class="el" href="connection_8h-source.html#l00069">69</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>
-<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#r4">ircd_connector::state</a><code> [private]</code>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-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#l00078">78</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>. </td>
- </tr>
-</table>
-<a name="r5" doxytag="ircd_connector::version"></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#r5">ircd_connector::version</a><code> [private]</code>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-This string holds the ircd's version response.
-<p>
-
-<p>
-Definition at line <a class="el" href="connection_8h-source.html#l00086">86</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>. </td>
- </tr>
-</table>
-<a name="r7" doxytag="ircd_connector::WriteError"></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#r7">ircd_connector::WriteError</a><code> [private]</code>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Write error of connection.
-<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>
-<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 Mon May 30 05:17:18 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>
-</body>
-</html>
diff --git a/docs/module-doc/classircd__connector__coll__graph.gif b/docs/module-doc/classircd__connector__coll__graph.gif
deleted file mode 100644
index 28d7dd681..000000000
--- a/docs/module-doc/classircd__connector__coll__graph.gif
+++ /dev/null
Binary files differ
diff --git a/docs/module-doc/classircd__connector__inherit__graph.gif b/docs/module-doc/classircd__connector__inherit__graph.gif
deleted file mode 100644
index 573bf4bae..000000000
--- a/docs/module-doc/classircd__connector__inherit__graph.gif
+++ /dev/null
Binary files differ
diff --git a/docs/module-doc/classserverrec-members.html b/docs/module-doc/classserverrec-members.html
deleted file mode 100644
index c2bf7d4d3..000000000
--- a/docs/module-doc/classserverrec-members.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>InspIRCd: Member List</title>
-<link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- 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="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<h1>serverrec Member List</h1>This is the complete list of members for <a class="el" href="classserverrec.html">serverrec</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="classserverrec.html#a10">AddIncoming</a>(int fd, char *targethost, int sourceport)</td><td><a class="el" href="classserverrec.html">serverrec</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="classserverrec.html#a4">BeginLink</a>(char *targethost, int port, char *password, char *servername, int myport)</td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classconnection.html#o3">bytes_in</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#o4">bytes_out</a></td><td><a class="el" href="classconnection.html">connection</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="classconnection.html#o5">cmds_in</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#o6">cmds_out</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#a0">connection</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#o11">connectors</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#a3">CreateListener</a>(char *host, int p)</td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classserverrec.html#o8">description</a></td><td><a class="el" href="classserverrec.html">serverrec</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="classconnection.html#o0">fd</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#a9">FindHost</a>(std::string host)</td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classserverrec.html#a11">FlushWriteBuffers</a>()</td><td><a class="el" href="classserverrec.html">serverrec</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="classconnection.html#o7">haspassed</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#o5">hops_away</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#o1">host</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">idle_lastmsg</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="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#o10">lastping</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#a5">MeshCookie</a>(char *targethost, int port, unsigned long cookie, char *servername)</td><td><a class="el" href="classserverrec.html">serverrec</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#o13">nping</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#o4">opercount</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#o1">pingtime</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#o8">port</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#a8">RecvPacket</a>(std::deque&lt; std::string &gt; &amp;messages, char *host, std::deque&lt; std::string &gt; &amp;sums)</td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classconnection.html#o9">registered</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#a7">SendPacket</a>(char *message, const char *host)</td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classserverrec.html#a0">serverrec</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#a1">serverrec</a>(char *n, long ver, bool jupe)</td><td><a class="el" href="classserverrec.html">serverrec</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="classconnection.html#o11">signon</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#o10">sync_soon</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#a6">TerminateLink</a>(char *targethost)</td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classserverrec.html#o3">usercount</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#o2">usercount_i</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#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 Mon May 30 05:17:37 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>
-</body>
-</html>
diff --git a/docs/module-doc/classserverrec.html b/docs/module-doc/classserverrec.html
deleted file mode 100644
index 87775403b..000000000
--- a/docs/module-doc/classserverrec.html
+++ /dev/null
@@ -1,1447 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>InspIRCd: serverrec class Reference</title>
-<link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- 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="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<h1>serverrec Class Reference</h1>A class that defines the local server or a remote server.
-<a href="#_details">More...</a>
-<p>
-<code>#include &lt;<a class="el" href="servers_8h-source.html">servers.h</a>&gt;</code>
-<p>
-Inheritance diagram for serverrec:<p><center><img src="classserverrec__inherit__graph.gif" border="0" usemap="#serverrec__inherit__map" alt="Inheritance graph"></center>
-<map name="serverrec__inherit__map">
-<area href="classconnection.html" shape="rect" coords="7,157,93,184" alt="">
-<area href="classExtensible.html" shape="rect" coords="9,82,91,109" alt="">
-<area href="classclassbase.html" shape="rect" coords="10,8,90,34" alt="">
-</map>
-<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for serverrec:<p><center><img src="classserverrec__coll__graph.gif" border="0" usemap="#serverrec__coll__map" alt="Collaboration graph"></center>
-<map name="serverrec__coll__map">
-<area href="classconnection.html" shape="rect" coords="210,249,296,275" alt="">
-</map>
-<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classserverrec-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>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classserverrec.html#a0">serverrec</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. </em> <a href="#a0"></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="classserverrec.html#a1">serverrec</a> (char *n, long ver, bool jupe)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor which initialises some of the main variables. </em> <a href="#a1"></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="classserverrec.html#a2">~serverrec</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. </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="classserverrec.html#a3">CreateListener</a> (char *<a class="el" href="classconnection.html#o1">host</a>, int p)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a listening socket on 'host' using port number 'p'. </em> <a href="#a3"></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="classserverrec.html#a4">BeginLink</a> (char *targethost, int <a class="el" href="classconnection.html#o8">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="#a4"></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="classserverrec.html#a5">MeshCookie</a> (char *targethost, int <a class="el" href="classconnection.html#o8">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="#a5"></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="classserverrec.html#a6">TerminateLink</a> (char *targethost)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Terminate a link to 'targethost' by calling the <a class="el" href="classircd__connector.html#a14">ircd_connector::CloseConnection</a> method. </em> <a href="#a6"></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="classserverrec.html#a7">SendPacket</a> (char *message, const char *<a class="el" href="classconnection.html#o1">host</a>)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a message to a server by name, if the server is unavailable directly route the packet via another server If the server still cannot be reached after attempting to route the message remotely, returns false. </em> <a href="#a7"></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="classserverrec.html#a8">RecvPacket</a> (std::deque&lt; std::string &gt; &amp;messages, char *<a class="el" href="classconnection.html#o1">host</a>, std::deque&lt; std::string &gt; &amp;sums)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the next available packet and returns true if data is available. </em> <a href="#a8"></a><em><br><br></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classircd__connector.html">ircd_connector</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classserverrec.html#a9">FindHost</a> (std::string <a class="el" href="classconnection.html#o1">host</a>)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the <a class="el" href="classircd__connector.html">ircd_connector</a> oject related to a certain servername given in 'host'. </em> <a href="#a9"></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="classserverrec.html#a10">AddIncoming</a> (int <a class="el" href="classconnection.html#o0">fd</a>, char *targethost, int sourceport)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add an incoming connection to the connection pool. </em> <a href="#a10"></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="classserverrec.html#a11">FlushWriteBuffers</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flushes all data waiting to be written for all of this server's connections. </em> <a href="#a11"></a><em><br><br></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="classserverrec.html#o0">name</a> [MAXBUF]</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">server name </em> <a href="#o0"></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="classserverrec.html#o1">pingtime</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">last ping response (ms) </em> <a href="#o1"></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="classserverrec.html#o2">usercount_i</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">invisible users on server </em> <a href="#o2"></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="classserverrec.html#o3">usercount</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">non-invisible users on server </em> <a href="#o3"></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="classserverrec.html#o4">opercount</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">opers on server </em> <a href="#o4"></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="classserverrec.html#o5">hops_away</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of hops away (for quick access) </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="classserverrec.html#o6">version</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ircd version </em> <a href="#o6"></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="classserverrec.html#o7">jupiter</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">is a JUPE server (faked to enforce a server ban) </em> <a href="#o7"></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="classserverrec.html#o8">description</a> [MAXBUF]</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Description of the server. </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="classserverrec.html#o9">nickserv</a> [NICKMAX]</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds nickserv's name on U:lined (services) servers (this is a kludge for ircservices which ASSUMES things :/). </em> <a href="#o9"></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="classserverrec.html#o10">sync_soon</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="classircd__connector.html">ircd_connector</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classserverrec.html#o11">connectors</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">With a serverrec, this is a list of all established server connections. </em> <a href="#o11"></a><em><br><br></td></tr>
-</table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-A class that defines the local server or a remote server.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8h-source.html#l00030">30</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a name="a0" doxytag="serverrec::serverrec"></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"> serverrec::serverrec </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>
-Constructor.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00046">46</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-References <a class="el" href="servers_8h-source.html#l00081">connectors</a>, <a class="el" href="connection_8h-source.html#l00301">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#l00343">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#l00347">connection::signon</a>, <a class="el" href="servers_8h-source.html#l00067">sync_soon</a>, <a class="el" href="channels_8cpp-source.html#l00101">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>00047 {
-00048 strlcpy(name,<span class="stringliteral">""</span>,256);
-00049 <a class="code" href="classserverrec.html#o1">pingtime</a> = 0;
-00050 <a class="code" href="classconnection.html#o10">lastping</a> = <a class="code" href="channels_8cpp.html#a36">TIME</a>;
-00051 <a class="code" href="classserverrec.html#o2">usercount_i</a> = <a class="code" href="classserverrec.html#o3">usercount</a> = <a class="code" href="classserverrec.html#o4">opercount</a> = <a class="code" href="classserverrec.html#o6">version</a> = 0;
-00052 <a class="code" href="classserverrec.html#o5">hops_away</a> = 1;
-00053 <a class="code" href="classconnection.html#o11">signon</a> = <a class="code" href="channels_8cpp.html#a36">TIME</a>;
-00054 <a class="code" href="classserverrec.html#o7">jupiter</a> = <span class="keyword">false</span>;
-00055 <a class="code" href="classconnection.html#o0">fd</a> = 0;
-00056 <a class="code" href="classserverrec.html#o10">sync_soon</a> = <span class="keyword">false</span>;
-00057 strlcpy(nickserv,<span class="stringliteral">""</span>,NICKMAX);
-00058 <a class="code" href="classserverrec.html#o11">connectors</a>.clear();
-00059 }
-</pre></div> </td>
- </tr>
-</table>
-<a name="a1" doxytag="serverrec::serverrec"></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"> serverrec::serverrec </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">char *&nbsp;</td>
- <td class="mdname" nowrap> <em>n</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>long&nbsp;</td>
- <td class="mdname" nowrap> <em>ver</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>bool&nbsp;</td>
- <td class="mdname" nowrap> <em>jupe</em></td>
- </tr>
- <tr>
- <td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"></td>
- </tr>
-
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Constructor which initialises some of the main variables.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00066">66</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-References <a class="el" href="servers_8h-source.html#l00081">connectors</a>, <a class="el" href="connection_8h-source.html#l00301">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#l00343">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#l00347">connection::signon</a>, <a class="el" href="servers_8h-source.html#l00067">sync_soon</a>, <a class="el" href="channels_8cpp-source.html#l00101">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>00067 {
-00068 strlcpy(name,n,256);
-00069 <a class="code" href="classconnection.html#o10">lastping</a> = <a class="code" href="channels_8cpp.html#a36">TIME</a>;
-00070 <a class="code" href="classserverrec.html#o2">usercount_i</a> = <a class="code" href="classserverrec.html#o3">usercount</a> = <a class="code" href="classserverrec.html#o4">opercount</a> = 0;
-00071 <a class="code" href="classserverrec.html#o6">version</a> = ver;
-00072 <a class="code" href="classserverrec.html#o5">hops_away</a> = 1;
-00073 <a class="code" href="classconnection.html#o11">signon</a> = <a class="code" href="channels_8cpp.html#a36">TIME</a>;
-00074 <a class="code" href="classserverrec.html#o7">jupiter</a> = jupe;
-00075 <a class="code" href="classconnection.html#o0">fd</a> = 0;
-00076 <a class="code" href="classserverrec.html#o10">sync_soon</a> = <span class="keyword">false</span>;
-00077 strlcpy(nickserv,<span class="stringliteral">""</span>,NICKMAX);
-00078 <a class="code" href="classserverrec.html#o11">connectors</a>.clear();
-00079 }
-</pre></div> </td>
- </tr>
-</table>
-<a name="a2" doxytag="serverrec::~serverrec"></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"> serverrec::~<a class="el" href="classserverrec.html">serverrec</a> </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>
-Destructor.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00062">62</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-<div class="fragment"><pre>00063 {
-00064 }
-</pre></div> </td>
- </tr>
-</table>
-<hr><h2>Member Function Documentation</h2>
-<a name="a10" doxytag="serverrec::AddIncoming"></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 serverrec::AddIncoming </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">int&nbsp;</td>
- <td class="mdname" nowrap> <em>fd</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>char *&nbsp;</td>
- <td class="mdname" nowrap> <em>targethost</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>int&nbsp;</td>
- <td class="mdname" nowrap> <em>sourceport</em></td>
- </tr>
- <tr>
- <td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"></td>
- </tr>
-
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Add an incoming connection to the connection pool.
-<p>
-(reserved for core use)
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00212">212</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-References <a class="el" href="servers_8h-source.html#l00081">connectors</a>, <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="classircd__connector.html#a5">ircd_connector::SetDescriptor()</a>, <a class="el" href="classircd__connector.html#a13">ircd_connector::SetHostAndPort()</a>, <a class="el" href="classircd__connector.html#a3">ircd_connector::SetServerName()</a>, <a class="el" href="classircd__connector.html#a7">ircd_connector::SetState()</a>, and <a class="el" href="connection_8h-source.html#l00038">STATE_NOAUTH_INBOUND</a>.
-<p>
-<div class="fragment"><pre>00213 {
-00214 <a class="code" href="classircd__connector.html">ircd_connector</a> connector;
-00215
-00216 <span class="comment">// targethost has been turned into an ip...</span>
-00217 <span class="comment">// we dont want this as the server name.</span>
-00218 connector.<a class="code" href="classircd__connector.html#a3">SetServerName</a>(targethost);
-00219 connector.<a class="code" href="classircd__connector.html#a5">SetDescriptor</a>(newfd);
-00220 connector.<a class="code" href="classircd__connector.html#a7">SetState</a>(STATE_NOAUTH_INBOUND);
-00221 <span class="keywordtype">int</span> flags = fcntl(newfd, F_GETFL, 0);
-00222 fcntl(newfd, F_SETFL, flags | O_NONBLOCK);
-00223 <span class="keywordtype">int</span> sendbuf = 32768;
-00224 <span class="keywordtype">int</span> recvbuf = 32768;
-00225 setsockopt(newfd,SOL_SOCKET,SO_SNDBUF,(<span class="keyword">const</span> <span class="keywordtype">void</span> *)&amp;sendbuf,<span class="keyword">sizeof</span>(sendbuf));
-00226 setsockopt(newfd,SOL_SOCKET,SO_RCVBUF,(<span class="keyword">const</span> <span class="keywordtype">void</span> *)&amp;recvbuf,<span class="keyword">sizeof</span>(sendbuf));
-00227 connector.<a class="code" href="classircd__connector.html#a13">SetHostAndPort</a>(targethost, sourceport);
-00228 connector.<a class="code" href="classircd__connector.html#a7">SetState</a>(STATE_NOAUTH_INBOUND);
-00229 log(DEBUG,<span class="stringliteral">"serverrec::AddIncoming() Added connection: %s:%d"</span>,targethost,sourceport);
-00230 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.push_back(connector);
-00231 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00232 }
-</pre></div> </td>
- </tr>
-</table>
-<a name="a4" doxytag="serverrec::BeginLink"></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 serverrec::BeginLink </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">char *&nbsp;</td>
- <td class="mdname" nowrap> <em>targethost</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>int&nbsp;</td>
- <td class="mdname" nowrap> <em>port</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>char *&nbsp;</td>
- <td class="mdname" nowrap> <em>password</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>char *&nbsp;</td>
- <td class="mdname" nowrap> <em>servername</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>int&nbsp;</td>
- <td class="mdname" nowrap> <em>myport</em></td>
- </tr>
- <tr>
- <td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"></td>
- </tr>
-
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Begin an outbound link to another ircd at targethost.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00142">142</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-References <a class="el" href="servers_8h-source.html#l00081">connectors</a>, <a class="el" href="connection_8h-source.html#l00301">connection::fd</a>, <a class="el" href="servers_8cpp-source.html#l00242">FindHost()</a>, <a class="el" href="classircd__connector.html#a1">ircd_connector::MakeOutboundConnection()</a>, <a class="el" href="servers_8cpp-source.html#l00350">SendPacket()</a>, <a class="el" href="classircd__connector.html#a13">ircd_connector::SetHostAndPort()</a>, <a class="el" href="classircd__connector.html#a3">ircd_connector::SetServerName()</a>, <a class="el" href="classircd__connector.html#a7">ircd_connector::SetState()</a>, <a class="el" href="connection_8h-source.html#l00035">STATE_DISCONNECTED</a>, and <a class="el" href="connection_8h-source.html#l00039">STATE_NOAUTH_OUTBOUND</a>.
-<p>
-<div class="fragment"><pre>00143 {
-00144 <span class="keywordtype">char</span> connect[MAXBUF];
-00145
-00146 <a class="code" href="classircd__connector.html">ircd_connector</a> connector;
-00147 <a class="code" href="classircd__connector.html">ircd_connector</a> *cn = this-&gt;<a class="code" href="classserverrec.html#a9">FindHost</a>(servername);
-00148
-00149
-00150 <span class="keywordflow">if</span> (cn)
-00151 {
-00152 WriteOpers(<span class="stringliteral">"CONNECT aborted: Server %s already exists"</span>,servername);
-00153 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00154 }
-00155
-00156
-00157 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classconnection.html#o0">fd</a>)
-00158 {
-00159 <span class="keywordflow">if</span> (connector.<a class="code" href="classircd__connector.html#a1">MakeOutboundConnection</a>(targethost,newport))
-00160 {
-00161 <span class="comment">// targethost has been turned into an ip...</span>
-00162 <span class="comment">// we dont want this as the server name.</span>
-00163 connector.<a class="code" href="classircd__connector.html#a3">SetServerName</a>(servername);
-00164 snprintf(connect,MAXBUF,<span class="stringliteral">"S %s %s %lu %s :%s"</span>,getservername().c_str(),password,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)myport,GetRevision().c_str(),getserverdesc().c_str());
-00165 connector.<a class="code" href="classircd__connector.html#a7">SetState</a>(STATE_NOAUTH_OUTBOUND);
-00166 connector.<a class="code" href="classircd__connector.html#a13">SetHostAndPort</a>(targethost, newport);
-00167 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.push_back(connector);
-00168 <span class="comment">// this packet isn't actually sent until the socket connects -- the STATE_NOAUTH_OUTBOUND state</span>
-00169 <span class="comment">// queues outbound data until the socket is polled as writeable (e.g. the connection is established)</span>
-00170 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classserverrec.html#a7">SendPacket</a>(connect, servername);
-00171 }
-00172 <span class="keywordflow">else</span>
-00173 {
-00174 connector.<a class="code" href="classircd__connector.html#a7">SetState</a>(STATE_DISCONNECTED);
-00175 WriteOpers(<span class="stringliteral">"Could not create outbound connection to %s:%d"</span>,targethost,newport);
-00176 }
-00177 }
-00178 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00179 }
-</pre></div> </td>
- </tr>
-</table>
-<a name="a3" doxytag="serverrec::CreateListener"></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 serverrec::CreateListener </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>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>int&nbsp;</td>
- <td class="mdname" nowrap> <em>p</em></td>
- </tr>
- <tr>
- <td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"></td>
- </tr>
-
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Create a listening socket on 'host' using port number 'p'.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00081">81</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-References <a class="el" href="connection_8h-source.html#l00301">connection::fd</a>, <a class="el" href="servers_8cpp-source.html#l00038">MaxConn</a>, and <a class="el" href="connection_8h-source.html#l00335">connection::port</a>.
-<p>
-<div class="fragment"><pre>00082 {
-00083 sockaddr_in host_address;
-00084 <span class="keywordtype">int</span> flags;
-00085 in_addr addy;
-00086 <span class="keywordtype">int</span> on = 0;
-00087 <span class="keyword">struct </span>linger linger = { 0 };
-00088
-00089 this-&gt;<a class="code" href="classconnection.html#o8">port</a> = p;
-00090
-00091 <a class="code" href="classconnection.html#o0">fd</a> = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-00092 <span class="keywordflow">if</span> (<a class="code" href="classconnection.html#o0">fd</a> &lt;= 0)
-00093 {
-00094 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00095 }
-00096
-00097 setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,(<span class="keyword">const</span> <span class="keywordtype">char</span>*)&amp;on,<span class="keyword">sizeof</span>(on));
-00098 linger.l_onoff = 1;
-00099 linger.l_linger = 1;
-00100 setsockopt(fd,SOL_SOCKET,SO_LINGER,(<span class="keyword">const</span> <span class="keywordtype">char</span>*)&amp;linger,<span class="keyword">sizeof</span>(linger));
-00101
-00102 <span class="comment">// attempt to increase socket sendq and recvq as high as its possible</span>
-00103 <span class="comment">// to get them on linux.</span>
-00104 <span class="keywordtype">int</span> sendbuf = 32768;
-00105 <span class="keywordtype">int</span> recvbuf = 32768;
-00106 setsockopt(fd,SOL_SOCKET,SO_SNDBUF,(<span class="keyword">const</span> <span class="keywordtype">void</span> *)&amp;sendbuf,<span class="keyword">sizeof</span>(sendbuf));
-00107 setsockopt(fd,SOL_SOCKET,SO_RCVBUF,(<span class="keyword">const</span> <span class="keywordtype">void</span> *)&amp;recvbuf,<span class="keyword">sizeof</span>(sendbuf));
-00108
-00109 memset((<span class="keywordtype">void</span>*)&amp;host_address, 0, <span class="keyword">sizeof</span>(host_address));
-00110
-00111 host_address.sin_family = AF_INET;
-00112
-00113 <span class="keywordflow">if</span> (!strcmp(newhost,<span class="stringliteral">""</span>))
-00114 {
-00115 host_address.sin_addr.s_addr = htonl(INADDR_ANY);
-00116 }
-00117 <span class="keywordflow">else</span>
-00118 {
-00119 inet_aton(newhost,&amp;addy);
-00120 host_address.sin_addr = addy;
-00121 }
-00122
-00123 host_address.sin_port = htons(p);
-00124
-00125 <span class="keywordflow">if</span> (bind(fd,(sockaddr*)&amp;host_address,<span class="keyword">sizeof</span>(host_address))&lt;0)
-00126 {
-00127 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00128 }
-00129
-00130 <span class="comment">// make the socket non-blocking</span>
-00131 flags = fcntl(fd, F_GETFL, 0);
-00132 fcntl(fd, F_SETFL, flags | O_NONBLOCK);
-00133
-00134 this-&gt;<a class="code" href="classconnection.html#o8">port</a> = p;
-00135
-00136 listen(this-&gt;fd, MaxConn);
-00137
-00138 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00139 }
-</pre></div> </td>
- </tr>
-</table>
-<a name="a9" doxytag="serverrec::FindHost"></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="classircd__connector.html">ircd_connector</a> * serverrec::FindHost </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>host</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>
-Find the <a class="el" href="classircd__connector.html">ircd_connector</a> oject related to a certain servername given in 'host'.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00242">242</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-References <a class="el" href="servers_8h-source.html#l00081">connectors</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00142">BeginLink()</a>, and <a class="el" href="servers_8cpp-source.html#l00350">SendPacket()</a>.
-<p>
-<div class="fragment"><pre>00243 {
-00244 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.size(); i++)
-00245 {
-00246 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetServerName() == findhost)
-00247 {
-00248 <span class="keywordflow">return</span> &amp;this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i];
-00249 }
-00250 }
-00251 <span class="keywordflow">return</span> NULL;
-00252 }
-</pre></div> </td>
- </tr>
-</table>
-<a name="a11" doxytag="serverrec::FlushWriteBuffers"></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 serverrec::FlushWriteBuffers </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>
-Flushes all data waiting to be written for all of this server's connections.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00274">274</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-References <a class="el" href="servers_8h-source.html#l00081">connectors</a>, <a class="el" href="servers_8cpp-source.html#l00042">has_been_netsplit</a>, <a class="el" href="servers_8cpp-source.html#l00256">IsRoutable()</a>, <a class="el" href="connection_8h-source.html#l00035">STATE_DISCONNECTED</a>, <a class="el" href="connection_8h-source.html#l00038">STATE_NOAUTH_INBOUND</a>, <a class="el" href="connection_8h-source.html#l00039">STATE_NOAUTH_OUTBOUND</a>, and <a class="el" href="channels_8cpp-source.html#l00101">TIME</a>.
-<p>
-<div class="fragment"><pre>00275 {
-00276 <span class="keywordtype">char</span> buffer[MAXBUF];
-00277 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.size(); i++)
-00278 {
-00279 <span class="comment">// don't try and ping a NOAUTH_OUTBOUND state, its not authed yet!</span>
-00280 <span class="keywordflow">if</span> ((this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetState() == <a class="code" href="connection_8h.html#a4">STATE_NOAUTH_OUTBOUND</a>) &amp;&amp; (<a class="code" href="channels_8cpp.html#a36">TIME</a> &gt; this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].age+30))
-00281 {
-00282 <span class="comment">// however if we reach this timer its connected timed out :)</span>
-00283 WriteOpers(<span class="stringliteral">"*** Connection to %s timed out"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00284 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00285 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00286 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00287 <span class="keywordflow">return</span>;
-00288 }
-00289 <span class="keywordflow">if</span> ((this-&gt;connectors[i].GetState() == <a class="code" href="connection_8h.html#a3">STATE_NOAUTH_INBOUND</a>) &amp;&amp; (<a class="code" href="channels_8cpp.html#a36">TIME</a> &gt; this-&gt;connectors[i].age+30))
-00290 {
-00291 WriteOpers(<span class="stringliteral">"*** Connection from %s timed out"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00292 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00293 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00294 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00295 <span class="keywordflow">return</span>;
-00296 }
-00297 <span class="keywordflow">if</span> (this-&gt;connectors[i].GetState() != <a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>)
-00298 {
-00299 <span class="keywordflow">if</span> (!this-&gt;connectors[i].CheckPing())
-00300 {
-00301 WriteOpers(<span class="stringliteral">"*** Lost single connection to %s: Ping timeout"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00302 this-&gt;connectors[i].CloseConnection();
-00303 this-&gt;connectors[i].SetState(STATE_DISCONNECTED);
-00304 <span class="keywordflow">if</span> (!<a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(this-&gt;connectors[i].GetServerName()))
-00305 {
-00306 WriteOpers(<span class="stringliteral">"*** Server %s is no longer routable, disconnecting."</span>,this-&gt;connectors[i].GetServerName().c_str());
-00307 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00308 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00309 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00310 }
-00311 <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a> = <span class="keyword">true</span>;
-00312 }
-00313 }
-00314 <span class="keywordflow">if</span> ((this-&gt;connectors[i].GetWriteError() !=<span class="stringliteral">""</span>) &amp;&amp; (this-&gt;connectors[i].GetState() != <a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>))
-00315 {
-00316 <span class="comment">// if we're here the write() caused an error, we cannot proceed</span>
-00317 WriteOpers(<span class="stringliteral">"*** Lost single connection to %s, link inactive and retrying: %s"</span>,this-&gt;connectors[i].GetServerName().c_str(),this-&gt;connectors[i].GetWriteError().c_str());
-00318 this-&gt;connectors[i].CloseConnection();
-00319 this-&gt;connectors[i].SetState(STATE_DISCONNECTED);
-00320 <span class="keywordflow">if</span> (!<a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(this-&gt;connectors[i].GetServerName()))
-00321 {
-00322 WriteOpers(<span class="stringliteral">"*** Server %s is no longer routable, disconnecting."</span>,this-&gt;connectors[i].GetServerName().c_str());
-00323 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00324 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00325 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00326 }
-00327 <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a> = <span class="keyword">true</span>;
-00328 }
-00329 <span class="keywordflow">if</span> ((this-&gt;connectors[i].HasBufferedOutput()) &amp;&amp; (this-&gt;connectors[i].GetState() != <a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>))
-00330 {
-00331 <span class="keywordflow">if</span> (!this-&gt;connectors[i].FlushWriteBuf())
-00332 {
-00333 <span class="comment">// if we're here the write() caused an error, we cannot proceed</span>
-00334 WriteOpers(<span class="stringliteral">"*** Lost single connection to %s, link inactive and retrying: %s"</span>,this-&gt;connectors[i].GetServerName().c_str(),this-&gt;connectors[i].GetWriteError().c_str());
-00335 this-&gt;connectors[i].CloseConnection();
-00336 this-&gt;connectors[i].SetState(STATE_DISCONNECTED);
-00337 <span class="keywordflow">if</span> (!<a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(this-&gt;connectors[i].GetServerName()))
-00338 {
-00339 WriteOpers(<span class="stringliteral">"*** Server %s is no longer routable, disconnecting."</span>,this-&gt;connectors[i].GetServerName().c_str());
-00340 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00341 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00342 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00343 }
-00344 <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a> = <span class="keyword">true</span>;
-00345 }
-00346 }
-00347 }
-00348 }
-</pre></div> </td>
- </tr>
-</table>
-<a name="a5" doxytag="serverrec::MeshCookie"></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 serverrec::MeshCookie </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">char *&nbsp;</td>
- <td class="mdname" nowrap> <em>targethost</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>int&nbsp;</td>
- <td class="mdname" nowrap> <em>port</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>unsigned long&nbsp;</td>
- <td class="mdname" nowrap> <em>cookie</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>char *&nbsp;</td>
- <td class="mdname" nowrap> <em>servername</em></td>
- </tr>
- <tr>
- <td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"></td>
- </tr>
-
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Begin an outbound mesh link to another ircd on a network you are already an authenticated member of.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00182">182</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-References <a class="el" href="servers_8h-source.html#l00081">connectors</a>, <a class="el" href="connection_8h-source.html#l00301">connection::fd</a>, <a class="el" href="classircd__connector.html#a1">ircd_connector::MakeOutboundConnection()</a>, <a class="el" href="servers_8cpp-source.html#l00350">SendPacket()</a>, <a class="el" href="classircd__connector.html#a13">ircd_connector::SetHostAndPort()</a>, <a class="el" href="classircd__connector.html#a3">ircd_connector::SetServerName()</a>, <a class="el" href="classircd__connector.html#a7">ircd_connector::SetState()</a>, <a class="el" href="connection_8h-source.html#l00035">STATE_DISCONNECTED</a>, and <a class="el" href="connection_8h-source.html#l00039">STATE_NOAUTH_OUTBOUND</a>.
-<p>
-<div class="fragment"><pre>00183 {
-00184 <span class="keywordtype">char</span> connect[MAXBUF];
-00185
-00186 <a class="code" href="classircd__connector.html">ircd_connector</a> connector;
-00187
-00188 WriteOpers(<span class="stringliteral">"Establishing meshed link to %s:%d"</span>,servername,newport);
-00189
-00190 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classconnection.html#o0">fd</a>)
-00191 {
-00192 <span class="keywordflow">if</span> (connector.<a class="code" href="classircd__connector.html#a1">MakeOutboundConnection</a>(targethost,newport))
-00193 {
-00194 <span class="comment">// targethost has been turned into an ip...</span>
-00195 <span class="comment">// we dont want this as the server name.</span>
-00196 connector.<a class="code" href="classircd__connector.html#a3">SetServerName</a>(servername);
-00197 snprintf(connect,MAXBUF,<span class="stringliteral">"- %lu %s :%s"</span>,cookie,getservername().c_str(),getserverdesc().c_str());
-00198 connector.<a class="code" href="classircd__connector.html#a7">SetState</a>(STATE_NOAUTH_OUTBOUND);
-00199 connector.<a class="code" href="classircd__connector.html#a13">SetHostAndPort</a>(targethost, newport);
-00200 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.push_back(connector);
-00201 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classserverrec.html#a7">SendPacket</a>(connect, servername);
-00202 }
-00203 <span class="keywordflow">else</span>
-00204 {
-00205 connector.<a class="code" href="classircd__connector.html#a7">SetState</a>(STATE_DISCONNECTED);
-00206 WriteOpers(<span class="stringliteral">"Could not create outbound connection to %s:%d"</span>,targethost,newport);
-00207 }
-00208 }
-00209 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00210 }
-</pre></div> </td>
- </tr>
-</table>
-<a name="a8" doxytag="serverrec::RecvPacket"></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 serverrec::RecvPacket </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">std::deque&lt; std::string &gt; &amp;&nbsp;</td>
- <td class="mdname" nowrap> <em>messages</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>char *&nbsp;</td>
- <td class="mdname" nowrap> <em>host</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>std::deque&lt; std::string &gt; &amp;&nbsp;</td>
- <td class="mdname" nowrap> <em>sums</em></td>
- </tr>
- <tr>
- <td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"></td>
- </tr>
-
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Returns the next available packet and returns true if data is available.
-<p>
-Writes the servername the data came from to 'host'. If no data is available this function returns false. This function will automatically close broken links and reroute pathways, generating split messages on the network.
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00445">445</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-References <a class="el" href="servers_8cpp-source.html#l00425">already_have_sum()</a>, <a class="el" href="servers_8h-source.html#l00081">connectors</a>, <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="servers_8cpp-source.html#l00042">has_been_netsplit</a>, <a class="el" href="servers_8cpp-source.html#l00256">IsRoutable()</a>, and <a class="el" href="connection_8h-source.html#l00035">STATE_DISCONNECTED</a>.
-<p>
-<div class="fragment"><pre>00446 {
-00447 <span class="keywordtype">char</span> data[65536],buffer[MAXBUF];
-00448 memset(data, 0, 65536);
-00449 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.size(); i++)
-00450 {
-00451 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetState() != <a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>)
-00452 {
-00453 <span class="comment">// returns false if the packet could not be sent (e.g. target host down)</span>
-00454 <span class="keywordtype">int</span> rcvsize = 0;
-00455
-00456 <span class="comment">// check if theres any data on this socket</span>
-00457 <span class="comment">// if not, continue onwards to the next.</span>
-00458 pollfd polls;
-00459 polls.fd = this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetDescriptor();
-00460 polls.events = POLLIN;
-00461 <span class="keywordtype">int</span> ret = poll(&amp;polls,1,1);
-00462 <span class="keywordflow">if</span> (ret &lt;= 0) <span class="keywordflow">continue</span>;
-00463
-00464 rcvsize = recv(this-&gt;connectors[i].GetDescriptor(),data,65000,0);
-00465 data[rcvsize] = <span class="charliteral">'\0'</span>;
-00466 <span class="keywordflow">if</span> (rcvsize == 0)
-00467 {
-00468 log(DEBUG,<span class="stringliteral">"recv() failed for serverrec::RecvPacket(): EOF"</span>);
-00469 log(DEBUG,<span class="stringliteral">"Disabling connector: %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00470 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].CloseConnection();
-00471 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].SetState(STATE_DISCONNECTED);
-00472 <span class="keywordflow">if</span> (!<a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(this-&gt;connectors[i].GetServerName()))
-00473 {
-00474 WriteOpers(<span class="stringliteral">"*** Server %s is no longer routable, disconnecting (EOF)"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00475 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00476 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00477 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00478 }
-00479 <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a> = <span class="keyword">true</span>;
-00480 }
-00481 <span class="keywordflow">if</span> (rcvsize == -1)
-00482 {
-00483 <span class="keywordflow">if</span> (errno != EAGAIN)
-00484 {
-00485 log(DEBUG,<span class="stringliteral">"recv() failed for serverrec::RecvPacket(): %s"</span>,strerror(errno));
-00486 log(DEBUG,<span class="stringliteral">"Disabling connector: %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00487 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].CloseConnection();
-00488 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].SetState(STATE_DISCONNECTED);
-00489 <span class="keywordflow">if</span> (!<a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(this-&gt;connectors[i].GetServerName()))
-00490 {
-00491 WriteOpers(<span class="stringliteral">"*** Server %s is no longer routable, disconnecting."</span>,this-&gt;connectors[i].GetServerName().c_str());
-00492 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00493 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00494 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00495 }
-00496 <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a> = <span class="keyword">true</span>;
-00497 }
-00498 }
-00499 <span class="keywordtype">int</span> pushed = 0;
-00500 <span class="keywordflow">if</span> (rcvsize &gt; 0)
-00501 {
-00502 <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].AddBuffer(data))
-00503 {
-00504 WriteOpers(<span class="stringliteral">"*** Read buffer for %s exceeds maximum, closing connection!"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00505 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].CloseConnection();
-00506 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].SetState(STATE_DISCONNECTED);
-00507 <span class="keywordflow">if</span> (!<a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(this-&gt;connectors[i].GetServerName()))
-00508 {
-00509 WriteOpers(<span class="stringliteral">"*** Server %s is no longer routable, disconnecting."</span>,this-&gt;connectors[i].GetServerName().c_str());
-00510 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00511 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00512 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00513 }
-00514 <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a> = <span class="keyword">true</span>;
-00515 }
-00516 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].BufferIsComplete())
-00517 {
-00518 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].ResetPing();
-00519 <span class="keywordflow">while</span> (this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].BufferIsComplete())
-00520 {
-00521 std::string text = this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetBuffer();
-00522 <span class="keywordflow">if</span> (text != <span class="stringliteral">""</span>)
-00523 {
-00524 <span class="keywordflow">if</span> ((text[0] == <span class="charliteral">':'</span>) &amp;&amp; (text.find(<span class="stringliteral">" "</span>) != std::string::npos))
-00525 {
-00526 std::string orig = text;
-00527 log(DEBUG,<span class="stringliteral">"Original: %s"</span>,text.c_str());
-00528 std::string sum = text.substr(1,text.find(<span class="stringliteral">" "</span>)-1);
-00529 text = text.substr(text.find(<span class="stringliteral">" "</span>)+1,text.length());
-00530 std::string possible_token = text.substr(1,text.find(<span class="stringliteral">" "</span>)-1);
-00531 <span class="keywordflow">if</span> (possible_token.length() &gt; 1)
-00532 {
-00533 sums.push_back(<span class="stringliteral">"*"</span>);
-00534 text = orig;
-00535 log(DEBUG,<span class="stringliteral">"Non-mesh, non-tokenized string passed up the chain"</span>);
-00536 }
-00537 <span class="keywordflow">else</span>
-00538 {
-00539 log(DEBUG,<span class="stringliteral">"Packet sum: '%s'"</span>,sum.c_str());
-00540 <span class="keywordflow">if</span> ((<a class="code" href="servers_8cpp.html#a6">already_have_sum</a>(sum)) &amp;&amp; (sum != <span class="stringliteral">"*"</span>))
-00541 {
-00542 <span class="comment">// we don't accept dupes</span>
-00543 <span class="keywordflow">continue</span>;
-00544 }
-00545 sums.push_back(sum.c_str());
-00546 }
-00547 }
-00548 <span class="keywordflow">else</span> sums.push_back(<span class="stringliteral">"*"</span>);
-00549 messages.push_back(text.c_str());
-00550 strlcpy(recvhost,this-&gt;connectors[i].GetServerName().c_str(),160);
-00551 log(DEBUG,<span class="stringliteral">"serverrec::RecvPacket() %d:%s-&gt;%s"</span>,pushed++,recvhost,text.c_str());
-00552 }
-00553 }
-00554 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00555 }
-00556 }
-00557 }
-00558 }
-00559 <span class="comment">// nothing new yet -- message and host will be undefined</span>
-00560 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00561 }
-</pre></div> </td>
- </tr>
-</table>
-<a name="a7" doxytag="serverrec::SendPacket"></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 serverrec::SendPacket </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">char *&nbsp;</td>
- <td class="mdname" nowrap> <em>message</em>, </td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="md" nowrap>const char *&nbsp;</td>
- <td class="mdname" nowrap> <em>host</em></td>
- </tr>
- <tr>
- <td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"></td>
- </tr>
-
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Send a message to a server by name, if the server is unavailable directly route the packet via another server If the server still cannot be reached after attempting to route the message remotely, returns false.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00350">350</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-References <a class="el" href="classircd__connector.html#a21">ircd_connector::AddWriteBuf()</a>, <a class="el" href="classircd__connector.html#a14">ircd_connector::CloseConnection()</a>, <a class="el" href="servers_8h-source.html#l00081">connectors</a>, <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="servers_8cpp-source.html#l00242">FindHost()</a>, <a class="el" href="classircd__connector.html#a22">ircd_connector::FlushWriteBuf()</a>, <a class="el" href="classircd__connector.html#a2">ircd_connector::GetServerName()</a>, <a class="el" href="classircd__connector.html#a6">ircd_connector::GetState()</a>, <a class="el" href="classircd__connector.html#a24">ircd_connector::GetWriteError()</a>, <a class="el" href="classircd__connector.html#a7">ircd_connector::SetState()</a>, and <a class="el" href="connection_8h-source.html#l00035">STATE_DISCONNECTED</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00142">BeginLink()</a>, and <a class="el" href="servers_8cpp-source.html#l00182">MeshCookie()</a>.
-<p>
-<div class="fragment"><pre>00351 {
-00352 <span class="keywordflow">if</span> ((!message) || (!sendhost))
-00353 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00354
-00355 <a class="code" href="classircd__connector.html">ircd_connector</a>* cn = this-&gt;<a class="code" href="classserverrec.html#a9">FindHost</a>(sendhost);
-00356
-00357 <span class="keywordflow">if</span> (!strchr(message,<span class="charliteral">'\n'</span>))
-00358 {
-00359 strlcat(message,<span class="stringliteral">"\n"</span>,MAXBUF);
-00360 }
-00361
-00362 <span class="keywordflow">if</span> (cn)
-00363 {
-00364 log(DEBUG,<span class="stringliteral">"main: serverrec::SendPacket() sent '%s' to %s"</span>,message,cn-&gt;<a class="code" href="classircd__connector.html#a2">GetServerName</a>().c_str());
-00365
-00366 <span class="keywordflow">if</span> (cn-&gt;<a class="code" href="classircd__connector.html#a6">GetState</a>() == <a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>)
-00367 {
-00368 <span class="comment">// fix: can only route one hop to avoid a loop</span>
-00369 <span class="keywordflow">if</span> (strncmp(message,<span class="stringliteral">"R "</span>,2))
-00370 {
-00371 log(DEBUG,<span class="stringliteral">"Not a double reroute"</span>);
-00372 <span class="comment">// this route is down, we must re-route the packet through an available point in the mesh.</span>
-00373 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = 0; k &lt; this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.size(); k++)
-00374 {
-00375 log(DEBUG,<span class="stringliteral">"Check connector %d: %s"</span>,k,this-&gt;connectors[k].GetServerName().c_str());
-00376 <span class="comment">// search for another point in the mesh which can 'reach' where we want to go</span>
-00377 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> m = 0; m &lt; this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[k].routes.size(); m++)
-00378 {
-00379 <span class="keywordflow">if</span> (!strcasecmp(this-&gt;connectors[k].routes[m].c_str(),sendhost))
-00380 {
-00381 log(DEBUG,<span class="stringliteral">"Found alternative route for packet: %s"</span>,this-&gt;connectors[k].GetServerName().c_str());
-00382 <span class="keywordtype">char</span> buffer[MAXBUF];
-00383 snprintf(buffer,MAXBUF,<span class="stringliteral">"R %s %s"</span>,sendhost,message);
-00384 this-&gt;<a class="code" href="classserverrec.html#a7">SendPacket</a>(buffer,this-&gt;connectors[k].GetServerName().c_str());
-00385 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00386 }
-00387 }
-00388 }
-00389 }
-00390 <span class="keywordtype">char</span> buffer[MAXBUF];
-00391 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,sendhost);
-00392 WriteOpers(<span class="stringliteral">"*** All connections to %s lost."</span>,sendhost);
-00393 NetSendToAllExcept(sendhost,buffer);
-00394 DoSplit(sendhost);
-00395 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00396 }
-00397
-00398 <span class="comment">// returns false if the packet could not be sent (e.g. target host down)</span>
-00399 <span class="keywordflow">if</span> (!cn-&gt;<a class="code" href="classircd__connector.html#a21">AddWriteBuf</a>(message))
-00400 {
-00401 <span class="comment">// if we're here, there was an error pending, and the send cannot proceed</span>
-00402 log(DEBUG,<span class="stringliteral">"cn-&gt;AddWriteBuf() failed for serverrec::SendPacket(): %s"</span>,cn-&gt;<a class="code" href="classircd__connector.html#a24">GetWriteError</a>().c_str());
-00403 log(DEBUG,<span class="stringliteral">"Disabling connector: %s"</span>,cn-&gt;<a class="code" href="classircd__connector.html#a2">GetServerName</a>().c_str());
-00404 cn-&gt;<a class="code" href="classircd__connector.html#a14">CloseConnection</a>();
-00405 cn-&gt;<a class="code" href="classircd__connector.html#a7">SetState</a>(STATE_DISCONNECTED);
-00406 WriteOpers(<span class="stringliteral">"*** Lost single connection to %s, link inactive and retrying: %s"</span>,cn-&gt;<a class="code" href="classircd__connector.html#a2">GetServerName</a>().c_str(),cn-&gt;<a class="code" href="classircd__connector.html#a24">GetWriteError</a>().c_str());
-00407 <span class="comment">// retry the packet along a new route so either arrival OR failure are gauranteed (bugfix)</span>
-00408 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classserverrec.html#a7">SendPacket</a>(message,sendhost);
-00409 }
-00410 <span class="keywordflow">if</span> (!cn-&gt;<a class="code" href="classircd__connector.html#a22">FlushWriteBuf</a>())
-00411 {
-00412 <span class="comment">// if we're here the write() caused an error, we cannot proceed</span>
-00413 log(DEBUG,<span class="stringliteral">"cn-&gt;FlushWriteBuf() failed for serverrec::SendPacket(): %s"</span>,cn-&gt;<a class="code" href="classircd__connector.html#a24">GetWriteError</a>().c_str());
-00414 log(DEBUG,<span class="stringliteral">"Disabling connector: %s"</span>,cn-&gt;<a class="code" href="classircd__connector.html#a2">GetServerName</a>().c_str());
-00415 cn-&gt;<a class="code" href="classircd__connector.html#a14">CloseConnection</a>();
-00416 cn-&gt;<a class="code" href="classircd__connector.html#a7">SetState</a>(STATE_DISCONNECTED);
-00417 WriteOpers(<span class="stringliteral">"*** Lost single connection to %s, link inactive and retrying: %s"</span>,cn-&gt;<a class="code" href="classircd__connector.html#a2">GetServerName</a>().c_str(),cn-&gt;<a class="code" href="classircd__connector.html#a24">GetWriteError</a>().c_str());
-00418 <span class="comment">// retry the packet along a new route so either arrival OR failure are gauranteed</span>
-00419 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classserverrec.html#a7">SendPacket</a>(message,sendhost);
-00420 }
-00421 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00422 }
-00423 }
-</pre></div> </td>
- </tr>
-</table>
-<a name="a6" doxytag="serverrec::TerminateLink"></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 serverrec::TerminateLink </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">char *&nbsp;</td>
- <td class="mdname1" valign="top" nowrap> <em>targethost</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>
-Terminate a link to 'targethost' by calling the <a class="el" href="classircd__connector.html#a14">ircd_connector::CloseConnection</a> method.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00234">234</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-<div class="fragment"><pre>00235 {
-00236 <span class="comment">// this locates the targethost in the serverrec::connectors vector of the class,</span>
-00237 <span class="comment">// and terminates it by sending it an SQUIT token and closing its descriptor.</span>
-00238 <span class="comment">// TerminateLink with a null string causes a terminate of ALL links</span>
-00239 }
-</pre></div> </td>
- </tr>
-</table>
-<hr><h2>Member Data Documentation</h2>
-<a name="o11" doxytag="serverrec::connectors"></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;<a class="el" href="classircd__connector.html">ircd_connector</a>&gt; <a class="el" href="classserverrec.html#o11">serverrec::connectors</a>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-With a serverrec, this is a list of all established server connections.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8h-source.html#l00081">81</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00212">AddIncoming()</a>, <a class="el" href="servers_8cpp-source.html#l00142">BeginLink()</a>, <a class="el" href="servers_8cpp-source.html#l00242">FindHost()</a>, <a class="el" href="servers_8cpp-source.html#l00274">FlushWriteBuffers()</a>, <a class="el" href="servers_8cpp-source.html#l00256">IsRoutable()</a>, <a class="el" href="servers_8cpp-source.html#l00182">MeshCookie()</a>, <a class="el" href="servers_8cpp-source.html#l00445">RecvPacket()</a>, <a class="el" href="servers_8cpp-source.html#l00350">SendPacket()</a>, and <a class="el" href="servers_8cpp-source.html#l00046">serverrec()</a>. </td>
- </tr>
-</table>
-<a name="o8" doxytag="serverrec::description"></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="classserverrec.html#o8">serverrec::description</a>[MAXBUF]
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Description of the server.
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8h-source.html#l00061">61</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>. </td>
- </tr>
-</table>
-<a name="o5" doxytag="serverrec::hops_away"></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="classserverrec.html#o5">serverrec::hops_away</a>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-number of hops away (for quick access)
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8h-source.html#l00051">51</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00046">serverrec()</a>. </td>
- </tr>
-</table>
-<a name="o7" doxytag="serverrec::jupiter"></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 <a class="el" href="classserverrec.html#o7">serverrec::jupiter</a>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-is a JUPE server (faked to enforce a server ban)
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8h-source.html#l00057">57</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00046">serverrec()</a>. </td>
- </tr>
-</table>
-<a name="o0" doxytag="serverrec::name"></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="classserverrec.html#o0">serverrec::name</a>[MAXBUF]
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-server name
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8h-source.html#l00036">36</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00046">serverrec()</a>. </td>
- </tr>
-</table>
-<a name="o9" doxytag="serverrec::nickserv"></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="classserverrec.html#o9">serverrec::nickserv</a>[NICKMAX]
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Holds nickserv's name on U:lined (services) servers (this is a kludge for ircservices which ASSUMES things :/).
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8h-source.html#l00065">65</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00046">serverrec()</a>. </td>
- </tr>
-</table>
-<a name="o4" doxytag="serverrec::opercount"></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="classserverrec.html#o4">serverrec::opercount</a>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-opers on server
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8h-source.html#l00048">48</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00046">serverrec()</a>. </td>
- </tr>
-</table>
-<a name="o1" doxytag="serverrec::pingtime"></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="classserverrec.html#o1">serverrec::pingtime</a>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-last ping response (ms)
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8h-source.html#l00039">39</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00046">serverrec()</a>. </td>
- </tr>
-</table>
-<a name="o10" doxytag="serverrec::sync_soon"></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 <a class="el" href="classserverrec.html#o10">serverrec::sync_soon</a>
- </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="servers_8h-source.html#l00067">67</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00046">serverrec()</a>. </td>
- </tr>
-</table>
-<a name="o3" doxytag="serverrec::usercount"></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="classserverrec.html#o3">serverrec::usercount</a>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-non-invisible users on server
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8h-source.html#l00045">45</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00046">serverrec()</a>. </td>
- </tr>
-</table>
-<a name="o2" doxytag="serverrec::usercount_i"></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="classserverrec.html#o2">serverrec::usercount_i</a>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-invisible users on server
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8h-source.html#l00042">42</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00046">serverrec()</a>. </td>
- </tr>
-</table>
-<a name="o6" doxytag="serverrec::version"></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="classserverrec.html#o6">serverrec::version</a>
- </table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-ircd version
-<p>
-
-<p>
-Definition at line <a class="el" href="servers_8h-source.html#l00054">54</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00046">serverrec()</a>. </td>
- </tr>
-</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 Mon May 30 05:17:37 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>
-</body>
-</html>
diff --git a/docs/module-doc/classserverrec__coll__graph.gif b/docs/module-doc/classserverrec__coll__graph.gif
deleted file mode 100644
index 05abae634..000000000
--- a/docs/module-doc/classserverrec__coll__graph.gif
+++ /dev/null
Binary files differ
diff --git a/docs/module-doc/classserverrec__inherit__graph.gif b/docs/module-doc/classserverrec__inherit__graph.gif
deleted file mode 100644
index e14cc4145..000000000
--- a/docs/module-doc/classserverrec__inherit__graph.gif
+++ /dev/null
Binary files differ
diff --git a/docs/module-doc/classstd_1_1char__traits.html b/docs/module-doc/classstd_1_1char__traits.html
index 211fbdbb3..880c4e4ee 100644
--- a/docs/module-doc/classstd_1_1char__traits.html
+++ b/docs/module-doc/classstd_1_1char__traits.html
@@ -14,7 +14,7 @@
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="hashcomp_8h-source.html">hashcomp.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classucrec-members.html b/docs/module-doc/classucrec-members.html
index 74bc24deb..a5c3c529a 100644
--- a/docs/module-doc/classucrec-members.html
+++ b/docs/module-doc/classucrec-members.html
@@ -13,7 +13,7 @@
<tr class="memlist"><td><a class="el" href="classucrec.html#ucrec_28_29">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#_7Eclassbase_28_29">~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#_7Eucrec_28_29">~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 Dec 14 14:49:34 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classucrec.html b/docs/module-doc/classucrec.html
index 73fd8c3d4..67682559c 100644
--- a/docs/module-doc/classucrec.html
+++ b/docs/module-doc/classucrec.html
@@ -163,7 +163,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00247">247</a> o
</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 Dec 14 14:49:34 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classuserrec-members.html b/docs/module-doc/classuserrec-members.html
index 284a62c2d..5a1fa02a5 100644
--- a/docs/module-doc/classuserrec-members.html
+++ b/docs/module-doc/classuserrec-members.html
@@ -70,7 +70,7 @@
<tr class="memlist"><td><a class="el" href="classuserrec.html#WriteError">WriteError</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#_7Eclassbase_28_29">~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#_7Euserrec_28_29">~userrec</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/classuserrec.html b/docs/module-doc/classuserrec.html
index e6360b99e..9592f072d 100644
--- a/docs/module-doc/classuserrec.html
+++ b/docs/module-doc/classuserrec.html
@@ -182,7 +182,7 @@ Definition at line <a class="el" href="users_8h-source.html#l00111">111</a> of f
<p>
Definition at line <a class="el" href="users_8cpp-source.html#l00036">36</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
<p>
-References <a class="el" href="users_8h-source.html#l00158">awaymsg</a>, <a class="el" href="connection_8h-source.html#l00054">connection::bytes_in</a>, <a class="el" href="connection_8h-source.html#l00058">connection::bytes_out</a>, <a class="el" href="users_8h-source.html#l00149">chans</a>, <a class="el" href="connection_8h-source.html#l00062">connection::cmds_in</a>, <a class="el" href="connection_8h-source.html#l00066">connection::cmds_out</a>, <a class="el" href="users_8h-source.html#l00134">dhost</a>, <a class="el" href="users_8h-source.html#l00181">dns_done</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="users_8h-source.html#l00164">flood</a>, <a class="el" href="users_8h-source.html#l00138">fullname</a>, <a class="el" href="connection_8h-source.html#l00070">connection::haspassed</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00129">ident</a>, <a class="el" href="connection_8h-source.html#l00092">connection::idle_lastmsg</a>, <a class="el" href="users_8h-source.html#l00117">invites</a>, <a class="el" href="connection_8h-source.html#l00050">connection::ip</a>, <a class="el" href="connection_8h-source.html#l00084">connection::lastping</a>, <a class="el" href="users_8h-source.html#l00206">lines_in</a>, <a class="el" href="users_8h-source.html#l00147">modes</a>, <a class="el" href="users_8h-source.html#l00124">nick</a>, <a class="el" href="connection_8h-source.html#l00096">connection::nping</a>, <a class="el" href="users_8h-source.html#l00177">oper</a>, <a class="el" href="connection_8h-source.html#l00076">connection::port</a>, <a class="el" href="users_8h-source.html#l00197">recvq</a>, <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>, <a class="el" href="users_8h-source.html#l00207">reset_due</a>, <a class="el" href="users_8h-source.html#l00202">sendq</a>, <a class="el" href="users_8h-source.html#l00153">server</a>, <a class="el" href="inspircd__io_8h-source.html#l00042">ServerConfig::ServerName</a>, <a class="el" href="connection_8h-source.html#l00088">connection::signon</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, and <a class="el" href="users_8h-source.html#l00170">timeout</a>.<div class="fragment"><pre class="fragment"><a name="l00037"></a>00037 {
+References <a class="el" href="users_8h-source.html#l00158">awaymsg</a>, <a class="el" href="connection_8h-source.html#l00054">connection::bytes_in</a>, <a class="el" href="connection_8h-source.html#l00058">connection::bytes_out</a>, <a class="el" href="users_8h-source.html#l00149">chans</a>, <a class="el" href="connection_8h-source.html#l00062">connection::cmds_in</a>, <a class="el" href="connection_8h-source.html#l00066">connection::cmds_out</a>, <a class="el" href="users_8h-source.html#l00134">dhost</a>, <a class="el" href="users_8h-source.html#l00181">dns_done</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="users_8h-source.html#l00164">flood</a>, <a class="el" href="users_8h-source.html#l00138">fullname</a>, <a class="el" href="connection_8h-source.html#l00070">connection::haspassed</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00129">ident</a>, <a class="el" href="connection_8h-source.html#l00092">connection::idle_lastmsg</a>, <a class="el" href="users_8h-source.html#l00117">invites</a>, <a class="el" href="connection_8h-source.html#l00050">connection::ip</a>, <a class="el" href="connection_8h-source.html#l00084">connection::lastping</a>, <a class="el" href="users_8h-source.html#l00206">lines_in</a>, <a class="el" href="users_8h-source.html#l00147">modes</a>, <a class="el" href="users_8h-source.html#l00124">nick</a>, <a class="el" href="connection_8h-source.html#l00096">connection::nping</a>, <a class="el" href="users_8h-source.html#l00177">oper</a>, <a class="el" href="connection_8h-source.html#l00076">connection::port</a>, <a class="el" href="users_8h-source.html#l00197">recvq</a>, <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>, <a class="el" href="users_8h-source.html#l00207">reset_due</a>, <a class="el" href="users_8h-source.html#l00202">sendq</a>, <a class="el" href="users_8h-source.html#l00153">server</a>, <a class="el" href="inspircd__io_8h-source.html#l00068">ServerConfig::ServerName</a>, <a class="el" href="connection_8h-source.html#l00088">connection::signon</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, and <a class="el" href="users_8h-source.html#l00170">timeout</a>.<div class="fragment"><pre class="fragment"><a name="l00037"></a>00037 {
<a name="l00038"></a>00038 <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
<a name="l00039"></a>00039 strcpy(<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<span class="stringliteral">""</span>);
<a name="l00040"></a>00040 strcpy(<a class="code" href="classconnection.html#ip_5B_31_36_5D">ip</a>,<span class="stringliteral">"127.0.0.1"</span>);
@@ -427,7 +427,7 @@ Definition at line <a class="el" href="users_8cpp-source.html#l00232">232</a> of
<p>
References <a class="el" href="users_8h-source.html#l00197">recvq</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00608">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00596">Server::UserToPseudo()</a>.<div class="fragment"><pre class="fragment"><a name="l00233"></a>00233 {
+Referenced by <a class="el" href="modules_8cpp-source.html#l00613">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00601">Server::UserToPseudo()</a>.<div class="fragment"><pre class="fragment"><a name="l00233"></a>00233 {
<a name="l00234"></a>00234 <a class="code" href="classuserrec.html#recvq">recvq</a> = <span class="stringliteral">""</span>;
<a name="l00235"></a>00235 }
</pre></div>
@@ -764,7 +764,7 @@ This is done by looking up their oper type from <a class="el" href="classuserrec
<p>
Definition at line <a class="el" href="users_8cpp-source.html#l00144">144</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
<p>
-References <a class="el" href="inspircd__io_8h-source.html#l00074">ServerConfig::config_f</a>, <a class="el" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ServerConfig::ConfValue()</a>, and <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline()</a>.<div class="fragment"><pre class="fragment"><a name="l00145"></a>00145 {
+References <a class="el" href="inspircd__io_8h-source.html#l00238">ServerConfig::config_f</a>, <a class="el" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ServerConfig::ConfValue()</a>, and <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline()</a>.<div class="fragment"><pre class="fragment"><a name="l00145"></a>00145 {
<a name="l00146"></a>00146 <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
<a name="l00147"></a>00147 <span class="keywordtype">char</span>* mycmd;
<a name="l00148"></a>00148 <span class="keywordtype">char</span>* savept;
@@ -1113,7 +1113,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>.
<p>
Definition at line <a class="el" href="users_8h-source.html#l00149">149</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#l00608">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00613">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>. </td>
</tr>
</table>
<a class="anchor" name="dhost_5B_31_36_30_5D"></a><!-- doxytag: member="userrec::dhost" ref="dhost_5B_31_36_30_5D" args="[160]" --><p>
@@ -1258,7 +1258,7 @@ Two characters are added to the user-defined limit to compensate for the tilde e
<p>
Definition at line <a class="el" href="users_8h-source.html#l00129">129</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#l00072">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00089">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00608">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00596">Server::UserToPseudo()</a>. </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00072">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00089">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00613">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00601">Server::UserToPseudo()</a>. </td>
</tr>
</table>
<a class="anchor" name="invites"></a><!-- doxytag: member="userrec::invites" ref="invites" args="" --><p>
@@ -1374,7 +1374,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#l00124">124</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#l00833">ConfigReader::DumpErrors()</a>, <a class="el" href="users_8cpp-source.html#l00072">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00089">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00608">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00838">ConfigReader::DumpErrors()</a>, <a class="el" href="users_8cpp-source.html#l00072">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00089">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00613">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>. </td>
</tr>
</table>
<a class="anchor" name="oper_5BNICKMAX_5D"></a><!-- doxytag: member="userrec::oper" ref="oper_5BNICKMAX_5D" args="[NICKMAX]" --><p>
@@ -1715,7 +1715,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00300">GetWriteError()
</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 Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/commands_8h-source.html b/docs/module-doc/commands_8h-source.html
index 2439e45c3..46b8db3d3 100644
--- a/docs/module-doc/commands_8h-source.html
+++ b/docs/module-doc/commands_8h-source.html
@@ -97,7 +97,7 @@
<a name="l00094"></a>00094 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#do_5Fwhois_28userrec_20_2Auser_2C_20userrec_20_2Adest_2C_20unsigned_20long_20signon_2C_20unsigned_20long_20idle_2C_20char_20_2Anick_29">do_whois</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classuserrec.html">userrec</a>* dest,<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> signon, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> idle, <span class="keywordtype">char</span>* nick);
<a name="l00095"></a>00095
<a name="l00096"></a>00096 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/commands_8h.html b/docs/module-doc/commands_8h.html
index 6fc6be221..c960cfd65 100644
--- a/docs/module-doc/commands_8h.html
+++ b/docs/module-doc/commands_8h.html
@@ -232,7 +232,7 @@ Other useful functions.
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00688">Server::CalcDuration()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00693">Server::CalcDuration()</a>. </td>
</tr>
</table>
<a class="anchor" name="handle_5Fadmin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_admin" ref="handle_5Fadmin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
@@ -2459,10 +2459,10 @@ Functions for u:lined servers.
<p>
<p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00144">userrec::HasPermission()</a>, and <a class="el" href="modules_8cpp-source.html#l00394">Server::IsUlined()</a>. </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00144">userrec::HasPermission()</a>, and <a class="el" href="modules_8cpp-source.html#l00399">Server::IsUlined()</a>. </td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/connection_8h-source.html b/docs/module-doc/connection_8h-source.html
index d4440247a..35ad1f235 100644
--- a/docs/module-doc/connection_8h-source.html
+++ b/docs/module-doc/connection_8h-source.html
@@ -82,7 +82,7 @@
<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
<a name="l00108"></a>00108 <span class="preprocessor"></span>
<a name="l00109"></a>00109
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/connection_8h.html b/docs/module-doc/connection_8h.html
index fa0594791..62f2424db 100644
--- a/docs/module-doc/connection_8h.html
+++ b/docs/module-doc/connection_8h.html
@@ -51,7 +51,7 @@ This graph shows which files directly or indirectly include this file:<p><center
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Please note: classes serverrec and userrec both inherit from class connection. <a href="classconnection.html#_details">More...</a><br></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:21 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/ctables_8h-source.html b/docs/module-doc/ctables_8h-source.html
index c69bbe5ce..7f6998b81 100644
--- a/docs/module-doc/ctables_8h-source.html
+++ b/docs/module-doc/ctables_8h-source.html
@@ -44,7 +44,7 @@
<a name="l00051"></a>00051
<a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/ctables_8h.html b/docs/module-doc/ctables_8h.html
index 299e74444..eddf9defc 100644
--- a/docs/module-doc/ctables_8h.html
+++ b/docs/module-doc/ctables_8h.html
@@ -34,7 +34,7 @@ This graph shows which files directly or indirectly include this file:<p><center
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A structure that defines a command. <a href="classcommand__t.html#_details">More...</a><br></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:22 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/dir_000000.html b/docs/module-doc/dir_000000.html
index ac517be3a..e07329a5b 100644
--- a/docs/module-doc/dir_000000.html
+++ b/docs/module-doc/dir_000000.html
@@ -20,7 +20,7 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000001.html">brain</a></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/dir_000001.html b/docs/module-doc/dir_000001.html
index e0d09e519..9a0e80022 100644
--- a/docs/module-doc/dir_000001.html
+++ b/docs/module-doc/dir_000001.html
@@ -21,7 +21,7 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000002.html">inspircd-cvs</a></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/dir_000002.html b/docs/module-doc/dir_000002.html
index a3add89ff..d2f1799fa 100644
--- a/docs/module-doc/dir_000002.html
+++ b/docs/module-doc/dir_000002.html
@@ -21,7 +21,7 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000003.html">inspircd</a></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/dir_000003.html b/docs/module-doc/dir_000003.html
index 85a188e03..bd1c212a2 100644
--- a/docs/module-doc/dir_000003.html
+++ b/docs/module-doc/dir_000003.html
@@ -26,7 +26,7 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000005.html">src</a></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/dir_000004.html b/docs/module-doc/dir_000004.html
index 7e8fbc290..f7af0bb30 100644
--- a/docs/module-doc/dir_000004.html
+++ b/docs/module-doc/dir_000004.html
@@ -52,7 +52,7 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xline_8h.html">xline.h</a> <a href="xline_8h-source.html">[code]</a></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/dir_000005.html b/docs/module-doc/dir_000005.html
index d1c9ad25f..b4752fb9d 100644
--- a/docs/module-doc/dir_000005.html
+++ b/docs/module-doc/dir_000005.html
@@ -31,7 +31,7 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html">users.cpp</a> <a href="users_8cpp-source.html">[code]</a></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/dir_000005_000004.html b/docs/module-doc/dir_000005_000004.html
index f4aabd513..d038bdadd 100644
--- a/docs/module-doc/dir_000005_000004.html
+++ b/docs/module-doc/dir_000005_000004.html
@@ -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">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<div class="nav">
<a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000005.html">src</a></div>
-<h3>src &rarr; include Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in <a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000005.html">src</a></th><th class="dirtab">Includes file in <a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000004.html">include</a></th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="ctables_8h.html">ctables.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="inspircd__io_8h.html">inspircd_io.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="message_8h.html">message.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="mode_8h.html">mode.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="modules_8h.html">modules.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="users_8h.html">users.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="xline_8h.html">xline.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="commands_8h.html">commands.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="ctables_8h.html">ctables.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="hashcomp_8h.html">hashcomp.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="inspircd__io_8h.html">inspircd_io.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="message_8h.html">message.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="mode_8h.html">mode.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="modules_8h.html">modules.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="socket_8h.html">socket.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="typedefs_8h.html">typedefs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="users_8h.html">users.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="xline_8h.html">xline.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="inspircd__io_8h.html">inspircd_io.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="socket_8h.html">socket.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socketengine_8cpp.html">socketengine.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="channels_8h.html">channels.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="commands_8h.html">commands.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="connection_8h.html">connection.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="users_8h.html">users.h</a></td></tr></table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<h3>src &rarr; include Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in <a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000005.html">src</a></th><th class="dirtab">Includes file in <a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000004.html">include</a></th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="ctables_8h.html">ctables.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="inspircd__io_8h.html">inspircd_io.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="message_8h.html">message.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="mode_8h.html">mode.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="modules_8h.html">modules.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="users_8h.html">users.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="xline_8h.html">xline.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="commands_8h.html">commands.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="ctables_8h.html">ctables.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="hashcomp_8h.html">hashcomp.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="inspircd__io_8h.html">inspircd_io.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="message_8h.html">message.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="mode_8h.html">mode.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="modules_8h.html">modules.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="socket_8h.html">socket.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="typedefs_8h.html">typedefs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="users_8h.html">users.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="xline_8h.html">xline.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="inspircd__io_8h.html">inspircd_io.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="socket_8h.html">socket.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socketengine_8cpp.html">socketengine.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="channels_8h.html">channels.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="commands_8h.html">commands.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="connection_8h.html">connection.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="users_8h.html">users.h</a></td></tr></table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/dirs.html b/docs/module-doc/dirs.html
index 8b6681f4b..17ae8e33b 100644
--- a/docs/module-doc/dirs.html
+++ b/docs/module-doc/dirs.html
@@ -21,7 +21,7 @@
</ul>
</ul>
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/dns_8h-source.html b/docs/module-doc/dns_8h-source.html
index 8419d55ac..0da4207ee 100644
--- a/docs/module-doc/dns_8h-source.html
+++ b/docs/module-doc/dns_8h-source.html
@@ -75,7 +75,7 @@
<a name="l00098"></a>00098 };
<a name="l00099"></a>00099
<a name="l00100"></a>00100 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/dns_8h.html b/docs/module-doc/dns_8h.html
index d7c8b4325..40c455429 100644
--- a/docs/module-doc/dns_8h.html
+++ b/docs/module-doc/dns_8h.html
@@ -25,7 +25,7 @@ Include dependency graph for dns.h:<p><center><img src="dns_8h__incl.gif" border
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The DNS class allows fast nonblocking resolution of hostnames and ip addresses. <a href="classDNS.html#_details">More...</a><br></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:22 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/files.html b/docs/module-doc/files.html
index 645b1618f..9d421391e 100644
--- a/docs/module-doc/files.html
+++ b/docs/module-doc/files.html
@@ -29,7 +29,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 Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions.html b/docs/module-doc/functions.html
index b52346652..0f445f587 100644
--- a/docs/module-doc/functions.html
+++ b/docs/module-doc/functions.html
@@ -36,7 +36,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classclassbase.html#age">classbase</a><li>AllowHalfop
: <a class="el" href="classServerConfig.html#AllowHalfop">ServerConfig</a><li>awaymsg
: <a class="el" href="classuserrec.html#awaymsg_5BMAXAWAY_2B_31_5D">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x62.html b/docs/module-doc/functions_0x62.html
index f333302fb..55731bcdb 100644
--- a/docs/module-doc/functions_0x62.html
+++ b/docs/module-doc/functions_0x62.html
@@ -22,7 +22,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classVersion.html#Build">Version</a><li>bytes_in
: <a class="el" href="classconnection.html#bytes_5Fin">connection</a><li>bytes_out
: <a class="el" href="classconnection.html#bytes_5Fout">connection</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x63.html b/docs/module-doc/functions_0x63.html
index 3fe20333f..20d86f976 100644
--- a/docs/module-doc/functions_0x63.html
+++ b/docs/module-doc/functions_0x63.html
@@ -46,7 +46,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classchanrec.html#created">chanrec</a><li>CreateModule()
: <a class="el" href="classModuleFactory.html#CreateModule_28Server_20_2AMe_29_3D_30">ModuleFactory</a><li>custom_modes
: <a class="el" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">chanrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x64.html b/docs/module-doc/functions_0x64.html
index b486d1deb..0ee844213 100644
--- a/docs/module-doc/functions_0x64.html
+++ b/docs/module-doc/functions_0x64.html
@@ -49,7 +49,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classServerConfig.html#DNSServer_5BMAXBUF_5D">ServerConfig</a><li>DumpErrors()
: <a class="el" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">ConfigReader</a><li>duration
: <a class="el" href="classXLine.html#duration">XLine</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x65.html b/docs/module-doc/functions_0x65.html
index 2af57be17..74cbd6e7e 100644
--- a/docs/module-doc/functions_0x65.html
+++ b/docs/module-doc/functions_0x65.html
@@ -27,7 +27,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classExtensible.html#Extend_28std_3A_3Astring_20key_2C_20char_20_2Ap_29">Extensible</a><li>Extension_Items
: <a class="el" href="classExtensible.html#Extension_5FItems">Extensible</a><li>ExtMode()
: <a class="el" href="classExtMode.html#ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29">ExtMode</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x66.html b/docs/module-doc/functions_0x66.html
index cbd3f80e6..e94f4d12d 100644
--- a/docs/module-doc/functions_0x66.html
+++ b/docs/module-doc/functions_0x66.html
@@ -30,7 +30,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classuserrec.html#FlushWriteBuf_28_29">userrec</a><li>ForwardLookup()
: <a class="el" href="classDNS.html#ForwardLookup_28std_3A_3Astring_20host_29">DNS</a><li>fullname
: <a class="el" href="classWhoWasUser.html#fullname_5BMAXGECOS_2B_31_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x67.html b/docs/module-doc/functions_0x67.html
index 84208512d..26ce0f1e7 100644
--- a/docs/module-doc/functions_0x67.html
+++ b/docs/module-doc/functions_0x67.html
@@ -15,7 +15,8 @@ Here is a list of all class members with links to the classes they belong to:
<li>Get()
: <a class="el" href="classBoolSet.html#Get_28int_20number_29">BoolSet</a><li>GetAdmin()
: <a class="el" href="classServer.html#GetAdmin_28_29">Server</a><li>GetBuffer()
-: <a class="el" href="classuserrec.html#GetBuffer_28_29">userrec</a><li>GetData()
+: <a class="el" href="classuserrec.html#GetBuffer_28_29">userrec</a><li>GetConfig()
+: <a class="el" href="classServer.html#GetConfig_28_29">Server</a><li>GetData()
: <a class="el" href="classEvent.html#GetData_28_29">Event</a>, <a class="el" href="classRequest.html#GetData_28_29">Request</a><li>GetDest()
: <a class="el" href="classRequest.html#GetDest_28_29">Request</a><li>GetError()
: <a class="el" href="classConfigReader.html#GetError_28_29">ConfigReader</a><li>GetEventID()
@@ -43,7 +44,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">Server</a>, <a class="el" href="classchanrec.html#GetUsers_28_29">chanrec</a><li>GetVersion()
: <a class="el" href="classModule.html#GetVersion_28_29">Module</a><li>GetWriteError()
: <a class="el" href="classuserrec.html#GetWriteError_28_29">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x68.html b/docs/module-doc/functions_0x68.html
index 7a3f1f224..3a117572c 100644
--- a/docs/module-doc/functions_0x68.html
+++ b/docs/module-doc/functions_0x68.html
@@ -20,7 +20,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classWhoWasUser.html#host_5B_31_36_30_5D">WhoWasUser</a>, <a class="el" href="classConnectClass.html#host_5BMAXBUF_5D">ConnectClass</a>, <a class="el" href="classInspSocket.html#host">InspSocket</a>, <a class="el" href="classconnection.html#host_5B_31_36_30_5D">connection</a><li>HostItem()
: <a class="el" href="classHostItem.html#HostItem_28_29">HostItem</a><li>hostmask
: <a class="el" href="classELine.html#hostmask_5B_32_30_30_5D">ELine</a>, <a class="el" href="classGLine.html#hostmask_5B_32_30_30_5D">GLine</a>, <a class="el" href="classKLine.html#hostmask_5B_32_30_30_5D">KLine</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x69.html b/docs/module-doc/functions_0x69.html
index d49e30262..a13bf5c02 100644
--- a/docs/module-doc/functions_0x69.html
+++ b/docs/module-doc/functions_0x69.html
@@ -34,7 +34,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">Server</a><li>IsValidMask()
: <a class="el" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">Server</a><li>IsValidModuleCommand()
: <a class="el" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x6a.html b/docs/module-doc/functions_0x6a.html
index 5830615d0..28b99da0e 100644
--- a/docs/module-doc/functions_0x6a.html
+++ b/docs/module-doc/functions_0x6a.html
@@ -14,7 +14,7 @@ Here is a list of all class members with links to the classes they belong to:
<h3><a class="anchor" name="index_j">- j -</a></h3><ul>
<li>JoinUserToChannel()
: <a class="el" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x6b.html b/docs/module-doc/functions_0x6b.html
index 171af41b5..857dc82b3 100644
--- a/docs/module-doc/functions_0x6b.html
+++ b/docs/module-doc/functions_0x6b.html
@@ -15,7 +15,7 @@ Here is a list of all class members with links to the classes they belong to:
<li>ke_list
: <a class="el" href="classSocketEngine.html#ke_5Flist_5B_36_35_35_33_35_5D">SocketEngine</a><li>key
: <a class="el" href="classchanrec.html#key_5B_33_32_5D">chanrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x6c.html b/docs/module-doc/functions_0x6c.html
index 8192b194d..c5e7db11c 100644
--- a/docs/module-doc/functions_0x6c.html
+++ b/docs/module-doc/functions_0x6c.html
@@ -25,7 +25,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classServerConfig.html#log_5Ffile">ServerConfig</a><li>LogLevel
: <a class="el" href="classServerConfig.html#LogLevel">ServerConfig</a><li>lt()
: <a class="el" href="structirc_1_1irc__char__traits.html#lt_28char_20c_31st_2C_20char_20c_32nd_29">irc::irc_char_traits</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x6d.html b/docs/module-doc/functions_0x6d.html
index b6093d0d0..52511f8c0 100644
--- a/docs/module-doc/functions_0x6d.html
+++ b/docs/module-doc/functions_0x6d.html
@@ -30,7 +30,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classServerConfig.html#motd_5BMAXBUF_5D">ServerConfig</a><li>MyExecutable
: <a class="el" href="classServerConfig.html#MyExecutable_5B_31_30_32_34_5D">ServerConfig</a><li>myfd
: <a class="el" href="classDNS.html#myfd">DNS</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x6e.html b/docs/module-doc/functions_0x6e.html
index ca6207929..c79e25497 100644
--- a/docs/module-doc/functions_0x6e.html
+++ b/docs/module-doc/functions_0x6e.html
@@ -25,7 +25,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classAdmin.html#Nick">Admin</a><li>nofork
: <a class="el" href="classServerConfig.html#nofork">ServerConfig</a><li>nping
: <a class="el" href="classconnection.html#nping">connection</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x6f.html b/docs/module-doc/functions_0x6f.html
index f51e50ade..d72f64cc3 100644
--- a/docs/module-doc/functions_0x6f.html
+++ b/docs/module-doc/functions_0x6f.html
@@ -101,7 +101,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classBoolSet.html#operator_3D_28BoolSet_20other_29">BoolSet</a><li>operator==()
: <a class="el" href="classBoolSet.html#operator_3D_3D_28BoolSet_20other_29">BoolSet</a><li>operator|()
: <a class="el" href="classBoolSet.html#operator_7C_28BoolSet_20other_29">BoolSet</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x70.html b/docs/module-doc/functions_0x70.html
index 49e7020ad..06285b174 100644
--- a/docs/module-doc/functions_0x70.html
+++ b/docs/module-doc/functions_0x70.html
@@ -28,7 +28,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">Module</a><li>ProtoSendMode()
: <a class="el" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">Module</a><li>PseudoToUser()
: <a class="el" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x71.html b/docs/module-doc/functions_0x71.html
index 47f71a836..f82053366 100644
--- a/docs/module-doc/functions_0x71.html
+++ b/docs/module-doc/functions_0x71.html
@@ -14,7 +14,7 @@ Here is a list of all class members with links to the classes they belong to:
<h3><a class="anchor" name="index_q">- q -</a></h3><ul>
<li>QuitUser()
: <a class="el" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x72.html b/docs/module-doc/functions_0x72.html
index 5a5585f90..af3f0fb10 100644
--- a/docs/module-doc/functions_0x72.html
+++ b/docs/module-doc/functions_0x72.html
@@ -32,10 +32,10 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classServerConfig.html#restartpass_5BMAXBUF_5D">ServerConfig</a><li>result
: <a class="el" href="classDNS.html#result">DNS</a><li>ReverseLookup()
: <a class="el" href="classDNS.html#ReverseLookup_28std_3A_3Astring_20ip_29">DNS</a><li>Revision
-: <a class="el" href="classVersion.html#Revision">Version</a><li>rules
-: <a class="el" href="classServerConfig.html#rules_5BMAXBUF_5D">ServerConfig</a><li>RULES
-: <a class="el" href="classServerConfig.html#RULES">ServerConfig</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+: <a class="el" href="classVersion.html#Revision">Version</a><li>RULES
+: <a class="el" href="classServerConfig.html#RULES">ServerConfig</a><li>rules
+: <a class="el" href="classServerConfig.html#rules_5BMAXBUF_5D">ServerConfig</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x73.html b/docs/module-doc/functions_0x73.html
index ff0059cad..51ffe74be 100644
--- a/docs/module-doc/functions_0x73.html
+++ b/docs/module-doc/functions_0x73.html
@@ -25,9 +25,9 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server</a><li>SendTo()
: <a class="el" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">Server</a><li>SendToModeMask()
: <a class="el" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">Server</a><li>SendWallops()
-: <a class="el" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">Server</a><li>Server()
-: <a class="el" href="classServer.html#Server_28_29">Server</a><li>server
-: <a class="el" href="classWhoWasUser.html#server_5B_32_35_36_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#server">userrec</a>, <a class="el" href="classInspSocket.html#server">InspSocket</a><li>ServerConfig()
+: <a class="el" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">Server</a><li>server
+: <a class="el" href="classWhoWasUser.html#server_5B_32_35_36_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#server">userrec</a>, <a class="el" href="classInspSocket.html#server">InspSocket</a><li>Server()
+: <a class="el" href="classServer.html#Server_28_29">Server</a><li>ServerConfig()
: <a class="el" href="classServerConfig.html#ServerConfig_28_29">ServerConfig</a><li>ServerDesc
: <a class="el" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerConfig</a><li>ServerName
: <a class="el" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerConfig</a><li>Set()
@@ -46,7 +46,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classServerConfig.html#SoftLimit">ServerConfig</a><li>source
: <a class="el" href="classXLine.html#source_5B_32_35_36_5D">XLine</a>, <a class="el" href="classEvent.html#source">Event</a>, <a class="el" href="classRequest.html#source">Request</a>, <a class="el" href="classcommand__t.html#source_5BMAXBUF_5D">command_t</a><li>state
: <a class="el" href="classInspSocket.html#state">InspSocket</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x74.html b/docs/module-doc/functions_0x74.html
index 628fe57a4..b5c75256b 100644
--- a/docs/module-doc/functions_0x74.html
+++ b/docs/module-doc/functions_0x74.html
@@ -14,16 +14,16 @@ Here is a list of all class members with links to the classes they belong to:
<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
<li>t
: <a class="el" href="classDNS.html#t">DNS</a><li>threshold
-: <a class="el" href="classuserrec.html#threshold">userrec</a>, <a class="el" href="classConnectClass.html#threshold">ConnectClass</a><li>Timeout()
-: <a class="el" href="classInspSocket.html#Timeout_28time_5Ft_20current_29">InspSocket</a><li>timeout
-: <a class="el" href="classuserrec.html#timeout">userrec</a>, <a class="el" href="classInspSocket.html#timeout">InspSocket</a><li>timeout_end
+: <a class="el" href="classuserrec.html#threshold">userrec</a>, <a class="el" href="classConnectClass.html#threshold">ConnectClass</a><li>timeout
+: <a class="el" href="classuserrec.html#timeout">userrec</a>, <a class="el" href="classInspSocket.html#timeout">InspSocket</a><li>Timeout()
+: <a class="el" href="classInspSocket.html#Timeout_28time_5Ft_20current_29">InspSocket</a><li>timeout_end
: <a class="el" href="classInspSocket.html#timeout_5Fend">InspSocket</a><li>topic
: <a class="el" href="classchanrec.html#topic_5BMAXBUF_5D">chanrec</a><li>topicset
: <a class="el" href="classchanrec.html#topicset">chanrec</a><li>total_bytes
: <a class="el" href="classcommand__t.html#total_5Fbytes">command_t</a><li>ts
: <a class="el" href="classSocketEngine.html#ts">SocketEngine</a><li>type
: <a class="el" href="classConnectClass.html#type">ConnectClass</a>, <a class="el" href="classExtMode.html#type">ExtMode</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x75.html b/docs/module-doc/functions_0x75.html
index c1c6931dd..9b7b71bf8 100644
--- a/docs/module-doc/functions_0x75.html
+++ b/docs/module-doc/functions_0x75.html
@@ -20,7 +20,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classcommand__t.html#use_5Fcount">command_t</a><li>userrec()
: <a class="el" href="classuserrec.html#userrec_28_29">userrec</a><li>UserToPseudo()
: <a class="el" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x76.html b/docs/module-doc/functions_0x76.html
index 31fec288f..0c2ff4e67 100644
--- a/docs/module-doc/functions_0x76.html
+++ b/docs/module-doc/functions_0x76.html
@@ -15,7 +15,7 @@ Here is a list of all class members with links to the classes they belong to:
<li>Verify()
: <a class="el" href="classConfigReader.html#Verify_28_29">ConfigReader</a><li>Version()
: <a class="el" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">Version</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x77.html b/docs/module-doc/functions_0x77.html
index 6ca8111cf..d6efa6441 100644
--- a/docs/module-doc/functions_0x77.html
+++ b/docs/module-doc/functions_0x77.html
@@ -16,7 +16,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classSocketEngine.html#Wait_28std_3A_3Avector_3C_20int_20_3E_20_26fdlist_29">SocketEngine</a><li>Write()
: <a class="el" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">InspSocket</a><li>WriteError
: <a class="el" href="classuserrec.html#WriteError">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_0x7e.html b/docs/module-doc/functions_0x7e.html
index db3305a53..2ba9f41ca 100644
--- a/docs/module-doc/functions_0x7e.html
+++ b/docs/module-doc/functions_0x7e.html
@@ -27,7 +27,7 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classSocketEngine.html#_7ESocketEngine_28_29">SocketEngine</a><li>~ucrec()
: <a class="el" href="classucrec.html#_7Eucrec_28_29">ucrec</a><li>~userrec()
: <a class="el" href="classuserrec.html#_7Euserrec_28_29">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func.html b/docs/module-doc/functions_func.html
index ad0b484df..251b34177 100644
--- a/docs/module-doc/functions_func.html
+++ b/docs/module-doc/functions_func.html
@@ -27,7 +27,7 @@
: <a class="el" href="classuserrec.html#AddWriteBuf_28std_3A_3Astring_20data_29">userrec</a><li>AddZLine()
: <a class="el" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">Server</a><li>Admin()
: <a class="el" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">Admin</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x62.html b/docs/module-doc/functions_func_0x62.html
index c30d20d1c..9c96c00ec 100644
--- a/docs/module-doc/functions_func_0x62.html
+++ b/docs/module-doc/functions_func_0x62.html
@@ -15,7 +15,7 @@
<li>BoolSet()
: <a class="el" href="classBoolSet.html#BoolSet_28char_20bitmask_29">BoolSet</a><li>BufferIsReady()
: <a class="el" href="classuserrec.html#BufferIsReady_28_29">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x63.html b/docs/module-doc/functions_func_0x63.html
index 640cc3cf5..fa45ea0f6 100644
--- a/docs/module-doc/functions_func_0x63.html
+++ b/docs/module-doc/functions_func_0x63.html
@@ -35,7 +35,7 @@
: <a class="el" href="classconnection.html#connection_28_29">connection</a><li>CountUsers()
: <a class="el" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">Server</a><li>CreateModule()
: <a class="el" href="classModuleFactory.html#CreateModule_28Server_20_2AMe_29_3D_30">ModuleFactory</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x64.html b/docs/module-doc/functions_func_0x64.html
index 2ab41542c..5f00c56df 100644
--- a/docs/module-doc/functions_func_0x64.html
+++ b/docs/module-doc/functions_func_0x64.html
@@ -37,7 +37,7 @@
: <a class="el" href="classDNS.html#dns_5Fntoa_34_5Fr_28const_20in_5Faddr_20_2Aconst_20ip_29">DNS</a><li>dns_ntoa4_s()
: <a class="el" href="classDNS.html#dns_5Fntoa_34_5Fs_28const_20in_5Faddr_20_2Aconst_20ip_2C_20char_20_2Aconst_20result_29">DNS</a><li>DumpErrors()
: <a class="el" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">ConfigReader</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x65.html b/docs/module-doc/functions_func_0x65.html
index e23bdecfb..840ec03ea 100644
--- a/docs/module-doc/functions_func_0x65.html
+++ b/docs/module-doc/functions_func_0x65.html
@@ -22,7 +22,7 @@
: <a class="el" href="classFileReader.html#Exists_28_29">FileReader</a><li>Extend()
: <a class="el" href="classExtensible.html#Extend_28std_3A_3Astring_20key_2C_20char_20_2Ap_29">Extensible</a><li>ExtMode()
: <a class="el" href="classExtMode.html#ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29">ExtMode</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x66.html b/docs/module-doc/functions_func_0x66.html
index 0e2d42193..4e4b0f6a9 100644
--- a/docs/module-doc/functions_func_0x66.html
+++ b/docs/module-doc/functions_func_0x66.html
@@ -23,7 +23,7 @@
: <a class="el" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">Server</a><li>FlushWriteBuf()
: <a class="el" href="classuserrec.html#FlushWriteBuf_28_29">userrec</a><li>ForwardLookup()
: <a class="el" href="classDNS.html#ForwardLookup_28std_3A_3Astring_20host_29">DNS</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x67.html b/docs/module-doc/functions_func_0x67.html
index e1f310d6b..76ab5f268 100644
--- a/docs/module-doc/functions_func_0x67.html
+++ b/docs/module-doc/functions_func_0x67.html
@@ -15,7 +15,8 @@
<li>Get()
: <a class="el" href="classBoolSet.html#Get_28int_20number_29">BoolSet</a><li>GetAdmin()
: <a class="el" href="classServer.html#GetAdmin_28_29">Server</a><li>GetBuffer()
-: <a class="el" href="classuserrec.html#GetBuffer_28_29">userrec</a><li>GetData()
+: <a class="el" href="classuserrec.html#GetBuffer_28_29">userrec</a><li>GetConfig()
+: <a class="el" href="classServer.html#GetConfig_28_29">Server</a><li>GetData()
: <a class="el" href="classEvent.html#GetData_28_29">Event</a>, <a class="el" href="classRequest.html#GetData_28_29">Request</a><li>GetDest()
: <a class="el" href="classRequest.html#GetDest_28_29">Request</a><li>GetError()
: <a class="el" href="classConfigReader.html#GetError_28_29">ConfigReader</a><li>GetEventID()
@@ -43,7 +44,7 @@
: <a class="el" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">Server</a>, <a class="el" href="classchanrec.html#GetUsers_28_29">chanrec</a><li>GetVersion()
: <a class="el" href="classModule.html#GetVersion_28_29">Module</a><li>GetWriteError()
: <a class="el" href="classuserrec.html#GetWriteError_28_29">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x68.html b/docs/module-doc/functions_func_0x68.html
index 82953a94a..957813b80 100644
--- a/docs/module-doc/functions_func_0x68.html
+++ b/docs/module-doc/functions_func_0x68.html
@@ -16,7 +16,7 @@
: <a class="el" href="classuserrec.html#HasPermission_28char_20_2Acommand_29">userrec</a><li>HasResult()
: <a class="el" href="classDNS.html#HasResult_28int_20fd_29">DNS</a><li>HostItem()
: <a class="el" href="classHostItem.html#HostItem_28_29">HostItem</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x69.html b/docs/module-doc/functions_func_0x69.html
index f7b844dc7..29bf2dd4b 100644
--- a/docs/module-doc/functions_func_0x69.html
+++ b/docs/module-doc/functions_func_0x69.html
@@ -23,7 +23,7 @@
: <a class="el" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">Server</a><li>IsValidMask()
: <a class="el" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">Server</a><li>IsValidModuleCommand()
: <a class="el" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x6a.html b/docs/module-doc/functions_func_0x6a.html
index 2a881d52f..973fa4e50 100644
--- a/docs/module-doc/functions_func_0x6a.html
+++ b/docs/module-doc/functions_func_0x6a.html
@@ -14,7 +14,7 @@
<h3><a class="anchor" name="index_j">- j -</a></h3><ul>
<li>JoinUserToChannel()
: <a class="el" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x6c.html b/docs/module-doc/functions_func_0x6c.html
index 1e3cd2bf6..44f16456a 100644
--- a/docs/module-doc/functions_func_0x6c.html
+++ b/docs/module-doc/functions_func_0x6c.html
@@ -17,7 +17,7 @@
: <a class="el" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">FileReader</a><li>Log()
: <a class="el" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Server</a><li>lt()
: <a class="el" href="structirc_1_1irc__char__traits.html#lt_28char_20c_31st_2C_20char_20c_32nd_29">irc::irc_char_traits</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x6d.html b/docs/module-doc/functions_func_0x6d.html
index 35a36040a..82ce85721 100644
--- a/docs/module-doc/functions_func_0x6d.html
+++ b/docs/module-doc/functions_func_0x6d.html
@@ -16,7 +16,7 @@
: <a class="el" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">Server</a><li>Module()
: <a class="el" href="classModule.html#Module_28Server_20_2AMe_29">Module</a><li>ModuleFactory()
: <a class="el" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x6e.html b/docs/module-doc/functions_func_0x6e.html
index 79765436c..b71ef73cf 100644
--- a/docs/module-doc/functions_func_0x6e.html
+++ b/docs/module-doc/functions_func_0x6e.html
@@ -14,7 +14,7 @@
<h3><a class="anchor" name="index_n">- n -</a></h3><ul>
<li>ne()
: <a class="el" href="structirc_1_1irc__char__traits.html#ne_28char_20c_31st_2C_20char_20c_32nd_29">irc::irc_char_traits</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x6f.html b/docs/module-doc/functions_func_0x6f.html
index 55b1e196d..1aa4c4439 100644
--- a/docs/module-doc/functions_func_0x6f.html
+++ b/docs/module-doc/functions_func_0x6f.html
@@ -100,7 +100,7 @@
: <a class="el" href="classBoolSet.html#operator_3D_28BoolSet_20other_29">BoolSet</a><li>operator==()
: <a class="el" href="classBoolSet.html#operator_3D_3D_28BoolSet_20other_29">BoolSet</a><li>operator|()
: <a class="el" href="classBoolSet.html#operator_7C_28BoolSet_20other_29">BoolSet</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x70.html b/docs/module-doc/functions_func_0x70.html
index e955bc3c0..a41d0b8dc 100644
--- a/docs/module-doc/functions_func_0x70.html
+++ b/docs/module-doc/functions_func_0x70.html
@@ -18,7 +18,7 @@
: <a class="el" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">Module</a><li>ProtoSendMode()
: <a class="el" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">Module</a><li>PseudoToUser()
: <a class="el" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x71.html b/docs/module-doc/functions_func_0x71.html
index 71a14778e..25bfe62b2 100644
--- a/docs/module-doc/functions_func_0x71.html
+++ b/docs/module-doc/functions_func_0x71.html
@@ -14,7 +14,7 @@
<h3><a class="anchor" name="index_q">- q -</a></h3><ul>
<li>QuitUser()
: <a class="el" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x72.html b/docs/module-doc/functions_func_0x72.html
index ae30a71bb..a2a774d06 100644
--- a/docs/module-doc/functions_func_0x72.html
+++ b/docs/module-doc/functions_func_0x72.html
@@ -23,7 +23,7 @@
: <a class="el" href="classuserrec.html#RemoveInvite_28char_20_2Achannel_29">userrec</a><li>Request()
: <a class="el" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request</a><li>ReverseLookup()
: <a class="el" href="classDNS.html#ReverseLookup_28std_3A_3Astring_20ip_29">DNS</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x73.html b/docs/module-doc/functions_func_0x73.html
index d8411a688..d0163e702 100644
--- a/docs/module-doc/functions_func_0x73.html
+++ b/docs/module-doc/functions_func_0x73.html
@@ -34,7 +34,7 @@
: <a class="el" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">userrec</a><li>Shrink()
: <a class="el" href="classExtensible.html#Shrink_28std_3A_3Astring_20key_29">Extensible</a><li>SocketEngine()
: <a class="el" href="classSocketEngine.html#SocketEngine_28_29">SocketEngine</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x74.html b/docs/module-doc/functions_func_0x74.html
index e6e95fd87..02ca5bfba 100644
--- a/docs/module-doc/functions_func_0x74.html
+++ b/docs/module-doc/functions_func_0x74.html
@@ -14,7 +14,7 @@
<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
<li>Timeout()
: <a class="el" href="classInspSocket.html#Timeout_28time_5Ft_20current_29">InspSocket</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x75.html b/docs/module-doc/functions_func_0x75.html
index e58b673d0..3c34d3db5 100644
--- a/docs/module-doc/functions_func_0x75.html
+++ b/docs/module-doc/functions_func_0x75.html
@@ -17,7 +17,7 @@
: <a class="el" href="classBoolSet.html#Unset_28int_20number_29">BoolSet</a><li>userrec()
: <a class="el" href="classuserrec.html#userrec_28_29">userrec</a><li>UserToPseudo()
: <a class="el" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x76.html b/docs/module-doc/functions_func_0x76.html
index 6c1009524..252461733 100644
--- a/docs/module-doc/functions_func_0x76.html
+++ b/docs/module-doc/functions_func_0x76.html
@@ -15,7 +15,7 @@
<li>Verify()
: <a class="el" href="classConfigReader.html#Verify_28_29">ConfigReader</a><li>Version()
: <a class="el" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">Version</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x77.html b/docs/module-doc/functions_func_0x77.html
index 057b8a056..9e83806e4 100644
--- a/docs/module-doc/functions_func_0x77.html
+++ b/docs/module-doc/functions_func_0x77.html
@@ -15,7 +15,7 @@
<li>Wait()
: <a class="el" href="classSocketEngine.html#Wait_28std_3A_3Avector_3C_20int_20_3E_20_26fdlist_29">SocketEngine</a><li>Write()
: <a class="el" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">InspSocket</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_func_0x7e.html b/docs/module-doc/functions_func_0x7e.html
index a5df81d15..6dea30f34 100644
--- a/docs/module-doc/functions_func_0x7e.html
+++ b/docs/module-doc/functions_func_0x7e.html
@@ -27,7 +27,7 @@
: <a class="el" href="classSocketEngine.html#_7ESocketEngine_28_29">SocketEngine</a><li>~ucrec()
: <a class="el" href="classucrec.html#_7Eucrec_28_29">ucrec</a><li>~userrec()
: <a class="el" href="classuserrec.html#_7Euserrec_28_29">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/functions_vars.html b/docs/module-doc/functions_vars.html
index 9fb59da5d..4253b3c55 100644
--- a/docs/module-doc/functions_vars.html
+++ b/docs/module-doc/functions_vars.html
@@ -162,9 +162,9 @@
: <a class="el" href="classuserrec.html#reset_5Fdue">userrec</a><li>restartpass
: <a class="el" href="classServerConfig.html#restartpass_5BMAXBUF_5D">ServerConfig</a><li>result
: <a class="el" href="classDNS.html#result">DNS</a><li>Revision
-: <a class="el" href="classVersion.html#Revision">Version</a><li>rules
-: <a class="el" href="classServerConfig.html#rules_5BMAXBUF_5D">ServerConfig</a><li>RULES
-: <a class="el" href="classServerConfig.html#RULES">ServerConfig</a></ul>
+: <a class="el" href="classVersion.html#Revision">Version</a><li>RULES
+: <a class="el" href="classServerConfig.html#RULES">ServerConfig</a><li>rules
+: <a class="el" href="classServerConfig.html#rules_5BMAXBUF_5D">ServerConfig</a></ul>
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
<li>sendq
: <a class="el" href="classuserrec.html#sendq">userrec</a><li>sendqmax
@@ -198,7 +198,7 @@
<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
<li>WriteError
: <a class="el" href="classuserrec.html#WriteError">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals.html b/docs/module-doc/globals.html
index 32ed3bd7b..71b12d781 100644
--- a/docs/module-doc/globals.html
+++ b/docs/module-doc/globals.html
@@ -39,7 +39,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="xline_8h.html#apply_5Flines_28const_20int_20What_29">xline.h</a><li>APPLY_QLINES
: <a class="el" href="xline_8h.html#APPLY_5FQLINES">xline.h</a><li>APPLY_ZLINES
: <a class="el" href="xline_8h.html#APPLY_5FZLINES">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x62.html b/docs/module-doc/globals_0x62.html
index 426e8c622..b5059fd27 100644
--- a/docs/module-doc/globals_0x62.html
+++ b/docs/module-doc/globals_0x62.html
@@ -17,7 +17,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="inspircd__io_8h.html#BindSocket_28int_20sockfd_2C_20struct_20sockaddr_5Fin_20client_2C_20struct_20sockaddr_5Fin_20server_2C_20int_20port_2C_20char_20_2Aaddr_29">inspircd_io.h</a><li>Blocking()
: <a class="el" href="message_8h.html#Blocking_28int_20s_29">message.h</a><li>boundPortCount
: <a class="el" href="socket_8cpp.html#boundPortCount">socket.cpp</a>, <a class="el" href="modules_8cpp.html#boundPortCount">modules.cpp</a>, <a class="el" href="channels_8cpp.html#boundPortCount">channels.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x63.html b/docs/module-doc/globals_0x63.html
index d7d0a80ff..004f8c42b 100644
--- a/docs/module-doc/globals_0x63.html
+++ b/docs/module-doc/globals_0x63.html
@@ -47,7 +47,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">modules.h</a><li>cstatus()
: <a class="el" href="message_8h.html#cstatus_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">message.h</a><li>custom_mode_params
: <a class="el" href="channels_8cpp.html#custom_5Fmode_5Fparams">channels.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x64.html b/docs/module-doc/globals_0x64.html
index 2920aa66c..8d2cd301a 100644
--- a/docs/module-doc/globals_0x64.html
+++ b/docs/module-doc/globals_0x64.html
@@ -25,7 +25,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">modules.cpp</a><li>DoBackgroundUserStuff()
: <a class="el" href="userprocess_8h.html#DoBackgroundUserStuff_28time_5Ft_20TIME_29">userprocess.h</a><li>duration()
: <a class="el" href="commands_8h.html#duration_28const_20char_20_2Astr_29">commands.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x65.html b/docs/module-doc/globals_0x65.html
index 3a2cf9570..191696224 100644
--- a/docs/module-doc/globals_0x65.html
+++ b/docs/module-doc/globals_0x65.html
@@ -20,7 +20,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="xline_8h.html#expire_5Flines_28_29">xline.h</a><li>ExtModeList
: <a class="el" href="typedefs_8h.html#ExtModeList">typedefs.h</a><li>ExtModeListIter
: <a class="el" href="typedefs_8h.html#ExtModeListIter">typedefs.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x66.html b/docs/module-doc/globals_0x66.html
index cb4013876..d0eae47b3 100644
--- a/docs/module-doc/globals_0x66.html
+++ b/docs/module-doc/globals_0x66.html
@@ -20,7 +20,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="inspircd__io_8h.html#FileExists_28const_20char_20_2Afile_29">inspircd_io.h</a><li>FOREACH_MOD
: <a class="el" href="modules_8h.html#FOREACH_5FMOD">modules.h</a><li>FOREACH_RESULT
: <a class="el" href="modules_8h.html#FOREACH_5FRESULT_28x_29">modules.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x67.html b/docs/module-doc/globals_0x67.html
index 388bdfb1b..263e5e63e 100644
--- a/docs/module-doc/globals_0x67.html
+++ b/docs/module-doc/globals_0x67.html
@@ -17,7 +17,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="mode_8h.html#give_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>give_voice()
: <a class="el" href="mode_8h.html#give_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>gline_set_creation_time()
: <a class="el" href="xline_8h.html#gline_5Fset_5Fcreation_5Ftime_28char_20_2Ahost_2C_20time_5Ft_20create_5Ftime_29">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x68.html b/docs/module-doc/globals_0x68.html
index daa1712b6..72535bc39 100644
--- a/docs/module-doc/globals_0x68.html
+++ b/docs/module-doc/globals_0x68.html
@@ -67,7 +67,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="commands_8h.html#handle_5Fzline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>has_channel()
: <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">message.h</a><li>hasumode()
: <a class="el" href="message_8h.html#hasumode_28userrec_20_2Auser_2C_20char_20mode_29">message.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x69.html b/docs/module-doc/globals_0x69.html
index da6ab59dc..0e570fca0 100644
--- a/docs/module-doc/globals_0x69.html
+++ b/docs/module-doc/globals_0x69.html
@@ -31,7 +31,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">commands.h</a><li>isident()
: <a class="el" href="message_8h.html#isident_28const_20char_20_2An_29">message.h</a><li>isnick()
: <a class="el" href="message_8h.html#isnick_28const_20char_20_2An_29">message.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x6c.html b/docs/module-doc/globals_0x6c.html
index 0af135f9c..022ae2629 100644
--- a/docs/module-doc/globals_0x6c.html
+++ b/docs/module-doc/globals_0x6c.html
@@ -14,7 +14,7 @@ Here is a list of all file members with links to the files they belong to:
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>LoadAllModules()
: <a class="el" href="userprocess_8h.html#LoadAllModules_28_29">userprocess.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x6d.html b/docs/module-doc/globals_0x6d.html
index 55a3cc39f..cfbde6472 100644
--- a/docs/module-doc/globals_0x6d.html
+++ b/docs/module-doc/globals_0x6d.html
@@ -33,7 +33,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="modules_8h.html#MT_5FCHANNEL">modules.h</a><li>MT_CLIENT
: <a class="el" href="modules_8h.html#MT_5FCLIENT">modules.h</a><li>MT_SERVER
: <a class="el" href="modules_8h.html#MT_5FSERVER">modules.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x6e.html b/docs/module-doc/globals_0x6e.html
index bda58d3d6..24808a7ea 100644
--- a/docs/module-doc/globals_0x6e.html
+++ b/docs/module-doc/globals_0x6e.html
@@ -16,7 +16,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="message_8h.html#NonBlocking_28int_20s_29">message.h</a><li>NONE
: <a class="el" href="modules_8h.html#NONE">modules.h</a>, <a class="el" href="inspircd__io_8h.html#NONE">inspircd_io.h</a><li>nspace
: <a class="el" href="hashcomp_8h.html#nspace">hashcomp.h</a>, <a class="el" href="channels_8cpp.html#nspace">channels.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x6f.html b/docs/module-doc/globals_0x6f.html
index 82748c8bb..61c4a5c72 100644
--- a/docs/module-doc/globals_0x6f.html
+++ b/docs/module-doc/globals_0x6f.html
@@ -16,7 +16,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="userprocess_8h.html#OpenLog_28char_20_2A_2Aargv_2C_20int_20argc_29">userprocess.h</a><li>openSockfd
: <a class="el" href="socket_8cpp.html#openSockfd_5BMAXSOCKS_5D">socket.cpp</a><li>OpenTCPSocket()
: <a class="el" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">inspircd_io.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x70.html b/docs/module-doc/globals_0x70.html
index 3fe8470ee..07b308c06 100644
--- a/docs/module-doc/globals_0x70.html
+++ b/docs/module-doc/globals_0x70.html
@@ -18,7 +18,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="mode_8h.html#process_5Fmodes_28char_20_2A_2Aparameters_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20int_20status_2C_20int_20pcnt_2C_20bool_20servermode_2C_20bool_20silent_2C_20bool_20local_29">mode.h</a><li>process_module_umode()
: <a class="el" href="mode_8h.html#process_5Fmodule_5Fumode_28char_20umode_2C_20userrec_20_2Asource_2C_20void_20_2Adest_2C_20bool_20adding_29">mode.h</a><li>ProcessUser()
: <a class="el" href="userprocess_8h.html#ProcessUser_28userrec_20_2Acu_29">userprocess.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x71.html b/docs/module-doc/globals_0x71.html
index 80788e913..5ef20bf47 100644
--- a/docs/module-doc/globals_0x71.html
+++ b/docs/module-doc/globals_0x71.html
@@ -15,7 +15,7 @@ Here is a list of all file members with links to the files they belong to:
<li>qline_make_global()
: <a class="el" href="xline_8h.html#qline_5Fmake_5Fglobal_28const_20char_20_2Anickname_29">xline.h</a><li>qline_set_creation_time()
: <a class="el" href="xline_8h.html#qline_5Fset_5Fcreation_5Ftime_28char_20_2Anick_2C_20time_5Ft_20create_5Ftime_29">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x72.html b/docs/module-doc/globals_0x72.html
index 2b5acd8d5..a420f0540 100644
--- a/docs/module-doc/globals_0x72.html
+++ b/docs/module-doc/globals_0x72.html
@@ -15,7 +15,7 @@ Here is a list of all file members with links to the files they belong to:
<li>read_xline_defaults()
: <a class="el" href="xline_8h.html#read_5Fxline_5Fdefaults_28_29">xline.h</a><li>ref
: <a class="el" href="socketengine_8cpp.html#ref_5B_36_35_35_33_35_5D">socketengine.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x73.html b/docs/module-doc/globals_0x73.html
index 701b40539..1c37b1e40 100644
--- a/docs/module-doc/globals_0x73.html
+++ b/docs/module-doc/globals_0x73.html
@@ -32,7 +32,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="users_8h.html#STATUS_5FVOICE">users.h</a><li>string
: <a class="el" href="namespaceirc.html#string">hashcomp.h</a><li>string_list
: <a class="el" href="modules_8h.html#string_5Flist">modules.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x74.html b/docs/module-doc/globals_0x74.html
index c5928f80e..be2b2793f 100644
--- a/docs/module-doc/globals_0x74.html
+++ b/docs/module-doc/globals_0x74.html
@@ -20,7 +20,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="message_8h.html#TidyBan_28char_20_2Aban_29">message.h</a><li>tidystring()
: <a class="el" href="message_8h.html#tidystring_28char_20_2Astr_29">message.h</a><li>TIME
: <a class="el" href="users_8cpp.html#TIME">users.cpp</a>, <a class="el" href="socket_8cpp.html#TIME">socket.cpp</a>, <a class="el" href="modules_8cpp.html#TIME">modules.cpp</a>, <a class="el" href="channels_8cpp.html#TIME">channels.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x75.html b/docs/module-doc/globals_0x75.html
index bd8905e78..72817cac7 100644
--- a/docs/module-doc/globals_0x75.html
+++ b/docs/module-doc/globals_0x75.html
@@ -19,7 +19,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="channels_8h.html#UCMODE_5FPROTECT">channels.h</a><li>UCMODE_VOICE
: <a class="el" href="channels_8h.html#UCMODE_5FVOICE">channels.h</a><li>user_hash
: <a class="el" href="typedefs_8h.html#user_5Fhash">typedefs.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x76.html b/docs/module-doc/globals_0x76.html
index 61ed3360c..885147170 100644
--- a/docs/module-doc/globals_0x76.html
+++ b/docs/module-doc/globals_0x76.html
@@ -19,7 +19,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="modules_8h.html#VF_5FSTATIC">modules.h</a><li>VF_VENDOR
: <a class="el" href="modules_8h.html#VF_5FVENDOR">modules.h</a><li>VoidPointer
: <a class="el" href="base_8h.html#VoidPointer">base.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x77.html b/docs/module-doc/globals_0x77.html
index 5b03af87a..a4f5cb61f 100644
--- a/docs/module-doc/globals_0x77.html
+++ b/docs/module-doc/globals_0x77.html
@@ -18,7 +18,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="modules_8cpp.html#WHOWAS_5FMAX">modules.cpp</a>, <a class="el" href="channels_8cpp.html#WHOWAS_5FMAX">channels.cpp</a><li>WHOWAS_STALE
: <a class="el" href="modules_8cpp.html#WHOWAS_5FSTALE">modules.cpp</a>, <a class="el" href="channels_8cpp.html#WHOWAS_5FSTALE">channels.cpp</a><li>WritePID()
: <a class="el" href="inspircd__io_8h.html#WritePID_28std_3A_3Astring_20filename_29">inspircd_io.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x78.html b/docs/module-doc/globals_0x78.html
index b9d5f36c7..a3a35f44b 100644
--- a/docs/module-doc/globals_0x78.html
+++ b/docs/module-doc/globals_0x78.html
@@ -19,7 +19,7 @@ Here is a list of all file members with links to the files they belong to:
: <a class="el" href="socketengine_8h.html#X_5FESTAB_5FMODULE">socketengine.h</a><li>X_LISTEN
: <a class="el" href="socketengine_8h.html#X_5FLISTEN">socketengine.h</a><li>X_READBIT
: <a class="el" href="socketengine_8h.html#X_5FREADBIT">socketengine.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_0x7a.html b/docs/module-doc/globals_0x7a.html
index d1c40cf44..2162b0839 100644
--- a/docs/module-doc/globals_0x7a.html
+++ b/docs/module-doc/globals_0x7a.html
@@ -15,7 +15,7 @@ Here is a list of all file members with links to the files they belong to:
<li>zline_make_global()
: <a class="el" href="xline_8h.html#zline_5Fmake_5Fglobal_28const_20char_20_2Aipaddr_29">xline.h</a><li>zline_set_creation_time()
: <a class="el" href="xline_8h.html#zline_5Fset_5Fcreation_5Ftime_28char_20_2Aip_2C_20time_5Ft_20create_5Ftime_29">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_defs.html b/docs/module-doc/globals_defs.html
index faa848260..c1f6f95cf 100644
--- a/docs/module-doc/globals_defs.html
+++ b/docs/module-doc/globals_defs.html
@@ -78,7 +78,7 @@
: <a class="el" href="modules_8h.html#VF_5FSERVICEPROVIDER">modules.h</a><li>VF_STATIC
: <a class="el" href="modules_8h.html#VF_5FSTATIC">modules.h</a><li>VF_VENDOR
: <a class="el" href="modules_8h.html#VF_5FVENDOR">modules.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_enum.html b/docs/module-doc/globals_enum.html
index 72f29fe7c..aa397a6e2 100644
--- a/docs/module-doc/globals_enum.html
+++ b/docs/module-doc/globals_enum.html
@@ -12,7 +12,7 @@
<li>InspSocketError
: <a class="el" href="socket_8h.html#InspSocketError">socket.h</a><li>InspSocketState
: <a class="el" href="socket_8h.html#InspSocketState">socket.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_eval.html b/docs/module-doc/globals_eval.html
index 1b9879ba7..f066ce86e 100644
--- a/docs/module-doc/globals_eval.html
+++ b/docs/module-doc/globals_eval.html
@@ -19,7 +19,7 @@
: <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FTIMEOUT">socket.h</a><li>I_ERROR
: <a class="el" href="socket_8h.html#InspSocketStateI_5FERROR">socket.h</a><li>I_LISTENING
: <a class="el" href="socket_8h.html#InspSocketStateI_5FLISTENING">socket.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_func.html b/docs/module-doc/globals_func.html
index cf9bb3501..630b2d087 100644
--- a/docs/module-doc/globals_func.html
+++ b/docs/module-doc/globals_func.html
@@ -190,7 +190,7 @@
<li>zline_make_global()
: <a class="el" href="xline_8h.html#zline_5Fmake_5Fglobal_28const_20char_20_2Aipaddr_29">xline.h</a><li>zline_set_creation_time()
: <a class="el" href="xline_8h.html#zline_5Fset_5Fcreation_5Ftime_28char_20_2Aip_2C_20time_5Ft_20create_5Ftime_29">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_type.html b/docs/module-doc/globals_type.html
index 8bea88b90..8c2f6cab1 100644
--- a/docs/module-doc/globals_type.html
+++ b/docs/module-doc/globals_type.html
@@ -29,7 +29,7 @@
: <a class="el" href="typedefs_8h.html#user_5Fhash">typedefs.h</a><li>VoidPointer
: <a class="el" href="base_8h.html#VoidPointer">base.h</a><li>whowas_hash
: <a class="el" href="typedefs_8h.html#whowas_5Fhash">typedefs.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/globals_vars.html b/docs/module-doc/globals_vars.html
index bd909da15..6fe946e60 100644
--- a/docs/module-doc/globals_vars.html
+++ b/docs/module-doc/globals_vars.html
@@ -76,7 +76,7 @@
: <a class="el" href="socketengine_8h.html#X_5FESTAB_5FMODULE">socketengine.h</a><li>X_LISTEN
: <a class="el" href="socketengine_8h.html#X_5FLISTEN">socketengine.h</a><li>X_READBIT
: <a class="el" href="socketengine_8h.html#X_5FREADBIT">socketengine.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/graph_legend.html b/docs/module-doc/graph_legend.html
index 3737e5375..d1df49f64 100644
--- a/docs/module-doc/graph_legend.html
+++ b/docs/module-doc/graph_legend.html
@@ -67,7 +67,7 @@ A purple dashed arrow is used if a class is contained or used by another class.
<li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:53 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/hashcomp_8h-source.html b/docs/module-doc/hashcomp_8h-source.html
index aa9b29253..1e0fa4622 100644
--- a/docs/module-doc/hashcomp_8h-source.html
+++ b/docs/module-doc/hashcomp_8h-source.html
@@ -109,7 +109,7 @@
<a name="l00130"></a>00130 }
<a name="l00131"></a>00131
<a name="l00132"></a>00132 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/hashcomp_8h.html b/docs/module-doc/hashcomp_8h.html
index 277bce791..8c1e6e7c3 100644
--- a/docs/module-doc/hashcomp_8h.html
+++ b/docs/module-doc/hashcomp_8h.html
@@ -78,7 +78,7 @@ This graph shows which files directly or indirectly include this file:<p><center
Definition at line <a class="el" href="hashcomp_8h-source.html#l00044">44</a> of file <a class="el" href="hashcomp_8h-source.html">hashcomp.h</a>. </td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:22 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/hierarchy.html b/docs/module-doc/hierarchy.html
index 2f41e34b2..dd52dc05e 100644
--- a/docs/module-doc/hierarchy.html
+++ b/docs/module-doc/hierarchy.html
@@ -67,7 +67,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
<li><a class="el" href="structirc_1_1StrHashComp.html">irc::StrHashComp</a>
<li><a class="el" href="classWhoWasUser.html">WhoWasUser</a>
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/inherits.html b/docs/module-doc/inherits.html
index 85f6f35c2..d9f95000c 100644
--- a/docs/module-doc/inherits.html
+++ b/docs/module-doc/inherits.html
@@ -89,7 +89,7 @@
<area href="classWhoWasUser.html" shape="rect" coords="8,7,112,33" alt="">
</map></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:38 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:53 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/inspircd__io_8h-source.html b/docs/module-doc/inspircd__io_8h-source.html
index 1d9d839b9..adb91f08c 100644
--- a/docs/module-doc/inspircd__io_8h-source.html
+++ b/docs/module-doc/inspircd__io_8h-source.html
@@ -11,7 +11,7 @@
<a name="l00002"></a>00002 <span class="comment"> * | Inspire Internet Relay Chat Daemon |</span>
<a name="l00003"></a>00003 <span class="comment"> * +------------------------------------+</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
-<a name="l00005"></a>00005 <span class="comment"> * Inspire is copyright (C) 2002-2004 ChatSpike-Dev.</span>
+<a name="l00005"></a>00005 <span class="comment"> * Inspire is copyright (C) 2002-2005 ChatSpike-Dev.</span>
<a name="l00006"></a>00006 <span class="comment"> * E-mail:</span>
<a name="l00007"></a>00007 <span class="comment"> * &lt;brain@chatspike.net&gt;</span>
<a name="l00008"></a>00008 <span class="comment"> * &lt;Craig@chatspike.net&gt;</span>
@@ -32,88 +32,122 @@
<a name="l00023"></a>00023 <span class="preprocessor">#include "inspircd.h"</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include "globals.h"</span>
<a name="l00025"></a>00025
-<a name="l00026"></a>00026 <span class="comment">// flags for use with log()</span>
-<a name="l00027"></a>00027
<a name="l00028"></a><a class="code" href="inspircd__io_8h.html#DEBUG">00028</a> <span class="preprocessor">#define DEBUG 10</span>
<a name="l00029"></a><a class="code" href="inspircd__io_8h.html#VERBOSE">00029</a> <span class="preprocessor"></span><span class="preprocessor">#define VERBOSE 20</span>
<a name="l00030"></a><a class="code" href="inspircd__io_8h.html#DEFAULT">00030</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT 30</span>
<a name="l00031"></a><a class="code" href="inspircd__io_8h.html#SPARSE">00031</a> <span class="preprocessor"></span><span class="preprocessor">#define SPARSE 40</span>
<a name="l00032"></a><a class="code" href="inspircd__io_8h.html#NONE">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define NONE 50</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span>
-<a name="l00034"></a><a class="code" href="classServerConfig.html">00034</a> <span class="keyword">class </span><a class="code" href="classServerConfig.html">ServerConfig</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-<a name="l00035"></a>00035 {
-<a name="l00036"></a>00036 <span class="keyword">private</span>:
-<a name="l00037"></a><a class="code" href="classServerConfig.html#include_5Fstack">00037</a> std::vector&lt;std::string&gt; <a class="code" href="classServerConfig.html#include_5Fstack">include_stack</a>;
-<a name="l00038"></a>00038 <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#fgets_5Fsafe_28char_20_2Abuffer_2C_20size_5Ft_20maxsize_2C_20FILE_20_2A_26file_29">fgets_safe</a>(<span class="keywordtype">char</span>* buffer, size_t maxsize, FILE* &amp;file);
-<a name="l00039"></a>00039 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServerConfig.html#ConfProcess_28char_20_2Abuffer_2C_20long_20linenumber_2C_20std_3A_3Astringstream_20_2Aerrorstream_2C_20bool_20_26error_2C_20std_3A_3Astring_20filename_29">ConfProcess</a>(<span class="keywordtype">char</span>* buffer, <span class="keywordtype">long</span> linenumber, std::stringstream* errorstream, <span class="keywordtype">bool</span> &amp;error, <a class="code" href="namespaceirc.html#string">std::string</a> filename);
-<a name="l00040"></a>00040
-<a name="l00041"></a>00041 <span class="keyword">public</span>:
-<a name="l00042"></a><a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">00042</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>[MAXBUF];
-<a name="l00043"></a><a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">00043</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>[MAXBUF];
-<a name="l00044"></a><a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">00044</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerDesc</a>[MAXBUF];
-<a name="l00045"></a><a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">00045</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">AdminName</a>[MAXBUF];
-<a name="l00046"></a><a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">00046</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">AdminEmail</a>[MAXBUF];
-<a name="l00047"></a><a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">00047</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">AdminNick</a>[MAXBUF];
-<a name="l00048"></a><a class="code" href="classServerConfig.html#diepass_5BMAXBUF_5D">00048</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#diepass_5BMAXBUF_5D">diepass</a>[MAXBUF];
-<a name="l00049"></a><a class="code" href="classServerConfig.html#restartpass_5BMAXBUF_5D">00049</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#restartpass_5BMAXBUF_5D">restartpass</a>[MAXBUF];
-<a name="l00050"></a><a class="code" href="classServerConfig.html#motd_5BMAXBUF_5D">00050</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#motd_5BMAXBUF_5D">motd</a>[MAXBUF];
-<a name="l00051"></a><a class="code" href="classServerConfig.html#rules_5BMAXBUF_5D">00051</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#rules_5BMAXBUF_5D">rules</a>[MAXBUF];
-<a name="l00052"></a><a class="code" href="classServerConfig.html#PrefixQuit_5BMAXBUF_5D">00052</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#PrefixQuit_5BMAXBUF_5D">PrefixQuit</a>[MAXBUF];
-<a name="l00053"></a><a class="code" href="classServerConfig.html#DieValue_5BMAXBUF_5D">00053</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#DieValue_5BMAXBUF_5D">DieValue</a>[MAXBUF];
-<a name="l00054"></a><a class="code" href="classServerConfig.html#DNSServer_5BMAXBUF_5D">00054</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#DNSServer_5BMAXBUF_5D">DNSServer</a>[MAXBUF];
-<a name="l00055"></a><a class="code" href="classServerConfig.html#DisabledCommands_5BMAXBUF_5D">00055</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#DisabledCommands_5BMAXBUF_5D">DisabledCommands</a>[MAXBUF];
-<a name="l00056"></a><a class="code" href="classServerConfig.html#ModPath_5B_31_30_32_34_5D">00056</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#ModPath_5B_31_30_32_34_5D">ModPath</a>[1024];
-<a name="l00057"></a><a class="code" href="classServerConfig.html#MyExecutable_5B_31_30_32_34_5D">00057</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#MyExecutable_5B_31_30_32_34_5D">MyExecutable</a>[1024];
-<a name="l00058"></a><a class="code" href="classServerConfig.html#log_5Ffile">00058</a> FILE *<a class="code" href="classServerConfig.html#log_5Ffile">log_file</a>;
-<a name="l00059"></a><a class="code" href="classServerConfig.html#nofork">00059</a> <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#nofork">nofork</a>;
-<a name="l00060"></a><a class="code" href="classServerConfig.html#unlimitcore">00060</a> <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#unlimitcore">unlimitcore</a>;
-<a name="l00061"></a><a class="code" href="classServerConfig.html#AllowHalfop">00061</a> <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#AllowHalfop">AllowHalfop</a>;
-<a name="l00062"></a><a class="code" href="classServerConfig.html#dns_5Ftimeout">00062</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#dns_5Ftimeout">dns_timeout</a>;
-<a name="l00063"></a><a class="code" href="classServerConfig.html#NetBufferSize">00063</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#NetBufferSize">NetBufferSize</a>; <span class="comment">// NetBufferSize used as the buffer size for all read() ops</span>
-<a name="l00064"></a><a class="code" href="classServerConfig.html#MaxConn">00064</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#MaxConn">MaxConn</a>; <span class="comment">// size of accept() backlog (128 by default on *BSD)</span>
-<a name="l00065"></a><a class="code" href="classServerConfig.html#SoftLimit">00065</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#SoftLimit">SoftLimit</a>;
-<a name="l00066"></a><a class="code" href="classServerConfig.html#MaxWhoResults">00066</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#MaxWhoResults">MaxWhoResults</a>;
-<a name="l00067"></a><a class="code" href="classServerConfig.html#debugging">00067</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#debugging">debugging</a>;
-<a name="l00068"></a><a class="code" href="classServerConfig.html#LogLevel">00068</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#LogLevel">LogLevel</a>;
-<a name="l00069"></a><a class="code" href="classServerConfig.html#DieDelay">00069</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#DieDelay">DieDelay</a>;
-<a name="l00070"></a><a class="code" href="classServerConfig.html#addrs_5BMAXBUF_5D_5B_32_35_35_5D">00070</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#addrs_5BMAXBUF_5D_5B_32_35_35_5D">addrs</a>[MAXBUF][255];
-<a name="l00071"></a><a class="code" href="classServerConfig.html#MOTD">00071</a> <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classServerConfig.html#MOTD">MOTD</a>;
-<a name="l00072"></a><a class="code" href="classServerConfig.html#RULES">00072</a> <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classServerConfig.html#RULES">RULES</a>;
-<a name="l00073"></a><a class="code" href="classServerConfig.html#PID_5B_31_30_32_34_5D">00073</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#PID_5B_31_30_32_34_5D">PID</a>[1024];
-<a name="l00074"></a><a class="code" href="classServerConfig.html#config_5Ff">00074</a> std::stringstream <a class="code" href="classServerConfig.html#config_5Ff">config_f</a>;
-<a name="l00075"></a><a class="code" href="classServerConfig.html#Classes">00075</a> <a class="code" href="users_8h.html#ClassVector">ClassVector</a> <a class="code" href="classServerConfig.html#Classes">Classes</a>;
-<a name="l00076"></a><a class="code" href="classServerConfig.html#module_5Fnames">00076</a> std::vector&lt;std::string&gt; <a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>;
-<a name="l00077"></a>00077
-<a name="l00078"></a>00078 <a class="code" href="classServerConfig.html#ServerConfig_28_29">ServerConfig</a>();
-<a name="l00079"></a>00079 <span class="keywordtype">void</span> <a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
-<a name="l00080"></a>00080 <span class="keywordtype">void</span> <a class="code" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a>(<span class="keywordtype">bool</span> bail, <a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00081"></a>00081 <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename, std::stringstream *target, std::stringstream* errorstream);
-<a name="l00082"></a>00082 <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="keywordtype">char</span>* tag, <span class="keywordtype">char</span>* var, <span class="keywordtype">int</span> index, <span class="keywordtype">char</span> *result, std::stringstream *config);
-<a name="l00083"></a>00083 <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(std::stringstream *<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>,<span class="keyword">const</span> <span class="keywordtype">char</span>* tag, <span class="keyword">const</span> <span class="keywordtype">char</span>* var, <span class="keywordtype">int</span> index, <span class="keywordtype">char</span> *result);
-<a name="l00084"></a>00084 <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ConfValueEnum_28char_20_2Atag_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValueEnum</a>(<span class="keywordtype">char</span>* tag,std::stringstream *config);
-<a name="l00085"></a>00085 <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(std::stringstream *<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>,<span class="keyword">const</span> <span class="keywordtype">char</span>* tag);
-<a name="l00086"></a>00086 <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(std::stringstream *config, <span class="keyword">const</span> <span class="keywordtype">char</span>* tag, <span class="keywordtype">int</span> index);
-<a name="l00087"></a>00087 };
-<a name="l00088"></a>00088
-<a name="l00089"></a>00089
-<a name="l00090"></a>00090 <span class="keywordtype">void</span> <a class="code" href="inspircd__io_8h.html#Exit_28int_29">Exit</a> (<span class="keywordtype">int</span>);
-<a name="l00091"></a>00091 <span class="keywordtype">void</span> <a class="code" href="inspircd__io_8h.html#Start_28void_29">Start</a> (<span class="keywordtype">void</span>);
-<a name="l00092"></a>00092 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#DaemonSeed_28void_29">DaemonSeed</a> (<span class="keywordtype">void</span>);
-<a name="l00093"></a>00093 <span class="keywordtype">bool</span> <a class="code" href="inspircd__io_8h.html#FileExists_28const_20char_20_2Afile_29">FileExists</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* file);
-<a name="l00094"></a>00094 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">OpenTCPSocket</a> (<span class="keywordtype">void</span>);
-<a name="l00095"></a>00095 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#BindSocket_28int_20sockfd_2C_20struct_20sockaddr_5Fin_20client_2C_20struct_20sockaddr_5Fin_20server_2C_20int_20port_2C_20char_20_2Aaddr_29">BindSocket</a> (<span class="keywordtype">int</span> sockfd, <span class="keyword">struct</span> sockaddr_in client, <span class="keyword">struct</span> sockaddr_in server, <span class="keywordtype">int</span> port, <span class="keywordtype">char</span>* addr);
-<a name="l00096"></a>00096
-<a name="l00097"></a>00097 <span class="comment">/*bool LoadConf(const char* filename, std::stringstream *target, std::stringstream* errorstream);</span>
-<a name="l00098"></a>00098 <span class="comment">int ConfValue(char* tag, char* var, int index, char *result, std::stringstream *config);</span>
-<a name="l00099"></a>00099 <span class="comment">int ReadConf(std::stringstream *config_f,const char* tag, const char* var, int index, char *result);</span>
-<a name="l00100"></a>00100 <span class="comment">int ConfValueEnum(char* tag,std::stringstream *config);</span>
-<a name="l00101"></a>00101 <span class="comment">int EnumConf(std::stringstream *config_f,const char* tag);</span>
-<a name="l00102"></a>00102 <span class="comment">int EnumValues(std::stringstream *config, const char* tag, int index);*/</span>
+<a name="l00039"></a><a class="code" href="classServerConfig.html">00039</a> <span class="keyword">class </span><a class="code" href="classServerConfig.html">ServerConfig</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l00040"></a>00040 {
+<a name="l00041"></a>00041 <span class="keyword">private</span>:
+<a name="l00047"></a><a class="code" href="classServerConfig.html#include_5Fstack">00047</a> std::vector&lt;std::string&gt; <a class="code" href="classServerConfig.html#include_5Fstack">include_stack</a>;
+<a name="l00048"></a>00048
+<a name="l00055"></a>00055 <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#fgets_5Fsafe_28char_20_2Abuffer_2C_20size_5Ft_20maxsize_2C_20FILE_20_2A_26file_29">fgets_safe</a>(<span class="keywordtype">char</span>* buffer, size_t maxsize, FILE* &amp;file);
+<a name="l00056"></a>00056
+<a name="l00061"></a>00061 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServerConfig.html#ConfProcess_28char_20_2Abuffer_2C_20long_20linenumber_2C_20std_3A_3Astringstream_20_2Aerrorstream_2C_20bool_20_26error_2C_20std_3A_3Astring_20filename_29">ConfProcess</a>(<span class="keywordtype">char</span>* buffer, <span class="keywordtype">long</span> linenumber, std::stringstream* errorstream, <span class="keywordtype">bool</span> &amp;error, <a class="code" href="namespaceirc.html#string">std::string</a> filename);
+<a name="l00062"></a>00062
+<a name="l00063"></a>00063 <span class="keyword">public</span>:
+<a name="l00064"></a>00064
+<a name="l00068"></a><a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">00068</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>[MAXBUF];
+<a name="l00069"></a>00069
+<a name="l00070"></a>00070 <span class="comment">/* Holds the network name the local server</span>
+<a name="l00071"></a>00071 <span class="comment"> * belongs to. This is an arbitary field defined</span>
+<a name="l00072"></a>00072 <span class="comment"> * by the administrator.</span>
+<a name="l00073"></a>00073 <span class="comment"> */</span>
+<a name="l00074"></a><a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">00074</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>[MAXBUF];
+<a name="l00075"></a>00075
+<a name="l00079"></a><a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">00079</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerDesc</a>[MAXBUF];
+<a name="l00080"></a>00080
+<a name="l00084"></a><a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">00084</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">AdminName</a>[MAXBUF];
+<a name="l00085"></a>00085
+<a name="l00089"></a><a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">00089</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">AdminEmail</a>[MAXBUF];
+<a name="l00090"></a>00090
+<a name="l00094"></a><a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">00094</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">AdminNick</a>[MAXBUF];
+<a name="l00095"></a>00095
+<a name="l00098"></a><a class="code" href="classServerConfig.html#diepass_5BMAXBUF_5D">00098</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#diepass_5BMAXBUF_5D">diepass</a>[MAXBUF];
+<a name="l00099"></a>00099
+<a name="l00102"></a><a class="code" href="classServerConfig.html#restartpass_5BMAXBUF_5D">00102</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#restartpass_5BMAXBUF_5D">restartpass</a>[MAXBUF];
<a name="l00103"></a>00103
-<a name="l00104"></a>00104 <span class="keywordtype">void</span> <a class="code" href="inspircd__io_8h.html#WritePID_28std_3A_3Astring_20filename_29">WritePID</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
-<a name="l00105"></a>00105
-<a name="l00106"></a>00106 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+<a name="l00107"></a><a class="code" href="classServerConfig.html#motd_5BMAXBUF_5D">00107</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#motd_5BMAXBUF_5D">motd</a>[MAXBUF];
+<a name="l00108"></a>00108
+<a name="l00112"></a><a class="code" href="classServerConfig.html#rules_5BMAXBUF_5D">00112</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#rules_5BMAXBUF_5D">rules</a>[MAXBUF];
+<a name="l00113"></a>00113
+<a name="l00116"></a><a class="code" href="classServerConfig.html#PrefixQuit_5BMAXBUF_5D">00116</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#PrefixQuit_5BMAXBUF_5D">PrefixQuit</a>[MAXBUF];
+<a name="l00117"></a>00117
+<a name="l00121"></a><a class="code" href="classServerConfig.html#DieValue_5BMAXBUF_5D">00121</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#DieValue_5BMAXBUF_5D">DieValue</a>[MAXBUF];
+<a name="l00122"></a>00122
+<a name="l00125"></a><a class="code" href="classServerConfig.html#DNSServer_5BMAXBUF_5D">00125</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#DNSServer_5BMAXBUF_5D">DNSServer</a>[MAXBUF];
+<a name="l00126"></a>00126
+<a name="l00131"></a><a class="code" href="classServerConfig.html#DisabledCommands_5BMAXBUF_5D">00131</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#DisabledCommands_5BMAXBUF_5D">DisabledCommands</a>[MAXBUF];
+<a name="l00132"></a>00132
+<a name="l00138"></a><a class="code" href="classServerConfig.html#ModPath_5B_31_30_32_34_5D">00138</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#ModPath_5B_31_30_32_34_5D">ModPath</a>[1024];
+<a name="l00139"></a>00139
+<a name="l00143"></a><a class="code" href="classServerConfig.html#MyExecutable_5B_31_30_32_34_5D">00143</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#MyExecutable_5B_31_30_32_34_5D">MyExecutable</a>[1024];
+<a name="l00144"></a>00144
+<a name="l00151"></a><a class="code" href="classServerConfig.html#log_5Ffile">00151</a> FILE *<a class="code" href="classServerConfig.html#log_5Ffile">log_file</a>;
+<a name="l00152"></a>00152
+<a name="l00158"></a><a class="code" href="classServerConfig.html#nofork">00158</a> <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#nofork">nofork</a>;
+<a name="l00159"></a>00159
+<a name="l00166"></a><a class="code" href="classServerConfig.html#unlimitcore">00166</a> <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#unlimitcore">unlimitcore</a>;
+<a name="l00167"></a>00167
+<a name="l00171"></a><a class="code" href="classServerConfig.html#AllowHalfop">00171</a> <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#AllowHalfop">AllowHalfop</a>;
+<a name="l00172"></a>00172
+<a name="l00176"></a><a class="code" href="classServerConfig.html#dns_5Ftimeout">00176</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#dns_5Ftimeout">dns_timeout</a>;
+<a name="l00177"></a>00177
+<a name="l00182"></a><a class="code" href="classServerConfig.html#NetBufferSize">00182</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#NetBufferSize">NetBufferSize</a>;
+<a name="l00183"></a>00183
+<a name="l00187"></a><a class="code" href="classServerConfig.html#MaxConn">00187</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#MaxConn">MaxConn</a>;
+<a name="l00188"></a>00188
+<a name="l00193"></a><a class="code" href="classServerConfig.html#SoftLimit">00193</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#SoftLimit">SoftLimit</a>;
+<a name="l00194"></a>00194
+<a name="l00198"></a><a class="code" href="classServerConfig.html#MaxWhoResults">00198</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#MaxWhoResults">MaxWhoResults</a>;
+<a name="l00199"></a>00199
+<a name="l00202"></a><a class="code" href="classServerConfig.html#debugging">00202</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#debugging">debugging</a>;
+<a name="l00203"></a>00203
+<a name="l00206"></a><a class="code" href="classServerConfig.html#LogLevel">00206</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#LogLevel">LogLevel</a>;
+<a name="l00207"></a>00207
+<a name="l00211"></a><a class="code" href="classServerConfig.html#DieDelay">00211</a> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#DieDelay">DieDelay</a>;
+<a name="l00212"></a>00212
+<a name="l00216"></a><a class="code" href="classServerConfig.html#addrs_5BMAXBUF_5D_5B_32_35_35_5D">00216</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#addrs_5BMAXBUF_5D_5B_32_35_35_5D">addrs</a>[MAXBUF][255];
+<a name="l00217"></a>00217
+<a name="l00220"></a><a class="code" href="classServerConfig.html#MOTD">00220</a> <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classServerConfig.html#MOTD">MOTD</a>;
+<a name="l00221"></a>00221
+<a name="l00224"></a><a class="code" href="classServerConfig.html#RULES">00224</a> <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classServerConfig.html#RULES">RULES</a>;
+<a name="l00225"></a>00225
+<a name="l00229"></a><a class="code" href="classServerConfig.html#PID_5B_31_30_32_34_5D">00229</a> <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#PID_5B_31_30_32_34_5D">PID</a>[1024];
+<a name="l00230"></a>00230
+<a name="l00238"></a><a class="code" href="classServerConfig.html#config_5Ff">00238</a> std::stringstream <a class="code" href="classServerConfig.html#config_5Ff">config_f</a>;
+<a name="l00239"></a>00239
+<a name="l00242"></a><a class="code" href="classServerConfig.html#Classes">00242</a> <a class="code" href="users_8h.html#ClassVector">ClassVector</a> <a class="code" href="classServerConfig.html#Classes">Classes</a>;
+<a name="l00243"></a>00243
+<a name="l00247"></a><a class="code" href="classServerConfig.html#module_5Fnames">00247</a> std::vector&lt;std::string&gt; <a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>;
+<a name="l00248"></a>00248
+<a name="l00249"></a>00249 <a class="code" href="classServerConfig.html#ServerConfig_28_29">ServerConfig</a>();
+<a name="l00250"></a>00250
+<a name="l00254"></a>00254 <span class="keywordtype">void</span> <a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
+<a name="l00255"></a>00255
+<a name="l00260"></a>00260 <span class="keywordtype">void</span> <a class="code" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a>(<span class="keywordtype">bool</span> bail, <a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00261"></a>00261
+<a name="l00262"></a>00262 <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename, std::stringstream *target, std::stringstream* errorstream);
+<a name="l00263"></a>00263 <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="keywordtype">char</span>* tag, <span class="keywordtype">char</span>* var, <span class="keywordtype">int</span> index, <span class="keywordtype">char</span> *result, std::stringstream *config);
+<a name="l00264"></a>00264 <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(std::stringstream *<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>,<span class="keyword">const</span> <span class="keywordtype">char</span>* tag, <span class="keyword">const</span> <span class="keywordtype">char</span>* var, <span class="keywordtype">int</span> index, <span class="keywordtype">char</span> *result);
+<a name="l00265"></a>00265 <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ConfValueEnum_28char_20_2Atag_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValueEnum</a>(<span class="keywordtype">char</span>* tag,std::stringstream *config);
+<a name="l00266"></a>00266 <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(std::stringstream *<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>,<span class="keyword">const</span> <span class="keywordtype">char</span>* tag);
+<a name="l00267"></a>00267 <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(std::stringstream *config, <span class="keyword">const</span> <span class="keywordtype">char</span>* tag, <span class="keywordtype">int</span> index);
+<a name="l00268"></a>00268 };
+<a name="l00269"></a>00269
+<a name="l00270"></a>00270
+<a name="l00271"></a>00271 <span class="keywordtype">void</span> <a class="code" href="inspircd__io_8h.html#Exit_28int_29">Exit</a> (<span class="keywordtype">int</span>);
+<a name="l00272"></a>00272 <span class="keywordtype">void</span> <a class="code" href="inspircd__io_8h.html#Start_28void_29">Start</a> (<span class="keywordtype">void</span>);
+<a name="l00273"></a>00273 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#DaemonSeed_28void_29">DaemonSeed</a> (<span class="keywordtype">void</span>);
+<a name="l00274"></a>00274 <span class="keywordtype">bool</span> <a class="code" href="inspircd__io_8h.html#FileExists_28const_20char_20_2Afile_29">FileExists</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* file);
+<a name="l00275"></a>00275 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">OpenTCPSocket</a> (<span class="keywordtype">void</span>);
+<a name="l00276"></a>00276 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#BindSocket_28int_20sockfd_2C_20struct_20sockaddr_5Fin_20client_2C_20struct_20sockaddr_5Fin_20server_2C_20int_20port_2C_20char_20_2Aaddr_29">BindSocket</a> (<span class="keywordtype">int</span> sockfd, <span class="keyword">struct</span> sockaddr_in client, <span class="keyword">struct</span> sockaddr_in server, <span class="keywordtype">int</span> port, <span class="keywordtype">char</span>* addr);
+<a name="l00277"></a>00277 <span class="keywordtype">void</span> <a class="code" href="inspircd__io_8h.html#WritePID_28std_3A_3Astring_20filename_29">WritePID</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
+<a name="l00278"></a>00278
+<a name="l00279"></a>00279 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/inspircd__io_8h.html b/docs/module-doc/inspircd__io_8h.html
index 85773d0a1..37dd23863 100644
--- a/docs/module-doc/inspircd__io_8h.html
+++ b/docs/module-doc/inspircd__io_8h.html
@@ -30,9 +30,11 @@ This graph shows which files directly or indirectly include this file:<p><center
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html">ServerConfig</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class holds the bulk of the runtime configuration for the ircd. <a href="classServerConfig.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd__io_8h.html#DEBUG">DEBUG</a>&nbsp;&nbsp;&nbsp;10</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flags for use with log(). <a href="#DEBUG"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd__io_8h.html#VERBOSE">VERBOSE</a>&nbsp;&nbsp;&nbsp;20</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd__io_8h.html#DEFAULT">DEFAULT</a>&nbsp;&nbsp;&nbsp;30</td></tr>
@@ -78,11 +80,13 @@ This graph shows which files directly or indirectly include this file:<p><center
<td>
<p>
+Flags for use with log().
+<p>
<p>
Definition at line <a class="el" href="inspircd__io_8h-source.html#l00028">28</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00554">Server::AddExtendedMode()</a>, <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="channels_8cpp-source.html#l00166">chanrec::AddUser()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="channels_8cpp-source.html#l00172">chanrec::DelUser()</a>, <a class="el" href="socket_8cpp-source.html#l00062">InspSocket::InspSocket()</a>, <a class="el" href="socket_8cpp-source.html#l00158">InspSocket::Read()</a>, <a class="el" href="users_8cpp-source.html#l00122">userrec::RemoveInvite()</a>, <a class="el" href="channels_8cpp-source.html#l00085">chanrec::SetCustomMode()</a>, <a class="el" href="channels_8cpp-source.html#l00110">chanrec::SetCustomModeParam()</a>, <a class="el" href="socket_8cpp-source.html#l00248">InspSocket::SetState()</a>, <a class="el" href="users_8cpp-source.html#l00292">userrec::SetWriteError()</a>, <a class="el" href="socketengine_8cpp-source.html#l00035">SocketEngine::SocketEngine()</a>, and <a class="el" href="socketengine_8cpp-source.html#l00046">SocketEngine::~SocketEngine()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00559">Server::AddExtendedMode()</a>, <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="channels_8cpp-source.html#l00166">chanrec::AddUser()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="channels_8cpp-source.html#l00172">chanrec::DelUser()</a>, <a class="el" href="socket_8cpp-source.html#l00062">InspSocket::InspSocket()</a>, <a class="el" href="socket_8cpp-source.html#l00158">InspSocket::Read()</a>, <a class="el" href="users_8cpp-source.html#l00122">userrec::RemoveInvite()</a>, <a class="el" href="channels_8cpp-source.html#l00085">chanrec::SetCustomMode()</a>, <a class="el" href="channels_8cpp-source.html#l00110">chanrec::SetCustomModeParam()</a>, <a class="el" href="socket_8cpp-source.html#l00248">InspSocket::SetState()</a>, <a class="el" href="users_8cpp-source.html#l00292">userrec::SetWriteError()</a>, <a class="el" href="socketengine_8cpp-source.html#l00035">SocketEngine::SocketEngine()</a>, and <a class="el" href="socketengine_8cpp-source.html#l00046">SocketEngine::~SocketEngine()</a>. </td>
</tr>
</table>
<a class="anchor" name="DEFAULT"></a><!-- doxytag: member="inspircd_io.h::DEFAULT" ref="DEFAULT" args="" --><p>
@@ -413,7 +417,7 @@ Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket::In
</td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:23 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/main.html b/docs/module-doc/main.html
index 730e7e55f..cc6fc63b3 100644
--- a/docs/module-doc/main.html
+++ b/docs/module-doc/main.html
@@ -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">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>InspIRCd Documentation</h1>
<p>
-<h3 align="center">1.0Betareleases </h3><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+<h3 align="center">1.0Betareleases </h3><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/message_8h-source.html b/docs/module-doc/message_8h-source.html
index 22bba55ae..6d5e580d7 100644
--- a/docs/module-doc/message_8h-source.html
+++ b/docs/module-doc/message_8h-source.html
@@ -57,7 +57,7 @@
<a name="l00048"></a>00048 <span class="keywordtype">void</span> <a class="code" href="message_8h.html#send_5Fnetwork_5Fquit_28const_20char_20_2Anick_2C_20const_20char_20_2Areason_29">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);
<a name="l00049"></a>00049
<a name="l00050"></a>00050 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/message_8h.html b/docs/module-doc/message_8h.html
index a9d4b46f0..ec2abd1ed 100644
--- a/docs/module-doc/message_8h.html
+++ b/docs/module-doc/message_8h.html
@@ -165,7 +165,7 @@ This graph shows which files directly or indirectly include this file:<p><center
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00492">Server::ChangeHost()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00497">Server::ChangeHost()</a>. </td>
</tr>
</table>
<a class="anchor" name="ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29"></a><!-- doxytag: member="message.h::ChangeName" ref="ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29" args="(userrec *user, const char *gecos)" --><p>
@@ -204,7 +204,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00492">Server::Chang
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00497">Server::ChangeGECOS()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00502">Server::ChangeGECOS()</a>. </td>
</tr>
</table>
<a class="anchor" name="chlist_28userrec_20_2Auser_2C_20userrec_20_2Asource_29"></a><!-- doxytag: member="message.h::chlist" ref="chlist_28userrec_20_2Auser_2C_20userrec_20_2Asource_29" args="(userrec *user, userrec *source)" --><p>
@@ -345,7 +345,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00497">Server::Chang
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00522">Server::ChanMode()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00527">Server::ChanMode()</a>. </td>
</tr>
</table>
<a class="anchor" name="common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29"></a><!-- doxytag: member="message.h::common_channels" ref="common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29" args="(userrec *u, userrec *u2)" --><p>
@@ -384,7 +384,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00522">Server::ChanM
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00470">Server::CommonChannels()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00475">Server::CommonChannels()</a>. </td>
</tr>
</table>
<a class="anchor" name="cstatus_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29"></a><!-- doxytag: member="message.h::cstatus" ref="cstatus_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29" args="(userrec *user, chanrec *chan)" --><p>
@@ -460,7 +460,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00470">Server::Commo
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00527">Server::IsOnChannel()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00532">Server::IsOnChannel()</a>. </td>
</tr>
</table>
<a class="anchor" name="hasumode_28userrec_20_2Auser_2C_20char_20mode_29"></a><!-- doxytag: member="message.h::hasumode" ref="hasumode_28userrec_20_2Auser_2C_20char_20mode_29" args="(userrec *user, char mode)" --><p>
@@ -555,7 +555,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00527">Server::IsOnC
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00502">Server::IsNick()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00507">Server::IsNick()</a>. </td>
</tr>
</table>
<a class="anchor" name="NonBlocking_28int_20s_29"></a><!-- doxytag: member="message.h::NonBlocking" ref="NonBlocking_28int_20s_29" args="(int s)" --><p>
@@ -679,7 +679,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00502">Server::IsNic
</td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:23 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/mode_8h-source.html b/docs/module-doc/mode_8h-source.html
index b184dbb57..1c5287364 100644
--- a/docs/module-doc/mode_8h-source.html
+++ b/docs/module-doc/mode_8h-source.html
@@ -55,7 +55,7 @@
<a name="l00046"></a>00046
<a name="l00047"></a>00047
<a name="l00048"></a>00048 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/mode_8h.html b/docs/module-doc/mode_8h.html
index a1d6e7eed..5848b0695 100644
--- a/docs/module-doc/mode_8h.html
+++ b/docs/module-doc/mode_8h.html
@@ -593,7 +593,7 @@ This graph shows which files directly or indirectly include this file:<p><center
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00419">Server::SendMode()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00424">Server::SendMode()</a>. </td>
</tr>
</table>
<a class="anchor" name="take_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29"></a><!-- doxytag: member="mode.h::take_ban" ref="take_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29" args="(userrec *user, char *dest, chanrec *chan, int status)" --><p>
@@ -792,7 +792,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00419">Server::SendM
</td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:23 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/modules_8cpp-source.html b/docs/module-doc/modules_8cpp-source.html
index 9a36d4e5b..0ecd0c95b 100644
--- a/docs/module-doc/modules_8cpp-source.html
+++ b/docs/module-doc/modules_8cpp-source.html
@@ -338,611 +338,616 @@
<a name="l00329"></a>00329 Config-&gt;<a class="code" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a>(<span class="keyword">false</span>,NULL);
<a name="l00330"></a>00330 }
<a name="l00331"></a>00331
-<a name="l00332"></a><a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">00332</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">Server::DelSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock)
+<a name="l00332"></a><a class="code" href="classServer.html#GetConfig_28_29">00332</a> <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="classServer.html#GetConfig_28_29">Server::GetConfig</a>()
<a name="l00333"></a>00333 {
-<a name="l00334"></a>00334 <span class="keywordflow">for</span> (std::vector&lt;InspSocket*&gt;::iterator a = <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.begin(); a &lt; <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.end(); a++)
-<a name="l00335"></a>00335 {
-<a name="l00336"></a>00336 <span class="keywordflow">if</span> (*a == sock)
-<a name="l00337"></a>00337 {
-<a name="l00338"></a>00338 <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.erase(a);
-<a name="l00339"></a>00339 <span class="keywordflow">return</span>;
-<a name="l00340"></a>00340 }
-<a name="l00341"></a>00341 }
-<a name="l00342"></a>00342 }
-<a name="l00343"></a>00343
-<a name="l00344"></a><a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">00344</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">Server::SendOpers</a>(<a class="code" href="namespaceirc.html#string">std::string</a> s)
-<a name="l00345"></a>00345 {
-<a name="l00346"></a>00346 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00334"></a>00334 <span class="keywordflow">return</span> Config;
+<a name="l00335"></a>00335 }
+<a name="l00336"></a>00336
+<a name="l00337"></a><a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">00337</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">Server::DelSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock)
+<a name="l00338"></a>00338 {
+<a name="l00339"></a>00339 <span class="keywordflow">for</span> (std::vector&lt;InspSocket*&gt;::iterator a = <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.begin(); a &lt; <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.end(); a++)
+<a name="l00340"></a>00340 {
+<a name="l00341"></a>00341 <span class="keywordflow">if</span> (*a == sock)
+<a name="l00342"></a>00342 {
+<a name="l00343"></a>00343 <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.erase(a);
+<a name="l00344"></a>00344 <span class="keywordflow">return</span>;
+<a name="l00345"></a>00345 }
+<a name="l00346"></a>00346 }
<a name="l00347"></a>00347 }
<a name="l00348"></a>00348
-<a name="l00349"></a><a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">00349</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">Server::MatchText</a>(<a class="code" href="namespaceirc.html#string">std::string</a> sliteral, <a class="code" href="namespaceirc.html#string">std::string</a> spattern)
+<a name="l00349"></a><a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">00349</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">Server::SendOpers</a>(<a class="code" href="namespaceirc.html#string">std::string</a> s)
<a name="l00350"></a>00350 {
-<a name="l00351"></a>00351 <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
-<a name="l00352"></a>00352 strlcpy(literal,sliteral.c_str(),MAXBUF);
-<a name="l00353"></a>00353 strlcpy(pattern,spattern.c_str(),MAXBUF);
-<a name="l00354"></a>00354 <span class="keywordflow">return</span> match(literal,pattern);
-<a name="l00355"></a>00355 }
-<a name="l00356"></a>00356
-<a name="l00357"></a><a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">00357</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">Server::SendToModeMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes, <span class="keywordtype">int</span> flags, <a class="code" href="namespaceirc.html#string">std::string</a> text)
-<a name="l00358"></a>00358 {
-<a name="l00359"></a>00359 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00351"></a>00351 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00352"></a>00352 }
+<a name="l00353"></a>00353
+<a name="l00354"></a><a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">00354</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">Server::MatchText</a>(<a class="code" href="namespaceirc.html#string">std::string</a> sliteral, <a class="code" href="namespaceirc.html#string">std::string</a> spattern)
+<a name="l00355"></a>00355 {
+<a name="l00356"></a>00356 <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
+<a name="l00357"></a>00357 strlcpy(literal,sliteral.c_str(),MAXBUF);
+<a name="l00358"></a>00358 strlcpy(pattern,spattern.c_str(),MAXBUF);
+<a name="l00359"></a>00359 <span class="keywordflow">return</span> match(literal,pattern);
<a name="l00360"></a>00360 }
<a name="l00361"></a>00361
-<a name="l00362"></a><a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">00362</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">Server::JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> key)
+<a name="l00362"></a><a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">00362</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">Server::SendToModeMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes, <span class="keywordtype">int</span> flags, <a class="code" href="namespaceirc.html#string">std::string</a> text)
<a name="l00363"></a>00363 {
-<a name="l00364"></a>00364 <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">false</span>);
+<a name="l00364"></a>00364 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
<a name="l00365"></a>00365 }
<a name="l00366"></a>00366
-<a name="l00367"></a><a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">00367</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">Server::PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> reason)
+<a name="l00367"></a><a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">00367</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">Server::JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> key)
<a name="l00368"></a>00368 {
-<a name="l00369"></a>00369 <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
+<a name="l00369"></a>00369 <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">false</span>);
<a name="l00370"></a>00370 }
<a name="l00371"></a>00371
-<a name="l00372"></a><a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">00372</a> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> <a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">Server::GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan)
+<a name="l00372"></a><a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">00372</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">Server::PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> reason)
<a name="l00373"></a>00373 {
-<a name="l00374"></a>00374 <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> userl;
-<a name="l00375"></a>00375 userl.clear();
-<a name="l00376"></a>00376 std::vector&lt;char*&gt; *list = chan-&gt;<a class="code" href="classchanrec.html#GetUsers_28_29">GetUsers</a>();
-<a name="l00377"></a>00377 <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator i = list-&gt;begin(); i != list-&gt;end(); i++)
-<a name="l00378"></a>00378 {
-<a name="l00379"></a>00379 <span class="keywordtype">char</span>* o = *i;
-<a name="l00380"></a>00380 userl.push_back((<a class="code" href="classuserrec.html">userrec</a>*)o);
-<a name="l00381"></a>00381 }
-<a name="l00382"></a>00382 <span class="keywordflow">return</span> userl;
-<a name="l00383"></a>00383 }
-<a name="l00384"></a><a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">00384</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">Server::ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> nickname)
-<a name="l00385"></a>00385 {
-<a name="l00386"></a>00386 force_nickchange(user,nickname.c_str());
-<a name="l00387"></a>00387 }
-<a name="l00388"></a>00388
-<a name="l00389"></a><a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">00389</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">Server::QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> reason)
+<a name="l00374"></a>00374 <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
+<a name="l00375"></a>00375 }
+<a name="l00376"></a>00376
+<a name="l00377"></a><a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">00377</a> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> <a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">Server::GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan)
+<a name="l00378"></a>00378 {
+<a name="l00379"></a>00379 <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> userl;
+<a name="l00380"></a>00380 userl.clear();
+<a name="l00381"></a>00381 std::vector&lt;char*&gt; *list = chan-&gt;<a class="code" href="classchanrec.html#GetUsers_28_29">GetUsers</a>();
+<a name="l00382"></a>00382 <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator i = list-&gt;begin(); i != list-&gt;end(); i++)
+<a name="l00383"></a>00383 {
+<a name="l00384"></a>00384 <span class="keywordtype">char</span>* o = *i;
+<a name="l00385"></a>00385 userl.push_back((<a class="code" href="classuserrec.html">userrec</a>*)o);
+<a name="l00386"></a>00386 }
+<a name="l00387"></a>00387 <span class="keywordflow">return</span> userl;
+<a name="l00388"></a>00388 }
+<a name="l00389"></a><a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">00389</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">Server::ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> nickname)
<a name="l00390"></a>00390 {
-<a name="l00391"></a>00391 kill_link(user,reason.c_str());
+<a name="l00391"></a>00391 force_nickchange(user,nickname.c_str());
<a name="l00392"></a>00392 }
<a name="l00393"></a>00393
-<a name="l00394"></a><a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">00394</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">Server::IsUlined</a>(<a class="code" href="namespaceirc.html#string">std::string</a> server)
+<a name="l00394"></a><a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">00394</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">Server::QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> reason)
<a name="l00395"></a>00395 {
-<a name="l00396"></a>00396 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(server.c_str());
+<a name="l00396"></a>00396 kill_link(user,reason.c_str());
<a name="l00397"></a>00397 }
<a name="l00398"></a>00398
-<a name="l00399"></a><a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00399</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::CallCommandHandler</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user)
+<a name="l00399"></a><a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">00399</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">Server::IsUlined</a>(<a class="code" href="namespaceirc.html#string">std::string</a> server)
<a name="l00400"></a>00400 {
-<a name="l00401"></a>00401 call_handler(commandname.c_str(),parameters,pcnt,user);
+<a name="l00401"></a>00401 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(server.c_str());
<a name="l00402"></a>00402 }
<a name="l00403"></a>00403
-<a name="l00404"></a><a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00404</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::IsValidModuleCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user)
+<a name="l00404"></a><a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00404</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::CallCommandHandler</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user)
<a name="l00405"></a>00405 {
-<a name="l00406"></a>00406 <span class="keywordflow">return</span> is_valid_cmd(commandname.c_str(), pcnt, user);
+<a name="l00406"></a>00406 call_handler(commandname.c_str(),parameters,pcnt,user);
<a name="l00407"></a>00407 }
<a name="l00408"></a>00408
-<a name="l00409"></a><a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">00409</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Server::Log</a>(<span class="keywordtype">int</span> level, <a class="code" href="namespaceirc.html#string">std::string</a> s)
+<a name="l00409"></a><a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00409</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::IsValidModuleCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user)
<a name="l00410"></a>00410 {
-<a name="l00411"></a>00411 log(level,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00411"></a>00411 <span class="keywordflow">return</span> is_valid_cmd(commandname.c_str(), pcnt, user);
<a name="l00412"></a>00412 }
<a name="l00413"></a>00413
-<a name="l00414"></a><a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">00414</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">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)
+<a name="l00414"></a><a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">00414</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Server::Log</a>(<span class="keywordtype">int</span> level, <a class="code" href="namespaceirc.html#string">std::string</a> s)
<a name="l00415"></a>00415 {
-<a name="l00416"></a>00416 <a class="code" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand</a>(cmd,f,flags,minparams,source);
+<a name="l00416"></a>00416 log(level,<span class="stringliteral">"%s"</span>,s.c_str());
<a name="l00417"></a>00417 }
<a name="l00418"></a>00418
-<a name="l00419"></a><a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00419</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user)
+<a name="l00419"></a><a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">00419</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">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)
<a name="l00420"></a>00420 {
-<a name="l00421"></a>00421 <a class="code" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a>(parameters,pcnt,user);
+<a name="l00421"></a>00421 <a class="code" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand</a>(cmd,f,flags,minparams,source);
<a name="l00422"></a>00422 }
<a name="l00423"></a>00423
-<a name="l00424"></a><a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">00424</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server::Send</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s)
+<a name="l00424"></a><a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00424</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user)
<a name="l00425"></a>00425 {
-<a name="l00426"></a>00426 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00426"></a>00426 <a class="code" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a>(parameters,pcnt,user);
<a name="l00427"></a>00427 }
<a name="l00428"></a>00428
-<a name="l00429"></a><a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">00429</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server::SendServ</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s)
+<a name="l00429"></a><a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">00429</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server::Send</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s)
<a name="l00430"></a>00430 {
-<a name="l00431"></a>00431 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00431"></a>00431 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
<a name="l00432"></a>00432 }
<a name="l00433"></a>00433
-<a name="l00434"></a><a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">00434</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">Server::SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> s)
+<a name="l00434"></a><a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">00434</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server::SendServ</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s)
<a name="l00435"></a>00435 {
-<a name="l00436"></a>00436 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00436"></a>00436 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
<a name="l00437"></a>00437 }
<a name="l00438"></a>00438
-<a name="l00439"></a><a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">00439</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">Server::SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, <a class="code" href="namespaceirc.html#string">std::string</a> s)
+<a name="l00439"></a><a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">00439</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">Server::SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> s)
<a name="l00440"></a>00440 {
-<a name="l00441"></a>00441 <span class="keywordflow">if</span> (!Source)
-<a name="l00442"></a>00442 {
-<a name="l00443"></a>00443 <span class="comment">// if source is NULL, then the message originates from the local server</span>
-<a name="l00444"></a>00444 Write(Dest-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
-<a name="l00445"></a>00445 }
-<a name="l00446"></a>00446 <span class="keywordflow">else</span>
+<a name="l00441"></a>00441 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00442"></a>00442 }
+<a name="l00443"></a>00443
+<a name="l00444"></a><a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">00444</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">Server::SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, <a class="code" href="namespaceirc.html#string">std::string</a> s)
+<a name="l00445"></a>00445 {
+<a name="l00446"></a>00446 <span class="keywordflow">if</span> (!Source)
<a name="l00447"></a>00447 {
-<a name="l00448"></a>00448 <span class="comment">// otherwise it comes from the user specified</span>
-<a name="l00449"></a>00449 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00448"></a>00448 <span class="comment">// if source is NULL, then the message originates from the local server</span>
+<a name="l00449"></a>00449 Write(Dest-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
<a name="l00450"></a>00450 }
-<a name="l00451"></a>00451 }
-<a name="l00452"></a>00452
-<a name="l00453"></a><a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">00453</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">Server::SendChannelServerNotice</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> text)
-<a name="l00454"></a>00454 {
-<a name="l00455"></a>00455 WriteChannelWithServ((<span class="keywordtype">char</span>*)ServName.c_str(), Channel, <span class="stringliteral">"%s"</span>, text.c_str());
+<a name="l00451"></a>00451 <span class="keywordflow">else</span>
+<a name="l00452"></a>00452 {
+<a name="l00453"></a>00453 <span class="comment">// otherwise it comes from the user specified</span>
+<a name="l00454"></a>00454 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00455"></a>00455 }
<a name="l00456"></a>00456 }
<a name="l00457"></a>00457
-<a name="l00458"></a><a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">00458</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">Server::SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> s,<span class="keywordtype">bool</span> IncludeSender)
+<a name="l00458"></a><a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">00458</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">Server::SendChannelServerNotice</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> text)
<a name="l00459"></a>00459 {
-<a name="l00460"></a>00460 <span class="keywordflow">if</span> (IncludeSender)
-<a name="l00461"></a>00461 {
-<a name="l00462"></a>00462 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00463"></a>00463 }
-<a name="l00464"></a>00464 <span class="keywordflow">else</span>
-<a name="l00465"></a>00465 {
-<a name="l00466"></a>00466 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00467"></a>00467 }
-<a name="l00468"></a>00468 }
-<a name="l00469"></a>00469
-<a name="l00470"></a><a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">00470</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">Server::CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2)
-<a name="l00471"></a>00471 {
-<a name="l00472"></a>00472 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels</a>(u1,u2) != 0);
+<a name="l00460"></a>00460 WriteChannelWithServ((<span class="keywordtype">char</span>*)ServName.c_str(), Channel, <span class="stringliteral">"%s"</span>, text.c_str());
+<a name="l00461"></a>00461 }
+<a name="l00462"></a>00462
+<a name="l00463"></a><a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">00463</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">Server::SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> s,<span class="keywordtype">bool</span> IncludeSender)
+<a name="l00464"></a>00464 {
+<a name="l00465"></a>00465 <span class="keywordflow">if</span> (IncludeSender)
+<a name="l00466"></a>00466 {
+<a name="l00467"></a>00467 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00468"></a>00468 }
+<a name="l00469"></a>00469 <span class="keywordflow">else</span>
+<a name="l00470"></a>00470 {
+<a name="l00471"></a>00471 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00472"></a>00472 }
<a name="l00473"></a>00473 }
<a name="l00474"></a>00474
-<a name="l00475"></a><a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">00475</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">Server::SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text,<span class="keywordtype">bool</span> IncludeSender)
+<a name="l00475"></a><a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">00475</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">Server::CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2)
<a name="l00476"></a>00476 {
-<a name="l00477"></a>00477 <span class="keywordflow">if</span> (IncludeSender)
-<a name="l00478"></a>00478 {
-<a name="l00479"></a>00479 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00480"></a>00480 }
-<a name="l00481"></a>00481 <span class="keywordflow">else</span>
-<a name="l00482"></a>00482 {
-<a name="l00483"></a>00483 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00484"></a>00484 }
-<a name="l00485"></a>00485 }
-<a name="l00486"></a>00486
-<a name="l00487"></a><a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">00487</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">Server::SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text)
-<a name="l00488"></a>00488 {
-<a name="l00489"></a>00489 WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00477"></a>00477 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels</a>(u1,u2) != 0);
+<a name="l00478"></a>00478 }
+<a name="l00479"></a>00479
+<a name="l00480"></a><a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">00480</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">Server::SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text,<span class="keywordtype">bool</span> IncludeSender)
+<a name="l00481"></a>00481 {
+<a name="l00482"></a>00482 <span class="keywordflow">if</span> (IncludeSender)
+<a name="l00483"></a>00483 {
+<a name="l00484"></a>00484 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00485"></a>00485 }
+<a name="l00486"></a>00486 <span class="keywordflow">else</span>
+<a name="l00487"></a>00487 {
+<a name="l00488"></a>00488 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00489"></a>00489 }
<a name="l00490"></a>00490 }
<a name="l00491"></a>00491
-<a name="l00492"></a><a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">00492</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">Server::ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> host)
+<a name="l00492"></a><a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">00492</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">Server::SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text)
<a name="l00493"></a>00493 {
-<a name="l00494"></a>00494 <a class="code" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost</a>(user,host.c_str());
+<a name="l00494"></a>00494 WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
<a name="l00495"></a>00495 }
<a name="l00496"></a>00496
-<a name="l00497"></a><a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">00497</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">Server::ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos)
+<a name="l00497"></a><a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">00497</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">Server::ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> host)
<a name="l00498"></a>00498 {
-<a name="l00499"></a>00499 <a class="code" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName</a>(user,gecos.c_str());
+<a name="l00499"></a>00499 <a class="code" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost</a>(user,host.c_str());
<a name="l00500"></a>00500 }
<a name="l00501"></a>00501
-<a name="l00502"></a><a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">00502</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">Server::IsNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick)
+<a name="l00502"></a><a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">00502</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">Server::ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos)
<a name="l00503"></a>00503 {
-<a name="l00504"></a>00504 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#isnick_28const_20char_20_2An_29">isnick</a>(nick.c_str()) != 0);
+<a name="l00504"></a>00504 <a class="code" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName</a>(user,gecos.c_str());
<a name="l00505"></a>00505 }
<a name="l00506"></a>00506
-<a name="l00507"></a><a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">00507</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">Server::FindNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick)
+<a name="l00507"></a><a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">00507</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">Server::IsNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick)
<a name="l00508"></a>00508 {
-<a name="l00509"></a>00509 <span class="keywordflow">return</span> Find(nick);
+<a name="l00509"></a>00509 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#isnick_28const_20char_20_2An_29">isnick</a>(nick.c_str()) != 0);
<a name="l00510"></a>00510 }
<a name="l00511"></a>00511
-<a name="l00512"></a><a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">00512</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">Server::FindDescriptor</a>(<span class="keywordtype">int</span> socket)
+<a name="l00512"></a><a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">00512</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">Server::FindNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick)
<a name="l00513"></a>00513 {
-<a name="l00514"></a>00514 <span class="keywordflow">return</span> (socket &lt; 65536 ? fd_ref_table[socket] : NULL);
+<a name="l00514"></a>00514 <span class="keywordflow">return</span> Find(nick);
<a name="l00515"></a>00515 }
<a name="l00516"></a>00516
-<a name="l00517"></a><a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">00517</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">Server::FindChannel</a>(<a class="code" href="namespaceirc.html#string">std::string</a> channel)
+<a name="l00517"></a><a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">00517</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">Server::FindDescriptor</a>(<span class="keywordtype">int</span> socket)
<a name="l00518"></a>00518 {
-<a name="l00519"></a>00519 <span class="keywordflow">return</span> FindChan(channel.c_str());
+<a name="l00519"></a>00519 <span class="keywordflow">return</span> (socket &lt; 65536 ? fd_ref_table[socket] : NULL);
<a name="l00520"></a>00520 }
<a name="l00521"></a>00521
-<a name="l00522"></a><a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">00522</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server::ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
+<a name="l00522"></a><a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">00522</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">Server::FindChannel</a>(<a class="code" href="namespaceirc.html#string">std::string</a> channel)
<a name="l00523"></a>00523 {
-<a name="l00524"></a>00524 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode</a>(User,Chan);
+<a name="l00524"></a>00524 <span class="keywordflow">return</span> FindChan(channel.c_str());
<a name="l00525"></a>00525 }
<a name="l00526"></a>00526
-<a name="l00527"></a><a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">00527</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server::IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
+<a name="l00527"></a><a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">00527</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server::ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
<a name="l00528"></a>00528 {
-<a name="l00529"></a>00529 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(User,Chan);
+<a name="l00529"></a>00529 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode</a>(User,Chan);
<a name="l00530"></a>00530 }
<a name="l00531"></a>00531
-<a name="l00532"></a><a class="code" href="classServer.html#GetServerName_28_29">00532</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerName_28_29">Server::GetServerName</a>()
+<a name="l00532"></a><a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">00532</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server::IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
<a name="l00533"></a>00533 {
-<a name="l00534"></a>00534 <span class="keywordflow">return</span> getservername();
+<a name="l00534"></a>00534 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(User,Chan);
<a name="l00535"></a>00535 }
<a name="l00536"></a>00536
-<a name="l00537"></a><a class="code" href="classServer.html#GetNetworkName_28_29">00537</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetNetworkName_28_29">Server::GetNetworkName</a>()
+<a name="l00537"></a><a class="code" href="classServer.html#GetServerName_28_29">00537</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerName_28_29">Server::GetServerName</a>()
<a name="l00538"></a>00538 {
-<a name="l00539"></a>00539 <span class="keywordflow">return</span> getnetworkname();
+<a name="l00539"></a>00539 <span class="keywordflow">return</span> getservername();
<a name="l00540"></a>00540 }
<a name="l00541"></a>00541
-<a name="l00542"></a><a class="code" href="classServer.html#GetServerDescription_28_29">00542</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerDescription_28_29">Server::GetServerDescription</a>()
+<a name="l00542"></a><a class="code" href="classServer.html#GetNetworkName_28_29">00542</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetNetworkName_28_29">Server::GetNetworkName</a>()
<a name="l00543"></a>00543 {
-<a name="l00544"></a>00544 <span class="keywordflow">return</span> getserverdesc();
+<a name="l00544"></a>00544 <span class="keywordflow">return</span> getnetworkname();
<a name="l00545"></a>00545 }
<a name="l00546"></a>00546
-<a name="l00547"></a><a class="code" href="classServer.html#GetAdmin_28_29">00547</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#GetAdmin_28_29">Server::GetAdmin</a>()
+<a name="l00547"></a><a class="code" href="classServer.html#GetServerDescription_28_29">00547</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerDescription_28_29">Server::GetServerDescription</a>()
<a name="l00548"></a>00548 {
-<a name="l00549"></a>00549 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+<a name="l00549"></a>00549 <span class="keywordflow">return</span> getserverdesc();
<a name="l00550"></a>00550 }
<a name="l00551"></a>00551
-<a name="l00552"></a>00552
-<a name="l00553"></a>00553
-<a name="l00554"></a><a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">00554</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">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)
-<a name="l00555"></a>00555 {
-<a name="l00556"></a>00556 <span class="keywordflow">if</span> (((modechar &gt;= <span class="charliteral">'A'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'Z'</span>)) || ((modechar &gt;= <span class="charliteral">'a'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'z'</span>)))
-<a name="l00557"></a>00557 {
-<a name="l00558"></a>00558 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#MT_5FSERVER">MT_SERVER</a>)
-<a name="l00559"></a>00559 {
-<a name="l00560"></a>00560 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
-<a name="l00561"></a>00561 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00562"></a>00562 }
-<a name="l00563"></a>00563 <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#MT_5FCLIENT">MT_CLIENT</a>))
+<a name="l00552"></a><a class="code" href="classServer.html#GetAdmin_28_29">00552</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#GetAdmin_28_29">Server::GetAdmin</a>()
+<a name="l00553"></a>00553 {
+<a name="l00554"></a>00554 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+<a name="l00555"></a>00555 }
+<a name="l00556"></a>00556
+<a name="l00557"></a>00557
+<a name="l00558"></a>00558
+<a name="l00559"></a><a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">00559</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">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)
+<a name="l00560"></a>00560 {
+<a name="l00561"></a>00561 <span class="keywordflow">if</span> (((modechar &gt;= <span class="charliteral">'A'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'Z'</span>)) || ((modechar &gt;= <span class="charliteral">'a'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'z'</span>)))
+<a name="l00562"></a>00562 {
+<a name="l00563"></a>00563 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#MT_5FSERVER">MT_SERVER</a>)
<a name="l00564"></a>00564 {
-<a name="l00565"></a>00565 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
+<a name="l00565"></a>00565 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
<a name="l00566"></a>00566 <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00567"></a>00567 }
-<a name="l00568"></a>00568 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
+<a name="l00568"></a>00568 <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#MT_5FCLIENT">MT_CLIENT</a>))
<a name="l00569"></a>00569 {
-<a name="l00570"></a>00570 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
+<a name="l00570"></a>00570 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
<a name="l00571"></a>00571 <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00572"></a>00572 }
-<a name="l00573"></a>00573 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
-<a name="l00574"></a>00574 }
-<a name="l00575"></a>00575 <span class="keywordflow">else</span>
-<a name="l00576"></a>00576 {
-<a name="l00577"></a>00577 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Muppet modechar detected."</span>);
-<a name="l00578"></a>00578 }
-<a name="l00579"></a>00579 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00580"></a>00580 }
-<a name="l00581"></a>00581
-<a name="l00582"></a><a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">00582</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">Server::AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar)
-<a name="l00583"></a>00583 {
-<a name="l00584"></a>00584 <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,<a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>,<span class="keyword">false</span>,1,1);
-<a name="l00585"></a>00585 <span class="keywordflow">if</span> (res)
-<a name="l00586"></a>00586 <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(modechar);
-<a name="l00587"></a>00587 <span class="keywordflow">return</span> res;
-<a name="l00588"></a>00588 }
-<a name="l00589"></a>00589
-<a name="l00590"></a><a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">00590</a> <span class="keywordtype">int</span> <a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">Server::CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c)
-<a name="l00591"></a>00591 {
-<a name="l00592"></a>00592 <span class="keywordflow">return</span> usercount(c);
+<a name="l00573"></a>00573 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
+<a name="l00574"></a>00574 {
+<a name="l00575"></a>00575 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
+<a name="l00576"></a>00576 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00577"></a>00577 }
+<a name="l00578"></a>00578 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
+<a name="l00579"></a>00579 }
+<a name="l00580"></a>00580 <span class="keywordflow">else</span>
+<a name="l00581"></a>00581 {
+<a name="l00582"></a>00582 log(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Muppet modechar detected."</span>);
+<a name="l00583"></a>00583 }
+<a name="l00584"></a>00584 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00585"></a>00585 }
+<a name="l00586"></a>00586
+<a name="l00587"></a><a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">00587</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">Server::AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar)
+<a name="l00588"></a>00588 {
+<a name="l00589"></a>00589 <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,<a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>,<span class="keyword">false</span>,1,1);
+<a name="l00590"></a>00590 <span class="keywordflow">if</span> (res)
+<a name="l00591"></a>00591 <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(modechar);
+<a name="l00592"></a>00592 <span class="keywordflow">return</span> res;
<a name="l00593"></a>00593 }
<a name="l00594"></a>00594
-<a name="l00595"></a>00595
-<a name="l00596"></a><a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">00596</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Server::UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="namespaceirc.html#string">std::string</a> message)
-<a name="l00597"></a>00597 {
-<a name="l00598"></a>00598 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
-<a name="l00599"></a>00599 user-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
-<a name="l00600"></a>00600 user-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
-<a name="l00601"></a>00601 Write(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,message.c_str());
-<a name="l00602"></a>00602 SE-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(old_fd);
-<a name="l00603"></a>00603 shutdown(old_fd,2);
-<a name="l00604"></a>00604 close(old_fd);
-<a name="l00605"></a>00605 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00606"></a>00606 }
-<a name="l00607"></a>00607
-<a name="l00608"></a><a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">00608</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">Server::PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,<a class="code" href="namespaceirc.html#string">std::string</a> message)
-<a name="l00609"></a>00609 {
-<a name="l00610"></a>00610 zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a> = alive-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
-<a name="l00611"></a>00611 alive-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
-<a name="l00612"></a>00612 alive-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
-<a name="l00613"></a>00613 Write(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,alive-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,alive-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
-<a name="l00614"></a>00614 kill_link(alive,message.c_str());
-<a name="l00615"></a>00615 fd_ref_table[zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>] = zombie;
-<a name="l00616"></a>00616 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; zombie-&gt;chans.size(); i++)
-<a name="l00617"></a>00617 {
-<a name="l00618"></a>00618 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel != NULL)
-<a name="l00619"></a>00619 {
-<a name="l00620"></a>00620 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel-&gt;name)
-<a name="l00621"></a>00621 {
-<a name="l00622"></a>00622 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel;
-<a name="l00623"></a>00623 WriteFrom(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00624"></a>00624 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>)
-<a name="l00625"></a>00625 {
-<a name="l00626"></a>00626 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>);
-<a name="l00627"></a>00627 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>);
-<a name="l00628"></a>00628 }
-<a name="l00629"></a>00629 userlist(zombie,Ptr);
-<a name="l00630"></a>00630 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00631"></a>00631
-<a name="l00632"></a>00632 }
-<a name="l00633"></a>00633 }
-<a name="l00634"></a>00634 }
-<a name="l00635"></a>00635 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00636"></a>00636 }
-<a name="l00637"></a>00637
-<a name="l00638"></a><a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00638</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
-<a name="l00639"></a>00639 {
-<a name="l00640"></a>00640 <a class="code" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+<a name="l00595"></a><a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">00595</a> <span class="keywordtype">int</span> <a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">Server::CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c)
+<a name="l00596"></a>00596 {
+<a name="l00597"></a>00597 <span class="keywordflow">return</span> usercount(c);
+<a name="l00598"></a>00598 }
+<a name="l00599"></a>00599
+<a name="l00600"></a>00600
+<a name="l00601"></a><a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">00601</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Server::UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="namespaceirc.html#string">std::string</a> message)
+<a name="l00602"></a>00602 {
+<a name="l00603"></a>00603 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
+<a name="l00604"></a>00604 user-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
+<a name="l00605"></a>00605 user-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
+<a name="l00606"></a>00606 Write(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,message.c_str());
+<a name="l00607"></a>00607 SE-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(old_fd);
+<a name="l00608"></a>00608 shutdown(old_fd,2);
+<a name="l00609"></a>00609 close(old_fd);
+<a name="l00610"></a>00610 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00611"></a>00611 }
+<a name="l00612"></a>00612
+<a name="l00613"></a><a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">00613</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">Server::PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,<a class="code" href="namespaceirc.html#string">std::string</a> message)
+<a name="l00614"></a>00614 {
+<a name="l00615"></a>00615 zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a> = alive-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
+<a name="l00616"></a>00616 alive-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
+<a name="l00617"></a>00617 alive-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
+<a name="l00618"></a>00618 Write(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,alive-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,alive-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00619"></a>00619 kill_link(alive,message.c_str());
+<a name="l00620"></a>00620 fd_ref_table[zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>] = zombie;
+<a name="l00621"></a>00621 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; zombie-&gt;chans.size(); i++)
+<a name="l00622"></a>00622 {
+<a name="l00623"></a>00623 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel != NULL)
+<a name="l00624"></a>00624 {
+<a name="l00625"></a>00625 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel-&gt;name)
+<a name="l00626"></a>00626 {
+<a name="l00627"></a>00627 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel;
+<a name="l00628"></a>00628 WriteFrom(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00629"></a>00629 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>)
+<a name="l00630"></a>00630 {
+<a name="l00631"></a>00631 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>);
+<a name="l00632"></a>00632 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>);
+<a name="l00633"></a>00633 }
+<a name="l00634"></a>00634 userlist(zombie,Ptr);
+<a name="l00635"></a>00635 WriteServ(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00636"></a>00636
+<a name="l00637"></a>00637 }
+<a name="l00638"></a>00638 }
+<a name="l00639"></a>00639 }
+<a name="l00640"></a>00640 <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00641"></a>00641 }
<a name="l00642"></a>00642
-<a name="l00643"></a><a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">00643</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">Server::AddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickname)
+<a name="l00643"></a><a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00643</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
<a name="l00644"></a>00644 {
-<a name="l00645"></a>00645 <a class="code" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline</a>(duration, source.c_str(), reason.c_str(), nickname.c_str());
+<a name="l00645"></a>00645 <a class="code" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
<a name="l00646"></a>00646 }
<a name="l00647"></a>00647
-<a name="l00648"></a><a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">00648</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">Server::AddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipaddr)
+<a name="l00648"></a><a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">00648</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">Server::AddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickname)
<a name="l00649"></a>00649 {
-<a name="l00650"></a>00650 <a class="code" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline</a>(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
+<a name="l00650"></a>00650 <a class="code" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline</a>(duration, source.c_str(), reason.c_str(), nickname.c_str());
<a name="l00651"></a>00651 }
<a name="l00652"></a>00652
-<a name="l00653"></a><a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00653</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
+<a name="l00653"></a><a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">00653</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">Server::AddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipaddr)
<a name="l00654"></a>00654 {
-<a name="l00655"></a>00655 <a class="code" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+<a name="l00655"></a>00655 <a class="code" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline</a>(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
<a name="l00656"></a>00656 }
<a name="l00657"></a>00657
-<a name="l00658"></a><a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00658</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
+<a name="l00658"></a><a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00658</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
<a name="l00659"></a>00659 {
-<a name="l00660"></a>00660 <a class="code" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+<a name="l00660"></a>00660 <a class="code" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
<a name="l00661"></a>00661 }
<a name="l00662"></a>00662
-<a name="l00663"></a><a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">00663</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">Server::DelGLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
+<a name="l00663"></a><a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00663</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
<a name="l00664"></a>00664 {
-<a name="l00665"></a>00665 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline</a>(hostmask.c_str());
+<a name="l00665"></a>00665 <a class="code" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
<a name="l00666"></a>00666 }
<a name="l00667"></a>00667
-<a name="l00668"></a><a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">00668</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">Server::DelQLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nickname)
+<a name="l00668"></a><a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">00668</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">Server::DelGLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
<a name="l00669"></a>00669 {
-<a name="l00670"></a>00670 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline</a>(nickname.c_str());
+<a name="l00670"></a>00670 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline</a>(hostmask.c_str());
<a name="l00671"></a>00671 }
<a name="l00672"></a>00672
-<a name="l00673"></a><a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">00673</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">Server::DelZLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ipaddr)
+<a name="l00673"></a><a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">00673</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">Server::DelQLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nickname)
<a name="l00674"></a>00674 {
-<a name="l00675"></a>00675 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline</a>(ipaddr.c_str());
+<a name="l00675"></a>00675 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline</a>(nickname.c_str());
<a name="l00676"></a>00676 }
<a name="l00677"></a>00677
-<a name="l00678"></a><a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">00678</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">Server::DelKLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
+<a name="l00678"></a><a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">00678</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">Server::DelZLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ipaddr)
<a name="l00679"></a>00679 {
-<a name="l00680"></a>00680 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline</a>(hostmask.c_str());
+<a name="l00680"></a>00680 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline</a>(ipaddr.c_str());
<a name="l00681"></a>00681 }
<a name="l00682"></a>00682
-<a name="l00683"></a><a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">00683</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">Server::DelELine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
+<a name="l00683"></a><a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">00683</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">Server::DelKLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
<a name="l00684"></a>00684 {
-<a name="l00685"></a>00685 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline</a>(hostmask.c_str());
+<a name="l00685"></a>00685 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline</a>(hostmask.c_str());
<a name="l00686"></a>00686 }
<a name="l00687"></a>00687
-<a name="l00688"></a><a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">00688</a> <span class="keywordtype">long</span> <a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">Server::CalcDuration</a>(<a class="code" href="namespaceirc.html#string">std::string</a> delta)
+<a name="l00688"></a><a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">00688</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">Server::DelELine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
<a name="l00689"></a>00689 {
-<a name="l00690"></a>00690 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>(delta.c_str());
+<a name="l00690"></a>00690 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline</a>(hostmask.c_str());
<a name="l00691"></a>00691 }
<a name="l00692"></a>00692
-<a name="l00693"></a><a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">00693</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">Server::IsValidMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask)
+<a name="l00693"></a><a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">00693</a> <span class="keywordtype">long</span> <a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">Server::CalcDuration</a>(<a class="code" href="namespaceirc.html#string">std::string</a> delta)
<a name="l00694"></a>00694 {
-<a name="l00695"></a>00695 <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str();
-<a name="l00696"></a>00696 <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0)
-<a name="l00697"></a>00697 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00698"></a>00698 <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0)
-<a name="l00699"></a>00699 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00700"></a>00700 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00701"></a>00701 <span class="keywordflow">if</span> (dest[i] &lt; 32)
-<a name="l00702"></a>00702 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00703"></a>00703 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00704"></a>00704 <span class="keywordflow">if</span> (dest[i] &gt; 126)
-<a name="l00705"></a>00705 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00706"></a>00706 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> c = 0;
-<a name="l00707"></a>00707 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00708"></a>00708 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>)
-<a name="l00709"></a>00709 c++;
-<a name="l00710"></a>00710 <span class="keywordflow">if</span> (c&gt;1)
-<a name="l00711"></a>00711 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00712"></a>00712 c = 0;
-<a name="l00713"></a>00713 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00714"></a>00714 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>)
-<a name="l00715"></a>00715 c++;
-<a name="l00716"></a>00716 <span class="keywordflow">if</span> (c&gt;1)
-<a name="l00717"></a>00717 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00718"></a>00718
-<a name="l00719"></a>00719 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00720"></a>00720 }
-<a name="l00721"></a>00721
-<a name="l00722"></a><a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">00722</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">Server::FindModule</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name)
-<a name="l00723"></a>00723 {
-<a name="l00724"></a>00724 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>; i++)
-<a name="l00725"></a>00725 {
-<a name="l00726"></a>00726 <span class="keywordflow">if</span> (Config-&gt;<a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>[i] == name)
-<a name="l00727"></a>00727 {
-<a name="l00728"></a>00728 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#modules">modules</a>[i];
-<a name="l00729"></a>00729 }
-<a name="l00730"></a>00730 }
-<a name="l00731"></a>00731 <span class="keywordflow">return</span> NULL;
-<a name="l00732"></a>00732 }
-<a name="l00733"></a>00733
-<a name="l00734"></a><a class="code" href="classConfigReader.html#ConfigReader_28_29">00734</a> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader::ConfigReader</a>()
-<a name="l00735"></a>00735 {
-<a name="l00736"></a>00736 Config-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
-<a name="l00737"></a>00737 this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00738"></a>00738 this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00739"></a>00739 this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = Config-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(CONFIG_FILE,this-&gt;cache,this-&gt;errorlog);
-<a name="l00740"></a>00740 <span class="keywordflow">if</span> (!this-&gt;readerror)
-<a name="l00741"></a>00741 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
-<a name="l00742"></a>00742 }
-<a name="l00743"></a>00743
-<a name="l00744"></a>00744
-<a name="l00745"></a><a class="code" href="classConfigReader.html#_7EConfigReader_28_29">00745</a> <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">ConfigReader::~ConfigReader</a>()
-<a name="l00746"></a>00746 {
-<a name="l00747"></a>00747 <span class="keywordflow">if</span> (this-&gt;cache)
-<a name="l00748"></a>00748 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>;
-<a name="l00749"></a>00749 <span class="keywordflow">if</span> (this-&gt;errorlog)
-<a name="l00750"></a>00750 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
-<a name="l00751"></a>00751 }
-<a name="l00752"></a>00752
-<a name="l00753"></a>00753
-<a name="l00754"></a><a class="code" href="classConfigReader.html#ConfigReader_28std_3A_3Astring_20filename_29">00754</a> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader::ConfigReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename)
-<a name="l00755"></a>00755 {
-<a name="l00756"></a>00756 Config-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
-<a name="l00757"></a>00757 this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00758"></a>00758 this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00759"></a>00759 this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = Config-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>,this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>);
-<a name="l00760"></a>00760 <span class="keywordflow">if</span> (!this-&gt;readerror)
-<a name="l00761"></a>00761 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
-<a name="l00762"></a>00762 };
-<a name="l00763"></a>00763
-<a name="l00764"></a><a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">00764</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader::ReadValue</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index)
-<a name="l00765"></a>00765 {
-<a name="l00766"></a>00766 <span class="keywordtype">char</span> val[MAXBUF];
-<a name="l00767"></a>00767 <span class="keywordtype">char</span> t[MAXBUF];
-<a name="l00768"></a>00768 <span class="keywordtype">char</span> n[MAXBUF];
-<a name="l00769"></a>00769 strlcpy(t,tag.c_str(),MAXBUF);
-<a name="l00770"></a>00770 strlcpy(n,name.c_str(),MAXBUF);
-<a name="l00771"></a>00771 <span class="keywordtype">int</span> res = Config-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
-<a name="l00772"></a>00772 <span class="keywordflow">if</span> (!res)
-<a name="l00773"></a>00773 {
-<a name="l00774"></a>00774 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
-<a name="l00775"></a>00775 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00776"></a>00776 }
-<a name="l00777"></a>00777 <span class="keywordflow">return</span> val;
-<a name="l00778"></a>00778 }
-<a name="l00779"></a>00779
-<a name="l00780"></a><a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">00780</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader::ReadFlag</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index)
-<a name="l00781"></a>00781 {
-<a name="l00782"></a>00782 <span class="keywordtype">char</span> val[MAXBUF];
-<a name="l00783"></a>00783 <span class="keywordtype">char</span> t[MAXBUF];
-<a name="l00784"></a>00784 <span class="keywordtype">char</span> n[MAXBUF];
-<a name="l00785"></a>00785 strlcpy(t,tag.c_str(),MAXBUF);
-<a name="l00786"></a>00786 strlcpy(n,name.c_str(),MAXBUF);
-<a name="l00787"></a>00787 <span class="keywordtype">int</span> res = Config-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
-<a name="l00788"></a>00788 <span class="keywordflow">if</span> (!res)
-<a name="l00789"></a>00789 {
-<a name="l00790"></a>00790 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
-<a name="l00791"></a>00791 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00792"></a>00792 }
-<a name="l00793"></a>00793 <a class="code" href="namespaceirc.html#string">std::string</a> s = val;
-<a name="l00794"></a>00794 <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>));
-<a name="l00795"></a>00795 }
-<a name="l00796"></a>00796
-<a name="l00797"></a><a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">00797</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ConfigReader::ReadInteger</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned)
-<a name="l00798"></a>00798 {
-<a name="l00799"></a>00799 <span class="keywordtype">char</span> val[MAXBUF];
-<a name="l00800"></a>00800 <span class="keywordtype">char</span> t[MAXBUF];
-<a name="l00801"></a>00801 <span class="keywordtype">char</span> n[MAXBUF];
-<a name="l00802"></a>00802 strlcpy(t,tag.c_str(),MAXBUF);
-<a name="l00803"></a>00803 strlcpy(n,name.c_str(),MAXBUF);
-<a name="l00804"></a>00804 <span class="keywordtype">int</span> res = Config-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
-<a name="l00805"></a>00805 <span class="keywordflow">if</span> (!res)
-<a name="l00806"></a>00806 {
-<a name="l00807"></a>00807 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
-<a name="l00808"></a>00808 <span class="keywordflow">return</span> 0;
-<a name="l00809"></a>00809 }
-<a name="l00810"></a>00810 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(val); i++)
+<a name="l00695"></a>00695 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>(delta.c_str());
+<a name="l00696"></a>00696 }
+<a name="l00697"></a>00697
+<a name="l00698"></a><a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">00698</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">Server::IsValidMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask)
+<a name="l00699"></a>00699 {
+<a name="l00700"></a>00700 <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str();
+<a name="l00701"></a>00701 <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0)
+<a name="l00702"></a>00702 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00703"></a>00703 <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0)
+<a name="l00704"></a>00704 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00705"></a>00705 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00706"></a>00706 <span class="keywordflow">if</span> (dest[i] &lt; 32)
+<a name="l00707"></a>00707 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00708"></a>00708 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00709"></a>00709 <span class="keywordflow">if</span> (dest[i] &gt; 126)
+<a name="l00710"></a>00710 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00711"></a>00711 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> c = 0;
+<a name="l00712"></a>00712 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00713"></a>00713 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>)
+<a name="l00714"></a>00714 c++;
+<a name="l00715"></a>00715 <span class="keywordflow">if</span> (c&gt;1)
+<a name="l00716"></a>00716 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00717"></a>00717 c = 0;
+<a name="l00718"></a>00718 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00719"></a>00719 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>)
+<a name="l00720"></a>00720 c++;
+<a name="l00721"></a>00721 <span class="keywordflow">if</span> (c&gt;1)
+<a name="l00722"></a>00722 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00723"></a>00723
+<a name="l00724"></a>00724 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00725"></a>00725 }
+<a name="l00726"></a>00726
+<a name="l00727"></a><a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">00727</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">Server::FindModule</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name)
+<a name="l00728"></a>00728 {
+<a name="l00729"></a>00729 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>; i++)
+<a name="l00730"></a>00730 {
+<a name="l00731"></a>00731 <span class="keywordflow">if</span> (Config-&gt;<a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>[i] == name)
+<a name="l00732"></a>00732 {
+<a name="l00733"></a>00733 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#modules">modules</a>[i];
+<a name="l00734"></a>00734 }
+<a name="l00735"></a>00735 }
+<a name="l00736"></a>00736 <span class="keywordflow">return</span> NULL;
+<a name="l00737"></a>00737 }
+<a name="l00738"></a>00738
+<a name="l00739"></a><a class="code" href="classConfigReader.html#ConfigReader_28_29">00739</a> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader::ConfigReader</a>()
+<a name="l00740"></a>00740 {
+<a name="l00741"></a>00741 Config-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
+<a name="l00742"></a>00742 this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00743"></a>00743 this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00744"></a>00744 this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = Config-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(CONFIG_FILE,this-&gt;cache,this-&gt;errorlog);
+<a name="l00745"></a>00745 <span class="keywordflow">if</span> (!this-&gt;readerror)
+<a name="l00746"></a>00746 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
+<a name="l00747"></a>00747 }
+<a name="l00748"></a>00748
+<a name="l00749"></a>00749
+<a name="l00750"></a><a class="code" href="classConfigReader.html#_7EConfigReader_28_29">00750</a> <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">ConfigReader::~ConfigReader</a>()
+<a name="l00751"></a>00751 {
+<a name="l00752"></a>00752 <span class="keywordflow">if</span> (this-&gt;cache)
+<a name="l00753"></a>00753 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>;
+<a name="l00754"></a>00754 <span class="keywordflow">if</span> (this-&gt;errorlog)
+<a name="l00755"></a>00755 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
+<a name="l00756"></a>00756 }
+<a name="l00757"></a>00757
+<a name="l00758"></a>00758
+<a name="l00759"></a><a class="code" href="classConfigReader.html#ConfigReader_28std_3A_3Astring_20filename_29">00759</a> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader::ConfigReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename)
+<a name="l00760"></a>00760 {
+<a name="l00761"></a>00761 Config-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
+<a name="l00762"></a>00762 this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00763"></a>00763 this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00764"></a>00764 this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = Config-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>,this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>);
+<a name="l00765"></a>00765 <span class="keywordflow">if</span> (!this-&gt;readerror)
+<a name="l00766"></a>00766 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
+<a name="l00767"></a>00767 };
+<a name="l00768"></a>00768
+<a name="l00769"></a><a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">00769</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader::ReadValue</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index)
+<a name="l00770"></a>00770 {
+<a name="l00771"></a>00771 <span class="keywordtype">char</span> val[MAXBUF];
+<a name="l00772"></a>00772 <span class="keywordtype">char</span> t[MAXBUF];
+<a name="l00773"></a>00773 <span class="keywordtype">char</span> n[MAXBUF];
+<a name="l00774"></a>00774 strlcpy(t,tag.c_str(),MAXBUF);
+<a name="l00775"></a>00775 strlcpy(n,name.c_str(),MAXBUF);
+<a name="l00776"></a>00776 <span class="keywordtype">int</span> res = Config-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
+<a name="l00777"></a>00777 <span class="keywordflow">if</span> (!res)
+<a name="l00778"></a>00778 {
+<a name="l00779"></a>00779 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
+<a name="l00780"></a>00780 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00781"></a>00781 }
+<a name="l00782"></a>00782 <span class="keywordflow">return</span> val;
+<a name="l00783"></a>00783 }
+<a name="l00784"></a>00784
+<a name="l00785"></a><a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">00785</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader::ReadFlag</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index)
+<a name="l00786"></a>00786 {
+<a name="l00787"></a>00787 <span class="keywordtype">char</span> val[MAXBUF];
+<a name="l00788"></a>00788 <span class="keywordtype">char</span> t[MAXBUF];
+<a name="l00789"></a>00789 <span class="keywordtype">char</span> n[MAXBUF];
+<a name="l00790"></a>00790 strlcpy(t,tag.c_str(),MAXBUF);
+<a name="l00791"></a>00791 strlcpy(n,name.c_str(),MAXBUF);
+<a name="l00792"></a>00792 <span class="keywordtype">int</span> res = Config-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
+<a name="l00793"></a>00793 <span class="keywordflow">if</span> (!res)
+<a name="l00794"></a>00794 {
+<a name="l00795"></a>00795 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
+<a name="l00796"></a>00796 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00797"></a>00797 }
+<a name="l00798"></a>00798 <a class="code" href="namespaceirc.html#string">std::string</a> s = val;
+<a name="l00799"></a>00799 <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>));
+<a name="l00800"></a>00800 }
+<a name="l00801"></a>00801
+<a name="l00802"></a><a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">00802</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ConfigReader::ReadInteger</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned)
+<a name="l00803"></a>00803 {
+<a name="l00804"></a>00804 <span class="keywordtype">char</span> val[MAXBUF];
+<a name="l00805"></a>00805 <span class="keywordtype">char</span> t[MAXBUF];
+<a name="l00806"></a>00806 <span class="keywordtype">char</span> n[MAXBUF];
+<a name="l00807"></a>00807 strlcpy(t,tag.c_str(),MAXBUF);
+<a name="l00808"></a>00808 strlcpy(n,name.c_str(),MAXBUF);
+<a name="l00809"></a>00809 <span class="keywordtype">int</span> res = Config-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
+<a name="l00810"></a>00810 <span class="keywordflow">if</span> (!res)
<a name="l00811"></a>00811 {
-<a name="l00812"></a>00812 <span class="keywordflow">if</span> (!isdigit(val[i]))
-<a name="l00813"></a>00813 {
-<a name="l00814"></a>00814 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">CONF_NOT_A_NUMBER</a>;
-<a name="l00815"></a>00815 <span class="keywordflow">return</span> 0;
-<a name="l00816"></a>00816 }
-<a name="l00817"></a>00817 }
-<a name="l00818"></a>00818 <span class="keywordflow">if</span> ((needs_unsigned) &amp;&amp; (atoi(val)&lt;0))
-<a name="l00819"></a>00819 {
-<a name="l00820"></a>00820 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">CONF_NOT_UNSIGNED</a>;
-<a name="l00821"></a>00821 <span class="keywordflow">return</span> 0;
+<a name="l00812"></a>00812 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
+<a name="l00813"></a>00813 <span class="keywordflow">return</span> 0;
+<a name="l00814"></a>00814 }
+<a name="l00815"></a>00815 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(val); i++)
+<a name="l00816"></a>00816 {
+<a name="l00817"></a>00817 <span class="keywordflow">if</span> (!isdigit(val[i]))
+<a name="l00818"></a>00818 {
+<a name="l00819"></a>00819 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">CONF_NOT_A_NUMBER</a>;
+<a name="l00820"></a>00820 <span class="keywordflow">return</span> 0;
+<a name="l00821"></a>00821 }
<a name="l00822"></a>00822 }
-<a name="l00823"></a>00823 <span class="keywordflow">return</span> atoi(val);
-<a name="l00824"></a>00824 }
-<a name="l00825"></a>00825
-<a name="l00826"></a><a class="code" href="classConfigReader.html#GetError_28_29">00826</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">ConfigReader::GetError</a>()
-<a name="l00827"></a>00827 {
-<a name="l00828"></a>00828 <span class="keywordtype">long</span> olderr = this-&gt;<a class="code" href="classConfigReader.html#error">error</a>;
-<a name="l00829"></a>00829 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = 0;
-<a name="l00830"></a>00830 <span class="keywordflow">return</span> olderr;
-<a name="l00831"></a>00831 }
-<a name="l00832"></a>00832
-<a name="l00833"></a><a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">00833</a> <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">ConfigReader::DumpErrors</a>(<span class="keywordtype">bool</span> bail, <a class="code" href="classuserrec.html">userrec</a>* user)
-<a name="l00834"></a>00834 {
-<a name="l00835"></a>00835 <span class="keywordflow">if</span> (bail)
-<a name="l00836"></a>00836 {
-<a name="l00837"></a>00837 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;str().c_str());
-<a name="l00838"></a>00838 exit(0);
-<a name="l00839"></a>00839 }
-<a name="l00840"></a>00840 <span class="keywordflow">else</span>
+<a name="l00823"></a>00823 <span class="keywordflow">if</span> ((needs_unsigned) &amp;&amp; (atoi(val)&lt;0))
+<a name="l00824"></a>00824 {
+<a name="l00825"></a>00825 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">CONF_NOT_UNSIGNED</a>;
+<a name="l00826"></a>00826 <span class="keywordflow">return</span> 0;
+<a name="l00827"></a>00827 }
+<a name="l00828"></a>00828 <span class="keywordflow">return</span> atoi(val);
+<a name="l00829"></a>00829 }
+<a name="l00830"></a>00830
+<a name="l00831"></a><a class="code" href="classConfigReader.html#GetError_28_29">00831</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">ConfigReader::GetError</a>()
+<a name="l00832"></a>00832 {
+<a name="l00833"></a>00833 <span class="keywordtype">long</span> olderr = this-&gt;<a class="code" href="classConfigReader.html#error">error</a>;
+<a name="l00834"></a>00834 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = 0;
+<a name="l00835"></a>00835 <span class="keywordflow">return</span> olderr;
+<a name="l00836"></a>00836 }
+<a name="l00837"></a>00837
+<a name="l00838"></a><a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">00838</a> <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">ConfigReader::DumpErrors</a>(<span class="keywordtype">bool</span> bail, <a class="code" href="classuserrec.html">userrec</a>* user)
+<a name="l00839"></a>00839 {
+<a name="l00840"></a>00840 <span class="keywordflow">if</span> (bail)
<a name="l00841"></a>00841 {
-<a name="l00842"></a>00842 <span class="keywordtype">char</span> dataline[1024];
-<a name="l00843"></a>00843 <span class="keywordflow">if</span> (user)
-<a name="l00844"></a>00844 {
-<a name="l00845"></a>00845 WriteServ(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
-<a name="l00846"></a>00846 <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
-<a name="l00847"></a>00847 {
-<a name="l00848"></a>00848 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
-<a name="l00849"></a>00849 WriteServ(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,dataline);
-<a name="l00850"></a>00850 }
-<a name="l00851"></a>00851 }
-<a name="l00852"></a>00852 <span class="keywordflow">else</span>
-<a name="l00853"></a>00853 {
-<a name="l00854"></a>00854 WriteOpers(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
-<a name="l00855"></a>00855 <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
-<a name="l00856"></a>00856 {
-<a name="l00857"></a>00857 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
-<a name="l00858"></a>00858 WriteOpers(dataline);
-<a name="l00859"></a>00859 }
-<a name="l00860"></a>00860 }
-<a name="l00861"></a>00861 <span class="keywordflow">return</span>;
-<a name="l00862"></a>00862 }
-<a name="l00863"></a>00863 }
-<a name="l00864"></a>00864
-<a name="l00865"></a>00865
-<a name="l00866"></a><a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">00866</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">ConfigReader::Enumerate</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag)
-<a name="l00867"></a>00867 {
-<a name="l00868"></a>00868 <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,tag.c_str());
-<a name="l00869"></a>00869 }
+<a name="l00842"></a>00842 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;str().c_str());
+<a name="l00843"></a>00843 exit(0);
+<a name="l00844"></a>00844 }
+<a name="l00845"></a>00845 <span class="keywordflow">else</span>
+<a name="l00846"></a>00846 {
+<a name="l00847"></a>00847 <span class="keywordtype">char</span> dataline[1024];
+<a name="l00848"></a>00848 <span class="keywordflow">if</span> (user)
+<a name="l00849"></a>00849 {
+<a name="l00850"></a>00850 WriteServ(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00851"></a>00851 <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
+<a name="l00852"></a>00852 {
+<a name="l00853"></a>00853 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
+<a name="l00854"></a>00854 WriteServ(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,dataline);
+<a name="l00855"></a>00855 }
+<a name="l00856"></a>00856 }
+<a name="l00857"></a>00857 <span class="keywordflow">else</span>
+<a name="l00858"></a>00858 {
+<a name="l00859"></a>00859 WriteOpers(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00860"></a>00860 <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
+<a name="l00861"></a>00861 {
+<a name="l00862"></a>00862 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
+<a name="l00863"></a>00863 WriteOpers(dataline);
+<a name="l00864"></a>00864 }
+<a name="l00865"></a>00865 }
+<a name="l00866"></a>00866 <span class="keywordflow">return</span>;
+<a name="l00867"></a>00867 }
+<a name="l00868"></a>00868 }
+<a name="l00869"></a>00869
<a name="l00870"></a>00870
-<a name="l00871"></a><a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">00871</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">ConfigReader::EnumerateValues</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <span class="keywordtype">int</span> index)
+<a name="l00871"></a><a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">00871</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">ConfigReader::Enumerate</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag)
<a name="l00872"></a>00872 {
-<a name="l00873"></a>00873 <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(<a class="code" href="classConfigReader.html#cache">cache</a>, tag.c_str(), index);
+<a name="l00873"></a>00873 <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,tag.c_str());
<a name="l00874"></a>00874 }
<a name="l00875"></a>00875
-<a name="l00876"></a><a class="code" href="classConfigReader.html#Verify_28_29">00876</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">ConfigReader::Verify</a>()
+<a name="l00876"></a><a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">00876</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">ConfigReader::EnumerateValues</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <span class="keywordtype">int</span> index)
<a name="l00877"></a>00877 {
-<a name="l00878"></a>00878 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a>;
+<a name="l00878"></a>00878 <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(<a class="code" href="classConfigReader.html#cache">cache</a>, tag.c_str(), index);
<a name="l00879"></a>00879 }
<a name="l00880"></a>00880
-<a name="l00881"></a>00881
-<a name="l00882"></a><a class="code" href="classFileReader.html#FileReader_28std_3A_3Astring_20filename_29">00882</a> <a class="code" href="classFileReader.html#FileReader_28_29">FileReader::FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename)
-<a name="l00883"></a>00883 {
-<a name="l00884"></a>00884 <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> c;
-<a name="l00885"></a>00885 readfile(c,filename.c_str());
-<a name="l00886"></a>00886 this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
-<a name="l00887"></a>00887 }
-<a name="l00888"></a>00888
-<a name="l00889"></a><a class="code" href="classFileReader.html#FileReader_28_29">00889</a> <a class="code" href="classFileReader.html#FileReader_28_29">FileReader::FileReader</a>()
-<a name="l00890"></a>00890 {
-<a name="l00891"></a>00891 }
-<a name="l00892"></a>00892
-<a name="l00893"></a><a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">00893</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">FileReader::LoadFile</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename)
-<a name="l00894"></a>00894 {
-<a name="l00895"></a>00895 <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> c;
-<a name="l00896"></a>00896 readfile(c,filename.c_str());
-<a name="l00897"></a>00897 this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
-<a name="l00898"></a>00898 }
-<a name="l00899"></a>00899
-<a name="l00900"></a>00900
-<a name="l00901"></a><a class="code" href="classFileReader.html#_7EFileReader_28_29">00901</a> <a class="code" href="classFileReader.html#_7EFileReader_28_29">FileReader::~FileReader</a>()
-<a name="l00902"></a>00902 {
+<a name="l00881"></a><a class="code" href="classConfigReader.html#Verify_28_29">00881</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">ConfigReader::Verify</a>()
+<a name="l00882"></a>00882 {
+<a name="l00883"></a>00883 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a>;
+<a name="l00884"></a>00884 }
+<a name="l00885"></a>00885
+<a name="l00886"></a>00886
+<a name="l00887"></a><a class="code" href="classFileReader.html#FileReader_28std_3A_3Astring_20filename_29">00887</a> <a class="code" href="classFileReader.html#FileReader_28_29">FileReader::FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename)
+<a name="l00888"></a>00888 {
+<a name="l00889"></a>00889 <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> c;
+<a name="l00890"></a>00890 readfile(c,filename.c_str());
+<a name="l00891"></a>00891 this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
+<a name="l00892"></a>00892 }
+<a name="l00893"></a>00893
+<a name="l00894"></a><a class="code" href="classFileReader.html#FileReader_28_29">00894</a> <a class="code" href="classFileReader.html#FileReader_28_29">FileReader::FileReader</a>()
+<a name="l00895"></a>00895 {
+<a name="l00896"></a>00896 }
+<a name="l00897"></a>00897
+<a name="l00898"></a><a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">00898</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">FileReader::LoadFile</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename)
+<a name="l00899"></a>00899 {
+<a name="l00900"></a>00900 <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> c;
+<a name="l00901"></a>00901 readfile(c,filename.c_str());
+<a name="l00902"></a>00902 this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
<a name="l00903"></a>00903 }
<a name="l00904"></a>00904
-<a name="l00905"></a><a class="code" href="classFileReader.html#Exists_28_29">00905</a> <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">FileReader::Exists</a>()
-<a name="l00906"></a>00906 {
-<a name="l00907"></a>00907 <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#fc">fc</a>.size() == 0)
-<a name="l00908"></a>00908 {
-<a name="l00909"></a>00909 <span class="keywordflow">return</span>(<span class="keyword">false</span>);
-<a name="l00910"></a>00910 }
-<a name="l00911"></a>00911 <span class="keywordflow">else</span>
-<a name="l00912"></a>00912 {
-<a name="l00913"></a>00913 <span class="keywordflow">return</span>(<span class="keyword">true</span>);
-<a name="l00914"></a>00914 }
-<a name="l00915"></a>00915 }
-<a name="l00916"></a>00916
-<a name="l00917"></a><a class="code" href="classFileReader.html#GetLine_28int_20x_29">00917</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classFileReader.html#GetLine_28int_20x_29">FileReader::GetLine</a>(<span class="keywordtype">int</span> x)
-<a name="l00918"></a>00918 {
-<a name="l00919"></a>00919 <span class="keywordflow">if</span> ((x&lt;0) || ((<span class="keywordtype">unsigned</span>)x&gt;<a class="code" href="classFileReader.html#fc">fc</a>.size()))
-<a name="l00920"></a>00920 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00921"></a>00921 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>[x];
-<a name="l00922"></a>00922 }
-<a name="l00923"></a>00923
-<a name="l00924"></a><a class="code" href="classFileReader.html#FileSize_28_29">00924</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileReader::FileSize</a>()
-<a name="l00925"></a>00925 {
-<a name="l00926"></a>00926 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>.size();
+<a name="l00905"></a>00905
+<a name="l00906"></a><a class="code" href="classFileReader.html#_7EFileReader_28_29">00906</a> <a class="code" href="classFileReader.html#_7EFileReader_28_29">FileReader::~FileReader</a>()
+<a name="l00907"></a>00907 {
+<a name="l00908"></a>00908 }
+<a name="l00909"></a>00909
+<a name="l00910"></a><a class="code" href="classFileReader.html#Exists_28_29">00910</a> <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">FileReader::Exists</a>()
+<a name="l00911"></a>00911 {
+<a name="l00912"></a>00912 <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#fc">fc</a>.size() == 0)
+<a name="l00913"></a>00913 {
+<a name="l00914"></a>00914 <span class="keywordflow">return</span>(<span class="keyword">false</span>);
+<a name="l00915"></a>00915 }
+<a name="l00916"></a>00916 <span class="keywordflow">else</span>
+<a name="l00917"></a>00917 {
+<a name="l00918"></a>00918 <span class="keywordflow">return</span>(<span class="keyword">true</span>);
+<a name="l00919"></a>00919 }
+<a name="l00920"></a>00920 }
+<a name="l00921"></a>00921
+<a name="l00922"></a><a class="code" href="classFileReader.html#GetLine_28int_20x_29">00922</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classFileReader.html#GetLine_28int_20x_29">FileReader::GetLine</a>(<span class="keywordtype">int</span> x)
+<a name="l00923"></a>00923 {
+<a name="l00924"></a>00924 <span class="keywordflow">if</span> ((x&lt;0) || ((<span class="keywordtype">unsigned</span>)x&gt;<a class="code" href="classFileReader.html#fc">fc</a>.size()))
+<a name="l00925"></a>00925 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00926"></a>00926 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>[x];
<a name="l00927"></a>00927 }
<a name="l00928"></a>00928
-<a name="l00929"></a>00929
-<a name="l00930"></a>00930 std::vector&lt;Module*&gt; <a class="code" href="channels_8cpp.html#modules">modules</a>(255);
-<a name="l00931"></a>00931 std::vector&lt;ircd_module*&gt; <a class="code" href="channels_8cpp.html#factory">factory</a>(255);
-<a name="l00932"></a>00932
-<a name="l00933"></a><a class="code" href="modules_8cpp.html#MODCOUNT">00933</a> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a> = -1;
+<a name="l00929"></a><a class="code" href="classFileReader.html#FileSize_28_29">00929</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileReader::FileSize</a>()
+<a name="l00930"></a>00930 {
+<a name="l00931"></a>00931 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>.size();
+<a name="l00932"></a>00932 }
+<a name="l00933"></a>00933
<a name="l00934"></a>00934
-<a name="l00935"></a>00935
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by&nbsp;
+<a name="l00935"></a>00935 std::vector&lt;Module*&gt; <a class="code" href="channels_8cpp.html#modules">modules</a>(255);
+<a name="l00936"></a>00936 std::vector&lt;ircd_module*&gt; <a class="code" href="channels_8cpp.html#factory">factory</a>(255);
+<a name="l00937"></a>00937
+<a name="l00938"></a><a class="code" href="modules_8cpp.html#MODCOUNT">00938</a> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a> = -1;
+<a name="l00939"></a>00939
+<a name="l00940"></a>00940
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/modules_8cpp.html b/docs/module-doc/modules_8cpp.html
index cbc72e984..d6774b4b9 100644
--- a/docs/module-doc/modules_8cpp.html
+++ b/docs/module-doc/modules_8cpp.html
@@ -177,7 +177,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00142">142</a>
<p>
References <a class="el" href="modules_8cpp-source.html#l00076">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00079">ModeDefined()</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00582">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00554">Server::AddExtendedMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00143"></a>00143 {
+Referenced by <a class="el" href="modules_8cpp-source.html#l00587">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00559">Server::AddExtendedMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00143"></a>00143 {
<a name="l00144"></a>00144 <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(modechar,type)) {
<a name="l00145"></a>00145 <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00146"></a>00146 }
@@ -515,7 +515,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00152">152</a>
<p>
References <a class="el" href="modules_8cpp-source.html#l00076">EMode</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#l00582">Server::AddExtendedListMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00153"></a>00153 {
+Referenced by <a class="el" href="modules_8cpp-source.html#l00587">Server::AddExtendedListMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00153"></a>00153 {
<a name="l00154"></a>00154 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
<a name="l00155"></a>00155 {
<a name="l00156"></a>00156 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == <a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>))
@@ -793,7 +793,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00142">DoAddExtended
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00933">933</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#l00938">938</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
</tr>
</table>
<a class="anchor" name="module_5Fsockets"></a><!-- doxytag: member="modules.cpp::module_sockets" ref="module_5Fsockets" args="" --><p>
@@ -818,7 +818,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00933">933</a>
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00321">Server::AddSocket()</a>, and <a class="el" href="modules_8cpp-source.html#l00332">Server::DelSocket()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00321">Server::AddSocket()</a>, and <a class="el" href="modules_8cpp-source.html#l00337">Server::DelSocket()</a>. </td>
</tr>
</table>
<a class="anchor" name="modules"></a><!-- doxytag: member="modules.cpp::modules" ref="modules" args="" --><p>
@@ -1028,7 +1028,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00321">Server::AddSo
</td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:24 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/modules_8h-source.html b/docs/module-doc/modules_8h-source.html
index d1efc44d8..e1258b2ec 100644
--- a/docs/module-doc/modules_8h-source.html
+++ b/docs/module-doc/modules_8h-source.html
@@ -366,164 +366,164 @@
<a name="l01098"></a>01098 <span class="keyword">public</span>:
<a name="l01102"></a>01102 <a class="code" href="classServer.html#Server_28_29">Server</a>();
<a name="l01106"></a>01106 <span class="keyword">virtual</span> <a class="code" href="classServer.html#_7EServer_28_29">~Server</a>();
-<a name="l01107"></a>01107
-<a name="l01111"></a>01111 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">SendOpers</a>(<a class="code" href="namespaceirc.html#string">std::string</a> s);
-<a name="l01116"></a>01116 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Log</a>(<span class="keywordtype">int</span> level, <a class="code" href="namespaceirc.html#string">std::string</a> s);
-<a name="l01121"></a>01121 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Send</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s);
-<a name="l01126"></a>01126 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">SendServ</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s);
-<a name="l01130"></a>01130 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">SendChannelServerNotice</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> text);
-<a name="l01135"></a>01135 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> s);
-<a name="l01150"></a>01150 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, <a class="code" href="namespaceirc.html#string">std::string</a> s);
-<a name="l01157"></a>01157 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> s,<span class="keywordtype">bool</span> IncludeSender);
-<a name="l01162"></a>01162 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2);
-<a name="l01170"></a>01170 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text,<span class="keywordtype">bool</span> IncludeSender);
-<a name="l01175"></a>01175 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text);
-<a name="l01176"></a>01176
-<a name="l01180"></a>01180 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">IsNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick);
-<a name="l01184"></a>01184 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c);
-<a name="l01188"></a>01188 <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">FindNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick);
-<a name="l01192"></a>01192 <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">FindDescriptor</a>(<span class="keywordtype">int</span> socket);
-<a name="l01196"></a>01196 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">FindChannel</a>(<a class="code" href="namespaceirc.html#string">std::string</a> channel);
-<a name="l01201"></a>01201 <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
-<a name="l01205"></a>01205 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
-<a name="l01208"></a>01208 <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerName_28_29">GetServerName</a>();
-<a name="l01211"></a>01211 <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetNetworkName_28_29">GetNetworkName</a>();
-<a name="l01214"></a>01214 <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerDescription_28_29">GetServerDescription</a>();
-<a name="l01220"></a>01220 <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#GetAdmin_28_29">GetAdmin</a>();
-<a name="l01239"></a>01239 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">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);
-<a name="l01240"></a>01240
-<a name="l01262"></a>01262 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar);
-<a name="l01263"></a>01263
-<a name="l01281"></a>01281 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">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);
-<a name="l01282"></a>01282
-<a name="l01304"></a>01304 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l01305"></a>01305
-<a name="l01318"></a>01318 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">SendToModeMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes, <span class="keywordtype">int</span> flags, <a class="code" href="namespaceirc.html#string">std::string</a> text);
-<a name="l01319"></a>01319
-<a name="l01325"></a>01325 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> key);
-<a name="l01326"></a>01326
-<a name="l01332"></a>01332 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
-<a name="l01333"></a>01333
-<a name="l01339"></a>01339 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> nickname);
-<a name="l01340"></a>01340
-<a name="l01351"></a>01351 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
-<a name="l01352"></a>01352
-<a name="l01357"></a>01357 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">MatchText</a>(<a class="code" href="namespaceirc.html#string">std::string</a> sliteral, <a class="code" href="namespaceirc.html#string">std::string</a> spattern);
-<a name="l01358"></a>01358
-<a name="l01370"></a>01370 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">CallCommandHandler</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l01371"></a>01371
-<a name="l01372"></a>01372 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">IsValidModuleCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l01373"></a>01373
-<a name="l01379"></a>01379 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> host);
-<a name="l01380"></a>01380
-<a name="l01386"></a>01386 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos);
-<a name="l01387"></a>01387
-<a name="l01396"></a>01396 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">IsUlined</a>(<a class="code" href="namespaceirc.html#string">std::string</a> server);
-<a name="l01397"></a>01397
-<a name="l01401"></a>01401 <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> <a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan);
-<a name="l01402"></a>01402
-<a name="l01409"></a>01409 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="namespaceirc.html#string">std::string</a> message);
-<a name="l01410"></a>01410
-<a name="l01417"></a>01417 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,<a class="code" href="namespaceirc.html#string">std::string</a> message);
-<a name="l01418"></a>01418
-<a name="l01426"></a>01426 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l01427"></a>01427
-<a name="l01435"></a>01435 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">AddQLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickname);
-<a name="l01436"></a>01436
-<a name="l01444"></a>01444 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">AddZLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipaddr);
-<a name="l01445"></a>01445
-<a name="l01453"></a>01453 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddKLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l01454"></a>01454
-<a name="l01462"></a>01462 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddELine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l01463"></a>01463
-<a name="l01466"></a>01466 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">DelGLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01111"></a>01111 <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="classServer.html#GetConfig_28_29">GetConfig</a>();
+<a name="l01115"></a>01115 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">SendOpers</a>(<a class="code" href="namespaceirc.html#string">std::string</a> s);
+<a name="l01120"></a>01120 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Log</a>(<span class="keywordtype">int</span> level, <a class="code" href="namespaceirc.html#string">std::string</a> s);
+<a name="l01125"></a>01125 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Send</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s);
+<a name="l01130"></a>01130 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">SendServ</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s);
+<a name="l01134"></a>01134 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">SendChannelServerNotice</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> text);
+<a name="l01139"></a>01139 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> s);
+<a name="l01154"></a>01154 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, <a class="code" href="namespaceirc.html#string">std::string</a> s);
+<a name="l01161"></a>01161 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> s,<span class="keywordtype">bool</span> IncludeSender);
+<a name="l01166"></a>01166 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2);
+<a name="l01174"></a>01174 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text,<span class="keywordtype">bool</span> IncludeSender);
+<a name="l01179"></a>01179 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text);
+<a name="l01180"></a>01180
+<a name="l01184"></a>01184 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">IsNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick);
+<a name="l01188"></a>01188 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c);
+<a name="l01192"></a>01192 <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">FindNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick);
+<a name="l01196"></a>01196 <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">FindDescriptor</a>(<span class="keywordtype">int</span> socket);
+<a name="l01200"></a>01200 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">FindChannel</a>(<a class="code" href="namespaceirc.html#string">std::string</a> channel);
+<a name="l01205"></a>01205 <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
+<a name="l01209"></a>01209 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
+<a name="l01212"></a>01212 <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerName_28_29">GetServerName</a>();
+<a name="l01215"></a>01215 <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetNetworkName_28_29">GetNetworkName</a>();
+<a name="l01218"></a>01218 <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerDescription_28_29">GetServerDescription</a>();
+<a name="l01224"></a>01224 <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#GetAdmin_28_29">GetAdmin</a>();
+<a name="l01243"></a>01243 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">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);
+<a name="l01244"></a>01244
+<a name="l01266"></a>01266 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar);
+<a name="l01267"></a>01267
+<a name="l01285"></a>01285 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">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);
+<a name="l01286"></a>01286
+<a name="l01308"></a>01308 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
+<a name="l01309"></a>01309
+<a name="l01322"></a>01322 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">SendToModeMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes, <span class="keywordtype">int</span> flags, <a class="code" href="namespaceirc.html#string">std::string</a> text);
+<a name="l01323"></a>01323
+<a name="l01329"></a>01329 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> key);
+<a name="l01330"></a>01330
+<a name="l01336"></a>01336 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
+<a name="l01337"></a>01337
+<a name="l01343"></a>01343 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> nickname);
+<a name="l01344"></a>01344
+<a name="l01355"></a>01355 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
+<a name="l01356"></a>01356
+<a name="l01361"></a>01361 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">MatchText</a>(<a class="code" href="namespaceirc.html#string">std::string</a> sliteral, <a class="code" href="namespaceirc.html#string">std::string</a> spattern);
+<a name="l01362"></a>01362
+<a name="l01374"></a>01374 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">CallCommandHandler</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l01375"></a>01375
+<a name="l01376"></a>01376 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">IsValidModuleCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l01377"></a>01377
+<a name="l01383"></a>01383 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> host);
+<a name="l01384"></a>01384
+<a name="l01390"></a>01390 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos);
+<a name="l01391"></a>01391
+<a name="l01400"></a>01400 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">IsUlined</a>(<a class="code" href="namespaceirc.html#string">std::string</a> server);
+<a name="l01401"></a>01401
+<a name="l01405"></a>01405 <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> <a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan);
+<a name="l01406"></a>01406
+<a name="l01413"></a>01413 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="namespaceirc.html#string">std::string</a> message);
+<a name="l01414"></a>01414
+<a name="l01421"></a>01421 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,<a class="code" href="namespaceirc.html#string">std::string</a> message);
+<a name="l01422"></a>01422
+<a name="l01430"></a>01430 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01431"></a>01431
+<a name="l01439"></a>01439 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">AddQLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickname);
+<a name="l01440"></a>01440
+<a name="l01448"></a>01448 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">AddZLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipaddr);
+<a name="l01449"></a>01449
+<a name="l01457"></a>01457 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddKLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01458"></a>01458
+<a name="l01466"></a>01466 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddELine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
<a name="l01467"></a>01467
-<a name="l01470"></a>01470 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">DelQLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nickname);
+<a name="l01470"></a>01470 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">DelGLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
<a name="l01471"></a>01471
-<a name="l01474"></a>01474 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">DelZLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ipaddr);
+<a name="l01474"></a>01474 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">DelQLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nickname);
<a name="l01475"></a>01475
-<a name="l01478"></a>01478 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">DelKLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01478"></a>01478 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">DelZLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ipaddr);
<a name="l01479"></a>01479
-<a name="l01482"></a>01482 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">DelELine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01482"></a>01482 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">DelKLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
<a name="l01483"></a>01483
-<a name="l01489"></a>01489 <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">CalcDuration</a>(<a class="code" href="namespaceirc.html#string">std::string</a> duration);
-<a name="l01490"></a>01490
-<a name="l01493"></a>01493 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">IsValidMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask);
+<a name="l01486"></a>01486 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">DelELine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01487"></a>01487
+<a name="l01493"></a>01493 <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">CalcDuration</a>(<a class="code" href="namespaceirc.html#string">std::string</a> duration);
<a name="l01494"></a>01494
-<a name="l01499"></a>01499 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">FindModule</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name);
-<a name="l01500"></a>01500
-<a name="l01503"></a>01503 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">AddSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock);
+<a name="l01497"></a>01497 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">IsValidMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask);
+<a name="l01498"></a>01498
+<a name="l01503"></a>01503 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">FindModule</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name);
<a name="l01504"></a>01504
-<a name="l01507"></a>01507 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">DelSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock);
+<a name="l01507"></a>01507 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">AddSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock);
<a name="l01508"></a>01508
-<a name="l01509"></a>01509 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#RehashServer_28_29">RehashServer</a>();
-<a name="l01510"></a>01510 };
-<a name="l01511"></a>01511
+<a name="l01511"></a>01511 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">DelSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock);
<a name="l01512"></a>01512
-<a name="l01513"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">01513</a> <span class="preprocessor">#define CONF_NOT_A_NUMBER 0x000010</span>
-<a name="l01514"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">01514</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_NOT_UNSIGNED 0x000080</span>
-<a name="l01515"></a><a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">01515</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_VALUE_NOT_FOUND 0x000100</span>
-<a name="l01516"></a><a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">01516</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_FILE_NOT_FOUND 0x000200</span>
-<a name="l01517"></a>01517 <span class="preprocessor"></span>
-<a name="l01518"></a>01518
-<a name="l01525"></a><a class="code" href="classConfigReader.html">01525</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>
-<a name="l01526"></a>01526 {
-<a name="l01527"></a>01527 <span class="keyword">protected</span>:
-<a name="l01533"></a><a class="code" href="classConfigReader.html#cache">01533</a> std::stringstream *<a class="code" href="classConfigReader.html#cache">cache</a>;
-<a name="l01534"></a><a class="code" href="classConfigReader.html#errorlog">01534</a> std::stringstream *<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
-<a name="l01537"></a><a class="code" href="classConfigReader.html#readerror">01537</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#readerror">readerror</a>;
-<a name="l01538"></a><a class="code" href="classConfigReader.html#error">01538</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#error">error</a>;
-<a name="l01539"></a>01539
-<a name="l01540"></a>01540 <span class="keyword">public</span>:
-<a name="l01545"></a>01545 <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>(); <span class="comment">// default constructor reads ircd.conf</span>
-<a name="l01549"></a>01549 <span class="comment"></span> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename); <span class="comment">// read a module-specific config</span>
-<a name="l01553"></a>01553 <span class="comment"></span> <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">~ConfigReader</a>();
-<a name="l01558"></a>01558 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ReadValue</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index);
-<a name="l01564"></a>01564 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ReadFlag</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index);
-<a name="l01573"></a>01573 <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ReadInteger</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned);
-<a name="l01578"></a>01578 <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">GetError</a>();
-<a name="l01585"></a>01585 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">Enumerate</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag);
-<a name="l01590"></a>01590 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">Verify</a>();
-<a name="l01597"></a>01597 <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">DumpErrors</a>(<span class="keywordtype">bool</span> bail,<a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l01598"></a>01598
-<a name="l01604"></a>01604 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">EnumerateValues</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <span class="keywordtype">int</span> index);
-<a name="l01605"></a>01605 };
-<a name="l01606"></a>01606
-<a name="l01607"></a>01607
-<a name="l01608"></a>01608
-<a name="l01614"></a><a class="code" href="classFileReader.html">01614</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>
-<a name="l01615"></a>01615 {
-<a name="l01616"></a><a class="code" href="classFileReader.html#fc">01616</a> <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classFileReader.html#fc">fc</a>;
-<a name="l01617"></a>01617 <span class="keyword">public</span>:
-<a name="l01622"></a>01622 <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>();
-<a name="l01623"></a>01623
-<a name="l01629"></a>01629 <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
-<a name="l01630"></a>01630
-<a name="l01634"></a>01634 <a class="code" href="classFileReader.html#_7EFileReader_28_29">~FileReader</a>();
-<a name="l01635"></a>01635
-<a name="l01641"></a>01641 <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">LoadFile</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
-<a name="l01642"></a>01642
-<a name="l01646"></a>01646 <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">Exists</a>();
-<a name="l01647"></a>01647
-<a name="l01652"></a>01652 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classFileReader.html#GetLine_28int_20x_29">GetLine</a>(<span class="keywordtype">int</span> x);
-<a name="l01653"></a>01653
-<a name="l01659"></a>01659 <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileSize</a>();
-<a name="l01660"></a>01660 };
-<a name="l01661"></a>01661
-<a name="l01662"></a>01662
-<a name="l01669"></a><a class="code" href="classModuleFactory.html">01669</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>
-<a name="l01670"></a>01670 {
-<a name="l01671"></a>01671 <span class="keyword">public</span>:
-<a name="l01672"></a><a class="code" href="classModuleFactory.html#ModuleFactory_28_29">01672</a> <a class="code" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a>() { }
-<a name="l01673"></a><a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">01673</a> <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">~ModuleFactory</a>() { }
-<a name="l01678"></a>01678 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#CreateModule_28Server_20_2AMe_29_3D_30">CreateModule</a>(<a class="code" href="classServer.html">Server</a>* Me) = 0;
-<a name="l01679"></a>01679 };
-<a name="l01680"></a>01680
-<a name="l01681"></a>01681
-<a name="l01682"></a><a class="code" href="modules_8h.html#ircd_5Fmodule">01682</a> <span class="keyword">typedef</span> DLLFactory&lt;ModuleFactory&gt; <a class="code" href="modules_8h.html#ircd_5Fmodule">ircd_module</a>;
-<a name="l01683"></a>01683
-<a name="l01684"></a>01684 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by&nbsp;
+<a name="l01513"></a>01513 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#RehashServer_28_29">RehashServer</a>();
+<a name="l01514"></a>01514 };
+<a name="l01515"></a>01515
+<a name="l01516"></a>01516
+<a name="l01517"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">01517</a> <span class="preprocessor">#define CONF_NOT_A_NUMBER 0x000010</span>
+<a name="l01518"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">01518</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_NOT_UNSIGNED 0x000080</span>
+<a name="l01519"></a><a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">01519</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_VALUE_NOT_FOUND 0x000100</span>
+<a name="l01520"></a><a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">01520</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_FILE_NOT_FOUND 0x000200</span>
+<a name="l01521"></a>01521 <span class="preprocessor"></span>
+<a name="l01522"></a>01522
+<a name="l01529"></a><a class="code" href="classConfigReader.html">01529</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>
+<a name="l01530"></a>01530 {
+<a name="l01531"></a>01531 <span class="keyword">protected</span>:
+<a name="l01537"></a><a class="code" href="classConfigReader.html#cache">01537</a> std::stringstream *<a class="code" href="classConfigReader.html#cache">cache</a>;
+<a name="l01538"></a><a class="code" href="classConfigReader.html#errorlog">01538</a> std::stringstream *<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
+<a name="l01541"></a><a class="code" href="classConfigReader.html#readerror">01541</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#readerror">readerror</a>;
+<a name="l01542"></a><a class="code" href="classConfigReader.html#error">01542</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#error">error</a>;
+<a name="l01543"></a>01543
+<a name="l01544"></a>01544 <span class="keyword">public</span>:
+<a name="l01549"></a>01549 <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>(); <span class="comment">// default constructor reads ircd.conf</span>
+<a name="l01553"></a>01553 <span class="comment"></span> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename); <span class="comment">// read a module-specific config</span>
+<a name="l01557"></a>01557 <span class="comment"></span> <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">~ConfigReader</a>();
+<a name="l01562"></a>01562 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ReadValue</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index);
+<a name="l01568"></a>01568 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ReadFlag</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index);
+<a name="l01577"></a>01577 <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ReadInteger</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned);
+<a name="l01582"></a>01582 <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">GetError</a>();
+<a name="l01589"></a>01589 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">Enumerate</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag);
+<a name="l01594"></a>01594 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">Verify</a>();
+<a name="l01601"></a>01601 <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">DumpErrors</a>(<span class="keywordtype">bool</span> bail,<a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l01602"></a>01602
+<a name="l01608"></a>01608 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">EnumerateValues</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <span class="keywordtype">int</span> index);
+<a name="l01609"></a>01609 };
+<a name="l01610"></a>01610
+<a name="l01611"></a>01611
+<a name="l01612"></a>01612
+<a name="l01618"></a><a class="code" href="classFileReader.html">01618</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>
+<a name="l01619"></a>01619 {
+<a name="l01620"></a><a class="code" href="classFileReader.html#fc">01620</a> <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classFileReader.html#fc">fc</a>;
+<a name="l01621"></a>01621 <span class="keyword">public</span>:
+<a name="l01626"></a>01626 <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>();
+<a name="l01627"></a>01627
+<a name="l01633"></a>01633 <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
+<a name="l01634"></a>01634
+<a name="l01638"></a>01638 <a class="code" href="classFileReader.html#_7EFileReader_28_29">~FileReader</a>();
+<a name="l01639"></a>01639
+<a name="l01645"></a>01645 <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">LoadFile</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
+<a name="l01646"></a>01646
+<a name="l01650"></a>01650 <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">Exists</a>();
+<a name="l01651"></a>01651
+<a name="l01656"></a>01656 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classFileReader.html#GetLine_28int_20x_29">GetLine</a>(<span class="keywordtype">int</span> x);
+<a name="l01657"></a>01657
+<a name="l01663"></a>01663 <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileSize</a>();
+<a name="l01664"></a>01664 };
+<a name="l01665"></a>01665
+<a name="l01666"></a>01666
+<a name="l01673"></a><a class="code" href="classModuleFactory.html">01673</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>
+<a name="l01674"></a>01674 {
+<a name="l01675"></a>01675 <span class="keyword">public</span>:
+<a name="l01676"></a><a class="code" href="classModuleFactory.html#ModuleFactory_28_29">01676</a> <a class="code" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a>() { }
+<a name="l01677"></a><a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">01677</a> <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">~ModuleFactory</a>() { }
+<a name="l01682"></a>01682 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#CreateModule_28Server_20_2AMe_29_3D_30">CreateModule</a>(<a class="code" href="classServer.html">Server</a>* Me) = 0;
+<a name="l01683"></a>01683 };
+<a name="l01684"></a>01684
+<a name="l01685"></a>01685
+<a name="l01686"></a><a class="code" href="modules_8h.html#ircd_5Fmodule">01686</a> <span class="keyword">typedef</span> DLLFactory&lt;ModuleFactory&gt; <a class="code" href="modules_8h.html#ircd_5Fmodule">ircd_module</a>;
+<a name="l01687"></a>01687
+<a name="l01688"></a>01688 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/modules_8h.html b/docs/module-doc/modules_8h.html
index 53cd259b8..82ac53cf0 100644
--- a/docs/module-doc/modules_8h.html
+++ b/docs/module-doc/modules_8h.html
@@ -479,9 +479,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#l01516">1516</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#l01520">1520</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#l00734">ConfigReader::ConfigReader()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00739">ConfigReader::ConfigReader()</a>. </td>
</tr>
</table>
<a class="anchor" name="CONF_5FNOT_5FA_5FNUMBER"></a><!-- doxytag: member="modules.h::CONF_NOT_A_NUMBER" ref="CONF_5FNOT_5FA_5FNUMBER" args="" --><p>
@@ -506,9 +506,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00734">ConfigReader:
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l01513">1513</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#l01517">1517</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#l00797">ConfigReader::ReadInteger()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00802">ConfigReader::ReadInteger()</a>. </td>
</tr>
</table>
<a class="anchor" name="CONF_5FNOT_5FUNSIGNED"></a><!-- doxytag: member="modules.h::CONF_NOT_UNSIGNED" ref="CONF_5FNOT_5FUNSIGNED" args="" --><p>
@@ -533,9 +533,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00797">ConfigReader:
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l01514">1514</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#l01518">1518</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#l00797">ConfigReader::ReadInteger()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00802">ConfigReader::ReadInteger()</a>. </td>
</tr>
</table>
<a class="anchor" name="CONF_5FVALUE_5FNOT_5FFOUND"></a><!-- doxytag: member="modules.h::CONF_VALUE_NOT_FOUND" ref="CONF_5FVALUE_5FNOT_5FFOUND" args="" --><p>
@@ -560,9 +560,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00797">ConfigReader:
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l01515">1515</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#l01519">1519</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#l00780">ConfigReader::ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00797">ConfigReader::ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00764">ConfigReader::ReadValue()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00785">ConfigReader::ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00802">ConfigReader::ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00769">ConfigReader::ReadValue()</a>. </td>
</tr>
</table>
<a class="anchor" name="DEBUG"></a><!-- doxytag: member="modules.h::DEBUG" ref="DEBUG" args="" --><p>
@@ -641,7 +641,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#l00101">101</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#l00608">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00596">Server::UserToPseudo()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00613">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00601">Server::UserToPseudo()</a>. </td>
</tr>
</table>
<a class="anchor" name="FOREACH_5FMOD"></a><!-- doxytag: member="modules.h::FOREACH_MOD" ref="FOREACH_5FMOD" args="" --><p>
@@ -736,7 +736,7 @@ Used with OnExtendedMode() method of modules.
<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#l00582">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00152">ModeMakeList()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00587">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00152">ModeMakeList()</a>. </td>
</tr>
</table>
<a class="anchor" name="MT_5FCLIENT"></a><!-- doxytag: member="modules.h::MT_CLIENT" ref="MT_5FCLIENT" args="" --><p>
@@ -763,7 +763,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00582">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#l00554">Server::AddExtendedMode()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00559">Server::AddExtendedMode()</a>. </td>
</tr>
</table>
<a class="anchor" name="MT_5FSERVER"></a><!-- doxytag: member="modules.h::MT_SERVER" ref="MT_5FSERVER" args="" --><p>
@@ -790,7 +790,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00554">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#l00554">Server::AddExtendedMode()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00559">Server::AddExtendedMode()</a>. </td>
</tr>
</table>
<a class="anchor" name="NONE"></a><!-- doxytag: member="modules.h::NONE" ref="NONE" args="" --><p>
@@ -1049,7 +1049,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00065">65</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l01682">1682</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#l01686">1686</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
</tr>
</table>
<a class="anchor" name="string_5Flist"></a><!-- doxytag: member="modules.h::string_list" ref="string_5Flist" args="" --><p>
@@ -1132,7 +1132,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00070">70</a> of
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00414">Server::AddCommand()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00419">Server::AddCommand()</a>. </td>
</tr>
</table>
<a class="anchor" name="server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="modules.h::server_mode" ref="server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
@@ -1178,7 +1178,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00414">Server::AddCo
</td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:25 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/namespaceirc.html b/docs/module-doc/namespaceirc.html
index 39cf69d8c..4b88e75aa 100644
--- a/docs/module-doc/namespaceirc.html
+++ b/docs/module-doc/namespaceirc.html
@@ -56,7 +56,7 @@ This typedef declares <a class="el" href="namespaceirc.html#string">irc::string<
Definition at line <a class="el" href="hashcomp_8h-source.html#l00129">129</a> of file <a class="el" href="hashcomp_8h-source.html">hashcomp.h</a>. </td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/namespacemembers.html b/docs/module-doc/namespacemembers.html
index 1a737aed5..961504d53 100644
--- a/docs/module-doc/namespacemembers.html
+++ b/docs/module-doc/namespacemembers.html
@@ -11,7 +11,7 @@ Here is a list of all namespace members with links to the namespace documentatio
<ul>
<li>string
: <a class="el" href="namespaceirc.html#string">irc</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/namespacemembers_type.html b/docs/module-doc/namespacemembers_type.html
index facd5858b..52cb8e943 100644
--- a/docs/module-doc/namespacemembers_type.html
+++ b/docs/module-doc/namespacemembers_type.html
@@ -11,7 +11,7 @@
<ul>
<li>string
: <a class="el" href="namespaceirc.html#string">irc</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/namespacenspace.html b/docs/module-doc/namespacenspace.html
index 2fe1f7d8f..9cad80e78 100644
--- a/docs/module-doc/namespacenspace.html
+++ b/docs/module-doc/namespacenspace.html
@@ -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_1hash_3_01string_01_4.html">hash&lt; string &gt;</a></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/namespaces.html b/docs/module-doc/namespaces.html
index a74f24753..d1c7861ce 100644
--- a/docs/module-doc/namespaces.html
+++ b/docs/module-doc/namespaces.html
@@ -10,7 +10,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 Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/namespacestd.html b/docs/module-doc/namespacestd.html
index 60c022406..cf6bf7068 100644
--- a/docs/module-doc/namespacestd.html
+++ b/docs/module-doc/namespacestd.html
@@ -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 Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/servers_8cpp-source.html b/docs/module-doc/servers_8cpp-source.html
deleted file mode 100644
index 297f887fa..000000000
--- a/docs/module-doc/servers_8cpp-source.html
+++ /dev/null
@@ -1,575 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>InspIRCd: servers.cpp Source File</title>
-<link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- 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="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<h1>servers.cpp</h1><a href="servers_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/* +------------------------------------+</span>
-00002 <span class="comment"> * | Inspire Internet Relay Chat Daemon |</span>
-00003 <span class="comment"> * +------------------------------------+</span>
-00004 <span class="comment"> *</span>
-00005 <span class="comment"> * Inspire is copyright (C) 2002-2004 ChatSpike-Dev.</span>
-00006 <span class="comment"> * E-mail:</span>
-00007 <span class="comment"> * &lt;brain@chatspike.net&gt;</span>
-00008 <span class="comment"> * &lt;Craig@chatspike.net&gt;</span>
-00009 <span class="comment"> * </span>
-00010 <span class="comment"> * Written by Craig Edwards, Craig McLure, and others.</span>
-00011 <span class="comment"> * This program is free but copyrighted software; see</span>
-00012 <span class="comment"> * the file COPYING for details.</span>
-00013 <span class="comment"> *</span>
-00014 <span class="comment"> * ---------------------------------------------------</span>
-00015 <span class="comment"> */</span>
-00016
-00017 <span class="keyword">using</span> <span class="keyword">namespace </span>std;
-00018
-00019 <span class="preprocessor">#include "inspircd_config.h"</span>
-00020 <span class="preprocessor">#include "<a class="code" href="servers_8h.html">servers.h</a>"</span>
-00021 <span class="preprocessor">#include "inspircd.h"</span>
-00022 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
-00023 <span class="preprocessor">#include &lt;fcntl.h&gt;</span>
-00024 <span class="preprocessor">#include &lt;poll.h&gt;</span>
-00025 <span class="preprocessor">#include &lt;sys/errno.h&gt;</span>
-00026 <span class="preprocessor">#include &lt;sys/ioctl.h&gt;</span>
-00027 <span class="preprocessor">#include &lt;sys/utsname.h&gt;</span>
-00028 <span class="preprocessor">#include &lt;vector&gt;</span>
-00029 <span class="preprocessor">#include &lt;string&gt;</span>
-00030 <span class="preprocessor">#include &lt;deque&gt;</span>
-00031 <span class="preprocessor">#include &lt;sstream&gt;</span>
-00032 <span class="preprocessor">#include &lt;map&gt;</span>
-00033 <span class="preprocessor">#include "inspstring.h"</span>
-00034 <span class="preprocessor">#include "helperfuncs.h"</span>
-00035 <span class="preprocessor">#include "<a class="code" href="connection_8h.html">connection.h</a>"</span>
-00036
-<a name="l00037"></a><a class="code" href="servers_8cpp.html#a0">00037</a> <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#a36">TIME</a>;
-<a name="l00038"></a><a class="code" href="servers_8cpp.html#a1">00038</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="servers_8cpp.html#a1">MaxConn</a>;
-00039
-<a name="l00040"></a><a class="code" href="servers_8cpp.html#a2">00040</a> <span class="keyword">extern</span> <a class="code" href="classserverrec.html">serverrec</a>* <a class="code" href="channels_8cpp.html#a34">me</a>[32];
-00041
-<a name="l00042"></a><a class="code" href="servers_8cpp.html#a3">00042</a> <span class="keyword">extern</span> <span class="keywordtype">bool</span> <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a>;
-00043
-<a name="l00044"></a><a class="code" href="servers_8cpp.html#a4">00044</a> std::deque&lt;std::string&gt; <a class="code" href="servers_8cpp.html#a4">xsums</a>;
-00045
-<a name="l00046"></a><a class="code" href="classserverrec.html#a0">00046</a> <a class="code" href="classserverrec.html#a0">serverrec::serverrec</a>()
-00047 {
-00048 strlcpy(<a class="code" href="classserverrec.html#o0">name</a>,<span class="stringliteral">""</span>,256);
-00049 <a class="code" href="classserverrec.html#o1">pingtime</a> = 0;
-00050 <a class="code" href="classconnection.html#o10">lastping</a> = <a class="code" href="channels_8cpp.html#a36">TIME</a>;
-00051 <a class="code" href="classserverrec.html#o2">usercount_i</a> = <a class="code" href="classserverrec.html#o3">usercount</a> = <a class="code" href="classserverrec.html#o4">opercount</a> = <a class="code" href="classserverrec.html#o6">version</a> = 0;
-00052 <a class="code" href="classserverrec.html#o5">hops_away</a> = 1;
-00053 <a class="code" href="classconnection.html#o11">signon</a> = <a class="code" href="channels_8cpp.html#a36">TIME</a>;
-00054 <a class="code" href="classserverrec.html#o7">jupiter</a> = <span class="keyword">false</span>;
-00055 <a class="code" href="classconnection.html#o0">fd</a> = 0;
-00056 <a class="code" href="classserverrec.html#o10">sync_soon</a> = <span class="keyword">false</span>;
-00057 strlcpy(<a class="code" href="classserverrec.html#o9">nickserv</a>,<span class="stringliteral">""</span>,NICKMAX);
-00058 <a class="code" href="classserverrec.html#o11">connectors</a>.clear();
-00059 }
-00060
-00061
-<a name="l00062"></a><a class="code" href="classserverrec.html#a2">00062</a> <a class="code" href="classserverrec.html#a2">serverrec::~serverrec</a>()
-00063 {
-00064 }
-00065
-<a name="l00066"></a><a class="code" href="classserverrec.html#a1">00066</a> <a class="code" href="classserverrec.html#a0">serverrec::serverrec</a>(<span class="keywordtype">char</span>* n, <span class="keywordtype">long</span> ver, <span class="keywordtype">bool</span> jupe)
-00067 {
-00068 strlcpy(<a class="code" href="classserverrec.html#o0">name</a>,n,256);
-00069 <a class="code" href="classconnection.html#o10">lastping</a> = <a class="code" href="channels_8cpp.html#a36">TIME</a>;
-00070 <a class="code" href="classserverrec.html#o2">usercount_i</a> = <a class="code" href="classserverrec.html#o3">usercount</a> = <a class="code" href="classserverrec.html#o4">opercount</a> = 0;
-00071 <a class="code" href="classserverrec.html#o6">version</a> = ver;
-00072 <a class="code" href="classserverrec.html#o5">hops_away</a> = 1;
-00073 <a class="code" href="classconnection.html#o11">signon</a> = <a class="code" href="channels_8cpp.html#a36">TIME</a>;
-00074 <a class="code" href="classserverrec.html#o7">jupiter</a> = jupe;
-00075 <a class="code" href="classconnection.html#o0">fd</a> = 0;
-00076 <a class="code" href="classserverrec.html#o10">sync_soon</a> = <span class="keyword">false</span>;
-00077 strlcpy(<a class="code" href="classserverrec.html#o9">nickserv</a>,<span class="stringliteral">""</span>,NICKMAX);
-00078 <a class="code" href="classserverrec.html#o11">connectors</a>.clear();
-00079 }
-00080
-<a name="l00081"></a><a class="code" href="classserverrec.html#a3">00081</a> <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#a3">serverrec::CreateListener</a>(<span class="keywordtype">char</span>* newhost, <span class="keywordtype">int</span> p)
-00082 {
-00083 sockaddr_in host_address;
-00084 <span class="keywordtype">int</span> flags;
-00085 in_addr addy;
-00086 <span class="keywordtype">int</span> on = 0;
-00087 <span class="keyword">struct </span>linger linger = { 0 };
-00088
-00089 this-&gt;<a class="code" href="classconnection.html#o8">port</a> = p;
-00090
-00091 <a class="code" href="classconnection.html#o0">fd</a> = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-00092 <span class="keywordflow">if</span> (<a class="code" href="classconnection.html#o0">fd</a> &lt;= 0)
-00093 {
-00094 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00095 }
-00096
-00097 setsockopt(<a class="code" href="classconnection.html#o0">fd</a>,SOL_SOCKET,SO_REUSEADDR,(<span class="keyword">const</span> <span class="keywordtype">char</span>*)&amp;on,<span class="keyword">sizeof</span>(on));
-00098 linger.l_onoff = 1;
-00099 linger.l_linger = 1;
-00100 setsockopt(<a class="code" href="classconnection.html#o0">fd</a>,SOL_SOCKET,SO_LINGER,(<span class="keyword">const</span> <span class="keywordtype">char</span>*)&amp;linger,<span class="keyword">sizeof</span>(linger));
-00101
-00102 <span class="comment">// attempt to increase socket sendq and recvq as high as its possible</span>
-00103 <span class="comment">// to get them on linux.</span>
-00104 <span class="keywordtype">int</span> sendbuf = 32768;
-00105 <span class="keywordtype">int</span> recvbuf = 32768;
-00106 setsockopt(<a class="code" href="classconnection.html#o0">fd</a>,SOL_SOCKET,SO_SNDBUF,(<span class="keyword">const</span> <span class="keywordtype">void</span> *)&amp;sendbuf,<span class="keyword">sizeof</span>(sendbuf));
-00107 setsockopt(<a class="code" href="classconnection.html#o0">fd</a>,SOL_SOCKET,SO_RCVBUF,(<span class="keyword">const</span> <span class="keywordtype">void</span> *)&amp;recvbuf,<span class="keyword">sizeof</span>(sendbuf));
-00108
-00109 memset((<span class="keywordtype">void</span>*)&amp;host_address, 0, <span class="keyword">sizeof</span>(host_address));
-00110
-00111 host_address.sin_family = AF_INET;
-00112
-00113 <span class="keywordflow">if</span> (!strcmp(newhost,<span class="stringliteral">""</span>))
-00114 {
-00115 host_address.sin_addr.s_addr = htonl(INADDR_ANY);
-00116 }
-00117 <span class="keywordflow">else</span>
-00118 {
-00119 inet_aton(newhost,&amp;addy);
-00120 host_address.sin_addr = addy;
-00121 }
-00122
-00123 host_address.sin_port = htons(p);
-00124
-00125 <span class="keywordflow">if</span> (bind(<a class="code" href="classconnection.html#o0">fd</a>,(sockaddr*)&amp;host_address,<span class="keyword">sizeof</span>(host_address))&lt;0)
-00126 {
-00127 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00128 }
-00129
-00130 <span class="comment">// make the socket non-blocking</span>
-00131 flags = fcntl(<a class="code" href="classconnection.html#o0">fd</a>, F_GETFL, 0);
-00132 fcntl(<a class="code" href="classconnection.html#o0">fd</a>, F_SETFL, flags | O_NONBLOCK);
-00133
-00134 this-&gt;<a class="code" href="classconnection.html#o8">port</a> = p;
-00135
-00136 listen(this-&gt;fd, <a class="code" href="servers_8cpp.html#a1">MaxConn</a>);
-00137
-00138 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00139 }
-00140
-00141
-<a name="l00142"></a><a class="code" href="classserverrec.html#a4">00142</a> <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#a4">serverrec::BeginLink</a>(<span class="keywordtype">char</span>* targethost, <span class="keywordtype">int</span> newport, <span class="keywordtype">char</span>* password, <span class="keywordtype">char</span>* servername, <span class="keywordtype">int</span> myport)
-00143 {
-00144 <span class="keywordtype">char</span> connect[MAXBUF];
-00145
-00146 <a class="code" href="classircd__connector.html">ircd_connector</a> connector;
-00147 <a class="code" href="classircd__connector.html">ircd_connector</a> *cn = this-&gt;<a class="code" href="classserverrec.html#a9">FindHost</a>(servername);
-00148
-00149
-00150 <span class="keywordflow">if</span> (cn)
-00151 {
-00152 WriteOpers(<span class="stringliteral">"CONNECT aborted: Server %s already exists"</span>,servername);
-00153 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00154 }
-00155
-00156
-00157 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classconnection.html#o0">fd</a>)
-00158 {
-00159 <span class="keywordflow">if</span> (connector.<a class="code" href="classircd__connector.html#a1">MakeOutboundConnection</a>(targethost,newport))
-00160 {
-00161 <span class="comment">// targethost has been turned into an ip...</span>
-00162 <span class="comment">// we dont want this as the server name.</span>
-00163 connector.<a class="code" href="classircd__connector.html#a3">SetServerName</a>(servername);
-00164 snprintf(connect,MAXBUF,<span class="stringliteral">"S %s %s %lu %s :%s"</span>,getservername().c_str(),password,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)myport,GetRevision().c_str(),getserverdesc().c_str());
-00165 connector.<a class="code" href="classircd__connector.html#a7">SetState</a>(<a class="code" href="connection_8h.html#a4">STATE_NOAUTH_OUTBOUND</a>);
-00166 connector.<a class="code" href="classircd__connector.html#a13">SetHostAndPort</a>(targethost, newport);
-00167 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.push_back(connector);
-00168 <span class="comment">// this packet isn't actually sent until the socket connects -- the STATE_NOAUTH_OUTBOUND state</span>
-00169 <span class="comment">// queues outbound data until the socket is polled as writeable (e.g. the connection is established)</span>
-00170 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classserverrec.html#a7">SendPacket</a>(connect, servername);
-00171 }
-00172 <span class="keywordflow">else</span>
-00173 {
-00174 connector.<a class="code" href="classircd__connector.html#a7">SetState</a>(<a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>);
-00175 WriteOpers(<span class="stringliteral">"Could not create outbound connection to %s:%d"</span>,targethost,newport);
-00176 }
-00177 }
-00178 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00179 }
-00180
-00181
-<a name="l00182"></a><a class="code" href="classserverrec.html#a5">00182</a> <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#a5">serverrec::MeshCookie</a>(<span class="keywordtype">char</span>* targethost, <span class="keywordtype">int</span> newport, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> cookie, <span class="keywordtype">char</span>* servername)
-00183 {
-00184 <span class="keywordtype">char</span> connect[MAXBUF];
-00185
-00186 <a class="code" href="classircd__connector.html">ircd_connector</a> connector;
-00187
-00188 WriteOpers(<span class="stringliteral">"Establishing meshed link to %s:%d"</span>,servername,newport);
-00189
-00190 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classconnection.html#o0">fd</a>)
-00191 {
-00192 <span class="keywordflow">if</span> (connector.<a class="code" href="classircd__connector.html#a1">MakeOutboundConnection</a>(targethost,newport))
-00193 {
-00194 <span class="comment">// targethost has been turned into an ip...</span>
-00195 <span class="comment">// we dont want this as the server name.</span>
-00196 connector.<a class="code" href="classircd__connector.html#a3">SetServerName</a>(servername);
-00197 snprintf(connect,MAXBUF,<span class="stringliteral">"- %lu %s :%s"</span>,cookie,getservername().c_str(),getserverdesc().c_str());
-00198 connector.<a class="code" href="classircd__connector.html#a7">SetState</a>(<a class="code" href="connection_8h.html#a4">STATE_NOAUTH_OUTBOUND</a>);
-00199 connector.<a class="code" href="classircd__connector.html#a13">SetHostAndPort</a>(targethost, newport);
-00200 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.push_back(connector);
-00201 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classserverrec.html#a7">SendPacket</a>(connect, servername);
-00202 }
-00203 <span class="keywordflow">else</span>
-00204 {
-00205 connector.<a class="code" href="classircd__connector.html#a7">SetState</a>(<a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>);
-00206 WriteOpers(<span class="stringliteral">"Could not create outbound connection to %s:%d"</span>,targethost,newport);
-00207 }
-00208 }
-00209 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00210 }
-00211
-<a name="l00212"></a><a class="code" href="classserverrec.html#a10">00212</a> <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#a10">serverrec::AddIncoming</a>(<span class="keywordtype">int</span> newfd, <span class="keywordtype">char</span>* targethost, <span class="keywordtype">int</span> sourceport)
-00213 {
-00214 <a class="code" href="classircd__connector.html">ircd_connector</a> connector;
-00215
-00216 <span class="comment">// targethost has been turned into an ip...</span>
-00217 <span class="comment">// we dont want this as the server name.</span>
-00218 connector.<a class="code" href="classircd__connector.html#a3">SetServerName</a>(targethost);
-00219 connector.<a class="code" href="classircd__connector.html#a5">SetDescriptor</a>(newfd);
-00220 connector.<a class="code" href="classircd__connector.html#a7">SetState</a>(<a class="code" href="connection_8h.html#a3">STATE_NOAUTH_INBOUND</a>);
-00221 <span class="keywordtype">int</span> flags = fcntl(newfd, F_GETFL, 0);
-00222 fcntl(newfd, F_SETFL, flags | O_NONBLOCK);
-00223 <span class="keywordtype">int</span> sendbuf = 32768;
-00224 <span class="keywordtype">int</span> recvbuf = 32768;
-00225 setsockopt(newfd,SOL_SOCKET,SO_SNDBUF,(<span class="keyword">const</span> <span class="keywordtype">void</span> *)&amp;sendbuf,<span class="keyword">sizeof</span>(sendbuf));
-00226 setsockopt(newfd,SOL_SOCKET,SO_RCVBUF,(<span class="keyword">const</span> <span class="keywordtype">void</span> *)&amp;recvbuf,<span class="keyword">sizeof</span>(sendbuf));
-00227 connector.<a class="code" href="classircd__connector.html#a13">SetHostAndPort</a>(targethost, sourceport);
-00228 connector.<a class="code" href="classircd__connector.html#a7">SetState</a>(<a class="code" href="connection_8h.html#a3">STATE_NOAUTH_INBOUND</a>);
-00229 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"serverrec::AddIncoming() Added connection: %s:%d"</span>,targethost,sourceport);
-00230 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.push_back(connector);
-00231 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00232 }
-00233
-<a name="l00234"></a><a class="code" href="classserverrec.html#a6">00234</a> <span class="keywordtype">void</span> <a class="code" href="classserverrec.html#a6">serverrec::TerminateLink</a>(<span class="keywordtype">char</span>* targethost)
-00235 {
-00236 <span class="comment">// this locates the targethost in the serverrec::connectors vector of the class,</span>
-00237 <span class="comment">// and terminates it by sending it an SQUIT token and closing its descriptor.</span>
-00238 <span class="comment">// TerminateLink with a null string causes a terminate of ALL links</span>
-00239 }
-00240
-00241 <span class="comment">// Returns a pointer to the connector for 'host'</span>
-<a name="l00242"></a><a class="code" href="classserverrec.html#a9">00242</a> <a class="code" href="classircd__connector.html">ircd_connector</a>* <a class="code" href="classserverrec.html#a9">serverrec::FindHost</a>(std::string findhost)
-00243 {
-00244 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.size(); i++)
-00245 {
-00246 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetServerName() == findhost)
-00247 {
-00248 <span class="keywordflow">return</span> &amp;this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i];
-00249 }
-00250 }
-00251 <span class="keywordflow">return</span> NULL;
-00252 }
-00253
-00254
-00255 <span class="comment">// Checks to see if we can still reach a server at all (e.g. is it in ANY routing table?)</span>
-<a name="l00256"></a><a class="code" href="servers_8cpp.html#a5">00256</a> <span class="keywordtype">bool</span> <a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(std::string servername)
-00257 {
-00258 <span class="keywordtype">int</span> c = 0;
-00259 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = 0; x &lt; 32; x++)
-00260 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a34">me</a>[x])
-00261 {
-00262 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="channels_8cpp.html#a34">me</a>[x]-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.size(); i++)
-00263 {
-00264 <span class="keywordflow">if</span> ((<a class="code" href="channels_8cpp.html#a34">me</a>[x]-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetServerName() == servername) &amp;&amp; (<a class="code" href="channels_8cpp.html#a34">me</a>[x]-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetState() != <a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>))
-00265 {
-00266 c++;
-00267 }
-00268 }
-00269 }
-00270 <span class="keywordflow">return</span> (c != 0);
-00271 }
-00272
-00273
-<a name="l00274"></a><a class="code" href="classserverrec.html#a11">00274</a> <span class="keywordtype">void</span> <a class="code" href="classserverrec.html#a11">serverrec::FlushWriteBuffers</a>()
-00275 {
-00276 <span class="keywordtype">char</span> buffer[MAXBUF];
-00277 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.size(); i++)
-00278 {
-00279 <span class="comment">// don't try and ping a NOAUTH_OUTBOUND state, its not authed yet!</span>
-00280 <span class="keywordflow">if</span> ((this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetState() == <a class="code" href="connection_8h.html#a4">STATE_NOAUTH_OUTBOUND</a>) &amp;&amp; (<a class="code" href="channels_8cpp.html#a36">TIME</a> &gt; this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].age+30))
-00281 {
-00282 <span class="comment">// however if we reach this timer its connected timed out :)</span>
-00283 WriteOpers(<span class="stringliteral">"*** Connection to %s timed out"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00284 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00285 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00286 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00287 <span class="keywordflow">return</span>;
-00288 }
-00289 <span class="keywordflow">if</span> ((this-&gt;connectors[i].GetState() == <a class="code" href="connection_8h.html#a3">STATE_NOAUTH_INBOUND</a>) &amp;&amp; (<a class="code" href="channels_8cpp.html#a36">TIME</a> &gt; this-&gt;connectors[i].age+30))
-00290 {
-00291 WriteOpers(<span class="stringliteral">"*** Connection from %s timed out"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00292 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00293 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00294 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00295 <span class="keywordflow">return</span>;
-00296 }
-00297 <span class="keywordflow">if</span> (this-&gt;connectors[i].GetState() != <a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>)
-00298 {
-00299 <span class="keywordflow">if</span> (!this-&gt;connectors[i].CheckPing())
-00300 {
-00301 WriteOpers(<span class="stringliteral">"*** Lost single connection to %s: Ping timeout"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00302 this-&gt;connectors[i].CloseConnection();
-00303 this-&gt;connectors[i].SetState(<a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>);
-00304 <span class="keywordflow">if</span> (!<a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(this-&gt;connectors[i].GetServerName()))
-00305 {
-00306 WriteOpers(<span class="stringliteral">"*** Server %s is no longer routable, disconnecting."</span>,this-&gt;connectors[i].GetServerName().c_str());
-00307 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00308 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00309 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00310 }
-00311 <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a> = <span class="keyword">true</span>;
-00312 }
-00313 }
-00314 <span class="keywordflow">if</span> ((this-&gt;connectors[i].GetWriteError() !=<span class="stringliteral">""</span>) &amp;&amp; (this-&gt;connectors[i].GetState() != <a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>))
-00315 {
-00316 <span class="comment">// if we're here the write() caused an error, we cannot proceed</span>
-00317 WriteOpers(<span class="stringliteral">"*** Lost single connection to %s, link inactive and retrying: %s"</span>,this-&gt;connectors[i].GetServerName().c_str(),this-&gt;connectors[i].GetWriteError().c_str());
-00318 this-&gt;connectors[i].CloseConnection();
-00319 this-&gt;connectors[i].SetState(<a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>);
-00320 <span class="keywordflow">if</span> (!<a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(this-&gt;connectors[i].GetServerName()))
-00321 {
-00322 WriteOpers(<span class="stringliteral">"*** Server %s is no longer routable, disconnecting."</span>,this-&gt;connectors[i].GetServerName().c_str());
-00323 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00324 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00325 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00326 }
-00327 <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a> = <span class="keyword">true</span>;
-00328 }
-00329 <span class="keywordflow">if</span> ((this-&gt;connectors[i].HasBufferedOutput()) &amp;&amp; (this-&gt;connectors[i].GetState() != <a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>))
-00330 {
-00331 <span class="keywordflow">if</span> (!this-&gt;connectors[i].FlushWriteBuf())
-00332 {
-00333 <span class="comment">// if we're here the write() caused an error, we cannot proceed</span>
-00334 WriteOpers(<span class="stringliteral">"*** Lost single connection to %s, link inactive and retrying: %s"</span>,this-&gt;connectors[i].GetServerName().c_str(),this-&gt;connectors[i].GetWriteError().c_str());
-00335 this-&gt;connectors[i].CloseConnection();
-00336 this-&gt;connectors[i].SetState(<a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>);
-00337 <span class="keywordflow">if</span> (!<a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(this-&gt;connectors[i].GetServerName()))
-00338 {
-00339 WriteOpers(<span class="stringliteral">"*** Server %s is no longer routable, disconnecting."</span>,this-&gt;connectors[i].GetServerName().c_str());
-00340 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00341 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00342 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00343 }
-00344 <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a> = <span class="keyword">true</span>;
-00345 }
-00346 }
-00347 }
-00348 }
-00349
-<a name="l00350"></a><a class="code" href="classserverrec.html#a7">00350</a> <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#a7">serverrec::SendPacket</a>(<span class="keywordtype">char</span> *message, <span class="keyword">const</span> <span class="keywordtype">char</span>* sendhost)
-00351 {
-00352 <span class="keywordflow">if</span> ((!message) || (!sendhost))
-00353 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00354
-00355 <a class="code" href="classircd__connector.html">ircd_connector</a>* cn = this-&gt;<a class="code" href="classserverrec.html#a9">FindHost</a>(sendhost);
-00356
-00357 <span class="keywordflow">if</span> (!strchr(message,<span class="charliteral">'\n'</span>))
-00358 {
-00359 strlcat(message,<span class="stringliteral">"\n"</span>,MAXBUF);
-00360 }
-00361
-00362 <span class="keywordflow">if</span> (cn)
-00363 {
-00364 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"main: serverrec::SendPacket() sent '%s' to %s"</span>,message,cn-&gt;<a class="code" href="classircd__connector.html#a2">GetServerName</a>().c_str());
-00365
-00366 <span class="keywordflow">if</span> (cn-&gt;<a class="code" href="classircd__connector.html#a6">GetState</a>() == <a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>)
-00367 {
-00368 <span class="comment">// fix: can only route one hop to avoid a loop</span>
-00369 <span class="keywordflow">if</span> (strncmp(message,<span class="stringliteral">"R "</span>,2))
-00370 {
-00371 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Not a double reroute"</span>);
-00372 <span class="comment">// this route is down, we must re-route the packet through an available point in the mesh.</span>
-00373 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = 0; k &lt; this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.size(); k++)
-00374 {
-00375 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Check connector %d: %s"</span>,k,this-&gt;connectors[k].GetServerName().c_str());
-00376 <span class="comment">// search for another point in the mesh which can 'reach' where we want to go</span>
-00377 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> m = 0; m &lt; this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[k].routes.size(); m++)
-00378 {
-00379 <span class="keywordflow">if</span> (!strcasecmp(this-&gt;connectors[k].routes[m].c_str(),sendhost))
-00380 {
-00381 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Found alternative route for packet: %s"</span>,this-&gt;connectors[k].GetServerName().c_str());
-00382 <span class="keywordtype">char</span> buffer[MAXBUF];
-00383 snprintf(buffer,MAXBUF,<span class="stringliteral">"R %s %s"</span>,sendhost,message);
-00384 this-&gt;<a class="code" href="classserverrec.html#a7">SendPacket</a>(buffer,this-&gt;connectors[k].GetServerName().c_str());
-00385 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00386 }
-00387 }
-00388 }
-00389 }
-00390 <span class="keywordtype">char</span> buffer[MAXBUF];
-00391 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,sendhost);
-00392 WriteOpers(<span class="stringliteral">"*** All connections to %s lost."</span>,sendhost);
-00393 NetSendToAllExcept(sendhost,buffer);
-00394 DoSplit(sendhost);
-00395 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00396 }
-00397
-00398 <span class="comment">// returns false if the packet could not be sent (e.g. target host down)</span>
-00399 <span class="keywordflow">if</span> (!cn-&gt;<a class="code" href="classircd__connector.html#a21">AddWriteBuf</a>(message))
-00400 {
-00401 <span class="comment">// if we're here, there was an error pending, and the send cannot proceed</span>
-00402 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"cn-&gt;AddWriteBuf() failed for serverrec::SendPacket(): %s"</span>,cn-&gt;<a class="code" href="classircd__connector.html#a24">GetWriteError</a>().c_str());
-00403 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Disabling connector: %s"</span>,cn-&gt;<a class="code" href="classircd__connector.html#a2">GetServerName</a>().c_str());
-00404 cn-&gt;<a class="code" href="classircd__connector.html#a14">CloseConnection</a>();
-00405 cn-&gt;<a class="code" href="classircd__connector.html#a7">SetState</a>(<a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>);
-00406 WriteOpers(<span class="stringliteral">"*** Lost single connection to %s, link inactive and retrying: %s"</span>,cn-&gt;<a class="code" href="classircd__connector.html#a2">GetServerName</a>().c_str(),cn-&gt;<a class="code" href="classircd__connector.html#a24">GetWriteError</a>().c_str());
-00407 <span class="comment">// retry the packet along a new route so either arrival OR failure are gauranteed (bugfix)</span>
-00408 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classserverrec.html#a7">SendPacket</a>(message,sendhost);
-00409 }
-00410 <span class="keywordflow">if</span> (!cn-&gt;<a class="code" href="classircd__connector.html#a22">FlushWriteBuf</a>())
-00411 {
-00412 <span class="comment">// if we're here the write() caused an error, we cannot proceed</span>
-00413 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"cn-&gt;FlushWriteBuf() failed for serverrec::SendPacket(): %s"</span>,cn-&gt;<a class="code" href="classircd__connector.html#a24">GetWriteError</a>().c_str());
-00414 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Disabling connector: %s"</span>,cn-&gt;<a class="code" href="classircd__connector.html#a2">GetServerName</a>().c_str());
-00415 cn-&gt;<a class="code" href="classircd__connector.html#a14">CloseConnection</a>();
-00416 cn-&gt;<a class="code" href="classircd__connector.html#a7">SetState</a>(<a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>);
-00417 WriteOpers(<span class="stringliteral">"*** Lost single connection to %s, link inactive and retrying: %s"</span>,cn-&gt;<a class="code" href="classircd__connector.html#a2">GetServerName</a>().c_str(),cn-&gt;<a class="code" href="classircd__connector.html#a24">GetWriteError</a>().c_str());
-00418 <span class="comment">// retry the packet along a new route so either arrival OR failure are gauranteed</span>
-00419 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classserverrec.html#a7">SendPacket</a>(message,sendhost);
-00420 }
-00421 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00422 }
-00423 }
-00424
-<a name="l00425"></a><a class="code" href="servers_8cpp.html#a6">00425</a> <span class="keywordtype">bool</span> <a class="code" href="servers_8cpp.html#a6">already_have_sum</a>(std::string sum)
-00426 {
-00427 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="servers_8cpp.html#a4">xsums</a>.size(); i++)
-00428 {
-00429 <span class="keywordflow">if</span> (<a class="code" href="servers_8cpp.html#a4">xsums</a>[i] == sum)
-00430 {
-00431 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00432 }
-00433 }
-00434 <span class="keywordflow">if</span> (<a class="code" href="servers_8cpp.html#a4">xsums</a>.size() &gt;= 128)
-00435 {
-00436 <a class="code" href="servers_8cpp.html#a4">xsums</a>.pop_front();
-00437 }
-00438 <a class="code" href="servers_8cpp.html#a4">xsums</a>.push_back(sum);
-00439 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00440 }
-00441
-00442 <span class="comment">// receives a packet from any where there is data waiting, first come, first served</span>
-00443 <span class="comment">// fills the message and host values with the host where the data came from.</span>
-00444
-<a name="l00445"></a><a class="code" href="classserverrec.html#a8">00445</a> <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#a8">serverrec::RecvPacket</a>(std::deque&lt;std::string&gt; &amp;messages, <span class="keywordtype">char</span>* recvhost,std::deque&lt;std::string&gt; &amp;sums)
-00446 {
-00447 <span class="keywordtype">char</span> data[65536],buffer[MAXBUF];
-00448 memset(data, 0, 65536);
-00449 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.size(); i++)
-00450 {
-00451 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetState() != <a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>)
-00452 {
-00453 <span class="comment">// returns false if the packet could not be sent (e.g. target host down)</span>
-00454 <span class="keywordtype">int</span> rcvsize = 0;
-00455
-00456 <span class="comment">// check if theres any data on this socket</span>
-00457 <span class="comment">// if not, continue onwards to the next.</span>
-00458 pollfd polls;
-00459 polls.fd = this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetDescriptor();
-00460 polls.events = POLLIN;
-00461 <span class="keywordtype">int</span> ret = poll(&amp;polls,1,1);
-00462 <span class="keywordflow">if</span> (ret &lt;= 0) <span class="keywordflow">continue</span>;
-00463
-00464 rcvsize = recv(this-&gt;connectors[i].GetDescriptor(),data,65000,0);
-00465 data[rcvsize] = <span class="charliteral">'\0'</span>;
-00466 <span class="keywordflow">if</span> (rcvsize == 0)
-00467 {
-00468 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"recv() failed for serverrec::RecvPacket(): EOF"</span>);
-00469 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Disabling connector: %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00470 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].CloseConnection();
-00471 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].SetState(<a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>);
-00472 <span class="keywordflow">if</span> (!<a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(this-&gt;connectors[i].GetServerName()))
-00473 {
-00474 WriteOpers(<span class="stringliteral">"*** Server %s is no longer routable, disconnecting (EOF)"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00475 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00476 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00477 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00478 }
-00479 <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a> = <span class="keyword">true</span>;
-00480 }
-00481 <span class="keywordflow">if</span> (rcvsize == -1)
-00482 {
-00483 <span class="keywordflow">if</span> (errno != EAGAIN)
-00484 {
-00485 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"recv() failed for serverrec::RecvPacket(): %s"</span>,strerror(errno));
-00486 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Disabling connector: %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00487 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].CloseConnection();
-00488 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].SetState(<a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>);
-00489 <span class="keywordflow">if</span> (!<a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(this-&gt;connectors[i].GetServerName()))
-00490 {
-00491 WriteOpers(<span class="stringliteral">"*** Server %s is no longer routable, disconnecting."</span>,this-&gt;connectors[i].GetServerName().c_str());
-00492 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00493 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00494 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00495 }
-00496 <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a> = <span class="keyword">true</span>;
-00497 }
-00498 }
-00499 <span class="keywordtype">int</span> pushed = 0;
-00500 <span class="keywordflow">if</span> (rcvsize &gt; 0)
-00501 {
-00502 <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].AddBuffer(data))
-00503 {
-00504 WriteOpers(<span class="stringliteral">"*** Read buffer for %s exceeds maximum, closing connection!"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00505 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].CloseConnection();
-00506 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].SetState(<a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>);
-00507 <span class="keywordflow">if</span> (!<a class="code" href="servers_8cpp.html#a5">IsRoutable</a>(this-&gt;connectors[i].GetServerName()))
-00508 {
-00509 WriteOpers(<span class="stringliteral">"*** Server %s is no longer routable, disconnecting."</span>,this-&gt;connectors[i].GetServerName().c_str());
-00510 snprintf(buffer,MAXBUF,<span class="stringliteral">"&amp; %s"</span>,this-&gt;connectors[i].GetServerName().c_str());
-00511 NetSendToAllExcept(this-&gt;connectors[i].GetServerName().c_str(),buffer);
-00512 DoSplit(this-&gt;connectors[i].GetServerName().c_str());
-00513 }
-00514 <a class="code" href="servers_8cpp.html#a3">has_been_netsplit</a> = <span class="keyword">true</span>;
-00515 }
-00516 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].BufferIsComplete())
-00517 {
-00518 this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].ResetPing();
-00519 <span class="keywordflow">while</span> (this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].BufferIsComplete())
-00520 {
-00521 std::string text = this-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetBuffer();
-00522 <span class="keywordflow">if</span> (text != <span class="stringliteral">""</span>)
-00523 {
-00524 <span class="keywordflow">if</span> ((text[0] == <span class="charliteral">':'</span>) &amp;&amp; (text.find(<span class="stringliteral">" "</span>) != std::string::npos))
-00525 {
-00526 std::string orig = text;
-00527 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Original: %s"</span>,text.c_str());
-00528 std::string sum = text.substr(1,text.find(<span class="stringliteral">" "</span>)-1);
-00529 text = text.substr(text.find(<span class="stringliteral">" "</span>)+1,text.length());
-00530 std::string possible_token = text.substr(1,text.find(<span class="stringliteral">" "</span>)-1);
-00531 <span class="keywordflow">if</span> (possible_token.length() &gt; 1)
-00532 {
-00533 sums.push_back(<span class="stringliteral">"*"</span>);
-00534 text = orig;
-00535 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Non-mesh, non-tokenized string passed up the chain"</span>);
-00536 }
-00537 <span class="keywordflow">else</span>
-00538 {
-00539 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Packet sum: '%s'"</span>,sum.c_str());
-00540 <span class="keywordflow">if</span> ((<a class="code" href="servers_8cpp.html#a6">already_have_sum</a>(sum)) &amp;&amp; (sum != <span class="stringliteral">"*"</span>))
-00541 {
-00542 <span class="comment">// we don't accept dupes</span>
-00543 <span class="keywordflow">continue</span>;
-00544 }
-00545 sums.push_back(sum.c_str());
-00546 }
-00547 }
-00548 <span class="keywordflow">else</span> sums.push_back(<span class="stringliteral">"*"</span>);
-00549 messages.push_back(text.c_str());
-00550 strlcpy(recvhost,this-&gt;connectors[i].GetServerName().c_str(),160);
-00551 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"serverrec::RecvPacket() %d:%s-&gt;%s"</span>,pushed++,recvhost,text.c_str());
-00552 }
-00553 }
-00554 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00555 }
-00556 }
-00557 }
-00558 }
-00559 <span class="comment">// nothing new yet -- message and host will be undefined</span>
-00560 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00561 }
-00562
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon May 30 05:15:21 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>
-</body>
-</html>
diff --git a/docs/module-doc/servers_8cpp.html b/docs/module-doc/servers_8cpp.html
deleted file mode 100644
index f13acac36..000000000
--- a/docs/module-doc/servers_8cpp.html
+++ /dev/null
@@ -1,290 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>InspIRCd: servers.cpp File Reference</title>
-<link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- 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="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<h1>servers.cpp File Reference</h1><code>#include "inspircd_config.h"</code><br>
-<code>#include "<a class="el" href="servers_8h-source.html">servers.h</a>"</code><br>
-<code>#include "inspircd.h"</code><br>
-<code>#include &lt;unistd.h&gt;</code><br>
-<code>#include &lt;fcntl.h&gt;</code><br>
-<code>#include &lt;poll.h&gt;</code><br>
-<code>#include &lt;sys/errno.h&gt;</code><br>
-<code>#include &lt;sys/ioctl.h&gt;</code><br>
-<code>#include &lt;sys/utsname.h&gt;</code><br>
-<code>#include &lt;vector&gt;</code><br>
-<code>#include &lt;string&gt;</code><br>
-<code>#include &lt;deque&gt;</code><br>
-<code>#include &lt;sstream&gt;</code><br>
-<code>#include &lt;map&gt;</code><br>
-<code>#include "inspstring.h"</code><br>
-<code>#include "helperfuncs.h"</code><br>
-<code>#include "<a class="el" href="connection_8h-source.html">connection.h</a>"</code><br>
-
-<p>
-Include dependency graph for servers.cpp:<p><center><img src="servers_8cpp__incl.gif" border="0" usemap="#servers.cpp_map" alt="Include dependency graph"></center>
-<map name="servers.cpp_map">
-<area href="servers_8h.html" shape="rect" coords="341,210,418,237" alt="">
-<area href="connection_8h.html" shape="rect" coords="178,312,277,338" alt="">
-</map>
-
-<p>
-<a href="servers_8cpp-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
-<tr><td></td></tr>
-<tr><td colspan=2><br><h2>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="servers_8cpp.html#a5">IsRoutable</a> (std::string servername)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="servers_8cpp.html#a6">already_have_sum</a> (std::string sum)</td></tr>
-
-<tr><td colspan=2><br><h2>Variables</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>time_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="servers_8cpp.html#a0">TIME</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="servers_8cpp.html#a1">MaxConn</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classserverrec.html">serverrec</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="servers_8cpp.html#a2">me</a> [32]</td></tr>
-
-<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="servers_8cpp.html#a3">has_been_netsplit</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align=right valign=top>std::deque&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="servers_8cpp.html#a4">xsums</a></td></tr>
-
-</table>
-<hr><h2>Function Documentation</h2>
-<a name="a6" doxytag="servers.cpp::already_have_sum"></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 already_have_sum </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>sum</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>
-
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00425">425</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-References <a class="el" href="servers_8cpp-source.html#l00044">xsums</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00445">serverrec::RecvPacket()</a>.
-<p>
-<div class="fragment"><pre>00426 {
-00427 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="servers_8cpp.html#a4">xsums</a>.size(); i++)
-00428 {
-00429 <span class="keywordflow">if</span> (<a class="code" href="servers_8cpp.html#a4">xsums</a>[i] == sum)
-00430 {
-00431 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00432 }
-00433 }
-00434 <span class="keywordflow">if</span> (<a class="code" href="servers_8cpp.html#a4">xsums</a>.size() &gt;= 128)
-00435 {
-00436 <a class="code" href="servers_8cpp.html#a4">xsums</a>.pop_front();
-00437 }
-00438 <a class="code" href="servers_8cpp.html#a4">xsums</a>.push_back(sum);
-00439 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00440 }
-</pre></div> </td>
- </tr>
-</table>
-<a name="a5" doxytag="servers.cpp::IsRoutable"></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 IsRoutable </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>servername</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>
-
-<p>
-Definition at line <a class="el" href="servers_8cpp-source.html#l00256">256</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-References <a class="el" href="servers_8h-source.html#l00081">serverrec::connectors</a>, <a class="el" href="channels_8cpp-source.html#l00097">me</a>, and <a class="el" href="connection_8h-source.html#l00035">STATE_DISCONNECTED</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00274">serverrec::FlushWriteBuffers()</a>, and <a class="el" href="servers_8cpp-source.html#l00445">serverrec::RecvPacket()</a>.
-<p>
-<div class="fragment"><pre>00257 {
-00258 <span class="keywordtype">int</span> c = 0;
-00259 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = 0; x &lt; 32; x++)
-00260 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a34">me</a>[x])
-00261 {
-00262 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="channels_8cpp.html#a34">me</a>[x]-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>.size(); i++)
-00263 {
-00264 <span class="keywordflow">if</span> ((<a class="code" href="channels_8cpp.html#a34">me</a>[x]-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetServerName() == servername) &amp;&amp; (<a class="code" href="channels_8cpp.html#a34">me</a>[x]-&gt;<a class="code" href="classserverrec.html#o11">connectors</a>[i].GetState() != <a class="code" href="connection_8h.html#a0">STATE_DISCONNECTED</a>))
-00265 {
-00266 c++;
-00267 }
-00268 }
-00269 }
-00270 <span class="keywordflow">return</span> (c != 0);
-00271 }
-</pre></div> </td>
- </tr>
-</table>
-<hr><h2>Variable Documentation</h2>
-<a name="a3" doxytag="servers.cpp::has_been_netsplit"></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 <a class="el" href="servers_8cpp.html#a3">has_been_netsplit</a>
- </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="servers_8cpp-source.html#l00042">42</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00274">serverrec::FlushWriteBuffers()</a>, and <a class="el" href="servers_8cpp-source.html#l00445">serverrec::RecvPacket()</a>. </td>
- </tr>
-</table>
-<a name="a1" doxytag="servers.cpp::MaxConn"></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="servers_8cpp.html#a1">MaxConn</a>
- </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="servers_8cpp-source.html#l00038">38</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00081">serverrec::CreateListener()</a>. </td>
- </tr>
-</table>
-<a name="a2" doxytag="servers.cpp::me"></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="classserverrec.html">serverrec</a>* <a class="el" href="servers_8cpp.html#a2">me</a>[32]
- </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="servers_8cpp-source.html#l00040">40</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>. </td>
- </tr>
-</table>
-<a name="a0" doxytag="servers.cpp::TIME"></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="users_8cpp.html#a2">TIME</a>
- </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="servers_8cpp-source.html#l00037">37</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>. </td>
- </tr>
-</table>
-<a name="a4" doxytag="servers.cpp::xsums"></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::deque&lt;std::string&gt; <a class="el" href="servers_8cpp.html#a4">xsums</a>
- </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="servers_8cpp-source.html#l00044">44</a> of file <a class="el" href="servers_8cpp-source.html">servers.cpp</a>.
-<p>
-Referenced by <a class="el" href="servers_8cpp-source.html#l00425">already_have_sum()</a>. </td>
- </tr>
-</table>
-<hr size="1"><address style="align: right;"><small>Generated on Mon May 30 05:16:12 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>
-</body>
-</html>
diff --git a/docs/module-doc/servers_8cpp__incl.gif b/docs/module-doc/servers_8cpp__incl.gif
deleted file mode 100644
index b2f91580d..000000000
--- a/docs/module-doc/servers_8cpp__incl.gif
+++ /dev/null
Binary files differ
diff --git a/docs/module-doc/servers_8h-source.html b/docs/module-doc/servers_8h-source.html
deleted file mode 100644
index fcd6e5a65..000000000
--- a/docs/module-doc/servers_8h-source.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>InspIRCd: servers.h Source File</title>
-<link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- 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="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<h1>servers.h</h1><a href="servers_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/* +------------------------------------+</span>
-00002 <span class="comment"> * | Inspire Internet Relay Chat Daemon |</span>
-00003 <span class="comment"> * +------------------------------------+</span>
-00004 <span class="comment"> *</span>
-00005 <span class="comment"> * Inspire is copyright (C) 2002-2004 ChatSpike-Dev.</span>
-00006 <span class="comment"> * E-mail:</span>
-00007 <span class="comment"> * &lt;brain@chatspike.net&gt;</span>
-00008 <span class="comment"> * &lt;Craig@chatspike.net&gt;</span>
-00009 <span class="comment"> * </span>
-00010 <span class="comment"> * Written by Craig Edwards, Craig McLure, and others.</span>
-00011 <span class="comment"> * This program is free but copyrighted software; see</span>
-00012 <span class="comment"> * the file COPYING for details.</span>
-00013 <span class="comment"> *</span>
-00014 <span class="comment"> * ---------------------------------------------------</span>
-00015 <span class="comment"> */</span>
-00016
-00017 <span class="preprocessor">#include "inspircd_config.h"</span>
-00018 <span class="preprocessor">#include "<a class="code" href="connection_8h.html">connection.h</a>"</span>
-00019 <span class="preprocessor">#include &lt;string&gt;</span>
-00020 <span class="preprocessor">#include &lt;map&gt;</span>
-00021
-00022 <span class="preprocessor">#ifndef __SERVERS_H__ </span>
-00023 <span class="preprocessor"></span><span class="preprocessor">#define __SERVERS_H__ </span>
-00024 <span class="preprocessor"></span>
-<a name="l00025"></a><a class="code" href="servers_8h.html#a0">00025</a> <span class="preprocessor">#define LINK_ACTIVE 1</span>
-<a name="l00026"></a><a class="code" href="servers_8h.html#a1">00026</a> <span class="preprocessor"></span><span class="preprocessor">#define LINK_INACTIVE 0</span>
-00027 <span class="preprocessor"></span>
-<a name="l00030"></a><a class="code" href="classserverrec.html">00030</a> <span class="keyword">class </span><a class="code" href="classserverrec.html">serverrec</a> : <span class="keyword">public</span> <a class="code" href="classconnection.html">connection</a>
-00031 {
-00032 <span class="keyword">private</span>:
-00033 <span class="keyword">public</span>:
-<a name="l00036"></a><a class="code" href="classserverrec.html#o0">00036</a> <span class="keywordtype">char</span> <a class="code" href="classserverrec.html#o0">name</a>[MAXBUF];
-<a name="l00039"></a><a class="code" href="classserverrec.html#o1">00039</a> <span class="keywordtype">long</span> <a class="code" href="classserverrec.html#o1">pingtime</a>;
-<a name="l00042"></a><a class="code" href="classserverrec.html#o2">00042</a> <span class="keywordtype">long</span> <a class="code" href="classserverrec.html#o2">usercount_i</a>;
-<a name="l00045"></a><a class="code" href="classserverrec.html#o3">00045</a> <span class="keywordtype">long</span> <a class="code" href="classserverrec.html#o3">usercount</a>;
-<a name="l00048"></a><a class="code" href="classserverrec.html#o4">00048</a> <span class="keywordtype">long</span> <a class="code" href="classserverrec.html#o4">opercount</a>;
-<a name="l00051"></a><a class="code" href="classserverrec.html#o5">00051</a> <span class="keywordtype">int</span> <a class="code" href="classserverrec.html#o5">hops_away</a>;
-<a name="l00054"></a><a class="code" href="classserverrec.html#o6">00054</a> <span class="keywordtype">long</span> <a class="code" href="classserverrec.html#o6">version</a>;
-<a name="l00057"></a><a class="code" href="classserverrec.html#o7">00057</a> <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#o7">jupiter</a>;
-00058
-<a name="l00061"></a><a class="code" href="classserverrec.html#o8">00061</a> <span class="keywordtype">char</span> <a class="code" href="classserverrec.html#o8">description</a>[MAXBUF];
-00062
-<a name="l00065"></a><a class="code" href="classserverrec.html#o9">00065</a> <span class="keywordtype">char</span> <a class="code" href="classserverrec.html#o9">nickserv</a>[NICKMAX];
-00066
-<a name="l00067"></a><a class="code" href="classserverrec.html#o10">00067</a> <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#o10">sync_soon</a>;
-00068
-00071 <a class="code" href="classserverrec.html#a0">serverrec</a>();
-00074 <a class="code" href="classserverrec.html#a0">serverrec</a>(<span class="keywordtype">char</span>* n, <span class="keywordtype">long</span> ver, <span class="keywordtype">bool</span> jupe);
-00077 <a class="code" href="classserverrec.html#a2">~serverrec</a>();
-00078
-<a name="l00081"></a><a class="code" href="classserverrec.html#o11">00081</a> std::vector&lt;ircd_connector&gt; <a class="code" href="classserverrec.html#o11">connectors</a>;
-00082
-00083
-00086 <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#a3">CreateListener</a>(<span class="keywordtype">char</span>* host, <span class="keywordtype">int</span> p);
-00087
-00090 <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#a4">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);
-00091
-00094 <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#a5">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);
-00095
-00098 <span class="keywordtype">void</span> <a class="code" href="classserverrec.html#a6">TerminateLink</a>(<span class="keywordtype">char</span>* targethost);
-00099
-00103 <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#a7">SendPacket</a>(<span class="keywordtype">char</span> *message, <span class="keyword">const</span> <span class="keywordtype">char</span>* host);
-00104
-00109 <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#a8">RecvPacket</a>(std::deque&lt;std::string&gt; &amp;messages, <span class="keywordtype">char</span>* host, std::deque&lt;std::string&gt; &amp;sums);
-00110
-00113 <a class="code" href="classircd__connector.html">ircd_connector</a>* <a class="code" href="classserverrec.html#a9">FindHost</a>(std::string host);
-00114
-00118 <span class="keywordtype">bool</span> <a class="code" href="classserverrec.html#a10">AddIncoming</a>(<span class="keywordtype">int</span> fd,<span class="keywordtype">char</span>* targethost, <span class="keywordtype">int</span> sourceport);
-00119
-00122 <span class="keywordtype">void</span> <a class="code" href="classserverrec.html#a11">FlushWriteBuffers</a>();
-00123 };
-00124
-00125 <span class="preprocessor">#endif</span>
-00126 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon May 30 05:15:21 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>
-</body>
-</html>
diff --git a/docs/module-doc/servers_8h.html b/docs/module-doc/servers_8h.html
deleted file mode 100644
index 116bd61c4..000000000
--- a/docs/module-doc/servers_8h.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>InspIRCd: servers.h File Reference</title>
-<link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- 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="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<h1>servers.h File Reference</h1><code>#include "inspircd_config.h"</code><br>
-<code>#include "<a class="el" href="connection_8h-source.html">connection.h</a>"</code><br>
-<code>#include &lt;string&gt;</code><br>
-<code>#include &lt;map&gt;</code><br>
-
-<p>
-Include dependency graph for servers.h:<p><center><img src="servers_8h__incl.gif" border="0" usemap="#servers.h_map" alt="Include dependency graph"></center>
-<map name="servers.h_map">
-<area href="connection_8h.html" shape="rect" coords="87,82,186,109" alt="">
-</map>
-
-<p>
-This graph shows which files directly or indirectly include this file:<p><center><img src="servers_8h__dep__incl.gif" border="0" usemap="#servers.hdep_map" alt="Included by dependency graph"></center>
-<map name="servers.hdep_map">
-<area href="channels_8cpp.html" shape="rect" coords="8,7,106,34" alt="">
-<area href="modules_8cpp.html" shape="rect" coords="130,7,229,34" alt="">
-<area href="servers_8cpp.html" shape="rect" coords="253,7,344,34" alt="">
-</map>
-
-<p>
-<a href="servers_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
-<tr><td></td></tr>
-<tr><td colspan=2><br><h2>Compounds</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classserverrec.html">serverrec</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A class that defines the local server or a remote server. </em> <a href="classserverrec.html#_details">More...</a><em><br><br></td></tr>
-<tr><td colspan=2><br><h2>Defines</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="servers_8h.html#a0">LINK_ACTIVE</a>&nbsp;&nbsp;&nbsp;1</td></tr>
-
-<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="servers_8h.html#a1">LINK_INACTIVE</a>&nbsp;&nbsp;&nbsp;0</td></tr>
-
-</table>
-<hr><h2>Define Documentation</h2>
-<a name="a0" doxytag="servers.h::LINK_ACTIVE"></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"> #define LINK_ACTIVE&nbsp;&nbsp;&nbsp;1
- </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="servers_8h-source.html#l00025">25</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>. </td>
- </tr>
-</table>
-<a name="a1" doxytag="servers.h::LINK_INACTIVE"></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"> #define LINK_INACTIVE&nbsp;&nbsp;&nbsp;0
- </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="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 Mon May 30 05:16:14 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>
-</body>
-</html>
diff --git a/docs/module-doc/servers_8h__dep__incl.gif b/docs/module-doc/servers_8h__dep__incl.gif
deleted file mode 100644
index 635e0059e..000000000
--- a/docs/module-doc/servers_8h__dep__incl.gif
+++ /dev/null
Binary files differ
diff --git a/docs/module-doc/servers_8h__incl.gif b/docs/module-doc/servers_8h__incl.gif
deleted file mode 100644
index 777dc0922..000000000
--- a/docs/module-doc/servers_8h__incl.gif
+++ /dev/null
Binary files differ
diff --git a/docs/module-doc/socket_8cpp-source.html b/docs/module-doc/socket_8cpp-source.html
index 301f525b4..0d6f107da 100644
--- a/docs/module-doc/socket_8cpp-source.html
+++ b/docs/module-doc/socket_8cpp-source.html
@@ -287,7 +287,7 @@
<a name="l00278"></a>00278 <span class="comment">int BindSocket (int sockfd, struct sockaddr_in client, struct sockaddr_in server, int port, char* addr)</span>
<a name="l00279"></a>00279 <span class="comment">int OpenTCPSocket (void)</span>
<a name="l00280"></a>00280 <span class="comment">*/</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/socket_8cpp.html b/docs/module-doc/socket_8cpp.html
index 506657c69..5a0ca11e5 100644
--- a/docs/module-doc/socket_8cpp.html
+++ b/docs/module-doc/socket_8cpp.html
@@ -169,7 +169,7 @@ Definition at line <a class="el" href="socket_8cpp-source.html#l00046">46</a> of
</td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:25 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/socket_8h-source.html b/docs/module-doc/socket_8h-source.html
index f6c76d043..4e579d9d5 100644
--- a/docs/module-doc/socket_8h-source.html
+++ b/docs/module-doc/socket_8h-source.html
@@ -110,7 +110,7 @@
<a name="l00302"></a>00302 };
<a name="l00303"></a>00303
<a name="l00304"></a>00304 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/socket_8h.html b/docs/module-doc/socket_8h.html
index 65f86a55e..d0a1f37ee 100644
--- a/docs/module-doc/socket_8h.html
+++ b/docs/module-doc/socket_8h.html
@@ -140,7 +140,7 @@ Definition at line <a class="el" href="socket_8h-source.html#l00029">29</a> of f
</td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:26 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/socketengine_8cpp-source.html b/docs/module-doc/socketengine_8cpp-source.html
index 54fd76fc4..b2e2c627a 100644
--- a/docs/module-doc/socketengine_8cpp-source.html
+++ b/docs/module-doc/socketengine_8cpp-source.html
@@ -212,7 +212,7 @@
<a name="l00203"></a>00203 <span class="preprocessor">#endif</span>
<a name="l00204"></a>00204 <span class="preprocessor"></span> <span class="keywordflow">return</span> <span class="stringliteral">"misconfigured"</span>;
<a name="l00205"></a>00205 }
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/socketengine_8cpp.html b/docs/module-doc/socketengine_8cpp.html
index 6c02070b0..10630b1ef 100644
--- a/docs/module-doc/socketengine_8cpp.html
+++ b/docs/module-doc/socketengine_8cpp.html
@@ -55,7 +55,7 @@ Definition at line <a class="el" href="socketengine_8cpp-source.html#l00033">33<
Referenced by <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="socketengine_8cpp-source.html#l00057">SocketEngine::GetType()</a>, and <a class="el" href="socketengine_8cpp-source.html#l00146">SocketEngine::Wait()</a>. </td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:26 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/socketengine_8h-source.html b/docs/module-doc/socketengine_8h-source.html
index a9b9340c5..2efbade7a 100644
--- a/docs/module-doc/socketengine_8h-source.html
+++ b/docs/module-doc/socketengine_8h-source.html
@@ -82,7 +82,7 @@
<a name="l00142"></a>00142 };
<a name="l00143"></a>00143
<a name="l00144"></a>00144 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/socketengine_8h.html b/docs/module-doc/socketengine_8h.html
index d98efd075..61e72cb4f 100644
--- a/docs/module-doc/socketengine_8h.html
+++ b/docs/module-doc/socketengine_8h.html
@@ -211,7 +211,7 @@ Definition at line <a class="el" href="socketengine_8h-source.html#l00055">55</a
Referenced by <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, and <a class="el" href="socketengine_8cpp-source.html#l00146">SocketEngine::Wait()</a>. </td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:26 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/structdns__ip4list-members.html b/docs/module-doc/structdns__ip4list-members.html
index 289af1dd0..e37bb09dc 100644
--- a/docs/module-doc/structdns__ip4list-members.html
+++ b/docs/module-doc/structdns__ip4list-members.html
@@ -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.<p><table>
<tr class="memlist"><td><a class="el" href="structdns__ip4list.html#ip">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#next">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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/structdns__ip4list.html b/docs/module-doc/structdns__ip4list.html
index 253c29fc6..d0a80f758 100644
--- a/docs/module-doc/structdns__ip4list.html
+++ b/docs/module-doc/structdns__ip4list.html
@@ -74,7 +74,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 Dec 14 14:49:30 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/structirc_1_1InAddr__HashComp-members.html b/docs/module-doc/structirc_1_1InAddr__HashComp-members.html
index a37cd2c2d..8bb5fa75b 100644
--- a/docs/module-doc/structirc_1_1InAddr__HashComp-members.html
+++ b/docs/module-doc/structirc_1_1InAddr__HashComp-members.html
@@ -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">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>irc::InAddr_HashComp Member List</h1>This is the complete list of members for <a class="el" href="structirc_1_1InAddr__HashComp.html">irc::InAddr_HashComp</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="structirc_1_1InAddr__HashComp.html#operator_28_29_28const_20in_5Faddr_20_26s_31_2C_20const_20in_5Faddr_20_26s_32_29_20const_20">operator()</a>(const in_addr &amp;s1, const in_addr &amp;s2) const </td><td><a class="el" href="structirc_1_1InAddr__HashComp.html">irc::InAddr_HashComp</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/structirc_1_1InAddr__HashComp.html b/docs/module-doc/structirc_1_1InAddr__HashComp.html
index fd121ce96..aaa89e086 100644
--- a/docs/module-doc/structirc_1_1InAddr__HashComp.html
+++ b/docs/module-doc/structirc_1_1InAddr__HashComp.html
@@ -68,7 +68,7 @@ The operator () does the actual comparison in hash_map.
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="hashcomp_8h-source.html">hashcomp.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/structirc_1_1StrHashComp-members.html b/docs/module-doc/structirc_1_1StrHashComp-members.html
index c74828c81..f4cab5bc4 100644
--- a/docs/module-doc/structirc_1_1StrHashComp-members.html
+++ b/docs/module-doc/structirc_1_1StrHashComp-members.html
@@ -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">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>irc::StrHashComp Member List</h1>This is the complete list of members for <a class="el" href="structirc_1_1StrHashComp.html">irc::StrHashComp</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="structirc_1_1StrHashComp.html#operator_28_29_28const_20std_3A_3Astring_20_26s_31_2C_20const_20std_3A_3Astring_20_26s_32_29_20const_20">operator()</a>(const std::string &amp;s1, const std::string &amp;s2) const </td><td><a class="el" href="structirc_1_1StrHashComp.html">irc::StrHashComp</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/structirc_1_1StrHashComp.html b/docs/module-doc/structirc_1_1StrHashComp.html
index 1abcc2304..34d737256 100644
--- a/docs/module-doc/structirc_1_1StrHashComp.html
+++ b/docs/module-doc/structirc_1_1StrHashComp.html
@@ -68,7 +68,7 @@ The operator () does the actual comparison in hash_map.
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="hashcomp_8h-source.html">hashcomp.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/structirc_1_1irc__char__traits-members.html b/docs/module-doc/structirc_1_1irc__char__traits-members.html
index f4bb52951..b45193bfd 100644
--- a/docs/module-doc/structirc_1_1irc__char__traits-members.html
+++ b/docs/module-doc/structirc_1_1irc__char__traits-members.html
@@ -11,7 +11,7 @@
<tr class="memlist"><td><a class="el" href="structirc_1_1irc__char__traits.html#find_28const_20char_20_2As_31_2C_20int_20n_2C_20char_20c_29">find</a>(const char *s1, int n, char c)</td><td><a class="el" href="structirc_1_1irc__char__traits.html">irc::irc_char_traits</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="structirc_1_1irc__char__traits.html#lt_28char_20c_31st_2C_20char_20c_32nd_29">lt</a>(char c1st, char c2nd)</td><td><a class="el" href="structirc_1_1irc__char__traits.html">irc::irc_char_traits</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="structirc_1_1irc__char__traits.html#ne_28char_20c_31st_2C_20char_20c_32nd_29">ne</a>(char c1st, char c2nd)</td><td><a class="el" href="structirc_1_1irc__char__traits.html">irc::irc_char_traits</a></td><td><code> [static]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/structirc_1_1irc__char__traits.html b/docs/module-doc/structirc_1_1irc__char__traits.html
index c85d4331c..23b6f8de3 100644
--- a/docs/module-doc/structirc_1_1irc__char__traits.html
+++ b/docs/module-doc/structirc_1_1irc__char__traits.html
@@ -256,7 +256,7 @@ Check if two chars do NOT match.
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="hashcomp_8h-source.html">hashcomp.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4-members.html b/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4-members.html
index 831baf385..2488cad9e 100644
--- a/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4-members.html
+++ b/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4-members.html
@@ -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">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&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_1hash_3_01in__addr_01_4.html">nspace::hash&lt; in_addr &gt;</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="structnspace_1_1hash_3_01in__addr_01_4.html#operator_28_29_28const_20struct_20in_5Faddr_20_26a_29_20const_20">operator()</a>(const struct in_addr &amp;a) const </td><td><a class="el" href="structnspace_1_1hash_3_01in__addr_01_4.html">nspace::hash&lt; in_addr &gt;</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4.html b/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4.html
index 3cfadbcc5..b5facdffe 100644
--- a/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4.html
+++ b/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4.html
@@ -54,7 +54,7 @@ Definition at line <a class="el" href="hashcomp_8h-source.html#l00054">54</a> of
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="hashcomp_8h-source.html">hashcomp.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/structnspace_1_1hash_3_01string_01_4-members.html b/docs/module-doc/structnspace_1_1hash_3_01string_01_4-members.html
index 020a922aa..dc3d2c7a6 100644
--- a/docs/module-doc/structnspace_1_1hash_3_01string_01_4-members.html
+++ b/docs/module-doc/structnspace_1_1hash_3_01string_01_4-members.html
@@ -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">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&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_1hash_3_01string_01_4.html">nspace::hash&lt; string &gt;</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="structnspace_1_1hash_3_01string_01_4.html#operator_28_29_28const_20string_20_26s_29_20const_20">operator()</a>(const string &amp;s) const </td><td><a class="el" href="structnspace_1_1hash_3_01string_01_4.html">nspace::hash&lt; string &gt;</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/structnspace_1_1hash_3_01string_01_4.html b/docs/module-doc/structnspace_1_1hash_3_01string_01_4.html
index ce45bfe89..4134ee3ba 100644
--- a/docs/module-doc/structnspace_1_1hash_3_01string_01_4.html
+++ b/docs/module-doc/structnspace_1_1hash_3_01string_01_4.html
@@ -54,7 +54,7 @@ Definition at line <a class="el" href="hashcomp_8h-source.html#l00062">62</a> of
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="hashcomp_8h-source.html">hashcomp.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/typedefs_8h-source.html b/docs/module-doc/typedefs_8h-source.html
index 35b7b586f..1aab71ba1 100644
--- a/docs/module-doc/typedefs_8h-source.html
+++ b/docs/module-doc/typedefs_8h-source.html
@@ -36,7 +36,7 @@
<a name="l00027"></a><a class="code" href="typedefs_8h.html#ExtModeListIter">00027</a> <span class="keyword">typedef</span> ExtModeList::iterator <a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a>;
<a name="l00028"></a>00028
<a name="l00029"></a>00029 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/typedefs_8h.html b/docs/module-doc/typedefs_8h.html
index 45b02de74..6d202cd46 100644
--- a/docs/module-doc/typedefs_8h.html
+++ b/docs/module-doc/typedefs_8h.html
@@ -265,7 +265,7 @@ Definition at line <a class="el" href="typedefs_8h-source.html#l00020">20</a> of
Definition at line <a class="el" href="typedefs_8h-source.html#l00023">23</a> of file <a class="el" href="typedefs_8h-source.html">typedefs.h</a>. </td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:27 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/userprocess_8h-source.html b/docs/module-doc/userprocess_8h-source.html
index 982522ae5..543a02f45 100644
--- a/docs/module-doc/userprocess_8h-source.html
+++ b/docs/module-doc/userprocess_8h-source.html
@@ -20,7 +20,7 @@
<a name="l00011"></a>00011 <span class="keywordtype">void</span> <a class="code" href="userprocess_8h.html#ProcessUser_28userrec_20_2Acu_29">ProcessUser</a>(<a class="code" href="classuserrec.html">userrec</a>* cu);
<a name="l00012"></a>00012
<a name="l00013"></a>00013 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/userprocess_8h.html b/docs/module-doc/userprocess_8h.html
index 1e60a7526..e3f6af7d8 100644
--- a/docs/module-doc/userprocess_8h.html
+++ b/docs/module-doc/userprocess_8h.html
@@ -209,7 +209,7 @@ Include dependency graph for userprocess.h:<p><center><img src="userprocess_8h__
</td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/users_8cpp-source.html b/docs/module-doc/users_8cpp-source.html
index 2ada48e14..25ddfcaed 100644
--- a/docs/module-doc/users_8cpp-source.html
+++ b/docs/module-doc/users_8cpp-source.html
@@ -310,7 +310,7 @@
<a name="l00301"></a>00301 {
<a name="l00302"></a>00302 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classuserrec.html#WriteError">WriteError</a>;
<a name="l00303"></a>00303 }
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/users_8cpp.html b/docs/module-doc/users_8cpp.html
index 772f374d9..e2253edbc 100644
--- a/docs/module-doc/users_8cpp.html
+++ b/docs/module-doc/users_8cpp.html
@@ -82,7 +82,7 @@ Include dependency graph for users.cpp:<p><center><img src="users_8cpp__incl.gif
</td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/users_8h-source.html b/docs/module-doc/users_8h-source.html
index d3dec62be..160eea818 100644
--- a/docs/module-doc/users_8h-source.html
+++ b/docs/module-doc/users_8h-source.html
@@ -192,7 +192,7 @@
<a name="l00342"></a>00342 };
<a name="l00343"></a>00343
<a name="l00344"></a>00344 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/users_8h.html b/docs/module-doc/users_8h.html
index e64cb27de..29b7734f4 100644
--- a/docs/module-doc/users_8h.html
+++ b/docs/module-doc/users_8h.html
@@ -277,7 +277,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#l00097">97</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 Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/xline_8h-source.html b/docs/module-doc/xline_8h-source.html
index 19224f400..157a4ca95 100644
--- a/docs/module-doc/xline_8h-source.html
+++ b/docs/module-doc/xline_8h-source.html
@@ -129,7 +129,7 @@
<a name="l00161"></a>00161 <span class="keywordtype">bool</span> <a class="code" href="xline_8h.html#qline_5Fmake_5Fglobal_28const_20char_20_2Anickname_29">qline_make_global</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* nickname);
<a name="l00162"></a>00162
<a name="l00163"></a>00163 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>
diff --git a/docs/module-doc/xline_8h.html b/docs/module-doc/xline_8h.html
index cc11181c6..d6d6a5705 100644
--- a/docs/module-doc/xline_8h.html
+++ b/docs/module-doc/xline_8h.html
@@ -172,7 +172,7 @@ This graph shows which files directly or indirectly include this file:<p><center
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00658">Server::AddELine()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00663">Server::AddELine()</a>. </td>
</tr>
</table>
<a class="anchor" name="add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29"></a><!-- doxytag: member="xline.h::add_gline" ref="add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29" args="(long duration, const char *source, const char *reason, const char *hostmask)" --><p>
@@ -223,7 +223,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00658">Server::AddEL
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00638">Server::AddGLine()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00643">Server::AddGLine()</a>. </td>
</tr>
</table>
<a class="anchor" name="add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29"></a><!-- doxytag: member="xline.h::add_kline" ref="add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29" args="(long duration, const char *source, const char *reason, const char *hostmask)" --><p>
@@ -274,7 +274,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00638">Server::AddGL
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00653">Server::AddKLine()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00658">Server::AddKLine()</a>. </td>
</tr>
</table>
<a class="anchor" name="add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29"></a><!-- doxytag: member="xline.h::add_qline" ref="add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29" args="(long duration, const char *source, const char *reason, const char *nickname)" --><p>
@@ -325,7 +325,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00653">Server::AddKL
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00643">Server::AddQLine()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00648">Server::AddQLine()</a>. </td>
</tr>
</table>
<a class="anchor" name="add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29"></a><!-- doxytag: member="xline.h::add_zline" ref="add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29" args="(long duration, const char *source, const char *reason, const char *ipaddr)" --><p>
@@ -376,7 +376,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00643">Server::AddQL
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00648">Server::AddZLine()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00653">Server::AddZLine()</a>. </td>
</tr>
</table>
<a class="anchor" name="apply_5Flines_28const_20int_20What_29"></a><!-- doxytag: member="xline.h::apply_lines" ref="apply_5Flines_28const_20int_20What_29" args="(const int What)" --><p>
@@ -434,7 +434,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00648">Server::AddZL
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00683">Server::DelELine()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00688">Server::DelELine()</a>. </td>
</tr>
</table>
<a class="anchor" name="del_5Fgline_28const_20char_20_2Ahostmask_29"></a><!-- doxytag: member="xline.h::del_gline" ref="del_5Fgline_28const_20char_20_2Ahostmask_29" args="(const char *hostmask)" --><p>
@@ -464,7 +464,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00683">Server::DelEL
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00663">Server::DelGLine()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00668">Server::DelGLine()</a>. </td>
</tr>
</table>
<a class="anchor" name="del_5Fkline_28const_20char_20_2Ahostmask_29"></a><!-- doxytag: member="xline.h::del_kline" ref="del_5Fkline_28const_20char_20_2Ahostmask_29" args="(const char *hostmask)" --><p>
@@ -494,7 +494,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00663">Server::DelGL
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00678">Server::DelKLine()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00683">Server::DelKLine()</a>. </td>
</tr>
</table>
<a class="anchor" name="del_5Fqline_28const_20char_20_2Anickname_29"></a><!-- doxytag: member="xline.h::del_qline" ref="del_5Fqline_28const_20char_20_2Anickname_29" args="(const char *nickname)" --><p>
@@ -524,7 +524,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00678">Server::DelKL
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00668">Server::DelQLine()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00673">Server::DelQLine()</a>. </td>
</tr>
</table>
<a class="anchor" name="del_5Fzline_28const_20char_20_2Aipaddr_29"></a><!-- doxytag: member="xline.h::del_zline" ref="del_5Fzline_28const_20char_20_2Aipaddr_29" args="(const char *ipaddr)" --><p>
@@ -554,7 +554,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00668">Server::DelQL
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00673">Server::DelZLine()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00678">Server::DelZLine()</a>. </td>
</tr>
</table>
<a class="anchor" name="eline_5Fset_5Fcreation_5Ftime_28char_20_2Ahost_2C_20time_5Ft_20create_5Ftime_29"></a><!-- doxytag: member="xline.h::eline_set_creation_time" ref="eline_5Fset_5Fcreation_5Ftime_28char_20_2Ahost_2C_20time_5Ft_20create_5Ftime_29" args="(char *host, time_t create_time)" --><p>
@@ -1221,7 +1221,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00033">33</a> of fi
Definition at line <a class="el" href="xline_8h-source.html#l00034">34</a> of file <a class="el" href="xline_8h-source.html">xline.h</a>. </td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>