summaryrefslogtreecommitdiff
path: root/docs/man/man3
diff options
context:
space:
mode:
Diffstat (limited to 'docs/man/man3')
-rw-r--r--docs/man/man3/Admin.366
-rw-r--r--docs/man/man3/BanItem.323
-rw-r--r--docs/man/man3/BoolSet.3152
-rw-r--r--docs/man/man3/ConfigReader.3388
-rw-r--r--docs/man/man3/ConnectClass.3154
-rw-r--r--docs/man/man3/CullItem.387
-rw-r--r--docs/man/man3/CullList.398
-rw-r--r--docs/man/man3/DNS.3229
-rw-r--r--docs/man/man3/ELine.334
-rw-r--r--docs/man/man3/Event.3167
-rw-r--r--docs/man/man3/ExemptItem.323
-rw-r--r--docs/man/man3/ExtMode.384
-rw-r--r--docs/man/man3/Extensible.3130
-rw-r--r--docs/man/man3/FileReader.3192
-rw-r--r--docs/man/man3/GLine.338
-rw-r--r--docs/man/man3/HostItem.379
-rw-r--r--docs/man/man3/InAddr_HashComp.336
-rw-r--r--docs/man/man3/InspIRCd.3134
-rw-r--r--docs/man/man3/InspSocket.3778
-rw-r--r--docs/man/man3/InviteItem.323
-rw-r--r--docs/man/man3/Invited.337
-rw-r--r--docs/man/man3/KLine.338
-rw-r--r--docs/man/man3/ModeParameter.355
-rw-r--r--docs/man/man3/Module.32215
-rw-r--r--docs/man/man3/ModuleFactory.364
-rw-r--r--docs/man/man3/ModuleMessage.353
-rw-r--r--docs/man/man3/QLine.351
-rw-r--r--docs/man/man3/Request.3169
-rw-r--r--docs/man/man3/Server.31357
-rw-r--r--docs/man/man3/ServerConfig.3513
-rw-r--r--docs/man/man3/SocketEngine.3342
-rw-r--r--docs/man/man3/StrHashComp.336
-rw-r--r--docs/man/man3/Version.378
-rw-r--r--docs/man/man3/WhoWasUser.383
-rw-r--r--docs/man/man3/XLine.378
-rw-r--r--docs/man/man3/ZLine.349
-rw-r--r--docs/man/man3/_home_.312
-rw-r--r--docs/man/man3/_home_brain_.312
-rw-r--r--docs/man/man3/_home_brain_inspircd-cvs_.312
-rw-r--r--docs/man/man3/_home_brain_inspircd-cvs_inspircd_.315
-rw-r--r--docs/man/man3/_home_brain_inspircd-cvs_inspircd_include_.372
-rw-r--r--docs/man/man3/_home_brain_inspircd-cvs_inspircd_src_.324
-rw-r--r--docs/man/man3/aes.h.360
-rw-r--r--docs/man/man3/base.h.350
-rw-r--r--docs/man/man3/channels.cpp.3546
-rw-r--r--docs/man/man3/channels.h.3528
-rw-r--r--docs/man/man3/chanrec.3497
-rw-r--r--docs/man/man3/classbase.373
-rw-r--r--docs/man/man3/command_t.3131
-rw-r--r--docs/man/man3/commands.h.3180
-rw-r--r--docs/man/man3/connection.3213
-rw-r--r--docs/man/man3/connection.h.348
-rw-r--r--docs/man/man3/ctables.h.336
-rw-r--r--docs/man/man3/cull_list.h.340
-rw-r--r--docs/man/man3/dns.h.346
-rw-r--r--docs/man/man3/dns_ip4list.335
-rw-r--r--docs/man/man3/globals.h.3174
-rw-r--r--docs/man/man3/hashcomp.h.368
-rw-r--r--docs/man/man3/inspircd.h.3121
-rw-r--r--docs/man/man3/inspircd_io.h.3123
-rw-r--r--docs/man/man3/irc.347
-rw-r--r--docs/man/man3/irc_InAddr_HashComp.338
-rw-r--r--docs/man/man3/irc_StrHashComp.338
-rw-r--r--docs/man/man3/irc_irc_char_traits.372
-rw-r--r--docs/man/man3/message.h.3128
-rw-r--r--docs/man/man3/mode.h.340
-rw-r--r--docs/man/man3/modules.cpp.3316
-rw-r--r--docs/man/man3/modules.h.3547
-rw-r--r--docs/man/man3/nspace.321
-rw-r--r--docs/man/man3/nspace_hash_ in_addr _.333
-rw-r--r--docs/man/man3/nspace_hash_ string _.333
-rw-r--r--docs/man/man3/nspace_nspace_hash_ in_addr _.329
-rw-r--r--docs/man/man3/nspace_nspace_hash_ string _.329
-rw-r--r--docs/man/man3/packet.325
-rw-r--r--docs/man/man3/serverstats.3135
-rw-r--r--docs/man/man3/socket.cpp.372
-rw-r--r--docs/man/man3/socket.h.390
-rw-r--r--docs/man/man3/socketengine.cpp.338
-rw-r--r--docs/man/man3/socketengine.h.394
-rw-r--r--docs/man/man3/std.311
-rw-r--r--docs/man/man3/std_char_traits.315
-rw-r--r--docs/man/man3/typedefs.h.388
-rw-r--r--docs/man/man3/ucrec.385
-rw-r--r--docs/man/man3/userprocess.h.352
-rw-r--r--docs/man/man3/userrec.3827
-rw-r--r--docs/man/man3/users.cpp.3731
-rw-r--r--docs/man/man3/users.h.3714
-rw-r--r--docs/man/man3/xline.h.3257
88 files changed, 0 insertions, 15854 deletions
diff --git a/docs/man/man3/Admin.3 b/docs/man/man3/Admin.3
deleted file mode 100644
index b4593f0a1..000000000
--- a/docs/man/man3/Admin.3
+++ /dev/null
@@ -1,66 +0,0 @@
-.TH "Admin" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Admin \- Holds /ADMIN data This class contains the admin details of the local server.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <modules.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBAdmin\fP (\fBstd::string\fP name, \fBstd::string\fP email, \fBstd::string\fP nick)"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "const \fBstd::string\fP \fBName\fP"
-.br
-.ti -1c
-.RI "const \fBstd::string\fP \fBEmail\fP"
-.br
-.ti -1c
-.RI "const \fBstd::string\fP \fBNick\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-Holds /ADMIN data This class contains the admin details of the local server.
-
-It is constructed by class \fBServer\fP, and has three read-only values, Name, Email and Nick that contain the specified values for the server where the module is running.
-.PP
-Definition at line 143 of file modules.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "Admin::Admin (\fBstd::string\fP name, \fBstd::string\fP email, \fBstd::string\fP nick)"
-.PP
-Definition at line 162 of file modules.cpp.
-.PP
-.nf
-162 : Name(name), Email(email), Nick(nick) { };
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "const \fBstd::string\fP \fBAdmin::Email\fP"
-.PP
-Definition at line 146 of file modules.h.
-.SS "const \fBstd::string\fP \fBAdmin::Name\fP"
-.PP
-Definition at line 146 of file modules.h.
-.SS "const \fBstd::string\fP \fBAdmin::Nick\fP"
-.PP
-Definition at line 146 of file modules.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/BanItem.3 b/docs/man/man3/BanItem.3
deleted file mode 100644
index 4d8bcce3e..000000000
--- a/docs/man/man3/BanItem.3
+++ /dev/null
@@ -1,23 +0,0 @@
-.TH "BanItem" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-BanItem \- A subclass of \fBHostItem\fP designed to hold channel bans (+b).
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <channels.h>\fP
-.PP
-Inherits \fBHostItem\fP.
-.PP
-.SH "Detailed Description"
-.PP
-A subclass of \fBHostItem\fP designed to hold channel bans (+b).
-.PP
-Definition at line 54 of file channels.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/BoolSet.3 b/docs/man/man3/BoolSet.3
deleted file mode 100644
index dbfb454dd..000000000
--- a/docs/man/man3/BoolSet.3
+++ /dev/null
@@ -1,152 +0,0 @@
-.TH "BoolSet" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-BoolSet \- BoolSet is a utility class designed to hold eight bools in a bitmask.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <base.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBBoolSet\fP ()"
-.br
-.RI "\fIThe default constructor initializes the BoolSet to all values unset. \fP"
-.ti -1c
-.RI "\fBBoolSet\fP (char bitmask)"
-.br
-.RI "\fIThis constructor copies the default bitmask from a char. \fP"
-.ti -1c
-.RI "void \fBSet\fP (int number)"
-.br
-.RI "\fIThe Set method sets one bool in the set. \fP"
-.ti -1c
-.RI "bool \fBGet\fP (int number)"
-.br
-.RI "\fIThe Get method returns the value of one bool in the set. \fP"
-.ti -1c
-.RI "void \fBUnset\fP (int number)"
-.br
-.RI "\fIThe Unset method unsets one value in the set. \fP"
-.ti -1c
-.RI "void \fBInvert\fP (int number)"
-.br
-.RI "\fIThe Unset method inverts (flips) one value in the set. \fP"
-.ti -1c
-.RI "bool \fBoperator==\fP (\fBBoolSet\fP other)"
-.br
-.RI "\fICompare two BoolSets. \fP"
-.ti -1c
-.RI "\fBBoolSet\fP \fBoperator|\fP (\fBBoolSet\fP other)"
-.br
-.RI "\fIOR two BoolSets together. \fP"
-.ti -1c
-.RI "\fBBoolSet\fP \fBoperator &\fP (\fBBoolSet\fP other)"
-.br
-.RI "\fIAND two BoolSets together. \fP"
-.ti -1c
-.RI "bool \fBoperator=\fP (\fBBoolSet\fP other)"
-.br
-.RI "\fIAssign one BoolSet to another. \fP"
-.in -1c
-.SS "Private Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBbits\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-BoolSet is a utility class designed to hold eight bools in a bitmask.
-
-Use \fBBoolSet::Set\fP and \fBBoolSet::Get\fP to set and get bools in the bitmask, and Unset and Invert for special operations upon them.
-.PP
-Definition at line 104 of file base.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "BoolSet::BoolSet ()"
-.PP
-The default constructor initializes the BoolSet to all values unset.
-.PP
-.SS "BoolSet::BoolSet (char bitmask)"
-.PP
-This constructor copies the default bitmask from a char.
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "bool BoolSet::Get (int number)"
-.PP
-The Get method returns the value of one bool in the set.
-.PP
-\fBParameters:\fP
-.RS 4
-\fInumber\fP The number of the item to retrieve. This must be between 0 and 7.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-True if the item is set, false if it is unset.
-.RE
-.PP
-
-.SS "void BoolSet::Invert (int number)"
-.PP
-The Unset method inverts (flips) one value in the set.
-.PP
-\fBParameters:\fP
-.RS 4
-\fInumber\fP The number of the item to invert. This must be between 0 and 7.
-.RE
-.PP
-
-.SS "\fBBoolSet\fP BoolSet::operator & (\fBBoolSet\fP other)"
-.PP
-AND two BoolSets together.
-.PP
-.SS "bool BoolSet::operator= (\fBBoolSet\fP other)"
-.PP
-Assign one BoolSet to another.
-.PP
-.SS "bool BoolSet::operator== (\fBBoolSet\fP other)"
-.PP
-Compare two BoolSets.
-.PP
-.SS "\fBBoolSet\fP BoolSet::operator| (\fBBoolSet\fP other)"
-.PP
-OR two BoolSets together.
-.PP
-.SS "void BoolSet::Set (int number)"
-.PP
-The Set method sets one bool in the set.
-.PP
-\fBParameters:\fP
-.RS 4
-\fInumber\fP The number of the item to set. This must be between 0 and 7.
-.RE
-.PP
-
-.SS "void BoolSet::Unset (int number)"
-.PP
-The Unset method unsets one value in the set.
-.PP
-\fBParameters:\fP
-.RS 4
-\fInumber\fP The number of the item to set. This must be between 0 and 7.
-.RE
-.PP
-
-.SH "Member Data Documentation"
-.PP
-.SS "char \fBBoolSet::bits\fP\fC [private]\fP"
-.PP
-Definition at line 106 of file base.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/ConfigReader.3 b/docs/man/man3/ConfigReader.3
deleted file mode 100644
index f3b765d89..000000000
--- a/docs/man/man3/ConfigReader.3
+++ /dev/null
@@ -1,388 +0,0 @@
-.TH "ConfigReader" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ConfigReader \- Allows reading of values from configuration files This class allows a module to read from either the main configuration file (inspircd.conf) or from a module-specified configuration file.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <modules.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBConfigReader\fP ()"
-.br
-.RI "\fIDefault constructor. \fP"
-.ti -1c
-.RI "\fBConfigReader\fP (\fBstd::string\fP filename)"
-.br
-.RI "\fIOverloaded constructor. \fP"
-.ti -1c
-.RI "\fB~ConfigReader\fP ()"
-.br
-.RI "\fIDefault destructor. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBReadValue\fP (\fBstd::string\fP tag, \fBstd::string\fP name, int index)"
-.br
-.RI "\fIRetrieves a value from the config file. \fP"
-.ti -1c
-.RI "bool \fBReadFlag\fP (\fBstd::string\fP tag, \fBstd::string\fP name, int index)"
-.br
-.RI "\fIRetrieves a boolean value from the config file. \fP"
-.ti -1c
-.RI "long \fBReadInteger\fP (\fBstd::string\fP tag, \fBstd::string\fP name, int index, bool needs_unsigned)"
-.br
-.RI "\fIRetrieves an integer value from the config file. \fP"
-.ti -1c
-.RI "long \fBGetError\fP ()"
-.br
-.RI "\fIReturns the last error to occur. \fP"
-.ti -1c
-.RI "int \fBEnumerate\fP (\fBstd::string\fP tag)"
-.br
-.RI "\fICounts the number of times a given tag appears in the config file. \fP"
-.ti -1c
-.RI "bool \fBVerify\fP ()"
-.br
-.RI "\fIReturns true if a config file is valid. \fP"
-.ti -1c
-.RI "void \fBDumpErrors\fP (bool bail, \fBuserrec\fP *user)"
-.br
-.RI "\fIDumps the list of errors in a config file to an output location. \fP"
-.ti -1c
-.RI "int \fBEnumerateValues\fP (\fBstd::string\fP tag, int index)"
-.br
-.RI "\fIReturns the number of items within a tag. \fP"
-.in -1c
-.SS "Protected Attributes"
-
-.in +1c
-.ti -1c
-.RI "std::stringstream * \fBcache\fP"
-.br
-.RI "\fIThe contents of the configuration file This protected member should never be accessed by a module (and cannot be accessed unless the core is changed). \fP"
-.ti -1c
-.RI "std::stringstream * \fBerrorlog\fP"
-.br
-.ti -1c
-.RI "bool \fBreaderror\fP"
-.br
-.RI "\fIUsed to store errors. \fP"
-.ti -1c
-.RI "long \fBerror\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-Allows reading of values from configuration files This class allows a module to read from either the main configuration file (inspircd.conf) or from a module-specified configuration file.
-
-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 1550 of file modules.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "ConfigReader::ConfigReader ()"
-.PP
-Default constructor.
-.PP
-This constructor initialises the ConfigReader class to read the inspircd.conf file as specified when running ./configure.
-.PP
-Definition at line 735 of file modules.cpp.
-.PP
-References cache, ServerConfig::ClearStack(), CONF_FILE_NOT_FOUND, error, errorlog, ServerConfig::LoadConf(), and readerror.
-.PP
-.nf
-736 {
-737 Config->ClearStack();
-738 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
-739 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
-740 this->readerror = Config->LoadConf(CONFIG_FILE,this->cache,this->errorlog);
-741 if (!this->readerror)
-742 this->error = CONF_FILE_NOT_FOUND;
-743 }
-.fi
-.PP
-.SS "ConfigReader::ConfigReader (\fBstd::string\fP filename)"
-.PP
-Overloaded constructor.
-.PP
-This constructor initialises the ConfigReader class to read a user-specified config file
-.PP
-Definition at line 755 of file modules.cpp.
-.PP
-References cache, ServerConfig::ClearStack(), CONF_FILE_NOT_FOUND, error, errorlog, ServerConfig::LoadConf(), and readerror.
-.PP
-.nf
-756 {
-757 Config->ClearStack();
-758 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
-759 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
-760 this->readerror = Config->LoadConf(filename.c_str(),this->cache,this->errorlog);
-761 if (!this->readerror)
-762 this->error = CONF_FILE_NOT_FOUND;
-763 };
-.fi
-.PP
-.SS "ConfigReader::~ConfigReader ()"
-.PP
-Default destructor.
-.PP
-This method destroys the ConfigReader class.
-.PP
-Definition at line 746 of file modules.cpp.
-.PP
-References cache, and errorlog.
-.PP
-.nf
-747 {
-748 if (this->cache)
-749 delete this->cache;
-750 if (this->errorlog)
-751 delete this->errorlog;
-752 }
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "void ConfigReader::DumpErrors (bool bail, \fBuserrec\fP * user)"
-.PP
-Dumps the list of errors in a config file to an output location.
-.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 834 of file modules.cpp.
-.PP
-References errorlog, connection::fd, userrec::nick, WriteOpers(), and WriteServ().
-.PP
-.nf
-835 {
-836 if (bail)
-837 {
-838 printf('There were errors in your configuration:\n%s',errorlog->str().c_str());
-839 exit(0);
-840 }
-841 else
-842 {
-843 char dataline[1024];
-844 if (user)
-845 {
-846 WriteServ(user->fd,'NOTICE %s :There were errors in the configuration file:',user->nick);
-847 while (!errorlog->eof())
-848 {
-849 errorlog->getline(dataline,1024);
-850 WriteServ(user->fd,'NOTICE %s :%s',user->nick,dataline);
-851 }
-852 }
-853 else
-854 {
-855 WriteOpers('There were errors in the configuration file:',user->nick);
-856 while (!errorlog->eof())
-857 {
-858 errorlog->getline(dataline,1024);
-859 WriteOpers(dataline);
-860 }
-861 }
-862 return;
-863 }
-864 }
-.fi
-.PP
-.SS "int ConfigReader::Enumerate (\fBstd::string\fP tag)"
-.PP
-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 867 of file modules.cpp.
-.PP
-References cache, and ServerConfig::EnumConf().
-.PP
-.nf
-868 {
-869 return Config->EnumConf(cache,tag.c_str());
-870 }
-.fi
-.PP
-.SS "int ConfigReader::EnumerateValues (\fBstd::string\fP tag, int index)"
-.PP
-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 872 of file modules.cpp.
-.PP
-References cache, and ServerConfig::EnumValues().
-.PP
-.nf
-873 {
-874 return Config->EnumValues(cache, tag.c_str(), index);
-875 }
-.fi
-.PP
-.SS "long ConfigReader::GetError ()"
-.PP
-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 827 of file modules.cpp.
-.PP
-References error.
-.PP
-.nf
-828 {
-829 long olderr = this->error;
-830 this->error = 0;
-831 return olderr;
-832 }
-.fi
-.PP
-.SS "bool ConfigReader::ReadFlag (\fBstd::string\fP tag, \fBstd::string\fP name, int index)"
-.PP
-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 781 of file modules.cpp.
-.PP
-References cache, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().
-.PP
-.nf
-782 {
-783 char val[MAXBUF];
-784 char t[MAXBUF];
-785 char n[MAXBUF];
-786 strlcpy(t,tag.c_str(),MAXBUF);
-787 strlcpy(n,name.c_str(),MAXBUF);
-788 int res = Config->ReadConf(cache,t,n,index,val);
-789 if (!res)
-790 {
-791 this->error = CONF_VALUE_NOT_FOUND;
-792 return false;
-793 }
-794 std::string s = val;
-795 return ((s == 'yes') || (s == 'YES') || (s == 'true') || (s == 'TRUE') || (s == '1'));
-796 }
-.fi
-.PP
-.SS "long ConfigReader::ReadInteger (\fBstd::string\fP tag, \fBstd::string\fP name, int index, bool needs_unsigned)"
-.PP
-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 798 of file modules.cpp.
-.PP
-References cache, CONF_NOT_A_NUMBER, CONF_NOT_UNSIGNED, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().
-.PP
-.nf
-799 {
-800 char val[MAXBUF];
-801 char t[MAXBUF];
-802 char n[MAXBUF];
-803 strlcpy(t,tag.c_str(),MAXBUF);
-804 strlcpy(n,name.c_str(),MAXBUF);
-805 int res = Config->ReadConf(cache,t,n,index,val);
-806 if (!res)
-807 {
-808 this->error = CONF_VALUE_NOT_FOUND;
-809 return 0;
-810 }
-811 for (unsigned int i = 0; i < strlen(val); i++)
-812 {
-813 if (!isdigit(val[i]))
-814 {
-815 this->error = CONF_NOT_A_NUMBER;
-816 return 0;
-817 }
-818 }
-819 if ((needs_unsigned) && (atoi(val)<0))
-820 {
-821 this->error = CONF_NOT_UNSIGNED;
-822 return 0;
-823 }
-824 return atoi(val);
-825 }
-.fi
-.PP
-.SS "\fBstd::string\fP ConfigReader::ReadValue (\fBstd::string\fP tag, \fBstd::string\fP name, int index)"
-.PP
-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 765 of file modules.cpp.
-.PP
-References cache, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().
-.PP
-.nf
-766 {
-767 char val[MAXBUF];
-768 char t[MAXBUF];
-769 char n[MAXBUF];
-770 strlcpy(t,tag.c_str(),MAXBUF);
-771 strlcpy(n,name.c_str(),MAXBUF);
-772 int res = Config->ReadConf(cache,t,n,index,val);
-773 if (!res)
-774 {
-775 this->error = CONF_VALUE_NOT_FOUND;
-776 return '';
-777 }
-778 return val;
-779 }
-.fi
-.PP
-.SS "bool ConfigReader::Verify ()"
-.PP
-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 877 of file modules.cpp.
-.PP
-References readerror.
-.PP
-.nf
-878 {
-879 return this->readerror;
-880 }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "std::stringstream* \fBConfigReader::cache\fP\fC [protected]\fP"
-.PP
-The contents of the configuration file This protected member should never be accessed by a module (and cannot be accessed unless the core is changed).
-.PP
-It will contain a pointer to the configuration file data with unneeded data (such as comments) stripped from it.
-.PP
-Definition at line 1558 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 1563 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 1559 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 1562 of file modules.h.
-.PP
-Referenced by ConfigReader(), and Verify().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/ConnectClass.3 b/docs/man/man3/ConnectClass.3
deleted file mode 100644
index fc7128778..000000000
--- a/docs/man/man3/ConnectClass.3
+++ /dev/null
@@ -1,154 +0,0 @@
-.TH "ConnectClass" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ConnectClass \- Holds information relevent to <connect allow> and <connect deny> tags in the config file.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <users.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBConnectClass\fP ()"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBtype\fP"
-.br
-.RI "\fIType of line, either CC_ALLOW or CC_DENY. \fP"
-.ti -1c
-.RI "int \fBregistration_timeout\fP"
-.br
-.RI "\fIMax time to register the connection in seconds. \fP"
-.ti -1c
-.RI "int \fBflood\fP"
-.br
-.RI "\fINumber of lines in buffer before excess flood is triggered. \fP"
-.ti -1c
-.RI "char \fBhost\fP [MAXBUF]"
-.br
-.RI "\fIHost mask for this line. \fP"
-.ti -1c
-.RI "int \fBpingtime\fP"
-.br
-.RI "\fINumber of seconds between pings for this line. \fP"
-.ti -1c
-.RI "char \fBpass\fP [MAXBUF]"
-.br
-.RI "\fI(Optional) Password for this line \fP"
-.ti -1c
-.RI "int \fBthreshold\fP"
-.br
-.RI "\fIThreshold value for flood disconnect. \fP"
-.ti -1c
-.RI "long \fBsendqmax\fP"
-.br
-.RI "\fIMaximum size of sendq for users in this class (bytes). \fP"
-.ti -1c
-.RI "long \fBrecvqmax\fP"
-.br
-.RI "\fIMaximum size of recvq for users in this class (bytes). \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-Holds information relevent to <connect allow> and <connect deny> tags in the config file.
-.PP
-Definition at line 52 of file users.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "ConnectClass::ConnectClass ()\fC [inline]\fP"
-.PP
-Definition at line 86 of file users.h.
-.PP
-References flood, host, pass, pingtime, recvqmax, registration_timeout, sendqmax, and threshold.
-.PP
-.nf
-87 {
-88 registration_timeout = 0;
-89 flood = 0;
-90 pingtime = 0;
-91 threshold = 0;
-92 sendqmax = 0;
-93 recvqmax = 0;
-94 strlcpy(host,'',MAXBUF);
-95 strlcpy(pass,'',MAXBUF);
-96 }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "int \fBConnectClass::flood\fP"
-.PP
-Number of lines in buffer before excess flood is triggered.
-.PP
-Definition at line 63 of file users.h.
-.PP
-Referenced by ConnectClass().
-.SS "char \fBConnectClass::host\fP[MAXBUF]"
-.PP
-Host mask for this line.
-.PP
-Definition at line 66 of file users.h.
-.PP
-Referenced by ConnectClass().
-.SS "char \fBConnectClass::pass\fP[MAXBUF]"
-.PP
-(Optional) Password for this line
-.PP
-Definition at line 72 of file users.h.
-.PP
-Referenced by ConnectClass().
-.SS "int \fBConnectClass::pingtime\fP"
-.PP
-Number of seconds between pings for this line.
-.PP
-Definition at line 69 of file users.h.
-.PP
-Referenced by ConnectClass().
-.SS "long \fBConnectClass::recvqmax\fP"
-.PP
-Maximum size of recvq for users in this class (bytes).
-.PP
-Definition at line 84 of file users.h.
-.PP
-Referenced by ConnectClass().
-.SS "int \fBConnectClass::registration_timeout\fP"
-.PP
-Max time to register the connection in seconds.
-.PP
-Definition at line 60 of file users.h.
-.PP
-Referenced by ConnectClass().
-.SS "long \fBConnectClass::sendqmax\fP"
-.PP
-Maximum size of sendq for users in this class (bytes).
-.PP
-Definition at line 80 of file users.h.
-.PP
-Referenced by ConnectClass().
-.SS "int \fBConnectClass::threshold\fP"
-.PP
-Threshold value for flood disconnect.
-.PP
-Definition at line 76 of file users.h.
-.PP
-Referenced by ConnectClass().
-.SS "char \fBConnectClass::type\fP"
-.PP
-Type of line, either CC_ALLOW or CC_DENY.
-.PP
-Definition at line 57 of file users.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/CullItem.3 b/docs/man/man3/CullItem.3
deleted file mode 100644
index 8877d91ac..000000000
--- a/docs/man/man3/CullItem.3
+++ /dev/null
@@ -1,87 +0,0 @@
-.TH "CullItem" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-CullItem \- The CullItem class holds a user and their quitmessage, and is used internally by the \fBCullList\fP class to compile a list of users which are to be culled when a long operation (such as a netsplit) has completed.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <cull_list.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBCullItem\fP (\fBuserrec\fP *u, \fBstd::string\fP r)"
-.br
-.RI "\fIConstrcutor. \fP"
-.ti -1c
-.RI "\fBuserrec\fP * \fBGetUser\fP ()"
-.br
-.RI "\fIReturns a pointer to the user. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBGetReason\fP ()"
-.br
-.RI "\fIReturns the user's quit reason. \fP"
-.in -1c
-.SS "Private Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBuserrec\fP * \fBuser\fP"
-.br
-.RI "\fIHolds a pointer to the user, must be valid and can be a local or remote user. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBreason\fP"
-.br
-.RI "\fIHolds the quit reason to use for this user. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-The CullItem class holds a user and their quitmessage, and is used internally by the \fBCullList\fP class to compile a list of users which are to be culled when a long operation (such as a netsplit) has completed.
-.PP
-Definition at line 36 of file cull_list.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "CullItem::CullItem (\fBuserrec\fP * u, \fBstd::string\fP r)"
-.PP
-Constrcutor.
-.PP
-Initializes the CullItem with a user pointer and their quit reason
-.PP
-\fBParameters:\fP
-.RS 4
-\fIu\fP The user to add
-.br
-\fIr\fP The quit reason of the added user
-.RE
-.PP
-
-.SH "Member Function Documentation"
-.PP
-.SS "\fBstd::string\fP CullItem::GetReason ()"
-.PP
-Returns the user's quit reason.
-.PP
-.SS "\fBuserrec\fP* CullItem::GetUser ()"
-.PP
-Returns a pointer to the user.
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "\fBstd::string\fP \fBCullItem::reason\fP\fC [private]\fP"
-.PP
-Holds the quit reason to use for this user.
-.PP
-Definition at line 45 of file cull_list.h.
-.SS "\fBuserrec\fP* \fBCullItem::user\fP\fC [private]\fP"
-.PP
-Holds a pointer to the user, must be valid and can be a local or remote user.
-.PP
-Definition at line 42 of file cull_list.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/CullList.3 b/docs/man/man3/CullList.3
deleted file mode 100644
index 88bba01ab..000000000
--- a/docs/man/man3/CullList.3
+++ /dev/null
@@ -1,98 +0,0 @@
-.TH "CullList" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-CullList \- The CullList class can be used by modules, and is used by the core, to compile large lists of users in preperation to quitting them all at once.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <cull_list.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBCullList\fP ()"
-.br
-.RI "\fIConstructor. \fP"
-.ti -1c
-.RI "void \fBAddItem\fP (\fBuserrec\fP *user, \fBstd::string\fP reason)"
-.br
-.RI "\fIAdds a user to the cull list for later removal via QUIT. \fP"
-.ti -1c
-.RI "int \fBApply\fP ()"
-.br
-.RI "\fIApplies the cull list, quitting all the users on the list with their quit reasons all at once. \fP"
-.in -1c
-.SS "Private Attributes"
-
-.in +1c
-.ti -1c
-.RI "std::vector< \fBCullItem\fP > \fBlist\fP"
-.br
-.RI "\fIHolds a list of users being quit. \fP"
-.ti -1c
-.RI "std::map< \fBuserrec\fP *, int > \fBexempt\fP"
-.br
-.RI "\fIA list of users who have already been placed on the list, as a map for fast reference. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-The CullList class can be used by modules, and is used by the core, to compile large lists of users in preperation to quitting them all at once.
-
-This is faster than quitting them within the loop, as the loops become tighter with little or no comparisons within them. The CullList class operates by allowing the programmer to push users onto the list, each with a seperate quit reason, and then, once the list is complete, call a method to flush the list, quitting all the users upon it. A CullList may hold local or remote users, but it may only hold each user once. If you attempt to add the same user twice, then the second attempt will be ignored.
-.PP
-Definition at line 75 of file cull_list.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "CullList::CullList ()"
-.PP
-Constructor.
-.PP
-Clears the \fBCullList::list\fP and \fBCullList::exempt\fP items.
-.SH "Member Function Documentation"
-.PP
-.SS "void CullList::AddItem (\fBuserrec\fP * user, \fBstd::string\fP reason)"
-.PP
-Adds a user to the cull list for later removal via QUIT.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user to add
-.br
-\fIreason\fP The quit reason of the user being added
-.RE
-.PP
-
-.SS "int CullList::Apply ()"
-.PP
-Applies the cull list, quitting all the users on the list with their quit reasons all at once.
-.PP
-This is a very fast operation compared to iterating the user list and comparing each one, especially if there are multiple comparisons to be done, or recursion.
-.PP
-\fBReturns:\fP
-.RS 4
-The number of users removed from IRC.
-.RE
-.PP
-
-.SH "Member Data Documentation"
-.PP
-.SS "std::map<\fBuserrec\fP*,int> \fBCullList::exempt\fP\fC [private]\fP"
-.PP
-A list of users who have already been placed on the list, as a map for fast reference.
-.PP
-Definition at line 87 of file cull_list.h.
-.SS "std::vector<\fBCullItem\fP> \fBCullList::list\fP\fC [private]\fP"
-.PP
-Holds a list of users being quit.
-.PP
-See the information for \fBCullItem\fP for more information.
-.PP
-Definition at line 82 of file cull_list.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/DNS.3 b/docs/man/man3/DNS.3
deleted file mode 100644
index 2b5c3617e..000000000
--- a/docs/man/man3/DNS.3
+++ /dev/null
@@ -1,229 +0,0 @@
-.TH "DNS" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-DNS \- The DNS class allows fast nonblocking resolution of hostnames and ip addresses.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <dns.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBDNS\fP ()"
-.br
-.RI "\fIThe default constructor uses dns addresses read from /etc/resolv.conf. \fP"
-.ti -1c
-.RI "\fBDNS\fP (\fBstd::string\fP dnsserver)"
-.br
-.RI "\fIThis constructor accepts a dns server address. \fP"
-.ti -1c
-.RI "\fB~DNS\fP ()"
-.br
-.RI "\fIThe destructor frees all used structures. \fP"
-.ti -1c
-.RI "bool \fBReverseLookup\fP (\fBstd::string\fP ip)"
-.br
-.RI "\fIThis method will start the reverse lookup of an ip given in dotted decimal format, e.g. \fP"
-.ti -1c
-.RI "bool \fBForwardLookup\fP (\fBstd::string\fP host)"
-.br
-.RI "\fIThis method will start the forward lookup of a hostname, e.g. \fP"
-.ti -1c
-.RI "bool \fBHasResult\fP ()"
-.br
-.RI "\fIThis method will return true when the lookup is completed. \fP"
-.ti -1c
-.RI "bool \fBHasResult\fP (int fd)"
-.br
-.RI "\fIThis method will return true if the lookup's fd matches the one provided. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBGetResult\fP ()"
-.br
-.RI "\fIThis method returns the result of your query as a string, depending upon wether you called \fBDNS::ReverseLookup()\fP or \fBDNS::ForwardLookup\fP. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBGetResultIP\fP ()"
-.br
-.ti -1c
-.RI "int \fBGetFD\fP ()"
-.br
-.RI "\fIThis method returns the file handle used by the dns query socket or zero if the query is invalid for some reason, e.g. \fP"
-.ti -1c
-.RI "void \fBSetNS\fP (\fBstd::string\fP dnsserver)"
-.br
-.in -1c
-.SS "Private Member Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBdns_init\fP ()"
-.br
-.ti -1c
-.RI "void \fBdns_init_2\fP (const char *dnsserver)"
-.br
-.ti -1c
-.RI "in_addr * \fBdns_aton4\fP (const char *const ipstring)"
-.br
-.ti -1c
-.RI "char * \fBdns_ntoa4\fP (const in_addr *const ip)"
-.br
-.ti -1c
-.RI "int \fBdns_getip4\fP (const char *const name)"
-.br
-.ti -1c
-.RI "int \fBdns_getip4list\fP (const char *const name)"
-.br
-.ti -1c
-.RI "int \fBdns_getname4\fP (const in_addr *const ip)"
-.br
-.ti -1c
-.RI "char * \fBdns_getresult\fP (const int fd)"
-.br
-.ti -1c
-.RI "in_addr * \fBdns_aton4_s\fP (const char *const ipstring, in_addr *const ip)"
-.br
-.ti -1c
-.RI "char * \fBdns_ntoa4_s\fP (const in_addr *const ip, char *const \fBresult\fP)"
-.br
-.ti -1c
-.RI "char * \fBdns_getresult_s\fP (const int fd, char *const \fBresult\fP)"
-.br
-.ti -1c
-.RI "in_addr * \fBdns_aton4_r\fP (const char *const ipstring)"
-.br
-.ti -1c
-.RI "char * \fBdns_ntoa4_r\fP (const in_addr *const ip)"
-.br
-.ti -1c
-.RI "char * \fBdns_getresult_r\fP (const int fd)"
-.br
-.in -1c
-.SS "Private Attributes"
-
-.in +1c
-.ti -1c
-.RI "in_addr * \fBbinip\fP"
-.br
-.ti -1c
-.RI "char * \fBresult\fP"
-.br
-.ti -1c
-.RI "char \fBlocalbuf\fP [1024]"
-.br
-.ti -1c
-.RI "int \fBt\fP"
-.br
-.ti -1c
-.RI "int \fBmyfd\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-The DNS class allows fast nonblocking resolution of hostnames and ip addresses.
-
-It is based heavily upon firedns by Ian Gulliver.
-.PP
-Definition at line 35 of file dns.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "DNS::DNS ()"
-.PP
-The default constructor uses dns addresses read from /etc/resolv.conf.
-.PP
-Please note that it will re-read /etc/resolv.conf for each copy of the class you instantiate, causing disk access and slow lookups if you create a lot of them. Consider passing the constructor a server address as a parameter instead.
-.SS "DNS::DNS (\fBstd::string\fP dnsserver)"
-.PP
-This constructor accepts a dns server address.
-.PP
-The address must be in dotted decimal form, e.g. 1.2.3.4.
-.SS "DNS::~DNS ()"
-.PP
-The destructor frees all used structures.
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "in_addr* DNS::dns_aton4 (const char *const ipstring)\fC [private]\fP"
-.PP
-.SS "in_addr* DNS::dns_aton4_r (const char *const ipstring)\fC [private]\fP"
-.PP
-.SS "in_addr* DNS::dns_aton4_s (const char *const ipstring, in_addr *const ip)\fC [private]\fP"
-.PP
-.SS "int DNS::dns_getip4 (const char *const name)\fC [private]\fP"
-.PP
-.SS "int DNS::dns_getip4list (const char *const name)\fC [private]\fP"
-.PP
-.SS "int DNS::dns_getname4 (const in_addr *const ip)\fC [private]\fP"
-.PP
-.SS "char* DNS::dns_getresult (const int fd)\fC [private]\fP"
-.PP
-.SS "char* DNS::dns_getresult_r (const int fd)\fC [private]\fP"
-.PP
-.SS "char* DNS::dns_getresult_s (const int fd, char *const result)\fC [private]\fP"
-.PP
-.SS "void DNS::dns_init ()\fC [private]\fP"
-.PP
-.SS "void DNS::dns_init_2 (const char * dnsserver)\fC [private]\fP"
-.PP
-.SS "char* DNS::dns_ntoa4 (const in_addr *const ip)\fC [private]\fP"
-.PP
-.SS "char* DNS::dns_ntoa4_r (const in_addr *const ip)\fC [private]\fP"
-.PP
-.SS "char* DNS::dns_ntoa4_s (const in_addr *const ip, char *const result)\fC [private]\fP"
-.PP
-.SS "bool DNS::ForwardLookup (\fBstd::string\fP host)"
-.PP
-This method will start the forward lookup of a hostname, e.g.
-.PP
-www.inspircd.org, and returns true if the lookup was successfully initiated.
-.SS "int DNS::GetFD ()"
-.PP
-This method returns the file handle used by the dns query socket or zero if the query is invalid for some reason, e.g.
-.PP
-the dns server not responding.
-.SS "\fBstd::string\fP DNS::GetResult ()"
-.PP
-This method returns the result of your query as a string, depending upon wether you called \fBDNS::ReverseLookup()\fP or \fBDNS::ForwardLookup\fP.
-.PP
-.SS "\fBstd::string\fP DNS::GetResultIP ()"
-.PP
-.SS "bool DNS::HasResult (int fd)"
-.PP
-This method will return true if the lookup's fd matches the one provided.
-.PP
-.SS "bool DNS::HasResult ()"
-.PP
-This method will return true when the lookup is completed.
-.PP
-It uses poll internally to determine the status of the socket.
-.SS "bool DNS::ReverseLookup (\fBstd::string\fP ip)"
-.PP
-This method will start the reverse lookup of an ip given in dotted decimal format, e.g.
-.PP
-1.2.3.4, and returns true if the lookup was successfully initiated.
-.SS "void DNS::SetNS (\fBstd::string\fP dnsserver)"
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "in_addr* \fBDNS::binip\fP\fC [private]\fP"
-.PP
-Definition at line 38 of file dns.h.
-.SS "char \fBDNS::localbuf\fP[1024]\fC [private]\fP"
-.PP
-Definition at line 40 of file dns.h.
-.SS "int \fBDNS::myfd\fP\fC [private]\fP"
-.PP
-Definition at line 43 of file dns.h.
-.SS "char* \fBDNS::result\fP\fC [private]\fP"
-.PP
-Definition at line 39 of file dns.h.
-.SS "int \fBDNS::t\fP\fC [private]\fP"
-.PP
-Definition at line 41 of file dns.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/ELine.3 b/docs/man/man3/ELine.3
deleted file mode 100644
index 0453224ce..000000000
--- a/docs/man/man3/ELine.3
+++ /dev/null
@@ -1,34 +0,0 @@
-.TH "ELine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ELine \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <xline.h>\fP
-.PP
-Inherits \fBXLine\fP.
-.PP
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBhostmask\fP [200]"
-.br
-.RI "\fIHostmask (ident) to match against May contain wildcards. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-Definition at line 87 of file xline.h.
-.SH "Member Data Documentation"
-.PP
-.SS "char \fBELine::hostmask\fP[200]"
-.PP
-Hostmask (ident) to match against May contain wildcards.
-.PP
-Definition at line 93 of file xline.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/Event.3 b/docs/man/man3/Event.3
deleted file mode 100644
index 7ce4188e5..000000000
--- a/docs/man/man3/Event.3
+++ /dev/null
@@ -1,167 +0,0 @@
-.TH "Event" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Event \- The Event class is a unicast message directed at all modules.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <modules.h>\fP
-.PP
-Inherits \fBModuleMessage\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBEvent\fP (char *anydata, \fBModule\fP *src, \fBstd::string\fP eventid)"
-.br
-.RI "\fICreate a new Event. \fP"
-.ti -1c
-.RI "char * \fBGetData\fP ()"
-.br
-.RI "\fIGet the Event data. \fP"
-.ti -1c
-.RI "\fBModule\fP * \fBGetSource\fP ()"
-.br
-.RI "\fIGet the event Source. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBGetEventID\fP ()"
-.br
-.RI "\fIGet the event ID. \fP"
-.ti -1c
-.RI "char * \fBSend\fP ()"
-.br
-.RI "\fISend the Event. \fP"
-.in -1c
-.SS "Protected Attributes"
-
-.in +1c
-.ti -1c
-.RI "char * \fBdata\fP"
-.br
-.RI "\fIThis member holds a pointer to arbitary data set by the emitter of the message. \fP"
-.ti -1c
-.RI "\fBModule\fP * \fBsource\fP"
-.br
-.RI "\fIThis is a pointer to the sender of the message, which can be used to directly trigger events, or to create a reply. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBid\fP"
-.br
-.RI "\fIThe event identifier. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-The Event class is a unicast message directed at all modules.
-
-When the class is properly instantiated it may be sent to all modules using the \fBSend()\fP method, which will trigger the OnEvent method in all modules passing the object as its parameter.
-.PP
-Definition at line 215 of file modules.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "Event::Event (char * anydata, \fBModule\fP * src, \fBstd::string\fP eventid)"
-.PP
-Create a new Event.
-.PP
-Definition at line 193 of file modules.cpp.
-.PP
-.nf
-193 : data(anydata), source(src), id(eventid) { };
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "char * Event::GetData ()"
-.PP
-Get the Event data.
-.PP
-Definition at line 195 of file modules.cpp.
-.PP
-References data.
-.PP
-.nf
-196 {
-197 return this->data;
-198 }
-.fi
-.PP
-.SS "\fBstd::string\fP Event::GetEventID ()"
-.PP
-Get the event ID.
-.PP
-Use this to determine the event type for safe casting of the data
-.PP
-Definition at line 211 of file modules.cpp.
-.PP
-References id.
-.PP
-.nf
-212 {
-213 return this->id;
-214 }
-.fi
-.PP
-.SS "\fBModule\fP * Event::GetSource ()"
-.PP
-Get the event Source.
-.PP
-Definition at line 200 of file modules.cpp.
-.PP
-References source.
-.PP
-.nf
-201 {
-202 return this->source;
-203 }
-.fi
-.PP
-.SS "char * Event::Send ()\fC [virtual]\fP"
-.PP
-Send the Event.
-.PP
-The return result of an \fBEvent::Send()\fP will always be NULL as no replies are expected.
-.PP
-Implements \fBModuleMessage\fP.
-.PP
-Definition at line 205 of file modules.cpp.
-.PP
-References FOREACH_MOD.
-.PP
-.nf
-206 {
-207 FOREACH_MOD OnEvent(this);
-208 return NULL;
-209 }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "char* \fBEvent::data\fP\fC [protected]\fP"
-.PP
-This member holds a pointer to arbitary data set by the emitter of the message.
-.PP
-Definition at line 220 of file modules.h.
-.PP
-Referenced by GetData().
-.SS "\fBstd::string\fP \fBEvent::id\fP\fC [protected]\fP"
-.PP
-The event identifier.
-.PP
-This is arbitary text which should be used to distinguish one type of event from another.
-.PP
-Definition at line 229 of file modules.h.
-.PP
-Referenced by GetEventID().
-.SS "\fBModule\fP* \fBEvent::source\fP\fC [protected]\fP"
-.PP
-This is a pointer to the sender of the message, which can be used to directly trigger events, or to create a reply.
-.PP
-Definition at line 224 of file modules.h.
-.PP
-Referenced by GetSource().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/ExemptItem.3 b/docs/man/man3/ExemptItem.3
deleted file mode 100644
index 861deec67..000000000
--- a/docs/man/man3/ExemptItem.3
+++ /dev/null
@@ -1,23 +0,0 @@
-.TH "ExemptItem" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ExemptItem \- A subclass of \fBHostItem\fP designed to hold channel exempts (+e).
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <channels.h>\fP
-.PP
-Inherits \fBHostItem\fP.
-.PP
-.SH "Detailed Description"
-.PP
-A subclass of \fBHostItem\fP designed to hold channel exempts (+e).
-.PP
-Definition at line 62 of file channels.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/ExtMode.3 b/docs/man/man3/ExtMode.3
deleted file mode 100644
index 8d172b5da..000000000
--- a/docs/man/man3/ExtMode.3
+++ /dev/null
@@ -1,84 +0,0 @@
-.TH "ExtMode" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ExtMode \- Holds an extended mode's details.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <modules.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBExtMode\fP (char mc, int ty, bool oper, int p_on, int p_off)"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBmodechar\fP"
-.br
-.ti -1c
-.RI "int \fBtype\fP"
-.br
-.ti -1c
-.RI "bool \fBneedsoper\fP"
-.br
-.ti -1c
-.RI "int \fBparams_when_on\fP"
-.br
-.ti -1c
-.RI "int \fBparams_when_off\fP"
-.br
-.ti -1c
-.RI "bool \fBlist\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-Holds an extended mode's details.
-
-Used internally by \fBmodules.cpp\fP
-.PP
-Definition at line 254 of file modules.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "ExtMode::ExtMode (char mc, int ty, bool oper, int p_on, int p_off)\fC [inline]\fP"
-.PP
-Definition at line 263 of file modules.h.
-.PP
-.nf
-263 : modechar(mc), type(ty), needsoper(oper), params_when_on(p_on), params_when_off(p_off) { };
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "bool \fBExtMode::list\fP"
-.PP
-Definition at line 262 of file modules.h.
-.SS "char \fBExtMode::modechar\fP"
-.PP
-Definition at line 257 of file modules.h.
-.SS "bool \fBExtMode::needsoper\fP"
-.PP
-Definition at line 259 of file modules.h.
-.SS "int \fBExtMode::params_when_off\fP"
-.PP
-Definition at line 261 of file modules.h.
-.SS "int \fBExtMode::params_when_on\fP"
-.PP
-Definition at line 260 of file modules.h.
-.SS "int \fBExtMode::type\fP"
-.PP
-Definition at line 258 of file modules.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/Extensible.3 b/docs/man/man3/Extensible.3
deleted file mode 100644
index 25be94035..000000000
--- a/docs/man/man3/Extensible.3
+++ /dev/null
@@ -1,130 +0,0 @@
-.TH "Extensible" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Extensible \- class Extensible is the parent class of many classes such as userrec and chanrec.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <base.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-Inherited by \fBchanrec\fP, and \fBconnection\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "bool \fBExtend\fP (\fBstd::string\fP key, char *p)"
-.br
-.RI "\fIExtend an Extensible class. \fP"
-.ti -1c
-.RI "bool \fBShrink\fP (\fBstd::string\fP key)"
-.br
-.RI "\fIShrink an Extensible class. \fP"
-.ti -1c
-.RI "char * \fBGetExt\fP (\fBstd::string\fP key)"
-.br
-.RI "\fIGet an extension item. \fP"
-.ti -1c
-.RI "void \fBGetExtList\fP (std::deque< \fBstd::string\fP > &list)"
-.br
-.RI "\fIGet a list of all extension items names. \fP"
-.in -1c
-.SS "Private Attributes"
-
-.in +1c
-.ti -1c
-.RI "std::map< \fBstd::string\fP, char * > \fBExtension_Items\fP"
-.br
-.RI "\fIPrivate data store. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-class Extensible is the parent class of many classes such as userrec and chanrec.
-
-class Extensible implements a system which allows modules to 'extend' the class by attaching data within a map associated with the object. In this way modules can store their own custom information within user objects, channel objects and server objects, without breaking other modules (this is more sensible than using a flags variable, and each module defining bits within the flag as 'theirs' as it is less prone to conflict and supports arbitary data storage).
-.PP
-Definition at line 51 of file base.h.
-.SH "Member Function Documentation"
-.PP
-.SS "bool Extensible::Extend (\fBstd::string\fP key, char * p)"
-.PP
-Extend an Extensible class.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIkey\fP The key parameter is an arbitary string which identifies the extension data
-.br
-\fIp\fP This parameter is a pointer to any data you wish to associate with the object
-.RE
-.PP
-You must provide a key to store the data as, and a void* to the data (typedef VoidPointer) The data will be inserted into the map. If the data already exists, you may not insert it twice, \fBExtensible::Extend\fP will return false in this case.
-.PP
-\fBReturns:\fP
-.RS 4
-Returns true on success, false if otherwise
-.RE
-.PP
-
-.SS "char* Extensible::GetExt (\fBstd::string\fP key)"
-.PP
-Get an extension item.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIkey\fP The key parameter is an arbitary string which identifies the extension data
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-If you provide a non-existent key name, the function returns NULL, otherwise a pointer to the item referenced by the key is returned.
-.RE
-.PP
-
-.SS "void Extensible::GetExtList (std::deque< \fBstd::string\fP > & list)"
-.PP
-Get a list of all extension items names.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIlist\fP A deque of strings to receive the list
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-This function writes a list of all extension items stored in this object by name into the given deque and returns void.
-.RE
-.PP
-
-.SS "bool Extensible::Shrink (\fBstd::string\fP key)"
-.PP
-Shrink an Extensible class.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIkey\fP The key parameter is an arbitary string which identifies the extension data
-.RE
-.PP
-You must provide a key name. The given key name will be removed from the classes data. If you provide a nonexistent key (case is important) then the function will return false.
-.PP
-\fBReturns:\fP
-.RS 4
-Returns true on success.
-.RE
-.PP
-
-.SH "Member Data Documentation"
-.PP
-.SS "std::map<\fBstd::string\fP,char*> \fBExtensible::Extension_Items\fP\fC [private]\fP"
-.PP
-Private data store.
-.PP
-Definition at line 55 of file base.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/FileReader.3 b/docs/man/man3/FileReader.3
deleted file mode 100644
index e161908a0..000000000
--- a/docs/man/man3/FileReader.3
+++ /dev/null
@@ -1,192 +0,0 @@
-.TH "FileReader" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-FileReader \- Caches a text file into memory and can be used to retrieve lines from it.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <modules.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBFileReader\fP ()"
-.br
-.RI "\fIDefault constructor. \fP"
-.ti -1c
-.RI "\fBFileReader\fP (\fBstd::string\fP filename)"
-.br
-.RI "\fISecondary constructor. \fP"
-.ti -1c
-.RI "\fB~FileReader\fP ()"
-.br
-.RI "\fIDefault destructor. \fP"
-.ti -1c
-.RI "void \fBLoadFile\fP (\fBstd::string\fP filename)"
-.br
-.RI "\fIUsed to load a file. \fP"
-.ti -1c
-.RI "bool \fBExists\fP ()"
-.br
-.RI "\fIReturns true if the file exists This function will return false if the file could not be opened. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBGetLine\fP (int x)"
-.br
-.RI "\fIRetrieve one line from the file. \fP"
-.ti -1c
-.RI "int \fBFileSize\fP ()"
-.br
-.RI "\fIReturns the size of the file in lines. \fP"
-.in -1c
-.SS "Private Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBfile_cache\fP \fBfc\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-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 1639 of file modules.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "FileReader::FileReader ()"
-.PP
-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 890 of file modules.cpp.
-.PP
-.nf
-891 {
-892 }
-.fi
-.PP
-.SS "FileReader::FileReader (\fBstd::string\fP filename)"
-.PP
-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 883 of file modules.cpp.
-.PP
-References fc, and readfile().
-.PP
-.nf
-884 {
-885 file_cache c;
-886 readfile(c,filename.c_str());
-887 this->fc = c;
-888 }
-.fi
-.PP
-.SS "FileReader::~FileReader ()"
-.PP
-Default destructor.
-.PP
-This deletes the memory allocated to the file.
-.PP
-Definition at line 902 of file modules.cpp.
-.PP
-.nf
-903 {
-904 }
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "bool FileReader::Exists ()"
-.PP
-Returns true if the file exists This function will return false if the file could not be opened.
-.PP
-Definition at line 906 of file modules.cpp.
-.PP
-References fc.
-.PP
-.nf
-907 {
-908 if (fc.size() == 0)
-909 {
-910 return(false);
-911 }
-912 else
-913 {
-914 return(true);
-915 }
-916 }
-.fi
-.PP
-.SS "int FileReader::FileSize ()"
-.PP
-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 925 of file modules.cpp.
-.PP
-References fc.
-.PP
-.nf
-926 {
-927 return fc.size();
-928 }
-.fi
-.PP
-.SS "\fBstd::string\fP FileReader::GetLine (int x)"
-.PP
-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 918 of file modules.cpp.
-.PP
-References fc.
-.PP
-.nf
-919 {
-920 if ((x<0) || ((unsigned)x>fc.size()))
-921 return '';
-922 return fc[x];
-923 }
-.fi
-.PP
-.SS "void FileReader::LoadFile (\fBstd::string\fP filename)"
-.PP
-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 894 of file modules.cpp.
-.PP
-References fc, and readfile().
-.PP
-.nf
-895 {
-896 file_cache c;
-897 readfile(c,filename.c_str());
-898 this->fc = c;
-899 }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "\fBfile_cache\fP \fBFileReader::fc\fP\fC [private]\fP"
-.PP
-Definition at line 1641 of file modules.h.
-.PP
-Referenced by Exists(), FileReader(), FileSize(), GetLine(), and LoadFile().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/GLine.3 b/docs/man/man3/GLine.3
deleted file mode 100644
index 83c54ae8a..000000000
--- a/docs/man/man3/GLine.3
+++ /dev/null
@@ -1,38 +0,0 @@
-.TH "GLine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-GLine \- GLine class.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <xline.h>\fP
-.PP
-Inherits \fBXLine\fP.
-.PP
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBhostmask\fP [200]"
-.br
-.RI "\fIHostmask (ident) to match against May contain wildcards. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-GLine class.
-.PP
-Definition at line 78 of file xline.h.
-.SH "Member Data Documentation"
-.PP
-.SS "char \fBGLine::hostmask\fP[200]"
-.PP
-Hostmask (ident) to match against May contain wildcards.
-.PP
-Definition at line 84 of file xline.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/HostItem.3 b/docs/man/man3/HostItem.3
deleted file mode 100644
index 48d8f6d15..000000000
--- a/docs/man/man3/HostItem.3
+++ /dev/null
@@ -1,79 +0,0 @@
-.TH "HostItem" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-HostItem \- Holds an entry for a ban list, exemption list, or invite list.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <channels.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-Inherited by \fBBanItem\fP, \fBExemptItem\fP, and \fBInviteItem\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBHostItem\fP ()"
-.br
-.ti -1c
-.RI "virtual \fB~HostItem\fP ()"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "time_t \fBset_time\fP"
-.br
-.ti -1c
-.RI "char \fBset_by\fP [NICKMAX]"
-.br
-.ti -1c
-.RI "char \fBdata\fP [MAXBUF]"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-Holds an entry for a ban list, exemption list, or invite list.
-
-This class contains a single element in a channel list, such as a banlist.
-.PP
-Definition at line 38 of file channels.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "HostItem::HostItem ()\fC [inline]\fP"
-.PP
-Definition at line 45 of file channels.h.
-.PP
-.nf
-45 { /* stub */ }
-.fi
-.PP
-.SS "virtual HostItem::~HostItem ()\fC [inline, virtual]\fP"
-.PP
-Definition at line 46 of file channels.h.
-.PP
-.nf
-46 { /* stub */ }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "char \fBHostItem::data\fP[MAXBUF]"
-.PP
-Definition at line 43 of file channels.h.
-.SS "char \fBHostItem::set_by\fP[NICKMAX]"
-.PP
-Definition at line 42 of file channels.h.
-.SS "time_t \fBHostItem::set_time\fP"
-.PP
-Definition at line 41 of file channels.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/InAddr_HashComp.3 b/docs/man/man3/InAddr_HashComp.3
deleted file mode 100644
index 38bfe4075..000000000
--- a/docs/man/man3/InAddr_HashComp.3
+++ /dev/null
@@ -1,36 +0,0 @@
-.TH "InAddr_HashComp" 3 "15 May 2005" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-InAddr_HashComp \- This class returns true if two in_addr structs match.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <hashcomp.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "bool \fBoperator()\fP (const in_addr &s1, const in_addr &s2) const"
-.br
-.RI "\fIThe operator () does the actual comparison in hash_map. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-This class returns true if two in_addr structs match.
-
-Checking is done by copying both into a size_t then doing a numeric comparison of the two.
-.PP
-Definition at line 71 of file hashcomp.h.
-.SH "Member Function Documentation"
-.PP
-.SS "bool InAddr_HashComp::operator() (const in_addr & s1, const in_addr & s2) const"
-.PP
-The operator () does the actual comparison in hash_map.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/InspIRCd.3 b/docs/man/man3/InspIRCd.3
deleted file mode 100644
index be447b95d..000000000
--- a/docs/man/man3/InspIRCd.3
+++ /dev/null
@@ -1,134 +0,0 @@
-.TH "InspIRCd" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-InspIRCd \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <inspircd.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBMakeLowerMap\fP ()"
-.br
-.ti -1c
-.RI "\fBstd::string\fP \fBGetRevision\fP ()"
-.br
-.ti -1c
-.RI "\fBstd::string\fP \fBGetVersionString\fP ()"
-.br
-.ti -1c
-.RI "char * \fBModuleError\fP ()"
-.br
-.ti -1c
-.RI "bool \fBLoadModule\fP (const char *filename)"
-.br
-.ti -1c
-.RI "bool \fBUnloadModule\fP (const char *filename)"
-.br
-.ti -1c
-.RI "\fBInspIRCd\fP (int argc, char **argv)"
-.br
-.ti -1c
-.RI "int \fBRun\fP ()"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "time_t \fBstartup_time\fP"
-.br
-.ti -1c
-.RI "\fBModeParser\fP * \fBModeGrok\fP"
-.br
-.ti -1c
-.RI "CommandParser * \fBParser\fP"
-.br
-.ti -1c
-.RI "\fBSocketEngine\fP * \fBSE\fP"
-.br
-.ti -1c
-.RI "\fBserverstats\fP * \fBstats\fP"
-.br
-.in -1c
-.SS "Private Member Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBerase_factory\fP (int j)"
-.br
-.ti -1c
-.RI "void \fBerase_module\fP (int j)"
-.br
-.in -1c
-.SS "Private Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBMODERR\fP [MAXBUF]"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-Definition at line 99 of file inspircd.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "InspIRCd::InspIRCd (int argc, char ** argv)"
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "void InspIRCd::erase_factory (int j)\fC [private]\fP"
-.PP
-.SS "void InspIRCd::erase_module (int j)\fC [private]\fP"
-.PP
-.SS "\fBstd::string\fP InspIRCd::GetRevision ()"
-.PP
-.SS "\fBstd::string\fP InspIRCd::GetVersionString ()"
-.PP
-Referenced by Server::GetVersion().
-.SS "bool InspIRCd::LoadModule (const char * filename)"
-.PP
-.SS "void InspIRCd::MakeLowerMap ()"
-.PP
-.SS "char* InspIRCd::ModuleError ()"
-.PP
-.SS "int InspIRCd::Run ()"
-.PP
-.SS "bool InspIRCd::UnloadModule (const char * filename)"
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "\fBModeParser\fP* \fBInspIRCd::ModeGrok\fP"
-.PP
-Definition at line 109 of file inspircd.h.
-.PP
-Referenced by Server::SendMode().
-.SS "char \fBInspIRCd::MODERR\fP[MAXBUF]\fC [private]\fP"
-.PP
-Definition at line 103 of file inspircd.h.
-.SS "CommandParser* \fBInspIRCd::Parser\fP"
-.PP
-Definition at line 110 of file inspircd.h.
-.PP
-Referenced by Server::AddCommand(), Server::CallCommandHandler(), force_nickchange(), and Server::IsValidModuleCommand().
-.SS "\fBSocketEngine\fP* \fBInspIRCd::SE\fP"
-.PP
-Definition at line 111 of file inspircd.h.
-.PP
-Referenced by AddClient(), InspSocket::InspSocket(), kill_link(), kill_link_silent(), InspSocket::Poll(), and Server::UserToPseudo().
-.SS "time_t \fBInspIRCd::startup_time\fP"
-.PP
-Definition at line 108 of file inspircd.h.
-.SS "\fBserverstats\fP* \fBInspIRCd::stats\fP"
-.PP
-Definition at line 112 of file inspircd.h.
-.PP
-Referenced by force_nickchange(), and FullConnectUser().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/InspSocket.3 b/docs/man/man3/InspSocket.3
deleted file mode 100644
index 9ba5cbdfd..000000000
--- a/docs/man/man3/InspSocket.3
+++ /dev/null
@@ -1,778 +0,0 @@
-.TH "InspSocket" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-InspSocket \- InspSocket is an extendable socket class which modules can use for TCP socket support.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <socket.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBInspSocket\fP ()"
-.br
-.RI "\fIThe default constructor does nothing and should not be used. \fP"
-.ti -1c
-.RI "\fBInspSocket\fP (int newfd, char *ip)"
-.br
-.RI "\fIThis constructor is used to associate an existing connecting with an InspSocket class. \fP"
-.ti -1c
-.RI "\fBInspSocket\fP (\fBstd::string\fP \fBhost\fP, int \fBport\fP, bool listening, unsigned long maxtime)"
-.br
-.RI "\fIThis constructor is used to create a new socket, either listening for connections, or an outbound connection to another host. \fP"
-.ti -1c
-.RI "virtual bool \fBOnConnected\fP ()"
-.br
-.RI "\fIThis method is called when an outbound connection on your socket is completed. \fP"
-.ti -1c
-.RI "virtual void \fBOnError\fP (\fBInspSocketError\fP e)"
-.br
-.RI "\fIThis method is called when an error occurs. \fP"
-.ti -1c
-.RI "virtual int \fBOnDisconnect\fP ()"
-.br
-.RI "\fIWhen an established connection is terminated, the OnDisconnect method is triggered. \fP"
-.ti -1c
-.RI "virtual bool \fBOnDataReady\fP ()"
-.br
-.RI "\fIWhen there is data waiting to be read on a socket, the \fBOnDataReady()\fP method is called. \fP"
-.ti -1c
-.RI "virtual void \fBOnTimeout\fP ()"
-.br
-.RI "\fIWhen an outbound connection fails, and the attempt times out, you will receive this event. \fP"
-.ti -1c
-.RI "virtual void \fBOnClose\fP ()"
-.br
-.RI "\fIWhenever close() is called, \fBOnClose()\fP will be called first. \fP"
-.ti -1c
-.RI "virtual char * \fBRead\fP ()"
-.br
-.RI "\fIReads all pending bytes from the socket into a char* array which can be up to 16 kilobytes in length. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBGetIP\fP ()"
-.br
-.RI "\fIReturns the IP address associated with this connection, or an empty string if no IP address exists. \fP"
-.ti -1c
-.RI "bool \fBTimeout\fP (time_t current)"
-.br
-.RI "\fIThis function checks if the socket has timed out yet, given the current time in the parameter. \fP"
-.ti -1c
-.RI "virtual int \fBWrite\fP (\fBstd::string\fP data)"
-.br
-.RI "\fIWrites a \fBstd::string\fP to the socket. \fP"
-.ti -1c
-.RI "virtual int \fBOnIncomingConnection\fP (int newfd, char *ip)"
-.br
-.RI "\fIIf your socket is a listening socket, when a new connection comes in on the socket this method will be called. \fP"
-.ti -1c
-.RI "void \fBSetState\fP (\fBInspSocketState\fP s)"
-.br
-.RI "\fIChanges the socket's state. \fP"
-.ti -1c
-.RI "\fBInspSocketState\fP \fBGetState\fP ()"
-.br
-.RI "\fIReturns the current socket state. \fP"
-.ti -1c
-.RI "bool \fBPoll\fP ()"
-.br
-.RI "\fIOnly the core should call this function. \fP"
-.ti -1c
-.RI "int \fBGetFd\fP ()"
-.br
-.RI "\fIThis method returns the socket's file descriptor as assigned by the operating system, or -1 if no descriptor has been assigned. \fP"
-.ti -1c
-.RI "virtual void \fBClose\fP ()"
-.br
-.RI "\fIThis method causes the socket to close, and may also be triggered by other methods such as OnTimeout and OnError. \fP"
-.ti -1c
-.RI "virtual \fB~InspSocket\fP ()"
-.br
-.RI "\fIThe destructor may implicitly call \fBOnClose()\fP, and will close() and shutdown() the file descriptor used for this socket. \fP"
-.in -1c
-.SS "Private Member Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBFlushWriteBuffer\fP ()"
-.br
-.RI "\fIFlushes the write buffer. \fP"
-.in -1c
-.SS "Private Attributes"
-
-.in +1c
-.ti -1c
-.RI "int \fBfd\fP"
-.br
-.RI "\fIThe file descriptor of this socket. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBhost\fP"
-.br
-.RI "\fIThe hostname connected to. \fP"
-.ti -1c
-.RI "int \fBport\fP"
-.br
-.RI "\fIThe port connected to, or the port this socket is listening on. \fP"
-.ti -1c
-.RI "\fBInspSocketState\fP \fBstate\fP"
-.br
-.RI "\fIThe state for this socket, either listening, connecting, connected or error. \fP"
-.ti -1c
-.RI "sockaddr_in \fBaddr\fP"
-.br
-.RI "\fIThe host being connected to, in sockaddr form. \fP"
-.ti -1c
-.RI "in_addr \fBaddy\fP"
-.br
-.RI "\fIThe host being connected to, in in_addr form. \fP"
-.ti -1c
-.RI "time_t \fBtimeout_end\fP"
-.br
-.RI "\fIWhen this time is reached, the socket times out if it is in the CONNECTING state. \fP"
-.ti -1c
-.RI "bool \fBtimeout\fP"
-.br
-.RI "\fIThis value is true if the socket has timed out. \fP"
-.ti -1c
-.RI "char \fBibuf\fP [65535]"
-.br
-.RI "\fISocket input buffer, used by read(). \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBBuffer\fP"
-.br
-.RI "\fIThe output buffer for this socket. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBIP\fP"
-.br
-.RI "\fIThe IP address being connected to stored in string form for easy retrieval by accessors. \fP"
-.ti -1c
-.RI "sockaddr_in \fBclient\fP"
-.br
-.RI "\fIClient sockaddr structure used by accept(). \fP"
-.ti -1c
-.RI "sockaddr_in \fBserver\fP"
-.br
-.RI "\fI\fBServer\fP sockaddr structure used by accept(). \fP"
-.ti -1c
-.RI "socklen_t \fBlength\fP"
-.br
-.RI "\fIUsed by accept() to indicate the sizes of the sockaddr_in structures. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-InspSocket is an extendable socket class which modules can use for TCP socket support.
-
-It is fully integrated into InspIRCds socket loop and attaches its sockets to the core's instance of the \fBSocketEngine\fP class, meaning that any sockets you create have the same power and abilities as a socket created by the core itself. To use InspSocket, you must inherit a class from it, and use the InspSocket constructors to establish connections and bindings.
-.PP
-Definition at line 47 of file socket.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "InspSocket::InspSocket ()"
-.PP
-The default constructor does nothing and should not be used.
-.PP
-Definition at line 45 of file socket.cpp.
-.PP
-References I_DISCONNECTED, and state.
-.PP
-.nf
-46 {
-47 this->state = I_DISCONNECTED;
-48 }
-.fi
-.PP
-.SS "InspSocket::InspSocket (int newfd, char * ip)"
-.PP
-This constructor is used to associate an existing connecting with an InspSocket class.
-.PP
-The given file descriptor must be valid, and when initialized, the InspSocket will be set with the given IP address and placed in CONNECTED state.
-.PP
-Definition at line 50 of file socket.cpp.
-.PP
-References SocketEngine::AddFd(), fd, I_CONNECTED, IP, InspIRCd::SE, state, and X_ESTAB_MODULE.
-.PP
-.nf
-51 {
-52 this->fd = newfd;
-53 this->state = I_CONNECTED;
-54 this->IP = ip;
-55 ServerInstance->SE->AddFd(this->fd,true,X_ESTAB_MODULE);
-56 socket_ref[this->fd] = this;
-57 }
-.fi
-.PP
-.SS "InspSocket::InspSocket (\fBstd::string\fP host, int port, bool listening, unsigned long maxtime)"
-.PP
-This constructor is used to create a new socket, either listening for connections, or an outbound connection to another host.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIhost\fP The hostname to connect to, or bind to
-.br
-\fIport\fP The port number to connect to, or bind to
-.br
-\fIlistening\fP true to listen on the given host:port pair, or false to connect to them
-.br
-\fImaxtime\fP Number of seconds to wait, if connecting, before the connection times out and an \fBOnTimeout()\fP event is generated
-.RE
-.PP
-
-.PP
-Definition at line 59 of file socket.cpp.
-.PP
-References SocketEngine::AddFd(), addr, addy, BindSocket(), Close(), DEBUG, ERROR, fd, I_CONNECTING, I_ERR_BIND, I_ERR_CONNECT, I_ERR_SOCKET, I_ERROR, I_LISTENING, IP, log(), OnError(), OpenTCPSocket(), InspIRCd::SE, state, timeout, timeout_end, and X_ESTAB_MODULE.
-.PP
-.nf
-60 {
-61 if (listening) {
-62 if ((this->fd = OpenTCPSocket()) == ERROR)
-63 {
-64 this->fd = -1;
-65 this->state = I_ERROR;
-66 this->OnError(I_ERR_SOCKET);
-67 log(DEBUG,'OpenTCPSocket() error');
-68 return;
-69 }
-70 else
-71 {
-72 if (BindSocket(this->fd,this->client,this->server,port,(char*)host.c_str()) == ERROR)
-73 {
-74 this->Close();
-75 this->fd = -1;
-76 this->state = I_ERROR;
-77 this->OnError(I_ERR_BIND);
-78 log(DEBUG,'BindSocket() error %s',strerror(errno));
-79 return;
-80 }
-81 else
-82 {
-83 this->state = I_LISTENING;
-84 ServerInstance->SE->AddFd(this->fd,true,X_ESTAB_MODULE);
-85 socket_ref[this->fd] = this;
-86 log(DEBUG,'New socket now in I_LISTENING state');
-87 return;
-88 }
-89 }
-90 } else {
-91 char* ip;
-92 this->host = host;
-93 hostent* hoste = gethostbyname(host.c_str());
-94 if (!hoste) {
-95 ip = (char*)host.c_str();
-96 } else {
-97 struct in_addr* ia = (in_addr*)hoste->h_addr;
-98 ip = inet_ntoa(*ia);
-99 }
-100
-101 this->IP = ip;
-102
-103 timeout_end = time(NULL)+maxtime;
-104 timeout = false;
-105 if ((this->fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
-106 {
-107 this->state = I_ERROR;
-108 this->OnError(I_ERR_SOCKET);
-109 return;
-110 }
-111 this->port = port;
-112 inet_aton(ip,&addy);
-113 addr.sin_family = AF_INET;
-114 addr.sin_addr = addy;
-115 addr.sin_port = htons(this->port);
-116
-117 int flags;
-118 flags = fcntl(this->fd, F_GETFL, 0);
-119 fcntl(this->fd, F_SETFL, flags | O_NONBLOCK);
-120
-121 if(connect(this->fd, (sockaddr*)&this->addr,sizeof(this->addr)) == -1)
-122 {
-123 if (errno != EINPROGRESS)
-124 {
-125 this->Close();
-126 this->OnError(I_ERR_CONNECT);
-127 this->state = I_ERROR;
-128 return;
-129 }
-130 }
-131 this->state = I_CONNECTING;
-132 ServerInstance->SE->AddFd(this->fd,false,X_ESTAB_MODULE);
-133 socket_ref[this->fd] = this;
-134 return;
-135 }
-136 }
-.fi
-.PP
-.SS "InspSocket::~InspSocket ()\fC [virtual]\fP"
-.PP
-The destructor may implicitly call \fBOnClose()\fP, and will close() and shutdown() the file descriptor used for this socket.
-.PP
-Definition at line 271 of file socket.cpp.
-.PP
-References Close().
-.PP
-.nf
-272 {
-273 this->Close();
-274 }
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "void InspSocket::Close ()\fC [virtual]\fP"
-.PP
-This method causes the socket to close, and may also be triggered by other methods such as OnTimeout and OnError.
-.PP
-Definition at line 138 of file socket.cpp.
-.PP
-References fd, and OnClose().
-.PP
-Referenced by InspSocket(), and ~InspSocket().
-.PP
-.nf
-139 {
-140 if (this->fd != -1)
-141 {
-142 this->OnClose();
-143 shutdown(this->fd,2);
-144 close(this->fd);
-145 socket_ref[this->fd] = NULL;
-146 this->fd = -1;
-147 }
-148 }
-.fi
-.PP
-.SS "void InspSocket::FlushWriteBuffer ()\fC [private]\fP"
-.PP
-Flushes the write buffer.
-.PP
-Definition at line 181 of file socket.cpp.
-.PP
-References Buffer.
-.PP
-Referenced by Timeout(), and Write().
-.PP
-.nf
-182 {
-183 int result = 0;
-184 if (this->Buffer.length())
-185 {
-186 result = send(this->fd,this->Buffer.c_str(),this->Buffer.length(),0);
-187 if (result > 0)
-188 {
-189 /* If we wrote some, advance the buffer forwards */
-190 char* n = (char*)this->Buffer.c_str();
-191 n += result;
-192 this->Buffer = n;
-193 }
-194 }
-195 }
-.fi
-.PP
-.SS "int InspSocket::GetFd ()"
-.PP
-This method returns the socket's file descriptor as assigned by the operating system, or -1 if no descriptor has been assigned.
-.PP
-Definition at line 258 of file socket.cpp.
-.PP
-References fd.
-.PP
-.nf
-259 {
-260 return this->fd;
-261 }
-.fi
-.PP
-.SS "\fBstd::string\fP InspSocket::GetIP ()"
-.PP
-Returns the IP address associated with this connection, or an empty string if no IP address exists.
-.PP
-Definition at line 150 of file socket.cpp.
-.PP
-References IP.
-.PP
-.nf
-151 {
-152 return this->IP;
-153 }
-.fi
-.PP
-.SS "\fBInspSocketState\fP InspSocket::GetState ()"
-.PP
-Returns the current socket state.
-.PP
-Definition at line 253 of file socket.cpp.
-.PP
-References state.
-.PP
-.nf
-254 {
-255 return this->state;
-256 }
-.fi
-.PP
-.SS "void InspSocket::OnClose ()\fC [virtual]\fP"
-.PP
-Whenever close() is called, \fBOnClose()\fP will be called first.
-.PP
-Please note that this means OnClose will be called alongside \fBOnError()\fP, \fBOnTimeout()\fP, and \fBClose()\fP, and also when cancelling a listening socket by calling the destructor indirectly.
-.PP
-Definition at line 269 of file socket.cpp.
-.PP
-Referenced by Close().
-.PP
-.nf
-269 { return; }
-.fi
-.PP
-.SS "bool InspSocket::OnConnected ()\fC [virtual]\fP"
-.PP
-This method is called when an outbound connection on your socket is completed.
-.PP
-\fBReturns:\fP
-.RS 4
-false to abort the connection, true to continue
-.RE
-.PP
-
-.PP
-Definition at line 263 of file socket.cpp.
-.PP
-Referenced by Poll().
-.PP
-.nf
-263 { return true; }
-.fi
-.PP
-.SS "bool InspSocket::OnDataReady ()\fC [virtual]\fP"
-.PP
-When there is data waiting to be read on a socket, the \fBOnDataReady()\fP method is called.
-.PP
-Within this method, you *MUST* call the \fBRead()\fP method to read any pending data. At its lowest level, this event is signalled by the core via the socket engine. If you return false from this function, the core removes your socket from its list and erases it from the socket engine, then calls \fBInspSocket::Close()\fP and deletes it.
-.PP
-\fBReturns:\fP
-.RS 4
-false to close the socket
-.RE
-.PP
-
-.PP
-Definition at line 267 of file socket.cpp.
-.PP
-Referenced by Poll().
-.PP
-.nf
-267 { return true; }
-.fi
-.PP
-.SS "int InspSocket::OnDisconnect ()\fC [virtual]\fP"
-.PP
-When an established connection is terminated, the OnDisconnect method is triggered.
-.PP
-Definition at line 265 of file socket.cpp.
-.PP
-.nf
-265 { return 0; }
-.fi
-.PP
-.SS "void InspSocket::OnError (\fBInspSocketError\fP e)\fC [virtual]\fP"
-.PP
-This method is called when an error occurs.
-.PP
-A closed socket in itself is not an error, however errors also generate close events.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIe\fP The error type which occured
-.RE
-.PP
-
-.PP
-Definition at line 264 of file socket.cpp.
-.PP
-Referenced by InspSocket(), and Timeout().
-.PP
-.nf
-264 { return; }
-.fi
-.PP
-.SS "int InspSocket::OnIncomingConnection (int newfd, char * ip)\fC [virtual]\fP"
-.PP
-If your socket is a listening socket, when a new connection comes in on the socket this method will be called.
-.PP
-Given the new file descriptor in the parameters, and the IP, it is recommended you copy them to a new instance of your socket class, e.g.:
-.PP
-MySocket* newsocket = new MySocket(newfd,ip);
-.PP
-Once you have done this, you can then associate the new socket with the core using \fBServer::AddSocket()\fP.
-.PP
-Definition at line 266 of file socket.cpp.
-.PP
-Referenced by Poll().
-.PP
-.nf
-266 { return 0; }
-.fi
-.PP
-.SS "void InspSocket::OnTimeout ()\fC [virtual]\fP"
-.PP
-When an outbound connection fails, and the attempt times out, you will receive this event.
-.PP
-The mthod will trigger once maxtime secons are reached (as given in the constructor) just before the socket's descriptor is closed.
-.PP
-Definition at line 268 of file socket.cpp.
-.PP
-Referenced by Timeout().
-.PP
-.nf
-268 { return; }
-.fi
-.PP
-.SS "bool InspSocket::Poll ()"
-.PP
-Only the core should call this function.
-.PP
-When called, it is assumed the socket is ready to read data, and the method call routes the event to the various methods of InspSocket for you to handle. This can also cause the socket's state to change.
-.PP
-Definition at line 216 of file socket.cpp.
-.PP
-References SocketEngine::AddFd(), client, SocketEngine::DelFd(), I_CONNECTED, I_CONNECTING, I_LISTENING, length, OnConnected(), OnDataReady(), OnIncomingConnection(), InspIRCd::SE, SetState(), and X_ESTAB_MODULE.
-.PP
-.nf
-217 {
-218 int incoming = -1;
-219
-220 switch (this->state)
-221 {
-222 case I_CONNECTING:
-223 this->SetState(I_CONNECTED);
-224 /* Our socket was in write-state, so delete it and re-add it
-225 * in read-state.
-226 */
-227 ServerInstance->SE->DelFd(this->fd);
-228 ServerInstance->SE->AddFd(this->fd,true,X_ESTAB_MODULE);
-229 return this->OnConnected();
-230 break;
-231 case I_LISTENING:
-232 length = sizeof (client);
-233 incoming = accept (this->fd, (sockaddr*)&client,&length);
-234 this->OnIncomingConnection(incoming,inet_ntoa(client.sin_addr));
-235 return true;
-236 break;
-237 case I_CONNECTED:
-238 return this->OnDataReady();
-239 break;
-240 default:
-241 break;
-242 }
-243
-244 return true;
-245 }
-.fi
-.PP
-.SS "char * InspSocket::Read ()\fC [virtual]\fP"
-.PP
-Reads all pending bytes from the socket into a char* array which can be up to 16 kilobytes in length.
-.PP
-Definition at line 155 of file socket.cpp.
-.PP
-References DEBUG, ibuf, and log().
-.PP
-.nf
-156 {
-157 int n = recv(this->fd,this->ibuf,sizeof(this->ibuf),0);
-158 if (n > 0)
-159 {
-160 ibuf[n] = 0;
-161 return ibuf;
-162 }
-163 else
-164 {
-165 log(DEBUG,'EOF or error on socket');
-166 return NULL;
-167 }
-168 }
-.fi
-.PP
-.SS "void InspSocket::SetState (\fBInspSocketState\fP s)"
-.PP
-Changes the socket's state.
-.PP
-The core uses this to change socket states, and you should not call it directly.
-.PP
-Definition at line 247 of file socket.cpp.
-.PP
-References DEBUG, log(), and state.
-.PP
-Referenced by Poll().
-.PP
-.nf
-248 {
-249 log(DEBUG,'Socket state change');
-250 this->state = s;
-251 }
-.fi
-.PP
-.SS "bool InspSocket::Timeout (time_t current)"
-.PP
-This function checks if the socket has timed out yet, given the current time in the parameter.
-.PP
-\fBReturns:\fP
-.RS 4
-true if timed out, false if not timed out
-.RE
-.PP
-
-.PP
-Definition at line 197 of file socket.cpp.
-.PP
-References FlushWriteBuffer(), I_CONNECTING, I_ERR_TIMEOUT, I_ERROR, OnError(), OnTimeout(), state, timeout, and timeout_end.
-.PP
-.nf
-198 {
-199 if ((this->state == I_CONNECTING) && (current > timeout_end))
-200 {
-201 // for non-listening sockets, the timeout can occur
-202 // which causes termination of the connection after
-203 // the given number of seconds without a successful
-204 // connection.
-205 this->OnTimeout();
-206 this->OnError(I_ERR_TIMEOUT);
-207 timeout = true;
-208 this->state = I_ERROR;
-209 return true;
-210 }
-211 if (this->Buffer.length())
-212 this->FlushWriteBuffer();
-213 return false;
-214 }
-.fi
-.PP
-.SS "int InspSocket::Write (\fBstd::string\fP data)\fC [virtual]\fP"
-.PP
-Writes a \fBstd::string\fP to the socket.
-.PP
-No carriage returns or linefeeds are appended to the string.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIdata\fP The data to send
-.RE
-.PP
-
-.PP
-Definition at line 174 of file socket.cpp.
-.PP
-References Buffer, and FlushWriteBuffer().
-.PP
-.nf
-175 {
-176 this->Buffer = this->Buffer + data;
-177 this->FlushWriteBuffer();
-178 return data.length();
-179 }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "sockaddr_in \fBInspSocket::addr\fP\fC [private]\fP"
-.PP
-The host being connected to, in sockaddr form.
-.PP
-Definition at line 78 of file socket.h.
-.PP
-Referenced by InspSocket().
-.SS "in_addr \fBInspSocket::addy\fP\fC [private]\fP"
-.PP
-The host being connected to, in in_addr form.
-.PP
-Definition at line 84 of file socket.h.
-.PP
-Referenced by InspSocket().
-.SS "\fBstd::string\fP \fBInspSocket::Buffer\fP\fC [private]\fP"
-.PP
-The output buffer for this socket.
-.PP
-Definition at line 111 of file socket.h.
-.PP
-Referenced by FlushWriteBuffer(), and Write().
-.SS "sockaddr_in \fBInspSocket::client\fP\fC [private]\fP"
-.PP
-Client sockaddr structure used by accept().
-.PP
-Definition at line 124 of file socket.h.
-.PP
-Referenced by Poll().
-.SS "int \fBInspSocket::fd\fP\fC [private]\fP"
-.PP
-The file descriptor of this socket.
-.PP
-Definition at line 54 of file socket.h.
-.PP
-Referenced by Close(), GetFd(), and InspSocket().
-.SS "\fBstd::string\fP \fBInspSocket::host\fP\fC [private]\fP"
-.PP
-The hostname connected to.
-.PP
-Definition at line 59 of file socket.h.
-.SS "char \fBInspSocket::ibuf\fP[65535]\fC [private]\fP"
-.PP
-Socket input buffer, used by read().
-.PP
-The class which extends InspSocket is expected to implement an extendable buffer which can grow much larger than 64k, this buffer is just designed to be temporary storage. space.
-.PP
-Definition at line 106 of file socket.h.
-.PP
-Referenced by Read().
-.SS "\fBstd::string\fP \fBInspSocket::IP\fP\fC [private]\fP"
-.PP
-The IP address being connected to stored in string form for easy retrieval by accessors.
-.PP
-Definition at line 118 of file socket.h.
-.PP
-Referenced by GetIP(), and InspSocket().
-.SS "socklen_t \fBInspSocket::length\fP\fC [private]\fP"
-.PP
-Used by accept() to indicate the sizes of the sockaddr_in structures.
-.PP
-Definition at line 136 of file socket.h.
-.PP
-Referenced by Poll().
-.SS "int \fBInspSocket::port\fP\fC [private]\fP"
-.PP
-The port connected to, or the port this socket is listening on.
-.PP
-Definition at line 65 of file socket.h.
-.SS "sockaddr_in \fBInspSocket::server\fP\fC [private]\fP"
-.PP
-\fBServer\fP sockaddr structure used by accept().
-.PP
-Definition at line 130 of file socket.h.
-.SS "\fBInspSocketState\fP \fBInspSocket::state\fP\fC [private]\fP"
-.PP
-The state for this socket, either listening, connecting, connected or error.
-.PP
-Definition at line 72 of file socket.h.
-.PP
-Referenced by GetState(), InspSocket(), SetState(), and Timeout().
-.SS "bool \fBInspSocket::timeout\fP\fC [private]\fP"
-.PP
-This value is true if the socket has timed out.
-.PP
-Definition at line 97 of file socket.h.
-.PP
-Referenced by InspSocket(), and Timeout().
-.SS "time_t \fBInspSocket::timeout_end\fP\fC [private]\fP"
-.PP
-When this time is reached, the socket times out if it is in the CONNECTING state.
-.PP
-Definition at line 91 of file socket.h.
-.PP
-Referenced by InspSocket(), and Timeout().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/InviteItem.3 b/docs/man/man3/InviteItem.3
deleted file mode 100644
index f3b133566..000000000
--- a/docs/man/man3/InviteItem.3
+++ /dev/null
@@ -1,23 +0,0 @@
-.TH "InviteItem" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-InviteItem \- A subclass of \fBHostItem\fP designed to hold channel invites (+I).
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <channels.h>\fP
-.PP
-Inherits \fBHostItem\fP.
-.PP
-.SH "Detailed Description"
-.PP
-A subclass of \fBHostItem\fP designed to hold channel invites (+I).
-.PP
-Definition at line 70 of file channels.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/Invited.3 b/docs/man/man3/Invited.3
deleted file mode 100644
index dc4b773fd..000000000
--- a/docs/man/man3/Invited.3
+++ /dev/null
@@ -1,37 +0,0 @@
-.TH "Invited" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Invited \- Holds a channel name to which a user has been invited.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <users.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBirc::string\fP \fBchannel\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-Holds a channel name to which a user has been invited.
-.PP
-Definition at line 43 of file users.h.
-.SH "Member Data Documentation"
-.PP
-.SS "\fBirc::string\fP \fBInvited::channel\fP"
-.PP
-Definition at line 46 of file users.h.
-.PP
-Referenced by userrec::InviteTo().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/KLine.3 b/docs/man/man3/KLine.3
deleted file mode 100644
index 213ee19d4..000000000
--- a/docs/man/man3/KLine.3
+++ /dev/null
@@ -1,38 +0,0 @@
-.TH "KLine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-KLine \- KLine class.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <xline.h>\fP
-.PP
-Inherits \fBXLine\fP.
-.PP
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBhostmask\fP [200]"
-.br
-.RI "\fIHostmask (ident) to match against May contain wildcards. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-KLine class.
-.PP
-Definition at line 67 of file xline.h.
-.SH "Member Data Documentation"
-.PP
-.SS "char \fBKLine::hostmask\fP[200]"
-.PP
-Hostmask (ident) to match against May contain wildcards.
-.PP
-Definition at line 73 of file xline.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/ModeParameter.3 b/docs/man/man3/ModeParameter.3
deleted file mode 100644
index a1082ec7d..000000000
--- a/docs/man/man3/ModeParameter.3
+++ /dev/null
@@ -1,55 +0,0 @@
-.TH "ModeParameter" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ModeParameter \- Holds a custom parameter to a module-defined channel mode e.g.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <channels.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBmode\fP"
-.br
-.ti -1c
-.RI "char \fBparameter\fP [MAXBUF]"
-.br
-.ti -1c
-.RI "char \fBchannel\fP [CHANMAX]"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-Holds a custom parameter to a module-defined channel mode e.g.
-
-for +L this would hold the channel name.
-.PP
-Definition at line 79 of file channels.h.
-.SH "Member Data Documentation"
-.PP
-.SS "char \fBModeParameter::channel\fP[CHANMAX]"
-.PP
-Definition at line 84 of file channels.h.
-.PP
-Referenced by chanrec::SetCustomModeParam().
-.SS "char \fBModeParameter::mode\fP"
-.PP
-Definition at line 82 of file channels.h.
-.PP
-Referenced by chanrec::SetCustomModeParam().
-.SS "char \fBModeParameter::parameter\fP[MAXBUF]"
-.PP
-Definition at line 83 of file channels.h.
-.PP
-Referenced by chanrec::SetCustomModeParam().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/Module.3 b/docs/man/man3/Module.3
deleted file mode 100644
index 6c9e4de9b..000000000
--- a/docs/man/man3/Module.3
+++ /dev/null
@@ -1,2215 +0,0 @@
-.TH "Module" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Module \- Base class for all \fBInspIRCd\fP modules This class is the base class for \fBInspIRCd\fP modules.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <modules.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBModule\fP (\fBServer\fP *Me)"
-.br
-.RI "\fIDefault constructor Creates a module class. \fP"
-.ti -1c
-.RI "virtual \fB~Module\fP ()"
-.br
-.RI "\fIDefault destructor destroys a module class. \fP"
-.ti -1c
-.RI "virtual \fBVersion\fP \fBGetVersion\fP ()"
-.br
-.RI "\fIReturns the version number of a Module. \fP"
-.ti -1c
-.RI "virtual void \fBOnUserConnect\fP (\fBuserrec\fP *user)"
-.br
-.RI "\fICalled when a user connects. \fP"
-.ti -1c
-.RI "virtual void \fBOnUserQuit\fP (\fBuserrec\fP *user, \fBstd::string\fP message)"
-.br
-.RI "\fICalled when a user quits. \fP"
-.ti -1c
-.RI "virtual void \fBOnUserDisconnect\fP (\fBuserrec\fP *user)"
-.br
-.RI "\fICalled whenever a user's socket is closed. \fP"
-.ti -1c
-.RI "virtual void \fBOnUserJoin\fP (\fBuserrec\fP *user, \fBchanrec\fP *channel)"
-.br
-.RI "\fICalled when a user joins a channel. \fP"
-.ti -1c
-.RI "virtual void \fBOnUserPart\fP (\fBuserrec\fP *user, \fBchanrec\fP *channel)"
-.br
-.RI "\fICalled when a user parts a channel. \fP"
-.ti -1c
-.RI "virtual void \fBOnRehash\fP (\fBstd::string\fP parameter)"
-.br
-.RI "\fICalled on rehash. \fP"
-.ti -1c
-.RI "virtual void \fBOnServerRaw\fP (\fBstd::string\fP &raw, bool inbound, \fBuserrec\fP *user)"
-.br
-.RI "\fICalled when a raw command is transmitted or received. \fP"
-.ti -1c
-.RI "virtual int \fBOnExtendedMode\fP (\fBuserrec\fP *user, void *target, char modechar, int type, bool mode_on, \fBstring_list\fP &params)"
-.br
-.RI "\fICalled whenever an extended mode is to be processed. \fP"
-.ti -1c
-.RI "virtual int \fBOnUserPreJoin\fP (\fBuserrec\fP *user, \fBchanrec\fP *chan, const char *cname)"
-.br
-.RI "\fICalled whenever a user is about to join a channel, before any processing is done. \fP"
-.ti -1c
-.RI "virtual int \fBOnUserPreKick\fP (\fBuserrec\fP *source, \fBuserrec\fP *user, \fBchanrec\fP *chan, \fBstd::string\fP reason)"
-.br
-.RI "\fICalled whenever a user is about to be kicked. \fP"
-.ti -1c
-.RI "virtual void \fBOnUserKick\fP (\fBuserrec\fP *source, \fBuserrec\fP *user, \fBchanrec\fP *chan, \fBstd::string\fP reason)"
-.br
-.RI "\fICalled whenever a user is kicked. \fP"
-.ti -1c
-.RI "virtual void \fBOnOper\fP (\fBuserrec\fP *user, \fBstd::string\fP opertype)"
-.br
-.RI "\fICalled whenever a user opers locally. \fP"
-.ti -1c
-.RI "virtual void \fBOnInfo\fP (\fBuserrec\fP *user)"
-.br
-.RI "\fICalled whenever a user types /INFO. \fP"
-.ti -1c
-.RI "virtual void \fBOnWhois\fP (\fBuserrec\fP *source, \fBuserrec\fP *dest)"
-.br
-.RI "\fICalled whenever a /WHOIS is performed on a local user. \fP"
-.ti -1c
-.RI "virtual int \fBOnUserPreInvite\fP (\fBuserrec\fP *source, \fBuserrec\fP *dest, \fBchanrec\fP *channel)"
-.br
-.RI "\fICalled whenever a user is about to invite another user into a channel, before any processing is done. \fP"
-.ti -1c
-.RI "virtual void \fBOnUserInvite\fP (\fBuserrec\fP *source, \fBuserrec\fP *dest, \fBchanrec\fP *channel)"
-.br
-.RI "\fICalled after a user has been successfully invited to a channel. \fP"
-.ti -1c
-.RI "virtual int \fBOnUserPreMessage\fP (\fBuserrec\fP *user, void *dest, int target_type, \fBstd::string\fP &text)"
-.br
-.RI "\fICalled whenever a user is about to PRIVMSG A user or a channel, before any processing is done. \fP"
-.ti -1c
-.RI "virtual int \fBOnUserPreNotice\fP (\fBuserrec\fP *user, void *dest, int target_type, \fBstd::string\fP &text)"
-.br
-.RI "\fICalled whenever a user is about to NOTICE A user or a channel, before any processing is done. \fP"
-.ti -1c
-.RI "virtual int \fBOnUserPreNick\fP (\fBuserrec\fP *user, \fBstd::string\fP newnick)"
-.br
-.RI "\fICalled before any nickchange, local or remote. \fP"
-.ti -1c
-.RI "virtual void \fBOnUserMessage\fP (\fBuserrec\fP *user, void *dest, int target_type, \fBstd::string\fP text)"
-.br
-.RI "\fICalled after any PRIVMSG sent from a user. \fP"
-.ti -1c
-.RI "virtual void \fBOnUserNotice\fP (\fBuserrec\fP *user, void *dest, int target_type, \fBstd::string\fP text)"
-.br
-.RI "\fICalled after any NOTICE sent from a user. \fP"
-.ti -1c
-.RI "virtual void \fBOnMode\fP (\fBuserrec\fP *user, void *dest, int target_type, \fBstd::string\fP text)"
-.br
-.RI "\fICalled after every MODE command sent from a user The dest variable contains a userrec* if target_type is TYPE_USER and a chanrec* if target_type is TYPE_CHANNEL. \fP"
-.ti -1c
-.RI "virtual void \fBOnGetServerDescription\fP (\fBstd::string\fP servername, \fBstd::string\fP &description)"
-.br
-.RI "\fIAllows modules to alter or create server descriptions Whenever a module requires a server description, for example for display in WHOIS, this function is called in all modules. \fP"
-.ti -1c
-.RI "virtual void \fBOnSyncUser\fP (\fBuserrec\fP *user, \fBModule\fP *proto, void *opaque)"
-.br
-.RI "\fIAllows modules to synchronize data which relates to users during a netburst. \fP"
-.ti -1c
-.RI "virtual void \fBOnSyncChannel\fP (\fBchanrec\fP *chan, \fBModule\fP *proto, void *opaque)"
-.br
-.RI "\fIAllows modules to synchronize data which relates to channels during a netburst. \fP"
-.ti -1c
-.RI "virtual void \fBOnSyncChannelMetaData\fP (\fBchanrec\fP *chan, \fBModule\fP *proto, void *opaque, \fBstd::string\fP extname)"
-.br
-.ti -1c
-.RI "virtual void \fBOnSyncUserMetaData\fP (\fBuserrec\fP *user, \fBModule\fP *proto, void *opaque, \fBstd::string\fP extname)"
-.br
-.ti -1c
-.RI "virtual void \fBOnDecodeMetaData\fP (int target_type, void *target, \fBstd::string\fP extname, \fBstd::string\fP extdata)"
-.br
-.RI "\fIAllows module data, sent via ProtoSendMetaData, to be decoded again by a receiving module. \fP"
-.ti -1c
-.RI "virtual void \fBProtoSendMode\fP (void *opaque, int target_type, void *target, \fBstd::string\fP modeline)"
-.br
-.RI "\fIImplemented by modules which provide the ability to link servers. \fP"
-.ti -1c
-.RI "virtual void \fBProtoSendMetaData\fP (void *opaque, int target_type, void *target, \fBstd::string\fP extname, \fBstd::string\fP extdata)"
-.br
-.RI "\fIImplemented by modules which provide the ability to link servers. \fP"
-.ti -1c
-.RI "virtual void \fBOnWallops\fP (\fBuserrec\fP *user, \fBstd::string\fP text)"
-.br
-.RI "\fICalled after every WALLOPS command. \fP"
-.ti -1c
-.RI "virtual void \fBOnChangeHost\fP (\fBuserrec\fP *user, \fBstd::string\fP newhost)"
-.br
-.RI "\fICalled whenever a user's hostname is changed. \fP"
-.ti -1c
-.RI "virtual void \fBOnChangeName\fP (\fBuserrec\fP *user, \fBstd::string\fP gecos)"
-.br
-.RI "\fICalled whenever a user's GECOS (realname) is changed. \fP"
-.ti -1c
-.RI "virtual void \fBOnAddGLine\fP (long duration, \fBuserrec\fP *source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)"
-.br
-.RI "\fICalled whenever a gline is added by a local user. \fP"
-.ti -1c
-.RI "virtual void \fBOnAddZLine\fP (long duration, \fBuserrec\fP *source, \fBstd::string\fP reason, \fBstd::string\fP ipmask)"
-.br
-.RI "\fICalled whenever a zline is added by a local user. \fP"
-.ti -1c
-.RI "virtual void \fBOnAddKLine\fP (long duration, \fBuserrec\fP *source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)"
-.br
-.RI "\fICalled whenever a kline is added by a local user. \fP"
-.ti -1c
-.RI "virtual void \fBOnAddQLine\fP (long duration, \fBuserrec\fP *source, \fBstd::string\fP reason, \fBstd::string\fP nickmask)"
-.br
-.RI "\fICalled whenever a qline is added by a local user. \fP"
-.ti -1c
-.RI "virtual void \fBOnAddELine\fP (long duration, \fBuserrec\fP *source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)"
-.br
-.RI "\fICalled whenever a eline is added by a local user. \fP"
-.ti -1c
-.RI "virtual void \fBOnDelGLine\fP (\fBuserrec\fP *source, \fBstd::string\fP hostmask)"
-.br
-.RI "\fICalled whenever a gline is deleted. \fP"
-.ti -1c
-.RI "virtual void \fBOnDelZLine\fP (\fBuserrec\fP *source, \fBstd::string\fP ipmask)"
-.br
-.RI "\fICalled whenever a zline is deleted. \fP"
-.ti -1c
-.RI "virtual void \fBOnDelKLine\fP (\fBuserrec\fP *source, \fBstd::string\fP hostmask)"
-.br
-.RI "\fICalled whenever a kline is deleted. \fP"
-.ti -1c
-.RI "virtual void \fBOnDelQLine\fP (\fBuserrec\fP *source, \fBstd::string\fP nickmask)"
-.br
-.RI "\fICalled whenever a qline is deleted. \fP"
-.ti -1c
-.RI "virtual void \fBOnDelELine\fP (\fBuserrec\fP *source, \fBstd::string\fP hostmask)"
-.br
-.RI "\fICalled whenever a eline is deleted. \fP"
-.ti -1c
-.RI "virtual void \fBOnCleanup\fP (int target_type, void *item)"
-.br
-.RI "\fICalled before your module is unloaded to clean up Extensibles. \fP"
-.ti -1c
-.RI "virtual void \fBOnUserPostNick\fP (\fBuserrec\fP *user, \fBstd::string\fP oldnick)"
-.br
-.RI "\fICalled after any nickchange, local or remote. \fP"
-.ti -1c
-.RI "virtual int \fBOnAccessCheck\fP (\fBuserrec\fP *source, \fBuserrec\fP *dest, \fBchanrec\fP *channel, int access_type)"
-.br
-.RI "\fICalled before an action which requires a channel privilage check. \fP"
-.ti -1c
-.RI "virtual void \fBOn005Numeric\fP (\fBstd::string\fP &output)"
-.br
-.RI "\fICalled when a 005 numeric is about to be output. \fP"
-.ti -1c
-.RI "virtual int \fBOnKill\fP (\fBuserrec\fP *source, \fBuserrec\fP *dest, \fBstd::string\fP reason)"
-.br
-.RI "\fICalled when a client is disconnected by KILL. \fP"
-.ti -1c
-.RI "virtual void \fBOnRemoteKill\fP (\fBuserrec\fP *source, \fBuserrec\fP *dest, \fBstd::string\fP reason)"
-.br
-.RI "\fICalled when an oper wants to disconnect a remote user via KILL. \fP"
-.ti -1c
-.RI "virtual void \fBOnLoadModule\fP (\fBModule\fP *mod, \fBstd::string\fP name)"
-.br
-.RI "\fICalled whenever a module is loaded. \fP"
-.ti -1c
-.RI "virtual void \fBOnUnloadModule\fP (\fBModule\fP *mod, \fBstd::string\fP name)"
-.br
-.RI "\fICalled whenever a module is unloaded. \fP"
-.ti -1c
-.RI "virtual void \fBOnBackgroundTimer\fP (time_t curtime)"
-.br
-.RI "\fICalled once every five seconds for background processing. \fP"
-.ti -1c
-.RI "virtual void \fBOnSendList\fP (\fBuserrec\fP *user, \fBchanrec\fP *channel, char mode)"
-.br
-.RI "\fICalled whenever a list is needed for a listmode. \fP"
-.ti -1c
-.RI "virtual int \fBOnPreCommand\fP (\fBstd::string\fP command, char **parameters, int pcnt, \fBuserrec\fP *user)"
-.br
-.RI "\fICalled whenever any command is about to be executed. \fP"
-.ti -1c
-.RI "virtual bool \fBOnCheckReady\fP (\fBuserrec\fP *user)"
-.br
-.RI "\fICalled to check if a user who is connecting can now be allowed to register If any modules return false for this function, the user is held in the waiting state until all modules return true. \fP"
-.ti -1c
-.RI "virtual void \fBOnUserRegister\fP (\fBuserrec\fP *user)"
-.br
-.RI "\fICalled whenever a user is about to register their connection (e.g. \fP"
-.ti -1c
-.RI "virtual int \fBOnRawMode\fP (\fBuserrec\fP *user, \fBchanrec\fP *chan, char mode, \fBstd::string\fP param, bool adding, int pcnt)"
-.br
-.RI "\fICalled whenever a mode character is processed. \fP"
-.ti -1c
-.RI "virtual int \fBOnCheckInvite\fP (\fBuserrec\fP *user, \fBchanrec\fP *chan)"
-.br
-.RI "\fICalled whenever a user joins a channel, to determine if invite checks should go ahead or not. \fP"
-.ti -1c
-.RI "virtual int \fBOnCheckKey\fP (\fBuserrec\fP *user, \fBchanrec\fP *chan, \fBstd::string\fP keygiven)"
-.br
-.RI "\fICalled whenever a user joins a channel, to determine if key checks should go ahead or not. \fP"
-.ti -1c
-.RI "virtual int \fBOnCheckLimit\fP (\fBuserrec\fP *user, \fBchanrec\fP *chan)"
-.br
-.RI "\fICalled whenever a user joins a channel, to determine if channel limit checks should go ahead or not. \fP"
-.ti -1c
-.RI "virtual int \fBOnCheckBan\fP (\fBuserrec\fP *user, \fBchanrec\fP *chan)"
-.br
-.RI "\fICalled whenever a user joins a channel, to determine if banlist checks should go ahead or not. \fP"
-.ti -1c
-.RI "virtual void \fBOnStats\fP (char symbol)"
-.br
-.RI "\fICalled on all /STATS commands This method is triggered for all /STATS use, including stats symbols handled by the core. \fP"
-.ti -1c
-.RI "virtual int \fBOnChangeLocalUserHost\fP (\fBuserrec\fP *user, \fBstd::string\fP newhost)"
-.br
-.RI "\fICalled whenever a change of a local users displayed host is attempted. \fP"
-.ti -1c
-.RI "virtual int \fBOnChangeLocalUserGECOS\fP (\fBuserrec\fP *user, \fBstd::string\fP newhost)"
-.br
-.RI "\fICalled whenever a change of a local users GECOS (fullname field) is attempted. \fP"
-.ti -1c
-.RI "virtual int \fBOnLocalTopicChange\fP (\fBuserrec\fP *user, \fBchanrec\fP *chan, \fBstd::string\fP topic)"
-.br
-.RI "\fICalled whenever a topic is changed by a local user. \fP"
-.ti -1c
-.RI "virtual void \fBOnPostLocalTopicChange\fP (\fBuserrec\fP *user, \fBchanrec\fP *chan, \fBstd::string\fP topic)"
-.br
-.RI "\fICalled whenever a local topic has been changed. \fP"
-.ti -1c
-.RI "virtual void \fBOnEvent\fP (\fBEvent\fP *event)"
-.br
-.RI "\fICalled whenever an \fBEvent\fP class is sent to all module by another module. \fP"
-.ti -1c
-.RI "virtual char * \fBOnRequest\fP (\fBRequest\fP *request)"
-.br
-.RI "\fICalled whenever a \fBRequest\fP class is sent to your module by another module. \fP"
-.ti -1c
-.RI "virtual int \fBOnOperCompare\fP (\fBstd::string\fP password, \fBstd::string\fP input)"
-.br
-.RI "\fICalled whenever an oper password is to be compared to what a user has input. \fP"
-.ti -1c
-.RI "virtual void \fBOnGlobalOper\fP (\fBuserrec\fP *user)"
-.br
-.RI "\fICalled whenever a user is given usermode +o, anywhere on the network. \fP"
-.ti -1c
-.RI "virtual void \fBOnGlobalConnect\fP (\fBuserrec\fP *user)"
-.br
-.RI "\fICalled whenever a user connects, anywhere on the network. \fP"
-.ti -1c
-.RI "virtual int \fBOnAddBan\fP (\fBuserrec\fP *source, \fBchanrec\fP *channel, \fBstd::string\fP banmask)"
-.br
-.RI "\fICalled whenever a ban is added to a channel's list. \fP"
-.ti -1c
-.RI "virtual int \fBOnDelBan\fP (\fBuserrec\fP *source, \fBchanrec\fP *channel, \fBstd::string\fP banmask)"
-.br
-.RI "\fICalled whenever a ban is removed from a channel's list. \fP"
-.ti -1c
-.RI "virtual void \fBOnRawSocketAccept\fP (int fd, \fBstd::string\fP ip, int localport)"
-.br
-.RI "\fICalled immediately after any connection is accepted. \fP"
-.ti -1c
-.RI "virtual int \fBOnRawSocketWrite\fP (int fd, char *buffer, int count)"
-.br
-.RI "\fICalled immediately before any write() operation on a user's socket in the core. \fP"
-.ti -1c
-.RI "virtual void \fBOnRawSocketClose\fP (int fd)"
-.br
-.RI "\fICalled immediately before any socket is closed. \fP"
-.ti -1c
-.RI "virtual int \fBOnRawSocketRead\fP (int fd, char *buffer, unsigned int count, int &readresult)"
-.br
-.RI "\fICalled immediately before any read() operation on a client socket in the core. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-Base class for all \fBInspIRCd\fP modules This class is the base class for \fBInspIRCd\fP modules.
-
-All modules must inherit from this class, its methods will be called when irc server events occur. class inherited from module must be instantiated by the \fBModuleFactory\fP class (see relevent section) for the plugin to be initialised.
-.PP
-Definition at line 272 of file modules.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "Module::Module (\fBServer\fP * Me)"
-.PP
-Default constructor Creates a module class.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIMe\fP An instance of the \fBServer\fP class which can be saved for future use
-.RE
-.PP
-
-.PP
-Definition at line 219 of file modules.cpp.
-.PP
-.nf
-219 { }
-.fi
-.PP
-.SS "Module::~Module ()\fC [virtual]\fP"
-.PP
-Default destructor destroys a module class.
-.PP
-Definition at line 220 of file modules.cpp.
-.PP
-.nf
-220 { }
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "\fBVersion\fP Module::GetVersion ()\fC [virtual]\fP"
-.PP
-Returns the version number of a Module.
-.PP
-The method should return a \fBVersion\fP object with its version information assigned via \fBVersion::Version\fP
-.PP
-Definition at line 231 of file modules.cpp.
-.PP
-References VF_VENDOR.
-.PP
-.nf
-231 { return Version(1,0,0,0,VF_VENDOR); }
-.fi
-.PP
-.SS "void Module::On005Numeric (\fBstd::string\fP & output)\fC [virtual]\fP"
-.PP
-Called when a 005 numeric is about to be output.
-.PP
-The module should modify the 005 numeric if needed to indicate its features.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIoutput\fP The 005 string to be modified if neccessary.
-.RE
-.PP
-
-.PP
-Definition at line 241 of file modules.cpp.
-.PP
-.nf
-241 { };
-.fi
-.PP
-.SS "int Module::OnAccessCheck (\fBuserrec\fP * source, \fBuserrec\fP * dest, \fBchanrec\fP * channel, int access_type)\fC [virtual]\fP"
-.PP
-Called before an action which requires a channel privilage check.
-.PP
-This function is called before many functions which check a users status on a channel, for example before opping a user, deopping a user, kicking a user, etc. There are several values for access_type which indicate for what reason access is being checked. These are:
-.br
-
-.br
- AC_KICK (0) - A user is being kicked
-.br
- AC_DEOP (1) - a user is being deopped
-.br
- AC_OP (2) - a user is being opped
-.br
- AC_VOICE (3) - a user is being voiced
-.br
- AC_DEVOICE (4) - a user is being devoiced
-.br
- AC_HALFOP (5) - a user is being halfopped
-.br
- AC_DEHALFOP (6) - a user is being dehalfopped
-.br
- AC_INVITE (7) - a user is being invited
-.br
- AC_GENERAL_MODE (8) - a user channel mode is being changed<br>
-.br
- Upon returning from your function you must return either ACR_DEFAULT, to indicate the module wishes to do nothing, or ACR_DENY where approprate to deny the action, and ACR_ALLOW where appropriate to allow the action. Please note that in the case of some access checks (such as AC_GENERAL_MODE) access may be denied 'upstream' causing other checks such as AC_DEOP to not be reached. Be very careful with use of the AC_GENERAL_MODE type, as it may inadvertently override the behaviour of other modules. When the access_type is AC_GENERAL_MODE, the destination of the mode will be NULL (as it has not yet been determined).
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The source of the access check
-.br
-\fIdest\fP The destination of the access check
-.br
-\fIchannel\fP The channel which is being checked
-.br
-\fIaccess_type\fP See above
-.RE
-.PP
-
-.PP
-Definition at line 240 of file modules.cpp.
-.PP
-References ACR_DEFAULT.
-.PP
-.nf
-240 { return ACR_DEFAULT; };
-.fi
-.PP
-.SS "int Module::OnAddBan (\fBuserrec\fP * source, \fBchanrec\fP * channel, \fBstd::string\fP banmask)\fC [virtual]\fP"
-.PP
-Called whenever a ban is added to a channel's list.
-.PP
-Return a non-zero value to 'eat' the mode change and prevent the ban from being added.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user adding the ban
-.br
-\fIchannel\fP The channel the ban is being added to
-.br
-\fIbanmask\fP The ban mask being added
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to block the ban, 0 to continue as normal
-.RE
-.PP
-
-.PP
-Definition at line 266 of file modules.cpp.
-.PP
-.nf
-266 { return 0; };
-.fi
-.PP
-.SS "void Module::OnAddELine (long duration, \fBuserrec\fP * source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
-.PP
-Called whenever a eline is added by a local user.
-.PP
-This method is triggered after the line is added.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIduration\fP The duration of the line in seconds
-.br
-\fIsource\fP The sender of the line
-.br
-\fIreason\fP The reason text to be displayed
-.br
-\fIhostmask\fP The hostmask to add
-.RE
-.PP
-
-.PP
-Definition at line 292 of file modules.cpp.
-.PP
-.nf
-292 { };
-.fi
-.PP
-.SS "void Module::OnAddGLine (long duration, \fBuserrec\fP * source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
-.PP
-Called whenever a gline is added by a local user.
-.PP
-This method is triggered after the line is added.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIduration\fP The duration of the line in seconds
-.br
-\fIsource\fP The sender of the line
-.br
-\fIreason\fP The reason text to be displayed
-.br
-\fIhostmask\fP The hostmask to add
-.RE
-.PP
-
-.PP
-Definition at line 288 of file modules.cpp.
-.PP
-.nf
-288 { };
-.fi
-.PP
-.SS "void Module::OnAddKLine (long duration, \fBuserrec\fP * source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
-.PP
-Called whenever a kline is added by a local user.
-.PP
-This method is triggered after the line is added.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIduration\fP The duration of the line in seconds
-.br
-\fIsource\fP The sender of the line
-.br
-\fIreason\fP The reason text to be displayed
-.br
-\fIhostmask\fP The hostmask to add
-.RE
-.PP
-
-.PP
-Definition at line 290 of file modules.cpp.
-.PP
-.nf
-290 { };
-.fi
-.PP
-.SS "void Module::OnAddQLine (long duration, \fBuserrec\fP * source, \fBstd::string\fP reason, \fBstd::string\fP nickmask)\fC [virtual]\fP"
-.PP
-Called whenever a qline is added by a local user.
-.PP
-This method is triggered after the line is added.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIduration\fP The duration of the line in seconds
-.br
-\fIsource\fP The sender of the line
-.br
-\fIreason\fP The reason text to be displayed
-.br
-\fInickmask\fP The hostmask to add
-.RE
-.PP
-
-.PP
-Definition at line 291 of file modules.cpp.
-.PP
-.nf
-291 { };
-.fi
-.PP
-.SS "void Module::OnAddZLine (long duration, \fBuserrec\fP * source, \fBstd::string\fP reason, \fBstd::string\fP ipmask)\fC [virtual]\fP"
-.PP
-Called whenever a zline is added by a local user.
-.PP
-This method is triggered after the line is added.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIduration\fP The duration of the line in seconds
-.br
-\fIsource\fP The sender of the line
-.br
-\fIreason\fP The reason text to be displayed
-.br
-\fIipmask\fP The hostmask to add
-.RE
-.PP
-
-.PP
-Definition at line 289 of file modules.cpp.
-.PP
-.nf
-289 { };
-.fi
-.PP
-.SS "void Module::OnBackgroundTimer (time_t curtime)\fC [virtual]\fP"
-.PP
-Called once every five seconds for background processing.
-.PP
-This timer can be used to control timed features. Its period is not accurate enough to be used as a clock, but it is gauranteed to be called at least once in any five second period, directly from the main loop of the server.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIcurtime\fP The current timer derived from time(2)
-.RE
-.PP
-
-.PP
-Definition at line 245 of file modules.cpp.
-.PP
-.nf
-245 { };
-.fi
-.PP
-.SS "void Module::OnChangeHost (\fBuserrec\fP * user, \fBstd::string\fP newhost)\fC [virtual]\fP"
-.PP
-Called whenever a user's hostname is changed.
-.PP
-This event triggers after the host has been set.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user whos host is being changed
-.br
-\fInewhost\fP The new hostname being set
-.RE
-.PP
-
-.PP
-Definition at line 286 of file modules.cpp.
-.PP
-.nf
-286 { };
-.fi
-.PP
-.SS "int Module::OnChangeLocalUserGECOS (\fBuserrec\fP * user, \fBstd::string\fP newhost)\fC [virtual]\fP"
-.PP
-Called whenever a change of a local users GECOS (fullname field) is attempted.
-.PP
-return 1 to deny the name change, or 0 to allow it.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user whos GECOS will be changed
-.br
-\fInewhost\fP The new GECOS
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to deny the GECOS change, 0 to allow
-.RE
-.PP
-
-.PP
-Definition at line 259 of file modules.cpp.
-.PP
-.nf
-259 { return 0; };
-.fi
-.PP
-.SS "int Module::OnChangeLocalUserHost (\fBuserrec\fP * user, \fBstd::string\fP newhost)\fC [virtual]\fP"
-.PP
-Called whenever a change of a local users displayed host is attempted.
-.PP
-Return 1 to deny the host change, or 0 to allow it.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user whos host will be changed
-.br
-\fInewhost\fP The new hostname
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to deny the host change, 0 to allow
-.RE
-.PP
-
-.PP
-Definition at line 258 of file modules.cpp.
-.PP
-.nf
-258 { return 0; };
-.fi
-.PP
-.SS "void Module::OnChangeName (\fBuserrec\fP * user, \fBstd::string\fP gecos)\fC [virtual]\fP"
-.PP
-Called whenever a user's GECOS (realname) is changed.
-.PP
-This event triggers after the name has been set.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user who's GECOS is being changed
-.br
-\fIgecos\fP The new GECOS being set on the user
-.RE
-.PP
-
-.PP
-Definition at line 287 of file modules.cpp.
-.PP
-.nf
-287 { };
-.fi
-.PP
-.SS "int Module::OnCheckBan (\fBuserrec\fP * user, \fBchanrec\fP * chan)\fC [virtual]\fP"
-.PP
-Called whenever a user joins a channel, to determine if banlist checks should go ahead or not.
-.PP
-This method will always be called for each join, wether or not the user actually matches a channel ban, and determines the outcome of an if statement around the whole section of ban checking code. return 1 to explicitly allow the join to go ahead or 0 to ignore the event.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user joining the channel
-.br
-\fIchan\fP The channel being joined
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to explicitly allow the join, 0 to proceed as normal
-.RE
-.PP
-
-.PP
-Definition at line 256 of file modules.cpp.
-.PP
-.nf
-256 { return 0; };
-.fi
-.PP
-.SS "int Module::OnCheckInvite (\fBuserrec\fP * user, \fBchanrec\fP * chan)\fC [virtual]\fP"
-.PP
-Called whenever a user joins a channel, to determine if invite checks should go ahead or not.
-.PP
-This method will always be called for each join, wether or not the channel is actually +i, and determines the outcome of an if statement around the whole section of invite checking code. return 1 to explicitly allow the join to go ahead or 0 to ignore the event.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user joining the channel
-.br
-\fIchan\fP The channel being joined
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to explicitly allow the join, 0 to proceed as normal
-.RE
-.PP
-
-.PP
-Definition at line 253 of file modules.cpp.
-.PP
-.nf
-253 { return 0; };
-.fi
-.PP
-.SS "int Module::OnCheckKey (\fBuserrec\fP * user, \fBchanrec\fP * chan, \fBstd::string\fP keygiven)\fC [virtual]\fP"
-.PP
-Called whenever a user joins a channel, to determine if key checks should go ahead or not.
-.PP
-This method will always be called for each join, wether or not the channel is actually +k, and determines the outcome of an if statement around the whole section of key checking code. if the user specified no key, the keygiven string will be a valid but empty value. return 1 to explicitly allow the join to go ahead or 0 to ignore the event.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user joining the channel
-.br
-\fIchan\fP The channel being joined
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to explicitly allow the join, 0 to proceed as normal
-.RE
-.PP
-
-.PP
-Definition at line 254 of file modules.cpp.
-.PP
-.nf
-254 { return 0; };
-.fi
-.PP
-.SS "int Module::OnCheckLimit (\fBuserrec\fP * user, \fBchanrec\fP * chan)\fC [virtual]\fP"
-.PP
-Called whenever a user joins a channel, to determine if channel limit checks should go ahead or not.
-.PP
-This method will always be called for each join, wether or not the channel is actually +l, and determines the outcome of an if statement around the whole section of channel limit checking code. return 1 to explicitly allow the join to go ahead or 0 to ignore the event.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user joining the channel
-.br
-\fIchan\fP The channel being joined
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to explicitly allow the join, 0 to proceed as normal
-.RE
-.PP
-
-.PP
-Definition at line 255 of file modules.cpp.
-.PP
-.nf
-255 { return 0; };
-.fi
-.PP
-.SS "bool Module::OnCheckReady (\fBuserrec\fP * user)\fC [virtual]\fP"
-.PP
-Called to check if a user who is connecting can now be allowed to register If any modules return false for this function, the user is held in the waiting state until all modules return true.
-.PP
-For example a module which implements ident lookups will continue to return false for a user until their ident lookup is completed. Note that the registration timeout for a user overrides these checks, if the registration timeout is reached, the user is disconnected even if modules report that the user is not ready to connect.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user to check
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-true to indicate readiness, false if otherwise
-.RE
-.PP
-
-.PP
-Definition at line 248 of file modules.cpp.
-.PP
-.nf
-248 { return true; };
-.fi
-.PP
-.SS "void Module::OnCleanup (int target_type, void * item)\fC [virtual]\fP"
-.PP
-Called before your module is unloaded to clean up Extensibles.
-.PP
-This method is called once for every user and channel on the network, so that when your module unloads it may clear up any remaining data in the form of Extensibles added using \fBExtensible::Extend()\fP. If the target_type variable is TYPE_USER, then void* item refers to a userrec*, otherwise it refers to a chanrec*.
-.PP
-\fBParameters:\fP
-.RS 4
-\fItarget_type\fP The type of item being cleaned
-.br
-\fIitem\fP A pointer to the item's class
-.RE
-.PP
-
-.PP
-Definition at line 298 of file modules.cpp.
-.PP
-.nf
-298 { };
-.fi
-.PP
-.SS "void Module::OnDecodeMetaData (int target_type, void * target, \fBstd::string\fP extname, \fBstd::string\fP extdata)\fC [virtual]\fP"
-.PP
-Allows module data, sent via ProtoSendMetaData, to be decoded again by a receiving module.
-.PP
-Please see src/modules/m_swhois.cpp for a working example of how to use this method call.
-.PP
-\fBParameters:\fP
-.RS 4
-\fItarget_type\fP The type of item to decode data for, TYPE_USER or TYPE_CHANNEL
-.br
-\fItarget\fP The chanrec* or userrec* that data should be added to
-.br
-\fIextname\fP The extension name which is being sent
-.br
-\fIextdata\fP The extension data, encoded at the other end by an identical module through OnSyncChannelMetaData or OnSyncUserMetaData
-.RE
-.PP
-
-.PP
-Definition at line 283 of file modules.cpp.
-.PP
-.nf
-283 { };
-.fi
-.PP
-.SS "int Module::OnDelBan (\fBuserrec\fP * source, \fBchanrec\fP * channel, \fBstd::string\fP banmask)\fC [virtual]\fP"
-.PP
-Called whenever a ban is removed from a channel's list.
-.PP
-Return a non-zero value to 'eat' the mode change and prevent the ban from being removed.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user deleting the ban
-.br
-\fIchannel\fP The channel the ban is being deleted from
-.br
-\fIbanmask\fP The ban mask being deleted
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to block the unban, 0 to continue as normal
-.RE
-.PP
-
-.PP
-Definition at line 267 of file modules.cpp.
-.PP
-.nf
-267 { return 0; };
-.fi
-.PP
-.SS "void Module::OnDelELine (\fBuserrec\fP * source, \fBstd::string\fP hostmask)\fC [virtual]\fP"
-.PP
-Called whenever a eline is deleted.
-.PP
-This method is triggered after the line is deleted.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user removing the line
-.br
-\fIhostmask\fP The hostmask to delete
-.RE
-.PP
-
-.PP
-Definition at line 297 of file modules.cpp.
-.PP
-.nf
-297 { };
-.fi
-.PP
-.SS "void Module::OnDelGLine (\fBuserrec\fP * source, \fBstd::string\fP hostmask)\fC [virtual]\fP"
-.PP
-Called whenever a gline is deleted.
-.PP
-This method is triggered after the line is deleted.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user removing the line
-.br
-\fIhostmask\fP The hostmask to delete
-.RE
-.PP
-
-.PP
-Definition at line 293 of file modules.cpp.
-.PP
-.nf
-293 { };
-.fi
-.PP
-.SS "void Module::OnDelKLine (\fBuserrec\fP * source, \fBstd::string\fP hostmask)\fC [virtual]\fP"
-.PP
-Called whenever a kline is deleted.
-.PP
-This method is triggered after the line is deleted.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user removing the line
-.br
-\fIhostmask\fP The hostmask to delete
-.RE
-.PP
-
-.PP
-Definition at line 295 of file modules.cpp.
-.PP
-.nf
-295 { };
-.fi
-.PP
-.SS "void Module::OnDelQLine (\fBuserrec\fP * source, \fBstd::string\fP nickmask)\fC [virtual]\fP"
-.PP
-Called whenever a qline is deleted.
-.PP
-This method is triggered after the line is deleted.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user removing the line
-.br
-\fIhostmask\fP The hostmask to delete
-.RE
-.PP
-
-.PP
-Definition at line 296 of file modules.cpp.
-.PP
-.nf
-296 { };
-.fi
-.PP
-.SS "void Module::OnDelZLine (\fBuserrec\fP * source, \fBstd::string\fP ipmask)\fC [virtual]\fP"
-.PP
-Called whenever a zline is deleted.
-.PP
-This method is triggered after the line is deleted.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user removing the line
-.br
-\fIhostmask\fP The hostmask to delete
-.RE
-.PP
-
-.PP
-Definition at line 294 of file modules.cpp.
-.PP
-.nf
-294 { };
-.fi
-.PP
-.SS "void Module::OnEvent (\fBEvent\fP * event)\fC [virtual]\fP"
-.PP
-Called whenever an \fBEvent\fP class is sent to all module by another module.
-.PP
-Please see the documentation of \fBEvent::Send()\fP for further information. The \fBEvent\fP sent can always be assumed to be non-NULL, you should *always* check the value of \fBEvent::GetEventID()\fP before doing anything to the event data, and you should *not* change the event data in any way!
-.PP
-\fBParameters:\fP
-.RS 4
-\fIevent\fP The \fBEvent\fP class being received
-.RE
-.PP
-
-.PP
-Definition at line 261 of file modules.cpp.
-.PP
-.nf
-261 { return; };
-.fi
-.PP
-.SS "int Module::OnExtendedMode (\fBuserrec\fP * user, void * target, char modechar, int type, bool mode_on, \fBstring_list\fP & params)\fC [virtual]\fP"
-.PP
-Called whenever an extended mode is to be processed.
-.PP
-The type parameter is MT_SERVER, MT_CLIENT or MT_CHANNEL, dependent on where the mode is being changed. mode_on is set when the mode is being set, in which case params contains a list of parameters for the mode as strings. If mode_on is false, the mode is being removed, and parameters may contain the parameters for the mode, dependent on wether they were defined when a mode handler was set up with \fBServer::AddExtendedMode\fP If the mode is a channel mode, target is a chanrec*, and if it is a user mode, target is a userrec*. You must cast this value yourself to make use of it.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user issuing the mode
-.br
-\fItarget\fP The user or channel having the mode set on them
-.br
-\fImodechar\fP The mode character being set
-.br
-\fItype\fP The type of mode (user or channel) being set
-.br
-\fImode_on\fP True if the mode is being set, false if it is being unset
-.br
-\fIparams\fP A list of parameters for any channel mode (currently supports either 0 or 1 parameters)
-.RE
-.PP
-
-.PP
-Definition at line 229 of file modules.cpp.
-.PP
-.nf
-229 { return false; }
-.fi
-.PP
-.SS "void Module::OnGetServerDescription (\fBstd::string\fP servername, \fBstd::string\fP & description)\fC [virtual]\fP"
-.PP
-Allows modules to alter or create server descriptions Whenever a module requires a server description, for example for display in WHOIS, this function is called in all modules.
-.PP
-You may change or define the description given in \fBstd::string\fP &description. If you do, this description will be shown in the WHOIS fields.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIservername\fP The servername being searched for
-.br
-\fIdescription\fP Alterable server description for this server
-.RE
-.PP
-
-.PP
-Definition at line 277 of file modules.cpp.
-.PP
-.nf
-277 { };
-.fi
-.PP
-.SS "void Module::OnGlobalConnect (\fBuserrec\fP * user)\fC [virtual]\fP"
-.PP
-Called whenever a user connects, anywhere on the network.
-.PP
-This event is informational only. You should not change any user information in this event. To do so, use the OnUserConnect method to change the state of local users.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user who is connecting
-.RE
-.PP
-
-.PP
-Definition at line 265 of file modules.cpp.
-.PP
-.nf
-265 { };
-.fi
-.PP
-.SS "void Module::OnGlobalOper (\fBuserrec\fP * user)\fC [virtual]\fP"
-.PP
-Called whenever a user is given usermode +o, anywhere on the network.
-.PP
-You cannot override this and prevent it from happening as it is already happened and such a task must be performed by another server. You can however bounce modes by sending servermodes out to reverse mode changes.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user who is opering
-.RE
-.PP
-
-.PP
-Definition at line 264 of file modules.cpp.
-.PP
-.nf
-264 { };
-.fi
-.PP
-.SS "void Module::OnInfo (\fBuserrec\fP * user)\fC [virtual]\fP"
-.PP
-Called whenever a user types /INFO.
-.PP
-The userrec will contain the information of the user who typed the command. Modules may use this method to output their own credits in /INFO (which is the ircd's version of an about box). It is purposefully not possible to modify any info that has already been output, or halt the list. You must write a 371 numeric to the user, containing your info in the following format:
-.PP
-<nick> :information here
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user issuing /INFO
-.RE
-.PP
-
-.PP
-Definition at line 233 of file modules.cpp.
-.PP
-.nf
-233 { };
-.fi
-.PP
-.SS "int Module::OnKill (\fBuserrec\fP * source, \fBuserrec\fP * dest, \fBstd::string\fP reason)\fC [virtual]\fP"
-.PP
-Called when a client is disconnected by KILL.
-.PP
-If a client is killed by a server, e.g. a nickname collision or protocol error, source is NULL. Return 1 from this function to prevent the kill, and 0 from this function to allow it as normal. If you prevent the kill no output will be sent to the client, it is down to your module to generate this information. NOTE: It is NOT advisable to stop kills which originate from servers or remote users. If you do so youre risking race conditions, desyncs and worse!
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user sending the KILL
-.br
-\fIdest\fP The user being killed
-.br
-\fIreason\fP The kill reason
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to prevent the kill, 0 to allow
-.RE
-.PP
-
-.PP
-Definition at line 242 of file modules.cpp.
-.PP
-.nf
-242 { return 0; };
-.fi
-.PP
-.SS "void Module::OnLoadModule (\fBModule\fP * mod, \fBstd::string\fP name)\fC [virtual]\fP"
-.PP
-Called whenever a module is loaded.
-.PP
-mod will contain a pointer to the module, and string will contain its name, for example m_widgets.so. This function is primary for dependency checking, your module may decide to enable some extra features if it sees that you have for example loaded 'm_killwidgets.so' with 'm_makewidgets.so'. It is highly recommended that modules do *NOT* bail if they cannot satisfy dependencies, but instead operate under reduced functionality, unless the dependency is absolutely neccessary (e.g. a module that extends the features of another module).
-.PP
-\fBParameters:\fP
-.RS 4
-\fImod\fP A pointer to the new module
-.br
-\fIname\fP The new module's filename
-.RE
-.PP
-
-.PP
-Definition at line 243 of file modules.cpp.
-.PP
-.nf
-243 { };
-.fi
-.PP
-.SS "int Module::OnLocalTopicChange (\fBuserrec\fP * user, \fBchanrec\fP * chan, \fBstd::string\fP topic)\fC [virtual]\fP"
-.PP
-Called whenever a topic is changed by a local user.
-.PP
-Return 1 to deny the topic change, or 0 to allow it.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user changing the topic
-.br
-\fIchan\fP The channels who's topic is being changed
-.br
-\fItopic\fP The actual topic text
-.br
-\fI1\fP to block the topic change, 0 to allow
-.RE
-.PP
-
-.PP
-Definition at line 260 of file modules.cpp.
-.PP
-.nf
-260 { return 0; };
-.fi
-.PP
-.SS "void Module::OnMode (\fBuserrec\fP * user, void * dest, int target_type, \fBstd::string\fP text)\fC [virtual]\fP"
-.PP
-Called after every MODE command sent from a user The dest variable contains a userrec* if target_type is TYPE_USER and a chanrec* if target_type is TYPE_CHANNEL.
-.PP
-The text variable contains the remainder of the mode string after the target, e.g. '+wsi' or '+ooo nick1 nick2 nick3'.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user sending the MODEs
-.br
-\fIdest\fP The target of the modes (userrec* or chanrec*)
-.br
-\fItarget_type\fP The type of target (TYPE_USER or TYPE_CHANNEL)
-.br
-\fItext\fP The actual modes and their parameters if any
-.RE
-.PP
-
-.PP
-Definition at line 230 of file modules.cpp.
-.PP
-.nf
-230 { };
-.fi
-.PP
-.SS "void Module::OnOper (\fBuserrec\fP * user, \fBstd::string\fP opertype)\fC [virtual]\fP"
-.PP
-Called whenever a user opers locally.
-.PP
-The userrec will contain the oper mode 'o' as this function is called after any modifications are made to the user's structure by the core.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user who is opering up
-.br
-\fIopertype\fP The opers type name
-.RE
-.PP
-
-.PP
-Definition at line 232 of file modules.cpp.
-.PP
-.nf
-232 { };
-.fi
-.PP
-.SS "int Module::OnOperCompare (\fBstd::string\fP password, \fBstd::string\fP input)\fC [virtual]\fP"
-.PP
-Called whenever an oper password is to be compared to what a user has input.
-.PP
-The password field (from the config file) is in 'password' and is to be compared against 'input'. This method allows for encryption of oper passwords and much more besides. You should return a nonzero value if you want to allow the comparison or zero if you wish to do nothing.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIpassword\fP The oper's password
-.br
-\fIinput\fP The password entered
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to match the passwords, 0 to do nothing
-.RE
-.PP
-
-.PP
-Definition at line 263 of file modules.cpp.
-.PP
-.nf
-263 { return 0; };
-.fi
-.PP
-.SS "void Module::OnPostLocalTopicChange (\fBuserrec\fP * user, \fBchanrec\fP * chan, \fBstd::string\fP topic)\fC [virtual]\fP"
-.PP
-Called whenever a local topic has been changed.
-.PP
-To block topic changes you must use OnLocalTopicChange instead.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user changing the topic
-.br
-\fIchan\fP The channels who's topic is being changed
-.br
-\fItopic\fP The actual topic text
-.RE
-.PP
-
-.PP
-Definition at line 276 of file modules.cpp.
-.PP
-.nf
-276 { };
-.fi
-.PP
-.SS "int Module::OnPreCommand (\fBstd::string\fP command, char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
-.PP
-Called whenever any command is about to be executed.
-.PP
-This event occurs for all registered commands, wether they are registered in the core, or another module, but it will not occur for invalid commands (e.g. ones which do not exist within the command table). By returning 1 from this method you may prevent the command being executed. If you do this, no output is created by the core, and it is down to your module to produce any output neccessary. Note that unless you return 1, you should not destroy any structures (e.g. by using \fBServer::QuitUser\fP) otherwise when the command's handler function executes after your method returns, it will be passed an invalid pointer to the user object and crash!)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIcommand\fP The command being executed
-.br
-\fIparameters\fP An array of array of characters containing the parameters for the command
-.br
-\fIpcnt\fP The nuimber of parameters passed to the command
-.br
-\fIuser\fP the user issuing the command
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to block the command, 0 to allow
-.RE
-.PP
-
-.PP
-Definition at line 247 of file modules.cpp.
-.PP
-.nf
-247 { return 0; };
-.fi
-.PP
-.SS "int Module::OnRawMode (\fBuserrec\fP * user, \fBchanrec\fP * chan, char mode, \fBstd::string\fP param, bool adding, int pcnt)\fC [virtual]\fP"
-.PP
-Called whenever a mode character is processed.
-.PP
-Return 1 from this function to block the mode character from being processed entirely, so that you may perform your own code instead. Note that this method allows you to override modes defined by other modes, but this is NOT RECOMMENDED!
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user who is sending the mode
-.br
-\fIchan\fP The channel the mode is being sent to
-.br
-\fImode\fP The mode character being set
-.br
-\fIparam\fP The parameter for the mode or an empty string
-.br
-\fIadding\fP true of the mode is being added, false if it is being removed
-.br
-\fIpcnt\fP The parameter count for the mode (0 or 1)
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to deny the mode, 0 to allow
-.RE
-.PP
-
-.PP
-Definition at line 252 of file modules.cpp.
-.PP
-.nf
-252 { return 0; };
-.fi
-.PP
-.SS "void Module::OnRawSocketAccept (int fd, \fBstd::string\fP ip, int localport)\fC [virtual]\fP"
-.PP
-Called immediately after any connection is accepted.
-.PP
-This is intended for raw socket processing (e.g. modules which wrap the tcp connection within another library) and provides no information relating to a user record as the connection has not been assigned yet. There are no return values from this call as all modules get an opportunity if required to process the connection.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIfd\fP The file descriptor returned from accept()
-.br
-\fIip\fP The IP address of the connecting user
-.br
-\fIlocalport\fP The local port number the user connected to
-.RE
-.PP
-
-.PP
-Definition at line 268 of file modules.cpp.
-.PP
-.nf
-268 { };
-.fi
-.PP
-.SS "void Module::OnRawSocketClose (int fd)\fC [virtual]\fP"
-.PP
-Called immediately before any socket is closed.
-.PP
-When this event is called, shutdown() has not yet been called on the socket.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIfd\fP The file descriptor of the socket prior to close()
-.RE
-.PP
-
-.PP
-Definition at line 270 of file modules.cpp.
-.PP
-Referenced by kill_link(), and kill_link_silent().
-.PP
-.nf
-270 { };
-.fi
-.PP
-.SS "int Module::OnRawSocketRead (int fd, char * buffer, unsigned int count, int & readresult)\fC [virtual]\fP"
-.PP
-Called immediately before any read() operation on a client socket in the core.
-.PP
-This occurs AFTER the select() or poll() so there is always data waiting to be read when this event occurs. Your event should return 1 if it has handled the reading itself, which prevents the core just using read(). You should place any data read into buffer, up to but NOT GREATER THAN the value of count. The value of readresult must be identical to an actual result that might be returned from the read() system call, for example, number of bytes read upon success, 0 upon EOF or closed socket, and -1 for error. If your function returns a nonzero value, you MUST set readresult.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIfd\fP The file descriptor of the socket
-.br
-\fIbuffer\fP A char* buffer being read to
-.br
-\fIcount\fP The size of the buffer
-.br
-\fIreadresult\fP The amount of characters read, or 0
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-nonzero if the event was handled, in which case readresult must be valid on exit
-.RE
-.PP
-
-.PP
-Definition at line 271 of file modules.cpp.
-.PP
-.nf
-271 { return 0; };
-.fi
-.PP
-.SS "int Module::OnRawSocketWrite (int fd, char * buffer, int count)\fC [virtual]\fP"
-.PP
-Called immediately before any write() operation on a user's socket in the core.
-.PP
-Because this event is a low level event no user information is associated with it. It is intended for use by modules which may wrap connections within another API such as SSL for example. return a non-zero result if you have handled the write operation, in which case the core will not call write().
-.PP
-\fBParameters:\fP
-.RS 4
-\fIfd\fP The file descriptor of the socket
-.br
-\fIbuffer\fP A char* buffer being written
-.br
-\fINumber\fP of characters to write
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-Number of characters actually written or 0 if you didn't handle the operation
-.RE
-.PP
-
-.PP
-Definition at line 269 of file modules.cpp.
-.PP
-.nf
-269 { return 0; };
-.fi
-.PP
-.SS "void Module::OnRehash (\fBstd::string\fP parameter)\fC [virtual]\fP"
-.PP
-Called on rehash.
-.PP
-This method is called prior to a /REHASH or when a SIGHUP is received from the operating system. You should use it to reload any files so that your module keeps in step with the rest of the application. If a parameter is given, the core has done nothing. The module receiving the event can decide if this parameter has any relevence to it.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIparameter\fP The (optional) parameter given to REHASH from the user.
-.RE
-.PP
-
-.PP
-Definition at line 226 of file modules.cpp.
-.PP
-.nf
-226 { }
-.fi
-.PP
-.SS "void Module::OnRemoteKill (\fBuserrec\fP * source, \fBuserrec\fP * dest, \fBstd::string\fP reason)\fC [virtual]\fP"
-.PP
-Called when an oper wants to disconnect a remote user via KILL.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user sending the KILL
-.br
-\fIdest\fP The user being killed
-.br
-\fIreason\fP The kill reason
-.RE
-.PP
-
-.PP
-Definition at line 274 of file modules.cpp.
-.PP
-.nf
-274 { };
-.fi
-.PP
-.SS "char * Module::OnRequest (\fBRequest\fP * request)\fC [virtual]\fP"
-.PP
-Called whenever a \fBRequest\fP class is sent to your module by another module.
-.PP
-Please see the documentation of \fBRequest::Send()\fP for further information. The \fBRequest\fP sent can always be assumed to be non-NULL, you should not change the request object or its data. Your method may return arbitary data in the char* result which the requesting module may be able to use for pre-determined purposes (e.g. the results of an SQL query, etc).
-.PP
-\fBParameters:\fP
-.RS 4
-\fIrequest\fP The \fBRequest\fP class being received
-.RE
-.PP
-
-.PP
-Definition at line 262 of file modules.cpp.
-.PP
-Referenced by Request::Send().
-.PP
-.nf
-262 { return NULL; };
-.fi
-.PP
-.SS "void Module::OnSendList (\fBuserrec\fP * user, \fBchanrec\fP * channel, char mode)\fC [virtual]\fP"
-.PP
-Called whenever a list is needed for a listmode.
-.PP
-For example, when a /MODE channel +b (without any other parameters) is called, if a module was handling +b this function would be called. The function can then output any lists it wishes to. Please note that all modules will see all mode characters to provide the ability to extend each other, so please only output a list if the mode character given matches the one(s) you want to handle.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user requesting the list
-.br
-\fIchannel\fP The channel the list is for
-.br
-\fImode\fP The listmode which a list is being requested on
-.RE
-.PP
-
-.PP
-Definition at line 246 of file modules.cpp.
-.PP
-.nf
-246 { };
-.fi
-.PP
-.SS "void Module::OnServerRaw (\fBstd::string\fP & raw, bool inbound, \fBuserrec\fP * user)\fC [virtual]\fP"
-.PP
-Called when a raw command is transmitted or received.
-.PP
-This method is the lowest level of handler available to a module. It will be called with raw data which is passing through a connected socket. If you wish, you may munge this data by changing the string parameter 'raw'. If you do this, after your function exits it will immediately be cut down to 510 characters plus a carriage return and linefeed. For INBOUND messages only (where inbound is set to true) the value of user will be the userrec of the connection sending the data. This is not possible for outbound data because the data may be being routed to multiple targets.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIraw\fP The raw string in RFC1459 format
-.br
-\fIinbound\fP A flag to indicate wether the data is coming into the daemon or going out to the user
-.br
-\fIuser\fP The user record sending the text, when inbound == true.
-.RE
-.PP
-
-.PP
-Definition at line 227 of file modules.cpp.
-.PP
-.nf
-227 { }
-.fi
-.PP
-.SS "void Module::OnStats (char symbol)\fC [virtual]\fP"
-.PP
-Called on all /STATS commands This method is triggered for all /STATS use, including stats symbols handled by the core.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsymbol\fP the symbol provided to /STATS
-.RE
-.PP
-
-.PP
-Definition at line 257 of file modules.cpp.
-.PP
-.nf
-257 { };
-.fi
-.PP
-.SS "void Module::OnSyncChannel (\fBchanrec\fP * chan, \fBModule\fP * proto, void * opaque)\fC [virtual]\fP"
-.PP
-Allows modules to synchronize data which relates to channels during a netburst.
-.PP
-When this function is called, it will be called from the module which implements the linking protocol. This currently is m_spanningtree.so. A pointer to this module is given in Module* proto, so that you may call its methods such as ProtoSendMode (see below). This function will be called for every user visible on your side of the burst, allowing you to for example set modes, etc. Do not use this call to synchronize data which you have stored using class \fBExtensible\fP -- There is a specialist function OnSyncUserMetaData and OnSyncChannelMetaData for this!
-.PP
-For a good example of how to use this function, please see src/modules/m_chanprotect.cpp
-.PP
-\fBParameters:\fP
-.RS 4
-\fIchan\fP The channel being syncronized
-.br
-\fIproto\fP A pointer to the module handling network protocol
-.br
-\fIopaque\fP An opaque pointer set by the protocol module, should not be modified!
-.RE
-.PP
-
-.PP
-Definition at line 279 of file modules.cpp.
-.PP
-.nf
-279 { };
-.fi
-.PP
-.SS "void Module::OnSyncChannelMetaData (\fBchanrec\fP * chan, \fBModule\fP * proto, void * opaque, \fBstd::string\fP extname)\fC [virtual]\fP"
-.PP
-Definition at line 281 of file modules.cpp.
-.PP
-.nf
-281 { };
-.fi
-.PP
-.SS "void Module::OnSyncUser (\fBuserrec\fP * user, \fBModule\fP * proto, void * opaque)\fC [virtual]\fP"
-.PP
-Allows modules to synchronize data which relates to users during a netburst.
-.PP
-When this function is called, it will be called from the module which implements the linking protocol. This currently is m_spanningtree.so. A pointer to this module is given in Module* proto, so that you may call its methods such as ProtoSendMode (see below). This function will be called for every user visible on your side of the burst, allowing you to for example set modes, etc. Do not use this call to synchronize data which you have stored using class \fBExtensible\fP -- There is a specialist function OnSyncUserMetaData and OnSyncChannelMetaData for this!
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user being syncronized
-.br
-\fIproto\fP A pointer to the module handling network protocol
-.br
-\fIopaque\fP An opaque pointer set by the protocol module, should not be modified!
-.RE
-.PP
-
-.PP
-Definition at line 278 of file modules.cpp.
-.PP
-.nf
-278 { };
-.fi
-.PP
-.SS "void Module::OnSyncUserMetaData (\fBuserrec\fP * user, \fBModule\fP * proto, void * opaque, \fBstd::string\fP extname)\fC [virtual]\fP"
-.PP
-Definition at line 282 of file modules.cpp.
-.PP
-.nf
-282 { };
-.fi
-.PP
-.SS "void Module::OnUnloadModule (\fBModule\fP * mod, \fBstd::string\fP name)\fC [virtual]\fP"
-.PP
-Called whenever a module is unloaded.
-.PP
-mod will contain a pointer to the module, and string will contain its name, for example m_widgets.so. This function is primary for dependency checking, your module may decide to enable some extra features if it sees that you have for example loaded 'm_killwidgets.so' with 'm_makewidgets.so'. It is highly recommended that modules do *NOT* bail if they cannot satisfy dependencies, but instead operate under reduced functionality, unless the dependency is absolutely neccessary (e.g. a module that extends the features of another module).
-.PP
-\fBParameters:\fP
-.RS 4
-\fImod\fP Pointer to the module being unloaded (still valid)
-.br
-\fIname\fP The filename of the module being unloaded
-.RE
-.PP
-
-.PP
-Definition at line 244 of file modules.cpp.
-.PP
-.nf
-244 { };
-.fi
-.PP
-.SS "void Module::OnUserConnect (\fBuserrec\fP * user)\fC [virtual]\fP"
-.PP
-Called when a user connects.
-.PP
-The details of the connecting user are available to you in the parameter userrec *user
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user who is connecting
-.RE
-.PP
-
-.PP
-Definition at line 221 of file modules.cpp.
-.PP
-.nf
-221 { }
-.fi
-.PP
-.SS "void Module::OnUserDisconnect (\fBuserrec\fP * user)\fC [virtual]\fP"
-.PP
-Called whenever a user's socket is closed.
-.PP
-The details of the exiting user are available to you in the parameter userrec *user This event is called for all users, registered or not, as a cleanup method for modules which might assign resources to user, such as dns lookups, objects and sockets.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user who is disconnecting
-.RE
-.PP
-
-.PP
-Definition at line 223 of file modules.cpp.
-.PP
-.nf
-223 { }
-.fi
-.PP
-.SS "void Module::OnUserInvite (\fBuserrec\fP * source, \fBuserrec\fP * dest, \fBchanrec\fP * channel)\fC [virtual]\fP"
-.PP
-Called after a user has been successfully invited to a channel.
-.PP
-You cannot prevent the invite from occuring using this function, to do that, use OnUserPreInvite instead.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user who is issuing the INVITE
-.br
-\fIdest\fP The user being invited
-.br
-\fIchannel\fP The channel the user is being invited to
-.RE
-.PP
-
-.PP
-Definition at line 275 of file modules.cpp.
-.PP
-.nf
-275 { };
-.fi
-.PP
-.SS "void Module::OnUserJoin (\fBuserrec\fP * user, \fBchanrec\fP * channel)\fC [virtual]\fP"
-.PP
-Called when a user joins a channel.
-.PP
-The details of the joining user are available to you in the parameter userrec *user, and the details of the channel they have joined is available in the variable chanrec *channel
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user who is joining
-.br
-\fIchannel\fP The channel being joined
-.RE
-.PP
-
-.PP
-Definition at line 224 of file modules.cpp.
-.PP
-.nf
-224 { }
-.fi
-.PP
-.SS "void Module::OnUserKick (\fBuserrec\fP * source, \fBuserrec\fP * user, \fBchanrec\fP * chan, \fBstd::string\fP reason)\fC [virtual]\fP"
-.PP
-Called whenever a user is kicked.
-.PP
-If this method is called, the kick is already underway and cannot be prevented, so to prevent a kick, please use \fBModule::OnUserPreKick\fP instead of this method.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user issuing the kick
-.br
-\fIuser\fP The user being kicked
-.br
-\fIchan\fP The channel the user is being kicked from
-.br
-\fIreason\fP The kick reason
-.RE
-.PP
-
-.PP
-Definition at line 251 of file modules.cpp.
-.PP
-.nf
-251 { };
-.fi
-.PP
-.SS "void Module::OnUserMessage (\fBuserrec\fP * user, void * dest, int target_type, \fBstd::string\fP text)\fC [virtual]\fP"
-.PP
-Called after any PRIVMSG sent from a user.
-.PP
-The dest variable contains a userrec* if target_type is TYPE_USER and a chanrec* if target_type is TYPE_CHANNEL.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user sending the message
-.br
-\fIdest\fP The target of the message
-.br
-\fItarget_type\fP The type of target (TYPE_USER or TYPE_CHANNEL)
-.br
-\fItext\fP the text being sent by the user
-.RE
-.PP
-
-.PP
-Definition at line 272 of file modules.cpp.
-.PP
-.nf
-272 { };
-.fi
-.PP
-.SS "void Module::OnUserNotice (\fBuserrec\fP * user, void * dest, int target_type, \fBstd::string\fP text)\fC [virtual]\fP"
-.PP
-Called after any NOTICE sent from a user.
-.PP
-The dest variable contains a userrec* if target_type is TYPE_USER and a chanrec* if target_type is TYPE_CHANNEL.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user sending the message
-.br
-\fIdest\fP The target of the message
-.br
-\fItarget_type\fP The type of target (TYPE_USER or TYPE_CHANNEL)
-.br
-\fItext\fP the text being sent by the user
-.RE
-.PP
-
-.PP
-Definition at line 273 of file modules.cpp.
-.PP
-.nf
-273 { };
-.fi
-.PP
-.SS "void Module::OnUserPart (\fBuserrec\fP * user, \fBchanrec\fP * channel)\fC [virtual]\fP"
-.PP
-Called when a user parts a channel.
-.PP
-The details of the leaving user are available to you in the parameter userrec *user, and the details of the channel they have left is available in the variable chanrec *channel
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user who is parting
-.br
-\fIchannel\fP The channel being parted
-.RE
-.PP
-
-.PP
-Definition at line 225 of file modules.cpp.
-.PP
-.nf
-225 { }
-.fi
-.PP
-.SS "void Module::OnUserPostNick (\fBuserrec\fP * user, \fBstd::string\fP oldnick)\fC [virtual]\fP"
-.PP
-Called after any nickchange, local or remote.
-.PP
-This can be used to track users after nickchanges have been applied. Please note that although you can see remote nickchanges through this function, you should NOT make any changes to the userrec if the user is a remote user as this may cause a desnyc. check user->server before taking any action (including returning nonzero from the method). Because this method is called after the nickchange is taken place, no return values are possible to indicate forbidding of the nick change. Use OnUserPreNick for this.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user changing their nick
-.br
-\fIoldnick\fP The old nickname of the user before the nickchange
-.RE
-.PP
-
-.PP
-Definition at line 239 of file modules.cpp.
-.PP
-.nf
-239 { };
-.fi
-.PP
-.SS "int Module::OnUserPreInvite (\fBuserrec\fP * source, \fBuserrec\fP * dest, \fBchanrec\fP * channel)\fC [virtual]\fP"
-.PP
-Called whenever a user is about to invite another user into a channel, before any processing is done.
-.PP
-Returning 1 from this function stops the process immediately, causing no output to be sent to the user by the core. If you do this you must produce your own numerics, notices etc. This is useful for modules which may want to filter invites to channels.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user who is issuing the INVITE
-.br
-\fIdest\fP The user being invited
-.br
-\fIchannel\fP The channel the user is being invited to
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to deny the invite, 0 to allow
-.RE
-.PP
-
-.PP
-Definition at line 235 of file modules.cpp.
-.PP
-.nf
-235 { return 0; };
-.fi
-.PP
-.SS "int Module::OnUserPreJoin (\fBuserrec\fP * user, \fBchanrec\fP * chan, const char * cname)\fC [virtual]\fP"
-.PP
-Called whenever a user is about to join a channel, before any processing is done.
-.PP
-Returning a value of 1 from this function stops the process immediately, causing no output to be sent to the user by the core. If you do this you must produce your own numerics, notices etc. This is useful for modules which may want to mimic +b, +k, +l etc. Returning -1 from this function forces the join to be allowed, bypassing restrictions such as banlists, invite, keys etc.
-.PP
-IMPORTANT NOTE!
-.PP
-If the user joins a NEW channel which does not exist yet, OnUserPreJoin will be called BEFORE the channel record is created. This will cause chanrec* chan to be NULL. There is very little you can do in form of processing on the actual channel record at this point, however the channel NAME will still be passed in char* cname, so that you could for example implement a channel blacklist or whitelist, etc.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user joining the channel
-.br
-\fIcname\fP The channel name being joined
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 To prevent the join, 0 to allow it.
-.RE
-.PP
-
-.PP
-Definition at line 228 of file modules.cpp.
-.PP
-.nf
-228 { return 0; }
-.fi
-.PP
-.SS "int Module::OnUserPreKick (\fBuserrec\fP * source, \fBuserrec\fP * user, \fBchanrec\fP * chan, \fBstd::string\fP reason)\fC [virtual]\fP"
-.PP
-Called whenever a user is about to be kicked.
-.PP
-Returning a value of 1 from this function stops the process immediately, causing no output to be sent to the user by the core. If you do this you must produce your own numerics, notices etc.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user issuing the kick
-.br
-\fIuser\fP The user being kicked
-.br
-\fIchan\fP The channel the user is being kicked from
-.br
-\fIreason\fP The kick reason
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to prevent the kick, 0 to allow it
-.RE
-.PP
-
-.PP
-Definition at line 250 of file modules.cpp.
-.PP
-.nf
-250 { return 0; };
-.fi
-.PP
-.SS "int Module::OnUserPreMessage (\fBuserrec\fP * user, void * dest, int target_type, \fBstd::string\fP & text)\fC [virtual]\fP"
-.PP
-Called whenever a user is about to PRIVMSG A user or a channel, before any processing is done.
-.PP
-Returning any nonzero value from this function stops the process immediately, causing no output to be sent to the user by the core. If you do this you must produce your own numerics, notices etc. This is useful for modules which may want to filter or redirect messages. target_type can be one of TYPE_USER or TYPE_CHANNEL. If the target_type value is a user, you must cast dest to a userrec* otherwise you must cast it to a chanrec*, this is the details of where the message is destined to be sent.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user sending the message
-.br
-\fIdest\fP The target of the message (chanrec* or userrec*)
-.br
-\fItarget_type\fP The type of target (TYPE_USER or TYPE_CHANNEL)
-.br
-\fItext\fP Changeable text being sent by the user
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to deny the NOTICE, 0 to allow it
-.RE
-.PP
-
-.PP
-Definition at line 236 of file modules.cpp.
-.PP
-.nf
-236 { return 0; };
-.fi
-.PP
-.SS "int Module::OnUserPreNick (\fBuserrec\fP * user, \fBstd::string\fP newnick)\fC [virtual]\fP"
-.PP
-Called before any nickchange, local or remote.
-.PP
-This can be used to implement Q-lines etc. Please note that although you can see remote nickchanges through this function, you should NOT make any changes to the userrec if the user is a remote user as this may cause a desnyc. check user->server before taking any action (including returning nonzero from the method). If your method returns nonzero, the nickchange is silently forbidden, and it is down to your module to generate some meaninful output.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The username changing their nick
-.br
-\fInewnick\fP Their new nickname
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to deny the change, 0 to allow
-.RE
-.PP
-
-.PP
-Definition at line 238 of file modules.cpp.
-.PP
-.nf
-238 { return 0; };
-.fi
-.PP
-.SS "int Module::OnUserPreNotice (\fBuserrec\fP * user, void * dest, int target_type, \fBstd::string\fP & text)\fC [virtual]\fP"
-.PP
-Called whenever a user is about to NOTICE A user or a channel, before any processing is done.
-.PP
-Returning any nonzero value from this function stops the process immediately, causing no output to be sent to the user by the core. If you do this you must produce your own numerics, notices etc. This is useful for modules which may want to filter or redirect messages. target_type can be one of TYPE_USER or TYPE_CHANNEL. If the target_type value is a user, you must cast dest to a userrec* otherwise you must cast it to a chanrec*, this is the details of where the message is destined to be sent. You may alter the message text as you wish before relinquishing control to the next module in the chain, and if no other modules block the text this altered form of the text will be sent out to the user and possibly to other servers.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user sending the message
-.br
-\fIdest\fP The target of the message (chanrec* or userrec*)
-.br
-\fItarget_type\fP The type of target (TYPE_USER or TYPE_CHANNEL)
-.br
-\fItext\fP Changeable text being sent by the user
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 to deny the NOTICE, 0 to allow it
-.RE
-.PP
-
-.PP
-Definition at line 237 of file modules.cpp.
-.PP
-.nf
-237 { return 0; };
-.fi
-.PP
-.SS "void Module::OnUserQuit (\fBuserrec\fP * user, \fBstd::string\fP message)\fC [virtual]\fP"
-.PP
-Called when a user quits.
-.PP
-The details of the exiting user are available to you in the parameter userrec *user This event is only called when the user is fully registered when they quit. To catch raw disconnections, use the OnUserDisconnect method.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user who is quitting
-.br
-\fImessage\fP The user's quit message
-.RE
-.PP
-
-.PP
-Definition at line 222 of file modules.cpp.
-.PP
-.nf
-222 { }
-.fi
-.PP
-.SS "void Module::OnUserRegister (\fBuserrec\fP * user)\fC [virtual]\fP"
-.PP
-Called whenever a user is about to register their connection (e.g.
-.PP
-before the user is sent the MOTD etc). Modules can use this method if they are performing a function which must be done before the actual connection is completed (e.g. ident lookups, dnsbl lookups, etc). Note that you should NOT delete the user record here by causing a disconnection! Use OnUserConnect for that instead.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user registering
-.RE
-.PP
-
-.PP
-Definition at line 249 of file modules.cpp.
-.PP
-.nf
-249 { };
-.fi
-.PP
-.SS "void Module::OnWallops (\fBuserrec\fP * user, \fBstd::string\fP text)\fC [virtual]\fP"
-.PP
-Called after every WALLOPS command.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIuser\fP The user sending the WALLOPS
-.br
-\fItext\fP The content of the WALLOPS message
-.RE
-.PP
-
-.PP
-Definition at line 285 of file modules.cpp.
-.PP
-.nf
-285 { };
-.fi
-.PP
-.SS "void Module::OnWhois (\fBuserrec\fP * source, \fBuserrec\fP * dest)\fC [virtual]\fP"
-.PP
-Called whenever a /WHOIS is performed on a local user.
-.PP
-The source parameter contains the details of the user who issued the WHOIS command, and the dest parameter contains the information of the user they are whoising.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsource\fP The user issuing the WHOIS command
-.br
-\fIdest\fP The user who is being WHOISed
-.RE
-.PP
-
-.PP
-Definition at line 234 of file modules.cpp.
-.PP
-.nf
-234 { };
-.fi
-.PP
-.SS "void Module::ProtoSendMetaData (void * opaque, int target_type, void * target, \fBstd::string\fP extname, \fBstd::string\fP extdata)\fC [virtual]\fP"
-.PP
-Implemented by modules which provide the ability to link servers.
-.PP
-These modules will implement this method, which allows metadata (extra data added to user and channel records using class \fBExtensible\fP, \fBExtensible::Extend\fP, etc) to be sent to other servers on a netburst and decoded at the other end by the same module on a different server.
-.PP
-More documentation to follow soon. Please see src/modules/m_swhois.cpp for example of how to use this function.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIopaque\fP An opaque pointer set by the protocol module, should not be modified!
-.br
-\fItarget_type\fP The type of item to decode data for, TYPE_USER or TYPE_CHANNEL
-.br
-\fItarget\fP The chanrec* or userrec* that metadata should be sent for
-.br
-\fIextname\fP The extension name to send metadata for
-.br
-\fIextdata\fP Encoded data for this extension name, which will be encoded at the oppsite end by an identical module using OnDecodeMetaData
-.RE
-.PP
-
-.PP
-Definition at line 284 of file modules.cpp.
-.PP
-.nf
-284 { };
-.fi
-.PP
-.SS "void Module::ProtoSendMode (void * opaque, int target_type, void * target, \fBstd::string\fP modeline)\fC [virtual]\fP"
-.PP
-Implemented by modules which provide the ability to link servers.
-.PP
-These modules will implement this method, which allows transparent sending of servermodes down the network link as a broadcast, without a module calling it having to know the format of the MODE command before the actual mode string.
-.PP
-More documentation to follow soon. Please see src/modules/m_chanprotect.cpp for examples of how to use this function.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIopaque\fP An opaque pointer set by the protocol module, should not be modified!
-.br
-\fItarget_type\fP The type of item to decode data for, TYPE_USER or TYPE_CHANNEL
-.br
-\fItarget\fP The chanrec* or userrec* that modes should be sent for
-.br
-\fImodeline\fP The modes and parameters to be sent
-.RE
-.PP
-
-.PP
-Definition at line 280 of file modules.cpp.
-.PP
-.nf
-280 { };
-.fi
-.PP
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/ModuleFactory.3 b/docs/man/man3/ModuleFactory.3
deleted file mode 100644
index 5ace1c193..000000000
--- a/docs/man/man3/ModuleFactory.3
+++ /dev/null
@@ -1,64 +0,0 @@
-.TH "ModuleFactory" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ModuleFactory \- Instantiates classes inherited from \fBModule\fP This class creates a class inherited from type \fBModule\fP, using new.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <modules.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBModuleFactory\fP ()"
-.br
-.ti -1c
-.RI "virtual \fB~ModuleFactory\fP ()"
-.br
-.ti -1c
-.RI "virtual \fBModule\fP * \fBCreateModule\fP (\fBServer\fP *Me)=0"
-.br
-.RI "\fICreates a new module. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-Instantiates classes inherited from \fBModule\fP This class creates a class inherited from type \fBModule\fP, using new.
-
-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 1694 of file modules.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "ModuleFactory::ModuleFactory ()\fC [inline]\fP"
-.PP
-Definition at line 1697 of file modules.h.
-.PP
-.nf
-1697 { }
-.fi
-.PP
-.SS "virtual ModuleFactory::~ModuleFactory ()\fC [inline, virtual]\fP"
-.PP
-Definition at line 1698 of file modules.h.
-.PP
-.nf
-1698 { }
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "virtual \fBModule\fP* ModuleFactory::CreateModule (\fBServer\fP * Me)\fC [pure virtual]\fP"
-.PP
-Creates a new module.
-.PP
-Your inherited class of ModuleFactory must return a pointer to your \fBModule\fP class using this method.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/ModuleMessage.3 b/docs/man/man3/ModuleMessage.3
deleted file mode 100644
index 9f0eeecfd..000000000
--- a/docs/man/man3/ModuleMessage.3
+++ /dev/null
@@ -1,53 +0,0 @@
-.TH "ModuleMessage" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ModuleMessage \- The ModuleMessage class is the base class of \fBRequest\fP and \fBEvent\fP This class is used to represent a basic data structure which is passed between modules for safe inter-module communications.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <modules.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-Inherited by \fBEvent\fP, and \fBRequest\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "virtual char * \fBSend\fP ()=0"
-.br
-.RI "\fIThis class is pure virtual and must be inherited. \fP"
-.ti -1c
-.RI "virtual \fB~ModuleMessage\fP ()"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-The ModuleMessage class is the base class of \fBRequest\fP and \fBEvent\fP This class is used to represent a basic data structure which is passed between modules for safe inter-module communications.
-.PP
-Definition at line 161 of file modules.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "virtual ModuleMessage::~ModuleMessage ()\fC [inline, virtual]\fP"
-.PP
-Definition at line 167 of file modules.h.
-.PP
-.nf
-167 {};
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "virtual char* ModuleMessage::Send ()\fC [pure virtual]\fP"
-.PP
-This class is pure virtual and must be inherited.
-.PP
-Implemented in \fBRequest\fP, and \fBEvent\fP.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/QLine.3 b/docs/man/man3/QLine.3
deleted file mode 100644
index 61bd947ae..000000000
--- a/docs/man/man3/QLine.3
+++ /dev/null
@@ -1,51 +0,0 @@
-.TH "QLine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-QLine \- QLine class.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <xline.h>\fP
-.PP
-Inherits \fBXLine\fP.
-.PP
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBnick\fP [64]"
-.br
-.RI "\fINickname to match against. \fP"
-.ti -1c
-.RI "bool \fBis_global\fP"
-.br
-.RI "\fISet if this is a global Z:line (e.g. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-QLine class.
-.PP
-Definition at line 113 of file xline.h.
-.SH "Member Data Documentation"
-.PP
-.SS "bool \fBQLine::is_global\fP"
-.PP
-Set if this is a global Z:line (e.g.
-.PP
-it came from another server)
-.PP
-Definition at line 123 of file xline.h.
-.SS "char \fBQLine::nick\fP[64]"
-.PP
-Nickname to match against.
-.PP
-May contain wildcards.
-.PP
-Definition at line 119 of file xline.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/Request.3 b/docs/man/man3/Request.3
deleted file mode 100644
index b504563a7..000000000
--- a/docs/man/man3/Request.3
+++ /dev/null
@@ -1,169 +0,0 @@
-.TH "Request" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Request \- The Request class is a unicast message directed at a given module.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <modules.h>\fP
-.PP
-Inherits \fBModuleMessage\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBRequest\fP (char *anydata, \fBModule\fP *src, \fBModule\fP *dst)"
-.br
-.RI "\fICreate a new Request. \fP"
-.ti -1c
-.RI "char * \fBGetData\fP ()"
-.br
-.RI "\fIFetch the Request data. \fP"
-.ti -1c
-.RI "\fBModule\fP * \fBGetSource\fP ()"
-.br
-.RI "\fIFetch the request source. \fP"
-.ti -1c
-.RI "\fBModule\fP * \fBGetDest\fP ()"
-.br
-.RI "\fIFetch the request destination (should be 'this' in the receiving module). \fP"
-.ti -1c
-.RI "char * \fBSend\fP ()"
-.br
-.RI "\fISend the Request. \fP"
-.in -1c
-.SS "Protected Attributes"
-
-.in +1c
-.ti -1c
-.RI "char * \fBdata\fP"
-.br
-.RI "\fIThis member holds a pointer to arbitary data set by the emitter of the message. \fP"
-.ti -1c
-.RI "\fBModule\fP * \fBsource\fP"
-.br
-.RI "\fIThis is a pointer to the sender of the message, which can be used to directly trigger events, or to create a reply. \fP"
-.ti -1c
-.RI "\fBModule\fP * \fBdest\fP"
-.br
-.RI "\fIThe single destination of the Request. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-The Request class is a unicast message directed at a given module.
-
-When this class is properly instantiated it may be sent to a module using the \fBSend()\fP method, which will call the given module's OnRequest method with this class as its parameter.
-.PP
-Definition at line 175 of file modules.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "Request::Request (char * anydata, \fBModule\fP * src, \fBModule\fP * dst)"
-.PP
-Create a new Request.
-.PP
-Definition at line 164 of file modules.cpp.
-.PP
-.nf
-164 : data(anydata), source(src), dest(dst) { };
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "char * Request::GetData ()"
-.PP
-Fetch the Request data.
-.PP
-Definition at line 166 of file modules.cpp.
-.PP
-References data.
-.PP
-.nf
-167 {
-168 return this->data;
-169 }
-.fi
-.PP
-.SS "\fBModule\fP * Request::GetDest ()"
-.PP
-Fetch the request destination (should be 'this' in the receiving module).
-.PP
-Definition at line 176 of file modules.cpp.
-.PP
-References dest.
-.PP
-.nf
-177 {
-178 return this->dest;
-179 }
-.fi
-.PP
-.SS "\fBModule\fP * Request::GetSource ()"
-.PP
-Fetch the request source.
-.PP
-Definition at line 171 of file modules.cpp.
-.PP
-References source.
-.PP
-.nf
-172 {
-173 return this->source;
-174 }
-.fi
-.PP
-.SS "char * Request::Send ()\fC [virtual]\fP"
-.PP
-Send the Request.
-.PP
-Upon returning the result will be arbitary data returned by the module you sent the request to. It is up to your module to know what this data is and how to deal with it.
-.PP
-Implements \fBModuleMessage\fP.
-.PP
-Definition at line 181 of file modules.cpp.
-.PP
-References dest, and Module::OnRequest().
-.PP
-.nf
-182 {
-183 if (this->dest)
-184 {
-185 return dest->OnRequest(this);
-186 }
-187 else
-188 {
-189 return NULL;
-190 }
-191 }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "char* \fBRequest::data\fP\fC [protected]\fP"
-.PP
-This member holds a pointer to arbitary data set by the emitter of the message.
-.PP
-Definition at line 180 of file modules.h.
-.PP
-Referenced by GetData().
-.SS "\fBModule\fP* \fBRequest::dest\fP\fC [protected]\fP"
-.PP
-The single destination of the Request.
-.PP
-Definition at line 187 of file modules.h.
-.PP
-Referenced by GetDest(), and Send().
-.SS "\fBModule\fP* \fBRequest::source\fP\fC [protected]\fP"
-.PP
-This is a pointer to the sender of the message, which can be used to directly trigger events, or to create a reply.
-.PP
-Definition at line 184 of file modules.h.
-.PP
-Referenced by GetSource().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/Server.3 b/docs/man/man3/Server.3
deleted file mode 100644
index bc6962cac..000000000
--- a/docs/man/man3/Server.3
+++ /dev/null
@@ -1,1357 +0,0 @@
-.TH "Server" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Server \- 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.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <modules.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBServer\fP ()"
-.br
-.RI "\fIDefault constructor. \fP"
-.ti -1c
-.RI "virtual \fB~Server\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"
-.ti -1c
-.RI "\fBstd::string\fP \fBGetVersion\fP ()"
-.br
-.RI "\fIReturns the version string of this server. \fP"
-.ti -1c
-.RI "virtual void \fBLog\fP (int level, \fBstd::string\fP s)"
-.br
-.RI "\fIWrites a log string. \fP"
-.ti -1c
-.RI "virtual void \fBSend\fP (int Socket, \fBstd::string\fP s)"
-.br
-.RI "\fISends a line of text down a TCP/IP socket. \fP"
-.ti -1c
-.RI "virtual void \fBSendServ\fP (int Socket, \fBstd::string\fP s)"
-.br
-.RI "\fISends text from the server to a socket. \fP"
-.ti -1c
-.RI "virtual void \fBSendChannelServerNotice\fP (\fBstd::string\fP ServName, \fBchanrec\fP *Channel, \fBstd::string\fP text)"
-.br
-.RI "\fIWrites text to a channel, but from a server, including all. \fP"
-.ti -1c
-.RI "virtual void \fBSendFrom\fP (int Socket, \fBuserrec\fP *User, \fBstd::string\fP s)"
-.br
-.RI "\fISends text from a user to a socket. \fP"
-.ti -1c
-.RI "virtual void \fBSendTo\fP (\fBuserrec\fP *Source, \fBuserrec\fP *Dest, \fBstd::string\fP s)"
-.br
-.RI "\fISends text from a user to another user. \fP"
-.ti -1c
-.RI "virtual void \fBSendChannel\fP (\fBuserrec\fP *User, \fBchanrec\fP *Channel, \fBstd::string\fP s, bool IncludeSender)"
-.br
-.RI "\fISends text from a user to a channel (mulicast). \fP"
-.ti -1c
-.RI "virtual bool \fBCommonChannels\fP (\fBuserrec\fP *u1, \fBuserrec\fP *u2)"
-.br
-.RI "\fIReturns true if two users share a common channel. \fP"
-.ti -1c
-.RI "virtual void \fBSendCommon\fP (\fBuserrec\fP *User, \fBstd::string\fP text, bool IncludeSender)"
-.br
-.RI "\fISends text from a user to one or more channels (mulicast). \fP"
-.ti -1c
-.RI "virtual void \fBSendWallops\fP (\fBuserrec\fP *User, \fBstd::string\fP text)"
-.br
-.RI "\fISends a WALLOPS message. \fP"
-.ti -1c
-.RI "virtual bool \fBIsNick\fP (\fBstd::string\fP nick)"
-.br
-.RI "\fIReturns true if a nick is valid. \fP"
-.ti -1c
-.RI "virtual int \fBCountUsers\fP (\fBchanrec\fP *c)"
-.br
-.RI "\fIReturns a count of the number of users on a channel. \fP"
-.ti -1c
-.RI "virtual \fBuserrec\fP * \fBFindNick\fP (\fBstd::string\fP nick)"
-.br
-.RI "\fIAttempts to look up a nick and return a pointer to it. \fP"
-.ti -1c
-.RI "virtual \fBuserrec\fP * \fBFindDescriptor\fP (int socket)"
-.br
-.RI "\fIAttempts to look up a nick using the file descriptor associated with that nick. \fP"
-.ti -1c
-.RI "virtual \fBchanrec\fP * \fBFindChannel\fP (\fBstd::string\fP channel)"
-.br
-.RI "\fIAttempts to look up a channel and return a pointer to it. \fP"
-.ti -1c
-.RI "virtual \fBstd::string\fP \fBChanMode\fP (\fBuserrec\fP *User, \fBchanrec\fP *Chan)"
-.br
-.RI "\fIAttempts to look up a user's privilages on a channel. \fP"
-.ti -1c
-.RI "virtual bool \fBIsOnChannel\fP (\fBuserrec\fP *User, \fBchanrec\fP *Chan)"
-.br
-.RI "\fIChecks if a user is on a channel. \fP"
-.ti -1c
-.RI "virtual \fBstd::string\fP \fBGetServerName\fP ()"
-.br
-.RI "\fIReturns the server name of the server where the module is loaded. \fP"
-.ti -1c
-.RI "virtual \fBstd::string\fP \fBGetNetworkName\fP ()"
-.br
-.RI "\fIReturns the network name, global to all linked servers. \fP"
-.ti -1c
-.RI "virtual \fBstd::string\fP \fBGetServerDescription\fP ()"
-.br
-.RI "\fIReturns the server description string of the local server. \fP"
-.ti -1c
-.RI "virtual \fBAdmin\fP \fBGetAdmin\fP ()"
-.br
-.RI "\fIReturns the information of the server as returned by the /ADMIN command. \fP"
-.ti -1c
-.RI "virtual bool \fBAddExtendedMode\fP (char modechar, int type, bool requires_oper, int params_when_on, int params_when_off)"
-.br
-.RI "\fIAdds an extended mode letter which is parsed by a module. \fP"
-.ti -1c
-.RI "virtual bool \fBAddExtendedListMode\fP (char modechar)"
-.br
-.RI "\fIAdds an extended mode letter which is parsed by a module and handled in a list fashion. \fP"
-.ti -1c
-.RI "virtual void \fBAddCommand\fP (\fBcommand_t\fP *f)"
-.br
-.RI "\fIAdds a command to the command table. \fP"
-.ti -1c
-.RI "virtual void \fBSendMode\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
-.br
-.RI "\fISends a servermode. \fP"
-.ti -1c
-.RI "virtual void \fBSendToModeMask\fP (\fBstd::string\fP modes, int flags, \fBstd::string\fP text)"
-.br
-.RI "\fISends to all users matching a mode mask You must specify one or more usermodes as the first parameter. \fP"
-.ti -1c
-.RI "virtual \fBchanrec\fP * \fBJoinUserToChannel\fP (\fBuserrec\fP *user, \fBstd::string\fP cname, \fBstd::string\fP key)"
-.br
-.RI "\fIForces a user to join a channel. \fP"
-.ti -1c
-.RI "virtual \fBchanrec\fP * \fBPartUserFromChannel\fP (\fBuserrec\fP *user, \fBstd::string\fP cname, \fBstd::string\fP reason)"
-.br
-.RI "\fIForces a user to part a channel. \fP"
-.ti -1c
-.RI "virtual void \fBChangeUserNick\fP (\fBuserrec\fP *user, \fBstd::string\fP nickname)"
-.br
-.RI "\fIForces a user nickchange. \fP"
-.ti -1c
-.RI "virtual void \fBQuitUser\fP (\fBuserrec\fP *user, \fBstd::string\fP reason)"
-.br
-.RI "\fIForces a user to quit with the specified reason. \fP"
-.ti -1c
-.RI "virtual bool \fBMatchText\fP (\fBstd::string\fP sliteral, \fBstd::string\fP spattern)"
-.br
-.RI "\fIMatches text against a glob pattern. \fP"
-.ti -1c
-.RI "virtual void \fBCallCommandHandler\fP (\fBstd::string\fP commandname, char **parameters, int pcnt, \fBuserrec\fP *user)"
-.br
-.RI "\fICalls the handler for a command, either implemented by the core or by another module. \fP"
-.ti -1c
-.RI "virtual bool \fBIsValidModuleCommand\fP (\fBstd::string\fP commandname, int pcnt, \fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "virtual void \fBChangeHost\fP (\fBuserrec\fP *user, \fBstd::string\fP host)"
-.br
-.RI "\fIChange displayed hostname of a user. \fP"
-.ti -1c
-.RI "virtual void \fBChangeGECOS\fP (\fBuserrec\fP *user, \fBstd::string\fP gecos)"
-.br
-.RI "\fIChange GECOS (fullname) of a user. \fP"
-.ti -1c
-.RI "virtual bool \fBIsUlined\fP (\fBstd::string\fP server)"
-.br
-.RI "\fIReturns true if the servername you give is ulined. \fP"
-.ti -1c
-.RI "virtual \fBchanuserlist\fP \fBGetUsers\fP (\fBchanrec\fP *chan)"
-.br
-.RI "\fIFetches the userlist of a channel. \fP"
-.ti -1c
-.RI "virtual bool \fBUserToPseudo\fP (\fBuserrec\fP *user, \fBstd::string\fP message)"
-.br
-.RI "\fIRemove a user's connection to the irc server, but leave their client in existence in the user hash. \fP"
-.ti -1c
-.RI "virtual bool \fBPseudoToUser\fP (\fBuserrec\fP *alive, \fBuserrec\fP *zombie, \fBstd::string\fP message)"
-.br
-.RI "\fIThis user takes one user, and switches their file descriptor with another user, so that one user 'becomes' the other. \fP"
-.ti -1c
-.RI "virtual void \fBAddGLine\fP (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)"
-.br
-.RI "\fIAdds a G-line The G-line is propogated to all of the servers in the mesh and enforced as soon as it is added. \fP"
-.ti -1c
-.RI "virtual void \fBAddQLine\fP (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP nickname)"
-.br
-.RI "\fIAdds a Q-line The Q-line is propogated to all of the servers in the mesh and enforced as soon as it is added. \fP"
-.ti -1c
-.RI "virtual void \fBAddZLine\fP (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP ipaddr)"
-.br
-.RI "\fIAdds a Z-line The Z-line is propogated to all of the servers in the mesh and enforced as soon as it is added. \fP"
-.ti -1c
-.RI "virtual void \fBAddKLine\fP (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)"
-.br
-.RI "\fIAdds a K-line The K-line is enforced as soon as it is added. \fP"
-.ti -1c
-.RI "virtual void \fBAddELine\fP (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)"
-.br
-.RI "\fIAdds a E-line The E-line is enforced as soon as it is added. \fP"
-.ti -1c
-.RI "virtual bool \fBDelGLine\fP (\fBstd::string\fP hostmask)"
-.br
-.RI "\fIDeletes a G-Line from all servers on the mesh. \fP"
-.ti -1c
-.RI "virtual bool \fBDelQLine\fP (\fBstd::string\fP nickname)"
-.br
-.RI "\fIDeletes a Q-Line from all servers on the mesh. \fP"
-.ti -1c
-.RI "virtual bool \fBDelZLine\fP (\fBstd::string\fP ipaddr)"
-.br
-.RI "\fIDeletes a Z-Line from all servers on the mesh. \fP"
-.ti -1c
-.RI "virtual bool \fBDelKLine\fP (\fBstd::string\fP hostmask)"
-.br
-.RI "\fIDeletes a local K-Line. \fP"
-.ti -1c
-.RI "virtual bool \fBDelELine\fP (\fBstd::string\fP hostmask)"
-.br
-.RI "\fIDeletes a local E-Line. \fP"
-.ti -1c
-.RI "virtual long \fBCalcDuration\fP (\fBstd::string\fP duration)"
-.br
-.RI "\fICalculates a duration This method will take a string containing a formatted duration (e.g. \fP"
-.ti -1c
-.RI "virtual bool \fBIsValidMask\fP (\fBstd::string\fP mask)"
-.br
-.RI "\fIReturns true if a nick!ident string is correctly formatted, false if otherwise. \fP"
-.ti -1c
-.RI "virtual \fBModule\fP * \fBFindModule\fP (\fBstd::string\fP name)"
-.br
-.RI "\fIThis function finds a module by name. \fP"
-.ti -1c
-.RI "virtual void \fBAddSocket\fP (\fBInspSocket\fP *sock)"
-.br
-.RI "\fIAdds a class derived from \fBInspSocket\fP to the server's socket engine. \fP"
-.ti -1c
-.RI "virtual void \fBDelSocket\fP (\fBInspSocket\fP *sock)"
-.br
-.RI "\fIDeletes a class derived from \fBInspSocket\fP from the server's socket engine. \fP"
-.ti -1c
-.RI "virtual void \fBRehashServer\fP ()"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-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.
-
-All modules should instantiate at least one copy of this class, and use its member functions to perform their tasks.
-.PP
-Definition at line 1114 of file modules.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "Server::Server ()"
-.PP
-Default constructor.
-.PP
-Creates a Server object.
-.PP
-Definition at line 304 of file modules.cpp.
-.PP
-.nf
-305 {
-306 }
-.fi
-.PP
-.SS "Server::~Server ()\fC [virtual]\fP"
-.PP
-Default destructor.
-.PP
-Destroys a Server object.
-.PP
-Definition at line 308 of file modules.cpp.
-.PP
-.nf
-309 {
-310 }
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "void Server::AddCommand (\fBcommand_t\fP * f)\fC [virtual]\fP"
-.PP
-Adds a command to the command table.
-.PP
-This allows modules to add extra commands into the command table. You must place a function within your module which is is of type handlerfunc:
-.PP
-typedef void (handlerfunc) (char**, int, userrec*); ... void handle_kill(char **parameters, int pcnt, userrec *user)
-.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 415 of file modules.cpp.
-.PP
-References InspIRCd::Parser.
-.PP
-.nf
-416 {
-417 ServerInstance->Parser->CreateCommand(f);
-418 }
-.fi
-.PP
-.SS "void Server::AddELine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
-.PP
-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 659 of file modules.cpp.
-.PP
-References add_eline().
-.PP
-.nf
-660 {
-661 add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-662 }
-.fi
-.PP
-.SS "bool Server::AddExtendedListMode (char modechar)\fC [virtual]\fP"
-.PP
-Adds an extended mode letter which is parsed by a module and handled in a list fashion.
-.PP
-This call is used to implement modes like +q and +a. The characteristics of these modes are as follows:
-.PP
-(1) They are ALWAYS on channels, not on users, therefore their type is MT_CHANNEL
-.PP
-(2) They always take exactly one parameter when being added or removed
-.PP
-(3) They can be set multiple times, usually on users in channels
-.PP
-(4) The mode and its parameter are NOT stored in the channels modes structure
-.PP
-It is down to the module handling the mode to maintain state and determine what 'items' (e.g. users, or a banlist) have the mode set on them, and process the modes at the correct times, e.g. during access checks on channels, etc. When the extended mode is triggered the OnExtendedMode method will be triggered as above. Note that the target you are given will be a channel, if for example your mode is set 'on a user' (in for example +a) you must use \fBServer::Find\fP 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 583 of file modules.cpp.
-.PP
-References DoAddExtendedMode(), ModeMakeList(), and MT_CHANNEL.
-.PP
-.nf
-584 {
-585 bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1);
-586 if (res)
-587 ModeMakeList(modechar);
-588 return res;
-589 }
-.fi
-.PP
-.SS "bool Server::AddExtendedMode (char modechar, int type, bool requires_oper, int params_when_on, int params_when_off)\fC [virtual]\fP"
-.PP
-Adds an extended mode letter which is parsed by a module.
-.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 555 of file modules.cpp.
-.PP
-References DEBUG, DoAddExtendedMode(), log(), MT_CLIENT, and MT_SERVER.
-.PP
-.nf
-556 {
-557 if (((modechar >= 'A') && (modechar <= 'Z')) || ((modechar >= 'a') && (modechar <= 'z')))
-558 {
-559 if (type == MT_SERVER)
-560 {
-561 log(DEBUG,'*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion');
-562 return false;
-563 }
-564 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT))
-565 {
-566 log(DEBUG,'*** API ERROR *** Parameters on MT_CLIENT modes are not supported');
-567 return false;
-568 }
-569 if ((params_when_on>1) || (params_when_off>1))
-570 {
-571 log(DEBUG,'*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported');
-572 return false;
-573 }
-574 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off);
-575 }
-576 else
-577 {
-578 log(DEBUG,'*** API ERROR *** Muppet modechar detected.');
-579 }
-580 return false;
-581 }
-.fi
-.PP
-.SS "void Server::AddGLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
-.PP
-Adds a G-line The G-line is propogated to all of the servers in the mesh and enforced as soon as it is added.
-.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 639 of file modules.cpp.
-.PP
-References add_gline().
-.PP
-.nf
-640 {
-641 add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-642 }
-.fi
-.PP
-.SS "void Server::AddKLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
-.PP
-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 654 of file modules.cpp.
-.PP
-References add_kline().
-.PP
-.nf
-655 {
-656 add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-657 }
-.fi
-.PP
-.SS "void Server::AddQLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP nickname)\fC [virtual]\fP"
-.PP
-Adds a Q-line The Q-line is propogated to all of the servers in the mesh and enforced as soon as it is added.
-.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 644 of file modules.cpp.
-.PP
-References add_qline().
-.PP
-.nf
-645 {
-646 add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str());
-647 }
-.fi
-.PP
-.SS "void Server::AddSocket (\fBInspSocket\fP * sock)\fC [virtual]\fP"
-.PP
-Adds a class derived from \fBInspSocket\fP to the server's socket engine.
-.PP
-Definition at line 312 of file modules.cpp.
-.PP
-References module_sockets.
-.PP
-.nf
-313 {
-314 module_sockets.push_back(sock);
-315 }
-.fi
-.PP
-.SS "void Server::AddZLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP ipaddr)\fC [virtual]\fP"
-.PP
-Adds a Z-line The Z-line is propogated to all of the servers in the mesh and enforced as soon as it is added.
-.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 649 of file modules.cpp.
-.PP
-References add_zline().
-.PP
-.nf
-650 {
-651 add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
-652 }
-.fi
-.PP
-.SS "long Server::CalcDuration (\fBstd::string\fP duration)\fC [virtual]\fP"
-.PP
-Calculates a duration This method will take a string containing a formatted duration (e.g.
-.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 689 of file modules.cpp.
-.PP
-References duration().
-.PP
-.nf
-690 {
-691 return duration(delta.c_str());
-692 }
-.fi
-.PP
-.SS "void Server::CallCommandHandler (\fBstd::string\fP commandname, char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
-.PP
-Calls the handler for a command, either implemented by the core or by another module.
-.PP
-You can use this function to trigger other commands in the ircd, such as PRIVMSG, JOIN, KICK etc, or even as a method of callback. By defining command names that are untypeable for users on irc (e.g. those which contain a or
-.br
-) you may use them as callback identifiers. The first parameter to this method is the name of the command handler you wish to call, e.g. PRIVMSG. This will be a command handler previously registered by the core or wih \fBAddCommand()\fP. The second parameter is an array of parameters, and the third parameter is a count of parameters in the array. If you do not pass enough parameters to meet the minimum needed by the handler, the functiom will silently ignore it. The final parameter is the user executing the command handler, used for privilage checks, etc.
-.PP
-Definition at line 400 of file modules.cpp.
-.PP
-References InspIRCd::Parser.
-.PP
-.nf
-401 {
-402 ServerInstance->Parser->CallHandler(commandname,parameters,pcnt,user);
-403 }
-.fi
-.PP
-.SS "void Server::ChangeGECOS (\fBuserrec\fP * user, \fBstd::string\fP gecos)\fC [virtual]\fP"
-.PP
-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 498 of file modules.cpp.
-.PP
-References ChangeName().
-.PP
-.nf
-499 {
-500 ChangeName(user,gecos.c_str());
-501 }
-.fi
-.PP
-.SS "void Server::ChangeHost (\fBuserrec\fP * user, \fBstd::string\fP host)\fC [virtual]\fP"
-.PP
-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 493 of file modules.cpp.
-.PP
-References ChangeDisplayedHost().
-.PP
-.nf
-494 {
-495 ChangeDisplayedHost(user,host.c_str());
-496 }
-.fi
-.PP
-.SS "void Server::ChangeUserNick (\fBuserrec\fP * user, \fBstd::string\fP nickname)\fC [virtual]\fP"
-.PP
-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 385 of file modules.cpp.
-.PP
-References force_nickchange().
-.PP
-.nf
-386 {
-387 force_nickchange(user,nickname.c_str());
-388 }
-.fi
-.PP
-.SS "\fBstd::string\fP Server::ChanMode (\fBuserrec\fP * User, \fBchanrec\fP * Chan)\fC [virtual]\fP"
-.PP
-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 523 of file modules.cpp.
-.PP
-References cmode().
-.PP
-.nf
-524 {
-525 return cmode(User,Chan);
-526 }
-.fi
-.PP
-.SS "bool Server::CommonChannels (\fBuserrec\fP * u1, \fBuserrec\fP * u2)\fC [virtual]\fP"
-.PP
-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 471 of file modules.cpp.
-.PP
-References common_channels().
-.PP
-.nf
-472 {
-473 return (common_channels(u1,u2) != 0);
-474 }
-.fi
-.PP
-.SS "int Server::CountUsers (\fBchanrec\fP * c)\fC [virtual]\fP"
-.PP
-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 591 of file modules.cpp.
-.PP
-.nf
-592 {
-593 return usercount(c);
-594 }
-.fi
-.PP
-.SS "bool Server::DelELine (\fBstd::string\fP hostmask)\fC [virtual]\fP"
-.PP
-Deletes a local E-Line.
-.PP
-Definition at line 684 of file modules.cpp.
-.PP
-References del_eline().
-.PP
-.nf
-685 {
-686 return del_eline(hostmask.c_str());
-687 }
-.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 664 of file modules.cpp.
-.PP
-References del_gline().
-.PP
-.nf
-665 {
-666 return del_gline(hostmask.c_str());
-667 }
-.fi
-.PP
-.SS "bool Server::DelKLine (\fBstd::string\fP hostmask)\fC [virtual]\fP"
-.PP
-Deletes a local K-Line.
-.PP
-Definition at line 679 of file modules.cpp.
-.PP
-References del_kline().
-.PP
-.nf
-680 {
-681 return del_kline(hostmask.c_str());
-682 }
-.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 669 of file modules.cpp.
-.PP
-References del_qline().
-.PP
-.nf
-670 {
-671 return del_qline(nickname.c_str());
-672 }
-.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 333 of file modules.cpp.
-.PP
-References module_sockets.
-.PP
-.nf
-334 {
-335 for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++)
-336 {
-337 if (*a == sock)
-338 {
-339 module_sockets.erase(a);
-340 return;
-341 }
-342 }
-343 }
-.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 674 of file modules.cpp.
-.PP
-References del_zline().
-.PP
-.nf
-675 {
-676 return del_zline(ipaddr.c_str());
-677 }
-.fi
-.PP
-.SS "\fBchanrec\fP * Server::FindChannel (\fBstd::string\fP channel)\fC [virtual]\fP"
-.PP
-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 518 of file modules.cpp.
-.PP
-References FindChan().
-.PP
-.nf
-519 {
-520 return FindChan(channel.c_str());
-521 }
-.fi
-.PP
-.SS "\fBuserrec\fP * Server::FindDescriptor (int socket)\fC [virtual]\fP"
-.PP
-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 513 of file modules.cpp.
-.PP
-.nf
-514 {
-515 return (socket < 65536 ? fd_ref_table[socket] : NULL);
-516 }
-.fi
-.PP
-.SS "\fBModule\fP * Server::FindModule (\fBstd::string\fP name)\fC [virtual]\fP"
-.PP
-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 723 of file modules.cpp.
-.PP
-References MODCOUNT, ServerConfig::module_names, and modules.
-.PP
-.nf
-724 {
-725 for (int i = 0; i <= MODCOUNT; i++)
-726 {
-727 if (Config->module_names[i] == name)
-728 {
-729 return modules[i];
-730 }
-731 }
-732 return NULL;
-733 }
-.fi
-.PP
-.SS "\fBuserrec\fP * Server::FindNick (\fBstd::string\fP nick)\fC [virtual]\fP"
-.PP
-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 508 of file modules.cpp.
-.PP
-References Find().
-.PP
-.nf
-509 {
-510 return Find(nick);
-511 }
-.fi
-.PP
-.SS "\fBAdmin\fP Server::GetAdmin ()\fC [virtual]\fP"
-.PP
-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 548 of file modules.cpp.
-.PP
-References ServerConfig::AdminEmail, ServerConfig::AdminName, and ServerConfig::AdminNick.
-.PP
-.nf
-549 {
-550 return Admin(Config->AdminName,Config->AdminEmail,Config->AdminNick);
-551 }
-.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 323 of file modules.cpp.
-.PP
-.nf
-324 {
-325 return Config;
-326 }
-.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 538 of file modules.cpp.
-.PP
-References ServerConfig::Network.
-.PP
-.nf
-539 {
-540 return Config->Network;
-541 }
-.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 543 of file modules.cpp.
-.PP
-References ServerConfig::ServerDesc.
-.PP
-.nf
-544 {
-545 return Config->ServerDesc;
-546 }
-.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 533 of file modules.cpp.
-.PP
-References ServerConfig::ServerName.
-.PP
-.nf
-534 {
-535 return Config->ServerName;
-536 }
-.fi
-.PP
-.SS "\fBchanuserlist\fP Server::GetUsers (\fBchanrec\fP * chan)\fC [virtual]\fP"
-.PP
-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 373 of file modules.cpp.
-.PP
-References chanrec::GetUsers().
-.PP
-.nf
-374 {
-375 chanuserlist userl;
-376 userl.clear();
-377 std::vector<char*> *list = chan->GetUsers();
-378 for (std::vector<char*>::iterator i = list->begin(); i != list->end(); i++)
-379 {
-380 char* o = *i;
-381 userl.push_back((userrec*)o);
-382 }
-383 return userl;
-384 }
-.fi
-.PP
-.SS "\fBstd::string\fP Server::GetVersion ()"
-.PP
-Returns the version string of this server.
-.PP
-Definition at line 328 of file modules.cpp.
-.PP
-References InspIRCd::GetVersionString().
-.PP
-.nf
-329 {
-330 return ServerInstance->GetVersionString();
-331 }
-.fi
-.PP
-.SS "bool Server::IsNick (\fBstd::string\fP nick)\fC [virtual]\fP"
-.PP
-Returns true if a nick is valid.
-.PP
-Nicks for unregistered connections will return false.
-.PP
-Definition at line 503 of file modules.cpp.
-.PP
-References isnick().
-.PP
-.nf
-504 {
-505 return (isnick(nick.c_str()) != 0);
-506 }
-.fi
-.PP
-.SS "bool Server::IsOnChannel (\fBuserrec\fP * User, \fBchanrec\fP * Chan)\fC [virtual]\fP"
-.PP
-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 528 of file modules.cpp.
-.PP
-References has_channel().
-.PP
-.nf
-529 {
-530 return has_channel(User,Chan);
-531 }
-.fi
-.PP
-.SS "bool Server::IsUlined (\fBstd::string\fP server)\fC [virtual]\fP"
-.PP
-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 395 of file modules.cpp.
-.PP
-References is_uline().
-.PP
-.nf
-396 {
-397 return is_uline(server.c_str());
-398 }
-.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 694 of file modules.cpp.
-.PP
-.nf
-695 {
-696 const char* dest = mask.c_str();
-697 if (strchr(dest,'!')==0)
-698 return false;
-699 if (strchr(dest,'@')==0)
-700 return false;
-701 for (unsigned int i = 0; i < strlen(dest); i++)
-702 if (dest[i] < 32)
-703 return false;
-704 for (unsigned int i = 0; i < strlen(dest); i++)
-705 if (dest[i] > 126)
-706 return false;
-707 unsigned int c = 0;
-708 for (unsigned int i = 0; i < strlen(dest); i++)
-709 if (dest[i] == '!')
-710 c++;
-711 if (c>1)
-712 return false;
-713 c = 0;
-714 for (unsigned int i = 0; i < strlen(dest); i++)
-715 if (dest[i] == '@')
-716 c++;
-717 if (c>1)
-718 return false;
-719
-720 return true;
-721 }
-.fi
-.PP
-.SS "bool Server::IsValidModuleCommand (\fBstd::string\fP commandname, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
-.PP
-Definition at line 405 of file modules.cpp.
-.PP
-References InspIRCd::Parser.
-.PP
-.nf
-406 {
-407 return ServerInstance->Parser->IsValidCommand(commandname, pcnt, user);
-408 }
-.fi
-.PP
-.SS "\fBchanrec\fP * Server::JoinUserToChannel (\fBuserrec\fP * user, \fBstd::string\fP cname, \fBstd::string\fP key)\fC [virtual]\fP"
-.PP
-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 363 of file modules.cpp.
-.PP
-References add_channel().
-.PP
-.nf
-364 {
-365 return add_channel(user,cname.c_str(),key.c_str(),false);
-366 }
-.fi
-.PP
-.SS "void Server::Log (int level, \fBstd::string\fP s)\fC [virtual]\fP"
-.PP
-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 410 of file modules.cpp.
-.PP
-References log().
-.PP
-.nf
-411 {
-412 log(level,'%s',s.c_str());
-413 }
-.fi
-.PP
-.SS "bool Server::MatchText (\fBstd::string\fP sliteral, \fBstd::string\fP spattern)\fC [virtual]\fP"
-.PP
-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 350 of file modules.cpp.
-.PP
-.nf
-351 {
-352 char literal[MAXBUF],pattern[MAXBUF];
-353 strlcpy(literal,sliteral.c_str(),MAXBUF);
-354 strlcpy(pattern,spattern.c_str(),MAXBUF);
-355 return match(literal,pattern);
-356 }
-.fi
-.PP
-.SS "\fBchanrec\fP * Server::PartUserFromChannel (\fBuserrec\fP * user, \fBstd::string\fP cname, \fBstd::string\fP reason)\fC [virtual]\fP"
-.PP
-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 368 of file modules.cpp.
-.PP
-References del_channel().
-.PP
-.nf
-369 {
-370 return del_channel(user,cname.c_str(),reason.c_str(),false);
-371 }
-.fi
-.PP
-.SS "bool Server::PseudoToUser (\fBuserrec\fP * alive, \fBuserrec\fP * zombie, \fBstd::string\fP message)\fC [virtual]\fP"
-.PP
-This user takes one user, and switches their file descriptor with another user, so that one user 'becomes' the other.
-.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 609 of file modules.cpp.
-.PP
-References userrec::chans, userrec::ClearBuffer(), connection::fd, FD_MAGIC_NUMBER, connection::host, userrec::ident, kill_link(), chanrec::name, userrec::nick, chanrec::setby, chanrec::topic, chanrec::topicset, Write(), WriteFrom(), and WriteServ().
-.PP
-.nf
-610 {
-611 zombie->fd = alive->fd;
-612 alive->fd = FD_MAGIC_NUMBER;
-613 alive->ClearBuffer();
-614 Write(zombie->fd,':%s!%s@%s NICK %s',alive->nick,alive->ident,alive->host,zombie->nick);
-615 kill_link(alive,message.c_str());
-616 fd_ref_table[zombie->fd] = zombie;
-617 for (unsigned int i = 0; i < zombie->chans.size(); i++)
-618 {
-619 if (zombie->chans[i].channel != NULL)
-620 {
-621 if (zombie->chans[i].channel->name)
-622 {
-623 chanrec* Ptr = zombie->chans[i].channel;
-624 WriteFrom(zombie->fd,zombie,'JOIN %s',Ptr->name);
-625 if (Ptr->topicset)
-626 {
-627 WriteServ(zombie->fd,'332 %s %s :%s', zombie->nick, Ptr->name, Ptr->topic);
-628 WriteServ(zombie->fd,'333 %s %s %s %d', zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset);
-629 }
-630 userlist(zombie,Ptr);
-631 WriteServ(zombie->fd,'366 %s %s :End of /NAMES list.', zombie->nick, Ptr->name);
-632
-633 }
-634 }
-635 }
-636 return true;
-637 }
-.fi
-.PP
-.SS "void Server::QuitUser (\fBuserrec\fP * user, \fBstd::string\fP reason)\fC [virtual]\fP"
-.PP
-Forces a user to quit with the specified reason.
-.PP
-To the user, it will appear as if they typed /QUIT themselves, except for the fact that this function may bypass the quit prefix specified in the config file.
-.PP
-WARNING!
-.PP
-Once you call this function, userrec* user will immediately become INVALID. You MUST NOT write to, or read from this pointer after calling the QuitUser method UNDER ANY CIRCUMSTANCES! The best course of action after calling this method is to immediately bail from your handler.
-.PP
-Definition at line 390 of file modules.cpp.
-.PP
-References kill_link().
-.PP
-.nf
-391 {
-392 kill_link(user,reason.c_str());
-393 }
-.fi
-.PP
-.SS "void Server::RehashServer ()\fC [virtual]\fP"
-.PP
-Definition at line 317 of file modules.cpp.
-.PP
-References ServerConfig::Read(), and WriteOpers().
-.PP
-.nf
-318 {
-319 WriteOpers('*** Rehashing config file');
-320 Config->Read(false,NULL);
-321 }
-.fi
-.PP
-.SS "void Server::Send (int Socket, \fBstd::string\fP s)\fC [virtual]\fP"
-.PP
-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 425 of file modules.cpp.
-.PP
-References Write().
-.PP
-.nf
-426 {
-427 Write(Socket,'%s',s.c_str());
-428 }
-.fi
-.PP
-.SS "void Server::SendChannel (\fBuserrec\fP * User, \fBchanrec\fP * Channel, \fBstd::string\fP s, bool IncludeSender)\fC [virtual]\fP"
-.PP
-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 459 of file modules.cpp.
-.PP
-References ChanExceptSender(), and WriteChannel().
-.PP
-.nf
-460 {
-461 if (IncludeSender)
-462 {
-463 WriteChannel(Channel,User,'%s',s.c_str());
-464 }
-465 else
-466 {
-467 ChanExceptSender(Channel,User,'%s',s.c_str());
-468 }
-469 }
-.fi
-.PP
-.SS "void Server::SendChannelServerNotice (\fBstd::string\fP ServName, \fBchanrec\fP * Channel, \fBstd::string\fP text)\fC [virtual]\fP"
-.PP
-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 454 of file modules.cpp.
-.PP
-.nf
-455 {
-456 WriteChannelWithServ((char*)ServName.c_str(), Channel, '%s', text.c_str());
-457 }
-.fi
-.PP
-.SS "void Server::SendCommon (\fBuserrec\fP * User, \fBstd::string\fP text, bool IncludeSender)\fC [virtual]\fP"
-.PP
-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 476 of file modules.cpp.
-.PP
-References WriteCommon(), and WriteCommonExcept().
-.PP
-.nf
-477 {
-478 if (IncludeSender)
-479 {
-480 WriteCommon(User,'%s',text.c_str());
-481 }
-482 else
-483 {
-484 WriteCommonExcept(User,'%s',text.c_str());
-485 }
-486 }
-.fi
-.PP
-.SS "void Server::SendFrom (int Socket, \fBuserrec\fP * User, \fBstd::string\fP s)\fC [virtual]\fP"
-.PP
-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 435 of file modules.cpp.
-.PP
-References WriteFrom().
-.PP
-.nf
-436 {
-437 WriteFrom(Socket,User,'%s',s.c_str());
-438 }
-.fi
-.PP
-.SS "void Server::SendMode (char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
-.PP
-Sends a servermode.
-.PP
-you must format the parameters array with the target, modes and parameters for those modes.
-.PP
-For example:
-.PP
-char *modes[3];
-.PP
-modes[0] = ChannelName;
-.PP
-modes[1] = '+o';
-.PP
-modes[2] = user->nick;
-.PP
-Srv->SendMode(modes,3,user);
-.PP
-The modes will originate from the server where the command was issued, however responses (e.g. numerics) will be sent to the user you provide as the third parameter. You must be sure to get the number of parameters correct in the pcnt parameter otherwise you could leave your server in an unstable state!
-.PP
-Definition at line 420 of file modules.cpp.
-.PP
-References InspIRCd::ModeGrok, and ModeParser::ServerMode().
-.PP
-.nf
-421 {
-422 ServerInstance->ModeGrok->ServerMode(parameters,pcnt,user);
-423 }
-.fi
-.PP
-.SS "void Server::SendOpers (\fBstd::string\fP s)\fC [virtual]\fP"
-.PP
-Sends text to all opers.
-.PP
-This method sends a server notice to all opers with the usermode +s.
-.PP
-Definition at line 345 of file modules.cpp.
-.PP
-References WriteOpers().
-.PP
-.nf
-346 {
-347 WriteOpers('%s',s.c_str());
-348 }
-.fi
-.PP
-.SS "void Server::SendServ (int Socket, \fBstd::string\fP s)\fC [virtual]\fP"
-.PP
-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 430 of file modules.cpp.
-.PP
-References WriteServ().
-.PP
-.nf
-431 {
-432 WriteServ(Socket,'%s',s.c_str());
-433 }
-.fi
-.PP
-.SS "void Server::SendTo (\fBuserrec\fP * Source, \fBuserrec\fP * Dest, \fBstd::string\fP s)\fC [virtual]\fP"
-.PP
-Sends text from a user to another user.
-.PP
-This method writes a line of text to a user, with a user's nick/ident /host combination prepended, as used in PRIVMSG etc commands (see RFC 1459) If you specify NULL as the source, then the data will originate from the local server, e.g. instead of:
-.PP
-:user!ident TEXT
-.PP
-The format will become:
-.PP
-:localserver TEXT
-.PP
-Which is useful for numerics and server notices to single users, etc.
-.PP
-Definition at line 440 of file modules.cpp.
-.PP
-References connection::fd, Write(), and WriteTo().
-.PP
-.nf
-441 {
-442 if (!Source)
-443 {
-444 // if source is NULL, then the message originates from the local server
-445 Write(Dest->fd,':%s %s',this->GetServerName().c_str(),s.c_str());
-446 }
-447 else
-448 {
-449 // otherwise it comes from the user specified
-450 WriteTo(Source,Dest,'%s',s.c_str());
-451 }
-452 }
-.fi
-.PP
-.SS "void Server::SendToModeMask (\fBstd::string\fP modes, int flags, \fBstd::string\fP text)\fC [virtual]\fP"
-.PP
-Sends to all users matching a mode mask You must specify one or more usermodes as the first parameter.
-.PP
-These can be RFC specified modes such as +i, or module provided modes, including ones provided by your own module. In the second parameter you must place a flag value which indicates wether the modes you have given will be logically ANDed or OR'ed. You may use one of either WM_AND or WM_OR. for example, if you were to use:
-.PP
-Serv->SendToModeMask('xi', WM_OR, 'm00');
-.PP
-Then the text 'm00' will be sent to all users with EITHER mode x or i. Conversely if you used WM_AND, the user must have both modes set to receive the message.
-.PP
-Definition at line 358 of file modules.cpp.
-.PP
-.nf
-359 {
-360 WriteMode(modes.c_str(),flags,'%s',text.c_str());
-361 }
-.fi
-.PP
-.SS "void Server::SendWallops (\fBuserrec\fP * User, \fBstd::string\fP text)\fC [virtual]\fP"
-.PP
-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 488 of file modules.cpp.
-.PP
-References WriteWallOps().
-.PP
-.nf
-489 {
-490 WriteWallOps(User,false,'%s',text.c_str());
-491 }
-.fi
-.PP
-.SS "bool Server::UserToPseudo (\fBuserrec\fP * user, \fBstd::string\fP message)\fC [virtual]\fP"
-.PP
-Remove a user's connection to the irc server, but leave their client in existence in the user hash.
-.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 597 of file modules.cpp.
-.PP
-References userrec::ClearBuffer(), SocketEngine::DelFd(), connection::fd, FD_MAGIC_NUMBER, connection::host, userrec::ident, InspIRCd::SE, and Write().
-.PP
-.nf
-598 {
-599 unsigned int old_fd = user->fd;
-600 user->fd = FD_MAGIC_NUMBER;
-601 user->ClearBuffer();
-602 Write(old_fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,message.c_str());
-603 ServerInstance->SE->DelFd(old_fd);
-604 shutdown(old_fd,2);
-605 close(old_fd);
-606 return true;
-607 }
-.fi
-.PP
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/ServerConfig.3 b/docs/man/man3/ServerConfig.3
deleted file mode 100644
index e35314eae..000000000
--- a/docs/man/man3/ServerConfig.3
+++ /dev/null
@@ -1,513 +0,0 @@
-.TH "ServerConfig" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ServerConfig \- This class holds the bulk of the runtime configuration for the ircd.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <inspircd_io.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBServerConfig\fP ()"
-.br
-.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
-.ti -1c
-.RI "int \fBConfValue\fP (char *tag, char *var, int index, char *result, std::stringstream *config)"
-.br
-.ti -1c
-.RI "int \fBReadConf\fP (std::stringstream *\fBconfig_f\fP, const char *tag, const char *var, int index, char *result)"
-.br
-.ti -1c
-.RI "int \fBConfValueEnum\fP (char *tag, std::stringstream *config)"
-.br
-.ti -1c
-.RI "int \fBEnumConf\fP (std::stringstream *\fBconfig_f\fP, const char *tag)"
-.br
-.ti -1c
-.RI "int \fBEnumValues\fP (std::stringstream *config, const char *tag, int index)"
-.br
-.ti -1c
-.RI "\fBModule\fP * \fBGetIOHook\fP (int port)"
-.br
-.ti -1c
-.RI "bool \fBAddIOHook\fP (int port, \fBModule\fP *iomod)"
-.br
-.ti -1c
-.RI "bool \fBDelIOHook\fP (int port)"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.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"
-.ti -1c
-.RI "int \fBports\fP [255]"
-.br
-.RI "\fIA list of ports which the server is listening on. \fP"
-.ti -1c
-.RI "std::map< int, \fBModule\fP * > \fBIOHookModule\fP"
-.br
-.RI "\fIA list of ports claimed by IO Modules. \fP"
-.in -1c
-.SS "Private Member Functions"
-
-.in +1c
-.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"
-
-.in +1c
-.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
-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 40 of file inspircd_io.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "ServerConfig::ServerConfig ()"
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "bool ServerConfig::AddIOHook (int port, \fBModule\fP * iomod)"
-.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().
-.SS "int ServerConfig::ConfValueEnum (char * tag, std::stringstream * config)"
-.PP
-.SS "bool ServerConfig::DelIOHook (int port)"
-.PP
-.SS "int ServerConfig::EnumConf (std::stringstream * config_f, const char * tag)"
-.PP
-Referenced by ConfigReader::Enumerate().
-.SS "int ServerConfig::EnumValues (std::stringstream * config, const char * tag, int index)"
-.PP
-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 "\fBModule\fP* ServerConfig::GetIOHook (int port)"
-.PP
-Referenced by kill_link(), and kill_link_silent().
-.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
-Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigReader::ReadValue().
-.SH "Member Data Documentation"
-.PP
-.SS "char \fBServerConfig::addrs\fP[MAXBUF][255]"
-.PP
-A list of IP addresses the server is listening on.
-.PP
-Definition at line 217 of file inspircd_io.h.
-.SS "char \fBServerConfig::AdminEmail\fP[MAXBUF]"
-.PP
-Holds the email address of the admin, for output in the /ADMIN command.
-.PP
-Definition at line 90 of file inspircd_io.h.
-.PP
-Referenced by Server::GetAdmin().
-.SS "char \fBServerConfig::AdminName\fP[MAXBUF]"
-.PP
-Holds the admin's name, for output in the /ADMIN command.
-.PP
-Definition at line 85 of file inspircd_io.h.
-.PP
-Referenced by Server::GetAdmin().
-.SS "char \fBServerConfig::AdminNick\fP[MAXBUF]"
-.PP
-Holds the admin's nickname, for output in the /ADMIN command.
-.PP
-Definition at line 95 of file inspircd_io.h.
-.PP
-Referenced by Server::GetAdmin().
-.SS "bool \fBServerConfig::AllowHalfop\fP"
-.PP
-If this value is true, halfops have been enabled in the configuration file.
-.PP
-Definition at line 172 of file inspircd_io.h.
-.SS "\fBClassVector\fP \fBServerConfig::Classes\fP"
-.PP
-The connect classes in use by the IRC server.
-.PP
-Definition at line 243 of file inspircd_io.h.
-.PP
-Referenced by AddClient().
-.SS "std::stringstream \fBServerConfig::config_f\fP"
-.PP
-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 239 of file inspircd_io.h.
-.PP
-Referenced by userrec::HasPermission().
-.SS "int \fBServerConfig::debugging\fP"
-.PP
-True if the DEBUG loglevel is selected.
-.PP
-Definition at line 203 of file inspircd_io.h.
-.SS "int \fBServerConfig::DieDelay\fP"
-.PP
-How many seconds to wait before exiting the program when /DIE is correctly issued.
-.PP
-Definition at line 212 of file inspircd_io.h.
-.SS "char \fBServerConfig::diepass\fP[MAXBUF]"
-.PP
-The admin-configured /DIE password.
-.PP
-Definition at line 99 of file inspircd_io.h.
-.SS "char \fBServerConfig::DieValue\fP[MAXBUF]"
-.PP
-The last string found within a <die> tag, or an empty string.
-.PP
-Definition at line 122 of file inspircd_io.h.
-.SS "char \fBServerConfig::DisabledCommands\fP[MAXBUF]"
-.PP
-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 132 of file inspircd_io.h.
-.SS "int \fBServerConfig::dns_timeout\fP"
-.PP
-The number of seconds the \fBDNS\fP subsystem will wait before timing out any request.
-.PP
-Definition at line 177 of file inspircd_io.h.
-.PP
-Referenced by AddClient().
-.SS "char \fBServerConfig::DNSServer\fP[MAXBUF]"
-.PP
-The \fBDNS\fP server to use for \fBDNS\fP queries.
-.PP
-Definition at line 126 of file inspircd_io.h.
-.SS "std::vector<\fBstd::string\fP> \fBServerConfig::include_stack\fP\fC [private]\fP"
-.PP
-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 48 of file inspircd_io.h.
-.SS "std::map<int,\fBModule\fP*> \fBServerConfig::IOHookModule\fP"
-.PP
-A list of ports claimed by IO Modules.
-.PP
-Definition at line 256 of file inspircd_io.h.
-.SS "FILE* \fBServerConfig::log_file\fP"
-.PP
-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 152 of file inspircd_io.h.
-.SS "int \fBServerConfig::LogLevel\fP"
-.PP
-The loglevel in use by the IRC server.
-.PP
-Definition at line 207 of file inspircd_io.h.
-.SS "int \fBServerConfig::MaxConn\fP"
-.PP
-The value to be used for listen() backlogs as default.
-.PP
-Definition at line 188 of file inspircd_io.h.
-.SS "int \fBServerConfig::MaxWhoResults\fP"
-.PP
-The maximum number of /WHO results allowed in any single /WHO command.
-.PP
-Definition at line 199 of file inspircd_io.h.
-.SS "char \fBServerConfig::ModPath\fP[1024]"
-.PP
-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 139 of file inspircd_io.h.
-.SS "std::vector<\fBstd::string\fP> \fBServerConfig::module_names\fP"
-.PP
-A list of module names (names only, no paths) which are currently loaded by the server.
-.PP
-Definition at line 248 of file inspircd_io.h.
-.PP
-Referenced by Server::FindModule().
-.SS "\fBfile_cache\fP \fBServerConfig::MOTD\fP"
-.PP
-The MOTD file, cached in a file_cache type.
-.PP
-Definition at line 221 of file inspircd_io.h.
-.SS "char \fBServerConfig::motd\fP[MAXBUF]"
-.PP
-The pathname and filename of the message of the day file, as defined by the administrator.
-.PP
-Definition at line 108 of file inspircd_io.h.
-.SS "char \fBServerConfig::MyExecutable\fP[1024]"
-.PP
-The full pathname to the executable, as given in argv[0] when the program starts.
-.PP
-Definition at line 144 of file inspircd_io.h.
-.SS "int \fBServerConfig::NetBufferSize\fP"
-.PP
-The size of the read() buffer in the user handling code, used to read data into a user's recvQ.
-.PP
-Definition at line 183 of file inspircd_io.h.
-.SS "char \fBServerConfig::Network\fP[MAXBUF]"
-.PP
-Definition at line 75 of file inspircd_io.h.
-.PP
-Referenced by FullConnectUser(), and Server::GetNetworkName().
-.SS "bool \fBServerConfig::nofork\fP"
-.PP
-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 159 of file inspircd_io.h.
-.SS "char \fBServerConfig::PID\fP[1024]"
-.PP
-The full pathname and filename of the PID file as defined in the configuration.
-.PP
-Definition at line 230 of file inspircd_io.h.
-.SS "int \fBServerConfig::ports\fP[255]"
-.PP
-A list of ports which the server is listening on.
-.PP
-Definition at line 252 of file inspircd_io.h.
-.SS "char \fBServerConfig::PrefixQuit\fP[MAXBUF]"
-.PP
-The quit prefix in use, or an empty string.
-.PP
-Definition at line 117 of file inspircd_io.h.
-.SS "char \fBServerConfig::restartpass\fP[MAXBUF]"
-.PP
-The admin-configured /RESTART password.
-.PP
-Definition at line 103 of file inspircd_io.h.
-.SS "\fBfile_cache\fP \fBServerConfig::RULES\fP"
-.PP
-The RULES file, cached in a file_cache type.
-.PP
-Definition at line 225 of file inspircd_io.h.
-.SS "char \fBServerConfig::rules\fP[MAXBUF]"
-.PP
-The pathname and filename of the rules file, as defined by the administrator.
-.PP
-Definition at line 113 of file inspircd_io.h.
-.SS "char \fBServerConfig::ServerDesc\fP[MAXBUF]"
-.PP
-Holds the description of the local server as defined by the administrator.
-.PP
-Definition at line 80 of file inspircd_io.h.
-.PP
-Referenced by Server::GetServerDescription().
-.SS "char \fBServerConfig::ServerName\fP[MAXBUF]"
-.PP
-Holds the server name of the local server as defined by the administrator.
-.PP
-Definition at line 69 of file inspircd_io.h.
-.PP
-Referenced by AddClient(), FullConnectUser(), Server::GetServerName(), and userrec::userrec().
-.SS "unsigned int \fBServerConfig::SoftLimit\fP"
-.PP
-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 194 of file inspircd_io.h.
-.PP
-Referenced by AddClient().
-.SS "bool \fBServerConfig::unlimitcore\fP"
-.PP
-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 167 of file inspircd_io.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/SocketEngine.3 b/docs/man/man3/SocketEngine.3
deleted file mode 100644
index 46b4f51ff..000000000
--- a/docs/man/man3/SocketEngine.3
+++ /dev/null
@@ -1,342 +0,0 @@
-.TH "SocketEngine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-SocketEngine \- 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.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <socketengine.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBSocketEngine\fP ()"
-.br
-.RI "\fIConstructor The constructor transparently initializes the socket engine which the ircd is using. \fP"
-.ti -1c
-.RI "\fB~SocketEngine\fP ()"
-.br
-.RI "\fIDestructor The destructor transparently tidies up any resources used by the socket engine. \fP"
-.ti -1c
-.RI "bool \fBAddFd\fP (int fd, bool readable, char type)"
-.br
-.RI "\fIAdd a file descriptor to the engine Use AddFd to add a file descriptor to the engine and have the socket engine monitor it. \fP"
-.ti -1c
-.RI "char \fBGetType\fP (int fd)"
-.br
-.RI "\fIReturns the type value for this file descriptor This function masks off the X_READBIT value so that the type of the socket can be obtained. \fP"
-.ti -1c
-.RI "bool \fBDelFd\fP (int fd)"
-.br
-.RI "\fIDelete a file descriptor f rom the engine This function call deletes a file descriptor from the engine, returning true if it succeeded and false if it failed. \fP"
-.ti -1c
-.RI "bool \fBWait\fP (std::vector< int > &fdlist)"
-.br
-.RI "\fIWaits for an event. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBGetName\fP ()"
-.br
-.RI "\fIReturns the socket engines name This returns the name of the engine for use in /VERSION responses. \fP"
-.in -1c
-.SS "Private Attributes"
-
-.in +1c
-.ti -1c
-.RI "std::vector< int > \fBfds\fP"
-.br
-.ti -1c
-.RI "int \fBEngineHandle\fP"
-.br
-.ti -1c
-.RI "kevent \fBke_list\fP [65535]"
-.br
-.ti -1c
-.RI "timespec \fBts\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-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.
-
-The current version supports select, epoll and kqueue.
-.PP
-Definition at line 66 of file socketengine.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "SocketEngine::SocketEngine ()"
-.PP
-Constructor The constructor transparently initializes the socket engine which the ircd is using.
-.PP
-Please note that if there is a catastrophic failure (for example, you try and enable epoll on a 2.4 linux kernel) then this function may bail back to the shell.
-.PP
-Definition at line 35 of file socketengine.cpp.
-.PP
-References DEBUG, EngineHandle, and log().
-.PP
-.nf
-36 {
-37 log(DEBUG,'SocketEngine::SocketEngine()');
-38 #ifdef USE_EPOLL
-39 EngineHandle = epoll_create(65535);
-40 #endif
-41 #ifdef USE_KQUEUE
-42 EngineHandle = kqueue();
-43 #endif
-44 }
-.fi
-.PP
-.SS "SocketEngine::~SocketEngine ()"
-.PP
-Destructor The destructor transparently tidies up any resources used by the socket engine.
-.PP
-Definition at line 46 of file socketengine.cpp.
-.PP
-References DEBUG, EngineHandle, and log().
-.PP
-.nf
-47 {
-48 log(DEBUG,'SocketEngine::~SocketEngine()');
-49 #ifdef USE_EPOLL
-50 close(EngineHandle);
-51 #endif
-52 #ifdef USE_KQUEUE
-53 close(EngineHandle);
-54 #endif
-55 }
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "bool SocketEngine::AddFd (int fd, bool readable, char type)"
-.PP
-Add a file descriptor to the engine Use AddFd to add a file descriptor to the engine and have the socket engine monitor it.
-.PP
-You must provide a type (see the consts in \fBsocketengine.h\fP) and a boolean flag to indicate wether to watch this fd for read or write events (there is currently no need for support of both).
-.PP
-Definition at line 65 of file socketengine.cpp.
-.PP
-References DEBUG, EngineHandle, fds, log(), ref, and X_READBIT.
-.PP
-Referenced by AddClient(), InspSocket::InspSocket(), and InspSocket::Poll().
-.PP
-.nf
-66 {
-67 if ((fd < 0) || (fd > 65535))
-68 return false;
-69 this->fds.push_back(fd);
-70 ref[fd] = type;
-71 if (readable)
-72 {
-73 log(DEBUG,'Set readbit');
-74 ref[fd] |= X_READBIT;
-75 }
-76 log(DEBUG,'Add socket %d',fd);
-77 #ifdef USE_EPOLL
-78 struct epoll_event ev;
-79 log(DEBUG,'epoll: Add socket to events, ep=%d socket=%d',EngineHandle,fd);
-80 readable ? ev.events = EPOLLIN | EPOLLET : ev.events = EPOLLOUT | EPOLLET;
-81 ev.data.fd = fd;
-82 int i = epoll_ctl(EngineHandle, EPOLL_CTL_ADD, fd, &ev);
-83 if (i < 0)
-84 {
-85 log(DEBUG,'epoll: List insertion failure!');
-86 return false;
-87 }
-88 #endif
-89 #ifdef USE_KQUEUE
-90 struct kevent ke;
-91 log(DEBUG,'kqueue: Add socket to events, kq=%d socket=%d',EngineHandle,fd);
-92 EV_SET(&ke, fd, readable ? EVFILT_READ : EVFILT_WRITE, EV_ADD, 0, 0, NULL);
-93 int i = kevent(EngineHandle, &ke, 1, 0, 0, NULL);
-94 if (i == -1)
-95 {
-96 log(DEBUG,'kqueue: List insertion failure!');
-97 return false;
-98 }
-99 #endif
-100 return true;
-101 }
-.fi
-.PP
-.SS "bool SocketEngine::DelFd (int fd)"
-.PP
-Delete a file descriptor f rom the engine This function call deletes a file descriptor from the engine, returning true if it succeeded and false if it failed.
-.PP
-Definition at line 103 of file socketengine.cpp.
-.PP
-References DEBUG, EngineHandle, fds, log(), ref, and X_READBIT.
-.PP
-Referenced by kill_link(), kill_link_silent(), InspSocket::Poll(), and Server::UserToPseudo().
-.PP
-.nf
-104 {
-105 log(DEBUG,'SocketEngine::DelFd(%d)',fd);
-106
-107 if ((fd < 0) || (fd > 65535))
-108 return false;
-109
-110 bool found = false;
-111 for (std::vector<int>::iterator i = fds.begin(); i != fds.end(); i++)
-112 {
-113 if (*i == fd)
-114 {
-115 fds.erase(i);
-116 log(DEBUG,'Deleted fd %d',fd);
-117 found = true;
-118 break;
-119 }
-120 }
-121 #ifdef USE_KQUEUE
-122 struct kevent ke;
-123 EV_SET(&ke, fd, ref[fd] & X_READBIT ? EVFILT_READ : EVFILT_WRITE, EV_DELETE, 0, 0, NULL);
-124 int i = kevent(EngineHandle, &ke, 1, 0, 0, NULL);
-125 if (i == -1)
-126 {
-127 log(DEBUG,'kqueue: Failed to remove socket from queue!');
-128 return false;
-129 }
-130 #endif
-131 #ifdef USE_EPOLL
-132 struct epoll_event ev;
-133 ref[fd] && X_READBIT ? ev.events = EPOLLIN | EPOLLET : ev.events = EPOLLOUT | EPOLLET;
-134 ev.data.fd = fd;
-135 int i = epoll_ctl(EngineHandle, EPOLL_CTL_DEL, fd, &ev);
-136 if (i < 0)
-137 {
-138 log(DEBUG,'epoll: List deletion failure!');
-139 return false;
-140 }
-141 #endif
-142 ref[fd] = 0;
-143 return found;
-144 }
-.fi
-.PP
-.SS "\fBstd::string\fP SocketEngine::GetName ()"
-.PP
-Returns the socket engines name This returns the name of the engine for use in /VERSION responses.
-.PP
-Definition at line 193 of file socketengine.cpp.
-.PP
-.nf
-194 {
-195 #ifdef USE_SELECT
-196 return 'select';
-197 #endif
-198 #ifdef USE_KQUEUE
-199 return 'kqueue';
-200 #endif
-201 #ifdef USE_EPOLL
-202 return 'epoll';
-203 #endif
-204 return 'misconfigured';
-205 }
-.fi
-.PP
-.SS "char SocketEngine::GetType (int fd)"
-.PP
-Returns the type value for this file descriptor This function masks off the X_READBIT value so that the type of the socket can be obtained.
-.PP
-The core uses this to decide where to dispatch the event to. Please note that some engines such as select() have an upper limit of 1024 descriptors which may be active at any one time, where others such as kqueue have no practical limits at all.
-.PP
-Definition at line 57 of file socketengine.cpp.
-.PP
-References ref, and X_EMPTY_SLOT.
-.PP
-.nf
-58 {
-59 if ((fd < 0) || (fd > 65535))
-60 return X_EMPTY_SLOT;
-61 /* Mask off the top bit used for 'read/write' state */
-62 return (ref[fd] & ~0x80);
-63 }
-.fi
-.PP
-.SS "bool SocketEngine::Wait (std::vector< int > & fdlist)"
-.PP
-Waits for an event.
-.PP
-Please note that this doesnt wait long, only a couple of milliseconds. It returns a list of active file descriptors in the vector fdlist which the core may then act upon.
-.PP
-Definition at line 146 of file socketengine.cpp.
-.PP
-References EngineHandle, fds, ke_list, ref, ts, and X_READBIT.
-.PP
-.nf
-147 {
-148 fdlist.clear();
-149 #ifdef USE_SELECT
-150 FD_ZERO(&wfdset);
-151 FD_ZERO(&rfdset);
-152 timeval tval;
-153 int sresult;
-154 for (unsigned int a = 0; a < fds.size(); a++)
-155 {
-156 if (ref[fds[a]] & X_READBIT)
-157 {
-158 FD_SET (fds[a], &rfdset);
-159 }
-160 else
-161 {
-162 FD_SET (fds[a], &wfdset);
-163 }
-164
-165 }
-166 tval.tv_sec = 0;
-167 tval.tv_usec = 100L;
-168 sresult = select(FD_SETSIZE, &rfdset, &wfdset, NULL, &tval);
-169 if (sresult > 0)
-170 {
-171 for (unsigned int a = 0; a < fds.size(); a++)
-172 {
-173 if ((FD_ISSET (fds[a], &rfdset)) || (FD_ISSET (fds[a], &wfdset)))
-174 fdlist.push_back(fds[a]);
-175 }
-176 }
-177 #endif
-178 #ifdef USE_KQUEUE
-179 ts.tv_nsec = 10000L;
-180 ts.tv_sec = 0;
-181 int i = kevent(EngineHandle, NULL, 0, &ke_list[0], 65535, &ts);
-182 for (int j = 0; j < i; j++)
-183 fdlist.push_back(ke_list[j].ident);
-184 #endif
-185 #ifdef USE_EPOLL
-186 int i = epoll_wait(EngineHandle, events, 65535, 100);
-187 for (int j = 0; j < i; j++)
-188 fdlist.push_back(events[j].data.fd);
-189 #endif
-190 return true;
-191 }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "int \fBSocketEngine::EngineHandle\fP\fC [private]\fP"
-.PP
-Definition at line 69 of file socketengine.h.
-.PP
-Referenced by AddFd(), DelFd(), SocketEngine(), Wait(), and ~SocketEngine().
-.SS "std::vector<int> \fBSocketEngine::fds\fP\fC [private]\fP"
-.PP
-Definition at line 68 of file socketengine.h.
-.PP
-Referenced by AddFd(), DelFd(), and Wait().
-.SS "struct kevent \fBSocketEngine::ke_list\fP[65535]\fC [private]\fP"
-.PP
-Definition at line 74 of file socketengine.h.
-.PP
-Referenced by Wait().
-.SS "struct timespec \fBSocketEngine::ts\fP\fC [private]\fP"
-.PP
-Definition at line 75 of file socketengine.h.
-.PP
-Referenced by Wait().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/StrHashComp.3 b/docs/man/man3/StrHashComp.3
deleted file mode 100644
index bff4dec00..000000000
--- a/docs/man/man3/StrHashComp.3
+++ /dev/null
@@ -1,36 +0,0 @@
-.TH "StrHashComp" 3 "15 May 2005" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-StrHashComp \- This class returns true if two strings match.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <hashcomp.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "bool \fBoperator()\fP (const string &s1, const string &s2) const"
-.br
-.RI "\fIThe operator () does the actual comparison in hash_map. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-This class returns true if two strings match.
-
-Case sensitivity is ignored, and the RFC 'character set' is adhered to
-.PP
-Definition at line 60 of file hashcomp.h.
-.SH "Member Function Documentation"
-.PP
-.SS "bool StrHashComp::operator() (const string & s1, const string & s2) const"
-.PP
-The operator () does the actual comparison in hash_map.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/Version.3 b/docs/man/man3/Version.3
deleted file mode 100644
index a20d493b0..000000000
--- a/docs/man/man3/Version.3
+++ /dev/null
@@ -1,78 +0,0 @@
-.TH "Version" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Version \- Holds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <modules.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBVersion\fP (int major, int minor, int revision, int build, int flags)"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "const int \fBMajor\fP"
-.br
-.ti -1c
-.RI "const int \fBMinor\fP"
-.br
-.ti -1c
-.RI "const int \fBRevision\fP"
-.br
-.ti -1c
-.RI "const int \fBBuild\fP"
-.br
-.ti -1c
-.RI "const int \fBFlags\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-Holds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module.
-
-A class of type Version is returned by the GetVersion method of the \fBModule\fP class.
-.PP
-Definition at line 131 of file modules.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "Version::Version (int major, int minor, int revision, int build, int flags)"
-.PP
-Definition at line 158 of file modules.cpp.
-.PP
-.nf
-158 : Major(major), Minor(minor), Revision(revision), Build(build), Flags(flags) { };
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "const int \fBVersion::Build\fP"
-.PP
-Definition at line 134 of file modules.h.
-.SS "const int \fBVersion::Flags\fP"
-.PP
-Definition at line 134 of file modules.h.
-.SS "const int \fBVersion::Major\fP"
-.PP
-Definition at line 134 of file modules.h.
-.SS "const int \fBVersion::Minor\fP"
-.PP
-Definition at line 134 of file modules.h.
-.SS "const int \fBVersion::Revision\fP"
-.PP
-Definition at line 134 of file modules.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/WhoWasUser.3 b/docs/man/man3/WhoWasUser.3
deleted file mode 100644
index fb447c6eb..000000000
--- a/docs/man/man3/WhoWasUser.3
+++ /dev/null
@@ -1,83 +0,0 @@
-.TH "WhoWasUser" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-WhoWasUser \- A lightweight userrec used by WHOWAS.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <users.h>\fP
-.PP
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBnick\fP [NICKMAX]"
-.br
-.ti -1c
-.RI "char \fBident\fP [IDENTMAX+1]"
-.br
-.ti -1c
-.RI "char \fBdhost\fP [160]"
-.br
-.ti -1c
-.RI "char \fBhost\fP [160]"
-.br
-.ti -1c
-.RI "char \fBfullname\fP [MAXGECOS+1]"
-.br
-.ti -1c
-.RI "char \fBserver\fP [256]"
-.br
-.ti -1c
-.RI "time_t \fBsignon\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-A lightweight userrec used by WHOWAS.
-.PP
-Definition at line 336 of file users.h.
-.SH "Member Data Documentation"
-.PP
-.SS "char \fBWhoWasUser::dhost\fP[160]"
-.PP
-Definition at line 341 of file users.h.
-.PP
-Referenced by AddWhoWas().
-.SS "char \fBWhoWasUser::fullname\fP[MAXGECOS+1]"
-.PP
-Definition at line 343 of file users.h.
-.PP
-Referenced by AddWhoWas().
-.SS "char \fBWhoWasUser::host\fP[160]"
-.PP
-Definition at line 342 of file users.h.
-.PP
-Referenced by AddWhoWas().
-.SS "char \fBWhoWasUser::ident\fP[IDENTMAX+1]"
-.PP
-Definition at line 340 of file users.h.
-.PP
-Referenced by AddWhoWas().
-.SS "char \fBWhoWasUser::nick\fP[NICKMAX]"
-.PP
-Definition at line 339 of file users.h.
-.PP
-Referenced by AddWhoWas().
-.SS "char \fBWhoWasUser::server\fP[256]"
-.PP
-Definition at line 344 of file users.h.
-.PP
-Referenced by AddWhoWas().
-.SS "time_t \fBWhoWasUser::signon\fP"
-.PP
-Definition at line 345 of file users.h.
-.PP
-Referenced by AddWhoWas().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/XLine.3 b/docs/man/man3/XLine.3
deleted file mode 100644
index 9141d13fd..000000000
--- a/docs/man/man3/XLine.3
+++ /dev/null
@@ -1,78 +0,0 @@
-.TH "XLine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-XLine \- XLine is the base class for ban lines such as G lines and K lines.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <xline.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-Inherited by \fBELine\fP, \fBGLine\fP, \fBKLine\fP, \fBQLine\fP, and \fBZLine\fP.
-.PP
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "time_t \fBset_time\fP"
-.br
-.RI "\fIThe time the line was added. \fP"
-.ti -1c
-.RI "long \fBduration\fP"
-.br
-.RI "\fIThe duration of the ban, or 0 if permenant. \fP"
-.ti -1c
-.RI "char \fBsource\fP [256]"
-.br
-.RI "\fISource of the ban. \fP"
-.ti -1c
-.RI "char \fBreason\fP [MAXBUF]"
-.br
-.RI "\fIReason for the ban. \fP"
-.ti -1c
-.RI "long \fBn_matches\fP"
-.br
-.RI "\fINumber of times the core matches the ban, for statistics. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-XLine is the base class for ban lines such as G lines and K lines.
-.PP
-Definition at line 39 of file xline.h.
-.SH "Member Data Documentation"
-.PP
-.SS "long \fBXLine::duration\fP"
-.PP
-The duration of the ban, or 0 if permenant.
-.PP
-Definition at line 49 of file xline.h.
-.SS "long \fBXLine::n_matches\fP"
-.PP
-Number of times the core matches the ban, for statistics.
-.PP
-Definition at line 61 of file xline.h.
-.SS "char \fBXLine::reason\fP[MAXBUF]"
-.PP
-Reason for the ban.
-.PP
-Definition at line 57 of file xline.h.
-.SS "time_t \fBXLine::set_time\fP"
-.PP
-The time the line was added.
-.PP
-Definition at line 45 of file xline.h.
-.SS "char \fBXLine::source\fP[256]"
-.PP
-Source of the ban.
-.PP
-This can be a servername or an oper nickname
-.PP
-Definition at line 53 of file xline.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/ZLine.3 b/docs/man/man3/ZLine.3
deleted file mode 100644
index a8435b5d7..000000000
--- a/docs/man/man3/ZLine.3
+++ /dev/null
@@ -1,49 +0,0 @@
-.TH "ZLine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ZLine \- ZLine class.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <xline.h>\fP
-.PP
-Inherits \fBXLine\fP.
-.PP
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBipaddr\fP [40]"
-.br
-.RI "\fIIP Address (xx.yy.zz.aa) to match against May contain wildcards. \fP"
-.ti -1c
-.RI "bool \fBis_global\fP"
-.br
-.RI "\fISet if this is a global Z:line (e.g. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-ZLine class.
-.PP
-Definition at line 98 of file xline.h.
-.SH "Member Data Documentation"
-.PP
-.SS "char \fBZLine::ipaddr\fP[40]"
-.PP
-IP Address (xx.yy.zz.aa) to match against May contain wildcards.
-.PP
-Definition at line 104 of file xline.h.
-.SS "bool \fBZLine::is_global\fP"
-.PP
-Set if this is a global Z:line (e.g.
-.PP
-it came from another server)
-.PP
-Definition at line 108 of file xline.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/_home_.3 b/docs/man/man3/_home_.3
deleted file mode 100644
index 4fc80ad81..000000000
--- a/docs/man/man3/_home_.3
+++ /dev/null
@@ -1,12 +0,0 @@
-.TH "/home/ Directory Reference" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-/home/ Directory Reference \-
-.SS "Directories"
-
-.in +1c
-.ti -1c
-.RI "directory \fBbrain\fP"
-.br
-.in -1c
diff --git a/docs/man/man3/_home_brain_.3 b/docs/man/man3/_home_brain_.3
deleted file mode 100644
index 29118884a..000000000
--- a/docs/man/man3/_home_brain_.3
+++ /dev/null
@@ -1,12 +0,0 @@
-.TH "/home/brain/ Directory Reference" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-/home/brain/ Directory Reference \-
-.SS "Directories"
-
-.in +1c
-.ti -1c
-.RI "directory \fBinspircd-cvs\fP"
-.br
-.in -1c
diff --git a/docs/man/man3/_home_brain_inspircd-cvs_.3 b/docs/man/man3/_home_brain_inspircd-cvs_.3
deleted file mode 100644
index 1ee75654f..000000000
--- a/docs/man/man3/_home_brain_inspircd-cvs_.3
+++ /dev/null
@@ -1,12 +0,0 @@
-.TH "/home/brain/inspircd-cvs/ Directory Reference" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-/home/brain/inspircd-cvs/ Directory Reference \-
-.SS "Directories"
-
-.in +1c
-.ti -1c
-.RI "directory \fBinspircd\fP"
-.br
-.in -1c
diff --git a/docs/man/man3/_home_brain_inspircd-cvs_inspircd_.3 b/docs/man/man3/_home_brain_inspircd-cvs_inspircd_.3
deleted file mode 100644
index 43c5f6676..000000000
--- a/docs/man/man3/_home_brain_inspircd-cvs_inspircd_.3
+++ /dev/null
@@ -1,15 +0,0 @@
-.TH "/home/brain/inspircd-cvs/inspircd/ Directory Reference" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-/home/brain/inspircd-cvs/inspircd/ Directory Reference \-
-.SS "Directories"
-
-.in +1c
-.ti -1c
-.RI "directory \fBinclude\fP"
-.br
-.ti -1c
-.RI "directory \fBsrc\fP"
-.br
-.in -1c
diff --git a/docs/man/man3/_home_brain_inspircd-cvs_inspircd_include_.3 b/docs/man/man3/_home_brain_inspircd-cvs_inspircd_include_.3
deleted file mode 100644
index b9dcc0d80..000000000
--- a/docs/man/man3/_home_brain_inspircd-cvs_inspircd_include_.3
+++ /dev/null
@@ -1,72 +0,0 @@
-.TH "/home/brain/inspircd-cvs/inspircd/include/ Directory Reference" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-/home/brain/inspircd-cvs/inspircd/include/ Directory Reference \-
-.SS "Files"
-
-.in +1c
-.ti -1c
-.RI "file \fBaes.h\fP"
-.br
-.ti -1c
-.RI "file \fBbase.h\fP"
-.br
-.ti -1c
-.RI "file \fBchannels.h\fP"
-.br
-.ti -1c
-.RI "file \fBcommands.h\fP"
-.br
-.ti -1c
-.RI "file \fBconnection.h\fP"
-.br
-.ti -1c
-.RI "file \fBctables.h\fP"
-.br
-.ti -1c
-.RI "file \fBcull_list.h\fP"
-.br
-.ti -1c
-.RI "file \fBdns.h\fP"
-.br
-.ti -1c
-.RI "file \fBglobals.h\fP"
-.br
-.ti -1c
-.RI "file \fBhashcomp.h\fP"
-.br
-.ti -1c
-.RI "file \fBinspircd.h\fP"
-.br
-.ti -1c
-.RI "file \fBinspircd_io.h\fP"
-.br
-.ti -1c
-.RI "file \fBmessage.h\fP"
-.br
-.ti -1c
-.RI "file \fBmode.h\fP"
-.br
-.ti -1c
-.RI "file \fBmodules.h\fP"
-.br
-.ti -1c
-.RI "file \fBsocket.h\fP"
-.br
-.ti -1c
-.RI "file \fBsocketengine.h\fP"
-.br
-.ti -1c
-.RI "file \fBtypedefs.h\fP"
-.br
-.ti -1c
-.RI "file \fBuserprocess.h\fP"
-.br
-.ti -1c
-.RI "file \fBusers.h\fP"
-.br
-.ti -1c
-.RI "file \fBxline.h\fP"
-.br
-.in -1c
diff --git a/docs/man/man3/_home_brain_inspircd-cvs_inspircd_src_.3 b/docs/man/man3/_home_brain_inspircd-cvs_inspircd_src_.3
deleted file mode 100644
index d3d18d775..000000000
--- a/docs/man/man3/_home_brain_inspircd-cvs_inspircd_src_.3
+++ /dev/null
@@ -1,24 +0,0 @@
-.TH "/home/brain/inspircd-cvs/inspircd/src/ Directory Reference" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-/home/brain/inspircd-cvs/inspircd/src/ Directory Reference \-
-.SS "Files"
-
-.in +1c
-.ti -1c
-.RI "file \fBchannels.cpp\fP"
-.br
-.ti -1c
-.RI "file \fBmodules.cpp\fP"
-.br
-.ti -1c
-.RI "file \fBsocket.cpp\fP"
-.br
-.ti -1c
-.RI "file \fBsocketengine.cpp\fP"
-.br
-.ti -1c
-.RI "file \fBusers.cpp\fP"
-.br
-.in -1c
diff --git a/docs/man/man3/aes.h.3 b/docs/man/man3/aes.h.3
deleted file mode 100644
index 9d0352f33..000000000
--- a/docs/man/man3/aes.h.3
+++ /dev/null
@@ -1,60 +0,0 @@
-.TH "aes.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-aes.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <cstring>\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBAES\fP"
-.br
-.RI "\fIThe AES class is a utility class for use in modules and the core for encryption of data. \fP"
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBto64frombits\fP (unsigned char *out, const unsigned char *in, int inlen)"
-.br
-.RI "\fIConvert from binary to base64. \fP"
-.ti -1c
-.RI "int \fBfrom64tobits\fP (char *out, const char *in, int maxlen)"
-.br
-.RI "\fIConvert from base64 to binary Output Input Size of output buffer. \fP"
-.in -1c
-.SH "Function Documentation"
-.PP
-.SS "int from64tobits (char * out, const char * in, int maxlen)"
-.PP
-Convert from base64 to binary Output Input Size of output buffer.
-.PP
-\fBReturns:\fP
-.RS 4
-Number of bytes actually converted
-.RE
-.PP
-
-.SS "void to64frombits (unsigned char * out, const unsigned char * in, int inlen)"
-.PP
-Convert from binary to base64.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIout\fP Output
-.br
-\fIin\fP Input
-.br
-\fIinlen\fP Number of bytes in input buffer
-.RE
-.PP
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/base.h.3 b/docs/man/man3/base.h.3
deleted file mode 100644
index e8445793c..000000000
--- a/docs/man/man3/base.h.3
+++ /dev/null
@@ -1,50 +0,0 @@
-.TH "base.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-base.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include <time.h>\fP
-.br
-\fC#include <map>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include <string>\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBclassbase\fP"
-.br
-.RI "\fIThe base class for all inspircd classes. \fP"
-.ti -1c
-.RI "class \fBExtensible\fP"
-.br
-.RI "\fIclass Extensible is the parent class of many classes such as userrec and chanrec. \fP"
-.ti -1c
-.RI "class \fBBoolSet\fP"
-.br
-.RI "\fIBoolSet is a utility class designed to hold eight bools in a bitmask. \fP"
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef void * \fBVoidPointer\fP"
-.br
-.in -1c
-.SH "Typedef Documentation"
-.PP
-.SS "typedef void* \fBVoidPointer\fP"
-.PP
-Definition at line 26 of file base.h.
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/channels.cpp.3 b/docs/man/man3/channels.cpp.3
deleted file mode 100644
index d9d19e355..000000000
--- a/docs/man/man3/channels.cpp.3
+++ /dev/null
@@ -1,546 +0,0 @@
-.TH "channels.cpp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-channels.cpp \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include 'inspircd.h'\fP
-.br
-\fC#include 'inspircd_io.h'\fP
-.br
-\fC#include <unistd.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 <time.h>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <hash_map>\fP
-.br
-\fC#include <map>\fP
-.br
-\fC#include <sstream>\fP
-.br
-\fC#include <vector>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include 'users.h'\fP
-.br
-\fC#include 'ctables.h'\fP
-.br
-\fC#include 'globals.h'\fP
-.br
-\fC#include 'modules.h'\fP
-.br
-\fC#include 'dynamic.h'\fP
-.br
-\fC#include 'commands.h'\fP
-.br
-\fC#include 'wildcard.h'\fP
-.br
-\fC#include 'message.h'\fP
-.br
-\fC#include 'mode.h'\fP
-.br
-\fC#include 'xline.h'\fP
-.br
-\fC#include 'inspstring.h'\fP
-.br
-\fC#include 'helperfuncs.h'\fP
-.br
-\fC#include 'typedefs.h'\fP
-.br
-
-.SS "Namespaces"
-
-.in +1c
-.ti -1c
-.RI "namespace \fBstd\fP"
-.br
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBnspace\fP std"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBchanrec\fP * \fBForceChan\fP (\fBchanrec\fP *Ptr, \fBucrec\fP &a, \fBuserrec\fP *user, int created)"
-.br
-.ti -1c
-.RI "\fBchanrec\fP * \fBadd_channel\fP (\fBuserrec\fP *user, const char *cn, const char *key, bool override)"
-.br
-.ti -1c
-.RI "\fBchanrec\fP * \fBdel_channel\fP (\fBuserrec\fP *user, const char *cname, const char *reason, bool local)"
-.br
-.ti -1c
-.RI "void \fBkick_channel\fP (\fBuserrec\fP *src, \fBuserrec\fP *user, \fBchanrec\fP *Ptr, char *reason)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "\fBServerConfig\fP * \fBConfig\fP"
-.br
-.ti -1c
-.RI "int \fBMODCOUNT\fP = -1"
-.br
-.ti -1c
-.RI "std::vector< \fBModule\fP * > \fBmodules\fP"
-.br
-.ti -1c
-.RI "std::vector< \fBircd_module\fP * > \fBfactory\fP"
-.br
-.ti -1c
-.RI "int \fBWHOWAS_STALE\fP"
-.br
-.ti -1c
-.RI "int \fBWHOWAS_MAX\fP"
-.br
-.ti -1c
-.RI "time_t \fBTIME\fP"
-.br
-.ti -1c
-.RI "\fBchan_hash\fP \fBchanlist\fP"
-.br
-.ti -1c
-.RI "std::vector< \fBModeParameter\fP > \fBcustom_mode_params\fP"
-.br
-.in -1c
-.SH "Define Documentation"
-.PP
-.SS "#define nspace std"
-.PP
-Definition at line 54 of file channels.cpp.
-.SH "Function Documentation"
-.PP
-.SS "\fBchanrec\fP* add_channel (\fBuserrec\fP * user, const char * cn, const char * key, bool override)"
-.PP
-Definition at line 194 of file channels.cpp.
-.PP
-References chanrec::bans, chanrec::binarymodes, chanlist, userrec::chans, CM_INVITEONLY, CM_NOEXTERNAL, CM_TOPICLOCK, DEBUG, DEFAULT, connection::fd, FindChan(), ForceChan(), FOREACH_RESULT, userrec::GetFullHost(), has_channel(), userrec::IsInvited(), chanrec::key, chanrec::limit, log(), userrec::modes, chanrec::name, userrec::nick, userrec::RemoveInvite(), TIME, and WriteServ().
-.PP
-Referenced by Server::JoinUserToChannel().
-.PP
-.nf
-195 {
-196 if ((!user) || (!cn))
-197 {
-198 log(DEFAULT,'*** BUG *** add_channel was given an invalid parameter');
-199 return 0;
-200 }
-201
-202 int created = 0;
-203 char cname[MAXBUF];
-204 int MOD_RESULT = 0;
-205 strncpy(cname,cn,CHANMAX);
-206
-207 log(DEBUG,'add_channel: %s %s',user->nick,cname);
-208
-209 chanrec* Ptr = FindChan(cname);
-210
-211 if (!Ptr)
-212 {
-213 if (user->fd > -1)
-214 {
-215 MOD_RESULT = 0;
-216 FOREACH_RESULT(OnUserPreJoin(user,NULL,cname));
-217 if (MOD_RESULT == 1)
-218 return NULL;
-219 }
-220 /* create a new one */
-221 chanlist[cname] = new chanrec();
-222 strlcpy(chanlist[cname]->name, cname,CHANMAX);
-223 chanlist[cname]->binarymodes = CM_TOPICLOCK | CM_NOEXTERNAL;
-224 chanlist[cname]->created = TIME;
-225 strcpy(chanlist[cname]->topic, '');
-226 strncpy(chanlist[cname]->setby, user->nick,NICKMAX);
-227 chanlist[cname]->topicset = 0;
-228 Ptr = chanlist[cname];
-229 log(DEBUG,'add_channel: created: %s',cname);
-230 /* set created to 2 to indicate user
-231 * is the first in the channel
-232 * and should be given ops */
-233 created = 2;
-234 }
-235 else
-236 {
-237 /* Already on the channel */
-238 if (has_channel(user,Ptr))
-239 return NULL;
-240
-241 // remote users are allowed us to bypass channel modes
-242 // and bans (used by servers)
-243 if (user->fd > -1)
-244 {
-245 MOD_RESULT = 0;
-246 FOREACH_RESULT(OnUserPreJoin(user,Ptr,cname));
-247 if (MOD_RESULT == 1)
-248 {
-249 return NULL;
-250 }
-251 else
-252 {
-253 if (*Ptr->key)
-254 {
-255 MOD_RESULT = 0;
-256 FOREACH_RESULT(OnCheckKey(user, Ptr, key ? key : ''));
-257 if (!MOD_RESULT)
-258 {
-259 if (!key)
-260 {
-261 log(DEBUG,'add_channel: no key given in JOIN');
-262 WriteServ(user->fd,'475 %s %s :Cannot join channel (Requires key)',user->nick, Ptr->name);
-263 return NULL;
-264 }
-265 else
-266 {
-267 if (strcasecmp(key,Ptr->key))
-268 {
-269 log(DEBUG,'add_channel: bad key given in JOIN');
-270 WriteServ(user->fd,'475 %s %s :Cannot join channel (Incorrect key)',user->nick, Ptr->name);
-271 return NULL;
-272 }
-273 }
-274 }
-275 }
-276 if (Ptr->binarymodes & CM_INVITEONLY)
-277 {
-278 MOD_RESULT = 0;
-279 irc::string xname(Ptr->name);
-280 FOREACH_RESULT(OnCheckInvite(user, Ptr));
-281 if (!MOD_RESULT)
-282 {
-283 log(DEBUG,'add_channel: channel is +i');
-284 if (user->IsInvited(xname))
-285 {
-286 /* user was invited to channel */
-287 /* there may be an optional channel NOTICE here */
-288 }
-289 else
-290 {
-291 WriteServ(user->fd,'473 %s %s :Cannot join channel (Invite only)',user->nick, Ptr->name);
-292 return NULL;
-293 }
-294 }
-295 user->RemoveInvite(xname);
-296 }
-297 if (Ptr->limit)
-298 {
-299 MOD_RESULT = 0;
-300 FOREACH_RESULT(OnCheckLimit(user, Ptr));
-301 if (!MOD_RESULT)
-302 {
-303 if (usercount(Ptr) >= Ptr->limit)
-304 {
-305 WriteServ(user->fd,'471 %s %s :Cannot join channel (Channel is full)',user->nick, Ptr->name);
-306 return NULL;
-307 }
-308 }
-309 }
-310 if (Ptr->bans.size())
-311 {
-312 log(DEBUG,'add_channel: about to walk banlist');
-313 MOD_RESULT = 0;
-314 FOREACH_RESULT(OnCheckBan(user, Ptr));
-315 if (!MOD_RESULT)
-316 {
-317 for (BanList::iterator i = Ptr->bans.begin(); i != Ptr->bans.end(); i++)
-318 {
-319 if (match(user->GetFullHost(),i->data))
-320 {
-321 WriteServ(user->fd,'474 %s %s :Cannot join channel (You're banned)',user->nick, Ptr->name);
-322 return NULL;
-323 }
-324 }
-325 }
-326 }
-327 }
-328 }
-329 else
-330 {
-331 log(DEBUG,'Overridden checks');
-332 }
-333 created = 1;
-334 }
-335
-336 log(DEBUG,'Passed channel checks');
-337
-338 for (unsigned int index =0; index < user->chans.size(); index++)
-339 {
-340 if (user->chans[index].channel == NULL)
-341 {
-342 return ForceChan(Ptr,user->chans[index],user,created);
-343 }
-344 }
-345 /* XXX: If the user is an oper here, we can just extend their user->chans vector by one
-346 * and put the channel in here. Same for remote users which are not bound by
-347 * the channel limits. Otherwise, nope, youre boned.
-348 */
-349 if (user->fd < 0)
-350 {
-351 ucrec a;
-352 chanrec* c = ForceChan(Ptr,a,user,created);
-353 user->chans.push_back(a);
-354 return c;
-355 }
-356 else if (strchr(user->modes,'o'))
-357 {
-358 /* Oper allows extension up to the OPERMAXCHANS value */
-359 if (user->chans.size() < OPERMAXCHANS)
-360 {
-361 ucrec a;
-362 chanrec* c = ForceChan(Ptr,a,user,created);
-363 user->chans.push_back(a);
-364 return c;
-365 }
-366 }
-367 log(DEBUG,'add_channel: user channel max exceeded: %s %s',user->nick,cname);
-368 WriteServ(user->fd,'405 %s %s :You are on too many channels',user->nick, cname);
-369 return NULL;
-370 }
-.fi
-.PP
-.SS "\fBchanrec\fP* del_channel (\fBuserrec\fP * user, const char * cname, const char * reason, bool local)"
-.PP
-Definition at line 401 of file channels.cpp.
-.PP
-References chanlist, userrec::chans, DEBUG, DEFAULT, chanrec::DelUser(), FindChan(), FOREACH_MOD, log(), chanrec::name, userrec::nick, and WriteChannel().
-.PP
-Referenced by Server::PartUserFromChannel().
-.PP
-.nf
-402 {
-403 if ((!user) || (!cname))
-404 {
-405 log(DEFAULT,'*** BUG *** del_channel was given an invalid parameter');
-406 return NULL;
-407 }
-408
-409 chanrec* Ptr = FindChan(cname);
-410
-411 if (!Ptr)
-412 return NULL;
-413
-414 FOREACH_MOD OnUserPart(user,Ptr);
-415 log(DEBUG,'del_channel: removing: %s %s',user->nick,Ptr->name);
-416
-417 for (unsigned int i =0; i < user->chans.size(); i++)
-418 {
-419 /* zap it from the channel list of the user */
-420 if (user->chans[i].channel == Ptr)
-421 {
-422 if (reason)
-423 {
-424 WriteChannel(Ptr,user,'PART %s :%s',Ptr->name, reason);
-425 }
-426 else
-427 {
-428 WriteChannel(Ptr,user,'PART :%s',Ptr->name);
-429 }
-430 user->chans[i].uc_modes = 0;
-431 user->chans[i].channel = NULL;
-432 log(DEBUG,'del_channel: unlinked: %s %s',user->nick,Ptr->name);
-433 break;
-434 }
-435 }
-436
-437 Ptr->DelUser((char*)user);
-438
-439 /* if there are no users left on the channel */
-440 if (!usercount(Ptr))
-441 {
-442 chan_hash::iterator iter = chanlist.find(Ptr->name);
-443
-444 log(DEBUG,'del_channel: destroying channel: %s',Ptr->name);
-445
-446 /* kill the record */
-447 if (iter != chanlist.end())
-448 {
-449 log(DEBUG,'del_channel: destroyed: %s',Ptr->name);
-450 delete Ptr;
-451 chanlist.erase(iter);
-452 }
-453 }
-454
-455 return NULL;
-456 }
-.fi
-.PP
-.SS "\fBchanrec\fP * ForceChan (\fBchanrec\fP * Ptr, \fBucrec\fP & a, \fBuserrec\fP * user, int created)"
-.PP
-Definition at line 372 of file channels.cpp.
-.PP
-References chanrec::AddUser(), ucrec::channel, DEBUG, FOREACH_MOD, log(), chanrec::name, chanrec::setby, chanrec::topic, chanrec::topicset, ucrec::uc_modes, UCMODE_OP, WriteChannel(), and WriteServ().
-.PP
-Referenced by add_channel().
-.PP
-.nf
-373 {
-374 if (created == 2)
-375 {
-376 /* first user in is given ops */
-377 a.uc_modes = UCMODE_OP;
-378 }
-379 else
-380 {
-381 a.uc_modes = 0;
-382 }
-383 a.channel = Ptr;
-384 Ptr->AddUser((char*)user);
-385 WriteChannel(Ptr,user,'JOIN :%s',Ptr->name);
-386 log(DEBUG,'Sent JOIN to client');
-387 if (Ptr->topicset)
-388 {
-389 WriteServ(user->fd,'332 %s %s :%s', user->nick, Ptr->name, Ptr->topic);
-390 WriteServ(user->fd,'333 %s %s %s %lu', user->nick, Ptr->name, Ptr->setby, (unsigned long)Ptr->topicset);
-391 }
-392 userlist(user,Ptr);
-393 WriteServ(user->fd,'366 %s %s :End of /NAMES list.', user->nick, Ptr->name);
-394 FOREACH_MOD OnUserJoin(user,Ptr);
-395 return Ptr;
-396 }
-.fi
-.PP
-.SS "void kick_channel (\fBuserrec\fP * src, \fBuserrec\fP * user, \fBchanrec\fP * Ptr, char * reason)"
-.PP
-Definition at line 459 of file channels.cpp.
-.PP
-References AC_KICK, ACR_DEFAULT, ACR_DENY, chanlist, userrec::chans, cstatus(), DEBUG, DEFAULT, chanrec::DelUser(), connection::fd, FOREACH_MOD, FOREACH_RESULT, has_channel(), is_uline(), log(), chanrec::name, userrec::nick, userrec::server, STATUS_HOP, WriteChannel(), and WriteServ().
-.PP
-.nf
-460 {
-461 if ((!src) || (!user) || (!Ptr) || (!reason))
-462 {
-463 log(DEFAULT,'*** BUG *** kick_channel was given an invalid parameter');
-464 return;
-465 }
-466
-467 if ((!Ptr) || (!user) || (!src))
-468 {
-469 return;
-470 }
-471
-472 log(DEBUG,'kick_channel: removing: %s %s %s',user->nick,Ptr->name,src->nick);
-473
-474 if (!has_channel(user,Ptr))
-475 {
-476 WriteServ(src->fd,'441 %s %s %s :They are not on that channel',src->nick, user->nick, Ptr->name);
-477 return;
-478 }
-479
-480 int MOD_RESULT = 0;
-481 FOREACH_RESULT(OnAccessCheck(src,user,Ptr,AC_KICK));
-482 if ((MOD_RESULT == ACR_DENY) && (!is_uline(src->server)))
-483 return;
-484
-485 if ((MOD_RESULT == ACR_DEFAULT) || (!is_uline(src->server)))
-486 {
-487 if ((cstatus(src,Ptr) < STATUS_HOP) || (cstatus(src,Ptr) < cstatus(user,Ptr)))
-488 {
-489 if (cstatus(src,Ptr) == STATUS_HOP)
-490 {
-491 WriteServ(src->fd,'482 %s %s :You must be a channel operator',src->nick, Ptr->name);
-492 }
-493 else
-494 {
-495 WriteServ(src->fd,'482 %s %s :You must be at least a half-operator to change modes on this channel',src->nick, Ptr->name);
-496 }
-497
-498 return;
-499 }
-500 }
-501
-502 if (!is_uline(src->server))
-503 {
-504 MOD_RESULT = 0;
-505 FOREACH_RESULT(OnUserPreKick(src,user,Ptr,reason));
-506 if (MOD_RESULT)
-507 return;
-508 }
-509
-510 FOREACH_MOD OnUserKick(src,user,Ptr,reason);
-511
-512 for (unsigned int i =0; i < user->chans.size(); i++)
-513 {
-514 /* zap it from the channel list of the user */
-515 if (user->chans[i].channel)
-516 if (!strcasecmp(user->chans[i].channel->name,Ptr->name))
-517 {
-518 WriteChannel(Ptr,src,'KICK %s %s :%s',Ptr->name, user->nick, reason);
-519 user->chans[i].uc_modes = 0;
-520 user->chans[i].channel = NULL;
-521 log(DEBUG,'del_channel: unlinked: %s %s',user->nick,Ptr->name);
-522 break;
-523 }
-524 }
-525
-526 Ptr->DelUser((char*)user);
-527
-528 /* if there are no users left on the channel */
-529 if (!usercount(Ptr))
-530 {
-531 chan_hash::iterator iter = chanlist.find(Ptr->name);
-532
-533 log(DEBUG,'del_channel: destroying channel: %s',Ptr->name);
-534
-535 /* kill the record */
-536 if (iter != chanlist.end())
-537 {
-538 log(DEBUG,'del_channel: destroyed: %s',Ptr->name);
-539 delete Ptr;
-540 chanlist.erase(iter);
-541 }
-542 }
-543 }
-.fi
-.PP
-.SH "Variable Documentation"
-.PP
-.SS "\fBchan_hash\fP \fBchanlist\fP"
-.PP
-Referenced by add_channel(), del_channel(), and kick_channel().
-.SS "\fBServerConfig\fP* \fBConfig\fP"
-.PP
-.SS "std::vector<\fBModeParameter\fP> \fBcustom_mode_params\fP"
-.PP
-Definition at line 69 of file channels.cpp.
-.PP
-Referenced by chanrec::GetModeParameter(), and chanrec::SetCustomModeParam().
-.SS "std::vector<\fBircd_module\fP*> factory"
-.PP
-.SS "int \fBMODCOUNT\fP = -1"
-.PP
-Definition at line 934 of file modules.cpp.
-.PP
-Referenced by Server::FindModule().
-.SS "std::vector<\fBModule\fP*> modules"
-.PP
-Referenced by Server::FindModule().
-.SS "time_t \fBTIME\fP"
-.PP
-Referenced by add_channel(), AddClient(), AddWhoWas(), FullConnectUser(), and userrec::userrec().
-.SS "int \fBWHOWAS_MAX\fP"
-.PP
-Referenced by AddWhoWas().
-.SS "int \fBWHOWAS_STALE\fP"
-.PP
-Referenced by AddWhoWas().
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/channels.h.3 b/docs/man/man3/channels.h.3
deleted file mode 100644
index 1686d1a89..000000000
--- a/docs/man/man3/channels.h.3
+++ /dev/null
@@ -1,528 +0,0 @@
-.TH "channels.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-channels.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include 'base.h'\fP
-.br
-\fC#include <time.h>\fP
-.br
-\fC#include <vector>\fP
-.br
-\fC#include <string>\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBHostItem\fP"
-.br
-.RI "\fIHolds an entry for a ban list, exemption list, or invite list. \fP"
-.ti -1c
-.RI "class \fBBanItem\fP"
-.br
-.RI "\fIA subclass of \fBHostItem\fP designed to hold channel bans (+b). \fP"
-.ti -1c
-.RI "class \fBExemptItem\fP"
-.br
-.RI "\fIA subclass of \fBHostItem\fP designed to hold channel exempts (+e). \fP"
-.ti -1c
-.RI "class \fBInviteItem\fP"
-.br
-.RI "\fIA subclass of \fBHostItem\fP designed to hold channel invites (+I). \fP"
-.ti -1c
-.RI "class \fBModeParameter\fP"
-.br
-.RI "\fIHolds a custom parameter to a module-defined channel mode e.g. \fP"
-.ti -1c
-.RI "class \fBchanrec\fP"
-.br
-.RI "\fIHolds all relevent information for a channel. \fP"
-.ti -1c
-.RI "class \fBucrec\fP"
-.br
-.RI "\fIHolds 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. \fP"
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBCM_TOPICLOCK\fP 1"
-.br
-.ti -1c
-.RI "#define \fBCM_NOEXTERNAL\fP 2"
-.br
-.ti -1c
-.RI "#define \fBCM_INVITEONLY\fP 4"
-.br
-.ti -1c
-.RI "#define \fBCM_MODERATED\fP 8"
-.br
-.ti -1c
-.RI "#define \fBCM_SECRET\fP 16"
-.br
-.ti -1c
-.RI "#define \fBCM_PRIVATE\fP 32"
-.br
-.ti -1c
-.RI "#define \fBUCMODE_OP\fP 1"
-.br
-.ti -1c
-.RI "#define \fBUCMODE_VOICE\fP 2"
-.br
-.ti -1c
-.RI "#define \fBUCMODE_HOP\fP 4"
-.br
-.ti -1c
-.RI "#define \fBUCMODE_PROTECT\fP 8"
-.br
-.ti -1c
-.RI "#define \fBUCMODE_FOUNDER\fP 16"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef std::vector< \fBBanItem\fP > \fBBanList\fP"
-.br
-.RI "\fIHolds a complete ban list. \fP"
-.ti -1c
-.RI "typedef std::vector< \fBExemptItem\fP > \fBExemptList\fP"
-.br
-.RI "\fIHolds a complete exempt list. \fP"
-.ti -1c
-.RI "typedef std::vector< \fBInviteItem\fP > \fBInviteList\fP"
-.br
-.RI "\fIHolds a complete invite list. \fP"
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBchanrec\fP * \fBadd_channel\fP (\fBuserrec\fP *user, const char *cn, const char *key, bool override)"
-.br
-.ti -1c
-.RI "\fBchanrec\fP * \fBdel_channel\fP (\fBuserrec\fP *user, const char *cname, const char *reason, bool local)"
-.br
-.ti -1c
-.RI "void \fBkick_channel\fP (\fBuserrec\fP *src, \fBuserrec\fP *user, \fBchanrec\fP *Ptr, char *reason)"
-.br
-.in -1c
-.SH "Define Documentation"
-.PP
-.SS "#define CM_INVITEONLY 4"
-.PP
-Definition at line 28 of file channels.h.
-.PP
-Referenced by add_channel().
-.SS "#define CM_MODERATED 8"
-.PP
-Definition at line 29 of file channels.h.
-.SS "#define CM_NOEXTERNAL 2"
-.PP
-Definition at line 27 of file channels.h.
-.PP
-Referenced by add_channel().
-.SS "#define CM_PRIVATE 32"
-.PP
-Definition at line 31 of file channels.h.
-.SS "#define CM_SECRET 16"
-.PP
-Definition at line 30 of file channels.h.
-.SS "#define CM_TOPICLOCK 1"
-.PP
-Definition at line 26 of file channels.h.
-.PP
-Referenced by add_channel().
-.SS "#define UCMODE_FOUNDER 16"
-.PP
-Definition at line 236 of file channels.h.
-.SS "#define UCMODE_HOP 4"
-.PP
-Definition at line 234 of file channels.h.
-.SS "#define UCMODE_OP 1"
-.PP
-Definition at line 232 of file channels.h.
-.PP
-Referenced by ForceChan().
-.SS "#define UCMODE_PROTECT 8"
-.PP
-Definition at line 235 of file channels.h.
-.SS "#define UCMODE_VOICE 2"
-.PP
-Definition at line 233 of file channels.h.
-.SH "Typedef Documentation"
-.PP
-.SS "typedef std::vector<\fBBanItem\fP> \fBBanList\fP"
-.PP
-Holds a complete ban list.
-.PP
-Definition at line 89 of file channels.h.
-.SS "typedef std::vector<\fBExemptItem\fP> \fBExemptList\fP"
-.PP
-Holds a complete exempt list.
-.PP
-Definition at line 93 of file channels.h.
-.SS "typedef std::vector<\fBInviteItem\fP> \fBInviteList\fP"
-.PP
-Holds a complete invite list.
-.PP
-Definition at line 97 of file channels.h.
-.SH "Function Documentation"
-.PP
-.SS "\fBchanrec\fP* add_channel (\fBuserrec\fP * user, const char * cn, const char * key, bool override)"
-.PP
-Definition at line 194 of file channels.cpp.
-.PP
-References chanrec::bans, chanrec::binarymodes, chanlist, userrec::chans, CM_INVITEONLY, CM_NOEXTERNAL, CM_TOPICLOCK, DEBUG, DEFAULT, connection::fd, FindChan(), ForceChan(), FOREACH_RESULT, userrec::GetFullHost(), has_channel(), userrec::IsInvited(), chanrec::key, chanrec::limit, log(), userrec::modes, chanrec::name, userrec::nick, userrec::RemoveInvite(), TIME, and WriteServ().
-.PP
-Referenced by Server::JoinUserToChannel().
-.PP
-.nf
-195 {
-196 if ((!user) || (!cn))
-197 {
-198 log(DEFAULT,'*** BUG *** add_channel was given an invalid parameter');
-199 return 0;
-200 }
-201
-202 int created = 0;
-203 char cname[MAXBUF];
-204 int MOD_RESULT = 0;
-205 strncpy(cname,cn,CHANMAX);
-206
-207 log(DEBUG,'add_channel: %s %s',user->nick,cname);
-208
-209 chanrec* Ptr = FindChan(cname);
-210
-211 if (!Ptr)
-212 {
-213 if (user->fd > -1)
-214 {
-215 MOD_RESULT = 0;
-216 FOREACH_RESULT(OnUserPreJoin(user,NULL,cname));
-217 if (MOD_RESULT == 1)
-218 return NULL;
-219 }
-220 /* create a new one */
-221 chanlist[cname] = new chanrec();
-222 strlcpy(chanlist[cname]->name, cname,CHANMAX);
-223 chanlist[cname]->binarymodes = CM_TOPICLOCK | CM_NOEXTERNAL;
-224 chanlist[cname]->created = TIME;
-225 strcpy(chanlist[cname]->topic, '');
-226 strncpy(chanlist[cname]->setby, user->nick,NICKMAX);
-227 chanlist[cname]->topicset = 0;
-228 Ptr = chanlist[cname];
-229 log(DEBUG,'add_channel: created: %s',cname);
-230 /* set created to 2 to indicate user
-231 * is the first in the channel
-232 * and should be given ops */
-233 created = 2;
-234 }
-235 else
-236 {
-237 /* Already on the channel */
-238 if (has_channel(user,Ptr))
-239 return NULL;
-240
-241 // remote users are allowed us to bypass channel modes
-242 // and bans (used by servers)
-243 if (user->fd > -1)
-244 {
-245 MOD_RESULT = 0;
-246 FOREACH_RESULT(OnUserPreJoin(user,Ptr,cname));
-247 if (MOD_RESULT == 1)
-248 {
-249 return NULL;
-250 }
-251 else
-252 {
-253 if (*Ptr->key)
-254 {
-255 MOD_RESULT = 0;
-256 FOREACH_RESULT(OnCheckKey(user, Ptr, key ? key : ''));
-257 if (!MOD_RESULT)
-258 {
-259 if (!key)
-260 {
-261 log(DEBUG,'add_channel: no key given in JOIN');
-262 WriteServ(user->fd,'475 %s %s :Cannot join channel (Requires key)',user->nick, Ptr->name);
-263 return NULL;
-264 }
-265 else
-266 {
-267 if (strcasecmp(key,Ptr->key))
-268 {
-269 log(DEBUG,'add_channel: bad key given in JOIN');
-270 WriteServ(user->fd,'475 %s %s :Cannot join channel (Incorrect key)',user->nick, Ptr->name);
-271 return NULL;
-272 }
-273 }
-274 }
-275 }
-276 if (Ptr->binarymodes & CM_INVITEONLY)
-277 {
-278 MOD_RESULT = 0;
-279 irc::string xname(Ptr->name);
-280 FOREACH_RESULT(OnCheckInvite(user, Ptr));
-281 if (!MOD_RESULT)
-282 {
-283 log(DEBUG,'add_channel: channel is +i');
-284 if (user->IsInvited(xname))
-285 {
-286 /* user was invited to channel */
-287 /* there may be an optional channel NOTICE here */
-288 }
-289 else
-290 {
-291 WriteServ(user->fd,'473 %s %s :Cannot join channel (Invite only)',user->nick, Ptr->name);
-292 return NULL;
-293 }
-294 }
-295 user->RemoveInvite(xname);
-296 }
-297 if (Ptr->limit)
-298 {
-299 MOD_RESULT = 0;
-300 FOREACH_RESULT(OnCheckLimit(user, Ptr));
-301 if (!MOD_RESULT)
-302 {
-303 if (usercount(Ptr) >= Ptr->limit)
-304 {
-305 WriteServ(user->fd,'471 %s %s :Cannot join channel (Channel is full)',user->nick, Ptr->name);
-306 return NULL;
-307 }
-308 }
-309 }
-310 if (Ptr->bans.size())
-311 {
-312 log(DEBUG,'add_channel: about to walk banlist');
-313 MOD_RESULT = 0;
-314 FOREACH_RESULT(OnCheckBan(user, Ptr));
-315 if (!MOD_RESULT)
-316 {
-317 for (BanList::iterator i = Ptr->bans.begin(); i != Ptr->bans.end(); i++)
-318 {
-319 if (match(user->GetFullHost(),i->data))
-320 {
-321 WriteServ(user->fd,'474 %s %s :Cannot join channel (You're banned)',user->nick, Ptr->name);
-322 return NULL;
-323 }
-324 }
-325 }
-326 }
-327 }
-328 }
-329 else
-330 {
-331 log(DEBUG,'Overridden checks');
-332 }
-333 created = 1;
-334 }
-335
-336 log(DEBUG,'Passed channel checks');
-337
-338 for (unsigned int index =0; index < user->chans.size(); index++)
-339 {
-340 if (user->chans[index].channel == NULL)
-341 {
-342 return ForceChan(Ptr,user->chans[index],user,created);
-343 }
-344 }
-345 /* XXX: If the user is an oper here, we can just extend their user->chans vector by one
-346 * and put the channel in here. Same for remote users which are not bound by
-347 * the channel limits. Otherwise, nope, youre boned.
-348 */
-349 if (user->fd < 0)
-350 {
-351 ucrec a;
-352 chanrec* c = ForceChan(Ptr,a,user,created);
-353 user->chans.push_back(a);
-354 return c;
-355 }
-356 else if (strchr(user->modes,'o'))
-357 {
-358 /* Oper allows extension up to the OPERMAXCHANS value */
-359 if (user->chans.size() < OPERMAXCHANS)
-360 {
-361 ucrec a;
-362 chanrec* c = ForceChan(Ptr,a,user,created);
-363 user->chans.push_back(a);
-364 return c;
-365 }
-366 }
-367 log(DEBUG,'add_channel: user channel max exceeded: %s %s',user->nick,cname);
-368 WriteServ(user->fd,'405 %s %s :You are on too many channels',user->nick, cname);
-369 return NULL;
-370 }
-.fi
-.PP
-.SS "\fBchanrec\fP* del_channel (\fBuserrec\fP * user, const char * cname, const char * reason, bool local)"
-.PP
-Definition at line 401 of file channels.cpp.
-.PP
-References chanlist, userrec::chans, DEBUG, DEFAULT, chanrec::DelUser(), FindChan(), FOREACH_MOD, log(), chanrec::name, userrec::nick, and WriteChannel().
-.PP
-Referenced by Server::PartUserFromChannel().
-.PP
-.nf
-402 {
-403 if ((!user) || (!cname))
-404 {
-405 log(DEFAULT,'*** BUG *** del_channel was given an invalid parameter');
-406 return NULL;
-407 }
-408
-409 chanrec* Ptr = FindChan(cname);
-410
-411 if (!Ptr)
-412 return NULL;
-413
-414 FOREACH_MOD OnUserPart(user,Ptr);
-415 log(DEBUG,'del_channel: removing: %s %s',user->nick,Ptr->name);
-416
-417 for (unsigned int i =0; i < user->chans.size(); i++)
-418 {
-419 /* zap it from the channel list of the user */
-420 if (user->chans[i].channel == Ptr)
-421 {
-422 if (reason)
-423 {
-424 WriteChannel(Ptr,user,'PART %s :%s',Ptr->name, reason);
-425 }
-426 else
-427 {
-428 WriteChannel(Ptr,user,'PART :%s',Ptr->name);
-429 }
-430 user->chans[i].uc_modes = 0;
-431 user->chans[i].channel = NULL;
-432 log(DEBUG,'del_channel: unlinked: %s %s',user->nick,Ptr->name);
-433 break;
-434 }
-435 }
-436
-437 Ptr->DelUser((char*)user);
-438
-439 /* if there are no users left on the channel */
-440 if (!usercount(Ptr))
-441 {
-442 chan_hash::iterator iter = chanlist.find(Ptr->name);
-443
-444 log(DEBUG,'del_channel: destroying channel: %s',Ptr->name);
-445
-446 /* kill the record */
-447 if (iter != chanlist.end())
-448 {
-449 log(DEBUG,'del_channel: destroyed: %s',Ptr->name);
-450 delete Ptr;
-451 chanlist.erase(iter);
-452 }
-453 }
-454
-455 return NULL;
-456 }
-.fi
-.PP
-.SS "void kick_channel (\fBuserrec\fP * src, \fBuserrec\fP * user, \fBchanrec\fP * Ptr, char * reason)"
-.PP
-Definition at line 459 of file channels.cpp.
-.PP
-References AC_KICK, ACR_DEFAULT, ACR_DENY, chanlist, userrec::chans, cstatus(), DEBUG, DEFAULT, chanrec::DelUser(), connection::fd, FOREACH_MOD, FOREACH_RESULT, has_channel(), is_uline(), log(), chanrec::name, userrec::nick, userrec::server, STATUS_HOP, WriteChannel(), and WriteServ().
-.PP
-.nf
-460 {
-461 if ((!src) || (!user) || (!Ptr) || (!reason))
-462 {
-463 log(DEFAULT,'*** BUG *** kick_channel was given an invalid parameter');
-464 return;
-465 }
-466
-467 if ((!Ptr) || (!user) || (!src))
-468 {
-469 return;
-470 }
-471
-472 log(DEBUG,'kick_channel: removing: %s %s %s',user->nick,Ptr->name,src->nick);
-473
-474 if (!has_channel(user,Ptr))
-475 {
-476 WriteServ(src->fd,'441 %s %s %s :They are not on that channel',src->nick, user->nick, Ptr->name);
-477 return;
-478 }
-479
-480 int MOD_RESULT = 0;
-481 FOREACH_RESULT(OnAccessCheck(src,user,Ptr,AC_KICK));
-482 if ((MOD_RESULT == ACR_DENY) && (!is_uline(src->server)))
-483 return;
-484
-485 if ((MOD_RESULT == ACR_DEFAULT) || (!is_uline(src->server)))
-486 {
-487 if ((cstatus(src,Ptr) < STATUS_HOP) || (cstatus(src,Ptr) < cstatus(user,Ptr)))
-488 {
-489 if (cstatus(src,Ptr) == STATUS_HOP)
-490 {
-491 WriteServ(src->fd,'482 %s %s :You must be a channel operator',src->nick, Ptr->name);
-492 }
-493 else
-494 {
-495 WriteServ(src->fd,'482 %s %s :You must be at least a half-operator to change modes on this channel',src->nick, Ptr->name);
-496 }
-497
-498 return;
-499 }
-500 }
-501
-502 if (!is_uline(src->server))
-503 {
-504 MOD_RESULT = 0;
-505 FOREACH_RESULT(OnUserPreKick(src,user,Ptr,reason));
-506 if (MOD_RESULT)
-507 return;
-508 }
-509
-510 FOREACH_MOD OnUserKick(src,user,Ptr,reason);
-511
-512 for (unsigned int i =0; i < user->chans.size(); i++)
-513 {
-514 /* zap it from the channel list of the user */
-515 if (user->chans[i].channel)
-516 if (!strcasecmp(user->chans[i].channel->name,Ptr->name))
-517 {
-518 WriteChannel(Ptr,src,'KICK %s %s :%s',Ptr->name, user->nick, reason);
-519 user->chans[i].uc_modes = 0;
-520 user->chans[i].channel = NULL;
-521 log(DEBUG,'del_channel: unlinked: %s %s',user->nick,Ptr->name);
-522 break;
-523 }
-524 }
-525
-526 Ptr->DelUser((char*)user);
-527
-528 /* if there are no users left on the channel */
-529 if (!usercount(Ptr))
-530 {
-531 chan_hash::iterator iter = chanlist.find(Ptr->name);
-532
-533 log(DEBUG,'del_channel: destroying channel: %s',Ptr->name);
-534
-535 /* kill the record */
-536 if (iter != chanlist.end())
-537 {
-538 log(DEBUG,'del_channel: destroyed: %s',Ptr->name);
-539 delete Ptr;
-540 chanlist.erase(iter);
-541 }
-542 }
-543 }
-.fi
-.PP
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/chanrec.3 b/docs/man/man3/chanrec.3
deleted file mode 100644
index 83c154d23..000000000
--- a/docs/man/man3/chanrec.3
+++ /dev/null
@@ -1,497 +0,0 @@
-.TH "chanrec" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-chanrec \- Holds all relevent information for a channel.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <channels.h>\fP
-.PP
-Inherits \fBExtensible\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBSetCustomMode\fP (char mode, bool mode_on)"
-.br
-.RI "\fISets or unsets a custom mode in the channels info. \fP"
-.ti -1c
-.RI "void \fBSetCustomModeParam\fP (char mode, char *parameter, bool mode_on)"
-.br
-.RI "\fISets or unsets the parameters for a custom mode in a channels info. \fP"
-.ti -1c
-.RI "bool \fBIsCustomModeSet\fP (char mode)"
-.br
-.RI "\fIReturns true if a custom mode is set on a channel. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBGetModeParameter\fP (char mode)"
-.br
-.RI "\fIReturns the parameter for a custom mode on a channel. \fP"
-.ti -1c
-.RI "long \fBGetUserCounter\fP ()"
-.br
-.RI "\fIObtain the channel 'user counter' This returns the channel reference counter, which is initialized to 0 when the channel is created and incremented/decremented upon joins, parts quits and kicks. \fP"
-.ti -1c
-.RI "void \fBAddUser\fP (char *castuser)"
-.br
-.RI "\fIAdd a user pointer to the internal reference list. \fP"
-.ti -1c
-.RI "void \fBDelUser\fP (char *castuser)"
-.br
-.RI "\fIDelete a user pointer to the internal reference list. \fP"
-.ti -1c
-.RI "std::vector< char * > * \fBGetUsers\fP ()"
-.br
-.RI "\fIObrain the internal reference list The internal reference list contains a list of userrec* cast to char*. \fP"
-.ti -1c
-.RI "\fBchanrec\fP ()"
-.br
-.RI "\fICreates a channel record and initialises it with default values. \fP"
-.ti -1c
-.RI "virtual \fB~chanrec\fP ()"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBname\fP [CHANMAX]"
-.br
-.RI "\fIThe channels name. \fP"
-.ti -1c
-.RI "char \fBcustom_modes\fP [MAXMODES]"
-.br
-.RI "\fICustom modes for the channel. \fP"
-.ti -1c
-.RI "std::vector< char * > \fBinternal_userlist\fP"
-.br
-.RI "\fIUser list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!). \fP"
-.ti -1c
-.RI "char \fBtopic\fP [MAXBUF]"
-.br
-.RI "\fIChannel topic. \fP"
-.ti -1c
-.RI "time_t \fBcreated\fP"
-.br
-.RI "\fICreation time. \fP"
-.ti -1c
-.RI "time_t \fBtopicset\fP"
-.br
-.RI "\fITime topic was set. \fP"
-.ti -1c
-.RI "char \fBsetby\fP [NICKMAX]"
-.br
-.RI "\fIThe last user to set the topic. \fP"
-.ti -1c
-.RI "short int \fBlimit\fP"
-.br
-.RI "\fIContains the channel user limit. \fP"
-.ti -1c
-.RI "char \fBkey\fP [32]"
-.br
-.RI "\fIContains the channel key. \fP"
-.ti -1c
-.RI "char \fBbinarymodes\fP"
-.br
-.RI "\fIContains a bitmask of the CM_* builtin (RFC) binary mode symbols. \fP"
-.ti -1c
-.RI "\fBBanList\fP \fBbans\fP"
-.br
-.RI "\fIThe list of all bans set on the channel. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-Holds all relevent information for a channel.
-
-This class represents a channel, and contains its name, modes, time created, topic, topic set time, etc, and an instance of the BanList type.
-.PP
-Definition at line 103 of file channels.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "chanrec::chanrec ()"
-.PP
-Creates a channel record and initialises it with default values.
-.PP
-Definition at line 73 of file channels.cpp.
-.PP
-References binarymodes, created, custom_modes, internal_userlist, key, limit, name, setby, topic, and topicset.
-.PP
-.nf
-74 {
-75 strcpy(name,'');
-76 strcpy(custom_modes,'');
-77 strcpy(topic,'');
-78 strcpy(setby,'');
-79 strcpy(key,'');
-80 created = topicset = limit = 0;
-81 binarymodes = 0;
-82 internal_userlist.clear();
-83 }
-.fi
-.PP
-.SS "virtual chanrec::~chanrec ()\fC [inline, virtual]\fP"
-.PP
-Definition at line 226 of file channels.h.
-.PP
-.nf
-226 { /* stub */ }
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "void chanrec::AddUser (char * castuser)"
-.PP
-Add a user pointer to the internal reference list.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIcastuser\fP This should be a pointer to a userrec, casted to char*
-.RE
-.PP
-The data inserted into the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison.
-.PP
-Definition at line 166 of file channels.cpp.
-.PP
-References DEBUG, internal_userlist, and log().
-.PP
-Referenced by ForceChan().
-.PP
-.nf
-167 {
-168 internal_userlist.push_back(castuser);
-169 log(DEBUG,'Added casted user to channel's internal list');
-170 }
-.fi
-.PP
-.SS "void chanrec::DelUser (char * castuser)"
-.PP
-Delete a user pointer to the internal reference list.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIcastuser\fP This should be a pointer to a userrec, casted to char*
-.RE
-.PP
-The data removed from the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison.
-.PP
-Definition at line 172 of file channels.cpp.
-.PP
-References DEBUG, internal_userlist, log(), and name.
-.PP
-Referenced by del_channel(), and kick_channel().
-.PP
-.nf
-173 {
-174 for (std::vector<char*>::iterator a = internal_userlist.begin(); a < internal_userlist.end(); a++)
-175 {
-176 if (*a == castuser)
-177 {
-178 log(DEBUG,'Removed casted user from channel's internal list');
-179 internal_userlist.erase(a);
-180 return;
-181 }
-182 }
-183 log(DEBUG,'BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!',name);
-184 }
-.fi
-.PP
-.SS "\fBstd::string\fP chanrec::GetModeParameter (char mode)"
-.PP
-Returns the parameter for a custom mode on a channel.
-.PP
-\fBParameters:\fP
-.RS 4
-\fImode\fP The mode character you wish to query
-.RE
-.PP
-For example if '+L #foo' is set, and you pass this method 'L', it will return 'foo'. If the mode is not set on the channel, or the mode has no parameters associated with it, it will return an empty string.
-.PP
-\fBReturns:\fP
-.RS 4
-The parameter for this mode is returned, or an empty string
-.RE
-.PP
-
-.PP
-Definition at line 146 of file channels.cpp.
-.PP
-References custom_mode_params.
-.PP
-.nf
-147 {
-148 if (custom_mode_params.size())
-149 {
-150 for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
-151 {
-152 if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
-153 {
-154 return i->parameter;
-155 }
-156 }
-157 }
-158 return '';
-159 }
-.fi
-.PP
-.SS "long chanrec::GetUserCounter ()"
-.PP
-Obtain the channel 'user counter' This returns the channel reference counter, which is initialized to 0 when the channel is created and incremented/decremented upon joins, parts quits and kicks.
-.PP
-\fBReturns:\fP
-.RS 4
-The number of users on this channel
-.RE
-.PP
-
-.PP
-Definition at line 161 of file channels.cpp.
-.PP
-.nf
-162 {
-163 return (this->internal_userlist.size());
-164 }
-.fi
-.PP
-.SS "std::vector< char * > * chanrec::GetUsers ()"
-.PP
-Obrain the internal reference list The internal reference list contains a list of userrec* cast to char*.
-.PP
-These are used for rapid comparison to determine channel membership for PRIVMSG, NOTICE, QUIT, PART etc. The resulting pointer to the vector should be considered readonly and only modified via AddUser and DelUser.
-.PP
-\fBReturns:\fP
-.RS 4
-This function returns a vector of userrec pointers, each of which has been casted to char* to prevent circular references
-.RE
-.PP
-
-.PP
-Definition at line 186 of file channels.cpp.
-.PP
-References internal_userlist.
-.PP
-Referenced by Server::GetUsers().
-.PP
-.nf
-187 {
-188 return &internal_userlist;
-189 }
-.fi
-.PP
-.SS "bool chanrec::IsCustomModeSet (char mode)"
-.PP
-Returns true if a custom mode is set on a channel.
-.PP
-\fBParameters:\fP
-.RS 4
-\fImode\fP The mode character you wish to query
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-True if the custom mode is set, false if otherwise
-.RE
-.PP
-
-.PP
-Definition at line 141 of file channels.cpp.
-.PP
-.nf
-142 {
-143 return (strchr(this->custom_modes,mode));
-144 }
-.fi
-.PP
-.SS "void chanrec::SetCustomMode (char mode, bool mode_on)"
-.PP
-Sets or unsets a custom mode in the channels info.
-.PP
-\fBParameters:\fP
-.RS 4
-\fImode\fP The mode character to set or unset
-.br
-\fImode_on\fP True if you want to set the mode or false if you want to remove it
-.RE
-.PP
-
-.PP
-Definition at line 85 of file channels.cpp.
-.PP
-References custom_modes, DEBUG, log(), and SetCustomModeParam().
-.PP
-.nf
-86 {
-87 if (mode_on) {
-88 static char m[3];
-89 m[0] = mode;
-90 m[1] = '\0';
-91 if (!strchr(this->custom_modes,mode))
-92 {
-93 strlcat(custom_modes,m,MAXMODES);
-94 }
-95 log(DEBUG,'Custom mode %c set',mode);
-96 }
-97 else {
-98
-99 std::string a = this->custom_modes;
-100 int pos = a.find(mode);
-101 a.erase(pos,1);
-102 strncpy(this->custom_modes,a.c_str(),MAXMODES);
-103
-104 log(DEBUG,'Custom mode %c removed: modelist='%s'',mode,this->custom_modes);
-105 this->SetCustomModeParam(mode,'',false);
-106 }
-107 }
-.fi
-.PP
-.SS "void chanrec::SetCustomModeParam (char mode, char * parameter, bool mode_on)"
-.PP
-Sets or unsets the parameters for a custom mode in a channels info.
-.PP
-\fBParameters:\fP
-.RS 4
-\fImode\fP The mode character to set or unset
-.br
-\fIparameter\fP The parameter string to associate with this mode character
-.br
-\fImode_on\fP True if you want to set the mode or false if you want to remove it
-.RE
-.PP
-
-.PP
-Definition at line 110 of file channels.cpp.
-.PP
-References ModeParameter::channel, custom_mode_params, DEBUG, log(), ModeParameter::mode, and ModeParameter::parameter.
-.PP
-Referenced by SetCustomMode().
-.PP
-.nf
-111 {
-112
-113 log(DEBUG,'SetCustomModeParam called');
-114 ModeParameter M;
-115 M.mode = mode;
-116 strlcpy(M.channel,this->name,CHANMAX);
-117 strlcpy(M.parameter,parameter,MAXBUF);
-118 if (mode_on)
-119 {
-120 log(DEBUG,'Custom mode parameter %c %s added',mode,parameter);
-121 custom_mode_params.push_back(M);
-122 }
-123 else
-124 {
-125 if (custom_mode_params.size())
-126 {
-127 for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
-128 {
-129 if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
-130 {
-131 log(DEBUG,'Custom mode parameter %c %s removed',mode,parameter);
-132 custom_mode_params.erase(i);
-133 return;
-134 }
-135 }
-136 }
-137 log(DEBUG,'*** BUG *** Attempt to remove non-existent mode parameter!');
-138 }
-139 }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "\fBBanList\fP \fBchanrec::bans\fP"
-.PP
-The list of all bans set on the channel.
-.PP
-Definition at line 151 of file channels.h.
-.PP
-Referenced by add_channel().
-.SS "char \fBchanrec::binarymodes\fP"
-.PP
-Contains a bitmask of the CM_* builtin (RFC) binary mode symbols.
-.PP
-Definition at line 147 of file channels.h.
-.PP
-Referenced by add_channel(), and chanrec().
-.SS "time_t \fBchanrec::created\fP"
-.PP
-Creation time.
-.PP
-Definition at line 125 of file channels.h.
-.PP
-Referenced by chanrec().
-.SS "char \fBchanrec::custom_modes\fP[MAXMODES]"
-.PP
-Custom modes for the channel.
-.PP
-Plugins may use this field in any way they see fit.
-.PP
-Definition at line 112 of file channels.h.
-.PP
-Referenced by chanrec(), and SetCustomMode().
-.SS "std::vector<char*> \fBchanrec::internal_userlist\fP"
-.PP
-User list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!).
-.PP
-Definition at line 117 of file channels.h.
-.PP
-Referenced by AddUser(), chanrec(), DelUser(), and GetUsers().
-.SS "char \fBchanrec::key\fP[32]"
-.PP
-Contains the channel key.
-.PP
-If this value is an empty string, there is no channel key in place.
-.PP
-Definition at line 143 of file channels.h.
-.PP
-Referenced by add_channel(), and chanrec().
-.SS "short int \fBchanrec::limit\fP"
-.PP
-Contains the channel user limit.
-.PP
-If this value is zero, there is no limit in place.
-.PP
-Definition at line 138 of file channels.h.
-.PP
-Referenced by add_channel(), and chanrec().
-.SS "char \fBchanrec::name\fP[CHANMAX]"
-.PP
-The channels name.
-.PP
-Definition at line 108 of file channels.h.
-.PP
-Referenced by add_channel(), chanrec(), del_channel(), DelUser(), ForceChan(), kick_channel(), and Server::PseudoToUser().
-.SS "char \fBchanrec::setby\fP[NICKMAX]"
-.PP
-The last user to set the topic.
-.PP
-If this member is an empty string, no topic was ever set.
-.PP
-Definition at line 133 of file channels.h.
-.PP
-Referenced by chanrec(), ForceChan(), and Server::PseudoToUser().
-.SS "char \fBchanrec::topic\fP[MAXBUF]"
-.PP
-Channel topic.
-.PP
-If this is an empty string, no channel topic is set.
-.PP
-Definition at line 122 of file channels.h.
-.PP
-Referenced by chanrec(), ForceChan(), and Server::PseudoToUser().
-.SS "time_t \fBchanrec::topicset\fP"
-.PP
-Time topic was set.
-.PP
-If no topic was ever set, this will be equal to \fBchanrec::created\fP
-.PP
-Definition at line 129 of file channels.h.
-.PP
-Referenced by chanrec(), ForceChan(), and Server::PseudoToUser().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/classbase.3 b/docs/man/man3/classbase.3
deleted file mode 100644
index 53f4bb176..000000000
--- a/docs/man/man3/classbase.3
+++ /dev/null
@@ -1,73 +0,0 @@
-.TH "classbase" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-classbase \- The base class for all inspircd classes.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <base.h>\fP
-.PP
-Inherited by \fBAdmin\fP, \fBConfigReader\fP, \fBConnectClass\fP, \fBExtensible\fP, \fBExtMode\fP, \fBFileReader\fP, \fBHostItem\fP, \fBInvited\fP, \fBModeParameter\fP, \fBModule\fP, \fBModuleFactory\fP, \fBModuleMessage\fP, \fBServer\fP, \fBServerConfig\fP, \fBucrec\fP, \fBVersion\fP, and \fBXLine\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBclassbase\fP ()"
-.br
-.RI "\fIConstructor, Sets the object's time. \fP"
-.ti -1c
-.RI "\fB~classbase\fP ()"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "time_t \fBage\fP"
-.br
-.RI "\fITime that the object was instantiated (used for TS calculation etc). \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-The base class for all inspircd classes.
-.PP
-Definition at line 30 of file base.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "classbase::classbase ()\fC [inline]\fP"
-.PP
-Constructor, Sets the object's time.
-.PP
-Definition at line 40 of file base.h.
-.PP
-References age.
-.PP
-.nf
-40 { age = time(NULL); }
-.fi
-.PP
-.SS "classbase::~classbase ()\fC [inline]\fP"
-.PP
-Definition at line 41 of file base.h.
-.PP
-.nf
-41 { }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "time_t \fBclassbase::age\fP"
-.PP
-Time that the object was instantiated (used for TS calculation etc).
-.PP
-Definition at line 35 of file base.h.
-.PP
-Referenced by classbase().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/command_t.3 b/docs/man/man3/command_t.3
deleted file mode 100644
index 0e69a9a09..000000000
--- a/docs/man/man3/command_t.3
+++ /dev/null
@@ -1,131 +0,0 @@
-.TH "command_t" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-command_t \- A structure that defines a command.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <ctables.h>\fP
-.PP
-Inherited by \fBcmd_mode\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBcommand_t\fP (\fBstd::string\fP cmd, char flags, int minpara)"
-.br
-.ti -1c
-.RI "virtual void \fBHandle\fP (char **parameters, int pcnt, \fBuserrec\fP *user)=0"
-.br
-.ti -1c
-.RI "virtual \fB~command_t\fP ()"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBstd::string\fP \fBcommand\fP"
-.br
-.RI "\fICommand name. \fP"
-.ti -1c
-.RI "char \fBflags_needed\fP"
-.br
-.RI "\fIUser flags needed to execute the command or 0. \fP"
-.ti -1c
-.RI "int \fBmin_params\fP"
-.br
-.RI "\fIMinimum number of parameters command takes. \fP"
-.ti -1c
-.RI "long \fBuse_count\fP"
-.br
-.RI "\fIused by /stats m \fP"
-.ti -1c
-.RI "long \fBtotal_bytes\fP"
-.br
-.RI "\fIused by /stats m \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBsource\fP"
-.br
-.RI "\fIused for resource tracking between modules \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-A structure that defines a command.
-.PP
-Definition at line 29 of file ctables.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "command_t::command_t (\fBstd::string\fP cmd, char flags, int minpara)\fC [inline]\fP"
-.PP
-Definition at line 51 of file ctables.h.
-.PP
-References source, total_bytes, and use_count.
-.PP
-.nf
-51 : command(cmd), flags_needed(flags), min_params(minpara)
-52 {
-53 use_count = total_bytes = 0;
-54 source = '<core>';
-55 }
-.fi
-.PP
-.SS "virtual command_t::~command_t ()\fC [inline, virtual]\fP"
-.PP
-Definition at line 59 of file ctables.h.
-.PP
-.nf
-59 {}
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "virtual void command_t::Handle (char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [pure virtual]\fP"
-.PP
-Implemented in \fBcmd_mode\fP.
-.SH "Member Data Documentation"
-.PP
-.SS "\fBstd::string\fP \fBcommand_t::command\fP"
-.PP
-Command name.
-.PP
-Definition at line 34 of file ctables.h.
-.SS "char \fBcommand_t::flags_needed\fP"
-.PP
-User flags needed to execute the command or 0.
-.PP
-Definition at line 37 of file ctables.h.
-.SS "int \fBcommand_t::min_params\fP"
-.PP
-Minimum number of parameters command takes.
-.PP
-Definition at line 40 of file ctables.h.
-.SS "\fBstd::string\fP \fBcommand_t::source\fP"
-.PP
-used for resource tracking between modules
-.PP
-Definition at line 49 of file ctables.h.
-.PP
-Referenced by command_t().
-.SS "long \fBcommand_t::total_bytes\fP"
-.PP
-used by /stats m
-.PP
-Definition at line 46 of file ctables.h.
-.PP
-Referenced by command_t().
-.SS "long \fBcommand_t::use_count\fP"
-.PP
-used by /stats m
-.PP
-Definition at line 43 of file ctables.h.
-.PP
-Referenced by command_t().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/commands.h.3 b/docs/man/man3/commands.h.3
deleted file mode 100644
index de75f72c1..000000000
--- a/docs/man/man3/commands.h.3
+++ /dev/null
@@ -1,180 +0,0 @@
-.TH "commands.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-commands.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <typeinfo>\fP
-.br
-\fC#include <iostream>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include <sstream>\fP
-.br
-\fC#include <vector>\fP
-.br
-\fC#include 'users.h'\fP
-.br
-\fC#include 'channels.h'\fP
-.br
-\fC#include 'cmd_admin.h'\fP
-.br
-\fC#include 'cmd_away.h'\fP
-.br
-\fC#include 'cmd_commands.h'\fP
-.br
-\fC#include 'cmd_connect.h'\fP
-.br
-\fC#include 'cmd_die.h'\fP
-.br
-\fC#include 'cmd_eline.h'\fP
-.br
-\fC#include 'cmd_gline.h'\fP
-.br
-\fC#include 'cmd_info.h'\fP
-.br
-\fC#include 'cmd_invite.h'\fP
-.br
-\fC#include 'cmd_ison.h'\fP
-.br
-\fC#include 'cmd_join.h'\fP
-.br
-\fC#include 'cmd_kick.h'\fP
-.br
-\fC#include 'cmd_kill.h'\fP
-.br
-\fC#include 'cmd_kline.h'\fP
-.br
-\fC#include 'cmd_links.h'\fP
-.br
-\fC#include 'cmd_list.h'\fP
-.br
-\fC#include 'cmd_loadmodule.h'\fP
-.br
-\fC#include 'cmd_lusers.h'\fP
-.br
-\fC#include 'cmd_map.h'\fP
-.br
-\fC#include 'cmd_modules.h'\fP
-.br
-\fC#include 'cmd_motd.h'\fP
-.br
-\fC#include 'cmd_names.h'\fP
-.br
-\fC#include 'cmd_nick.h'\fP
-.br
-\fC#include 'cmd_notice.h'\fP
-.br
-\fC#include 'cmd_oper.h'\fP
-.br
-\fC#include 'cmd_part.h'\fP
-.br
-\fC#include 'cmd_pass.h'\fP
-.br
-\fC#include 'cmd_ping.h'\fP
-.br
-\fC#include 'cmd_pong.h'\fP
-.br
-\fC#include 'cmd_privmsg.h'\fP
-.br
-\fC#include 'cmd_qline.h'\fP
-.br
-\fC#include 'cmd_quit.h'\fP
-.br
-\fC#include 'cmd_rehash.h'\fP
-.br
-\fC#include 'cmd_restart.h'\fP
-.br
-\fC#include 'cmd_rules.h'\fP
-.br
-\fC#include 'cmd_server.h'\fP
-.br
-\fC#include 'cmd_squit.h'\fP
-.br
-\fC#include 'cmd_stats.h'\fP
-.br
-\fC#include 'cmd_summon.h'\fP
-.br
-\fC#include 'cmd_time.h'\fP
-.br
-\fC#include 'cmd_topic.h'\fP
-.br
-\fC#include 'cmd_trace.h'\fP
-.br
-\fC#include 'cmd_unloadmodule.h'\fP
-.br
-\fC#include 'cmd_user.h'\fP
-.br
-\fC#include 'cmd_userhost.h'\fP
-.br
-\fC#include 'cmd_users.h'\fP
-.br
-\fC#include 'cmd_version.h'\fP
-.br
-\fC#include 'cmd_wallops.h'\fP
-.br
-\fC#include 'cmd_who.h'\fP
-.br
-\fC#include 'cmd_whois.h'\fP
-.br
-\fC#include 'cmd_whowas.h'\fP
-.br
-\fC#include 'cmd_zline.h'\fP
-.br
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "char * \fBCleanFilename\fP (char *name)"
-.br
-.ti -1c
-.RI "bool \fBis_uline\fP (const char *server)"
-.br
-.ti -1c
-.RI "long \fBduration\fP (const char *str)"
-.br
-.ti -1c
-.RI "void \fBdo_whois\fP (\fBuserrec\fP *user, \fBuserrec\fP *dest, unsigned long signon, unsigned long idle, char *nick)"
-.br
-.ti -1c
-.RI "bool \fBhost_matches_everyone\fP (\fBstd::string\fP mask, \fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "bool \fBip_matches_everyone\fP (\fBstd::string\fP ip, \fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "bool \fBnick_matches_everyone\fP (\fBstd::string\fP nick, \fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "int \fBoperstrcmp\fP (char *data, char *input)"
-.br
-.in -1c
-.SH "Function Documentation"
-.PP
-.SS "char* CleanFilename (char * name)"
-.PP
-.SS "void do_whois (\fBuserrec\fP * user, \fBuserrec\fP * dest, unsigned long signon, unsigned long idle, char * nick)"
-.PP
-.SS "long duration (const char * str)"
-.PP
-Referenced by Server::CalcDuration().
-.SS "bool host_matches_everyone (\fBstd::string\fP mask, \fBuserrec\fP * user)"
-.PP
-.SS "bool ip_matches_everyone (\fBstd::string\fP ip, \fBuserrec\fP * user)"
-.PP
-.SS "bool is_uline (const char * server)"
-.PP
-Referenced by userrec::HasPermission(), Server::IsUlined(), and kick_channel().
-.SS "bool nick_matches_everyone (\fBstd::string\fP nick, \fBuserrec\fP * user)"
-.PP
-.SS "int operstrcmp (char * data, char * input)"
-.PP
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/connection.3 b/docs/man/man3/connection.3
deleted file mode 100644
index a133ab846..000000000
--- a/docs/man/man3/connection.3
+++ /dev/null
@@ -1,213 +0,0 @@
-.TH "connection" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-connection \- Please note: classes serverrec and userrec both inherit from class connection.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <connection.h>\fP
-.PP
-Inherits \fBExtensible\fP.
-.PP
-Inherited by \fBuserrec\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBconnection\fP ()"
-.br
-.RI "\fIDefault constructor. \fP"
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "int \fBfd\fP"
-.br
-.RI "\fIFile descriptor of the connection. \fP"
-.ti -1c
-.RI "char \fBhost\fP [160]"
-.br
-.RI "\fIHostname of connection. \fP"
-.ti -1c
-.RI "char \fBip\fP [16]"
-.br
-.RI "\fIIP of connection. \fP"
-.ti -1c
-.RI "int \fBbytes_in\fP"
-.br
-.RI "\fIStats counter for bytes inbound. \fP"
-.ti -1c
-.RI "int \fBbytes_out\fP"
-.br
-.RI "\fIStats counter for bytes outbound. \fP"
-.ti -1c
-.RI "int \fBcmds_in\fP"
-.br
-.RI "\fIStats counter for commands inbound. \fP"
-.ti -1c
-.RI "int \fBcmds_out\fP"
-.br
-.RI "\fIStats counter for commands outbound. \fP"
-.ti -1c
-.RI "bool \fBhaspassed\fP"
-.br
-.RI "\fITrue if server/user has authenticated, false if otherwise. \fP"
-.ti -1c
-.RI "int \fBport\fP"
-.br
-.RI "\fIPort number For a userrec, this is the port they connected to the network on. \fP"
-.ti -1c
-.RI "char \fBregistered\fP"
-.br
-.RI "\fIUsed by userrec to indicate the registration status of the connection. \fP"
-.ti -1c
-.RI "time_t \fBlastping\fP"
-.br
-.RI "\fITime the connection was last pinged. \fP"
-.ti -1c
-.RI "time_t \fBsignon\fP"
-.br
-.RI "\fITime the connection was created, set in the constructor. \fP"
-.ti -1c
-.RI "time_t \fBidle_lastmsg\fP"
-.br
-.RI "\fITime that the connection last sent data, used to calculate idle time. \fP"
-.ti -1c
-.RI "time_t \fBnping\fP"
-.br
-.RI "\fIUsed by PING checks with clients. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-Please note: classes serverrec and userrec both inherit from class connection.
-.PP
-Definition at line 37 of file connection.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "connection::connection ()\fC [inline]\fP"
-.PP
-Default constructor.
-.PP
-Definition at line 100 of file connection.h.
-.PP
-References fd.
-.PP
-.nf
-101 {
-102 this->fd = -1;
-103 }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "int \fBconnection::bytes_in\fP"
-.PP
-Stats counter for bytes inbound.
-.PP
-Definition at line 54 of file connection.h.
-.PP
-Referenced by userrec::userrec().
-.SS "int \fBconnection::bytes_out\fP"
-.PP
-Stats counter for bytes outbound.
-.PP
-Definition at line 58 of file connection.h.
-.PP
-Referenced by userrec::FlushWriteBuf(), and userrec::userrec().
-.SS "int \fBconnection::cmds_in\fP"
-.PP
-Stats counter for commands inbound.
-.PP
-Definition at line 62 of file connection.h.
-.PP
-Referenced by userrec::userrec().
-.SS "int \fBconnection::cmds_out\fP"
-.PP
-Stats counter for commands outbound.
-.PP
-Definition at line 66 of file connection.h.
-.PP
-Referenced by userrec::FlushWriteBuf(), and userrec::userrec().
-.SS "int \fBconnection::fd\fP"
-.PP
-File descriptor of the connection.
-.PP
-Definition at line 42 of file connection.h.
-.PP
-Referenced by add_channel(), connection(), ConfigReader::DumpErrors(), FullConnectUser(), kick_channel(), kill_link(), kill_link_silent(), Server::PseudoToUser(), Server::SendTo(), userrec::userrec(), and Server::UserToPseudo().
-.SS "bool \fBconnection::haspassed\fP"
-.PP
-True if server/user has authenticated, false if otherwise.
-.PP
-Definition at line 70 of file connection.h.
-.PP
-Referenced by FullConnectUser(), and userrec::userrec().
-.SS "char \fBconnection::host\fP[160]"
-.PP
-Hostname of connection.
-.PP
-Not used if this is a serverrec
-.PP
-Definition at line 46 of file connection.h.
-.PP
-Referenced by AddWhoWas(), FullConnectUser(), userrec::GetFullRealHost(), kill_link(), kill_link_silent(), Server::PseudoToUser(), userrec::userrec(), and Server::UserToPseudo().
-.SS "time_t \fBconnection::idle_lastmsg\fP"
-.PP
-Time that the connection last sent data, used to calculate idle time.
-.PP
-Definition at line 92 of file connection.h.
-.PP
-Referenced by FullConnectUser(), and userrec::userrec().
-.SS "char \fBconnection::ip\fP[16]"
-.PP
-IP of connection.
-.PP
-Definition at line 50 of file connection.h.
-.PP
-Referenced by FullConnectUser(), and userrec::userrec().
-.SS "time_t \fBconnection::lastping\fP"
-.PP
-Time the connection was last pinged.
-.PP
-Definition at line 84 of file connection.h.
-.PP
-Referenced by userrec::userrec().
-.SS "time_t \fBconnection::nping\fP"
-.PP
-Used by PING checks with clients.
-.PP
-Definition at line 96 of file connection.h.
-.PP
-Referenced by userrec::userrec().
-.SS "int \fBconnection::port\fP"
-.PP
-Port number For a userrec, this is the port they connected to the network on.
-.PP
-For a serverrec this is the current listening port of the serverrec object.
-.PP
-Definition at line 76 of file connection.h.
-.PP
-Referenced by FullConnectUser(), kill_link(), kill_link_silent(), and userrec::userrec().
-.SS "char \fBconnection::registered\fP"
-.PP
-Used by userrec to indicate the registration status of the connection.
-.PP
-Definition at line 80 of file connection.h.
-.PP
-Referenced by ConnectUser(), force_nickchange(), FullConnectUser(), kill_link(), kill_link_silent(), and userrec::userrec().
-.SS "time_t \fBconnection::signon\fP"
-.PP
-Time the connection was created, set in the constructor.
-.PP
-Definition at line 88 of file connection.h.
-.PP
-Referenced by AddWhoWas(), and userrec::userrec().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/connection.h.3 b/docs/man/man3/connection.h.3
deleted file mode 100644
index cbbe6fa27..000000000
--- a/docs/man/man3/connection.h.3
+++ /dev/null
@@ -1,48 +0,0 @@
-.TH "connection.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-connection.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include 'base.h'\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <map>\fP
-.br
-\fC#include <sys/types.h>\fP
-.br
-\fC#include <sys/socket.h>\fP
-.br
-\fC#include <netdb.h>\fP
-.br
-\fC#include <netinet/in.h>\fP
-.br
-\fC#include <unistd.h>\fP
-.br
-\fC#include <errno.h>\fP
-.br
-\fC#include <time.h>\fP
-.br
-\fC#include <vector>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include <sstream>\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBconnection\fP"
-.br
-.RI "\fIPlease note: classes serverrec and userrec both inherit from class connection. \fP"
-.in -1c
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/ctables.h.3 b/docs/man/man3/ctables.h.3
deleted file mode 100644
index 740c740c0..000000000
--- a/docs/man/man3/ctables.h.3
+++ /dev/null
@@ -1,36 +0,0 @@
-.TH "ctables.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ctables.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include <deque>\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBcommand_t\fP"
-.br
-.RI "\fIA structure that defines a command. \fP"
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef std::deque< \fBcommand_t\fP * > \fBcommand_table\fP"
-.br
-.in -1c
-.SH "Typedef Documentation"
-.PP
-.SS "typedef std::deque<\fBcommand_t\fP*> \fBcommand_table\fP"
-.PP
-Definition at line 62 of file ctables.h.
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/cull_list.h.3 b/docs/man/man3/cull_list.h.3
deleted file mode 100644
index 78b9f49a9..000000000
--- a/docs/man/man3/cull_list.h.3
+++ /dev/null
@@ -1,40 +0,0 @@
-.TH "cull_list.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-cull_list.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <typeinfo>\fP
-.br
-\fC#include <iostream>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include <sstream>\fP
-.br
-\fC#include <vector>\fP
-.br
-\fC#include 'users.h'\fP
-.br
-\fC#include 'channels.h'\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBCullItem\fP"
-.br
-.RI "\fIThe CullItem class holds a user and their quitmessage, and is used internally by the \fBCullList\fP class to compile a list of users which are to be culled when a long operation (such as a netsplit) has completed. \fP"
-.ti -1c
-.RI "class \fBCullList\fP"
-.br
-.RI "\fIThe CullList class can be used by modules, and is used by the core, to compile large lists of users in preperation to quitting them all at once. \fP"
-.in -1c
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/dns.h.3 b/docs/man/man3/dns.h.3
deleted file mode 100644
index df94d7ad2..000000000
--- a/docs/man/man3/dns.h.3
+++ /dev/null
@@ -1,46 +0,0 @@
-.TH "dns.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-dns.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <sys/types.h>\fP
-.br
-\fC#include <sys/socket.h>\fP
-.br
-\fC#include <netinet/in.h>\fP
-.br
-\fC#include <string>\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "struct \fBdns_ip4list\fP"
-.br
-.ti -1c
-.RI "class \fBDNS\fP"
-.br
-.RI "\fIThe DNS class allows fast nonblocking resolution of hostnames and ip addresses. \fP"
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void * \fBdns_task\fP (void *arg)"
-.br
-.RI "\fIThis is the handler function for multi-threaded \fBDNS\fP. \fP"
-.in -1c
-.SH "Function Documentation"
-.PP
-.SS "void* dns_task (void * arg)"
-.PP
-This is the handler function for multi-threaded \fBDNS\fP.
-.PP
-It cannot be a class member as pthread will not let us create a thread whos handler function is a member of a class (ugh).
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/dns_ip4list.3 b/docs/man/man3/dns_ip4list.3
deleted file mode 100644
index ddd834dd4..000000000
--- a/docs/man/man3/dns_ip4list.3
+++ /dev/null
@@ -1,35 +0,0 @@
-.TH "dns_ip4list" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-dns_ip4list \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <dns.h>\fP
-.PP
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "in_addr \fBip\fP"
-.br
-.ti -1c
-.RI "\fBdns_ip4list\fP * \fBnext\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-Definition at line 26 of file dns.h.
-.SH "Member Data Documentation"
-.PP
-.SS "in_addr \fBdns_ip4list::ip\fP"
-.PP
-Definition at line 27 of file dns.h.
-.SS "\fBdns_ip4list\fP* \fBdns_ip4list::next\fP"
-.PP
-Definition at line 28 of file dns.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/globals.h.3 b/docs/man/man3/globals.h.3
deleted file mode 100644
index 6625e0c1a..000000000
--- a/docs/man/man3/globals.h.3
+++ /dev/null
@@ -1,174 +0,0 @@
-.TH "globals.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-globals.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <typeinfo>\fP
-.br
-\fC#include <iostream>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include 'users.h'\fP
-.br
-\fC#include 'channels.h'\fP
-.br
-
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef std::deque< \fBstd::string\fP > \fBfile_cache\fP"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBWriteOpers\fP (char *text,...)"
-.br
-.ti -1c
-.RI "void \fBlog\fP (int level, char *text,...)"
-.br
-.ti -1c
-.RI "void \fBWrite\fP (int sock, char *text,...)"
-.br
-.ti -1c
-.RI "void \fBWriteServ\fP (int sock, char *text,...)"
-.br
-.ti -1c
-.RI "void \fBWriteFrom\fP (int sock, \fBuserrec\fP *user, char *text,...)"
-.br
-.ti -1c
-.RI "void \fBWriteTo\fP (\fBuserrec\fP *source, \fBuserrec\fP *dest, char *data,...)"
-.br
-.ti -1c
-.RI "void \fBWriteChannel\fP (\fBchanrec\fP *Ptr, \fBuserrec\fP *user, char *text,...)"
-.br
-.ti -1c
-.RI "void \fBChanExceptSender\fP (\fBchanrec\fP *Ptr, \fBuserrec\fP *user, char *text,...)"
-.br
-.ti -1c
-.RI "int \fBcommon_channels\fP (\fBuserrec\fP *u, \fBuserrec\fP *u2)"
-.br
-.ti -1c
-.RI "void \fBWriteCommon\fP (\fBuserrec\fP *u, char *text,...)"
-.br
-.ti -1c
-.RI "void \fBWriteCommonExcept\fP (\fBuserrec\fP *u, char *text,...)"
-.br
-.ti -1c
-.RI "void \fBWriteWallOps\fP (\fBuserrec\fP *source, bool local_only, char *text,...)"
-.br
-.ti -1c
-.RI "int \fBisnick\fP (const char *n)"
-.br
-.ti -1c
-.RI "\fBuserrec\fP * \fBFind\fP (\fBstd::string\fP nick)"
-.br
-.ti -1c
-.RI "\fBchanrec\fP * \fBFindChan\fP (const char *chan)"
-.br
-.ti -1c
-.RI "char * \fBcmode\fP (\fBuserrec\fP *user, \fBchanrec\fP *chan)"
-.br
-.ti -1c
-.RI "\fBstd::string\fP \fBgetservername\fP ()"
-.br
-.ti -1c
-.RI "\fBstd::string\fP \fBgetnetworkname\fP ()"
-.br
-.ti -1c
-.RI "\fBstd::string\fP \fBgetadminname\fP ()"
-.br
-.ti -1c
-.RI "\fBstd::string\fP \fBgetadminemail\fP ()"
-.br
-.ti -1c
-.RI "\fBstd::string\fP \fBgetadminnick\fP ()"
-.br
-.ti -1c
-.RI "void \fBreadfile\fP (\fBfile_cache\fP &F, const char *fname)"
-.br
-.ti -1c
-.RI "int \fBModeDefiend\fP (char c, int i)"
-.br
-.in -1c
-.SH "Typedef Documentation"
-.PP
-.SS "typedef std::deque<\fBstd::string\fP> \fBfile_cache\fP"
-.PP
-Definition at line 29 of file globals.h.
-.SH "Function Documentation"
-.PP
-.SS "void ChanExceptSender (\fBchanrec\fP * Ptr, \fBuserrec\fP * user, char * text, ...)"
-.PP
-Referenced by Server::SendChannel().
-.SS "char* cmode (\fBuserrec\fP * user, \fBchanrec\fP * chan)"
-.PP
-Referenced by Server::ChanMode().
-.SS "int common_channels (\fBuserrec\fP * u, \fBuserrec\fP * u2)"
-.PP
-Referenced by Server::CommonChannels().
-.SS "\fBuserrec\fP* Find (\fBstd::string\fP nick)"
-.PP
-Referenced by Server::FindNick().
-.SS "\fBchanrec\fP* FindChan (const char * chan)"
-.PP
-Referenced by add_channel(), del_channel(), and Server::FindChannel().
-.SS "\fBstd::string\fP getadminemail ()"
-.PP
-.SS "\fBstd::string\fP getadminname ()"
-.PP
-.SS "\fBstd::string\fP getadminnick ()"
-.PP
-.SS "\fBstd::string\fP getnetworkname ()"
-.PP
-.SS "\fBstd::string\fP getservername ()"
-.PP
-.SS "int isnick (const char * n)"
-.PP
-Referenced by Server::IsNick().
-.SS "void log (int level, char * text, ...)"
-.PP
-Referenced by add_channel(), AddClient(), Server::AddExtendedMode(), SocketEngine::AddFd(), AddOper(), chanrec::AddUser(), AddWhoWas(), del_channel(), DeleteOper(), SocketEngine::DelFd(), chanrec::DelUser(), ForceChan(), FullConnectUser(), InspSocket::InspSocket(), kick_channel(), kill_link(), kill_link_silent(), Server::Log(), InspSocket::Read(), ReHashNick(), userrec::RemoveInvite(), chanrec::SetCustomMode(), chanrec::SetCustomModeParam(), InspSocket::SetState(), userrec::SetWriteError(), SocketEngine::SocketEngine(), and SocketEngine::~SocketEngine().
-.SS "int ModeDefiend (char c, int i)"
-.PP
-.SS "void readfile (\fBfile_cache\fP & F, const char * fname)"
-.PP
-Referenced by FileReader::FileReader(), and FileReader::LoadFile().
-.SS "void Write (int sock, char * text, ...)"
-.PP
-Referenced by kill_link(), kill_link_silent(), Server::PseudoToUser(), Server::Send(), Server::SendTo(), and Server::UserToPseudo().
-.SS "void WriteChannel (\fBchanrec\fP * Ptr, \fBuserrec\fP * user, char * text, ...)"
-.PP
-Referenced by del_channel(), ForceChan(), kick_channel(), and Server::SendChannel().
-.SS "void WriteCommon (\fBuserrec\fP * u, char * text, ...)"
-.PP
-Referenced by Server::SendCommon().
-.SS "void WriteCommonExcept (\fBuserrec\fP * u, char * text, ...)"
-.PP
-Referenced by kill_link(), kill_link_silent(), and Server::SendCommon().
-.SS "void WriteFrom (int sock, \fBuserrec\fP * user, char * text, ...)"
-.PP
-Referenced by Server::PseudoToUser(), and Server::SendFrom().
-.SS "void WriteOpers (char * text, ...)"
-.PP
-Referenced by userrec::AddBuffer(), userrec::AddWriteBuf(), ConfigReader::DumpErrors(), FullConnectUser(), kill_link(), Server::RehashServer(), and Server::SendOpers().
-.SS "void WriteServ (int sock, char * text, ...)"
-.PP
-Referenced by add_channel(), ConfigReader::DumpErrors(), ForceChan(), FullConnectUser(), kick_channel(), Server::PseudoToUser(), and Server::SendServ().
-.SS "void WriteTo (\fBuserrec\fP * source, \fBuserrec\fP * dest, char * data, ...)"
-.PP
-Referenced by Server::SendTo().
-.SS "void WriteWallOps (\fBuserrec\fP * source, bool local_only, char * text, ...)"
-.PP
-Referenced by Server::SendWallops().
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/hashcomp.h.3 b/docs/man/man3/hashcomp.h.3
deleted file mode 100644
index cd2cfe35e..000000000
--- a/docs/man/man3/hashcomp.h.3
+++ /dev/null
@@ -1,68 +0,0 @@
-.TH "hashcomp.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-hashcomp.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include <ext/hash_map>\fP
-.br
-
-.SS "Namespaces"
-
-.in +1c
-.ti -1c
-.RI "namespace \fBnspace\fP"
-.br
-.ti -1c
-.RI "namespace \fBirc\fP"
-.br
-.in -1c
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "struct \fBnspace::hash< in_addr >\fP"
-.br
-.ti -1c
-.RI "struct \fBnspace::hash< string >\fP"
-.br
-.ti -1c
-.RI "struct \fBirc::StrHashComp\fP"
-.br
-.RI "\fIThis class returns true if two strings match. \fP"
-.ti -1c
-.RI "struct \fBirc::InAddr_HashComp\fP"
-.br
-.RI "\fIThis class returns true if two in_addr structs match. \fP"
-.ti -1c
-.RI "struct \fBirc::irc_char_traits\fP"
-.br
-.RI "\fIThe \fBirc_char_traits\fP class is used for RFC-style comparison of strings. \fP"
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBnspace\fP __gnu_cxx"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef basic_string< char, irc_char_traits, allocator< char > > \fBirc::string\fP"
-.br
-.RI "\fIThis typedef declares \fBirc::string\fP based upon \fBirc_char_traits\fP. \fP"
-.in -1c
-.SH "Define Documentation"
-.PP
-.SS "#define nspace __gnu_cxx"
-.PP
-Definition at line 44 of file hashcomp.h.
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/inspircd.h.3 b/docs/man/man3/inspircd.h.3
deleted file mode 100644
index 545c22f41..000000000
--- a/docs/man/man3/inspircd.h.3
+++ /dev/null
@@ -1,121 +0,0 @@
-.TH "inspircd.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-inspircd.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <stdio.h>\fP
-.br
-\fC#include <unistd.h>\fP
-.br
-\fC#include <signal.h>\fP
-.br
-\fC#include <time.h>\fP
-.br
-\fC#include <netdb.h>\fP
-.br
-\fC#include <string.h>\fP
-.br
-\fC#include <errno.h>\fP
-.br
-\fC#include <sys/types.h>\fP
-.br
-\fC#include <sys/socket.h>\fP
-.br
-\fC#include <sys/stat.h>\fP
-.br
-\fC#include <netinet/in.h>\fP
-.br
-\fC#include <arpa/inet.h>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include 'inspircd_io.h'\fP
-.br
-\fC#include 'users.h'\fP
-.br
-\fC#include 'channels.h'\fP
-.br
-\fC#include 'socket.h'\fP
-.br
-\fC#include 'mode.h'\fP
-.br
-\fC#include 'socketengine.h'\fP
-.br
-\fC#include 'command_parse.h'\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBserverstats\fP"
-.br
-.ti -1c
-.RI "class \fBInspIRCd\fP"
-.br
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBERROR\fP -1"
-.br
-.ti -1c
-.RI "#define \fBTRUE\fP 1"
-.br
-.ti -1c
-.RI "#define \fBFALSE\fP 0"
-.br
-.ti -1c
-.RI "#define \fBMAXSOCKS\fP 64"
-.br
-.ti -1c
-.RI "#define \fBMAXCOMMAND\fP 32"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBAddServerName\fP (\fBstd::string\fP servername)"
-.br
-.ti -1c
-.RI "const char * \fBFindServerNamePtr\fP (\fBstd::string\fP servername)"
-.br
-.in -1c
-.SH "Define Documentation"
-.PP
-.SS "#define ERROR -1"
-.PP
-Definition at line 51 of file inspircd.h.
-.PP
-Referenced by InspSocket::InspSocket().
-.SS "#define FALSE 0"
-.PP
-Definition at line 53 of file inspircd.h.
-.SS "#define MAXCOMMAND 32"
-.PP
-Definition at line 55 of file inspircd.h.
-.SS "#define MAXSOCKS 64"
-.PP
-Definition at line 54 of file inspircd.h.
-.SS "#define TRUE 1"
-.PP
-Definition at line 52 of file inspircd.h.
-.SH "Function Documentation"
-.PP
-.SS "void AddServerName (\fBstd::string\fP servername)"
-.PP
-.SS "const char* FindServerNamePtr (\fBstd::string\fP servername)"
-.PP
-Referenced by AddClient(), and userrec::userrec().
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/inspircd_io.h.3 b/docs/man/man3/inspircd_io.h.3
deleted file mode 100644
index 006d467e0..000000000
--- a/docs/man/man3/inspircd_io.h.3
+++ /dev/null
@@ -1,123 +0,0 @@
-.TH "inspircd_io.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-inspircd_io.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <sstream>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <vector>\fP
-.br
-\fC#include 'inspircd.h'\fP
-.br
-\fC#include 'globals.h'\fP
-.br
-\fC#include 'modules.h'\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.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"
-
-.in +1c
-.ti -1c
-.RI "#define \fBDEBUG\fP 10"
-.br
-.RI "\fIFlags for use with \fBlog()\fP. \fP"
-.ti -1c
-.RI "#define \fBVERBOSE\fP 20"
-.br
-.ti -1c
-.RI "#define \fBDEFAULT\fP 30"
-.br
-.ti -1c
-.RI "#define \fBSPARSE\fP 40"
-.br
-.ti -1c
-.RI "#define \fBNONE\fP 50"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBExit\fP (int)"
-.br
-.ti -1c
-.RI "void \fBStart\fP (void)"
-.br
-.ti -1c
-.RI "int \fBDaemonSeed\fP (void)"
-.br
-.ti -1c
-.RI "bool \fBFileExists\fP (const char *file)"
-.br
-.ti -1c
-.RI "int \fBOpenTCPSocket\fP (void)"
-.br
-.ti -1c
-.RI "int \fBBindSocket\fP (int sockfd, struct sockaddr_in client, struct sockaddr_in server, int port, char *addr)"
-.br
-.ti -1c
-.RI "void \fBWritePID\fP (\fBstd::string\fP filename)"
-.br
-.ti -1c
-.RI "int \fBBindPorts\fP ()"
-.br
-.in -1c
-.SH "Define Documentation"
-.PP
-.SS "#define DEBUG 10"
-.PP
-Flags for use with \fBlog()\fP.
-.PP
-Definition at line 29 of file inspircd_io.h.
-.PP
-Referenced by add_channel(), AddClient(), Server::AddExtendedMode(), SocketEngine::AddFd(), AddOper(), chanrec::AddUser(), AddWhoWas(), del_channel(), DeleteOper(), SocketEngine::DelFd(), chanrec::DelUser(), ForceChan(), FullConnectUser(), InspSocket::InspSocket(), kick_channel(), kill_link(), kill_link_silent(), InspSocket::Read(), ReHashNick(), userrec::RemoveInvite(), chanrec::SetCustomMode(), chanrec::SetCustomModeParam(), InspSocket::SetState(), userrec::SetWriteError(), SocketEngine::SocketEngine(), and SocketEngine::~SocketEngine().
-.SS "#define DEFAULT 30"
-.PP
-Definition at line 31 of file inspircd_io.h.
-.PP
-Referenced by add_channel(), del_channel(), and kick_channel().
-.SS "#define NONE 50"
-.PP
-Definition at line 33 of file inspircd_io.h.
-.SS "#define SPARSE 40"
-.PP
-Definition at line 32 of file inspircd_io.h.
-.SS "#define VERBOSE 20"
-.PP
-Definition at line 30 of file inspircd_io.h.
-.SH "Function Documentation"
-.PP
-.SS "int BindPorts ()"
-.PP
-.SS "int BindSocket (int sockfd, struct sockaddr_in client, struct sockaddr_in server, int port, char * addr)"
-.PP
-Referenced by InspSocket::InspSocket().
-.SS "int DaemonSeed (void)"
-.PP
-.SS "void Exit (int)"
-.PP
-.SS "bool FileExists (const char * file)"
-.PP
-.SS "int OpenTCPSocket (void)"
-.PP
-Referenced by InspSocket::InspSocket().
-.SS "void Start (void)"
-.PP
-.SS "void WritePID (\fBstd::string\fP filename)"
-.PP
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/irc.3 b/docs/man/man3/irc.3
deleted file mode 100644
index b7f85d31a..000000000
--- a/docs/man/man3/irc.3
+++ /dev/null
@@ -1,47 +0,0 @@
-.TH "irc" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-irc \- The irc namespace contains a number of helper classes.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "struct \fBStrHashComp\fP"
-.br
-.RI "\fIThis class returns true if two strings match. \fP"
-.ti -1c
-.RI "struct \fBInAddr_HashComp\fP"
-.br
-.RI "\fIThis class returns true if two in_addr structs match. \fP"
-.ti -1c
-.RI "struct \fBirc_char_traits\fP"
-.br
-.RI "\fIThe \fBirc_char_traits\fP class is used for RFC-style comparison of strings. \fP"
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef basic_string< char, \fBirc_char_traits\fP, allocator< char > > \fBstring\fP"
-.br
-.RI "\fIThis typedef declares \fBirc::string\fP based upon \fBirc_char_traits\fP. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-The irc namespace contains a number of helper classes.
-.SH "Typedef Documentation"
-.PP
-.SS "typedef basic_string<char, \fBirc_char_traits\fP, allocator<char> > \fBirc::string\fP"
-.PP
-This typedef declares \fBirc::string\fP based upon \fBirc_char_traits\fP.
-.PP
-Definition at line 129 of file hashcomp.h.
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/irc_InAddr_HashComp.3 b/docs/man/man3/irc_InAddr_HashComp.3
deleted file mode 100644
index ce9006fe9..000000000
--- a/docs/man/man3/irc_InAddr_HashComp.3
+++ /dev/null
@@ -1,38 +0,0 @@
-.TH "irc::InAddr_HashComp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-irc::InAddr_HashComp \- This class returns true if two in_addr structs match.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <hashcomp.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "bool \fBoperator()\fP (const in_addr &s1, const in_addr &s2) const "
-.br
-.RI "\fIThe operator () does the actual comparison in hash_map. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-This class returns true if two in_addr structs match.
-
-Checking is done by copying both into a size_t then doing a numeric comparison of the two.
-.PP
-Definition at line 92 of file hashcomp.h.
-.SH "Member Function Documentation"
-.PP
-.SS "bool irc::InAddr_HashComp::operator() (const in_addr & s1, const in_addr & s2) const"
-.PP
-The operator () does the actual comparison in hash_map.
-.PP
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/irc_StrHashComp.3 b/docs/man/man3/irc_StrHashComp.3
deleted file mode 100644
index 765c1fd52..000000000
--- a/docs/man/man3/irc_StrHashComp.3
+++ /dev/null
@@ -1,38 +0,0 @@
-.TH "irc::StrHashComp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-irc::StrHashComp \- This class returns true if two strings match.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <hashcomp.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "bool \fBoperator()\fP (const \fBstd::string\fP &s1, const \fBstd::string\fP &s2) const "
-.br
-.RI "\fIThe operator () does the actual comparison in hash_map. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-This class returns true if two strings match.
-
-Case sensitivity is ignored, and the RFC 'character set' is adhered to
-.PP
-Definition at line 80 of file hashcomp.h.
-.SH "Member Function Documentation"
-.PP
-.SS "bool irc::StrHashComp::operator() (const \fBstd::string\fP & s1, const \fBstd::string\fP & s2) const"
-.PP
-The operator () does the actual comparison in hash_map.
-.PP
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/irc_irc_char_traits.3 b/docs/man/man3/irc_irc_char_traits.3
deleted file mode 100644
index bb9f4f6fd..000000000
--- a/docs/man/man3/irc_irc_char_traits.3
+++ /dev/null
@@ -1,72 +0,0 @@
-.TH "irc::irc_char_traits" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-irc::irc_char_traits \- The \fBirc_char_traits\fP class is used for RFC-style comparison of strings.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <hashcomp.h>\fP
-.PP
-Inherits \fBchar_traits< char >\fP.
-.PP
-.SS "Static Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "static bool \fBeq\fP (char c1st, char c2nd)"
-.br
-.RI "\fICheck if two chars match. \fP"
-.ti -1c
-.RI "static bool \fBne\fP (char c1st, char c2nd)"
-.br
-.RI "\fICheck if two chars do NOT match. \fP"
-.ti -1c
-.RI "static bool \fBlt\fP (char c1st, char c2nd)"
-.br
-.RI "\fICheck if one char is less than another. \fP"
-.ti -1c
-.RI "static int \fBcompare\fP (const char *str1, const char *str2, size_t n)"
-.br
-.RI "\fICompare two strings of size n. \fP"
-.ti -1c
-.RI "static const char * \fBfind\fP (const char *s1, int n, char c)"
-.br
-.RI "\fIFind a char within a string up to position n. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-The \fBirc_char_traits\fP class is used for RFC-style comparison of strings.
-
-This class is used to implement \fBirc::string\fP, a case-insensitive, RFC- comparing string class.
-.PP
-Definition at line 104 of file hashcomp.h.
-.SH "Member Function Documentation"
-.PP
-.SS "static int irc::irc_char_traits::compare (const char * str1, const char * str2, size_t n)\fC [static]\fP"
-.PP
-Compare two strings of size n.
-.PP
-.SS "static bool irc::irc_char_traits::eq (char c1st, char c2nd)\fC [static]\fP"
-.PP
-Check if two chars match.
-.PP
-.SS "static const char* irc::irc_char_traits::find (const char * s1, int n, char c)\fC [static]\fP"
-.PP
-Find a char within a string up to position n.
-.PP
-.SS "static bool irc::irc_char_traits::lt (char c1st, char c2nd)\fC [static]\fP"
-.PP
-Check if one char is less than another.
-.PP
-.SS "static bool irc::irc_char_traits::ne (char c1st, char c2nd)\fC [static]\fP"
-.PP
-Check if two chars do NOT match.
-.PP
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/message.h.3 b/docs/man/man3/message.h.3
deleted file mode 100644
index a6f935c18..000000000
--- a/docs/man/man3/message.h.3
+++ /dev/null
@@ -1,128 +0,0 @@
-.TH "message.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-message.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <typeinfo>\fP
-.br
-\fC#include <iostream>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include <sstream>\fP
-.br
-\fC#include <vector>\fP
-.br
-\fC#include 'users.h'\fP
-.br
-\fC#include 'channels.h'\fP
-.br
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "int \fBcommon_channels\fP (\fBuserrec\fP *u, \fBuserrec\fP *u2)"
-.br
-.ti -1c
-.RI "void \fBchop\fP (char *str)"
-.br
-.ti -1c
-.RI "void \fBtidystring\fP (char *str)"
-.br
-.ti -1c
-.RI "void \fBBlocking\fP (int s)"
-.br
-.ti -1c
-.RI "void \fBNonBlocking\fP (int s)"
-.br
-.ti -1c
-.RI "int \fBCleanAndResolve\fP (char *resolvedHost, const char *unresolvedHost)"
-.br
-.ti -1c
-.RI "int \fBc_count\fP (\fBuserrec\fP *u)"
-.br
-.ti -1c
-.RI "bool \fBhasumode\fP (\fBuserrec\fP *user, char mode)"
-.br
-.ti -1c
-.RI "void \fBChangeName\fP (\fBuserrec\fP *user, const char *gecos)"
-.br
-.ti -1c
-.RI "void \fBChangeDisplayedHost\fP (\fBuserrec\fP *user, const char *host)"
-.br
-.ti -1c
-.RI "int \fBisident\fP (const char *n)"
-.br
-.ti -1c
-.RI "int \fBisnick\fP (const char *n)"
-.br
-.ti -1c
-.RI "char * \fBcmode\fP (\fBuserrec\fP *user, \fBchanrec\fP *chan)"
-.br
-.ti -1c
-.RI "int \fBcstatus\fP (\fBuserrec\fP *user, \fBchanrec\fP *chan)"
-.br
-.ti -1c
-.RI "int \fBhas_channel\fP (\fBuserrec\fP *u, \fBchanrec\fP *c)"
-.br
-.ti -1c
-.RI "void \fBTidyBan\fP (char *ban)"
-.br
-.ti -1c
-.RI "\fBstd::string\fP \fBchlist\fP (\fBuserrec\fP *user, \fBuserrec\fP *source)"
-.br
-.ti -1c
-.RI "void \fBsend_network_quit\fP (const char *nick, const char *reason)"
-.br
-.in -1c
-.SH "Function Documentation"
-.PP
-.SS "void Blocking (int s)"
-.PP
-.SS "int c_count (\fBuserrec\fP * u)"
-.PP
-.SS "void ChangeDisplayedHost (\fBuserrec\fP * user, const char * host)"
-.PP
-Referenced by Server::ChangeHost().
-.SS "void ChangeName (\fBuserrec\fP * user, const char * gecos)"
-.PP
-Referenced by Server::ChangeGECOS().
-.SS "\fBstd::string\fP chlist (\fBuserrec\fP * user, \fBuserrec\fP * source)"
-.PP
-.SS "void chop (char * str)"
-.PP
-.SS "int CleanAndResolve (char * resolvedHost, const char * unresolvedHost)"
-.PP
-.SS "char* cmode (\fBuserrec\fP * user, \fBchanrec\fP * chan)"
-.PP
-.SS "int common_channels (\fBuserrec\fP * u, \fBuserrec\fP * u2)"
-.PP
-.SS "int cstatus (\fBuserrec\fP * user, \fBchanrec\fP * chan)"
-.PP
-Referenced by kick_channel().
-.SS "int has_channel (\fBuserrec\fP * u, \fBchanrec\fP * c)"
-.PP
-Referenced by add_channel(), Server::IsOnChannel(), and kick_channel().
-.SS "bool hasumode (\fBuserrec\fP * user, char mode)"
-.PP
-.SS "int isident (const char * n)"
-.PP
-.SS "int isnick (const char * n)"
-.PP
-.SS "void NonBlocking (int s)"
-.PP
-.SS "void send_network_quit (const char * nick, const char * reason)"
-.PP
-.SS "void TidyBan (char * ban)"
-.PP
-.SS "void tidystring (char * str)"
-.PP
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/mode.h.3 b/docs/man/man3/mode.h.3
deleted file mode 100644
index e42b845a3..000000000
--- a/docs/man/man3/mode.h.3
+++ /dev/null
@@ -1,40 +0,0 @@
-.TH "mode.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-mode.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <typeinfo>\fP
-.br
-\fC#include <iostream>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include <sstream>\fP
-.br
-\fC#include <vector>\fP
-.br
-\fC#include 'users.h'\fP
-.br
-\fC#include 'channels.h'\fP
-.br
-\fC#include 'ctables.h'\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBModeParser\fP"
-.br
-.ti -1c
-.RI "class \fBcmd_mode\fP"
-.br
-.in -1c
-.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
deleted file mode 100644
index 8ec07b6cd..000000000
--- a/docs/man/man3/modules.cpp.3
+++ /dev/null
@@ -1,316 +0,0 @@
-.TH "modules.cpp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-modules.cpp \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include 'inspircd.h'\fP
-.br
-\fC#include 'inspircd_io.h'\fP
-.br
-\fC#include <unistd.h>\fP
-.br
-\fC#include <sys/errno.h>\fP
-.br
-\fC#include <time.h>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <hash_map>\fP
-.br
-\fC#include <map>\fP
-.br
-\fC#include <sstream>\fP
-.br
-\fC#include <vector>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include 'users.h'\fP
-.br
-\fC#include 'ctables.h'\fP
-.br
-\fC#include 'globals.h'\fP
-.br
-\fC#include 'modules.h'\fP
-.br
-\fC#include 'dynamic.h'\fP
-.br
-\fC#include 'wildcard.h'\fP
-.br
-\fC#include 'message.h'\fP
-.br
-\fC#include 'mode.h'\fP
-.br
-\fC#include 'xline.h'\fP
-.br
-\fC#include 'commands.h'\fP
-.br
-\fC#include 'inspstring.h'\fP
-.br
-\fC#include 'helperfuncs.h'\fP
-.br
-\fC#include 'hashcomp.h'\fP
-.br
-\fC#include 'socket.h'\fP
-.br
-\fC#include 'socketengine.h'\fP
-.br
-\fC#include 'typedefs.h'\fP
-.br
-\fC#include 'command_parse.h'\fP
-.br
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "bool \fBModeDefined\fP (char modechar, int type)"
-.br
-.ti -1c
-.RI "bool \fBModeIsListMode\fP (char modechar, int type)"
-.br
-.ti -1c
-.RI "bool \fBModeDefinedOper\fP (char modechar, int type)"
-.br
-.ti -1c
-.RI "int \fBModeDefinedOn\fP (char modechar, int type)"
-.br
-.ti -1c
-.RI "int \fBModeDefinedOff\fP (char modechar, int type)"
-.br
-.ti -1c
-.RI "bool \fBDoAddExtendedMode\fP (char modechar, int type, bool requires_oper, int params_on, int params_off)"
-.br
-.ti -1c
-.RI "void \fBModeMakeList\fP (char modechar)"
-.br
-.ti -1c
-.RI "std::vector< \fBModule\fP * > \fBmodules\fP (255)"
-.br
-.ti -1c
-.RI "std::vector< \fBircd_module\fP * > \fBfactory\fP (255)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "\fBServerConfig\fP * \fBConfig\fP"
-.br
-.ti -1c
-.RI "\fBInspIRCd\fP * \fBServerInstance\fP"
-.br
-.ti -1c
-.RI "int \fBMODCOUNT\fP = -1"
-.br
-.ti -1c
-.RI "std::vector< \fBModule\fP * > \fBmodules\fP"
-.br
-.ti -1c
-.RI "std::vector< \fBircd_module\fP * > \fBfactory\fP"
-.br
-.ti -1c
-.RI "std::vector< \fBInspSocket\fP * > \fBmodule_sockets\fP"
-.br
-.ti -1c
-.RI "time_t \fBTIME\fP"
-.br
-.ti -1c
-.RI "\fBuserrec\fP * \fBfd_ref_table\fP [65536]"
-.br
-.ti -1c
-.RI "\fBuser_hash\fP \fBclientlist\fP"
-.br
-.ti -1c
-.RI "\fBchan_hash\fP \fBchanlist\fP"
-.br
-.ti -1c
-.RI "\fBcommand_table\fP \fBcmdlist\fP"
-.br
-.ti -1c
-.RI "\fBExtModeList\fP \fBEMode\fP"
-.br
-.in -1c
-.SH "Function Documentation"
-.PP
-.SS "bool DoAddExtendedMode (char modechar, int type, bool requires_oper, int params_on, int params_off)"
-.PP
-Definition at line 133 of file modules.cpp.
-.PP
-References EMode, and ModeDefined().
-.PP
-Referenced by Server::AddExtendedListMode(), and Server::AddExtendedMode().
-.PP
-.nf
-134 {
-135 if (ModeDefined(modechar,type)) {
-136 return false;
-137 }
-138 EMode.push_back(ExtMode(modechar,type,requires_oper,params_on,params_off));
-139 return true;
-140 }
-.fi
-.PP
-.SS "std::vector<\fBircd_module\fP*> factory (255)"
-.PP
-.SS "bool ModeDefined (char modechar, int type)"
-.PP
-Definition at line 70 of file modules.cpp.
-.PP
-References EMode.
-.PP
-Referenced by DoAddExtendedMode().
-.PP
-.nf
-71 {
-72 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-73 {
-74 if ((i->modechar == modechar) && (i->type == type))
-75 {
-76 return true;
-77 }
-78 }
-79 return false;
-80 }
-.fi
-.PP
-.SS "int ModeDefinedOff (char modechar, int type)"
-.PP
-Definition at line 120 of file modules.cpp.
-.PP
-References EMode.
-.PP
-.nf
-121 {
-122 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-123 {
-124 if ((i->modechar == modechar) && (i->type == type))
-125 {
-126 return i->params_when_off;
-127 }
-128 }
-129 return 0;
-130 }
-.fi
-.PP
-.SS "int ModeDefinedOn (char modechar, int type)"
-.PP
-Definition at line 107 of file modules.cpp.
-.PP
-References EMode.
-.PP
-.nf
-108 {
-109 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-110 {
-111 if ((i->modechar == modechar) && (i->type == type))
-112 {
-113 return i->params_when_on;
-114 }
-115 }
-116 return 0;
-117 }
-.fi
-.PP
-.SS "bool ModeDefinedOper (char modechar, int type)"
-.PP
-Definition at line 94 of file modules.cpp.
-.PP
-References EMode.
-.PP
-.nf
-95 {
-96 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-97 {
-98 if ((i->modechar == modechar) && (i->type == type) && (i->needsoper == true))
-99 {
-100 return true;
-101 }
-102 }
-103 return false;
-104 }
-.fi
-.PP
-.SS "bool ModeIsListMode (char modechar, int type)"
-.PP
-Definition at line 82 of file modules.cpp.
-.PP
-References EMode.
-.PP
-.nf
-83 {
-84 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-85 {
-86 if ((i->modechar == modechar) && (i->type == type) && (i->list == true))
-87 {
-88 return true;
-89 }
-90 }
-91 return false;
-92 }
-.fi
-.PP
-.SS "void ModeMakeList (char modechar)"
-.PP
-Definition at line 143 of file modules.cpp.
-.PP
-References EMode, and MT_CHANNEL.
-.PP
-Referenced by Server::AddExtendedListMode().
-.PP
-.nf
-144 {
-145 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-146 {
-147 if ((i->modechar == modechar) && (i->type == MT_CHANNEL))
-148 {
-149 i->list = true;
-150 return;
-151 }
-152 }
-153 return;
-154 }
-.fi
-.PP
-.SS "std::vector<\fBModule\fP*> modules (255)"
-.PP
-.SH "Variable Documentation"
-.PP
-.SS "\fBchan_hash\fP \fBchanlist\fP"
-.PP
-.SS "\fBuser_hash\fP \fBclientlist\fP"
-.PP
-Referenced by AddClient(), kill_link(), kill_link_silent(), and ReHashNick().
-.SS "\fBcommand_table\fP \fBcmdlist\fP"
-.PP
-.SS "\fBServerConfig\fP* \fBConfig\fP"
-.PP
-.SS "\fBExtModeList\fP \fBEMode\fP"
-.PP
-Definition at line 67 of file modules.cpp.
-.PP
-Referenced by DoAddExtendedMode(), ModeDefined(), ModeDefinedOff(), ModeDefinedOn(), ModeDefinedOper(), ModeIsListMode(), and ModeMakeList().
-.SS "std::vector<\fBircd_module\fP*> factory"
-.PP
-.SS "\fBuserrec\fP* \fBfd_ref_table\fP[65536]"
-.PP
-.SS "int \fBMODCOUNT\fP = -1"
-.PP
-Definition at line 934 of file modules.cpp.
-.SS "std::vector<\fBInspSocket\fP*> \fBmodule_sockets\fP"
-.PP
-Referenced by Server::AddSocket(), and Server::DelSocket().
-.SS "std::vector<\fBModule\fP*> modules"
-.PP
-.SS "\fBInspIRCd\fP* \fBServerInstance\fP"
-.PP
-.SS "time_t \fBTIME\fP"
-.PP
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/modules.h.3 b/docs/man/man3/modules.h.3
deleted file mode 100644
index e326f26c4..000000000
--- a/docs/man/man3/modules.h.3
+++ /dev/null
@@ -1,547 +0,0 @@
-.TH "modules.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-modules.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'dynamic.h'\fP
-.br
-\fC#include 'base.h'\fP
-.br
-\fC#include 'ctables.h'\fP
-.br
-\fC#include 'socket.h'\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include <sstream>\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBVersion\fP"
-.br
-.RI "\fIHolds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module. \fP"
-.ti -1c
-.RI "class \fBAdmin\fP"
-.br
-.RI "\fIHolds /ADMIN data This class contains the admin details of the local server. \fP"
-.ti -1c
-.RI "class \fBModuleMessage\fP"
-.br
-.RI "\fIThe ModuleMessage class is the base class of \fBRequest\fP and \fBEvent\fP This class is used to represent a basic data structure which is passed between modules for safe inter-module communications. \fP"
-.ti -1c
-.RI "class \fBRequest\fP"
-.br
-.RI "\fIThe Request class is a unicast message directed at a given module. \fP"
-.ti -1c
-.RI "class \fBEvent\fP"
-.br
-.RI "\fIThe Event class is a unicast message directed at all modules. \fP"
-.ti -1c
-.RI "class \fBExtMode\fP"
-.br
-.RI "\fIHolds an extended mode's details. \fP"
-.ti -1c
-.RI "class \fBModule\fP"
-.br
-.RI "\fIBase class for all \fBInspIRCd\fP modules This class is the base class for \fBInspIRCd\fP modules. \fP"
-.ti -1c
-.RI "class \fBServer\fP"
-.br
-.RI "\fIAllows 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. \fP"
-.ti -1c
-.RI "class \fBConfigReader\fP"
-.br
-.RI "\fIAllows reading of values from configuration files This class allows a module to read from either the main configuration file (inspircd.conf) or from a module-specified configuration file. \fP"
-.ti -1c
-.RI "class \fBFileReader\fP"
-.br
-.RI "\fICaches a text file into memory and can be used to retrieve lines from it. \fP"
-.ti -1c
-.RI "class \fBModuleFactory\fP"
-.br
-.RI "\fIInstantiates classes inherited from \fBModule\fP This class creates a class inherited from type \fBModule\fP, using new. \fP"
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBDEBUG\fP 10"
-.br
-.RI "\fIlog levels \fP"
-.ti -1c
-.RI "#define \fBVERBOSE\fP 20"
-.br
-.ti -1c
-.RI "#define \fBDEFAULT\fP 30"
-.br
-.ti -1c
-.RI "#define \fBSPARSE\fP 40"
-.br
-.ti -1c
-.RI "#define \fBNONE\fP 50"
-.br
-.ti -1c
-.RI "#define \fBMT_CHANNEL\fP 1"
-.br
-.RI "\fIUsed with OnExtendedMode() method of modules. \fP"
-.ti -1c
-.RI "#define \fBMT_CLIENT\fP 2"
-.br
-.ti -1c
-.RI "#define \fBMT_SERVER\fP 3"
-.br
-.ti -1c
-.RI "#define \fBACR_DEFAULT\fP 0"
-.br
-.RI "\fIUsed with OnAccessCheck() method of modules. \fP"
-.ti -1c
-.RI "#define \fBACR_DENY\fP 1"
-.br
-.ti -1c
-.RI "#define \fBACR_ALLOW\fP 2"
-.br
-.ti -1c
-.RI "#define \fBAC_KICK\fP 0"
-.br
-.ti -1c
-.RI "#define \fBAC_DEOP\fP 1"
-.br
-.ti -1c
-.RI "#define \fBAC_OP\fP 2"
-.br
-.ti -1c
-.RI "#define \fBAC_VOICE\fP 3"
-.br
-.ti -1c
-.RI "#define \fBAC_DEVOICE\fP 4"
-.br
-.ti -1c
-.RI "#define \fBAC_HALFOP\fP 5"
-.br
-.ti -1c
-.RI "#define \fBAC_DEHALFOP\fP 6"
-.br
-.ti -1c
-.RI "#define \fBAC_INVITE\fP 7"
-.br
-.ti -1c
-.RI "#define \fBAC_GENERAL_MODE\fP 8"
-.br
-.ti -1c
-.RI "#define \fBVF_STATIC\fP 1"
-.br
-.RI "\fIUsed to define a set of behavior bits for a module. \fP"
-.ti -1c
-.RI "#define \fBVF_VENDOR\fP 2"
-.br
-.ti -1c
-.RI "#define \fBVF_SERVICEPROVIDER\fP 4"
-.br
-.ti -1c
-.RI "#define \fBVF_COMMON\fP 8"
-.br
-.ti -1c
-.RI "#define \fBFOREACH_MOD\fP for (int _i = 0; _i <= \fBMODCOUNT\fP; _i++) modules[_i]->"
-.br
-.ti -1c
-.RI "#define \fBFOREACH_RESULT\fP(x)"
-.br
-.ti -1c
-.RI "#define \fBFD_MAGIC_NUMBER\fP -42"
-.br
-.ti -1c
-.RI "#define \fBIS_LOCAL\fP(x) (x->fd > -1)"
-.br
-.ti -1c
-.RI "#define \fBIS_REMOTE\fP(x) (x->fd < 0)"
-.br
-.ti -1c
-.RI "#define \fBIS_MODULE_CREATED\fP(x) (x->fd == FD_MAGIC_NUMBER)"
-.br
-.ti -1c
-.RI "#define \fBWM_AND\fP 1"
-.br
-.ti -1c
-.RI "#define \fBWM_OR\fP 2"
-.br
-.ti -1c
-.RI "#define \fBTYPE_USER\fP 1"
-.br
-.ti -1c
-.RI "#define \fBTYPE_CHANNEL\fP 2"
-.br
-.ti -1c
-.RI "#define \fBTYPE_SERVER\fP 3"
-.br
-.ti -1c
-.RI "#define \fBCONF_NOT_A_NUMBER\fP 0x000010"
-.br
-.ti -1c
-.RI "#define \fBCONF_NOT_UNSIGNED\fP 0x000080"
-.br
-.ti -1c
-.RI "#define \fBCONF_VALUE_NOT_FOUND\fP 0x000100"
-.br
-.ti -1c
-.RI "#define \fBCONF_FILE_NOT_FOUND\fP 0x000200"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef std::deque< \fBstd::string\fP > \fBfile_cache\fP"
-.br
-.RI "\fILow level definition of a \fBFileReader\fP classes file cache area. \fP"
-.ti -1c
-.RI "typedef \fBfile_cache\fP \fBstring_list\fP"
-.br
-.ti -1c
-.RI "typedef std::deque< \fBuserrec\fP * > \fBchanuserlist\fP"
-.br
-.RI "\fIHolds a list of users in a channel. \fP"
-.ti -1c
-.RI "typedef DLLFactory< \fBModuleFactory\fP > \fBircd_module\fP"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "bool \fBModeDefined\fP (char c, int i)"
-.br
-.ti -1c
-.RI "bool \fBModeDefinedOper\fP (char c, int i)"
-.br
-.ti -1c
-.RI "int \fBModeDefinedOn\fP (char c, int i)"
-.br
-.ti -1c
-.RI "int \fBModeDefinedOff\fP (char c, int i)"
-.br
-.ti -1c
-.RI "void \fBModeMakeList\fP (char modechar)"
-.br
-.ti -1c
-.RI "bool \fBModeIsListMode\fP (char modechar, int type)"
-.br
-.in -1c
-.SH "Define Documentation"
-.PP
-.SS "#define AC_DEHALFOP 6"
-.PP
-Definition at line 46 of file modules.h.
-.SS "#define AC_DEOP 1"
-.PP
-Definition at line 41 of file modules.h.
-.SS "#define AC_DEVOICE 4"
-.PP
-Definition at line 44 of file modules.h.
-.SS "#define AC_GENERAL_MODE 8"
-.PP
-Definition at line 48 of file modules.h.
-.SS "#define AC_HALFOP 5"
-.PP
-Definition at line 45 of file modules.h.
-.SS "#define AC_INVITE 7"
-.PP
-Definition at line 47 of file modules.h.
-.SS "#define AC_KICK 0"
-.PP
-Definition at line 40 of file modules.h.
-.PP
-Referenced by kick_channel().
-.SS "#define AC_OP 2"
-.PP
-Definition at line 42 of file modules.h.
-.SS "#define AC_VOICE 3"
-.PP
-Definition at line 43 of file modules.h.
-.SS "#define ACR_ALLOW 2"
-.PP
-Definition at line 39 of file modules.h.
-.SS "#define ACR_DEFAULT 0"
-.PP
-Used with OnAccessCheck() method of modules.
-.PP
-Definition at line 37 of file modules.h.
-.PP
-Referenced by kick_channel(), and Module::OnAccessCheck().
-.SS "#define ACR_DENY 1"
-.PP
-Definition at line 38 of file modules.h.
-.PP
-Referenced by kick_channel().
-.SS "#define CONF_FILE_NOT_FOUND 0x000200"
-.PP
-Definition at line 1541 of file modules.h.
-.PP
-Referenced by ConfigReader::ConfigReader().
-.SS "#define CONF_NOT_A_NUMBER 0x000010"
-.PP
-Definition at line 1538 of file modules.h.
-.PP
-Referenced by ConfigReader::ReadInteger().
-.SS "#define CONF_NOT_UNSIGNED 0x000080"
-.PP
-Definition at line 1539 of file modules.h.
-.PP
-Referenced by ConfigReader::ReadInteger().
-.SS "#define CONF_VALUE_NOT_FOUND 0x000100"
-.PP
-Definition at line 1540 of file modules.h.
-.PP
-Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigReader::ReadValue().
-.SS "#define DEBUG 10"
-.PP
-log levels
-.PP
-Definition at line 23 of file modules.h.
-.SS "#define DEFAULT 30"
-.PP
-Definition at line 25 of file modules.h.
-.SS "#define FD_MAGIC_NUMBER -42"
-.PP
-Definition at line 102 of file modules.h.
-.PP
-Referenced by Server::PseudoToUser(), and Server::UserToPseudo().
-.SS "#define FOREACH_MOD for (int _i = 0; _i <= \fBMODCOUNT\fP; _i++) modules[_i]->"
-.PP
-Definition at line 82 of file modules.h.
-.PP
-Referenced by del_channel(), ForceChan(), FullConnectUser(), kick_channel(), kill_link(), kill_link_silent(), and Event::Send().
-.SS "#define FOREACH_RESULT(x)"
-.PP
-\fBValue:\fP
-.PP
-.nf
-{ MOD_RESULT = 0; \
- for (int _i = 0; _i <= MODCOUNT; _i++) { \
- int res = modules[_i]->x ; \
- if (res != 0) { \
- MOD_RESULT = res; \
- break; \
- } \
- } \
- }
-.fi
-.PP
-Definition at line 90 of file modules.h.
-.PP
-Referenced by add_channel(), force_nickchange(), and kick_channel().
-.SS "#define IS_LOCAL(x) (x->fd > -1)"
-.PP
-Definition at line 106 of file modules.h.
-.SS "#define IS_MODULE_CREATED(x) (x->fd == FD_MAGIC_NUMBER)"
-.PP
-Definition at line 108 of file modules.h.
-.SS "#define IS_REMOTE(x) (x->fd < 0)"
-.PP
-Definition at line 107 of file modules.h.
-.SS "#define MT_CHANNEL 1"
-.PP
-Used with OnExtendedMode() method of modules.
-.PP
-Definition at line 31 of file modules.h.
-.PP
-Referenced by Server::AddExtendedListMode(), and ModeMakeList().
-.SS "#define MT_CLIENT 2"
-.PP
-Definition at line 32 of file modules.h.
-.PP
-Referenced by Server::AddExtendedMode().
-.SS "#define MT_SERVER 3"
-.PP
-Definition at line 33 of file modules.h.
-.PP
-Referenced by Server::AddExtendedMode().
-.SS "#define NONE 50"
-.PP
-Definition at line 27 of file modules.h.
-.SS "#define SPARSE 40"
-.PP
-Definition at line 26 of file modules.h.
-.SS "#define TYPE_CHANNEL 2"
-.PP
-Definition at line 118 of file modules.h.
-.SS "#define TYPE_SERVER 3"
-.PP
-Definition at line 119 of file modules.h.
-.SS "#define TYPE_USER 1"
-.PP
-Definition at line 117 of file modules.h.
-.SS "#define VERBOSE 20"
-.PP
-Definition at line 24 of file modules.h.
-.SS "#define VF_COMMON 8"
-.PP
-Definition at line 55 of file modules.h.
-.SS "#define VF_SERVICEPROVIDER 4"
-.PP
-Definition at line 54 of file modules.h.
-.SS "#define VF_STATIC 1"
-.PP
-Used to define a set of behavior bits for a module.
-.PP
-Definition at line 52 of file modules.h.
-.SS "#define VF_VENDOR 2"
-.PP
-Definition at line 53 of file modules.h.
-.PP
-Referenced by Module::GetVersion().
-.SS "#define WM_AND 1"
-.PP
-Definition at line 112 of file modules.h.
-.SS "#define WM_OR 2"
-.PP
-Definition at line 113 of file modules.h.
-.SH "Typedef Documentation"
-.PP
-.SS "typedef std::deque<\fBuserrec\fP*> \fBchanuserlist\fP"
-.PP
-Holds a list of users in a channel.
-.PP
-Definition at line 75 of file modules.h.
-.SS "typedef std::deque<\fBstd::string\fP> \fBfile_cache\fP"
-.PP
-Low level definition of a \fBFileReader\fP classes file cache area.
-.PP
-Definition at line 66 of file modules.h.
-.SS "typedef DLLFactory<\fBModuleFactory\fP> \fBircd_module\fP"
-.PP
-Definition at line 1707 of file modules.h.
-.SS "typedef \fBfile_cache\fP \fBstring_list\fP"
-.PP
-Definition at line 71 of file modules.h.
-.SH "Function Documentation"
-.PP
-.SS "bool ModeDefined (char c, int i)"
-.PP
-Definition at line 70 of file modules.cpp.
-.PP
-References EMode.
-.PP
-Referenced by DoAddExtendedMode().
-.PP
-.nf
-71 {
-72 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-73 {
-74 if ((i->modechar == modechar) && (i->type == type))
-75 {
-76 return true;
-77 }
-78 }
-79 return false;
-80 }
-.fi
-.PP
-.SS "int ModeDefinedOff (char c, int i)"
-.PP
-Definition at line 120 of file modules.cpp.
-.PP
-References EMode.
-.PP
-.nf
-121 {
-122 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-123 {
-124 if ((i->modechar == modechar) && (i->type == type))
-125 {
-126 return i->params_when_off;
-127 }
-128 }
-129 return 0;
-130 }
-.fi
-.PP
-.SS "int ModeDefinedOn (char c, int i)"
-.PP
-Definition at line 107 of file modules.cpp.
-.PP
-References EMode.
-.PP
-.nf
-108 {
-109 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-110 {
-111 if ((i->modechar == modechar) && (i->type == type))
-112 {
-113 return i->params_when_on;
-114 }
-115 }
-116 return 0;
-117 }
-.fi
-.PP
-.SS "bool ModeDefinedOper (char c, int i)"
-.PP
-Definition at line 94 of file modules.cpp.
-.PP
-References EMode.
-.PP
-.nf
-95 {
-96 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-97 {
-98 if ((i->modechar == modechar) && (i->type == type) && (i->needsoper == true))
-99 {
-100 return true;
-101 }
-102 }
-103 return false;
-104 }
-.fi
-.PP
-.SS "bool ModeIsListMode (char modechar, int type)"
-.PP
-Definition at line 82 of file modules.cpp.
-.PP
-References EMode.
-.PP
-.nf
-83 {
-84 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-85 {
-86 if ((i->modechar == modechar) && (i->type == type) && (i->list == true))
-87 {
-88 return true;
-89 }
-90 }
-91 return false;
-92 }
-.fi
-.PP
-.SS "void ModeMakeList (char modechar)"
-.PP
-Definition at line 143 of file modules.cpp.
-.PP
-References EMode, and MT_CHANNEL.
-.PP
-Referenced by Server::AddExtendedListMode().
-.PP
-.nf
-144 {
-145 for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-146 {
-147 if ((i->modechar == modechar) && (i->type == MT_CHANNEL))
-148 {
-149 i->list = true;
-150 return;
-151 }
-152 }
-153 return;
-154 }
-.fi
-.PP
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/nspace.3 b/docs/man/man3/nspace.3
deleted file mode 100644
index 6f94db022..000000000
--- a/docs/man/man3/nspace.3
+++ /dev/null
@@ -1,21 +0,0 @@
-.TH "nspace" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-nspace \-
-.SH SYNOPSIS
-.br
-.PP
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "struct \fBhash< in_addr >\fP"
-.br
-.ti -1c
-.RI "struct \fBhash< string >\fP"
-.br
-.in -1c
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/nspace_hash_ in_addr _.3 b/docs/man/man3/nspace_hash_ in_addr _.3
deleted file mode 100644
index 71b1b92a8..000000000
--- a/docs/man/man3/nspace_hash_ in_addr _.3
+++ /dev/null
@@ -1,33 +0,0 @@
-.TH "nspace::hash< in_addr >" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-nspace::hash< in_addr > \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <hashcomp.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "size_t \fBoperator()\fP (const struct in_addr &a) const "
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.SS "template<> struct nspace::hash< in_addr >"
-
-.PP
-Definition at line 54 of file hashcomp.h.
-.SH "Member Function Documentation"
-.PP
-.SS "size_t nspace::hash< in_addr >::operator() (const struct in_addr & a) const"
-.PP
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/nspace_hash_ string _.3 b/docs/man/man3/nspace_hash_ string _.3
deleted file mode 100644
index ea101e76b..000000000
--- a/docs/man/man3/nspace_hash_ string _.3
+++ /dev/null
@@ -1,33 +0,0 @@
-.TH "nspace::hash< string >" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-nspace::hash< string > \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <hashcomp.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "size_t \fBoperator()\fP (const \fBstring\fP &s) const "
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.SS "template<> struct nspace::hash< string >"
-
-.PP
-Definition at line 62 of file hashcomp.h.
-.SH "Member Function Documentation"
-.PP
-.SS "size_t nspace::hash< \fBstring\fP >::operator() (const \fBstring\fP & s) const"
-.PP
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/nspace_nspace_hash_ in_addr _.3 b/docs/man/man3/nspace_nspace_hash_ in_addr _.3
deleted file mode 100644
index 5f909e73d..000000000
--- a/docs/man/man3/nspace_nspace_hash_ in_addr _.3
+++ /dev/null
@@ -1,29 +0,0 @@
-.TH "nspace::nspace::hash< in_addr >" 3 "30 May 2005" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-nspace::nspace::hash< in_addr > \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <hashcomp.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "size_t \fBoperator()\fP (const struct in_addr &a) const"
-.br
-.in -1c
-
-.SS "template<> struct nspace::hash< in_addr >"
-
-.SH "Member Function Documentation"
-.PP
-.SS "size_t nspace::hash< in_addr >::operator() (const struct in_addr & a) const"
-.PP
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/nspace_nspace_hash_ string _.3 b/docs/man/man3/nspace_nspace_hash_ string _.3
deleted file mode 100644
index d152c53de..000000000
--- a/docs/man/man3/nspace_nspace_hash_ string _.3
+++ /dev/null
@@ -1,29 +0,0 @@
-.TH "nspace::nspace::hash< string >" 3 "30 May 2005" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-nspace::nspace::hash< string > \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <hashcomp.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "size_t \fBoperator()\fP (const string &s) const"
-.br
-.in -1c
-
-.SS "template<> struct nspace::hash< string >"
-
-.SH "Member Function Documentation"
-.PP
-.SS "size_t nspace::hash< string >::operator() (const string & s) const"
-.PP
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/packet.3 b/docs/man/man3/packet.3
deleted file mode 100644
index 413434e3d..000000000
--- a/docs/man/man3/packet.3
+++ /dev/null
@@ -1,25 +0,0 @@
-.TH "packet" 3 "15 Apr 2005" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-packet \- Class packet is deprecated.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <connection.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SH "Detailed Description"
-.PP
-Class packet is deprecated.
-
-This declaration is preserved here to maintain documentation only.
-.PP
-Definition at line 167 of file connection.h.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/serverstats.3 b/docs/man/man3/serverstats.3
deleted file mode 100644
index 9a3d5480c..000000000
--- a/docs/man/man3/serverstats.3
+++ /dev/null
@@ -1,135 +0,0 @@
-.TH "serverstats" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-serverstats \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <inspircd.h>\fP
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBserverstats\fP ()"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "int \fBstatsAccept\fP"
-.br
-.ti -1c
-.RI "int \fBstatsRefused\fP"
-.br
-.ti -1c
-.RI "int \fBstatsUnknown\fP"
-.br
-.ti -1c
-.RI "int \fBstatsCollisions\fP"
-.br
-.ti -1c
-.RI "int \fBstatsDns\fP"
-.br
-.ti -1c
-.RI "int \fBstatsDnsGood\fP"
-.br
-.ti -1c
-.RI "int \fBstatsDnsBad\fP"
-.br
-.ti -1c
-.RI "int \fBstatsConnects\fP"
-.br
-.ti -1c
-.RI "int \fBstatsSent\fP"
-.br
-.ti -1c
-.RI "int \fBstatsRecv\fP"
-.br
-.ti -1c
-.RI "int \fBBoundPortCount\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-Definition at line 74 of file inspircd.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "serverstats::serverstats ()\fC [inline]\fP"
-.PP
-Definition at line 89 of file inspircd.h.
-.PP
-References BoundPortCount, statsAccept, statsCollisions, statsConnects, statsDns, statsDnsBad, statsDnsGood, statsRecv, statsRefused, statsSent, and statsUnknown.
-.PP
-.nf
-90 {
-91 statsAccept = statsRefused = statsUnknown = 0;
-92 statsCollisions = statsDns = statsDnsGood = 0;
-93 statsDnsBad = statsConnects = statsSent = statsRecv = 0;
-94 BoundPortCount = 0;
-95 }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "int \fBserverstats::BoundPortCount\fP"
-.PP
-Definition at line 87 of file inspircd.h.
-.PP
-Referenced by serverstats().
-.SS "int \fBserverstats::statsAccept\fP"
-.PP
-Definition at line 77 of file inspircd.h.
-.PP
-Referenced by serverstats().
-.SS "int \fBserverstats::statsCollisions\fP"
-.PP
-Definition at line 80 of file inspircd.h.
-.PP
-Referenced by force_nickchange(), and serverstats().
-.SS "int \fBserverstats::statsConnects\fP"
-.PP
-Definition at line 84 of file inspircd.h.
-.PP
-Referenced by FullConnectUser(), and serverstats().
-.SS "int \fBserverstats::statsDns\fP"
-.PP
-Definition at line 81 of file inspircd.h.
-.PP
-Referenced by serverstats().
-.SS "int \fBserverstats::statsDnsBad\fP"
-.PP
-Definition at line 83 of file inspircd.h.
-.PP
-Referenced by serverstats().
-.SS "int \fBserverstats::statsDnsGood\fP"
-.PP
-Definition at line 82 of file inspircd.h.
-.PP
-Referenced by serverstats().
-.SS "int \fBserverstats::statsRecv\fP"
-.PP
-Definition at line 86 of file inspircd.h.
-.PP
-Referenced by serverstats().
-.SS "int \fBserverstats::statsRefused\fP"
-.PP
-Definition at line 78 of file inspircd.h.
-.PP
-Referenced by serverstats().
-.SS "int \fBserverstats::statsSent\fP"
-.PP
-Definition at line 85 of file inspircd.h.
-.PP
-Referenced by serverstats().
-.SS "int \fBserverstats::statsUnknown\fP"
-.PP
-Definition at line 79 of file inspircd.h.
-.PP
-Referenced by serverstats().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/socket.cpp.3 b/docs/man/man3/socket.cpp.3
deleted file mode 100644
index 9a9ca61d2..000000000
--- a/docs/man/man3/socket.cpp.3
+++ /dev/null
@@ -1,72 +0,0 @@
-.TH "socket.cpp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-socket.cpp \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include <sys/time.h>\fP
-.br
-\fC#include <sys/resource.h>\fP
-.br
-\fC#include <sys/types.h>\fP
-.br
-\fC#include <sys/socket.h>\fP
-.br
-\fC#include <netinet/in.h>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <unistd.h>\fP
-.br
-\fC#include <fcntl.h>\fP
-.br
-\fC#include <poll.h>\fP
-.br
-\fC#include <sstream>\fP
-.br
-\fC#include <iostream>\fP
-.br
-\fC#include <fstream>\fP
-.br
-\fC#include 'socket.h'\fP
-.br
-\fC#include 'inspircd.h'\fP
-.br
-\fC#include 'inspircd_io.h'\fP
-.br
-\fC#include 'inspstring.h'\fP
-.br
-\fC#include 'helperfuncs.h'\fP
-.br
-\fC#include 'socketengine.h'\fP
-.br
-
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "\fBInspIRCd\fP * \fBServerInstance\fP"
-.br
-.ti -1c
-.RI "time_t \fBTIME\fP"
-.br
-.ti -1c
-.RI "\fBInspSocket\fP * \fBsocket_ref\fP [65535]"
-.br
-.in -1c
-.SH "Variable Documentation"
-.PP
-.SS "\fBInspIRCd\fP* \fBServerInstance\fP"
-.PP
-.SS "\fBInspSocket\fP* \fBsocket_ref\fP[65535]"
-.PP
-Definition at line 43 of file socket.cpp.
-.SS "time_t \fBTIME\fP"
-.PP
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/socket.h.3 b/docs/man/man3/socket.h.3
deleted file mode 100644
index 9e9c0dbf7..000000000
--- a/docs/man/man3/socket.h.3
+++ /dev/null
@@ -1,90 +0,0 @@
-.TH "socket.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-socket.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <sys/types.h>\fP
-.br
-\fC#include <sys/socket.h>\fP
-.br
-\fC#include <netinet/in.h>\fP
-.br
-\fC#include <sstream>\fP
-.br
-\fC#include <string>\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBInspSocket\fP"
-.br
-.RI "\fIInspSocket is an extendable socket class which modules can use for TCP socket support. \fP"
-.in -1c
-.SS "Enumerations"
-
-.in +1c
-.ti -1c
-.RI "enum \fBInspSocketState\fP { \fBI_DISCONNECTED\fP, \fBI_CONNECTING\fP, \fBI_CONNECTED\fP, \fBI_LISTENING\fP, \fBI_ERROR\fP }"
-.br
-.RI "\fIStates which a socket may be in. \fP"
-.ti -1c
-.RI "enum \fBInspSocketError\fP { \fBI_ERR_TIMEOUT\fP, \fBI_ERR_SOCKET\fP, \fBI_ERR_CONNECT\fP, \fBI_ERR_BIND\fP }"
-.br
-.RI "\fIError types which a socket may exhibit. \fP"
-.in -1c
-.SH "Enumeration Type Documentation"
-.PP
-.SS "enum \fBInspSocketError\fP"
-.PP
-Error types which a socket may exhibit.
-.PP
-\fBEnumerator: \fP
-.in +1c
-.TP
-\fB\fII_ERR_TIMEOUT \fP\fP
-.TP
-\fB\fII_ERR_SOCKET \fP\fP
-.TP
-\fB\fII_ERR_CONNECT \fP\fP
-.TP
-\fB\fII_ERR_BIND \fP\fP
-
-.PP
-Definition at line 34 of file socket.h.
-.PP
-.nf
-34 { I_ERR_TIMEOUT, I_ERR_SOCKET, I_ERR_CONNECT, I_ERR_BIND };
-.fi
-.PP
-.SS "enum \fBInspSocketState\fP"
-.PP
-States which a socket may be in.
-.PP
-\fBEnumerator: \fP
-.in +1c
-.TP
-\fB\fII_DISCONNECTED \fP\fP
-.TP
-\fB\fII_CONNECTING \fP\fP
-.TP
-\fB\fII_CONNECTED \fP\fP
-.TP
-\fB\fII_LISTENING \fP\fP
-.TP
-\fB\fII_ERROR \fP\fP
-
-.PP
-Definition at line 29 of file socket.h.
-.PP
-.nf
-29 { I_DISCONNECTED, I_CONNECTING, I_CONNECTED, I_LISTENING, I_ERROR };
-.fi
-.PP
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/socketengine.cpp.3 b/docs/man/man3/socketengine.cpp.3
deleted file mode 100644
index 38cc4d5ea..000000000
--- a/docs/man/man3/socketengine.cpp.3
+++ /dev/null
@@ -1,38 +0,0 @@
-.TH "socketengine.cpp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-socketengine.cpp \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include 'globals.h'\fP
-.br
-\fC#include 'inspircd.h'\fP
-.br
-\fC#include <vector>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include 'socketengine.h'\fP
-.br
-
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "char \fBref\fP [65535]"
-.br
-.in -1c
-.SH "Variable Documentation"
-.PP
-.SS "char \fBref\fP[65535]"
-.PP
-Definition at line 33 of file socketengine.cpp.
-.PP
-Referenced by SocketEngine::AddFd(), SocketEngine::DelFd(), SocketEngine::GetType(), and SocketEngine::Wait().
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/socketengine.h.3 b/docs/man/man3/socketengine.h.3
deleted file mode 100644
index 835dcc8f3..000000000
--- a/docs/man/man3/socketengine.h.3
+++ /dev/null
@@ -1,94 +0,0 @@
-.TH "socketengine.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-socketengine.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <vector>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include 'globals.h'\fP
-.br
-\fC#include 'inspircd.h'\fP
-.br
-\fC#include <sys/types.h>\fP
-.br
-\fC#include <sys/event.h>\fP
-.br
-\fC#include <sys/time.h>\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBSocketEngine\fP"
-.br
-.RI "\fIThe 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. \fP"
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "const char \fBX_EMPTY_SLOT\fP = 0"
-.br
-.RI "\fIEach of these values represents a socket type in our reference table (the reference table itself is only accessible to \fBsocketengine.cpp\fP). \fP"
-.ti -1c
-.RI "const char \fBX_LISTEN\fP = 1"
-.br
-.ti -1c
-.RI "const char \fBX_ESTAB_CLIENT\fP = 2"
-.br
-.ti -1c
-.RI "const char \fBX_ESTAB_MODULE\fP = 3"
-.br
-.ti -1c
-.RI "const char \fBX_ESTAB_DNS\fP = 4"
-.br
-.ti -1c
-.RI "const char \fBX_READBIT\fP = 0x80"
-.br
-.RI "\fITo indicate that a socket is readable, we mask its top bit with this X_READBIT value. \fP"
-.in -1c
-.SH "Variable Documentation"
-.PP
-.SS "const char \fBX_EMPTY_SLOT\fP = 0"
-.PP
-Each of these values represents a socket type in our reference table (the reference table itself is only accessible to \fBsocketengine.cpp\fP).
-.PP
-Definition at line 41 of file socketengine.h.
-.PP
-Referenced by SocketEngine::GetType().
-.SS "const char \fBX_ESTAB_CLIENT\fP = 2"
-.PP
-Definition at line 43 of file socketengine.h.
-.PP
-Referenced by AddClient().
-.SS "const char \fBX_ESTAB_DNS\fP = 4"
-.PP
-Definition at line 45 of file socketengine.h.
-.SS "const char \fBX_ESTAB_MODULE\fP = 3"
-.PP
-Definition at line 44 of file socketengine.h.
-.PP
-Referenced by InspSocket::InspSocket(), and InspSocket::Poll().
-.SS "const char \fBX_LISTEN\fP = 1"
-.PP
-Definition at line 42 of file socketengine.h.
-.SS "const char \fBX_READBIT\fP = 0x80"
-.PP
-To indicate that a socket is readable, we mask its top bit with this X_READBIT value.
-.PP
-The socket engine can handle two types of socket, readable and writeable (error sockets are dealt with when read() and write() return negative or zero values).
-.PP
-Definition at line 55 of file socketengine.h.
-.PP
-Referenced by SocketEngine::AddFd(), SocketEngine::DelFd(), and SocketEngine::Wait().
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/std.3 b/docs/man/man3/std.3
deleted file mode 100644
index 55b862598..000000000
--- a/docs/man/man3/std.3
+++ /dev/null
@@ -1,11 +0,0 @@
-.TH "std" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-std \-
-.SH SYNOPSIS
-.br
-.PP
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/std_char_traits.3 b/docs/man/man3/std_char_traits.3
deleted file mode 100644
index 42e503317..000000000
--- a/docs/man/man3/std_char_traits.3
+++ /dev/null
@@ -1,15 +0,0 @@
-.TH "std::char_traits" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-std::char_traits \-
-.SH SYNOPSIS
-.br
-.PP
-Inherited by \fBirc::irc_char_traits\fP.
-.PP
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/typedefs.h.3 b/docs/man/man3/typedefs.h.3
deleted file mode 100644
index 859161214..000000000
--- a/docs/man/man3/typedefs.h.3
+++ /dev/null
@@ -1,88 +0,0 @@
-.TH "typedefs.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-typedefs.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'users.h'\fP
-.br
-\fC#include 'channels.h'\fP
-.br
-\fC#include 'hashcomp.h'\fP
-.br
-\fC#include 'inspstring.h'\fP
-.br
-\fC#include 'ctables.h'\fP
-.br
-\fC#include 'inspircd.h'\fP
-.br
-\fC#include 'modules.h'\fP
-.br
-\fC#include 'globals.h'\fP
-.br
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <ext/hash_map>\fP
-.br
-
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef nspace::hash_map< \fBstd::string\fP, \fBuserrec\fP *, nspace::hash< \fBstring\fP >, \fBirc::StrHashComp\fP > \fBuser_hash\fP"
-.br
-.ti -1c
-.RI "typedef nspace::hash_map< \fBstd::string\fP, \fBchanrec\fP *, nspace::hash< \fBstring\fP >, \fBirc::StrHashComp\fP > \fBchan_hash\fP"
-.br
-.ti -1c
-.RI "typedef nspace::hash_map< in_addr, \fBstring\fP *, nspace::hash< in_addr >, \fBirc::InAddr_HashComp\fP > \fBaddress_cache\fP"
-.br
-.ti -1c
-.RI "typedef nspace::hash_map< \fBstd::string\fP, \fBWhoWasUser\fP *, nspace::hash< \fBstring\fP >, \fBirc::StrHashComp\fP > \fBwhowas_hash\fP"
-.br
-.ti -1c
-.RI "typedef std::vector< \fBstd::string\fP > \fBservernamelist\fP"
-.br
-.ti -1c
-.RI "typedef std::vector< \fBExtMode\fP > \fBExtModeList\fP"
-.br
-.ti -1c
-.RI "typedef ExtModeList::iterator \fBExtModeListIter\fP"
-.br
-.ti -1c
-.RI "typedef std::deque< \fBstd::string\fP > \fBfile_cache\fP"
-.br
-.in -1c
-.SH "Typedef Documentation"
-.PP
-.SS "typedef nspace::hash_map<in_addr,\fBstring\fP*, nspace::hash<in_addr>, \fBirc::InAddr_HashComp\fP> \fBaddress_cache\fP"
-.PP
-Definition at line 22 of file typedefs.h.
-.SS "typedef nspace::hash_map<\fBstd::string\fP, \fBchanrec\fP*, nspace::hash<\fBstring\fP>, \fBirc::StrHashComp\fP> \fBchan_hash\fP"
-.PP
-Definition at line 21 of file typedefs.h.
-.SS "typedef std::vector<\fBExtMode\fP> \fBExtModeList\fP"
-.PP
-Definition at line 25 of file typedefs.h.
-.SS "typedef ExtModeList::iterator \fBExtModeListIter\fP"
-.PP
-Definition at line 26 of file typedefs.h.
-.SS "typedef std::deque<\fBstd::string\fP> \fBfile_cache\fP"
-.PP
-Definition at line 27 of file typedefs.h.
-.SS "typedef std::vector<\fBstd::string\fP> \fBservernamelist\fP"
-.PP
-Definition at line 24 of file typedefs.h.
-.SS "typedef nspace::hash_map<\fBstd::string\fP, \fBuserrec\fP*, nspace::hash<\fBstring\fP>, \fBirc::StrHashComp\fP> \fBuser_hash\fP"
-.PP
-Definition at line 20 of file typedefs.h.
-.SS "typedef nspace::hash_map<\fBstd::string\fP, \fBWhoWasUser\fP*, nspace::hash<\fBstring\fP>, \fBirc::StrHashComp\fP> \fBwhowas_hash\fP"
-.PP
-Definition at line 23 of file typedefs.h.
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/ucrec.3 b/docs/man/man3/ucrec.3
deleted file mode 100644
index 3f0226786..000000000
--- a/docs/man/man3/ucrec.3
+++ /dev/null
@@ -1,85 +0,0 @@
-.TH "ucrec" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-ucrec \- 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.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <channels.h>\fP
-.PP
-Inherits \fBclassbase\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBucrec\fP ()"
-.br
-.ti -1c
-.RI "virtual \fB~ucrec\fP ()"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBuc_modes\fP"
-.br
-.RI "\fIContains a bitmask of the UCMODE_OP . \fP"
-.ti -1c
-.RI "\fBchanrec\fP * \fBchannel\fP"
-.br
-.RI "\fIPoints to the channel record where the given modes apply. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-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.
-
-The uc_modes member holds a bitmask of which privilages the user has on the channel, such as op, voice, etc.
-.PP
-Definition at line 243 of file channels.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "ucrec::ucrec ()\fC [inline]\fP"
-.PP
-Definition at line 256 of file channels.h.
-.PP
-.nf
-256 { /* stub */ }
-.fi
-.PP
-.SS "virtual ucrec::~ucrec ()\fC [inline, virtual]\fP"
-.PP
-Definition at line 257 of file channels.h.
-.PP
-.nf
-257 { /* stub */ }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "\fBchanrec\fP* \fBucrec::channel\fP"
-.PP
-Points to the channel record where the given modes apply.
-.PP
-If the record is not in use, this value will be NULL.
-.PP
-Definition at line 254 of file channels.h.
-.PP
-Referenced by AddClient(), and ForceChan().
-.SS "char \fBucrec::uc_modes\fP"
-.PP
-Contains a bitmask of the UCMODE_OP .
-.PP
-.. UCMODE_FOUNDER values. If this value is zero, the user has no privilages upon the channel.
-.PP
-Definition at line 249 of file channels.h.
-.PP
-Referenced by AddClient(), and ForceChan().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/userprocess.h.3 b/docs/man/man3/userprocess.h.3
deleted file mode 100644
index 8a1b46b91..000000000
--- a/docs/man/man3/userprocess.h.3
+++ /dev/null
@@ -1,52 +0,0 @@
-.TH "userprocess.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-userprocess.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'users.h'\fP
-.br
-\fC#include 'inspircd.h'\fP
-.br
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBCheckDie\fP ()"
-.br
-.ti -1c
-.RI "void \fBLoadAllModules\fP (\fBInspIRCd\fP *\fBServerInstance\fP)"
-.br
-.ti -1c
-.RI "void \fBCheckRoot\fP ()"
-.br
-.ti -1c
-.RI "void \fBOpenLog\fP (char **argv, int argc)"
-.br
-.ti -1c
-.RI "bool \fBDoBackgroundUserStuff\fP (time_t \fBTIME\fP)"
-.br
-.ti -1c
-.RI "void \fBProcessUser\fP (\fBuserrec\fP *cu)"
-.br
-.in -1c
-.SH "Function Documentation"
-.PP
-.SS "void CheckDie ()"
-.PP
-.SS "void CheckRoot ()"
-.PP
-.SS "bool DoBackgroundUserStuff (time_t TIME)"
-.PP
-.SS "void LoadAllModules (\fBInspIRCd\fP * ServerInstance)"
-.PP
-.SS "void OpenLog (char ** argv, int argc)"
-.PP
-.SS "void ProcessUser (\fBuserrec\fP * cu)"
-.PP
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/userrec.3 b/docs/man/man3/userrec.3
deleted file mode 100644
index e0c938e5e..000000000
--- a/docs/man/man3/userrec.3
+++ /dev/null
@@ -1,827 +0,0 @@
-.TH "userrec" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-userrec \- Holds all information about a user This class stores all information about a user connected to the irc server.
-
-.PP
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <users.h>\fP
-.PP
-Inherits \fBconnection\fP.
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBuserrec\fP ()"
-.br
-.ti -1c
-.RI "virtual char * \fBGetFullHost\fP ()"
-.br
-.RI "\fIReturns the full displayed host of the user This member function returns the hostname of the user as seen by other users on the server, in nick!identhost form. \fP"
-.ti -1c
-.RI "virtual char * \fBGetFullRealHost\fP ()"
-.br
-.RI "\fIReturns the full real host of the user This member function returns the hostname of the user as seen by other users on the server, in nick!identhost form. \fP"
-.ti -1c
-.RI "virtual bool \fBIsInvited\fP (\fBirc::string\fP &channel)"
-.br
-.RI "\fIReturns true if a user is invited to a channel. \fP"
-.ti -1c
-.RI "virtual void \fBInviteTo\fP (\fBirc::string\fP &channel)"
-.br
-.RI "\fIAdds a channel to a users invite list (invites them to a channel). \fP"
-.ti -1c
-.RI "virtual void \fBRemoveInvite\fP (\fBirc::string\fP &channel)"
-.br
-.RI "\fIRemoves a channel from a users invite list. \fP"
-.ti -1c
-.RI "bool \fBHasPermission\fP (\fBstd::string\fP &command)"
-.br
-.RI "\fIReturns true or false for if a user can execute a privilaged oper command. \fP"
-.ti -1c
-.RI "int \fBReadData\fP (void *buffer, size_t size)"
-.br
-.RI "\fICalls read() to read some data for this user using their fd. \fP"
-.ti -1c
-.RI "bool \fBAddBuffer\fP (\fBstd::string\fP a)"
-.br
-.RI "\fIThis method adds data to the buffer of the user. \fP"
-.ti -1c
-.RI "bool \fBBufferIsReady\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 function clears the entire buffer by setting it to an empty string. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBGetBuffer\fP ()"
-.br
-.RI "\fIThis method returns the first available string at the tail end of the buffer and advances the tail end of the buffer past the string. \fP"
-.ti -1c
-.RI "void \fBSetWriteError\fP (\fBstd::string\fP error)"
-.br
-.RI "\fISets the write error for a connection. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBGetWriteError\fP ()"
-.br
-.RI "\fIReturns the write error which last occured on this connection or an empty string if none occured. \fP"
-.ti -1c
-.RI "void \fBAddWriteBuf\fP (\fBstd::string\fP data)"
-.br
-.RI "\fIAdds to the user's write buffer. \fP"
-.ti -1c
-.RI "void \fBFlushWriteBuf\fP ()"
-.br
-.RI "\fIFlushes as much of the user's buffer to the file descriptor as possible. \fP"
-.ti -1c
-.RI "\fBInvitedList\fP * \fBGetInviteList\fP ()"
-.br
-.RI "\fIReturns the list of channels this user has been invited to but has not yet joined. \fP"
-.ti -1c
-.RI "void \fBCloseSocket\fP ()"
-.br
-.RI "\fIShuts down and closes the user's socket. \fP"
-.ti -1c
-.RI "virtual \fB~userrec\fP ()"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "char \fBnick\fP [NICKMAX]"
-.br
-.RI "\fIThe users nickname. \fP"
-.ti -1c
-.RI "char \fBident\fP [IDENTMAX+2]"
-.br
-.RI "\fIThe users ident reply. \fP"
-.ti -1c
-.RI "char \fBdhost\fP [160]"
-.br
-.RI "\fIThe host displayed to non-opers (used for cloaking etc). \fP"
-.ti -1c
-.RI "char \fBfullname\fP [MAXGECOS+1]"
-.br
-.RI "\fIThe users full name. \fP"
-.ti -1c
-.RI "char \fBmodes\fP [54]"
-.br
-.RI "\fIThe user's mode string. \fP"
-.ti -1c
-.RI "std::vector< \fBucrec\fP > \fBchans\fP"
-.br
-.ti -1c
-.RI "char * \fBserver\fP"
-.br
-.RI "\fIThe server the user is connected to. \fP"
-.ti -1c
-.RI "char \fBawaymsg\fP [MAXAWAY+1]"
-.br
-.RI "\fIThe user's away message. \fP"
-.ti -1c
-.RI "int \fBflood\fP"
-.br
-.RI "\fINumber of lines the user can place into the buffer (up to the global NetBufferSize bytes) before they are disconnected for excess flood. \fP"
-.ti -1c
-.RI "unsigned int \fBtimeout\fP"
-.br
-.RI "\fINumber of seconds this user is given to send USER/NICK If they do not send their details in this time limit they will be disconnected. \fP"
-.ti -1c
-.RI "char \fBoper\fP [NICKMAX]"
-.br
-.RI "\fIThe oper type they logged in as, if they are an oper. \fP"
-.ti -1c
-.RI "bool \fBdns_done\fP"
-.br
-.RI "\fITrue when \fBDNS\fP lookups are completed. \fP"
-.ti -1c
-.RI "unsigned int \fBpingmax\fP"
-.br
-.RI "\fINumber of seconds between PINGs for this user (set from <connect:allow> tag. \fP"
-.ti -1c
-.RI "char \fBpassword\fP [MAXBUF]"
-.br
-.RI "\fIPassword specified by the user when they registered. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBrecvq\fP"
-.br
-.RI "\fIUser's receive queue. \fP"
-.ti -1c
-.RI "\fBstd::string\fP \fBsendq\fP"
-.br
-.RI "\fIUser's send queue. \fP"
-.ti -1c
-.RI "int \fBlines_in\fP"
-.br
-.RI "\fIFlood counters. \fP"
-.ti -1c
-.RI "time_t \fBreset_due\fP"
-.br
-.ti -1c
-.RI "long \fBthreshold\fP"
-.br
-.ti -1c
-.RI "\fBstd::string\fP \fBWriteError\fP"
-.br
-.ti -1c
-.RI "long \fBsendqmax\fP"
-.br
-.RI "\fIMaximum size this user's sendq can become. \fP"
-.ti -1c
-.RI "long \fBrecvqmax\fP"
-.br
-.RI "\fIMaximum size this user's recvq can become. \fP"
-.in -1c
-.SS "Private Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBInvitedList\fP \fBinvites\fP"
-.br
-.RI "\fIA list of channels the user has a pending invite to. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP
-Holds all information about a user This class stores all information about a user connected to the irc server.
-
-Everything about a connection is stored here primarily, from the user's socket ID (file descriptor) through to the user's nickname and hostname. Use the Find method of the server class to locate a specific user by nickname.
-.PP
-Definition at line 115 of file users.h.
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "userrec::userrec ()"
-.PP
-Definition at line 63 of file users.cpp.
-.PP
-References awaymsg, connection::bytes_in, connection::bytes_out, chans, connection::cmds_in, connection::cmds_out, dhost, dns_done, connection::fd, FindServerNamePtr(), flood, fullname, connection::haspassed, connection::host, ident, connection::idle_lastmsg, invites, connection::ip, connection::lastping, lines_in, modes, nick, connection::nping, oper, connection::port, recvq, connection::registered, reset_due, sendq, server, ServerConfig::ServerName, connection::signon, TIME, and timeout.
-.PP
-.nf
-64 {
-65 // the PROPER way to do it, AVOID bzero at *ALL* costs
-66 strcpy(nick,'');
-67 strcpy(ip,'127.0.0.1');
-68 timeout = 0;
-69 strcpy(ident,'');
-70 strcpy(host,'');
-71 strcpy(dhost,'');
-72 strcpy(fullname,'');
-73 strcpy(modes,'');
-74 server = (char*)FindServerNamePtr(Config->ServerName);
-75 strcpy(awaymsg,'');
-76 strcpy(oper,'');
-77 reset_due = TIME;
-78 lines_in = 0;
-79 fd = lastping = signon = idle_lastmsg = nping = registered = 0;
-80 flood = port = bytes_in = bytes_out = cmds_in = cmds_out = 0;
-81 haspassed = false;
-82 dns_done = false;
-83 recvq = '';
-84 sendq = '';
-85 chans.clear();
-86 invites.clear();
-87 }
-.fi
-.PP
-.SS "userrec::~userrec ()\fC [virtual]\fP"
-.PP
-Definition at line 89 of file users.cpp.
-.PP
-.nf
-90 {
-91 }
-.fi
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "bool userrec::AddBuffer (\fBstd::string\fP a)"
-.PP
-This method adds data to the buffer of the user.
-.PP
-The buffer can grow to any size within limits of the available memory, managed by the size of a \fBstd::string\fP, however if any individual line in the buffer grows over 600 bytes in length (which is 88 chars over the RFC-specified limit per line) then the method will return false and the text will not be inserted.
-.PP
-Definition at line 219 of file users.cpp.
-.PP
-References recvq, recvqmax, SetWriteError(), and WriteOpers().
-.PP
-.nf
-220 {
-221 std::string b = '';
-222 for (unsigned int i = 0; i < a.length(); i++)
-223 if ((a[i] != '\r') && (a[i] != '\0') && (a[i] != 7))
-224 b = b + a[i];
-225 std::stringstream stream(recvq);
-226 stream << b;
-227 recvq = stream.str();
-228 unsigned int i = 0;
-229 // count the size of the first line in the buffer.
-230 while (i < recvq.length())
-231 {
-232 if (recvq[i++] == '\n')
-233 break;
-234 }
-235 if (recvq.length() > (unsigned)this->recvqmax)
-236 {
-237 this->SetWriteError('RecvQ exceeded');
-238 WriteOpers('*** User %s RecvQ of %d exceeds connect class maximum of %d',this->nick,recvq.length(),this->recvqmax);
-239 }
-240 // return false if we've had more than 600 characters WITHOUT
-241 // a carriage return (this is BAD, drop the socket)
-242 return (i < 600);
-243 }
-.fi
-.PP
-.SS "void userrec::AddWriteBuf (\fBstd::string\fP data)"
-.PP
-Adds to the user's write buffer.
-.PP
-You may add any amount of text up to this users sendq value, if you exceed the sendq value, \fBSetWriteError()\fP will be called to set the users error string to 'SendQ exceeded', and further buffer adds will be dropped.
-.PP
-Definition at line 275 of file users.cpp.
-.PP
-References sendq, sendqmax, SetWriteError(), and WriteOpers().
-.PP
-.nf
-276 {
-277 if (this->GetWriteError() != '')
-278 return;
-279 if (sendq.length() + data.length() > (unsigned)this->sendqmax)
-280 {
-281 /* Fix by brain - Set the error text BEFORE calling writeopers, because
-282 * if we dont it'll recursively call here over and over again trying
-283 * to repeatedly add the text to the sendq!
-284 */
-285 this->SetWriteError('SendQ exceeded');
-286 WriteOpers('*** User %s SendQ of %d exceeds connect class maximum of %d',this->nick,sendq.length() + data.length(),this->sendqmax);
-287 return;
-288 }
-289 std::stringstream stream;
-290 stream << sendq << data;
-291 sendq = stream.str();
-292 }
-.fi
-.PP
-.SS "bool userrec::BufferIsReady ()"
-.PP
-This method returns true if the buffer contains at least one carriage return character (e.g.
-.PP
-one complete line may be read)
-.PP
-Definition at line 245 of file users.cpp.
-.PP
-References recvq.
-.PP
-.nf
-246 {
-247 for (unsigned int i = 0; i < recvq.length(); i++)
-248 if (recvq[i] == '\n')
-249 return true;
-250 return false;
-251 }
-.fi
-.PP
-.SS "void userrec::ClearBuffer ()"
-.PP
-This function clears the entire buffer by setting it to an empty string.
-.PP
-Definition at line 253 of file users.cpp.
-.PP
-References recvq.
-.PP
-Referenced by Server::PseudoToUser(), and Server::UserToPseudo().
-.PP
-.nf
-254 {
-255 recvq = '';
-256 }
-.fi
-.PP
-.SS "void userrec::CloseSocket ()"
-.PP
-Shuts down and closes the user's socket.
-.PP
-Definition at line 93 of file users.cpp.
-.PP
-Referenced by kill_link(), and kill_link_silent().
-.PP
-.nf
-94 {
-95 shutdown(this->fd,2);
-96 close(this->fd);
-97 }
-.fi
-.PP
-.SS "void userrec::FlushWriteBuf ()"
-.PP
-Flushes as much of the user's buffer to the file descriptor as possible.
-.PP
-This function may not always flush the entire buffer, rather instead as much of it as it possibly can. If the send() call fails to send the entire buffer, the buffer position is advanced forwards and the rest of the data sent at the next call to this method.
-.PP
-Definition at line 295 of file users.cpp.
-.PP
-References connection::bytes_out, connection::cmds_out, sendq, and SetWriteError().
-.PP
-Referenced by kill_link(), and kill_link_silent().
-.PP
-.nf
-296 {
-297 if (sendq.length())
-298 {
-299 char* tb = (char*)this->sendq.c_str();
-300 int n_sent = write(this->fd,tb,this->sendq.length());
-301 if (n_sent == -1)
-302 {
-303 this->SetWriteError(strerror(errno));
-304 }
-305 else
-306 {
-307 // advance the queue
-308 tb += n_sent;
-309 this->sendq = tb;
-310 // update the user's stats counters
-311 this->bytes_out += n_sent;
-312 this->cmds_out++;
-313 }
-314 }
-315 }
-.fi
-.PP
-.SS "\fBstd::string\fP userrec::GetBuffer ()"
-.PP
-This method returns the first available string at the tail end of the buffer and advances the tail end of the buffer past the string.
-.PP
-This means it is a one way operation in a similar way to strtok(), and multiple calls return multiple lines if they are available. The results of this function if there are no lines to be read are unknown, always use \fBBufferIsReady()\fP to check if it is ok to read the buffer before calling \fBGetBuffer()\fP.
-.PP
-Definition at line 258 of file users.cpp.
-.PP
-References recvq.
-.PP
-.nf
-259 {
-260 if (recvq == '')
-261 return '';
-262 char* line = (char*)recvq.c_str();
-263 std::string ret = '';
-264 while ((*line != '\n') && (strlen(line)))
-265 {
-266 ret = ret + *line;
-267 line++;
-268 }
-269 if ((*line == '\n') || (*line == '\r'))
-270 line++;
-271 recvq = line;
-272 return ret;
-273 }
-.fi
-.PP
-.SS "char * userrec::GetFullHost ()\fC [virtual]\fP"
-.PP
-Returns the full displayed host of the user This member function returns the hostname of the user as seen by other users on the server, in nick!identhost form.
-.PP
-Definition at line 99 of file users.cpp.
-.PP
-References dhost, ident, and nick.
-.PP
-Referenced by add_channel().
-.PP
-.nf
-100 {
-101 static char result[MAXBUF];
-102 snprintf(result,MAXBUF,'%s!%s@%s',nick,ident,dhost);
-103 return result;
-104 }
-.fi
-.PP
-.SS "char * userrec::GetFullRealHost ()\fC [virtual]\fP"
-.PP
-Returns the full real host of the user This member function returns the hostname of the user as seen by other users on the server, in nick!identhost form.
-.PP
-If any form of hostname cloaking is in operation, e.g. through a module, then this method will ignore it and return the true hostname.
-.PP
-Definition at line 116 of file users.cpp.
-.PP
-References connection::host, ident, and nick.
-.PP
-.nf
-117 {
-118 static char fresult[MAXBUF];
-119 snprintf(fresult,MAXBUF,'%s!%s@%s',nick,ident,host);
-120 return fresult;
-121 }
-.fi
-.PP
-.SS "\fBInvitedList\fP * userrec::GetInviteList ()"
-.PP
-Returns the list of channels this user has been invited to but has not yet joined.
-.PP
-Definition at line 136 of file users.cpp.
-.PP
-References invites.
-.PP
-.nf
-137 {
-138 return &invites;
-139 }
-.fi
-.PP
-.SS "\fBstd::string\fP userrec::GetWriteError ()"
-.PP
-Returns the write error which last occured on this connection or an empty string if none occured.
-.PP
-Definition at line 325 of file users.cpp.
-.PP
-References WriteError.
-.PP
-.nf
-326 {
-327 return this->WriteError;
-328 }
-.fi
-.PP
-.SS "bool userrec::HasPermission (\fBstd::string\fP & command)"
-.PP
-Returns true or false for if a user can execute a privilaged oper command.
-.PP
-This is done by looking up their oper type from \fBuserrec::oper\fP, then referencing this to their oper classes and checking the commands they can execute.
-.PP
-Definition at line 165 of file users.cpp.
-.PP
-References ServerConfig::config_f, ServerConfig::ConfValue(), and is_uline().
-.PP
-.nf
-166 {
-167 char TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
-168 char* mycmd;
-169 char* savept;
-170 char* savept2;
-171
-172 // users on u-lined servers can completely bypass
-173 // all permissions based checks.
-174 //
-175 // of course, if this is sent to a remote server and this
-176 // server is not ulined there, then that other server
-177 // silently drops the command.
-178 if (is_uline(this->server))
-179 return true;
-180
-181 // are they even an oper at all?
-182 if (strchr(this->modes,'o'))
-183 {
-184 for (int j =0; j < Config->ConfValueEnum('type',&Config->config_f); j++)
-185 {
-186 Config->ConfValue('type','name',j,TypeName,&Config->config_f);
-187 if (!strcmp(TypeName,this->oper))
-188 {
-189 Config->ConfValue('type','classes',j,Classes,&Config->config_f);
-190 char* myclass = strtok_r(Classes,' ',&savept);
-191 while (myclass)
-192 {
-193 for (int k =0; k < Config->ConfValueEnum('class',&Config->config_f); k++)
-194 {
-195 Config->ConfValue('class','name',k,ClassName,&Config->config_f);
-196 if (!strcmp(ClassName,myclass))
-197 {
-198 Config->ConfValue('class','commands',k,CommandList,&Config->config_f);
-199 mycmd = strtok_r(CommandList,' ',&savept2);
-200 while (mycmd)
-201 {
-202 if ((!strcasecmp(mycmd,command.c_str())) || (*mycmd == '*'))
-203 {
-204 return true;
-205 }
-206 mycmd = strtok_r(NULL,' ',&savept2);
-207 }
-208 }
-209 }
-210 myclass = strtok_r(NULL,' ',&savept);
-211 }
-212 }
-213 }
-214 }
-215 return false;
-216 }
-.fi
-.PP
-.SS "void userrec::InviteTo (\fBirc::string\fP & channel)\fC [virtual]\fP"
-.PP
-Adds a channel to a users invite list (invites them to a channel).
-.PP
-Definition at line 141 of file users.cpp.
-.PP
-References Invited::channel, and invites.
-.PP
-.nf
-142 {
-143 Invited i;
-144 i.channel = channel;
-145 invites.push_back(i);
-146 }
-.fi
-.PP
-.SS "bool userrec::IsInvited (\fBirc::string\fP & channel)\fC [virtual]\fP"
-.PP
-Returns true if a user is invited to a channel.
-.PP
-Definition at line 123 of file users.cpp.
-.PP
-References invites.
-.PP
-Referenced by add_channel().
-.PP
-.nf
-124 {
-125 for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
-126 {
-127 irc::string compare = i->channel;
-128 if (compare == channel)
-129 {
-130 return true;
-131 }
-132 }
-133 return false;
-134 }
-.fi
-.PP
-.SS "int userrec::ReadData (void * buffer, size_t size)"
-.PP
-Calls read() to read some data for this user using their fd.
-.PP
-Definition at line 106 of file users.cpp.
-.PP
-.nf
-107 {
-108 if (this->fd > -1)
-109 {
-110 return read(this->fd, buffer, size);
-111 }
-112 else return 0;
-113 }
-.fi
-.PP
-.SS "void userrec::RemoveInvite (\fBirc::string\fP & channel)\fC [virtual]\fP"
-.PP
-Removes a channel from a users invite list.
-.PP
-This member function is called on successfully joining an invite only channel to which the user has previously been invited, to clear the invitation.
-.PP
-Definition at line 148 of file users.cpp.
-.PP
-References DEBUG, invites, and log().
-.PP
-Referenced by add_channel().
-.PP
-.nf
-149 {
-150 log(DEBUG,'Removing invites');
-151 if (invites.size())
-152 {
-153 for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
-154 {
-155 irc::string compare = i->channel;
-156 if (compare == channel)
-157 {
-158 invites.erase(i);
-159 return;
-160 }
-161 }
-162 }
-163 }
-.fi
-.PP
-.SS "void userrec::SetWriteError (\fBstd::string\fP error)"
-.PP
-Sets the write error for a connection.
-.PP
-This is done because the actual disconnect of a client may occur at an inopportune time such as half way through /LIST output. The WriteErrors of clients are checked at a more ideal time (in the mainloop) and errored clients purged.
-.PP
-Definition at line 317 of file users.cpp.
-.PP
-References DEBUG, log(), and WriteError.
-.PP
-Referenced by AddBuffer(), AddWriteBuf(), and FlushWriteBuf().
-.PP
-.nf
-318 {
-319 log(DEBUG,'Setting error string for %s to '%s'',this->nick,error.c_str());
-320 // don't try to set the error twice, its already set take the first string.
-321 if (this->WriteError == '')
-322 this->WriteError = error;
-323 }
-.fi
-.PP
-.SH "Member Data Documentation"
-.PP
-.SS "char \fBuserrec::awaymsg\fP[MAXAWAY+1]"
-.PP
-The user's away message.
-.PP
-If this string is empty, the user is not marked as away.
-.PP
-Definition at line 162 of file users.h.
-.PP
-Referenced by userrec().
-.SS "std::vector<\fBucrec\fP> \fBuserrec::chans\fP"
-.PP
-Definition at line 153 of file users.h.
-.PP
-Referenced by add_channel(), del_channel(), kick_channel(), Server::PseudoToUser(), and userrec().
-.SS "char \fBuserrec::dhost\fP[160]"
-.PP
-The host displayed to non-opers (used for cloaking etc).
-.PP
-This usually matches the value of \fBuserrec::host\fP.
-.PP
-Definition at line 138 of file users.h.
-.PP
-Referenced by AddWhoWas(), GetFullHost(), and userrec().
-.SS "bool \fBuserrec::dns_done\fP"
-.PP
-True when \fBDNS\fP lookups are completed.
-.PP
-Definition at line 185 of file users.h.
-.PP
-Referenced by ConnectUser(), and userrec().
-.SS "int \fBuserrec::flood\fP"
-.PP
-Number of lines the user can place into the buffer (up to the global NetBufferSize bytes) before they are disconnected for excess flood.
-.PP
-Definition at line 168 of file users.h.
-.PP
-Referenced by userrec().
-.SS "char \fBuserrec::fullname\fP[MAXGECOS+1]"
-.PP
-The users full name.
-.PP
-Definition at line 142 of file users.h.
-.PP
-Referenced by AddWhoWas(), and userrec().
-.SS "char \fBuserrec::ident\fP[IDENTMAX+2]"
-.PP
-The users ident reply.
-.PP
-Two characters are added to the user-defined limit to compensate for the tilde etc.
-.PP
-Definition at line 133 of file users.h.
-.PP
-Referenced by AddWhoWas(), FullConnectUser(), GetFullHost(), GetFullRealHost(), kill_link(), kill_link_silent(), Server::PseudoToUser(), userrec(), and Server::UserToPseudo().
-.SS "\fBInvitedList\fP \fBuserrec::invites\fP\fC [private]\fP"
-.PP
-A list of channels the user has a pending invite to.
-.PP
-Definition at line 121 of file users.h.
-.PP
-Referenced by GetInviteList(), InviteTo(), IsInvited(), RemoveInvite(), and userrec().
-.SS "int \fBuserrec::lines_in\fP"
-.PP
-Flood counters.
-.PP
-Definition at line 210 of file users.h.
-.PP
-Referenced by userrec().
-.SS "char \fBuserrec::modes\fP[54]"
-.PP
-The user's mode string.
-.PP
-This may contain any of the following RFC characters: o, w, s, i Your module may define other mode characters as it sees fit. it is limited to length 54, as there can only be a maximum of 52 user modes (26 upper, 26 lower case) a null terminating char, and an optional + character.
-.PP
-Definition at line 151 of file users.h.
-.PP
-Referenced by add_channel(), and userrec().
-.SS "char \fBuserrec::nick\fP[NICKMAX]"
-.PP
-The users nickname.
-.PP
-An invalid nickname indicates an unregistered connection prior to the NICK command.
-.PP
-Definition at line 128 of file users.h.
-.PP
-Referenced by add_channel(), AddWhoWas(), del_channel(), ConfigReader::DumpErrors(), FullConnectUser(), GetFullHost(), GetFullRealHost(), kick_channel(), kill_link(), kill_link_silent(), Server::PseudoToUser(), and userrec().
-.SS "char \fBuserrec::oper\fP[NICKMAX]"
-.PP
-The oper type they logged in as, if they are an oper.
-.PP
-This is used to check permissions in operclasses, so that we can say 'yay' or 'nay' to any commands they issue. The value of this is the value of a valid 'type name=' tag.
-.PP
-Definition at line 181 of file users.h.
-.PP
-Referenced by userrec().
-.SS "char \fBuserrec::password\fP[MAXBUF]"
-.PP
-Password specified by the user when they registered.
-.PP
-This is stored even if the <connect> block doesnt need a password, so that modules may check it.
-.PP
-Definition at line 195 of file users.h.
-.SS "unsigned int \fBuserrec::pingmax\fP"
-.PP
-Number of seconds between PINGs for this user (set from <connect:allow> tag.
-.PP
-Definition at line 189 of file users.h.
-.SS "\fBstd::string\fP \fBuserrec::recvq\fP"
-.PP
-User's receive queue.
-.PP
-Lines from the IRCd awaiting processing are stored here. Upgraded april 2005, old system a bit hairy.
-.PP
-Definition at line 201 of file users.h.
-.PP
-Referenced by AddBuffer(), BufferIsReady(), ClearBuffer(), GetBuffer(), and userrec().
-.SS "long \fBuserrec::recvqmax\fP"
-.PP
-Maximum size this user's recvq can become.
-.PP
-Definition at line 224 of file users.h.
-.PP
-Referenced by AddBuffer().
-.SS "time_t \fBuserrec::reset_due\fP"
-.PP
-Definition at line 211 of file users.h.
-.PP
-Referenced by userrec().
-.SS "\fBstd::string\fP \fBuserrec::sendq\fP"
-.PP
-User's send queue.
-.PP
-Lines waiting to be sent are stored here until their buffer is flushed.
-.PP
-Definition at line 206 of file users.h.
-.PP
-Referenced by AddWriteBuf(), FlushWriteBuf(), and userrec().
-.SS "long \fBuserrec::sendqmax\fP"
-.PP
-Maximum size this user's sendq can become.
-.PP
-Definition at line 220 of file users.h.
-.PP
-Referenced by AddWriteBuf().
-.SS "char* \fBuserrec::server\fP"
-.PP
-The server the user is connected to.
-.PP
-Definition at line 157 of file users.h.
-.PP
-Referenced by AddWhoWas(), kick_channel(), and userrec().
-.SS "long \fBuserrec::threshold\fP"
-.PP
-Definition at line 212 of file users.h.
-.SS "unsigned int \fBuserrec::timeout\fP"
-.PP
-Number of seconds this user is given to send USER/NICK If they do not send their details in this time limit they will be disconnected.
-.PP
-Definition at line 174 of file users.h.
-.PP
-Referenced by userrec().
-.SS "\fBstd::string\fP \fBuserrec::WriteError\fP"
-.PP
-Definition at line 216 of file users.h.
-.PP
-Referenced by GetWriteError(), and SetWriteError().
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/users.cpp.3 b/docs/man/man3/users.cpp.3
deleted file mode 100644
index af36eb556..000000000
--- a/docs/man/man3/users.cpp.3
+++ /dev/null
@@ -1,731 +0,0 @@
-.TH "users.cpp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-users.cpp \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include 'channels.h'\fP
-.br
-\fC#include 'connection.h'\fP
-.br
-\fC#include 'users.h'\fP
-.br
-\fC#include 'inspircd.h'\fP
-.br
-\fC#include <stdio.h>\fP
-.br
-\fC#include 'inspstring.h'\fP
-.br
-\fC#include 'commands.h'\fP
-.br
-\fC#include 'helperfuncs.h'\fP
-.br
-\fC#include 'typedefs.h'\fP
-.br
-\fC#include 'socketengine.h'\fP
-.br
-\fC#include 'hashcomp.h'\fP
-.br
-\fC#include 'message.h'\fP
-.br
-\fC#include 'wildcard.h'\fP
-.br
-\fC#include 'xline.h'\fP
-.br
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "template<typename T> \fBstring\fP \fBConvToStr\fP (const T &in)"
-.br
-.ti -1c
-.RI "void \fBAddOper\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBDeleteOper\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBkill_link\fP (\fBuserrec\fP *user, const char *r)"
-.br
-.ti -1c
-.RI "void \fBkill_link_silent\fP (\fBuserrec\fP *user, const char *r)"
-.br
-.ti -1c
-.RI "void \fBAddWhoWas\fP (\fBuserrec\fP *u)"
-.br
-.ti -1c
-.RI "void \fBAddClient\fP (int socket, char *host, int port, bool iscached, char *ip)"
-.br
-.ti -1c
-.RI "void \fBFullConnectUser\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBConnectUser\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "\fBuserrec\fP * \fBReHashNick\fP (char *Old, char *New)"
-.br
-.ti -1c
-.RI "void \fBforce_nickchange\fP (\fBuserrec\fP *user, const char *newnick)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "\fBInspIRCd\fP * \fBServerInstance\fP"
-.br
-.ti -1c
-.RI "int \fBWHOWAS_STALE\fP"
-.br
-.ti -1c
-.RI "int \fBWHOWAS_MAX\fP"
-.br
-.ti -1c
-.RI "std::vector< \fBModule\fP * > \fBmodules\fP"
-.br
-.ti -1c
-.RI "std::vector< \fBircd_module\fP * > \fBfactory\fP"
-.br
-.ti -1c
-.RI "std::vector< \fBInspSocket\fP * > \fBmodule_sockets\fP"
-.br
-.ti -1c
-.RI "int \fBMODCOUNT\fP"
-.br
-.ti -1c
-.RI "\fBInspSocket\fP * \fBsocket_ref\fP [65535]"
-.br
-.ti -1c
-.RI "time_t \fBTIME\fP"
-.br
-.ti -1c
-.RI "\fBuserrec\fP * \fBfd_ref_table\fP [65536]"
-.br
-.ti -1c
-.RI "\fBServerConfig\fP * \fBConfig\fP"
-.br
-.ti -1c
-.RI "\fBuser_hash\fP \fBclientlist\fP"
-.br
-.ti -1c
-.RI "\fBwhowas_hash\fP \fBwhowas\fP"
-.br
-.ti -1c
-.RI "std::vector< \fBuserrec\fP * > \fBlocal_users\fP"
-.br
-.ti -1c
-.RI "std::vector< \fBuserrec\fP * > \fBall_opers\fP"
-.br
-.in -1c
-.SH "Function Documentation"
-.PP
-.SS "void AddClient (int socket, char * host, int port, bool iscached, char * ip)"
-.PP
-Definition at line 524 of file users.cpp.
-.PP
-References SocketEngine::AddFd(), CC_ALLOW, ucrec::channel, ServerConfig::Classes, clientlist, ConvToStr(), DEBUG, ServerConfig::dns_timeout, FindServerNamePtr(), kill_link(), local_users, log(), matches_exception(), matches_zline(), InspIRCd::SE, ServerConfig::ServerName, ServerConfig::SoftLimit, TIME, ucrec::uc_modes, and X_ESTAB_CLIENT.
-.PP
-.nf
-525 {
-526 string tempnick;
-527 char tn2[MAXBUF];
-528 user_hash::iterator iter;
-529
-530 tempnick = ConvToStr(socket) + '-unknown';
-531 sprintf(tn2,'%lu-unknown',(unsigned long)socket);
-532
-533 iter = clientlist.find(tempnick);
-534
-535 // fix by brain.
-536 // as these nicknames are 'RFC impossible', we can be sure nobody is going to be
-537 // using one as a registered connection. As theyre per fd, we can also safely assume
-538 // that we wont have collisions. Therefore, if the nick exists in the list, its only
-539 // used by a dead socket, erase the iterator so that the new client may reclaim it.
-540 // this was probably the cause of 'server ignores me when i hammer it with reconnects'
-541 // issue in earlier alphas/betas
-542 if (iter != clientlist.end())
-543 {
-544 userrec* goner = iter->second;
-545 delete goner;
-546 clientlist.erase(iter);
-547 }
-548
-549 /*
-550 * It is OK to access the value here this way since we know
-551 * it exists, we just created it above.
-552 *
-553 * At NO other time should you access a value in a map or a
-554 * hash_map this way.
-555 */
-556 clientlist[tempnick] = new userrec();
-557
-558 log(DEBUG,'AddClient: %lu %s %d %s',(unsigned long)socket,host,port,ip);
-559
-560 clientlist[tempnick]->fd = socket;
-561 strlcpy(clientlist[tempnick]->nick, tn2,NICKMAX);
-562 strlcpy(clientlist[tempnick]->host, host,160);
-563 strlcpy(clientlist[tempnick]->dhost, host,160);
-564 clientlist[tempnick]->server = (char*)FindServerNamePtr(Config->ServerName);
-565 strlcpy(clientlist[tempnick]->ident, 'unknown',IDENTMAX);
-566 clientlist[tempnick]->registered = 0;
-567 clientlist[tempnick]->signon = TIME + Config->dns_timeout;
-568 clientlist[tempnick]->lastping = 1;
-569 clientlist[tempnick]->port = port;
-570 strlcpy(clientlist[tempnick]->ip,ip,16);
-571
-572 // set the registration timeout for this user
-573 unsigned long class_regtimeout = 90;
-574 int class_flood = 0;
-575 long class_threshold = 5;
-576 long class_sqmax = 262144; // 256kb
-577 long class_rqmax = 4096; // 4k
-578
-579 for (ClassVector::iterator i = Config->Classes.begin(); i != Config->Classes.end(); i++)
-580 {
-581 if (match(clientlist[tempnick]->host,i->host) && (i->type == CC_ALLOW))
-582 {
-583 class_regtimeout = (unsigned long)i->registration_timeout;
-584 class_flood = i->flood;
-585 clientlist[tempnick]->pingmax = i->pingtime;
-586 class_threshold = i->threshold;
-587 class_sqmax = i->sendqmax;
-588 class_rqmax = i->recvqmax;
-589 break;
-590 }
-591 }
-592
-593 clientlist[tempnick]->nping = TIME+clientlist[tempnick]->pingmax + Config->dns_timeout;
-594 clientlist[tempnick]->timeout = TIME+class_regtimeout;
-595 clientlist[tempnick]->flood = class_flood;
-596 clientlist[tempnick]->threshold = class_threshold;
-597 clientlist[tempnick]->sendqmax = class_sqmax;
-598 clientlist[tempnick]->recvqmax = class_rqmax;
-599
-600 ucrec a;
-601 a.channel = NULL;
-602 a.uc_modes = 0;
-603 for (int i = 0; i < MAXCHANS; i++)
-604 clientlist[tempnick]->chans.push_back(a);
-605
-606 if (clientlist.size() > Config->SoftLimit)
-607 {
-608 kill_link(clientlist[tempnick],'No more connections allowed');
-609 return;
-610 }
-611
-612 if (clientlist.size() >= MAXCLIENTS)
-613 {
-614 kill_link(clientlist[tempnick],'No more connections allowed');
-615 return;
-616 }
-617
-618 // this is done as a safety check to keep the file descriptors within range of fd_ref_table.
-619 // its a pretty big but for the moment valid assumption:
-620 // file descriptors are handed out starting at 0, and are recycled as theyre freed.
-621 // therefore if there is ever an fd over 65535, 65536 clients must be connected to the
-622 // irc server at once (or the irc server otherwise initiating this many connections, files etc)
-623 // which for the time being is a physical impossibility (even the largest networks dont have more
-624 // than about 10,000 users on ONE server!)
-625 if ((unsigned)socket > 65534)
-626 {
-627 kill_link(clientlist[tempnick],'Server is full');
-628 return;
-629 }
-630 char* e = matches_exception(ip);
-631 if (!e)
-632 {
-633 char* r = matches_zline(ip);
-634 if (r)
-635 {
-636 char reason[MAXBUF];
-637 snprintf(reason,MAXBUF,'Z-Lined: %s',r);
-638 kill_link(clientlist[tempnick],reason);
-639 return;
-640 }
-641 }
-642 fd_ref_table[socket] = clientlist[tempnick];
-643 local_users.push_back(clientlist[tempnick]);
-644 ServerInstance->SE->AddFd(socket,true,X_ESTAB_CLIENT);
-645 }
-.fi
-.PP
-.SS "void AddOper (\fBuserrec\fP * user)"
-.PP
-Definition at line 330 of file users.cpp.
-.PP
-References all_opers, DEBUG, and log().
-.PP
-.nf
-331 {
-332 log(DEBUG,'Oper added to optimization list');
-333 all_opers.push_back(user);
-334 }
-.fi
-.PP
-.SS "void AddWhoWas (\fBuserrec\fP * u)"
-.PP
-Definition at line 471 of file users.cpp.
-.PP
-References DEBUG, WhoWasUser::dhost, userrec::dhost, WhoWasUser::fullname, userrec::fullname, WhoWasUser::host, connection::host, WhoWasUser::ident, userrec::ident, log(), userrec::nick, WhoWasUser::nick, WhoWasUser::server, userrec::server, WhoWasUser::signon, connection::signon, TIME, whowas, WHOWAS_MAX, and WHOWAS_STALE.
-.PP
-Referenced by kill_link().
-.PP
-.nf
-472 {
-473 whowas_hash::iterator iter = whowas.find(u->nick);
-474 WhoWasUser *a = new WhoWasUser();
-475 strlcpy(a->nick,u->nick,NICKMAX);
-476 strlcpy(a->ident,u->ident,IDENTMAX);
-477 strlcpy(a->dhost,u->dhost,160);
-478 strlcpy(a->host,u->host,160);
-479 strlcpy(a->fullname,u->fullname,MAXGECOS);
-480 strlcpy(a->server,u->server,256);
-481 a->signon = u->signon;
-482
-483 /* MAX_WHOWAS: max number of /WHOWAS items
-484 * WHOWAS_STALE: number of hours before a WHOWAS item is marked as stale and
-485 * can be replaced by a newer one
-486 */
-487
-488 if (iter == whowas.end())
-489 {
-490 if (whowas.size() >= (unsigned)WHOWAS_MAX)
-491 {
-492 for (whowas_hash::iterator i = whowas.begin(); i != whowas.end(); i++)
-493 {
-494 // 3600 seconds in an hour ;)
-495 if ((i->second->signon)<(TIME-(WHOWAS_STALE*3600)))
-496 {
-497 // delete the old one
-498 if (i->second) delete i->second;
-499 // replace with new one
-500 i->second = a;
-501 log(DEBUG,'added WHOWAS entry, purged an old record');
-502 return;
-503 }
-504 }
-505 // no space left and user doesnt exist. Don't leave ram in use!
-506 log(DEBUG,'Not able to update whowas (list at WHOWAS_MAX entries and trying to add new?), freeing excess ram');
-507 delete a;
-508 }
-509 else
-510 {
-511 log(DEBUG,'added fresh WHOWAS entry');
-512 whowas[a->nick] = a;
-513 }
-514 }
-515 else
-516 {
-517 log(DEBUG,'updated WHOWAS entry');
-518 if (iter->second) delete iter->second;
-519 iter->second = a;
-520 }
-521 }
-.fi
-.PP
-.SS "void ConnectUser (\fBuserrec\fP * user)"
-.PP
-Definition at line 731 of file users.cpp.
-.PP
-References userrec::dns_done, FullConnectUser(), and connection::registered.
-.PP
-.nf
-732 {
-733 // dns is already done, things are fast. no need to wait for dns to complete just pass them straight on
-734 if ((user->dns_done) && (user->registered >= 3) && (AllModulesReportReady(user)))
-735 {
-736 FullConnectUser(user);
-737 }
-738 }
-.fi
-.PP
-.SS "template<typename T> \fBstring\fP ConvToStr (const T & in)\fC [inline]\fP"
-.PP
-Definition at line 56 of file users.cpp.
-.PP
-Referenced by AddClient().
-.PP
-.nf
-57 {
-58 stringstream tmp;
-59 if (!(tmp << in)) return string();
-60 return tmp.str();
-61 }
-.fi
-.PP
-.SS "void DeleteOper (\fBuserrec\fP * user)"
-.PP
-Definition at line 336 of file users.cpp.
-.PP
-References all_opers, DEBUG, and log().
-.PP
-.nf
-337 {
-338 for (std::vector<userrec*>::iterator a = all_opers.begin(); a < all_opers.end(); a++)
-339 {
-340 if (*a == user)
-341 {
-342 log(DEBUG,'Oper removed from optimization list');
-343 all_opers.erase(a);
-344 return;
-345 }
-346 }
-347 }
-.fi
-.PP
-.SS "void force_nickchange (\fBuserrec\fP * user, const char * newnick)"
-.PP
-Definition at line 769 of file users.cpp.
-.PP
-References FOREACH_RESULT, kill_link(), matches_qline(), InspIRCd::Parser, connection::registered, InspIRCd::stats, and serverstats::statsCollisions.
-.PP
-Referenced by Server::ChangeUserNick().
-.PP
-.nf
-770 {
-771 char nick[MAXBUF];
-772 int MOD_RESULT = 0;
-773
-774 strcpy(nick,'');
-775
-776 FOREACH_RESULT(OnUserPreNick(user,newnick));
-777 if (MOD_RESULT) {
-778 ServerInstance->stats->statsCollisions++;
-779 kill_link(user,'Nickname collision');
-780 return;
-781 }
-782 if (matches_qline(newnick))
-783 {
-784 ServerInstance->stats->statsCollisions++;
-785 kill_link(user,'Nickname collision');
-786 return;
-787 }
-788
-789 if (user)
-790 {
-791 if (newnick)
-792 {
-793 strncpy(nick,newnick,MAXBUF);
-794 }
-795 if (user->registered == 7)
-796 {
-797 char* pars[1];
-798 pars[0] = nick;
-799 std::string cmd = 'NICK';
-800 ServerInstance->Parser->CallHandler(cmd,pars,1,user);
-801 }
-802 }
-803 }
-.fi
-.PP
-.SS "void FullConnectUser (\fBuserrec\fP * user)"
-.PP
-Definition at line 647 of file users.cpp.
-.PP
-References DEBUG, connection::fd, FOREACH_MOD, connection::haspassed, connection::host, userrec::ident, connection::idle_lastmsg, connection::ip, kill_link(), kill_link_silent(), log(), matches_exception(), matches_gline(), matches_kline(), ServerConfig::Network, userrec::nick, connection::port, connection::registered, ServerConfig::ServerName, InspIRCd::stats, serverstats::statsConnects, TIME, WriteOpers(), and WriteServ().
-.PP
-Referenced by ConnectUser().
-.PP
-.nf
-648 {
-649 ServerInstance->stats->statsConnects++;
-650 user->idle_lastmsg = TIME;
-651 log(DEBUG,'ConnectUser: %s',user->nick);
-652
-653 if ((strcmp(Passwd(user),'')) && (!user->haspassed))
-654 {
-655 kill_link(user,'Invalid password');
-656 return;
-657 }
-658 if (IsDenied(user))
-659 {
-660 kill_link(user,'Unauthorised connection');
-661 return;
-662 }
-663
-664 char match_against[MAXBUF];
-665 snprintf(match_against,MAXBUF,'%s@%s',user->ident,user->host);
-666 char* e = matches_exception(match_against);
-667 if (!e)
-668 {
-669 char* r = matches_gline(match_against);
-670 if (r)
-671 {
-672 char reason[MAXBUF];
-673 snprintf(reason,MAXBUF,'G-Lined: %s',r);
-674 kill_link_silent(user,reason);
-675 return;
-676 }
-677 r = matches_kline(user->host);
-678 if (r)
-679 {
-680 char reason[MAXBUF];
-681 snprintf(reason,MAXBUF,'K-Lined: %s',r);
-682 kill_link_silent(user,reason);
-683 return;
-684 }
-685 }
-686
-687
-688 WriteServ(user->fd,'NOTICE Auth :Welcome to \002%s\002!',Config->Network);
-689 WriteServ(user->fd,'001 %s :Welcome to the %s IRC Network %s!%s@%s',user->nick,Config->Network,user->nick,user->ident,user->host);
-690 WriteServ(user->fd,'002 %s :Your host is %s, running version %s',user->nick,Config->ServerName,VERSION);
-691 WriteServ(user->fd,'003 %s :This server was created %s %s',user->nick,__TIME__,__DATE__);
-692 WriteServ(user->fd,'004 %s %s %s iowghraAsORVSxNCWqBzvdHtGI lvhopsmntikrRcaqOALQbSeKVfHGCuzN',user->nick,Config->ServerName,VERSION);
-693 // the neatest way to construct the initial 005 numeric, considering the number of configure constants to go in it...
-694 std::stringstream v;
-695 v << 'WALLCHOPS MODES=13 CHANTYPES=# PREFIX=(ohv)@%+ MAP SAFELIST MAXCHANNELS=' << MAXCHANS;
-696 v << ' MAXBANS=60 NICKLEN=' << NICKMAX;
-697 v << ' TOPICLEN=' << MAXTOPIC << ' KICKLEN=' << MAXKICK << ' MAXTARGETS=20 AWAYLEN=' << MAXAWAY << ' CHANMODES=ohvb,k,l,psmnti NETWORK=';
-698 v << Config->Network;
-699 std::string data005 = v.str();
-700 FOREACH_MOD On005Numeric(data005);
-701 // anfl @ #ratbox, efnet reminded me that according to the RFC this cant contain more than 13 tokens per line...
-702 // so i'd better split it :)
-703 std::stringstream out(data005);
-704 std::string token = '';
-705 std::string line5 = '';
-706 int token_counter = 0;
-707 while (!out.eof())
-708 {
-709 out >> token;
-710 line5 = line5 + token + ' ';
-711 token_counter++;
-712 if ((token_counter >= 13) || (out.eof() == true))
-713 {
-714 WriteServ(user->fd,'005 %s %s:are supported by this server',user->nick,line5.c_str());
-715 line5 = '';
-716 token_counter = 0;
-717 }
-718 }
-719 ShowMOTD(user);
-720
-721 // fix 3 by brain, move registered = 7 below these so that spurious modes and host changes dont go out
-722 // onto the network and produce 'fake direction'
-723 FOREACH_MOD OnUserConnect(user);
-724 FOREACH_MOD OnGlobalConnect(user);
-725 user->registered = 7;
-726 WriteOpers('*** Client connecting on port %lu: %s!%s@%s [%s]',(unsigned long)user->port,user->nick,user->ident,user->host,user->ip);
-727 }
-.fi
-.PP
-.SS "void kill_link (\fBuserrec\fP * user, const char * r)"
-.PP
-Definition at line 349 of file users.cpp.
-.PP
-References AddWhoWas(), clientlist, userrec::CloseSocket(), DEBUG, SocketEngine::DelFd(), connection::fd, userrec::FlushWriteBuf(), FOREACH_MOD, ServerConfig::GetIOHook(), connection::host, userrec::ident, local_users, log(), userrec::nick, Module::OnRawSocketClose(), connection::port, connection::registered, InspIRCd::SE, Write(), WriteCommonExcept(), and WriteOpers().
-.PP
-Referenced by AddClient(), force_nickchange(), FullConnectUser(), Server::PseudoToUser(), and Server::QuitUser().
-.PP
-.nf
-350 {
-351 user_hash::iterator iter = clientlist.find(user->nick);
-352
-353 char reason[MAXBUF];
-354
-355 strncpy(reason,r,MAXBUF);
-356
-357 if (strlen(reason)>MAXQUIT)
-358 {
-359 reason[MAXQUIT-1] = '\0';
-360 }
-361
-362 log(DEBUG,'kill_link: %s '%s'',user->nick,reason);
-363 Write(user->fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,reason);
-364 log(DEBUG,'closing fd %lu',(unsigned long)user->fd);
-365
-366 if (user->registered == 7) {
-367 FOREACH_MOD OnUserQuit(user,reason);
-368 WriteCommonExcept(user,'QUIT :%s',reason);
-369 }
-370
-371 user->FlushWriteBuf();
-372
-373 FOREACH_MOD OnUserDisconnect(user);
-374
-375 if (user->fd > -1)
-376 {
-377 if (Config->GetIOHook(user->port))
-378 {
-379 Config->GetIOHook(user->port)->OnRawSocketClose(user->fd);
-380 }
-381 ServerInstance->SE->DelFd(user->fd);
-382 user->CloseSocket();
-383 }
-384
-385 // this must come before the WriteOpers so that it doesnt try to fill their buffer with anything
-386 // if they were an oper with +s.
-387 if (user->registered == 7) {
-388 purge_empty_chans(user);
-389 // fix by brain: only show local quits because we only show local connects (it just makes SENSE)
-390 if (user->fd > -1)
-391 WriteOpers('*** Client exiting: %s!%s@%s [%s]',user->nick,user->ident,user->host,reason);
-392 AddWhoWas(user);
-393 }
-394
-395 if (iter != clientlist.end())
-396 {
-397 log(DEBUG,'deleting user hash value %lu',(unsigned long)user);
-398 if (user->fd > -1)
-399 {
-400 fd_ref_table[user->fd] = NULL;
-401 if (find(local_users.begin(),local_users.end(),user) != local_users.end())
-402 {
-403 local_users.erase(find(local_users.begin(),local_users.end(),user));
-404 log(DEBUG,'Delete local user');
-405 }
-406 }
-407 clientlist.erase(iter);
-408 }
-409 delete user;
-410 }
-.fi
-.PP
-.SS "void kill_link_silent (\fBuserrec\fP * user, const char * r)"
-.PP
-Definition at line 412 of file users.cpp.
-.PP
-References clientlist, userrec::CloseSocket(), DEBUG, SocketEngine::DelFd(), connection::fd, userrec::FlushWriteBuf(), FOREACH_MOD, ServerConfig::GetIOHook(), connection::host, userrec::ident, local_users, log(), userrec::nick, Module::OnRawSocketClose(), connection::port, connection::registered, InspIRCd::SE, Write(), and WriteCommonExcept().
-.PP
-Referenced by FullConnectUser().
-.PP
-.nf
-413 {
-414 user_hash::iterator iter = clientlist.find(user->nick);
-415
-416 char reason[MAXBUF];
-417
-418 strncpy(reason,r,MAXBUF);
-419
-420 if (strlen(reason)>MAXQUIT)
-421 {
-422 reason[MAXQUIT-1] = '\0';
-423 }
-424
-425 log(DEBUG,'kill_link: %s '%s'',user->nick,reason);
-426 Write(user->fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,reason);
-427 log(DEBUG,'closing fd %lu',(unsigned long)user->fd);
-428
-429 user->FlushWriteBuf();
-430
-431 if (user->registered == 7) {
-432 FOREACH_MOD OnUserQuit(user,reason);
-433 WriteCommonExcept(user,'QUIT :%s',reason);
-434 }
-435
-436 FOREACH_MOD OnUserDisconnect(user);
-437
-438 if (user->fd > -1)
-439 {
-440 if (Config->GetIOHook(user->port))
-441 {
-442 Config->GetIOHook(user->port)->OnRawSocketClose(user->fd);
-443 }
-444 ServerInstance->SE->DelFd(user->fd);
-445 user->CloseSocket();
-446 }
-447
-448 if (user->registered == 7) {
-449 purge_empty_chans(user);
-450 }
-451
-452 if (iter != clientlist.end())
-453 {
-454 log(DEBUG,'deleting user hash value %lu',(unsigned long)user);
-455 if (user->fd > -1)
-456 {
-457 fd_ref_table[user->fd] = NULL;
-458 if (find(local_users.begin(),local_users.end(),user) != local_users.end())
-459 {
-460 log(DEBUG,'Delete local user');
-461 local_users.erase(find(local_users.begin(),local_users.end(),user));
-462 }
-463 }
-464 clientlist.erase(iter);
-465 }
-466 delete user;
-467 }
-.fi
-.PP
-.SS "\fBuserrec\fP* ReHashNick (char * Old, char * New)"
-.PP
-Definition at line 743 of file users.cpp.
-.PP
-References clientlist, DEBUG, and log().
-.PP
-.nf
-744 {
-745 //user_hash::iterator newnick;
-746 user_hash::iterator oldnick = clientlist.find(Old);
-747
-748 log(DEBUG,'ReHashNick: %s %s',Old,New);
-749
-750 if (!strcasecmp(Old,New))
-751 {
-752 log(DEBUG,'old nick is new nick, skipping');
-753 return oldnick->second;
-754 }
-755
-756 if (oldnick == clientlist.end()) return NULL; /* doesnt exist */
-757
-758 log(DEBUG,'ReHashNick: Found hashed nick %s',Old);
-759
-760 userrec* olduser = oldnick->second;
-761 clientlist[New] = olduser;
-762 clientlist.erase(oldnick);
-763
-764 log(DEBUG,'ReHashNick: Nick rehashed as %s',New);
-765
-766 return clientlist[New];
-767 }
-.fi
-.PP
-.SH "Variable Documentation"
-.PP
-.SS "std::vector<\fBuserrec\fP*> \fBall_opers\fP"
-.PP
-Definition at line 54 of file users.cpp.
-.PP
-Referenced by AddOper(), and DeleteOper().
-.SS "\fBuser_hash\fP \fBclientlist\fP"
-.PP
-.SS "\fBServerConfig\fP* \fBConfig\fP"
-.PP
-.SS "std::vector<\fBircd_module\fP*> factory"
-.PP
-.SS "\fBuserrec\fP* \fBfd_ref_table\fP[65536]"
-.PP
-.SS "std::vector<\fBuserrec\fP*> \fBlocal_users\fP"
-.PP
-Definition at line 52 of file users.cpp.
-.PP
-Referenced by AddClient(), kill_link(), and kill_link_silent().
-.SS "int \fBMODCOUNT\fP"
-.PP
-.SS "std::vector<\fBInspSocket\fP*> \fBmodule_sockets\fP"
-.PP
-.SS "std::vector<\fBModule\fP*> modules"
-.PP
-.SS "\fBInspIRCd\fP* \fBServerInstance\fP"
-.PP
-.SS "\fBInspSocket\fP* \fBsocket_ref\fP[65535]"
-.PP
-Definition at line 43 of file socket.cpp.
-.SS "time_t \fBTIME\fP"
-.PP
-.SS "\fBwhowas_hash\fP \fBwhowas\fP"
-.PP
-Referenced by AddWhoWas().
-.SS "int \fBWHOWAS_MAX\fP"
-.PP
-.SS "int \fBWHOWAS_STALE\fP"
-.PP
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/users.h.3 b/docs/man/man3/users.h.3
deleted file mode 100644
index a1be9c463..000000000
--- a/docs/man/man3/users.h.3
+++ /dev/null
@@ -1,714 +0,0 @@
-.TH "users.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-users.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'inspircd_config.h'\fP
-.br
-\fC#include 'channels.h'\fP
-.br
-\fC#include 'inspstring.h'\fP
-.br
-\fC#include 'connection.h'\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include 'hashcomp.h'\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBInvited\fP"
-.br
-.RI "\fIHolds a channel name to which a user has been invited. \fP"
-.ti -1c
-.RI "class \fBConnectClass\fP"
-.br
-.RI "\fIHolds information relevent to <connect allow> and <connect deny> tags in the config file. \fP"
-.ti -1c
-.RI "class \fBuserrec\fP"
-.br
-.RI "\fIHolds all information about a user This class stores all information about a user connected to the irc server. \fP"
-.ti -1c
-.RI "class \fBWhoWasUser\fP"
-.br
-.RI "\fIA lightweight userrec used by WHOWAS. \fP"
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBSTATUS_OP\fP 4"
-.br
-.ti -1c
-.RI "#define \fBSTATUS_HOP\fP 2"
-.br
-.ti -1c
-.RI "#define \fBSTATUS_VOICE\fP 1"
-.br
-.ti -1c
-.RI "#define \fBSTATUS_NORMAL\fP 0"
-.br
-.ti -1c
-.RI "#define \fBCC_ALLOW\fP 0"
-.br
-.ti -1c
-.RI "#define \fBCC_DENY\fP 1"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef std::vector< \fBInvited\fP > \fBInvitedList\fP"
-.br
-.RI "\fIHolds a complete list of all channels to which a user has been invited and has not yet joined. \fP"
-.ti -1c
-.RI "typedef std::vector< \fBConnectClass\fP > \fBClassVector\fP"
-.br
-.RI "\fIHolds a complete list of all allow and deny tags from the configuration file (connection classes). \fP"
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "template<typename T> \fBstring\fP \fBConvToStr\fP (const T &in)"
-.br
-.ti -1c
-.RI "void \fBAddOper\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBDeleteOper\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBkill_link\fP (\fBuserrec\fP *user, const char *r)"
-.br
-.ti -1c
-.RI "void \fBkill_link_silent\fP (\fBuserrec\fP *user, const char *r)"
-.br
-.ti -1c
-.RI "void \fBAddWhoWas\fP (\fBuserrec\fP *u)"
-.br
-.ti -1c
-.RI "void \fBAddClient\fP (int socket, char *host, int port, bool iscached, char *ip)"
-.br
-.ti -1c
-.RI "void \fBFullConnectUser\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBConnectUser\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "\fBuserrec\fP * \fBReHashNick\fP (char *Old, char *New)"
-.br
-.ti -1c
-.RI "void \fBforce_nickchange\fP (\fBuserrec\fP *user, const char *newnick)"
-.br
-.in -1c
-.SH "Define Documentation"
-.PP
-.SS "#define CC_ALLOW 0"
-.PP
-Definition at line 36 of file users.h.
-.PP
-Referenced by AddClient().
-.SS "#define CC_DENY 1"
-.PP
-Definition at line 37 of file users.h.
-.SS "#define STATUS_HOP 2"
-.PP
-Definition at line 32 of file users.h.
-.PP
-Referenced by kick_channel().
-.SS "#define STATUS_NORMAL 0"
-.PP
-Definition at line 34 of file users.h.
-.SS "#define STATUS_OP 4"
-.PP
-Definition at line 31 of file users.h.
-.SS "#define STATUS_VOICE 1"
-.PP
-Definition at line 33 of file users.h.
-.SH "Typedef Documentation"
-.PP
-.SS "typedef std::vector<\fBConnectClass\fP> \fBClassVector\fP"
-.PP
-Holds a complete list of all allow and deny tags from the configuration file (connection classes).
-.PP
-Definition at line 107 of file users.h.
-.SS "typedef std::vector<\fBInvited\fP> \fBInvitedList\fP"
-.PP
-Holds a complete list of all channels to which a user has been invited and has not yet joined.
-.PP
-Definition at line 101 of file users.h.
-.SH "Function Documentation"
-.PP
-.SS "void AddClient (int socket, char * host, int port, bool iscached, char * ip)"
-.PP
-Definition at line 524 of file users.cpp.
-.PP
-References SocketEngine::AddFd(), CC_ALLOW, ucrec::channel, ServerConfig::Classes, clientlist, ConvToStr(), DEBUG, ServerConfig::dns_timeout, FindServerNamePtr(), kill_link(), local_users, log(), matches_exception(), matches_zline(), InspIRCd::SE, ServerConfig::ServerName, ServerConfig::SoftLimit, TIME, ucrec::uc_modes, and X_ESTAB_CLIENT.
-.PP
-.nf
-525 {
-526 string tempnick;
-527 char tn2[MAXBUF];
-528 user_hash::iterator iter;
-529
-530 tempnick = ConvToStr(socket) + '-unknown';
-531 sprintf(tn2,'%lu-unknown',(unsigned long)socket);
-532
-533 iter = clientlist.find(tempnick);
-534
-535 // fix by brain.
-536 // as these nicknames are 'RFC impossible', we can be sure nobody is going to be
-537 // using one as a registered connection. As theyre per fd, we can also safely assume
-538 // that we wont have collisions. Therefore, if the nick exists in the list, its only
-539 // used by a dead socket, erase the iterator so that the new client may reclaim it.
-540 // this was probably the cause of 'server ignores me when i hammer it with reconnects'
-541 // issue in earlier alphas/betas
-542 if (iter != clientlist.end())
-543 {
-544 userrec* goner = iter->second;
-545 delete goner;
-546 clientlist.erase(iter);
-547 }
-548
-549 /*
-550 * It is OK to access the value here this way since we know
-551 * it exists, we just created it above.
-552 *
-553 * At NO other time should you access a value in a map or a
-554 * hash_map this way.
-555 */
-556 clientlist[tempnick] = new userrec();
-557
-558 log(DEBUG,'AddClient: %lu %s %d %s',(unsigned long)socket,host,port,ip);
-559
-560 clientlist[tempnick]->fd = socket;
-561 strlcpy(clientlist[tempnick]->nick, tn2,NICKMAX);
-562 strlcpy(clientlist[tempnick]->host, host,160);
-563 strlcpy(clientlist[tempnick]->dhost, host,160);
-564 clientlist[tempnick]->server = (char*)FindServerNamePtr(Config->ServerName);
-565 strlcpy(clientlist[tempnick]->ident, 'unknown',IDENTMAX);
-566 clientlist[tempnick]->registered = 0;
-567 clientlist[tempnick]->signon = TIME + Config->dns_timeout;
-568 clientlist[tempnick]->lastping = 1;
-569 clientlist[tempnick]->port = port;
-570 strlcpy(clientlist[tempnick]->ip,ip,16);
-571
-572 // set the registration timeout for this user
-573 unsigned long class_regtimeout = 90;
-574 int class_flood = 0;
-575 long class_threshold = 5;
-576 long class_sqmax = 262144; // 256kb
-577 long class_rqmax = 4096; // 4k
-578
-579 for (ClassVector::iterator i = Config->Classes.begin(); i != Config->Classes.end(); i++)
-580 {
-581 if (match(clientlist[tempnick]->host,i->host) && (i->type == CC_ALLOW))
-582 {
-583 class_regtimeout = (unsigned long)i->registration_timeout;
-584 class_flood = i->flood;
-585 clientlist[tempnick]->pingmax = i->pingtime;
-586 class_threshold = i->threshold;
-587 class_sqmax = i->sendqmax;
-588 class_rqmax = i->recvqmax;
-589 break;
-590 }
-591 }
-592
-593 clientlist[tempnick]->nping = TIME+clientlist[tempnick]->pingmax + Config->dns_timeout;
-594 clientlist[tempnick]->timeout = TIME+class_regtimeout;
-595 clientlist[tempnick]->flood = class_flood;
-596 clientlist[tempnick]->threshold = class_threshold;
-597 clientlist[tempnick]->sendqmax = class_sqmax;
-598 clientlist[tempnick]->recvqmax = class_rqmax;
-599
-600 ucrec a;
-601 a.channel = NULL;
-602 a.uc_modes = 0;
-603 for (int i = 0; i < MAXCHANS; i++)
-604 clientlist[tempnick]->chans.push_back(a);
-605
-606 if (clientlist.size() > Config->SoftLimit)
-607 {
-608 kill_link(clientlist[tempnick],'No more connections allowed');
-609 return;
-610 }
-611
-612 if (clientlist.size() >= MAXCLIENTS)
-613 {
-614 kill_link(clientlist[tempnick],'No more connections allowed');
-615 return;
-616 }
-617
-618 // this is done as a safety check to keep the file descriptors within range of fd_ref_table.
-619 // its a pretty big but for the moment valid assumption:
-620 // file descriptors are handed out starting at 0, and are recycled as theyre freed.
-621 // therefore if there is ever an fd over 65535, 65536 clients must be connected to the
-622 // irc server at once (or the irc server otherwise initiating this many connections, files etc)
-623 // which for the time being is a physical impossibility (even the largest networks dont have more
-624 // than about 10,000 users on ONE server!)
-625 if ((unsigned)socket > 65534)
-626 {
-627 kill_link(clientlist[tempnick],'Server is full');
-628 return;
-629 }
-630 char* e = matches_exception(ip);
-631 if (!e)
-632 {
-633 char* r = matches_zline(ip);
-634 if (r)
-635 {
-636 char reason[MAXBUF];
-637 snprintf(reason,MAXBUF,'Z-Lined: %s',r);
-638 kill_link(clientlist[tempnick],reason);
-639 return;
-640 }
-641 }
-642 fd_ref_table[socket] = clientlist[tempnick];
-643 local_users.push_back(clientlist[tempnick]);
-644 ServerInstance->SE->AddFd(socket,true,X_ESTAB_CLIENT);
-645 }
-.fi
-.PP
-.SS "void AddOper (\fBuserrec\fP * user)"
-.PP
-Definition at line 330 of file users.cpp.
-.PP
-References all_opers, DEBUG, and log().
-.PP
-.nf
-331 {
-332 log(DEBUG,'Oper added to optimization list');
-333 all_opers.push_back(user);
-334 }
-.fi
-.PP
-.SS "void AddWhoWas (\fBuserrec\fP * u)"
-.PP
-Definition at line 471 of file users.cpp.
-.PP
-References DEBUG, userrec::dhost, WhoWasUser::dhost, userrec::fullname, WhoWasUser::fullname, connection::host, WhoWasUser::host, userrec::ident, WhoWasUser::ident, log(), WhoWasUser::nick, userrec::nick, userrec::server, WhoWasUser::server, connection::signon, WhoWasUser::signon, TIME, whowas, WHOWAS_MAX, and WHOWAS_STALE.
-.PP
-Referenced by kill_link().
-.PP
-.nf
-472 {
-473 whowas_hash::iterator iter = whowas.find(u->nick);
-474 WhoWasUser *a = new WhoWasUser();
-475 strlcpy(a->nick,u->nick,NICKMAX);
-476 strlcpy(a->ident,u->ident,IDENTMAX);
-477 strlcpy(a->dhost,u->dhost,160);
-478 strlcpy(a->host,u->host,160);
-479 strlcpy(a->fullname,u->fullname,MAXGECOS);
-480 strlcpy(a->server,u->server,256);
-481 a->signon = u->signon;
-482
-483 /* MAX_WHOWAS: max number of /WHOWAS items
-484 * WHOWAS_STALE: number of hours before a WHOWAS item is marked as stale and
-485 * can be replaced by a newer one
-486 */
-487
-488 if (iter == whowas.end())
-489 {
-490 if (whowas.size() >= (unsigned)WHOWAS_MAX)
-491 {
-492 for (whowas_hash::iterator i = whowas.begin(); i != whowas.end(); i++)
-493 {
-494 // 3600 seconds in an hour ;)
-495 if ((i->second->signon)<(TIME-(WHOWAS_STALE*3600)))
-496 {
-497 // delete the old one
-498 if (i->second) delete i->second;
-499 // replace with new one
-500 i->second = a;
-501 log(DEBUG,'added WHOWAS entry, purged an old record');
-502 return;
-503 }
-504 }
-505 // no space left and user doesnt exist. Don't leave ram in use!
-506 log(DEBUG,'Not able to update whowas (list at WHOWAS_MAX entries and trying to add new?), freeing excess ram');
-507 delete a;
-508 }
-509 else
-510 {
-511 log(DEBUG,'added fresh WHOWAS entry');
-512 whowas[a->nick] = a;
-513 }
-514 }
-515 else
-516 {
-517 log(DEBUG,'updated WHOWAS entry');
-518 if (iter->second) delete iter->second;
-519 iter->second = a;
-520 }
-521 }
-.fi
-.PP
-.SS "void ConnectUser (\fBuserrec\fP * user)"
-.PP
-Definition at line 731 of file users.cpp.
-.PP
-References userrec::dns_done, FullConnectUser(), and connection::registered.
-.PP
-.nf
-732 {
-733 // dns is already done, things are fast. no need to wait for dns to complete just pass them straight on
-734 if ((user->dns_done) && (user->registered >= 3) && (AllModulesReportReady(user)))
-735 {
-736 FullConnectUser(user);
-737 }
-738 }
-.fi
-.PP
-.SS "template<typename T> \fBstring\fP ConvToStr (const T & in)\fC [inline]\fP"
-.PP
-Definition at line 56 of file users.cpp.
-.PP
-Referenced by AddClient().
-.PP
-.nf
-57 {
-58 stringstream tmp;
-59 if (!(tmp << in)) return string();
-60 return tmp.str();
-61 }
-.fi
-.PP
-.SS "void DeleteOper (\fBuserrec\fP * user)"
-.PP
-Definition at line 336 of file users.cpp.
-.PP
-References all_opers, DEBUG, and log().
-.PP
-.nf
-337 {
-338 for (std::vector<userrec*>::iterator a = all_opers.begin(); a < all_opers.end(); a++)
-339 {
-340 if (*a == user)
-341 {
-342 log(DEBUG,'Oper removed from optimization list');
-343 all_opers.erase(a);
-344 return;
-345 }
-346 }
-347 }
-.fi
-.PP
-.SS "void force_nickchange (\fBuserrec\fP * user, const char * newnick)"
-.PP
-Definition at line 769 of file users.cpp.
-.PP
-References FOREACH_RESULT, kill_link(), matches_qline(), InspIRCd::Parser, connection::registered, InspIRCd::stats, and serverstats::statsCollisions.
-.PP
-Referenced by Server::ChangeUserNick().
-.PP
-.nf
-770 {
-771 char nick[MAXBUF];
-772 int MOD_RESULT = 0;
-773
-774 strcpy(nick,'');
-775
-776 FOREACH_RESULT(OnUserPreNick(user,newnick));
-777 if (MOD_RESULT) {
-778 ServerInstance->stats->statsCollisions++;
-779 kill_link(user,'Nickname collision');
-780 return;
-781 }
-782 if (matches_qline(newnick))
-783 {
-784 ServerInstance->stats->statsCollisions++;
-785 kill_link(user,'Nickname collision');
-786 return;
-787 }
-788
-789 if (user)
-790 {
-791 if (newnick)
-792 {
-793 strncpy(nick,newnick,MAXBUF);
-794 }
-795 if (user->registered == 7)
-796 {
-797 char* pars[1];
-798 pars[0] = nick;
-799 std::string cmd = 'NICK';
-800 ServerInstance->Parser->CallHandler(cmd,pars,1,user);
-801 }
-802 }
-803 }
-.fi
-.PP
-.SS "void FullConnectUser (\fBuserrec\fP * user)"
-.PP
-Definition at line 647 of file users.cpp.
-.PP
-References DEBUG, connection::fd, FOREACH_MOD, connection::haspassed, connection::host, userrec::ident, connection::idle_lastmsg, connection::ip, kill_link(), kill_link_silent(), log(), matches_exception(), matches_gline(), matches_kline(), ServerConfig::Network, userrec::nick, connection::port, connection::registered, ServerConfig::ServerName, InspIRCd::stats, serverstats::statsConnects, TIME, WriteOpers(), and WriteServ().
-.PP
-Referenced by ConnectUser().
-.PP
-.nf
-648 {
-649 ServerInstance->stats->statsConnects++;
-650 user->idle_lastmsg = TIME;
-651 log(DEBUG,'ConnectUser: %s',user->nick);
-652
-653 if ((strcmp(Passwd(user),'')) && (!user->haspassed))
-654 {
-655 kill_link(user,'Invalid password');
-656 return;
-657 }
-658 if (IsDenied(user))
-659 {
-660 kill_link(user,'Unauthorised connection');
-661 return;
-662 }
-663
-664 char match_against[MAXBUF];
-665 snprintf(match_against,MAXBUF,'%s@%s',user->ident,user->host);
-666 char* e = matches_exception(match_against);
-667 if (!e)
-668 {
-669 char* r = matches_gline(match_against);
-670 if (r)
-671 {
-672 char reason[MAXBUF];
-673 snprintf(reason,MAXBUF,'G-Lined: %s',r);
-674 kill_link_silent(user,reason);
-675 return;
-676 }
-677 r = matches_kline(user->host);
-678 if (r)
-679 {
-680 char reason[MAXBUF];
-681 snprintf(reason,MAXBUF,'K-Lined: %s',r);
-682 kill_link_silent(user,reason);
-683 return;
-684 }
-685 }
-686
-687
-688 WriteServ(user->fd,'NOTICE Auth :Welcome to \002%s\002!',Config->Network);
-689 WriteServ(user->fd,'001 %s :Welcome to the %s IRC Network %s!%s@%s',user->nick,Config->Network,user->nick,user->ident,user->host);
-690 WriteServ(user->fd,'002 %s :Your host is %s, running version %s',user->nick,Config->ServerName,VERSION);
-691 WriteServ(user->fd,'003 %s :This server was created %s %s',user->nick,__TIME__,__DATE__);
-692 WriteServ(user->fd,'004 %s %s %s iowghraAsORVSxNCWqBzvdHtGI lvhopsmntikrRcaqOALQbSeKVfHGCuzN',user->nick,Config->ServerName,VERSION);
-693 // the neatest way to construct the initial 005 numeric, considering the number of configure constants to go in it...
-694 std::stringstream v;
-695 v << 'WALLCHOPS MODES=13 CHANTYPES=# PREFIX=(ohv)@%+ MAP SAFELIST MAXCHANNELS=' << MAXCHANS;
-696 v << ' MAXBANS=60 NICKLEN=' << NICKMAX;
-697 v << ' TOPICLEN=' << MAXTOPIC << ' KICKLEN=' << MAXKICK << ' MAXTARGETS=20 AWAYLEN=' << MAXAWAY << ' CHANMODES=ohvb,k,l,psmnti NETWORK=';
-698 v << Config->Network;
-699 std::string data005 = v.str();
-700 FOREACH_MOD On005Numeric(data005);
-701 // anfl @ #ratbox, efnet reminded me that according to the RFC this cant contain more than 13 tokens per line...
-702 // so i'd better split it :)
-703 std::stringstream out(data005);
-704 std::string token = '';
-705 std::string line5 = '';
-706 int token_counter = 0;
-707 while (!out.eof())
-708 {
-709 out >> token;
-710 line5 = line5 + token + ' ';
-711 token_counter++;
-712 if ((token_counter >= 13) || (out.eof() == true))
-713 {
-714 WriteServ(user->fd,'005 %s %s:are supported by this server',user->nick,line5.c_str());
-715 line5 = '';
-716 token_counter = 0;
-717 }
-718 }
-719 ShowMOTD(user);
-720
-721 // fix 3 by brain, move registered = 7 below these so that spurious modes and host changes dont go out
-722 // onto the network and produce 'fake direction'
-723 FOREACH_MOD OnUserConnect(user);
-724 FOREACH_MOD OnGlobalConnect(user);
-725 user->registered = 7;
-726 WriteOpers('*** Client connecting on port %lu: %s!%s@%s [%s]',(unsigned long)user->port,user->nick,user->ident,user->host,user->ip);
-727 }
-.fi
-.PP
-.SS "void kill_link (\fBuserrec\fP * user, const char * r)"
-.PP
-Definition at line 349 of file users.cpp.
-.PP
-References AddWhoWas(), clientlist, userrec::CloseSocket(), DEBUG, SocketEngine::DelFd(), connection::fd, userrec::FlushWriteBuf(), FOREACH_MOD, ServerConfig::GetIOHook(), connection::host, userrec::ident, local_users, log(), userrec::nick, Module::OnRawSocketClose(), connection::port, connection::registered, InspIRCd::SE, Write(), WriteCommonExcept(), and WriteOpers().
-.PP
-Referenced by AddClient(), force_nickchange(), FullConnectUser(), Server::PseudoToUser(), and Server::QuitUser().
-.PP
-.nf
-350 {
-351 user_hash::iterator iter = clientlist.find(user->nick);
-352
-353 char reason[MAXBUF];
-354
-355 strncpy(reason,r,MAXBUF);
-356
-357 if (strlen(reason)>MAXQUIT)
-358 {
-359 reason[MAXQUIT-1] = '\0';
-360 }
-361
-362 log(DEBUG,'kill_link: %s '%s'',user->nick,reason);
-363 Write(user->fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,reason);
-364 log(DEBUG,'closing fd %lu',(unsigned long)user->fd);
-365
-366 if (user->registered == 7) {
-367 FOREACH_MOD OnUserQuit(user,reason);
-368 WriteCommonExcept(user,'QUIT :%s',reason);
-369 }
-370
-371 user->FlushWriteBuf();
-372
-373 FOREACH_MOD OnUserDisconnect(user);
-374
-375 if (user->fd > -1)
-376 {
-377 if (Config->GetIOHook(user->port))
-378 {
-379 Config->GetIOHook(user->port)->OnRawSocketClose(user->fd);
-380 }
-381 ServerInstance->SE->DelFd(user->fd);
-382 user->CloseSocket();
-383 }
-384
-385 // this must come before the WriteOpers so that it doesnt try to fill their buffer with anything
-386 // if they were an oper with +s.
-387 if (user->registered == 7) {
-388 purge_empty_chans(user);
-389 // fix by brain: only show local quits because we only show local connects (it just makes SENSE)
-390 if (user->fd > -1)
-391 WriteOpers('*** Client exiting: %s!%s@%s [%s]',user->nick,user->ident,user->host,reason);
-392 AddWhoWas(user);
-393 }
-394
-395 if (iter != clientlist.end())
-396 {
-397 log(DEBUG,'deleting user hash value %lu',(unsigned long)user);
-398 if (user->fd > -1)
-399 {
-400 fd_ref_table[user->fd] = NULL;
-401 if (find(local_users.begin(),local_users.end(),user) != local_users.end())
-402 {
-403 local_users.erase(find(local_users.begin(),local_users.end(),user));
-404 log(DEBUG,'Delete local user');
-405 }
-406 }
-407 clientlist.erase(iter);
-408 }
-409 delete user;
-410 }
-.fi
-.PP
-.SS "void kill_link_silent (\fBuserrec\fP * user, const char * r)"
-.PP
-Definition at line 412 of file users.cpp.
-.PP
-References clientlist, userrec::CloseSocket(), DEBUG, SocketEngine::DelFd(), connection::fd, userrec::FlushWriteBuf(), FOREACH_MOD, ServerConfig::GetIOHook(), connection::host, userrec::ident, local_users, log(), userrec::nick, Module::OnRawSocketClose(), connection::port, connection::registered, InspIRCd::SE, Write(), and WriteCommonExcept().
-.PP
-Referenced by FullConnectUser().
-.PP
-.nf
-413 {
-414 user_hash::iterator iter = clientlist.find(user->nick);
-415
-416 char reason[MAXBUF];
-417
-418 strncpy(reason,r,MAXBUF);
-419
-420 if (strlen(reason)>MAXQUIT)
-421 {
-422 reason[MAXQUIT-1] = '\0';
-423 }
-424
-425 log(DEBUG,'kill_link: %s '%s'',user->nick,reason);
-426 Write(user->fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,reason);
-427 log(DEBUG,'closing fd %lu',(unsigned long)user->fd);
-428
-429 user->FlushWriteBuf();
-430
-431 if (user->registered == 7) {
-432 FOREACH_MOD OnUserQuit(user,reason);
-433 WriteCommonExcept(user,'QUIT :%s',reason);
-434 }
-435
-436 FOREACH_MOD OnUserDisconnect(user);
-437
-438 if (user->fd > -1)
-439 {
-440 if (Config->GetIOHook(user->port))
-441 {
-442 Config->GetIOHook(user->port)->OnRawSocketClose(user->fd);
-443 }
-444 ServerInstance->SE->DelFd(user->fd);
-445 user->CloseSocket();
-446 }
-447
-448 if (user->registered == 7) {
-449 purge_empty_chans(user);
-450 }
-451
-452 if (iter != clientlist.end())
-453 {
-454 log(DEBUG,'deleting user hash value %lu',(unsigned long)user);
-455 if (user->fd > -1)
-456 {
-457 fd_ref_table[user->fd] = NULL;
-458 if (find(local_users.begin(),local_users.end(),user) != local_users.end())
-459 {
-460 log(DEBUG,'Delete local user');
-461 local_users.erase(find(local_users.begin(),local_users.end(),user));
-462 }
-463 }
-464 clientlist.erase(iter);
-465 }
-466 delete user;
-467 }
-.fi
-.PP
-.SS "\fBuserrec\fP* ReHashNick (char * Old, char * New)"
-.PP
-Definition at line 743 of file users.cpp.
-.PP
-References clientlist, DEBUG, and log().
-.PP
-.nf
-744 {
-745 //user_hash::iterator newnick;
-746 user_hash::iterator oldnick = clientlist.find(Old);
-747
-748 log(DEBUG,'ReHashNick: %s %s',Old,New);
-749
-750 if (!strcasecmp(Old,New))
-751 {
-752 log(DEBUG,'old nick is new nick, skipping');
-753 return oldnick->second;
-754 }
-755
-756 if (oldnick == clientlist.end()) return NULL; /* doesnt exist */
-757
-758 log(DEBUG,'ReHashNick: Found hashed nick %s',Old);
-759
-760 userrec* olduser = oldnick->second;
-761 clientlist[New] = olduser;
-762 clientlist.erase(oldnick);
-763
-764 log(DEBUG,'ReHashNick: Nick rehashed as %s',New);
-765
-766 return clientlist[New];
-767 }
-.fi
-.PP
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.
diff --git a/docs/man/man3/xline.h.3 b/docs/man/man3/xline.h.3
deleted file mode 100644
index feca7ea4a..000000000
--- a/docs/man/man3/xline.h.3
+++ /dev/null
@@ -1,257 +0,0 @@
-.TH "xline.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-xline.h \-
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <typeinfo>\fP
-.br
-\fC#include <iostream>\fP
-.br
-\fC#include <string>\fP
-.br
-\fC#include <deque>\fP
-.br
-\fC#include <sstream>\fP
-.br
-\fC#include <vector>\fP
-.br
-\fC#include 'users.h'\fP
-.br
-\fC#include 'channels.h'\fP
-.br
-
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBXLine\fP"
-.br
-.RI "\fIXLine is the base class for ban lines such as G lines and K lines. \fP"
-.ti -1c
-.RI "class \fBKLine\fP"
-.br
-.RI "\fIKLine class. \fP"
-.ti -1c
-.RI "class \fBGLine\fP"
-.br
-.RI "\fIGLine class. \fP"
-.ti -1c
-.RI "class \fBELine\fP"
-.br
-.ti -1c
-.RI "class \fBZLine\fP"
-.br
-.RI "\fIZLine class. \fP"
-.ti -1c
-.RI "class \fBQLine\fP"
-.br
-.RI "\fIQLine class. \fP"
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBread_xline_defaults\fP ()"
-.br
-.ti -1c
-.RI "void \fBadd_gline\fP (long duration, const char *source, const char *reason, const char *hostmask)"
-.br
-.ti -1c
-.RI "void \fBadd_qline\fP (long duration, const char *source, const char *reason, const char *nickname)"
-.br
-.ti -1c
-.RI "void \fBadd_zline\fP (long duration, const char *source, const char *reason, const char *ipaddr)"
-.br
-.ti -1c
-.RI "void \fBadd_kline\fP (long duration, const char *source, const char *reason, const char *hostmask)"
-.br
-.ti -1c
-.RI "void \fBadd_eline\fP (long duration, const char *source, const char *reason, const char *hostmask)"
-.br
-.ti -1c
-.RI "bool \fBdel_gline\fP (const char *hostmask)"
-.br
-.ti -1c
-.RI "bool \fBdel_qline\fP (const char *nickname)"
-.br
-.ti -1c
-.RI "bool \fBdel_zline\fP (const char *ipaddr)"
-.br
-.ti -1c
-.RI "bool \fBdel_kline\fP (const char *hostmask)"
-.br
-.ti -1c
-.RI "bool \fBdel_eline\fP (const char *hostmask)"
-.br
-.ti -1c
-.RI "char * \fBmatches_qline\fP (const char *nick)"
-.br
-.ti -1c
-.RI "char * \fBmatches_gline\fP (const char *host)"
-.br
-.ti -1c
-.RI "char * \fBmatches_zline\fP (const char *ipaddr)"
-.br
-.ti -1c
-.RI "char * \fBmatches_kline\fP (const char *host)"
-.br
-.ti -1c
-.RI "char * \fBmatches_exception\fP (const char *host)"
-.br
-.ti -1c
-.RI "void \fBexpire_lines\fP ()"
-.br
-.ti -1c
-.RI "void \fBapply_lines\fP (const int What)"
-.br
-.ti -1c
-.RI "void \fBstats_k\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBstats_g\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBstats_q\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBstats_z\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBstats_e\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBgline_set_creation_time\fP (char *host, time_t create_time)"
-.br
-.ti -1c
-.RI "void \fBqline_set_creation_time\fP (char *nick, time_t create_time)"
-.br
-.ti -1c
-.RI "void \fBzline_set_creation_time\fP (char *ip, time_t create_time)"
-.br
-.ti -1c
-.RI "void \fBeline_set_creation_time\fP (char *host, time_t create_time)"
-.br
-.ti -1c
-.RI "bool \fBzline_make_global\fP (const char *ipaddr)"
-.br
-.ti -1c
-.RI "bool \fBqline_make_global\fP (const char *nickname)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "const int \fBAPPLY_GLINES\fP = 1"
-.br
-.ti -1c
-.RI "const int \fBAPPLY_KLINES\fP = 2"
-.br
-.ti -1c
-.RI "const int \fBAPPLY_QLINES\fP = 4"
-.br
-.ti -1c
-.RI "const int \fBAPPLY_ZLINES\fP = 8"
-.br
-.ti -1c
-.RI "const int \fBAPPLY_ALL\fP = \fBAPPLY_GLINES\fP | \fBAPPLY_KLINES\fP | \fBAPPLY_QLINES\fP | \fBAPPLY_ZLINES\fP"
-.br
-.in -1c
-.SH "Function Documentation"
-.PP
-.SS "void add_eline (long duration, const char * source, const char * reason, const char * hostmask)"
-.PP
-Referenced by Server::AddELine().
-.SS "void add_gline (long duration, const char * source, const char * reason, const char * hostmask)"
-.PP
-Referenced by Server::AddGLine().
-.SS "void add_kline (long duration, const char * source, const char * reason, const char * hostmask)"
-.PP
-Referenced by Server::AddKLine().
-.SS "void add_qline (long duration, const char * source, const char * reason, const char * nickname)"
-.PP
-Referenced by Server::AddQLine().
-.SS "void add_zline (long duration, const char * source, const char * reason, const char * ipaddr)"
-.PP
-Referenced by Server::AddZLine().
-.SS "void apply_lines (const int What)"
-.PP
-.SS "bool del_eline (const char * hostmask)"
-.PP
-Referenced by Server::DelELine().
-.SS "bool del_gline (const char * hostmask)"
-.PP
-Referenced by Server::DelGLine().
-.SS "bool del_kline (const char * hostmask)"
-.PP
-Referenced by Server::DelKLine().
-.SS "bool del_qline (const char * nickname)"
-.PP
-Referenced by Server::DelQLine().
-.SS "bool del_zline (const char * ipaddr)"
-.PP
-Referenced by Server::DelZLine().
-.SS "void eline_set_creation_time (char * host, time_t create_time)"
-.PP
-.SS "void expire_lines ()"
-.PP
-.SS "void gline_set_creation_time (char * host, time_t create_time)"
-.PP
-.SS "char* matches_exception (const char * host)"
-.PP
-Referenced by AddClient(), and FullConnectUser().
-.SS "char* matches_gline (const char * host)"
-.PP
-Referenced by FullConnectUser().
-.SS "char* matches_kline (const char * host)"
-.PP
-Referenced by FullConnectUser().
-.SS "char* matches_qline (const char * nick)"
-.PP
-Referenced by force_nickchange().
-.SS "char* matches_zline (const char * ipaddr)"
-.PP
-Referenced by AddClient().
-.SS "bool qline_make_global (const char * nickname)"
-.PP
-.SS "void qline_set_creation_time (char * nick, time_t create_time)"
-.PP
-.SS "void read_xline_defaults ()"
-.PP
-.SS "void stats_e (\fBuserrec\fP * user)"
-.PP
-.SS "void stats_g (\fBuserrec\fP * user)"
-.PP
-.SS "void stats_k (\fBuserrec\fP * user)"
-.PP
-.SS "void stats_q (\fBuserrec\fP * user)"
-.PP
-.SS "void stats_z (\fBuserrec\fP * user)"
-.PP
-.SS "bool zline_make_global (const char * ipaddr)"
-.PP
-.SS "void zline_set_creation_time (char * ip, time_t create_time)"
-.PP
-.SH "Variable Documentation"
-.PP
-.SS "const int \fBAPPLY_ALL\fP = \fBAPPLY_GLINES\fP | \fBAPPLY_KLINES\fP | \fBAPPLY_QLINES\fP | \fBAPPLY_ZLINES\fP"
-.PP
-Definition at line 35 of file xline.h.
-.SS "const int \fBAPPLY_GLINES\fP = 1"
-.PP
-Definition at line 31 of file xline.h.
-.SS "const int \fBAPPLY_KLINES\fP = 2"
-.PP
-Definition at line 32 of file xline.h.
-.SS "const int \fBAPPLY_QLINES\fP = 4"
-.PP
-Definition at line 33 of file xline.h.
-.SS "const int \fBAPPLY_ZLINES\fP = 8"
-.PP
-Definition at line 34 of file xline.h.
-.SH "Author"
-.PP
-Generated automatically by Doxygen for InspIRCd from the source code.