summaryrefslogtreecommitdiff
path: root/docs/module-doc
diff options
context:
space:
mode:
Diffstat (limited to 'docs/module-doc')
-rw-r--r--docs/module-doc/annotated.html32
-rw-r--r--docs/module-doc/channels_8h-source.html146
-rw-r--r--docs/module-doc/channels_8h.html248
-rw-r--r--docs/module-doc/classAdmin-members.html19
-rw-r--r--docs/module-doc/classAdmin.html160
-rw-r--r--docs/module-doc/classBanItem-members.html20
-rw-r--r--docs/module-doc/classBanItem.html34
-rw-r--r--docs/module-doc/classBanItem.pngbin0 -> 303 bytes
-rw-r--r--docs/module-doc/classConfigReader-members.html22
-rw-r--r--docs/module-doc/classConfigReader.html324
-rw-r--r--docs/module-doc/classConnectClass-members.html18
-rw-r--r--docs/module-doc/classConnectClass.html106
-rw-r--r--docs/module-doc/classExemptItem-members.html20
-rw-r--r--docs/module-doc/classExemptItem.html34
-rw-r--r--docs/module-doc/classExemptItem.pngbin0 -> 333 bytes
-rw-r--r--docs/module-doc/classFileReader-members.html22
-rw-r--r--docs/module-doc/classFileReader.html312
-rw-r--r--docs/module-doc/classHostItem-members.html20
-rw-r--r--docs/module-doc/classHostItem.html185
-rw-r--r--docs/module-doc/classHostItem.pngbin0 -> 511 bytes
-rw-r--r--docs/module-doc/classInviteItem-members.html20
-rw-r--r--docs/module-doc/classInviteItem.html34
-rw-r--r--docs/module-doc/classInviteItem.pngbin0 -> 318 bytes
-rw-r--r--docs/module-doc/classInvited-members.html16
-rw-r--r--docs/module-doc/classInvited.html58
-rw-r--r--docs/module-doc/classModule-members.html22
-rw-r--r--docs/module-doc/classModule.html315
-rw-r--r--docs/module-doc/classModuleFactory-members.html18
-rw-r--r--docs/module-doc/classModuleFactory.html134
-rw-r--r--docs/module-doc/classServer-members.html34
-rw-r--r--docs/module-doc/classServer.html913
-rw-r--r--docs/module-doc/classVersion-members.html20
-rw-r--r--docs/module-doc/classVersion.html191
-rw-r--r--docs/module-doc/classchanrec-members.html32
-rw-r--r--docs/module-doc/classchanrec.html534
-rw-r--r--docs/module-doc/classes.html26
-rw-r--r--docs/module-doc/classucrec-members.html19
-rw-r--r--docs/module-doc/classucrec.html161
-rw-r--r--docs/module-doc/classuserrec-members.html47
-rw-r--r--docs/module-doc/classuserrec.html1085
-rw-r--r--docs/module-doc/doxygen.css49
-rw-r--r--docs/module-doc/doxygen.pngbin0 -> 2351 bytes
-rw-r--r--docs/module-doc/files.html21
-rw-r--r--docs/module-doc/ftv2blank.pngbin0 -> 173 bytes
-rw-r--r--docs/module-doc/ftv2doc.pngbin0 -> 254 bytes
-rw-r--r--docs/module-doc/ftv2folderclosed.pngbin0 -> 258 bytes
-rw-r--r--docs/module-doc/ftv2folderopen.pngbin0 -> 260 bytes
-rw-r--r--docs/module-doc/ftv2lastnode.pngbin0 -> 232 bytes
-rw-r--r--docs/module-doc/ftv2link.pngbin0 -> 357 bytes
-rw-r--r--docs/module-doc/ftv2mlastnode.pngbin0 -> 159 bytes
-rw-r--r--docs/module-doc/ftv2mnode.pngbin0 -> 193 bytes
-rw-r--r--docs/module-doc/ftv2node.pngbin0 -> 234 bytes
-rw-r--r--docs/module-doc/ftv2plastnode.pngbin0 -> 164 bytes
-rw-r--r--docs/module-doc/ftv2pnode.pngbin0 -> 199 bytes
-rw-r--r--docs/module-doc/ftv2vertline.pngbin0 -> 228 bytes
-rw-r--r--docs/module-doc/functions.html191
-rw-r--r--docs/module-doc/globals.html57
-rw-r--r--docs/module-doc/hierarchy.html34
-rw-r--r--docs/module-doc/index.html7
-rw-r--r--docs/module-doc/main.html16
-rw-r--r--docs/module-doc/modules_8cpp-source.html249
-rw-r--r--docs/module-doc/modules_8cpp.html24
-rw-r--r--docs/module-doc/modules_8h-source.html159
-rw-r--r--docs/module-doc/modules_8h.html96
-rw-r--r--docs/module-doc/tree.html11
-rw-r--r--docs/module-doc/tree.js44
-rw-r--r--docs/module-doc/treeview.js500
-rw-r--r--docs/module-doc/users_8cpp-source.html109
-rw-r--r--docs/module-doc/users_8cpp.html24
-rw-r--r--docs/module-doc/users_8h-source.html158
-rw-r--r--docs/module-doc/users_8h.html239
71 files changed, 7389 insertions, 0 deletions
diff --git a/docs/module-doc/annotated.html b/docs/module-doc/annotated.html
new file mode 100644
index 000000000..5e88bcf06
--- /dev/null
+++ b/docs/module-doc/annotated.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Annotated Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd Compound List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
+ <tr><td class="indexkey"><a class="el" href="classAdmin.html">Admin</a></td><td class="indexvalue">Holds /ADMIN data This class contains the admin details of the local server</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classBanItem.html">BanItem</a></td><td class="indexvalue">A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel bans (+b)</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classchanrec.html">chanrec</a></td><td class="indexvalue">Holds all relevent information for a channel</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classConfigReader.html">ConfigReader</a></td><td class="indexvalue">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</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classConnectClass.html">ConnectClass</a></td><td class="indexvalue">Holds information relevent to &lt;connect allow&gt; and &lt;connect deny&gt; tags in the config file</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classExemptItem.html">ExemptItem</a></td><td class="indexvalue">A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel exempts (+e)</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classFileReader.html">FileReader</a></td><td class="indexvalue">Caches a text file into memory and can be used to retrieve lines from it</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classHostItem.html">HostItem</a></td><td class="indexvalue">Holds an entry for a ban list, exemption list, or invite list</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classInvited.html">Invited</a></td><td class="indexvalue">Holds a channel name to which a user has been invited</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classInviteItem.html">InviteItem</a></td><td class="indexvalue">A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel invites (+I)</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classModule.html">Module</a></td><td class="indexvalue">Base class for all InspIRCd modules This class is the base class for InspIRCd modules</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classModuleFactory.html">ModuleFactory</a></td><td class="indexvalue">Instantiates classes inherited from <a class="el" href="classModule.html">Module</a> This class creates a class inherited from type <a class="el" href="classModule.html">Module</a>, using new</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classServer.html">Server</a></td><td class="indexvalue">Allows server output and query functions This class contains methods which allow a module to query the state of the irc server, and produce output to users and other servers</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classucrec.html">ucrec</a></td><td class="indexvalue">Holds a user's modes on a channel This class associates a users privilages with a channel by creating a pointer link between a userrec and chanrec class</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classuserrec.html">userrec</a></td><td class="indexvalue">Holds all information about a user This class stores all information about a user connected to the irc server</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classVersion.html">Version</a></td><td class="indexvalue">Holds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module</td></tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/channels_8h-source.html b/docs/module-doc/channels_8h-source.html
new file mode 100644
index 000000000..ba7592c81
--- /dev/null
+++ b/docs/module-doc/channels_8h-source.html
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>channels.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>channels.h</h1><a href="channels_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
+00002 <span class="comment"></span>
+00003 <span class="comment">$Log$
+00003 <span class="comment">Revision 1.1 2003/01/23 19:45:57 brain
+00003 <span class="comment">Initial revision
+00003 <span class="comment">
+00003 <span class="comment">Revision 1.6 2003/01/22 20:59:12 brain
+00003 <span class="comment">Added FileReader class documentation
+00003 <span class="comment"></span>
+00004 <span class="comment">Revision 1.7 2003/01/22 00:44:26 brain</span>
+00005 <span class="comment">Added documentation comments</span>
+00006 <span class="comment"></span>
+00007 <span class="comment">Revision 1.6 2003/01/21 21:11:17 brain</span>
+00008 <span class="comment">Added documentation</span>
+00009 <span class="comment"></span>
+00010 <span class="comment">Revision 1.5 2003/01/16 20:11:55 brain</span>
+00011 <span class="comment">fixed some ugly pointer bugs (thanks dblack and a|KK|y!)</span>
+00012 <span class="comment"></span>
+00013 <span class="comment">Revision 1.4 2003/01/15 22:47:44 brain</span>
+00014 <span class="comment">Changed user and channel structs to classes (finally)</span>
+00015 <span class="comment"></span>
+00016 <span class="comment"> </span>
+00017 <span class="comment">*/</span>
+00018
+00019 <span class="preprocessor">#include "inspircd_config.h"</span>
+00020 <span class="preprocessor">#include &lt;time.h&gt;</span>
+00021 <span class="preprocessor">#include &lt;vector&gt;</span>
+00022
+00023 <span class="preprocessor">#ifndef __CHANNELS_H__</span>
+00024 <span class="preprocessor"></span><span class="preprocessor">#define __CHANNELS_H__</span>
+00025 <span class="preprocessor"></span>
+<a name="l00029"></a><a class="code" href="classHostItem.html">00029</a> <span class="keyword">class </span><a class="code" href="classHostItem.html">HostItem</a>
+00030 {
+00031 <span class="keyword">public</span>:
+<a name="l00032"></a><a class="code" href="classHostItem.html#m0">00032</a> time_t <a class="code" href="classHostItem.html#m0">set_time</a>;
+<a name="l00033"></a><a class="code" href="classHostItem.html#m1">00033</a> <span class="keywordtype">char</span> <a class="code" href="classHostItem.html#m1">set_by</a>[NICKMAX];
+<a name="l00034"></a><a class="code" href="classHostItem.html#m2">00034</a> <span class="keywordtype">char</span> <a class="code" href="classHostItem.html#m2">data</a>[MAXBUF];
+00035
+<a name="l00036"></a><a class="code" href="classHostItem.html#a0">00036</a> <a class="code" href="classHostItem.html#a0">HostItem</a>() { <span class="comment">/* stub */</span> }
+<a name="l00037"></a><a class="code" href="classHostItem.html#a1">00037</a> <span class="keyword">virtual</span> <a class="code" href="classHostItem.html#a1">~HostItem</a>() { <span class="comment">/* stub */</span> }
+00038 };
+00039
+00040 <span class="comment">// banlist is inherited from HostList mainly for readability</span>
+00041 <span class="comment">// reasons only</span>
+00042
+<a name="l00045"></a><a class="code" href="classBanItem.html">00045</a> <span class="keyword">class </span><a class="code" href="classBanItem.html">BanItem</a> : <span class="keyword">public</span> <a class="code" href="classHostItem.html">HostItem</a>
+00046 {
+00047 };
+00048
+00049 <span class="comment">// same with this...</span>
+00050
+<a name="l00053"></a><a class="code" href="classExemptItem.html">00053</a> <span class="keyword">class </span><a class="code" href="classExemptItem.html">ExemptItem</a> : <span class="keyword">public</span> <a class="code" href="classHostItem.html">HostItem</a>
+00054 {
+00055 };
+00056
+00057 <span class="comment">// and this...</span>
+00058
+<a name="l00061"></a><a class="code" href="classInviteItem.html">00061</a> <span class="keyword">class </span><a class="code" href="classInviteItem.html">InviteItem</a> : <span class="keyword">public</span> <a class="code" href="classHostItem.html">HostItem</a>
+00062 {
+00063 };
+00064
+00065
+<a name="l00068"></a><a class="code" href="channels_8h.html#a5">00068</a> <span class="keyword">typedef</span> vector&lt;BanItem&gt; <a class="code" href="channels_8h.html#a5">BanList</a>;
+00069
+<a name="l00072"></a><a class="code" href="channels_8h.html#a6">00072</a> <span class="keyword">typedef</span> vector&lt;ExemptItem&gt; <a class="code" href="channels_8h.html#a6">ExemptList</a>;
+00073
+<a name="l00076"></a><a class="code" href="channels_8h.html#a7">00076</a> <span class="keyword">typedef</span> vector&lt;InviteItem&gt; <a class="code" href="channels_8h.html#a7">InviteList</a>;
+00077
+<a name="l00082"></a><a class="code" href="classchanrec.html">00082</a> <span class="keyword">class </span><a class="code" href="classchanrec.html">chanrec</a>
+00083 {
+00084 <span class="keyword">public</span>:
+<a name="l00087"></a><a class="code" href="classchanrec.html#m0">00087</a> <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#m0">name</a>[CHANMAX]; <span class="comment">/* channel name */</span>
+<a name="l00091"></a><a class="code" href="classchanrec.html#m1">00091</a> <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#m1">custom_modes</a>[MAXMODES]; <span class="comment">/* modes handled by modules */</span>
+<a name="l00095"></a><a class="code" href="classchanrec.html#m2">00095</a> <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#m2">topic</a>[MAXBUF];
+<a name="l00098"></a><a class="code" href="classchanrec.html#m3">00098</a> time_t <a class="code" href="classchanrec.html#m3">created</a>;
+<a name="l00102"></a><a class="code" href="classchanrec.html#m4">00102</a> time_t <a class="code" href="classchanrec.html#m4">topicset</a>;
+<a name="l00106"></a><a class="code" href="classchanrec.html#m5">00106</a> <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#m5">setby</a>[NICKMAX];
+00107
+<a name="l00111"></a><a class="code" href="classchanrec.html#m6">00111</a> <span class="keywordtype">long</span> <a class="code" href="classchanrec.html#m6">limit</a>;
+00112
+<a name="l00116"></a><a class="code" href="classchanrec.html#m7">00116</a> <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#m7">key</a>[32];
+00117
+<a name="l00120"></a><a class="code" href="classchanrec.html#m8">00120</a> <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#m8">topiclock</a>;
+00121
+<a name="l00124"></a><a class="code" href="classchanrec.html#m9">00124</a> <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#m9">noexternal</a>;
+00125
+<a name="l00128"></a><a class="code" href="classchanrec.html#m10">00128</a> <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#m10">inviteonly</a>;
+00129
+<a name="l00132"></a><a class="code" href="classchanrec.html#m11">00132</a> <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#m11">moderated</a>;
+00133
+<a name="l00137"></a><a class="code" href="classchanrec.html#m12">00137</a> <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#m12">secret</a>;
+00138
+<a name="l00142"></a><a class="code" href="classchanrec.html#m13">00142</a> <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#m13">c_private</a>;
+00143
+<a name="l00146"></a><a class="code" href="classchanrec.html#m14">00146</a> <a class="code" href="channels_8h.html#a5">BanList</a> <a class="code" href="classchanrec.html#m14">bans</a>;
+00147
+<a name="l00150"></a><a class="code" href="classchanrec.html#a0">00150</a> <a class="code" href="classchanrec.html#a0">chanrec</a>()
+00151 {
+00152 strcpy(name,<span class="stringliteral">""</span>);
+00153 strcpy(custom_modes,<span class="stringliteral">""</span>);
+00154 strcpy(topic,<span class="stringliteral">""</span>);
+00155 strcpy(setby,<span class="stringliteral">""</span>);
+00156 strcpy(key,<span class="stringliteral">""</span>);
+00157 created = topicset = limit = 0;
+00158 topiclock = noexternal = inviteonly = moderated = secret = c_private = <span class="keyword">false</span>;
+00159 }
+00160
+<a name="l00161"></a><a class="code" href="classchanrec.html#a1">00161</a> <span class="keyword">virtual</span> <a class="code" href="classchanrec.html#a1">~chanrec</a>() { <span class="comment">/* stub */</span> }
+00162 };
+00163
+00164 <span class="comment">/* used to hold a channel and a users modes on that channel, e.g. +v, +h, +o</span>
+00165 <span class="comment"> * needs to come AFTER struct chanrec */</span>
+00166
+<a name="l00167"></a><a class="code" href="channels_8h.html#a0">00167</a> <span class="preprocessor">#define UCMODE_OP 1</span>
+<a name="l00168"></a><a class="code" href="channels_8h.html#a1">00168</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_VOICE 2</span>
+<a name="l00169"></a><a class="code" href="channels_8h.html#a2">00169</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_HOP 4</span>
+<a name="l00170"></a><a class="code" href="channels_8h.html#a3">00170</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_PROTECT 8</span>
+<a name="l00171"></a><a class="code" href="channels_8h.html#a4">00171</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_FOUNDER 16</span>
+00172 <span class="preprocessor"></span>
+<a name="l00178"></a><a class="code" href="classucrec.html">00178</a> <span class="keyword">class </span><a class="code" href="classucrec.html">ucrec</a>
+00179 {
+00180 <span class="keyword">public</span>:
+<a name="l00184"></a><a class="code" href="classucrec.html#m0">00184</a> <span class="keywordtype">long</span> <a class="code" href="classucrec.html#m0">uc_modes</a>;
+00185
+<a name="l00189"></a><a class="code" href="classucrec.html#m1">00189</a> <a class="code" href="classchanrec.html">chanrec</a> *<a class="code" href="classucrec.html#m1">channel</a>;
+00190
+<a name="l00191"></a><a class="code" href="classucrec.html#a0">00191</a> <a class="code" href="classucrec.html#a0">ucrec</a>() { <span class="comment">/* stub */</span> }
+<a name="l00192"></a><a class="code" href="classucrec.html#a1">00192</a> <span class="keyword">virtual</span> <a class="code" href="classucrec.html#a1">~ucrec</a>() { <span class="comment">/* stub */</span> }
+00193 };
+00194
+00195 <span class="preprocessor">#endif</span>
+00196 <span class="preprocessor"></span>
+</pre></div><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:46 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/channels_8h.html b/docs/module-doc/channels_8h.html
new file mode 100644
index 000000000..1eadc5857
--- /dev/null
+++ b/docs/module-doc/channels_8h.html
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>channels.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>channels.h File Reference</h1><code>#include "inspircd_config.h"</code><br>
+<code>#include &lt;time.h&gt;</code><br>
+<code>#include &lt;vector&gt;</code><br>
+
+<p>
+<a href="channels_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Compounds</h2></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classBanItem.html">BanItem</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel bans (+b).</em> <a href="classBanItem.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html">chanrec</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds all relevent information for a channel.</em> <a href="classchanrec.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classExemptItem.html">ExemptItem</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel exempts (+e).</em> <a href="classExemptItem.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classHostItem.html">HostItem</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds an entry for a ban list, exemption list, or invite list.</em> <a href="classHostItem.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classInviteItem.html">InviteItem</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel invites (+I).</em> <a href="classInviteItem.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classucrec.html">ucrec</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>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.</em> <a href="classucrec.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Defines</h2></td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a0">UCMODE_OP</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a1">UCMODE_VOICE</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a2">UCMODE_HOP</a>&nbsp;&nbsp;&nbsp;4</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a3">UCMODE_PROTECT</a>&nbsp;&nbsp;&nbsp;8</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a4">UCMODE_FOUNDER</a>&nbsp;&nbsp;&nbsp;16</td></tr>
+<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
+<tr><td nowrap align=right valign=top>typedef vector&lt; <a class="el" href="classBanItem.html">BanItem</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a5">BanList</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a complete ban list.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>typedef vector&lt; <a class="el" href="classExemptItem.html">ExemptItem</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a6">ExemptList</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a complete exempt list.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>typedef vector&lt; <a class="el" href="classInviteItem.html">InviteItem</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a7">InviteList</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a complete invite list.</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a name="a4" doxytag="channels.h::UCMODE_FOUNDER"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define UCMODE_FOUNDER&nbsp;&nbsp;&nbsp;16
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00171">171</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="a2" doxytag="channels.h::UCMODE_HOP"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define UCMODE_HOP&nbsp;&nbsp;&nbsp;4
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00169">169</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="a0" doxytag="channels.h::UCMODE_OP"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define UCMODE_OP&nbsp;&nbsp;&nbsp;1
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00167">167</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="a3" doxytag="channels.h::UCMODE_PROTECT"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define UCMODE_PROTECT&nbsp;&nbsp;&nbsp;8
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00170">170</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="a1" doxytag="channels.h::UCMODE_VOICE"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define UCMODE_VOICE&nbsp;&nbsp;&nbsp;2
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00168">168</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a name="a5" doxytag="channels.h::BanList"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef vector&lt;<a class="el" href="classBanItem.html">BanItem</a>&gt; BanList
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Holds a complete ban list.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00068">68</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="a6" doxytag="channels.h::ExemptList"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef vector&lt;<a class="el" href="classExemptItem.html">ExemptItem</a>&gt; ExemptList
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Holds a complete exempt list.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00072">72</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="a7" doxytag="channels.h::InviteList"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef vector&lt;<a class="el" href="classInviteItem.html">InviteItem</a>&gt; InviteList
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Holds a complete invite list.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00076">76</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classAdmin-members.html b/docs/module-doc/classAdmin-members.html
new file mode 100644
index 000000000..39b406601
--- /dev/null
+++ b/docs/module-doc/classAdmin-members.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Admin Member List</h1>This is the complete list of members for <a class="el" href="classAdmin.html">Admin</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classAdmin.html#a0">Admin</a>(string name, string email, string nick)</td><td><a class="el" href="classAdmin.html">Admin</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classAdmin.html#m1">Email</a></td><td><a class="el" href="classAdmin.html">Admin</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classAdmin.html#m0">Name</a></td><td><a class="el" href="classAdmin.html">Admin</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classAdmin.html#m2">Nick</a></td><td><a class="el" href="classAdmin.html">Admin</a></td><td></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classAdmin.html b/docs/module-doc/classAdmin.html
new file mode 100644
index 000000000..663193311
--- /dev/null
+++ b/docs/module-doc/classAdmin.html
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Admin class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Admin Class Reference</h1>Holds /ADMIN data This class contains the admin details of the local server.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classAdmin-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classAdmin.html#a0">Admin</a> (string name, string email, string nick)</td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>const string&nbsp;</td><td valign=bottom><a class="el" href="classAdmin.html#m0">Name</a></td></tr>
+<tr><td nowrap align=right valign=top>const string&nbsp;</td><td valign=bottom><a class="el" href="classAdmin.html#m1">Email</a></td></tr>
+<tr><td nowrap align=right valign=top>const string&nbsp;</td><td valign=bottom><a class="el" href="classAdmin.html#m2">Nick</a></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds /ADMIN data This class contains the admin details of the local server.
+<p>
+It is constructed by class <a class="el" href="classServer.html">Server</a>, and has three read-only values, Name, Email and Nick that contain the specified values for the server where the module is running.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00067">67</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="Admin::Admin"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> Admin::Admin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>email</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>nick</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00033">33</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00033 : <a class="code" href="classAdmin.html#m0">Name</a>(name), <a class="code" href="classAdmin.html#m1">Email</a>(email), <a class="code" href="classAdmin.html#m2">Nick</a>(nick) { };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="m1" doxytag="Admin::Email"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const string Admin::Email
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00070">70</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="Admin::Name"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const string Admin::Name
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00070">70</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="m2" doxytag="Admin::Nick"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const string Admin::Nick
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00070">70</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classBanItem-members.html b/docs/module-doc/classBanItem-members.html
new file mode 100644
index 000000000..11295cdc7
--- /dev/null
+++ b/docs/module-doc/classBanItem-members.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>BanItem Member List</h1>This is the complete list of members for <a class="el" href="classBanItem.html">BanItem</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m2">data</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a0">HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m1">set_by</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m0">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a1">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classBanItem.html b/docs/module-doc/classBanItem.html
new file mode 100644
index 000000000..194010968
--- /dev/null
+++ b/docs/module-doc/classBanItem.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>BanItem class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>BanItem Class Reference</h1>A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel bans (+b).
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for BanItem:
+<p><center><img src="classBanItem.png" usemap="#BanItem_map" border="0" alt=""></center>
+<map name="BanItem_map">
+<area href="classHostItem.html" alt="HostItem" shape="rect" coords="0,0,59,24">
+</map>
+<a href="classBanItem-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel bans (+b).
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00045">45</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classBanItem.png b/docs/module-doc/classBanItem.png
new file mode 100644
index 000000000..e0a7f35b2
--- /dev/null
+++ b/docs/module-doc/classBanItem.png
Binary files differ
diff --git a/docs/module-doc/classConfigReader-members.html b/docs/module-doc/classConfigReader-members.html
new file mode 100644
index 000000000..d27bbd43e
--- /dev/null
+++ b/docs/module-doc/classConfigReader-members.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ConfigReader Member List</h1>This is the complete list of members for <a class="el" href="classConfigReader.html">ConfigReader</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#a0">ConfigReader</a>()</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#a1">ConfigReader</a>(string filename)</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#a4">Enumerate</a>(string tag)</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#n0">fname</a></td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td><code> [protected]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#a3">ReadValue</a>(string tag, string name, int index)</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#a5">Verify</a>()</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#a2">~ConfigReader</a>()</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classConfigReader.html b/docs/module-doc/classConfigReader.html
new file mode 100644
index 000000000..f0221a1a1
--- /dev/null
+++ b/docs/module-doc/classConfigReader.html
@@ -0,0 +1,324 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>ConfigReader class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ConfigReader Class Reference</h1>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.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classConfigReader-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#a0">ConfigReader</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default constructor.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#a1">ConfigReader</a> (string filename)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Overloaded constructor.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#a2">~ConfigReader</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default destructor.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>string&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#a3">ReadValue</a> (string tag, string name, int index)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Retrieves a value from the config file.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#a4">Enumerate</a> (string tag)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Counts the number of times a given tag appears in the config file.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#a5">Verify</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns true if a config file is valid.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>string&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#n0">fname</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The filename of the configuration file, as set by the constructor.</em> <a href="#n0"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+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.
+<p>
+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.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00226">226</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="ConfigReader::ConfigReader"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> ConfigReader::ConfigReader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default constructor.
+<p>
+This constructor initialises the ConfigReader class to read the inspircd.conf file as specified when running ./configure.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00161">161</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00231">fname</a>.
+<p>
+<div class="fragment"><pre>00162 {
+00163 <a class="code" href="classConfigReader.html#n0">fname</a> = CONFIG_FILE;
+00164 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="ConfigReader::ConfigReader"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> ConfigReader::ConfigReader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>filename</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Overloaded constructor.
+<p>
+This constructor initialises the ConfigReader class to read a user-specified config file
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00172">172</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00172 : <a class="code" href="classConfigReader.html#n0">fname</a>(filename) { };
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a2" doxytag="ConfigReader::~ConfigReader"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> ConfigReader::~ConfigReader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default destructor.
+<p>
+This method destroys the ConfigReader class.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00167">167</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00168 {
+00169 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a4" doxytag="ConfigReader::Enumerate"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> int ConfigReader::Enumerate </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>tag</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Counts the number of times a given tag appears in the config file.
+<p>
+This method counts the number of times a tag appears in a config file, for use where there are several tags of the same kind, e.g. with opers and connect types. It can be used with the index value of <a class="el" href="classConfigReader.html#a3">ConfigReader::ReadValue</a> to loop through all copies of a multiple instance tag.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00183">183</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00231">fname</a>.
+<p>
+<div class="fragment"><pre>00184 {
+00185 <span class="keywordflow">return</span> EnumConf(<a class="code" href="classConfigReader.html#n0">fname</a>.c_str(),tag.c_str());
+00186 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a3" doxytag="ConfigReader::ReadValue"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string ConfigReader::ReadValue </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>tag</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>index</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Retrieves a value from the config file.
+<p>
+This method retrieves a value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00174">174</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00231">fname</a>.
+<p>
+<div class="fragment"><pre>00175 {
+00176 <span class="keywordtype">char</span> val[MAXBUF];
+00177 ReadConf(<a class="code" href="classConfigReader.html#n0">fname</a>.c_str(),tag.c_str(),name.c_str(),index,val);
+00178 string s = val;
+00179 <span class="keywordflow">return</span> s;
+00180 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a5" doxytag="ConfigReader::Verify"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool ConfigReader::Verify </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if a config file is valid.
+<p>
+This method is unimplemented and will always return true.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00189">189</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00190 {
+00191 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00192 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="n0" doxytag="ConfigReader::fname"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string ConfigReader::fname<code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The filename of the configuration file, as set by the constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00231">231</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00161">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00183">Enumerate()</a>, and <a class="el" href="modules_8cpp-source.html#l00174">ReadValue()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classConnectClass-members.html b/docs/module-doc/classConnectClass-members.html
new file mode 100644
index 000000000..f8b7a913a
--- /dev/null
+++ b/docs/module-doc/classConnectClass-members.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ConnectClass Member List</h1>This is the complete list of members for <a class="el" href="classConnectClass.html">ConnectClass</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConnectClass.html#m1">host</a></td><td><a class="el" href="classConnectClass.html">ConnectClass</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConnectClass.html#m2">pass</a></td><td><a class="el" href="classConnectClass.html">ConnectClass</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConnectClass.html#m0">type</a></td><td><a class="el" href="classConnectClass.html">ConnectClass</a></td><td></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classConnectClass.html b/docs/module-doc/classConnectClass.html
new file mode 100644
index 000000000..7fd64062e
--- /dev/null
+++ b/docs/module-doc/classConnectClass.html
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>ConnectClass class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ConnectClass Class Reference</h1>Holds information relevent to &lt;connect allow&gt; and &lt;connect deny&gt; tags in the config file.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="users_8h-source.html">users.h</a>&gt;</code>
+<p>
+<a href="classConnectClass-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classConnectClass.html#m0">type</a></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classConnectClass.html#m1">host</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classConnectClass.html#m2">pass</a> [MAXBUF]</td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds information relevent to &lt;connect allow&gt; and &lt;connect deny&gt; tags in the config file.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00056">56</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Member Data Documentation</h2>
+<a name="m1" doxytag="ConnectClass::host"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char ConnectClass::host[MAXBUF]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00060">60</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m2" doxytag="ConnectClass::pass"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char ConnectClass::pass[MAXBUF]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00061">61</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="ConnectClass::type"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> int ConnectClass::type
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00059">59</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="users_8h-source.html">users.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classExemptItem-members.html b/docs/module-doc/classExemptItem-members.html
new file mode 100644
index 000000000..37ac533e3
--- /dev/null
+++ b/docs/module-doc/classExemptItem-members.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ExemptItem Member List</h1>This is the complete list of members for <a class="el" href="classExemptItem.html">ExemptItem</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m2">data</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a0">HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m1">set_by</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m0">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a1">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classExemptItem.html b/docs/module-doc/classExemptItem.html
new file mode 100644
index 000000000..de865231d
--- /dev/null
+++ b/docs/module-doc/classExemptItem.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>ExemptItem class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ExemptItem Class Reference</h1>A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel exempts (+e).
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for ExemptItem:
+<p><center><img src="classExemptItem.png" usemap="#ExemptItem_map" border="0" alt=""></center>
+<map name="ExemptItem_map">
+<area href="classHostItem.html" alt="HostItem" shape="rect" coords="0,0,74,24">
+</map>
+<a href="classExemptItem-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel exempts (+e).
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00053">53</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classExemptItem.png b/docs/module-doc/classExemptItem.png
new file mode 100644
index 000000000..6aa67a9ef
--- /dev/null
+++ b/docs/module-doc/classExemptItem.png
Binary files differ
diff --git a/docs/module-doc/classFileReader-members.html b/docs/module-doc/classFileReader-members.html
new file mode 100644
index 000000000..e61cf78d8
--- /dev/null
+++ b/docs/module-doc/classFileReader-members.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>FileReader Member List</h1>This is the complete list of members for <a class="el" href="classFileReader.html">FileReader</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#o0">fc</a></td><td><a class="el" href="classFileReader.html">FileReader</a></td><td><code> [private]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a0">FileReader</a>()</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a1">FileReader</a>(string filename)</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a5">FileSize</a>()</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a4">GetLine</a>(int x)</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a3">LoadFile</a>(string filename)</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a2">~FileReader</a>()</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classFileReader.html b/docs/module-doc/classFileReader.html
new file mode 100644
index 000000000..ee84a6d74
--- /dev/null
+++ b/docs/module-doc/classFileReader.html
@@ -0,0 +1,312 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>FileReader class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>FileReader Class Reference</h1>Caches a text file into memory and can be used to retrieve lines from it.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classFileReader-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a0">FileReader</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default constructor.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a1">FileReader</a> (string filename)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Secondary constructor.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a2">~FileReader</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default destructor.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a3">LoadFile</a> (string filename)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Used to load a file.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>string&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a4">GetLine</a> (int x)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Retrieve one line from the file.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a5">FileSize</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the size of the file in lines.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="modules_8h.html#a1">file_cache</a>&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#o0">fc</a></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Caches a text file into memory and can be used to retrieve lines from it.
+<p>
+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.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00271">271</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="FileReader::FileReader"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> FileReader::FileReader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default constructor.
+<p>
+This method does not load any file into memory, you must use the LoadFile method after constructing the class this way.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00202">202</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00203 {
+00204 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="FileReader::FileReader"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> FileReader::FileReader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>filename</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Secondary constructor.
+<p>
+This method initialises the class with a file loaded into it ready for GetLine and and other methods to be called. If the file could not be loaded, <a class="el" href="classFileReader.html#a5">FileReader::FileSize</a> returns 0.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00195">195</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00273">fc</a>, and <a class="el" href="modules_8h-source.html#l00038">file_cache</a>.
+<p>
+<div class="fragment"><pre>00196 {
+00197 <a class="code" href="modules_8h.html#a1">file_cache</a> c;
+00198 readfile(c,filename.c_str());
+00199 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+00200 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a2" doxytag="FileReader::~FileReader"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> FileReader::~FileReader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default destructor.
+<p>
+This deletes the memory allocated to the file.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00213">213</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00214 {
+00215 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a5" doxytag="FileReader::FileSize"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> int FileReader::FileSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the size of the file in lines.
+<p>
+This method returns the number of lines in the read file. If it is 0, no lines have been read into memory, either because the file is empty or it does not exist, or cannot be opened due to permission problems.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00224">224</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00273">fc</a>.
+<p>
+<div class="fragment"><pre>00225 {
+00226 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>.size();
+00227 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a4" doxytag="FileReader::GetLine"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string FileReader::GetLine </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">int&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>x</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Retrieve one line from the file.
+<p>
+This method retrieves one line from the text file. If an empty non-NULL string is returned, the index was out of bounds, or the line had no data on it.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00217">217</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00273">fc</a>.
+<p>
+<div class="fragment"><pre>00218 {
+00219 <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#o0">fc</a>.size()))
+00220 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00221 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>[x];
+00222 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a3" doxytag="FileReader::LoadFile"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void FileReader::LoadFile </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>filename</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Used to load a file.
+<p>
+This method loads a file into the class ready for GetLine and and other methods to be called. If the file could not be loaded, <a class="el" href="classFileReader.html#a5">FileReader::FileSize</a> returns 0.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00206">206</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00273">fc</a>, and <a class="el" href="modules_8h-source.html#l00038">file_cache</a>.
+<p>
+<div class="fragment"><pre>00207 {
+00208 <a class="code" href="modules_8h.html#a1">file_cache</a> c;
+00209 readfile(c,filename.c_str());
+00210 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+00211 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="o0" doxytag="FileReader::fc"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="modules_8h.html#a1">file_cache</a> FileReader::fc<code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00273">273</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00195">FileReader()</a>, <a class="el" href="modules_8cpp-source.html#l00224">FileSize()</a>, <a class="el" href="modules_8cpp-source.html#l00217">GetLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00206">LoadFile()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classHostItem-members.html b/docs/module-doc/classHostItem-members.html
new file mode 100644
index 000000000..bf8242760
--- /dev/null
+++ b/docs/module-doc/classHostItem-members.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>HostItem Member List</h1>This is the complete list of members for <a class="el" href="classHostItem.html">HostItem</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m2">data</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a0">HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m1">set_by</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m0">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a1">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classHostItem.html b/docs/module-doc/classHostItem.html
new file mode 100644
index 000000000..de0e216f6
--- /dev/null
+++ b/docs/module-doc/classHostItem.html
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>HostItem class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>HostItem Class Reference</h1>Holds an entry for a ban list, exemption list, or invite list.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for HostItem:
+<p><center><img src="classHostItem.png" usemap="#HostItem_map" border="0" alt=""></center>
+<map name="HostItem_map">
+<area href="classBanItem.html" alt="BanItem" shape="rect" coords="0,56,74,80">
+<area href="classExemptItem.html" alt="ExemptItem" shape="rect" coords="84,56,158,80">
+<area href="classInviteItem.html" alt="InviteItem" shape="rect" coords="168,56,242,80">
+</map>
+<a href="classHostItem-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classHostItem.html#a0">HostItem</a> ()</td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classHostItem.html#a1">~HostItem</a> ()</td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classHostItem.html#m0">set_time</a></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classHostItem.html#m1">set_by</a> [NICKMAX]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classHostItem.html#m2">data</a> [MAXBUF]</td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds an entry for a ban list, exemption list, or invite list.
+<p>
+This class contains a single element in a channel list, such as a banlist.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00029">29</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="HostItem::HostItem"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> HostItem::HostItem </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00036">36</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+<div class="fragment"><pre>00036 { <span class="comment">/* stub */</span> }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="HostItem::~HostItem"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual HostItem::~HostItem </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00037">37</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+<div class="fragment"><pre>00037 { <span class="comment">/* stub */</span> }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="m2" doxytag="HostItem::data"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char HostItem::data[MAXBUF]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00034">34</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m1" doxytag="HostItem::set_by"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char HostItem::set_by[NICKMAX]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00033">33</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="HostItem::set_time"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t HostItem::set_time
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00032">32</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classHostItem.png b/docs/module-doc/classHostItem.png
new file mode 100644
index 000000000..99f88aacd
--- /dev/null
+++ b/docs/module-doc/classHostItem.png
Binary files differ
diff --git a/docs/module-doc/classInviteItem-members.html b/docs/module-doc/classInviteItem-members.html
new file mode 100644
index 000000000..a65d27fc8
--- /dev/null
+++ b/docs/module-doc/classInviteItem-members.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InviteItem Member List</h1>This is the complete list of members for <a class="el" href="classInviteItem.html">InviteItem</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m2">data</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a0">HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m1">set_by</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m0">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a1">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classInviteItem.html b/docs/module-doc/classInviteItem.html
new file mode 100644
index 000000000..80336bca9
--- /dev/null
+++ b/docs/module-doc/classInviteItem.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>InviteItem class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InviteItem Class Reference</h1>A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel invites (+I).
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for InviteItem:
+<p><center><img src="classInviteItem.png" usemap="#InviteItem_map" border="0" alt=""></center>
+<map name="InviteItem_map">
+<area href="classHostItem.html" alt="HostItem" shape="rect" coords="0,0,64,24">
+</map>
+<a href="classInviteItem-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel invites (+I).
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00061">61</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classInviteItem.png b/docs/module-doc/classInviteItem.png
new file mode 100644
index 000000000..8ebdd8403
--- /dev/null
+++ b/docs/module-doc/classInviteItem.png
Binary files differ
diff --git a/docs/module-doc/classInvited-members.html b/docs/module-doc/classInvited-members.html
new file mode 100644
index 000000000..bd4003b69
--- /dev/null
+++ b/docs/module-doc/classInvited-members.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Invited Member List</h1>This is the complete list of members for <a class="el" href="classInvited.html">Invited</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classInvited.html#m0">channel</a></td><td><a class="el" href="classInvited.html">Invited</a></td><td></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classInvited.html b/docs/module-doc/classInvited.html
new file mode 100644
index 000000000..c6d945068
--- /dev/null
+++ b/docs/module-doc/classInvited.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Invited class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Invited Class Reference</h1>Holds a channel name to which a user has been invited.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="users_8h-source.html">users.h</a>&gt;</code>
+<p>
+<a href="classInvited-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classInvited.html#m0">channel</a> [CHANMAX]</td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds a channel name to which a user has been invited.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00047">47</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Member Data Documentation</h2>
+<a name="m0" doxytag="Invited::channel"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char Invited::channel[CHANMAX]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00050">50</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00072">userrec::InviteTo()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="users_8h-source.html">users.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classModule-members.html b/docs/module-doc/classModule-members.html
new file mode 100644
index 000000000..3a1f87ed4
--- /dev/null
+++ b/docs/module-doc/classModule-members.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Module Member List</h1>This is the complete list of members for <a class="el" href="classModule.html">Module</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a2">GetVersion</a>()</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a0">Module</a>()</td><td><a class="el" href="classModule.html">Module</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a3">OnUserConnect</a>(userrec *user)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a5">OnUserJoin</a>(userrec *user, chanrec *channel)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a6">OnUserPart</a>(userrec *user, chanrec *channel)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a4">OnUserQuit</a>(userrec *user)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a1">~Module</a>()</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classModule.html b/docs/module-doc/classModule.html
new file mode 100644
index 000000000..519fbeb27
--- /dev/null
+++ b/docs/module-doc/classModule.html
@@ -0,0 +1,315 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Module class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Module Class Reference</h1>Base class for all InspIRCd modules This class is the base class for InspIRCd modules.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classModule-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a0">Module</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default constructor creates a module class.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a1">~Module</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default destructor destroys a module class.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classVersion.html">Version</a>&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a2">GetVersion</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the version number of a Module.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a3">OnUserConnect</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Called when a user connects.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a4">OnUserQuit</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Called when a user quits.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a5">OnUserJoin</a> (<a class="el" href="classuserrec.html">userrec</a> *user, <a class="el" href="classchanrec.html">chanrec</a> *channel)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Called when a user joins a channel.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a6">OnUserPart</a> (<a class="el" href="classuserrec.html">userrec</a> *user, <a class="el" href="classchanrec.html">chanrec</a> *channel)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Called when a user parts a channel.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Base class for all InspIRCd modules This class is the base class for InspIRCd modules.
+<p>
+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 <a class="el" href="classModuleFactory.html">ModuleFactory</a> class (see relevent section) for the plugin to be initialised.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00079">79</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="Module::Module"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> Module::Module </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default constructor creates a module class.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00040">40</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00040 { }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="Module::~Module"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> Module::~Module </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default destructor destroys a module class.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00041">41</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00041 { }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a2" doxytag="Module::GetVersion"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="classVersion.html">Version</a> Module::GetVersion </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the version number of a Module.
+<p>
+The method should return a <a class="el" href="classVersion.html">Version</a> object with its version information assigned via <a class="el" href="classVersion.html#a0">Version::Version</a>
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00046">46</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00046 { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0); }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a3" doxytag="Module::OnUserConnect"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Module::OnUserConnect </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>user</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called when a user connects.
+<p>
+The details of the connecting user are available to you in the parameter userrec *user
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00042">42</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00042 { }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a5" doxytag="Module::OnUserJoin"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Module::OnUserJoin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>user</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>channel</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called when a user joins a channel.
+<p>
+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
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00044">44</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00044 { }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a6" doxytag="Module::OnUserPart"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Module::OnUserPart </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>user</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>channel</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called when a user parts a channel.
+<p>
+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
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00045">45</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00045 { }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a4" doxytag="Module::OnUserQuit"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Module::OnUserQuit </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>user</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called when a user quits.
+<p>
+The details of the exiting user are available to you in the parameter userrec *user
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00043">43</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00043 { }
+</pre></div> </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classModuleFactory-members.html b/docs/module-doc/classModuleFactory-members.html
new file mode 100644
index 000000000..bd8a7618c
--- /dev/null
+++ b/docs/module-doc/classModuleFactory-members.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ModuleFactory Member List</h1>This is the complete list of members for <a class="el" href="classModuleFactory.html">ModuleFactory</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModuleFactory.html#a2">CreateModule</a>()=0</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModuleFactory.html#a0">ModuleFactory</a>()</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModuleFactory.html#a1">~ModuleFactory</a>()</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classModuleFactory.html b/docs/module-doc/classModuleFactory.html
new file mode 100644
index 000000000..12bf82cef
--- /dev/null
+++ b/docs/module-doc/classModuleFactory.html
@@ -0,0 +1,134 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>ModuleFactory class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ModuleFactory Class Reference</h1>Instantiates classes inherited from <a class="el" href="classModule.html">Module</a> This class creates a class inherited from type <a class="el" href="classModule.html">Module</a>, using new.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classModuleFactory-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classModuleFactory.html#a0">ModuleFactory</a> ()</td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classModuleFactory.html#a1">~ModuleFactory</a> ()</td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classModule.html">Module</a> *&nbsp;</td><td valign=bottom><a class="el" href="classModuleFactory.html#a2">CreateModule</a> ()=0</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Creates a new module.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Instantiates classes inherited from <a class="el" href="classModule.html">Module</a> This class creates a class inherited from type <a class="el" href="classModule.html">Module</a>, using new.
+<p>
+This is to allow for modules to create many different variants of <a class="el" href="classModule.html">Module</a>, dependent on architecture, configuration, etc. In most cases, the simple class shown in the example module m_foobar.so will suffice for most modules.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00316">316</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="ModuleFactory::ModuleFactory"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> ModuleFactory::ModuleFactory </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00319">319</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+<p>
+<div class="fragment"><pre>00319 { }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="ModuleFactory::~ModuleFactory"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual ModuleFactory::~ModuleFactory </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00320">320</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+<p>
+<div class="fragment"><pre>00320 { }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a2" doxytag="ModuleFactory::CreateModule"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual <a class="el" href="classModule.html">Module</a>* ModuleFactory::CreateModule </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Creates a new module.
+<p>
+Your inherited class of ModuleFactory must return a pointer to your <a class="el" href="classModule.html">Module</a> class using this method. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classServer-members.html b/docs/module-doc/classServer-members.html
new file mode 100644
index 000000000..63c331106
--- /dev/null
+++ b/docs/module-doc/classServer-members.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Server Member List</h1>This is the complete list of members for <a class="el" href="classServer.html">Server</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a15">ChanMode</a>(userrec *User, chanrec *Chan)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a9">CommonChannels</a>(userrec *u1, userrec *u2)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a3">Debug</a>(string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a14">FindChannel</a>(string channel)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a13">FindNick</a>(string nick)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a18">GetAdmin</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a17">GetNetworkName</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a16">GetServerName</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a12">IsNick</a>(string nick)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a4">Send</a>(int Socket, string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a8">SendChannel</a>(userrec *User, chanrec *Channel, string s, bool IncludeSender)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a10">SendCommon</a>(userrec *User, string text, bool IncludeSender)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a6">SendFrom</a>(int Socket, userrec *User, string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a2">SendOpers</a>(string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a5">SendServ</a>(int Socket, string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a7">SendTo</a>(userrec *Source, userrec *Dest, string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a11">SendWallops</a>(userrec *User, string text)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a0">Server</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a1">~Server</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classServer.html b/docs/module-doc/classServer.html
new file mode 100644
index 000000000..d7a809046
--- /dev/null
+++ b/docs/module-doc/classServer.html
@@ -0,0 +1,913 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Server class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Server Class Reference</h1>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.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classServer-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a0">Server</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default constructor.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a1">~Server</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default destructor.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a2">SendOpers</a> (string s)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends text to all opers.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a3">Debug</a> (string s)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends a debug string.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a4">Send</a> (int Socket, string s)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends a line of text down a TCP/IP socket.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a5">SendServ</a> (int Socket, string s)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends text from the server to a socket.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a6">SendFrom</a> (int Socket, <a class="el" href="classuserrec.html">userrec</a> *User, string s)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends text from a user to a socket.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a7">SendTo</a> (<a class="el" href="classuserrec.html">userrec</a> *Source, <a class="el" href="classuserrec.html">userrec</a> *Dest, string s)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends text from a user to another user.</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a8">SendChannel</a> (<a class="el" href="classuserrec.html">userrec</a> *User, <a class="el" href="classchanrec.html">chanrec</a> *Channel, string s, bool IncludeSender)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends text from a user to a channel (mulicast).</em> <a href="#a8"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a9">CommonChannels</a> (<a class="el" href="classuserrec.html">userrec</a> *u1, <a class="el" href="classuserrec.html">userrec</a> *u2)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns true if two users share a common channel.</em> <a href="#a9"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a10">SendCommon</a> (<a class="el" href="classuserrec.html">userrec</a> *User, string text, bool IncludeSender)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends text from a user to one or more channels (mulicast).</em> <a href="#a10"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a11">SendWallops</a> (<a class="el" href="classuserrec.html">userrec</a> *User, string text)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends a WALLOPS message.</em> <a href="#a11"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a12">IsNick</a> (string nick)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns true if a nick is valid.</em> <a href="#a12"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a13">FindNick</a> (string nick)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Attempts to look up a nick and return a pointer to it.</em> <a href="#a13"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a14">FindChannel</a> (string channel)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Attempts to look up a channel and return a pointer to it.</em> <a href="#a14"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual string&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a15">ChanMode</a> (<a class="el" href="classuserrec.html">userrec</a> *User, <a class="el" href="classchanrec.html">chanrec</a> *Chan)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Attempts to look up a user's privilages on a channel.</em> <a href="#a15"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual string&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a16">GetServerName</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the server name of the server where the module is loaded.</em> <a href="#a16"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual string&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a17">GetNetworkName</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the network name, global to all linked servers.</em> <a href="#a17"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classAdmin.html">Admin</a>&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a18">GetAdmin</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the information of the server as returned by the /ADMIN command.</em> <a href="#a18"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+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.
+<p>
+All modules should instantiate at least one copy of this class, and use its member functions to perform their tasks.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00121">121</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="Server::Server"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> Server::Server </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default constructor.
+<p>
+Creates a Server object.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00052">52</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00053 {
+00054 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="Server::~Server"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> Server::~Server </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default destructor.
+<p>
+Destroys a Server object.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00056">56</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00057 {
+00058 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a15" doxytag="Server::ChanMode"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string Server::ChanMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>User</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Chan</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Attempts to look up a user's privilages on a channel.
+<p>
+This function will return a string containing either @, , +, or an empty string, representing the user's privilages upon the channel you specify.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00139">139</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00140 {
+00141 string mode = cmode(User,Chan);
+00142 <span class="keywordflow">return</span> mode;
+00143 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a9" doxytag="Server::CommonChannels"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool Server::CommonChannels </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>u1</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>u2</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if two users share a common channel.
+<p>
+This method is used internally by the NICK and QUIT commands, and the <a class="el" href="classServer.html#a10">Server::SendCommon</a> method.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00102">102</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00103 {
+00104 <span class="keywordflow">return</span> (common_channels(u1,u2) != 0);
+00105 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a3" doxytag="Server::Debug"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::Debug </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>s</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends a debug string.
+<p>
+This method writes a line of text to the debug log. If debugging is disabled in the configuration, this command has no effect.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00065">65</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00066 {
+00067 debug(<span class="stringliteral">"%s"</span>,s.c_str());
+00068 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a14" doxytag="Server::FindChannel"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="classchanrec.html">chanrec</a> * Server::FindChannel </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>channel</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Attempts to look up a channel and return a pointer to it.
+<p>
+This function will return NULL if the channel does not exist.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00134">134</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00135 {
+00136 <span class="keywordflow">return</span> FindChan(channel.c_str());
+00137 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a13" doxytag="Server::FindNick"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="classuserrec.html">userrec</a> * Server::FindNick </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>nick</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Attempts to look up a nick and return a pointer to it.
+<p>
+This function will return NULL if the nick does not exist.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00129">129</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00130 {
+00131 <span class="keywordflow">return</span> Find(nick);
+00132 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a18" doxytag="Server::GetAdmin"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="classAdmin.html">Admin</a> Server::GetAdmin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the information of the server as returned by the /ADMIN command.
+<p>
+See the <a class="el" href="classAdmin.html">Admin</a> class for further information of the return value. The members <a class="el" href="classAdmin.html#m2">Admin::Nick</a>, <a class="el" href="classAdmin.html#m1">Admin::Email</a> and <a class="el" href="classAdmin.html#m0">Admin::Name</a> contain the information for the server where the module is loaded.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00155">155</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00156 {
+00157 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+00158 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a17" doxytag="Server::GetNetworkName"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string Server::GetNetworkName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the network name, global to all linked servers.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00150">150</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00151 {
+00152 <span class="keywordflow">return</span> getnetworkname();
+00153 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a16" doxytag="Server::GetServerName"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string Server::GetServerName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the server name of the server where the module is loaded.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00145">145</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00146 {
+00147 <span class="keywordflow">return</span> getservername();
+00148 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a12" doxytag="Server::IsNick"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool Server::IsNick </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>nick</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if a nick is valid.
+<p>
+Nicks for unregistered connections will return false.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00124">124</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00125 {
+00126 <span class="keywordflow">return</span> (isnick(nick.c_str()) != 0);
+00127 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a4" doxytag="Server::Send"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::Send </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Socket</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends a line of text down a TCP/IP socket.
+<p>
+This method writes a line of text to an established socket, cutting it to 510 characters plus a carriage return and linefeed if required.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00070">70</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00071 {
+00072 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00073 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a8" doxytag="Server::SendChannel"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendChannel </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>User</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Channel</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>IncludeSender</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends text from a user to a channel (mulicast).
+<p>
+This method writes a line of text to a channel, with the given user's nick/ident /host combination prepended, as used in PRIVMSG etc commands (see RFC 1459). If the IncludeSender flag is set, then the text is also sent back to the user from which it originated, as seen in MODE (see RFC 1459).
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00090">90</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00091 {
+00092 <span class="keywordflow">if</span> (IncludeSender)
+00093 {
+00094 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00095 }
+00096 <span class="keywordflow">else</span>
+00097 {
+00098 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00099 }
+00100 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a10" doxytag="Server::SendCommon"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendCommon </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>User</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>text</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>IncludeSender</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends text from a user to one or more channels (mulicast).
+<p>
+This method writes a line of text to all users which share a common channel with a given user, with the user's nick/ident/host combination prepended, as used in PRIVMSG etc commands (see RFC 1459). If the IncludeSender flag is set, then the text is also sent back to the user from which it originated, as seen in NICK (see RFC 1459). Otherwise, it is only sent to the other recipients, as seen in QUIT.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00107">107</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00108 {
+00109 <span class="keywordflow">if</span> (IncludeSender)
+00110 {
+00111 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00112 }
+00113 <span class="keywordflow">else</span>
+00114 {
+00115 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00116 }
+00117 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a6" doxytag="Server::SendFrom"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendFrom </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Socket</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>User</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends text from a user to a socket.
+<p>
+This method writes a line of text to an established socket, with the given user's nick/ident /host combination prepended, as used in PRIVSG etc commands (see RFC 1459)
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00080">80</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00081 {
+00082 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00083 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a2" doxytag="Server::SendOpers"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendOpers </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>s</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends text to all opers.
+<p>
+This method sends a server notice to all opers with the usermode +s.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00060">60</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00061 {
+00062 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
+00063 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a5" doxytag="Server::SendServ"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendServ </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Socket</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends text from the server to a socket.
+<p>
+This method writes a line of text to an established socket, with the servername prepended as used by numerics (see RFC 1459)
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00075">75</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00076 {
+00077 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00078 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a7" doxytag="Server::SendTo"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendTo </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Dest</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends text from a user to another user.
+<p>
+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)
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00085">85</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00086 {
+00087 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+00088 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a11" doxytag="Server::SendWallops"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendWallops </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>User</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>text</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends a WALLOPS message.
+<p>
+This method writes a WALLOPS message to all users with the +w flag, originating from the specified user.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00119">119</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00120 {
+00121 WriteWallOps(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00122 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classVersion-members.html b/docs/module-doc/classVersion-members.html
new file mode 100644
index 000000000..438f2645f
--- /dev/null
+++ b/docs/module-doc/classVersion-members.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Version Member List</h1>This is the complete list of members for <a class="el" href="classVersion.html">Version</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classVersion.html#m3">Build</a></td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classVersion.html#m0">Major</a></td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classVersion.html#m1">Minor</a></td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classVersion.html#m2">Revision</a></td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classVersion.html#a0">Version</a>(int major, int minor, int revision, int build)</td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classVersion.html b/docs/module-doc/classVersion.html
new file mode 100644
index 000000000..3c3e53d8c
--- /dev/null
+++ b/docs/module-doc/classVersion.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Version class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Version Class Reference</h1>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 href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classVersion-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classVersion.html#a0">Version</a> (int major, int minor, int revision, int build)</td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>const int&nbsp;</td><td valign=bottom><a class="el" href="classVersion.html#m0">Major</a></td></tr>
+<tr><td nowrap align=right valign=top>const int&nbsp;</td><td valign=bottom><a class="el" href="classVersion.html#m1">Minor</a></td></tr>
+<tr><td nowrap align=right valign=top>const int&nbsp;</td><td valign=bottom><a class="el" href="classVersion.html#m2">Revision</a></td></tr>
+<tr><td nowrap align=right valign=top>const int&nbsp;</td><td valign=bottom><a class="el" href="classVersion.html#m3">Build</a></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module.
+<p>
+A class of type Version is returned by the GetVersion method of the <a class="el" href="classModule.html">Module</a> class.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00054">54</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="Version::Version"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> Version::Version </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>major</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>minor</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>revision</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>build</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00029">29</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00029 : <a class="code" href="classVersion.html#m0">Major</a>(major), <a class="code" href="classVersion.html#m1">Minor</a>(minor), <a class="code" href="classVersion.html#m2">Revision</a>(revision), <a class="code" href="classVersion.html#m3">Build</a>(build) { };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="m3" doxytag="Version::Build"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const int Version::Build
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00057">57</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="Version::Major"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const int Version::Major
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00057">57</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="m1" doxytag="Version::Minor"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const int Version::Minor
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00057">57</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="m2" doxytag="Version::Revision"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const int Version::Revision
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00057">57</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classchanrec-members.html b/docs/module-doc/classchanrec-members.html
new file mode 100644
index 000000000..7d34a88a0
--- /dev/null
+++ b/docs/module-doc/classchanrec-members.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>chanrec Member List</h1>This is the complete list of members for <a class="el" href="classchanrec.html">chanrec</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m14">bans</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m13">c_private</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#a0">chanrec</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m3">created</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m1">custom_modes</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m10">inviteonly</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m7">key</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m6">limit</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m11">moderated</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m0">name</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m9">noexternal</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m12">secret</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m5">setby</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m2">topic</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m8">topiclock</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m4">topicset</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#a1">~chanrec</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classchanrec.html b/docs/module-doc/classchanrec.html
new file mode 100644
index 000000000..bf8299560
--- /dev/null
+++ b/docs/module-doc/classchanrec.html
@@ -0,0 +1,534 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>chanrec class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>chanrec Class Reference</h1>Holds all relevent information for a channel.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
+<p>
+<a href="classchanrec-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a0">chanrec</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Creates a channel record and initialises it with default values.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a1">~chanrec</a> ()</td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m0">name</a> [CHANMAX]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The channels name.</em> <a href="#m0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m1">custom_modes</a> [MAXMODES]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Custom modes for the channel.</em> <a href="#m1"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m2">topic</a> [MAXBUF]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Channel topic.</em> <a href="#m2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m3">created</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Creation time.</em> <a href="#m3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m4">topicset</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Time topic was set.</em> <a href="#m4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m5">setby</a> [NICKMAX]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The last user to set the topic.</em> <a href="#m5"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m6">limit</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Contains the channel user limit.</em> <a href="#m6"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m7">key</a> [32]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Contains the channel key.</em> <a href="#m7"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m8">topiclock</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +t is set.</em> <a href="#m8"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m9">noexternal</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +n is set.</em> <a href="#m9"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m10">inviteonly</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +i is set.</em> <a href="#m10"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m11">moderated</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +m is set.</em> <a href="#m11"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m12">secret</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +s is set.</em> <a href="#m12"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m13">c_private</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +p is set.</em> <a href="#m13"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="channels_8h.html#a5">BanList</a>&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m14">bans</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The list of all bans set on the channel.</em> <a href="#m14"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds all relevent information for a channel.
+<p>
+This class represents a channel, and contains its name, modes, time created, topic, topic set time, etc, and an instance of the BanList type.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00082">82</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="chanrec::chanrec"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> chanrec::chanrec </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Creates a channel record and initialises it with default values.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00150">150</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+<div class="fragment"><pre>00151 {
+00152 strcpy(name,<span class="stringliteral">""</span>);
+00153 strcpy(custom_modes,<span class="stringliteral">""</span>);
+00154 strcpy(topic,<span class="stringliteral">""</span>);
+00155 strcpy(setby,<span class="stringliteral">""</span>);
+00156 strcpy(key,<span class="stringliteral">""</span>);
+00157 <a class="code" href="classchanrec.html#m3">created</a> = <a class="code" href="classchanrec.html#m4">topicset</a> = <a class="code" href="classchanrec.html#m6">limit</a> = 0;
+00158 <a class="code" href="classchanrec.html#m8">topiclock</a> = <a class="code" href="classchanrec.html#m9">noexternal</a> = <a class="code" href="classchanrec.html#m10">inviteonly</a> = <a class="code" href="classchanrec.html#m11">moderated</a> = <a class="code" href="classchanrec.html#m12">secret</a> = <a class="code" href="classchanrec.html#m13">c_private</a> = <span class="keyword">false</span>;
+00159 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="chanrec::~chanrec"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual chanrec::~chanrec </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00161">161</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+<div class="fragment"><pre>00161 { <span class="comment">/* stub */</span> }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="m14" doxytag="chanrec::bans"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="channels_8h.html#a5">BanList</a> chanrec::bans
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The list of all bans set on the channel.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00146">146</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m13" doxytag="chanrec::c_private"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> short int chanrec::c_private
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Nonzero if the mode +p is set.
+<p>
+This value cannot be set at the same time as <a class="el" href="classchanrec.html#m12">chanrec::secret</a>
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00142">142</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m3" doxytag="chanrec::created"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t chanrec::created
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Creation time.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00098">98</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m1" doxytag="chanrec::custom_modes"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char chanrec::custom_modes[MAXMODES]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Custom modes for the channel.
+<p>
+Plugins may use this field in any way they see fit.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00091">91</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m10" doxytag="chanrec::inviteonly"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> short int chanrec::inviteonly
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Nonzero if the mode +i is set.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00128">128</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m7" doxytag="chanrec::key"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char chanrec::key[32]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Contains the channel key.
+<p>
+If this value is an empty string, there is no channel key in place.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00116">116</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m6" doxytag="chanrec::limit"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long chanrec::limit
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Contains the channel user limit.
+<p>
+If this value is zero, there is no limit in place.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00111">111</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m11" doxytag="chanrec::moderated"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> short int chanrec::moderated
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Nonzero if the mode +m is set.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00132">132</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="chanrec::name"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char chanrec::name[CHANMAX]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The channels name.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00087">87</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m9" doxytag="chanrec::noexternal"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> short int chanrec::noexternal
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Nonzero if the mode +n is set.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00124">124</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m12" doxytag="chanrec::secret"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> short int chanrec::secret
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Nonzero if the mode +s is set.
+<p>
+This value cannot be set at the same time as <a class="el" href="classchanrec.html#m13">chanrec::c_private</a>
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00137">137</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m5" doxytag="chanrec::setby"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char chanrec::setby[NICKMAX]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The last user to set the topic.
+<p>
+If this member is an empty string, no topic was ever set.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00106">106</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m2" doxytag="chanrec::topic"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char chanrec::topic[MAXBUF]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Channel topic.
+<p>
+If this is an empty string, no channel topic is set.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00095">95</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m8" doxytag="chanrec::topiclock"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> short int chanrec::topiclock
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Nonzero if the mode +t is set.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00120">120</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m4" doxytag="chanrec::topicset"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t chanrec::topicset
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Time topic was set.
+<p>
+If no topic was ever set, this will be equal to <a class="el" href="classchanrec.html#m3">chanrec::created</a>
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00102">102</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classes.html b/docs/module-doc/classes.html
new file mode 100644
index 000000000..d305624f7
--- /dev/null
+++ b/docs/module-doc/classes.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Alphabetical index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd Compound Index</h1><table align=center width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;A&nbsp;&nbsp;</td></tr></table>
+</td><td><a class="el" href="classConfigReader.html">ConfigReader</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;H&nbsp;&nbsp;</td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;M&nbsp;&nbsp;</td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;U&nbsp;&nbsp;</td></tr></table>
+</td></tr><tr><td><a class="el" href="classAdmin.html">Admin</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classConnectClass.html">ConnectClass</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classHostItem.html">HostItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classModule.html">Module</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classucrec.html">ucrec</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;B&nbsp;&nbsp;</td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;E&nbsp;&nbsp;</td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</td></tr></table>
+</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classuserrec.html">userrec</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classBanItem.html">BanItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classExemptItem.html">ExemptItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInvited.html">Invited</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;V&nbsp;&nbsp;</td></tr></table>
+</td></tr><tr><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;F&nbsp;&nbsp;</td></tr></table>
+</td><td><a class="el" href="classInviteItem.html">InviteItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classServer.html">Server</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classVersion.html">Version</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classchanrec.html">chanrec</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classFileReader.html">FileReader</a>&nbsp;&nbsp;&nbsp;</td></tr></table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classucrec-members.html b/docs/module-doc/classucrec-members.html
new file mode 100644
index 000000000..43e5c1cca
--- /dev/null
+++ b/docs/module-doc/classucrec-members.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ucrec Member List</h1>This is the complete list of members for <a class="el" href="classucrec.html">ucrec</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classucrec.html#m1">channel</a></td><td><a class="el" href="classucrec.html">ucrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classucrec.html#m0">uc_modes</a></td><td><a class="el" href="classucrec.html">ucrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classucrec.html#a0">ucrec</a>()</td><td><a class="el" href="classucrec.html">ucrec</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classucrec.html#a1">~ucrec</a>()</td><td><a class="el" href="classucrec.html">ucrec</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classucrec.html b/docs/module-doc/classucrec.html
new file mode 100644
index 000000000..c95b8a3b6
--- /dev/null
+++ b/docs/module-doc/classucrec.html
@@ -0,0 +1,161 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>ucrec class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ucrec Class Reference</h1>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.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
+<p>
+<a href="classucrec-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classucrec.html#a0">ucrec</a> ()</td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classucrec.html#a1">~ucrec</a> ()</td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classucrec.html#m0">uc_modes</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Contains a bitmask of the UCMODE_OP ...</em> <a href="#m0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td><td valign=bottom><a class="el" href="classucrec.html#m1">channel</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Points to the channel record where the given modes apply.</em> <a href="#m1"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+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.
+<p>
+The uc_modes member holds a bitmask of which privilages the user has on the channel, such as op, voice, etc.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00178">178</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="ucrec::ucrec"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> ucrec::ucrec </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00191">191</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+<div class="fragment"><pre>00191 { <span class="comment">/* stub */</span> }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="ucrec::~ucrec"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual ucrec::~ucrec </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00192">192</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+<div class="fragment"><pre>00192 { <span class="comment">/* stub */</span> }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="m1" doxytag="ucrec::channel"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="classchanrec.html">chanrec</a>* ucrec::channel
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Points to the channel record where the given modes apply.
+<p>
+If the record is not in use, this value will be NULL.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00189">189</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec::userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="ucrec::uc_modes"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long ucrec::uc_modes
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Contains a bitmask of the UCMODE_OP ...
+<p>
+UCMODE_FOUNDER values. If this value is zero, the user has no privilages upon the channel.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00184">184</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classuserrec-members.html b/docs/module-doc/classuserrec-members.html
new file mode 100644
index 000000000..78781c9e8
--- /dev/null
+++ b/docs/module-doc/classuserrec-members.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>userrec Member List</h1>This is the complete list of members for <a class="el" href="classuserrec.html">userrec</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m16">awaymsg</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m18">bytes_in</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m19">bytes_out</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m14">chans</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m20">cmds_in</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m21">cmds_out</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m4">dhost</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m6">fd</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m5">fullname</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a2">GetFullHost</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a3">GetFullRealHost</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m23">haspassed</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m3">host</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m2">ident</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m11">idle_lastmsg</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m8">inbuf</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#o0">invites</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [private]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a5">InviteTo</a>(char *channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m1">ip</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a4">IsInvited</a>(char *channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m9">lastping</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m7">modes</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m0">nick</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m12">nping</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m17">port</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m13">registered</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a6">RemoveInvite</a>(char *channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m22">result</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m15">server</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m10">signon</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a0">userrec</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a1">~userrec</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classuserrec.html b/docs/module-doc/classuserrec.html
new file mode 100644
index 000000000..d4be7912e
--- /dev/null
+++ b/docs/module-doc/classuserrec.html
@@ -0,0 +1,1085 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>userrec class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>userrec Class Reference</h1>Holds all information about a user This class stores all information about a user connected to the irc server.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="users_8h-source.html">users.h</a>&gt;</code>
+<p>
+<a href="classuserrec-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a0">userrec</a> ()</td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a1">~userrec</a> ()</td></tr>
+<tr><td nowrap align=right valign=top>virtual char *&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a2">GetFullHost</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>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.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual char *&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a3">GetFullRealHost</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>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.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a4">IsInvited</a> (char *channel)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns true if a user is invited to a channel.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a5">InviteTo</a> (char *channel)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Adds a channel to a users invite list (invites them to a channel).</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a6">RemoveInvite</a> (char *channel)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Removes a channel from a users invite list.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m0">nick</a> [NICKMAX]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users nickname.</em> <a href="#m0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m1">ip</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users ip address in network order.</em> <a href="#m1"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m2">ident</a> [64]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users ident reply.</em> <a href="#m2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m3">host</a> [256]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users hostname, or ip address in string form.</em> <a href="#m3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m4">dhost</a> [256]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The host displayed to non-opers (used for cloaking etc).</em> <a href="#m4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m5">fullname</a> [128]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users full name.</em> <a href="#m5"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m6">fd</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users file descriptor.</em> <a href="#m6"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m7">modes</a> [32]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The user's mode string.</em> <a href="#m7"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m8">inbuf</a> [MAXBUF]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users input buffer.</em> <a href="#m8"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m9">lastping</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The last time the user was pinged by the core.</em> <a href="#m9"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m10">signon</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users signon time.</em> <a href="#m10"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m11">idle_lastmsg</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The time the user last sent a message.</em> <a href="#m11"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m12">nping</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>True if the user replied to their last ping.</em> <a href="#m12"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m13">registered</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Bit 1 is set if the user sent a NICK command, bit 2 is set if the user sent a USER command.</em> <a href="#m13"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="classucrec.html">ucrec</a>&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m14">chans</a> [MAXCHANS]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>A list of the channels the user is currently on.</em> <a href="#m14"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m15">server</a> [256]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The server the user is connected to.</em> <a href="#m15"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m16">awaymsg</a> [512]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The user's away message.</em> <a href="#m16"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m17">port</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The port that the user connected to.</em> <a href="#m17"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m18">bytes_in</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Stores the number of incoming bytes from the connection.</em> <a href="#m18"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m19">bytes_out</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Stores the number of outgoing bytes to the connection.</em> <a href="#m19"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m20">cmds_in</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Stores the number of incoming commands from the connection.</em> <a href="#m20"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m21">cmds_out</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Stores the number of outgoing commands to the connection.</em> <a href="#m21"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m22">result</a> [256]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Stores the result of the last GetFullHost or GetRealHost call.</em> <a href="#m22"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m23">haspassed</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>True if a correct password has been given using PASS command.</em> <a href="#m23"></a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="users_8h.html#a6">InvitedList</a>&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#o0">invites</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>A list of channels the user has a pending invite to.</em> <a href="#o0"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds all information about a user This class stores all information about a user connected to the irc server.
+<p>
+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.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00080">80</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="userrec::userrec"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> userrec::userrec </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00023">23</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00183">bytes_in</a>, <a class="el" href="users_8h-source.html#l00188">bytes_out</a>, <a class="el" href="channels_8h-source.html#l00189">ucrec::channel</a>, <a class="el" href="users_8h-source.html#l00165">chans</a>, <a class="el" href="users_8h-source.html#l00193">cmds_in</a>, <a class="el" href="users_8h-source.html#l00198">cmds_out</a>, <a class="el" href="users_8h-source.html#l00120">fd</a>, <a class="el" href="users_8h-source.html#l00209">haspassed</a>, <a class="el" href="users_8h-source.html#l00147">idle_lastmsg</a>, <a class="el" href="users_8h-source.html#l00086">invites</a>, <a class="el" href="users_8h-source.html#l00097">ip</a>, <a class="el" href="users_8h-source.html#l00138">lastping</a>, <a class="el" href="users_8h-source.html#l00153">nping</a>, <a class="el" href="users_8h-source.html#l00178">port</a>, <a class="el" href="users_8h-source.html#l00159">registered</a>, and <a class="el" href="users_8h-source.html#l00142">signon</a>.
+<p>
+<div class="fragment"><pre>00024 {
+00025 <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
+00026 strcpy(nick,<span class="stringliteral">""</span>);
+00027 <a class="code" href="classuserrec.html#m1">ip</a> = 0;
+00028 strcpy(ident,<span class="stringliteral">""</span>);
+00029 strcpy(host,<span class="stringliteral">""</span>);
+00030 strcpy(dhost,<span class="stringliteral">""</span>);
+00031 strcpy(fullname,<span class="stringliteral">""</span>);
+00032 strcpy(modes,<span class="stringliteral">""</span>);
+00033 strcpy(inbuf,<span class="stringliteral">""</span>);
+00034 strcpy(server,<span class="stringliteral">""</span>);
+00035 strcpy(awaymsg,<span class="stringliteral">""</span>);
+00036 <a class="code" href="classuserrec.html#m6">fd</a> = <a class="code" href="classuserrec.html#m9">lastping</a> = <a class="code" href="classuserrec.html#m10">signon</a> = <a class="code" href="classuserrec.html#m11">idle_lastmsg</a> = <a class="code" href="classuserrec.html#m12">nping</a> = <a class="code" href="classuserrec.html#m13">registered</a> = 0;
+00037 <a class="code" href="classuserrec.html#m17">port</a> = <a class="code" href="classuserrec.html#m18">bytes_in</a> = <a class="code" href="classuserrec.html#m19">bytes_out</a> = <a class="code" href="classuserrec.html#m20">cmds_in</a> = <a class="code" href="classuserrec.html#m21">cmds_out</a> = 0;
+00038 <a class="code" href="classuserrec.html#m23">haspassed</a> = <span class="keyword">false</span>;
+00039 strcpy(result,<span class="stringliteral">""</span>);
+00040 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; MAXCHANS; i++)
+00041 {
+00042 <a class="code" href="classuserrec.html#m14">chans</a>[i].<a class="code" href="classucrec.html#m1">channel</a> = NULL;
+00043 }
+00044 <a class="code" href="classuserrec.html#o0">invites</a>.clear();
+00045 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="userrec::~userrec"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual userrec::~userrec </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00213">213</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+<div class="fragment"><pre>00213 { }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a2" doxytag="userrec::GetFullHost"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char * userrec::GetFullHost </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+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.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00048">48</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00203">result</a>.
+<p>
+<div class="fragment"><pre>00049 {
+00050 sprintf(result,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,dhost);
+00051 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#m22">result</a>;
+00052 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a3" doxytag="userrec::GetFullRealHost"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char * userrec::GetFullRealHost </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+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.
+<p>
+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.
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00055">55</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00203">result</a>.
+<p>
+<div class="fragment"><pre>00056 {
+00057 sprintf(result,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,host);
+00058 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#m22">result</a>;
+00059 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a5" doxytag="userrec::InviteTo"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void userrec::InviteTo </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>channel</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Adds a channel to a users invite list (invites them to a channel).
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00072">72</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00050">Invited::channel</a>, and <a class="el" href="users_8h-source.html#l00086">invites</a>.
+<p>
+<div class="fragment"><pre>00073 {
+00074 <a class="code" href="classInvited.html">Invited</a> i;
+00075 strcpy(i.<a class="code" href="classInvited.html#m0">channel</a>,channel);
+00076 <a class="code" href="classuserrec.html#o0">invites</a>.push_back(i);
+00077 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a4" doxytag="userrec::IsInvited"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool userrec::IsInvited </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>channel</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if a user is invited to a channel.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00061">61</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00086">invites</a>.
+<p>
+<div class="fragment"><pre>00062 {
+00063 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#o0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#o0">invites</a>.end(); i++)
+00064 {
+00065 <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
+00066 {
+00067 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00068 }
+00069 }
+00070 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a6" doxytag="userrec::RemoveInvite"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void userrec::RemoveInvite </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>channel</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Removes a channel from a users invite list.
+<p>
+This member function is called on successfully joining an invite only channel to which the user has previously been invited, to clear the invitation.
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00079">79</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00086">invites</a>.
+<p>
+<div class="fragment"><pre>00080 {
+00081 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#o0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#o0">invites</a>.end(); i++)
+00082 {
+00083 <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
+00084 {
+00085 <a class="code" href="classuserrec.html#o0">invites</a>.erase(i);
+00086 <span class="keywordflow">return</span>;
+00087 }
+00088 }
+00089 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="m16" doxytag="userrec::awaymsg"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::awaymsg[512]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The user's away message.
+<p>
+If this string is empty, the user is not marked as away.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00174">174</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m18" doxytag="userrec::bytes_in"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long userrec::bytes_in
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stores the number of incoming bytes from the connection.
+<p>
+Used by /STATS
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00183">183</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m19" doxytag="userrec::bytes_out"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long userrec::bytes_out
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stores the number of outgoing bytes to the connection.
+<p>
+Used by /STATS
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00188">188</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m14" doxytag="userrec::chans"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="classucrec.html">ucrec</a> userrec::chans[MAXCHANS]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+A list of the channels the user is currently on.
+<p>
+If any of these values are NULL, the record is not in use and may be associated with a channel by the JOIN command. see RFC 1459.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00165">165</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m20" doxytag="userrec::cmds_in"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long userrec::cmds_in
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stores the number of incoming commands from the connection.
+<p>
+Used by /STATS
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00193">193</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m21" doxytag="userrec::cmds_out"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long userrec::cmds_out
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stores the number of outgoing commands to the connection.
+<p>
+Used by /STATS
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00198">198</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m4" doxytag="userrec::dhost"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::dhost[256]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The host displayed to non-opers (used for cloaking etc).
+<p>
+This usually matches the value of <a class="el" href="classuserrec.html#m3">userrec::host</a>.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00110">110</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m6" doxytag="userrec::fd"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> int userrec::fd
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users file descriptor.
+<p>
+If this is zero, the socket has been closed and the core has not yet realised and removed the record from memory.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00120">120</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m5" doxytag="userrec::fullname"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::fullname[128]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users full name.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00114">114</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m23" doxytag="userrec::haspassed"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool userrec::haspassed
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+True if a correct password has been given using PASS command.
+<p>
+If the user is a member of a connection class that does not require a password, the value stored here is of no use.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00209">209</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m3" doxytag="userrec::host"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::host[256]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users hostname, or ip address in string form.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00105">105</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m2" doxytag="userrec::ident"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::ident[64]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users ident reply.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00101">101</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m11" doxytag="userrec::idle_lastmsg"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t userrec::idle_lastmsg
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The time the user last sent a message.
+<p>
+See also <a class="el" href="classuserrec.html#m9">userrec::lastping</a> and <a class="el" href="classuserrec.html#m10">userrec::signon</a>
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00147">147</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m8" doxytag="userrec::inbuf"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::inbuf[MAXBUF]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users input buffer.
+<p>
+Used by the C recv() function.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00131">131</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="o0" doxytag="userrec::invites"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="users_8h.html#a6">InvitedList</a> userrec::invites<code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+A list of channels the user has a pending invite to.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00086">86</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00072">InviteTo()</a>, <a class="el" href="users_8cpp-source.html#l00061">IsInvited()</a>, <a class="el" href="users_8cpp-source.html#l00079">RemoveInvite()</a>, and <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m1" doxytag="userrec::ip"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> unsigned long userrec::ip
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users ip address in network order.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00097">97</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m9" doxytag="userrec::lastping"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t userrec::lastping
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The last time the user was pinged by the core.
+<p>
+When this value is more than 120 seconds difference from 'time(NULL)', a ping is sent to the client. If the user has an outstanding PING request the next time this event occurs after 4 total minutes, they are disconnected.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00138">138</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m7" doxytag="userrec::modes"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::modes[32]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The user's mode string.
+<p>
+This may contain any of the following RFC characters: o, w, s, i Your module may define other mode characters as it sees fit.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00126">126</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="userrec::nick"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::nick[NICKMAX]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users nickname.
+<p>
+An invalid nickname indicates an unregistered connection prior to the NICK command.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00093">93</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m12" doxytag="userrec::nping"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t userrec::nping
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+True if the user replied to their last ping.
+<p>
+If this is true, the user can be sent another ping at the specified time, otherwise they will be discnnected. See also <a class="el" href="classuserrec.html#m9">userrec::lastping</a>
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00153">153</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m17" doxytag="userrec::port"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> int userrec::port
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The port that the user connected to.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00178">178</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m13" doxytag="userrec::registered"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> int userrec::registered
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Bit 1 is set if the user sent a NICK command, bit 2 is set if the user sent a USER command.
+<p>
+If both bits are set then the connection is awaiting MOTD. Sending of MOTD sets bit 3, and makes the value of <a class="el" href="classuserrec.html#m13">userrec::registered</a> == 7, showing a fully established client session.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00159">159</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m22" doxytag="userrec::result"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::result[256]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stores the result of the last GetFullHost or GetRealHost call.
+<p>
+You may use this to increase the speed of use of this class.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00203">203</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00048">GetFullHost()</a>, and <a class="el" href="users_8cpp-source.html#l00055">GetFullRealHost()</a>. </td>
+ </tr>
+</table>
+<a name="m15" doxytag="userrec::server"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::server[256]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The server the user is connected to.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00169">169</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m10" doxytag="userrec::signon"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t userrec::signon
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users signon time.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00142">142</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="users_8h-source.html">users.h</a><li><a class="el" href="users_8cpp-source.html">users.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/doxygen.css b/docs/module-doc/doxygen.css
new file mode 100644
index 000000000..8cb8b2e5b
--- /dev/null
+++ b/docs/module-doc/doxygen.css
@@ -0,0 +1,49 @@
+H1 { text-align: center; }
+CAPTION { font-weight: bold }
+A.qindex {}
+A.qindexRef {}
+A.el { text-decoration: none; font-weight: bold }
+A.elRef { font-weight: bold }
+A.code { text-decoration: none; font-weight: normal; color: #4444ee }
+A.codeRef { font-weight: normal; color: #4444ee }
+A:hover { text-decoration: none; background-color: #f2f2ff }
+DL.el { margin-left: -1cm }
+DIV.fragment { width: 100%; border: none; background-color: #eeeeee }
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+TD.md { background-color: #f2f2ff; font-weight: bold; }
+TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; }
+TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; }
+DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold }
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller }
+BODY { background: white; color: black }
+TD.indexkey {
+ background-color: #eeeeff;
+ font-weight: bold;
+ padding-right : 10px;
+ padding-top : 2px;
+ padding-left : 10px;
+ padding-bottom : 2px;
+ margin-left : 0px;
+ margin-right : 0px;
+ margin-top : 2px;
+ margin-bottom : 2px
+}
+TD.indexvalue {
+ background-color: #eeeeff;
+ font-style: italic;
+ padding-right : 10px;
+ padding-top : 2px;
+ padding-left : 10px;
+ padding-bottom : 2px;
+ margin-left : 0px;
+ margin-right : 0px;
+ margin-top : 2px;
+ margin-bottom : 2px
+}
+span.keyword { color: #008000 }
+span.keywordtype { color: #604020 }
+span.keywordflow { color: #e08000 }
+span.comment { color: #800000 }
+span.preprocessor { color: #806020 }
+span.stringliteral { color: #002080 }
+span.charliteral { color: #008080 }
diff --git a/docs/module-doc/doxygen.png b/docs/module-doc/doxygen.png
new file mode 100644
index 000000000..5bb475e23
--- /dev/null
+++ b/docs/module-doc/doxygen.png
Binary files differ
diff --git a/docs/module-doc/files.html b/docs/module-doc/files.html
new file mode 100644
index 000000000..ba6de9b92
--- /dev/null
+++ b/docs/module-doc/files.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>File Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd File List</h1>Here is a list of all files with brief descriptions:<table>
+ <tr><td class="indexkey"><a class="el" href="channels_8h.html">channels.h</a> <a href="channels_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="modules_8cpp.html">modules.cpp</a> <a href="modules_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="modules_8h.html">modules.h</a> <a href="modules_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="users_8cpp.html">users.cpp</a> <a href="users_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="users_8h.html">users.h</a> <a href="users_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:46 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/ftv2blank.png b/docs/module-doc/ftv2blank.png
new file mode 100644
index 000000000..3f626d64f
--- /dev/null
+++ b/docs/module-doc/ftv2blank.png
Binary files differ
diff --git a/docs/module-doc/ftv2doc.png b/docs/module-doc/ftv2doc.png
new file mode 100644
index 000000000..2d16532a6
--- /dev/null
+++ b/docs/module-doc/ftv2doc.png
Binary files differ
diff --git a/docs/module-doc/ftv2folderclosed.png b/docs/module-doc/ftv2folderclosed.png
new file mode 100644
index 000000000..fc9426819
--- /dev/null
+++ b/docs/module-doc/ftv2folderclosed.png
Binary files differ
diff --git a/docs/module-doc/ftv2folderopen.png b/docs/module-doc/ftv2folderopen.png
new file mode 100644
index 000000000..30e9a2c37
--- /dev/null
+++ b/docs/module-doc/ftv2folderopen.png
Binary files differ
diff --git a/docs/module-doc/ftv2lastnode.png b/docs/module-doc/ftv2lastnode.png
new file mode 100644
index 000000000..f1fc64e48
--- /dev/null
+++ b/docs/module-doc/ftv2lastnode.png
Binary files differ
diff --git a/docs/module-doc/ftv2link.png b/docs/module-doc/ftv2link.png
new file mode 100644
index 000000000..f2549516c
--- /dev/null
+++ b/docs/module-doc/ftv2link.png
Binary files differ
diff --git a/docs/module-doc/ftv2mlastnode.png b/docs/module-doc/ftv2mlastnode.png
new file mode 100644
index 000000000..0de7e451f
--- /dev/null
+++ b/docs/module-doc/ftv2mlastnode.png
Binary files differ
diff --git a/docs/module-doc/ftv2mnode.png b/docs/module-doc/ftv2mnode.png
new file mode 100644
index 000000000..72f185b0b
--- /dev/null
+++ b/docs/module-doc/ftv2mnode.png
Binary files differ
diff --git a/docs/module-doc/ftv2node.png b/docs/module-doc/ftv2node.png
new file mode 100644
index 000000000..c23e9f943
--- /dev/null
+++ b/docs/module-doc/ftv2node.png
Binary files differ
diff --git a/docs/module-doc/ftv2plastnode.png b/docs/module-doc/ftv2plastnode.png
new file mode 100644
index 000000000..1bc6181ab
--- /dev/null
+++ b/docs/module-doc/ftv2plastnode.png
Binary files differ
diff --git a/docs/module-doc/ftv2pnode.png b/docs/module-doc/ftv2pnode.png
new file mode 100644
index 000000000..2f6070ca2
--- /dev/null
+++ b/docs/module-doc/ftv2pnode.png
Binary files differ
diff --git a/docs/module-doc/ftv2vertline.png b/docs/module-doc/ftv2vertline.png
new file mode 100644
index 000000000..f5a03787b
--- /dev/null
+++ b/docs/module-doc/ftv2vertline.png
Binary files differ
diff --git a/docs/module-doc/functions.html b/docs/module-doc/functions.html
new file mode 100644
index 000000000..668617b78
--- /dev/null
+++ b/docs/module-doc/functions.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Compound Member Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd Compound Members</h1><center>
+<a href="#index_a">a</a>&nbsp;|&nbsp;<a href="#index_b">b</a>&nbsp;|&nbsp;<a href="#index_c">c</a>&nbsp;|&nbsp;<a href="#index_d">d</a>&nbsp;|&nbsp;<a href="#index_e">e</a>&nbsp;|&nbsp;<a href="#index_f">f</a>&nbsp;|&nbsp;<a href="#index_g">g</a>&nbsp;|&nbsp;<a href="#index_h">h</a>&nbsp;|&nbsp;<a href="#index_i">i</a>&nbsp;|&nbsp;<a href="#index_k">k</a>&nbsp;|&nbsp;<a href="#index_l">l</a>&nbsp;|&nbsp;<a href="#index_m">m</a>&nbsp;|&nbsp;<a href="#index_n">n</a>&nbsp;|&nbsp;<a href="#index_o">o</a>&nbsp;|&nbsp;<a href="#index_p">p</a>&nbsp;|&nbsp;<a href="#index_r">r</a>&nbsp;|&nbsp;<a href="#index_s">s</a>&nbsp;|&nbsp;<a href="#index_t">t</a>&nbsp;|&nbsp;<a href="#index_u">u</a>&nbsp;|&nbsp;<a href="#index_v">v</a>&nbsp;|&nbsp;<a href="#index_~">~</a></center>
+
+<p>
+Here is a list of all class members with links to the classes they belong to:<h3><a name="index_a">- a -</a>
+</h3><ul>
+<li>Admin()
+: <a class="el" href="classAdmin.html#a0">Admin</a><li>awaymsg
+: <a class="el" href="classuserrec.html#m16">userrec</a></ul>
+<h3><a name="index_b">- b -</a>
+</h3><ul>
+<li>bans
+: <a class="el" href="classchanrec.html#m14">chanrec</a><li>Build
+: <a class="el" href="classVersion.html#m3">Version</a><li>bytes_in
+: <a class="el" href="classuserrec.html#m18">userrec</a><li>bytes_out
+: <a class="el" href="classuserrec.html#m19">userrec</a></ul>
+<h3><a name="index_c">- c -</a>
+</h3><ul>
+<li>c_private
+: <a class="el" href="classchanrec.html#m13">chanrec</a><li>ChanMode()
+: <a class="el" href="classServer.html#a15">Server</a><li>channel
+: <a class="el" href="classInvited.html#m0">Invited</a>, <a class="el" href="classucrec.html#m1">ucrec</a><li>chanrec()
+: <a class="el" href="classchanrec.html#a0">chanrec</a><li>chans
+: <a class="el" href="classuserrec.html#m14">userrec</a><li>cmds_in
+: <a class="el" href="classuserrec.html#m20">userrec</a><li>cmds_out
+: <a class="el" href="classuserrec.html#m21">userrec</a><li>CommonChannels()
+: <a class="el" href="classServer.html#a9">Server</a><li>ConfigReader()
+: <a class="el" href="classConfigReader.html#a1">ConfigReader</a><li>created
+: <a class="el" href="classchanrec.html#m3">chanrec</a><li>CreateModule()
+: <a class="el" href="classModuleFactory.html#a2">ModuleFactory</a><li>custom_modes
+: <a class="el" href="classchanrec.html#m1">chanrec</a></ul>
+<h3><a name="index_d">- d -</a>
+</h3><ul>
+<li>data
+: <a class="el" href="classHostItem.html#m2">HostItem</a><li>Debug()
+: <a class="el" href="classServer.html#a3">Server</a><li>dhost
+: <a class="el" href="classuserrec.html#m4">userrec</a></ul>
+<h3><a name="index_e">- e -</a>
+</h3><ul>
+<li>Email
+: <a class="el" href="classAdmin.html#m1">Admin</a><li>Enumerate()
+: <a class="el" href="classConfigReader.html#a4">ConfigReader</a></ul>
+<h3><a name="index_f">- f -</a>
+</h3><ul>
+<li>fc
+: <a class="el" href="classFileReader.html#o0">FileReader</a><li>fd
+: <a class="el" href="classuserrec.html#m6">userrec</a><li>FileReader()
+: <a class="el" href="classFileReader.html#a1">FileReader</a><li>FileSize()
+: <a class="el" href="classFileReader.html#a5">FileReader</a><li>FindChannel()
+: <a class="el" href="classServer.html#a14">Server</a><li>FindNick()
+: <a class="el" href="classServer.html#a13">Server</a><li>fname
+: <a class="el" href="classConfigReader.html#n0">ConfigReader</a><li>fullname
+: <a class="el" href="classuserrec.html#m5">userrec</a></ul>
+<h3><a name="index_g">- g -</a>
+</h3><ul>
+<li>GetAdmin()
+: <a class="el" href="classServer.html#a18">Server</a><li>GetFullHost()
+: <a class="el" href="classuserrec.html#a2">userrec</a><li>GetFullRealHost()
+: <a class="el" href="classuserrec.html#a3">userrec</a><li>GetLine()
+: <a class="el" href="classFileReader.html#a4">FileReader</a><li>GetNetworkName()
+: <a class="el" href="classServer.html#a17">Server</a><li>GetServerName()
+: <a class="el" href="classServer.html#a16">Server</a><li>GetVersion()
+: <a class="el" href="classModule.html#a2">Module</a></ul>
+<h3><a name="index_h">- h -</a>
+</h3><ul>
+<li>haspassed
+: <a class="el" href="classuserrec.html#m23">userrec</a><li>host
+: <a class="el" href="classuserrec.html#m3">userrec</a>, <a class="el" href="classConnectClass.html#m1">ConnectClass</a><li>HostItem()
+: <a class="el" href="classHostItem.html#a0">HostItem</a></ul>
+<h3><a name="index_i">- i -</a>
+</h3><ul>
+<li>ident
+: <a class="el" href="classuserrec.html#m2">userrec</a><li>idle_lastmsg
+: <a class="el" href="classuserrec.html#m11">userrec</a><li>inbuf
+: <a class="el" href="classuserrec.html#m8">userrec</a><li>inviteonly
+: <a class="el" href="classchanrec.html#m10">chanrec</a><li>invites
+: <a class="el" href="classuserrec.html#o0">userrec</a><li>InviteTo()
+: <a class="el" href="classuserrec.html#a5">userrec</a><li>ip
+: <a class="el" href="classuserrec.html#m1">userrec</a><li>IsInvited()
+: <a class="el" href="classuserrec.html#a4">userrec</a><li>IsNick()
+: <a class="el" href="classServer.html#a12">Server</a></ul>
+<h3><a name="index_k">- k -</a>
+</h3><ul>
+<li>key
+: <a class="el" href="classchanrec.html#m7">chanrec</a></ul>
+<h3><a name="index_l">- l -</a>
+</h3><ul>
+<li>lastping
+: <a class="el" href="classuserrec.html#m9">userrec</a><li>limit
+: <a class="el" href="classchanrec.html#m6">chanrec</a><li>LoadFile()
+: <a class="el" href="classFileReader.html#a3">FileReader</a></ul>
+<h3><a name="index_m">- m -</a>
+</h3><ul>
+<li>Major
+: <a class="el" href="classVersion.html#m0">Version</a><li>Minor
+: <a class="el" href="classVersion.html#m1">Version</a><li>moderated
+: <a class="el" href="classchanrec.html#m11">chanrec</a><li>modes
+: <a class="el" href="classuserrec.html#m7">userrec</a><li>Module()
+: <a class="el" href="classModule.html#a0">Module</a><li>ModuleFactory()
+: <a class="el" href="classModuleFactory.html#a0">ModuleFactory</a></ul>
+<h3><a name="index_n">- n -</a>
+</h3><ul>
+<li>name
+: <a class="el" href="classchanrec.html#m0">chanrec</a><li>Name
+: <a class="el" href="classAdmin.html#m0">Admin</a><li>nick
+: <a class="el" href="classuserrec.html#m0">userrec</a><li>Nick
+: <a class="el" href="classAdmin.html#m2">Admin</a><li>noexternal
+: <a class="el" href="classchanrec.html#m9">chanrec</a><li>nping
+: <a class="el" href="classuserrec.html#m12">userrec</a></ul>
+<h3><a name="index_o">- o -</a>
+</h3><ul>
+<li>OnUserConnect()
+: <a class="el" href="classModule.html#a3">Module</a><li>OnUserJoin()
+: <a class="el" href="classModule.html#a5">Module</a><li>OnUserPart()
+: <a class="el" href="classModule.html#a6">Module</a><li>OnUserQuit()
+: <a class="el" href="classModule.html#a4">Module</a></ul>
+<h3><a name="index_p">- p -</a>
+</h3><ul>
+<li>pass
+: <a class="el" href="classConnectClass.html#m2">ConnectClass</a><li>port
+: <a class="el" href="classuserrec.html#m17">userrec</a></ul>
+<h3><a name="index_r">- r -</a>
+</h3><ul>
+<li>ReadValue()
+: <a class="el" href="classConfigReader.html#a3">ConfigReader</a><li>registered
+: <a class="el" href="classuserrec.html#m13">userrec</a><li>RemoveInvite()
+: <a class="el" href="classuserrec.html#a6">userrec</a><li>result
+: <a class="el" href="classuserrec.html#m22">userrec</a><li>Revision
+: <a class="el" href="classVersion.html#m2">Version</a></ul>
+<h3><a name="index_s">- s -</a>
+</h3><ul>
+<li>secret
+: <a class="el" href="classchanrec.html#m12">chanrec</a><li>Send()
+: <a class="el" href="classServer.html#a4">Server</a><li>SendChannel()
+: <a class="el" href="classServer.html#a8">Server</a><li>SendCommon()
+: <a class="el" href="classServer.html#a10">Server</a><li>SendFrom()
+: <a class="el" href="classServer.html#a6">Server</a><li>SendOpers()
+: <a class="el" href="classServer.html#a2">Server</a><li>SendServ()
+: <a class="el" href="classServer.html#a5">Server</a><li>SendTo()
+: <a class="el" href="classServer.html#a7">Server</a><li>SendWallops()
+: <a class="el" href="classServer.html#a11">Server</a><li>Server()
+: <a class="el" href="classServer.html#a0">Server</a><li>server
+: <a class="el" href="classuserrec.html#m15">userrec</a><li>set_by
+: <a class="el" href="classHostItem.html#m1">HostItem</a><li>set_time
+: <a class="el" href="classHostItem.html#m0">HostItem</a><li>setby
+: <a class="el" href="classchanrec.html#m5">chanrec</a><li>signon
+: <a class="el" href="classuserrec.html#m10">userrec</a></ul>
+<h3><a name="index_t">- t -</a>
+</h3><ul>
+<li>topic
+: <a class="el" href="classchanrec.html#m2">chanrec</a><li>topiclock
+: <a class="el" href="classchanrec.html#m8">chanrec</a><li>topicset
+: <a class="el" href="classchanrec.html#m4">chanrec</a><li>type
+: <a class="el" href="classConnectClass.html#m0">ConnectClass</a></ul>
+<h3><a name="index_u">- u -</a>
+</h3><ul>
+<li>uc_modes
+: <a class="el" href="classucrec.html#m0">ucrec</a><li>ucrec()
+: <a class="el" href="classucrec.html#a0">ucrec</a><li>userrec()
+: <a class="el" href="classuserrec.html#a0">userrec</a></ul>
+<h3><a name="index_v">- v -</a>
+</h3><ul>
+<li>Verify()
+: <a class="el" href="classConfigReader.html#a5">ConfigReader</a><li>Version()
+: <a class="el" href="classVersion.html#a0">Version</a></ul>
+<h3><a name="index_~">- ~ -</a>
+</h3><ul>
+<li>~chanrec()
+: <a class="el" href="classchanrec.html#a1">chanrec</a><li>~ConfigReader()
+: <a class="el" href="classConfigReader.html#a2">ConfigReader</a><li>~FileReader()
+: <a class="el" href="classFileReader.html#a2">FileReader</a><li>~HostItem()
+: <a class="el" href="classHostItem.html#a1">HostItem</a><li>~Module()
+: <a class="el" href="classModule.html#a1">Module</a><li>~ModuleFactory()
+: <a class="el" href="classModuleFactory.html#a1">ModuleFactory</a><li>~Server()
+: <a class="el" href="classServer.html#a1">Server</a><li>~ucrec()
+: <a class="el" href="classucrec.html#a1">ucrec</a><li>~userrec()
+: <a class="el" href="classuserrec.html#a1">userrec</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/globals.html b/docs/module-doc/globals.html
new file mode 100644
index 000000000..6a9878c0d
--- /dev/null
+++ b/docs/module-doc/globals.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>File Member Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd File Members</h1><center>
+<a href="#index_b">b</a>&nbsp;|&nbsp;<a href="#index_c">c</a>&nbsp;|&nbsp;<a href="#index_e">e</a>&nbsp;|&nbsp;<a href="#index_f">f</a>&nbsp;|&nbsp;<a href="#index_i">i</a>&nbsp;|&nbsp;<a href="#index_s">s</a>&nbsp;|&nbsp;<a href="#index_u">u</a></center>
+
+<p>
+Here is a list of all file members with links to the files they belong to:<h3><a name="index_b">- b -</a>
+</h3><ul>
+<li>BanList
+: <a class="el" href="channels_8h.html#a5">channels.h</a></ul>
+<h3><a name="index_c">- c -</a>
+</h3><ul>
+<li>CC_ALLOW
+: <a class="el" href="users_8h.html#a4">users.h</a><li>CC_DENY
+: <a class="el" href="users_8h.html#a5">users.h</a><li>ClassVector
+: <a class="el" href="users_8h.html#a7">users.h</a></ul>
+<h3><a name="index_e">- e -</a>
+</h3><ul>
+<li>ExemptList
+: <a class="el" href="channels_8h.html#a6">channels.h</a></ul>
+<h3><a name="index_f">- f -</a>
+</h3><ul>
+<li>file_cache
+: <a class="el" href="modules_8h.html#a1">modules.h</a><li>FOREACH_MOD
+: <a class="el" href="modules_8h.html#a0">modules.h</a></ul>
+<h3><a name="index_i">- i -</a>
+</h3><ul>
+<li>InvitedList
+: <a class="el" href="users_8h.html#a6">users.h</a><li>InviteList
+: <a class="el" href="channels_8h.html#a7">channels.h</a></ul>
+<h3><a name="index_s">- s -</a>
+</h3><ul>
+<li>STATUS_HOP
+: <a class="el" href="users_8h.html#a1">users.h</a><li>STATUS_NORMAL
+: <a class="el" href="users_8h.html#a3">users.h</a><li>STATUS_OP
+: <a class="el" href="users_8h.html#a0">users.h</a><li>STATUS_VOICE
+: <a class="el" href="users_8h.html#a2">users.h</a></ul>
+<h3><a name="index_u">- u -</a>
+</h3><ul>
+<li>UCMODE_FOUNDER
+: <a class="el" href="channels_8h.html#a4">channels.h</a><li>UCMODE_HOP
+: <a class="el" href="channels_8h.html#a2">channels.h</a><li>UCMODE_OP
+: <a class="el" href="channels_8h.html#a0">channels.h</a><li>UCMODE_PROTECT
+: <a class="el" href="channels_8h.html#a3">channels.h</a><li>UCMODE_VOICE
+: <a class="el" href="channels_8h.html#a1">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:49 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/hierarchy.html b/docs/module-doc/hierarchy.html
new file mode 100644
index 000000000..35e1d316c
--- /dev/null
+++ b/docs/module-doc/hierarchy.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Hierarchical Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
+<li><a class="el" href="classAdmin.html">Admin</a>
+<li><a class="el" href="classchanrec.html">chanrec</a>
+<li><a class="el" href="classConfigReader.html">ConfigReader</a>
+<li><a class="el" href="classConnectClass.html">ConnectClass</a>
+<li><a class="el" href="classFileReader.html">FileReader</a>
+<li><a class="el" href="classHostItem.html">HostItem</a>
+<ul>
+<li><a class="el" href="classBanItem.html">BanItem</a>
+<li><a class="el" href="classExemptItem.html">ExemptItem</a>
+<li><a class="el" href="classInviteItem.html">InviteItem</a>
+</ul>
+<li><a class="el" href="classInvited.html">Invited</a>
+<li><a class="el" href="classModule.html">Module</a>
+<li><a class="el" href="classModuleFactory.html">ModuleFactory</a>
+<li><a class="el" href="classServer.html">Server</a>
+<li><a class="el" href="classucrec.html">ucrec</a>
+<li><a class="el" href="classuserrec.html">userrec</a>
+<li><a class="el" href="classVersion.html">Version</a>
+</ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/index.html b/docs/module-doc/index.html
new file mode 100644
index 000000000..752d21b2d
--- /dev/null
+++ b/docs/module-doc/index.html
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>InspIRCd</title></head>
+<frameset cols="250,*">
+ <frame src="tree.html" name="treefrm">
+ <frame src="main.html" name="basefrm">
+</frameset>
+</html>
diff --git a/docs/module-doc/main.html b/docs/module-doc/main.html
new file mode 100644
index 000000000..2080402f5
--- /dev/null
+++ b/docs/module-doc/main.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd Documentation</h1>
+<p>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:46 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/modules_8cpp-source.html b/docs/module-doc/modules_8cpp-source.html
new file mode 100644
index 000000000..b651919d5
--- /dev/null
+++ b/docs/module-doc/modules_8cpp-source.html
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>modules.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>modules.cpp</h1><a href="modules_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
+00002 <span class="comment"></span>
+00003 <span class="comment">$Log$
+00003 <span class="comment">Revision 1.1 2003/01/23 19:45:58 brain
+00003 <span class="comment">Initial revision
+00003 <span class="comment">
+00003 <span class="comment">Revision 1.9 2003/01/22 20:59:12 brain
+00003 <span class="comment">Added FileReader class documentation
+00003 <span class="comment"></span>
+00004 <span class="comment">Revision 1.7 2003/01/22 20:49:16 brain</span>
+00005 <span class="comment">Added FileReader file-caching class</span>
+00006 <span class="comment">Changed m_randquote to use FileReader class</span>
+00007 <span class="comment"></span>
+00008 <span class="comment">Revision 1.6 2003/01/21 20:31:24 brain</span>
+00009 <span class="comment">Modified to add documentation</span>
+00010 <span class="comment">Added ConfigReader class for modules</span>
+00011 <span class="comment"></span>
+00012 <span class="comment">Revision 1.5 2003/01/13 22:30:50 brain</span>
+00013 <span class="comment">Added Admin class (holds /admin info for modules)</span>
+00014 <span class="comment">Added methods to Server class</span>
+00015 <span class="comment"></span>
+00016 <span class="comment"></span>
+00017 <span class="comment">*/</span>
+00018
+00019
+00020
+00021 <span class="preprocessor">#include &lt;typeinfo&gt;</span>
+00022 <span class="preprocessor">#include &lt;iostream.h&gt;</span>
+00023 <span class="preprocessor">#include "globals.h"</span>
+00024 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span>
+00025 <span class="preprocessor">#include "inspircd_io.h"</span>
+00026
+00027 <span class="comment">// version is a simple class for holding a modules version number</span>
+00028
+<a name="l00029"></a><a class="code" href="classVersion.html#a0">00029</a> <a class="code" href="classVersion.html#a0">Version::Version</a>(<span class="keywordtype">int</span> major, <span class="keywordtype">int</span> minor, <span class="keywordtype">int</span> revision, <span class="keywordtype">int</span> build) : Major(major), Minor(minor), Revision(revision), Build(build) { };
+00030
+00031 <span class="comment">// admin is a simple class for holding a server's administrative info</span>
+00032
+<a name="l00033"></a><a class="code" href="classAdmin.html#a0">00033</a> <a class="code" href="classAdmin.html#a0">Admin::Admin</a>(string name, string email, string nick) : Name(name), Email(email), Nick(nick) { };
+00034
+00035 <span class="comment">//</span>
+00036 <span class="comment">// Announce to the world that the Module base</span>
+00037 <span class="comment">// class has been created or destroyed</span>
+00038 <span class="comment">//</span>
+00039
+<a name="l00040"></a><a class="code" href="classModule.html#a0">00040</a> <a class="code" href="classModule.html#a0">Module::Module</a>() { }
+<a name="l00041"></a><a class="code" href="classModule.html#a1">00041</a> <a class="code" href="classModule.html#a1">Module::~Module</a>() { }
+<a name="l00042"></a><a class="code" href="classModule.html#a3">00042</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a3">Module::OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }
+<a name="l00043"></a><a class="code" href="classModule.html#a4">00043</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a4">Module::OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }
+<a name="l00044"></a><a class="code" href="classModule.html#a5">00044</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a5">Module::OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel) { }
+<a name="l00045"></a><a class="code" href="classModule.html#a6">00045</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a6">Module::OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel) { }
+<a name="l00046"></a><a class="code" href="classModule.html#a2">00046</a> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#a2">Module::GetVersion</a>() { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0); }
+00047
+00048 <span class="comment">// server is a wrapper class that provides methods to all of the C-style</span>
+00049 <span class="comment">// exports in the core</span>
+00050 <span class="comment">//</span>
+00051
+<a name="l00052"></a><a class="code" href="classServer.html#a0">00052</a> <a class="code" href="classServer.html#a0">Server::Server</a>()
+00053 {
+00054 }
+00055
+<a name="l00056"></a><a class="code" href="classServer.html#a1">00056</a> <a class="code" href="classServer.html#a1">Server::~Server</a>()
+00057 {
+00058 }
+00059
+<a name="l00060"></a><a class="code" href="classServer.html#a2">00060</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">Server::SendOpers</a>(string s)
+00061 {
+00062 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
+00063 }
+00064
+<a name="l00065"></a><a class="code" href="classServer.html#a3">00065</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Server::Debug</a>(string s)
+00066 {
+00067 debug(<span class="stringliteral">"%s"</span>,s.c_str());
+00068 }
+00069
+<a name="l00070"></a><a class="code" href="classServer.html#a4">00070</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Server::Send</a>(<span class="keywordtype">int</span> Socket, string s)
+00071 {
+00072 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00073 }
+00074
+<a name="l00075"></a><a class="code" href="classServer.html#a5">00075</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">Server::SendServ</a>(<span class="keywordtype">int</span> Socket, string s)
+00076 {
+00077 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00078 }
+00079
+<a name="l00080"></a><a class="code" href="classServer.html#a6">00080</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">Server::SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, string s)
+00081 {
+00082 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00083 }
+00084
+<a name="l00085"></a><a class="code" href="classServer.html#a7">00085</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">Server::SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, string s)
+00086 {
+00087 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+00088 }
+00089
+<a name="l00090"></a><a class="code" href="classServer.html#a8">00090</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">Server::SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, string s,<span class="keywordtype">bool</span> IncludeSender)
+00091 {
+00092 <span class="keywordflow">if</span> (IncludeSender)
+00093 {
+00094 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00095 }
+00096 <span class="keywordflow">else</span>
+00097 {
+00098 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00099 }
+00100 }
+00101
+<a name="l00102"></a><a class="code" href="classServer.html#a9">00102</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a9">Server::CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2)
+00103 {
+00104 <span class="keywordflow">return</span> (common_channels(u1,u2) != 0);
+00105 }
+00106
+<a name="l00107"></a><a class="code" href="classServer.html#a10">00107</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a10">Server::SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, string text,<span class="keywordtype">bool</span> IncludeSender)
+00108 {
+00109 <span class="keywordflow">if</span> (IncludeSender)
+00110 {
+00111 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00112 }
+00113 <span class="keywordflow">else</span>
+00114 {
+00115 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00116 }
+00117 }
+00118
+<a name="l00119"></a><a class="code" href="classServer.html#a11">00119</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">Server::SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, string text)
+00120 {
+00121 WriteWallOps(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00122 }
+00123
+<a name="l00124"></a><a class="code" href="classServer.html#a12">00124</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">Server::IsNick</a>(string nick)
+00125 {
+00126 <span class="keywordflow">return</span> (isnick(nick.c_str()) != 0);
+00127 }
+00128
+<a name="l00129"></a><a class="code" href="classServer.html#a13">00129</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a13">Server::FindNick</a>(string nick)
+00130 {
+00131 <span class="keywordflow">return</span> Find(nick);
+00132 }
+00133
+<a name="l00134"></a><a class="code" href="classServer.html#a14">00134</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a14">Server::FindChannel</a>(string channel)
+00135 {
+00136 <span class="keywordflow">return</span> FindChan(channel.c_str());
+00137 }
+00138
+<a name="l00139"></a><a class="code" href="classServer.html#a15">00139</a> string <a class="code" href="classServer.html#a15">Server::ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
+00140 {
+00141 string mode = cmode(User,Chan);
+00142 <span class="keywordflow">return</span> mode;
+00143 }
+00144
+<a name="l00145"></a><a class="code" href="classServer.html#a16">00145</a> string <a class="code" href="classServer.html#a16">Server::GetServerName</a>()
+00146 {
+00147 <span class="keywordflow">return</span> getservername();
+00148 }
+00149
+<a name="l00150"></a><a class="code" href="classServer.html#a17">00150</a> string <a class="code" href="classServer.html#a17">Server::GetNetworkName</a>()
+00151 {
+00152 <span class="keywordflow">return</span> getnetworkname();
+00153 }
+00154
+<a name="l00155"></a><a class="code" href="classServer.html#a18">00155</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a18">Server::GetAdmin</a>()
+00156 {
+00157 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+00158 }
+00159
+00160
+<a name="l00161"></a><a class="code" href="classConfigReader.html#a0">00161</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>()
+00162 {
+00163 <a class="code" href="classConfigReader.html#n0">fname</a> = CONFIG_FILE;
+00164 }
+00165
+00166
+<a name="l00167"></a><a class="code" href="classConfigReader.html#a2">00167</a> <a class="code" href="classConfigReader.html#a2">ConfigReader::~ConfigReader</a>()
+00168 {
+00169 }
+00170
+00171
+<a name="l00172"></a><a class="code" href="classConfigReader.html#a1">00172</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>(string filename) : fname(filename) { };
+00173
+<a name="l00174"></a><a class="code" href="classConfigReader.html#a3">00174</a> string <a class="code" href="classConfigReader.html#a3">ConfigReader::ReadValue</a>(string tag, string name, <span class="keywordtype">int</span> index)
+00175 {
+00176 <span class="keywordtype">char</span> val[MAXBUF];
+00177 ReadConf(<a class="code" href="classConfigReader.html#n0">fname</a>.c_str(),tag.c_str(),name.c_str(),index,val);
+00178 string s = val;
+00179 <span class="keywordflow">return</span> s;
+00180 }
+00181
+00182
+<a name="l00183"></a><a class="code" href="classConfigReader.html#a4">00183</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a4">ConfigReader::Enumerate</a>(string tag)
+00184 {
+00185 <span class="keywordflow">return</span> EnumConf(<a class="code" href="classConfigReader.html#n0">fname</a>.c_str(),tag.c_str());
+00186 }
+00187
+00188
+<a name="l00189"></a><a class="code" href="classConfigReader.html#a5">00189</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a5">ConfigReader::Verify</a>()
+00190 {
+00191 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00192 }
+00193
+00194
+<a name="l00195"></a><a class="code" href="classFileReader.html#a1">00195</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>(string filename)
+00196 {
+00197 <a class="code" href="modules_8h.html#a1">file_cache</a> c;
+00198 readfile(c,filename.c_str());
+00199 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+00200 }
+00201
+<a name="l00202"></a><a class="code" href="classFileReader.html#a0">00202</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>()
+00203 {
+00204 }
+00205
+<a name="l00206"></a><a class="code" href="classFileReader.html#a3">00206</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">FileReader::LoadFile</a>(string filename)
+00207 {
+00208 <a class="code" href="modules_8h.html#a1">file_cache</a> c;
+00209 readfile(c,filename.c_str());
+00210 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+00211 }
+00212
+<a name="l00213"></a><a class="code" href="classFileReader.html#a2">00213</a> <a class="code" href="classFileReader.html#a2">FileReader::~FileReader</a>()
+00214 {
+00215 }
+00216
+<a name="l00217"></a><a class="code" href="classFileReader.html#a4">00217</a> string <a class="code" href="classFileReader.html#a4">FileReader::GetLine</a>(<span class="keywordtype">int</span> x)
+00218 {
+00219 <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#o0">fc</a>.size()))
+00220 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00221 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>[x];
+00222 }
+00223
+<a name="l00224"></a><a class="code" href="classFileReader.html#a5">00224</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a5">FileReader::FileSize</a>()
+00225 {
+00226 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>.size();
+00227 }
+00228
+00229
+</pre></div><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/modules_8cpp.html b/docs/module-doc/modules_8cpp.html
new file mode 100644
index 000000000..cfa3fa3a3
--- /dev/null
+++ b/docs/module-doc/modules_8cpp.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>modules.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>modules.cpp File Reference</h1><code>#include &lt;typeinfo&gt;</code><br>
+<code>#include &lt;iostream.h&gt;</code><br>
+<code>#include "globals.h"</code><br>
+<code>#include "<a class="el" href="modules_8h-source.html">modules.h</a>"</code><br>
+<code>#include "inspircd_io.h"</code><br>
+
+<p>
+<a href="modules_8cpp-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/modules_8h-source.html b/docs/module-doc/modules_8h-source.html
new file mode 100644
index 000000000..9f80e2ea5
--- /dev/null
+++ b/docs/module-doc/modules_8h-source.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>modules.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>modules.h</h1><a href="modules_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
+00002 <span class="comment"></span>
+00003 <span class="comment">$Log$
+00003 <span class="comment">Revision 1.1 2003/01/23 19:45:58 brain
+00003 <span class="comment">Initial revision
+00003 <span class="comment">
+00003 <span class="comment">Revision 1.9 2003/01/22 20:59:12 brain
+00003 <span class="comment">Added FileReader class documentation
+00003 <span class="comment"></span>
+00004 <span class="comment">Revision 1.11 2003/01/22 20:49:16 brain</span>
+00005 <span class="comment">Added FileReader file-caching class</span>
+00006 <span class="comment">Changed m_randquote to use FileReader class</span>
+00007 <span class="comment"></span>
+00008 <span class="comment">Revision 1.10 2003/01/22 00:57:27 brain</span>
+00009 <span class="comment">Changes to documentation</span>
+00010 <span class="comment"></span>
+00011 <span class="comment">Revision 1.9 2003/01/22 00:44:26 brain</span>
+00012 <span class="comment">Added documentation comments</span>
+00013 <span class="comment"></span>
+00014 <span class="comment">Revision 1.8 2003/01/21 20:31:24 brain</span>
+00015 <span class="comment">Modified to add documentation</span>
+00016 <span class="comment">Added ConfigReader class for modules</span>
+00017 <span class="comment"></span>
+00018 <span class="comment">Revision 1.7 2003/01/15 22:47:44 brain</span>
+00019 <span class="comment">Changed user and channel structs to classes (finally)</span>
+00020 <span class="comment"></span>
+00021 <span class="comment">Revision 1.6 2003/01/13 22:30:50 brain</span>
+00022 <span class="comment">Added Admin class (holds /admin info for modules)</span>
+00023 <span class="comment">Added methods to Server class</span>
+00024 <span class="comment"></span>
+00025 <span class="comment"></span>
+00026 <span class="comment">*/</span>
+00027
+00028
+00029 <span class="preprocessor">#ifndef __PLUGIN_H</span>
+00030 <span class="preprocessor"></span><span class="preprocessor">#define __PLUGIN_H</span>
+00031 <span class="preprocessor"></span>
+00032 <span class="preprocessor">#include "dynamic.h"</span>
+00033 <span class="preprocessor">#include &lt;string&gt;</span>
+00034 <span class="preprocessor">#include &lt;deque&gt;</span>
+00035
+<a name="l00038"></a><a class="code" href="modules_8h.html#a1">00038</a> <span class="keyword">typedef</span> deque&lt;string&gt; <a class="code" href="modules_8h.html#a1">file_cache</a>;
+00039
+00040
+00041 <span class="comment">// This #define allows us to call a method in all</span>
+00042 <span class="comment">// loaded modules in a readable simple way, e.g.:</span>
+00043 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span>
+00044
+<a name="l00045"></a><a class="code" href="modules_8h.html#a0">00045</a> <span class="preprocessor">#define FOREACH_MOD for (int i = 0; i &lt;= MODCOUNT; i++) modules[i]-&gt;</span>
+00046 <span class="preprocessor"></span>
+00047 <span class="comment">// class Version holds the version information of a Module, returned</span>
+00048 <span class="comment">// by Module::GetVersion (thanks RD)</span>
+00049
+<a name="l00054"></a><a class="code" href="classVersion.html">00054</a> <span class="keyword">class </span><a class="code" href="classVersion.html">Version</a>
+00055 {
+00056 <span class="keyword">public</span>:
+<a name="l00057"></a><a class="code" href="classVersion.html#m2">00057</a> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classVersion.html#m0">Major</a>, <a class="code" href="classVersion.html#m1">Minor</a>, <a class="code" href="classVersion.html#m2">Revision</a>, <a class="code" href="classVersion.html#m3">Build</a>;
+00058 <a class="code" href="classVersion.html#a0">Version</a>(<span class="keywordtype">int</span> major, <span class="keywordtype">int</span> minor, <span class="keywordtype">int</span> revision, <span class="keywordtype">int</span> build);
+00059 };
+00060
+00061
+<a name="l00067"></a><a class="code" href="classAdmin.html">00067</a> <span class="keyword">class </span><a class="code" href="classAdmin.html">Admin</a>
+00068 {
+00069 <span class="keyword">public</span>:
+<a name="l00070"></a><a class="code" href="classAdmin.html#m2">00070</a> <span class="keyword">const</span> string <a class="code" href="classAdmin.html#m0">Name</a>, <a class="code" href="classAdmin.html#m1">Email</a>, <a class="code" href="classAdmin.html#m2">Nick</a>;
+00071 <a class="code" href="classAdmin.html#a0">Admin</a>(string name,string email,string nick);
+00072 };
+00073
+<a name="l00079"></a><a class="code" href="classModule.html">00079</a> <span class="keyword">class </span><a class="code" href="classModule.html">Module</a>
+00080 {
+00081 <span class="keyword">public</span>:
+00085 <a class="code" href="classModule.html#a0">Module</a>();
+00089 <span class="keyword">virtual</span> <a class="code" href="classModule.html#a1">~Module</a>();
+00094 <span class="keyword">virtual</span> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#a2">GetVersion</a>();
+00098 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a3">OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00102 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a4">OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00107 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a5">OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
+00112 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a6">OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
+00113 };
+00114
+00115
+<a name="l00121"></a><a class="code" href="classServer.html">00121</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a>
+00122 {
+00123 <span class="keyword">public</span>:
+00127 <a class="code" href="classServer.html#a0">Server</a>();
+00131 <span class="keyword">virtual</span> <a class="code" href="classServer.html#a1">~Server</a>();
+00132
+00136 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">SendOpers</a>(string s);
+00141 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Debug</a>(string s);
+00146 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Send</a>(<span class="keywordtype">int</span> Socket, string s);
+00151 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">SendServ</a>(<span class="keywordtype">int</span> Socket, string s);
+00156 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, string s);
+00161 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, string s);
+00168 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, string s,<span class="keywordtype">bool</span> IncludeSender);
+00173 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a9">CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2);
+00181 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a10">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, string text,<span class="keywordtype">bool</span> IncludeSender);
+00186 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, string text);
+00187
+00191 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">IsNick</a>(string nick);
+00195 <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a13">FindNick</a>(string nick);
+00199 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a14">FindChannel</a>(string channel);
+00204 <span class="keyword">virtual</span> string <a class="code" href="classServer.html#a15">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
+00207 <span class="keyword">virtual</span> string <a class="code" href="classServer.html#a16">GetServerName</a>();
+00210 <span class="keyword">virtual</span> string <a class="code" href="classServer.html#a17">GetNetworkName</a>();
+00216 <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a18">GetAdmin</a>();
+00217
+00218 };
+00219
+<a name="l00226"></a><a class="code" href="classConfigReader.html">00226</a> <span class="keyword">class </span><a class="code" href="classConfigReader.html">ConfigReader</a>
+00227 {
+00228 <span class="keyword">protected</span>:
+<a name="l00231"></a><a class="code" href="classConfigReader.html#n0">00231</a> string <a class="code" href="classConfigReader.html#n0">fname</a>;
+00232 <span class="keyword">public</span>:
+00237 <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(); <span class="comment">// default constructor reads ircd.conf</span>
+00241 <span class="comment"></span> <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(string filename); <span class="comment">// read a module-specific config</span>
+00245 <span class="comment"></span> <a class="code" href="classConfigReader.html#a2">~ConfigReader</a>();
+00250 string <a class="code" href="classConfigReader.html#a3">ReadValue</a>(string tag, string name, <span class="keywordtype">int</span> index);
+00257 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a4">Enumerate</a>(string tag);
+00261 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a5">Verify</a>();
+00262 };
+00263
+00264
+00265
+<a name="l00271"></a><a class="code" href="classFileReader.html">00271</a> <span class="keyword">class </span><a class="code" href="classFileReader.html">FileReader</a>
+00272 {
+<a name="l00273"></a><a class="code" href="classFileReader.html#o0">00273</a> <a class="code" href="modules_8h.html#a1">file_cache</a> <a class="code" href="classFileReader.html#o0">fc</a>;
+00274 <span class="keyword">public</span>:
+00279 <a class="code" href="classFileReader.html#a0">FileReader</a>();
+00285 <a class="code" href="classFileReader.html#a0">FileReader</a>(string filename);
+00289 <a class="code" href="classFileReader.html#a2">~FileReader</a>();
+00295 <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">LoadFile</a>(string filename);
+00300 string <a class="code" href="classFileReader.html#a4">GetLine</a>(<span class="keywordtype">int</span> x);
+00306 <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a5">FileSize</a>();
+00307 };
+00308
+00309
+<a name="l00316"></a><a class="code" href="classModuleFactory.html">00316</a> <span class="keyword">class </span><a class="code" href="classModuleFactory.html">ModuleFactory</a>
+00317 {
+00318 <span class="keyword">public</span>:
+<a name="l00319"></a><a class="code" href="classModuleFactory.html#a0">00319</a> <a class="code" href="classModuleFactory.html#a0">ModuleFactory</a>() { }
+<a name="l00320"></a><a class="code" href="classModuleFactory.html#a1">00320</a> <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#a1">~ModuleFactory</a>() { }
+00325 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#a2">CreateModule</a>() = 0;
+00326 };
+00327
+00328 <span class="preprocessor">#endif</span>
+</pre></div><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/modules_8h.html b/docs/module-doc/modules_8h.html
new file mode 100644
index 000000000..6c9237a27
--- /dev/null
+++ b/docs/module-doc/modules_8h.html
@@ -0,0 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>modules.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>modules.h File Reference</h1><code>#include "dynamic.h"</code><br>
+<code>#include &lt;string&gt;</code><br>
+<code>#include &lt;deque&gt;</code><br>
+
+<p>
+<a href="modules_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Compounds</h2></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classAdmin.html">Admin</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds /ADMIN data This class contains the admin details of the local server.</em> <a href="classAdmin.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html">ConfigReader</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>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.</em> <a href="classConfigReader.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html">FileReader</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Caches a text file into memory and can be used to retrieve lines from it.</em> <a href="classFileReader.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classModule.html">Module</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Base class for all InspIRCd modules This class is the base class for InspIRCd modules.</em> <a href="classModule.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classModuleFactory.html">ModuleFactory</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Instantiates classes inherited from <a class="el" href="classModule.html">Module</a> This class creates a class inherited from type <a class="el" href="classModule.html">Module</a>, using new.</em> <a href="classModuleFactory.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classServer.html">Server</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>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.</em> <a href="classServer.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classVersion.html">Version</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module.</em> <a href="classVersion.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Defines</h2></td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a0">FOREACH_MOD</a>&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt;= MODCOUNT; i++) modules[i]-&gt;</td></tr>
+<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
+<tr><td nowrap align=right valign=top>typedef deque&lt; string &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a1">file_cache</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Low level definition of a <a class="el" href="classFileReader.html">FileReader</a> classes file cache area.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a name="a0" doxytag="modules.h::FOREACH_MOD"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define FOREACH_MOD&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt;= MODCOUNT; i++) modules[i]-&gt;
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00045">45</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a name="a1" doxytag="modules.h::file_cache"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef deque&lt;string&gt; file_cache
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Low level definition of a <a class="el" href="classFileReader.html">FileReader</a> classes file cache area.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00038">38</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00195">FileReader::FileReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00206">FileReader::LoadFile()</a>. </td>
+ </tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/tree.html b/docs/module-doc/tree.html
new file mode 100644
index 000000000..ca32b1db7
--- /dev/null
+++ b/docs/module-doc/tree.html
@@ -0,0 +1,11 @@
+<html><head>
+<link rel="stylesheet" href="doxygen.css">
+<script src="treeview.js"></script>
+<script src="tree.js"></script>
+<script>
+initializeDocument()
+</script>
+</head>
+<body bgcolor="#ffffff">
+</body>
+</html>
diff --git a/docs/module-doc/tree.js b/docs/module-doc/tree.js
new file mode 100644
index 000000000..ff40787d6
--- /dev/null
+++ b/docs/module-doc/tree.js
@@ -0,0 +1,44 @@
+foldersTree = gFld("<b>InspIRCd</b>", "", "")
+ insDoc(foldersTree, gLnk("Main Page", "", "main.html"))
+aux1 = insFld(foldersTree, gFld("File List", "", "files.html"))
+ insDoc(aux1, gLnk("channels.h", "", "channels_8h.html"))
+ insDoc(aux1, gLnk("modules.cpp", "", "modules_8cpp.html"))
+ insDoc(aux1, gLnk("modules.h", "", "modules_8h.html"))
+ insDoc(aux1, gLnk("users.cpp", "", "users_8cpp.html"))
+ insDoc(aux1, gLnk("users.h", "", "users_8h.html"))
+aux1 = insFld(foldersTree, gFld("Compound List", "", "annotated.html"))
+ insDoc(aux1, gLnk("Admin", "", "classAdmin.html"))
+ insDoc(aux1, gLnk("BanItem", "", "classBanItem.html"))
+ insDoc(aux1, gLnk("chanrec", "", "classchanrec.html"))
+ insDoc(aux1, gLnk("ConfigReader", "", "classConfigReader.html"))
+ insDoc(aux1, gLnk("ConnectClass", "", "classConnectClass.html"))
+ insDoc(aux1, gLnk("ExemptItem", "", "classExemptItem.html"))
+ insDoc(aux1, gLnk("FileReader", "", "classFileReader.html"))
+ insDoc(aux1, gLnk("HostItem", "", "classHostItem.html"))
+ insDoc(aux1, gLnk("Invited", "", "classInvited.html"))
+ insDoc(aux1, gLnk("InviteItem", "", "classInviteItem.html"))
+ insDoc(aux1, gLnk("Module", "", "classModule.html"))
+ insDoc(aux1, gLnk("ModuleFactory", "", "classModuleFactory.html"))
+ insDoc(aux1, gLnk("Server", "", "classServer.html"))
+ insDoc(aux1, gLnk("ucrec", "", "classucrec.html"))
+ insDoc(aux1, gLnk("userrec", "", "classuserrec.html"))
+ insDoc(aux1, gLnk("Version", "", "classVersion.html"))
+aux1 = insFld(foldersTree, gFld("Class Hierarchy", "", "hierarchy.html"))
+ insDoc(aux1, gLnk("Admin", "", "classAdmin.html"))
+ insDoc(aux1, gLnk("chanrec", "", "classchanrec.html"))
+ insDoc(aux1, gLnk("ConfigReader", "", "classConfigReader.html"))
+ insDoc(aux1, gLnk("ConnectClass", "", "classConnectClass.html"))
+ insDoc(aux1, gLnk("FileReader", "", "classFileReader.html"))
+ aux2 = insFld(aux1, gFld("HostItem", "", "classHostItem.html"))
+ insDoc(aux2, gLnk("BanItem", "", "classBanItem.html"))
+ insDoc(aux2, gLnk("ExemptItem", "", "classExemptItem.html"))
+ insDoc(aux2, gLnk("InviteItem", "", "classInviteItem.html"))
+ insDoc(aux1, gLnk("Invited", "", "classInvited.html"))
+ insDoc(aux1, gLnk("Module", "", "classModule.html"))
+ insDoc(aux1, gLnk("ModuleFactory", "", "classModuleFactory.html"))
+ insDoc(aux1, gLnk("Server", "", "classServer.html"))
+ insDoc(aux1, gLnk("ucrec", "", "classucrec.html"))
+ insDoc(aux1, gLnk("userrec", "", "classuserrec.html"))
+ insDoc(aux1, gLnk("Version", "", "classVersion.html"))
+ insDoc(foldersTree, gLnk("Compound Members", "", "functions.html"))
+ insDoc(foldersTree, gLnk("File Members", "", "globals.html"))
diff --git a/docs/module-doc/treeview.js b/docs/module-doc/treeview.js
new file mode 100644
index 000000000..6b5ef5110
--- /dev/null
+++ b/docs/module-doc/treeview.js
@@ -0,0 +1,500 @@
+//****************************************************************
+// You are free to copy the "Folder-Tree" script as long as you
+// keep this copyright notice:
+// Script found in: http://www.geocities.com/Paris/LeftBank/2178/
+// Author: Marcelino Alves Martins (martins@hks.com) December '97.
+//****************************************************************
+
+//Log of changes:
+// 17 Feb 98 - Fix initialization flashing problem with Netscape
+//
+// 27 Jan 98 - Root folder starts open; support for USETEXTLINKS;
+// make the ftien4 a js file
+//
+// DvH: Dec 2000 - Made some minor changes to support external
+// references
+
+// Definition of class Folder
+// *****************************************************************
+
+function Folder(folderDescription, tagName, hreference) //constructor
+{
+ //constant data
+ this.desc = folderDescription
+ this.tagName = tagName
+ this.hreference = hreference
+ this.id = -1
+ this.navObj = 0
+ this.iconImg = 0
+ this.nodeImg = 0
+ this.isLastNode = 0
+
+ //dynamic data
+ this.isOpen = true
+ this.iconSrc = "ftv2folderopen.png"
+ this.children = new Array
+ this.nChildren = 0
+
+ //methods
+ this.initialize = initializeFolder
+ this.setState = setStateFolder
+ this.addChild = addChild
+ this.createIndex = createEntryIndex
+ this.hide = hideFolder
+ this.display = display
+ this.renderOb = drawFolder
+ this.totalHeight = totalHeight
+ this.subEntries = folderSubEntries
+ this.outputLink = outputFolderLink
+}
+
+function setStateFolder(isOpen)
+{
+ var subEntries
+ var totalHeight
+ var fIt = 0
+ var i=0
+
+ if (isOpen == this.isOpen)
+ return
+
+ if (browserVersion == 2)
+ {
+ totalHeight = 0
+ for (i=0; i < this.nChildren; i++)
+ totalHeight = totalHeight + this.children[i].navObj.clip.height
+ subEntries = this.subEntries()
+ if (this.isOpen)
+ totalHeight = 0 - totalHeight
+ for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++)
+ indexOfEntries[fIt].navObj.moveBy(0, totalHeight)
+ }
+ this.isOpen = isOpen
+ propagateChangesInState(this)
+}
+
+function propagateChangesInState(folder)
+{
+ var i=0
+
+ if (folder.isOpen)
+ {
+ if (folder.nodeImg)
+ if (folder.isLastNode)
+ folder.nodeImg.src = "ftv2mlastnode.png"
+ else
+ folder.nodeImg.src = "ftv2mnode.png"
+ folder.iconImg.src = "ftv2folderopen.png"
+ for (i=0; i<folder.nChildren; i++)
+ folder.children[i].display()
+ }
+ else
+ {
+ if (folder.nodeImg)
+ if (folder.isLastNode)
+ folder.nodeImg.src = "ftv2plastnode.png"
+ else
+ folder.nodeImg.src = "ftv2pnode.png"
+ folder.iconImg.src = "ftv2folderclosed.png"
+ for (i=0; i<folder.nChildren; i++)
+ folder.children[i].hide()
+ }
+}
+
+function hideFolder()
+{
+ if (browserVersion == 1 || browserVersion == 3) {
+ if (this.navObj.style.display == "none")
+ return
+ this.navObj.style.display = "none"
+ } else {
+ if (this.navObj.visibility == "hidden")
+ return
+ this.navObj.visibility = "hidden"
+ }
+
+ this.setState(0)
+}
+
+function initializeFolder(level, lastNode, leftSide)
+{
+var j=0
+var i=0
+var numberOfFolders
+var numberOfDocs
+var nc
+
+ nc = this.nChildren
+
+ this.createIndex()
+
+ var auxEv = ""
+
+ if (browserVersion > 0)
+ auxEv = "<a href='javascript:clickOnNode("+this.id+")'>"
+ else
+ auxEv = "<a>"
+
+ if (level>0)
+ if (lastNode) //the last 'brother' in the children array
+ {
+ this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mlastnode.png' width=16 height=22 border=0></a>")
+ leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>"
+ this.isLastNode = 1
+ }
+ else
+ {
+ this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mnode.png' width=16 height=22 border=0></a>")
+ leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>"
+ this.isLastNode = 0
+ }
+ else
+ this.renderOb("")
+
+ if (nc > 0)
+ {
+ level = level + 1
+ for (i=0 ; i < this.nChildren; i++)
+ {
+ if (i == this.nChildren-1)
+ this.children[i].initialize(level, 1, leftSide)
+ else
+ this.children[i].initialize(level, 0, leftSide)
+ }
+ }
+}
+
+function drawFolder(leftSide)
+{
+ if (browserVersion == 2) {
+ if (!doc.yPos)
+ doc.yPos=8
+ doc.write("<layer id='folder" + this.id + "' top=" + doc.yPos + " visibility=hidden>")
+ }
+ if (browserVersion == 3)
+ {
+ doc.write("<div id='folder" + this.id + "' style='visibility:hide;'>")
+ }
+
+ doc.write("\n<table ")
+ if (browserVersion == 1)
+ doc.write(" id='folder" + this.id + "' style='position:block;' ")
+ doc.write(" border=0 cellspacing=0 cellpadding=0>")
+ doc.write("\n<tr><td>")
+ doc.write(leftSide)
+ this.outputLink()
+ doc.write("<img name='folderIcon" + this.id + "' ")
+ doc.write("src='" + this.iconSrc+"' border=0></a>")
+ doc.write("</td>\n<td valign=middle nowrap>")
+ if (USETEXTLINKS)
+ {
+ this.outputLink()
+ doc.write(this.desc + "</a>")
+ }
+ else
+ doc.write(this.desc)
+ if (this.tagName!="")
+ {
+ doc.write(" [external]")
+ }
+ doc.write("</td>")
+ doc.write("\n</table>\n")
+
+ if (browserVersion == 2) {
+ doc.write("</layer>")
+ }
+ if (browserVersion == 3) {
+ doc.write("</div>")
+ }
+
+ if (browserVersion == 1) {
+ this.navObj = doc.all["folder"+this.id]
+ this.iconImg = doc.all["folderIcon"+this.id]
+ this.nodeImg = doc.all["nodeIcon"+this.id]
+ } else if (browserVersion == 2) {
+ this.navObj = doc.layers["folder"+this.id]
+ this.iconImg = this.navObj.document.images["folderIcon"+this.id]
+ this.nodeImg = this.navObj.document.images["nodeIcon"+this.id]
+ doc.yPos=doc.yPos+this.navObj.clip.height
+ } else if (browserVersion == 3) {
+ this.navObj = doc.getElementById("folder"+this.id)
+ this.iconImg = doc.images.namedItem("folderIcon"+this.id)
+ this.nodeImg = doc.images.namedItem("nodeIcon"+this.id)
+ }
+}
+
+function outputFolderLink()
+{
+ if (this.hreference)
+ {
+ doc.write("<a ")
+ if (this.tagName)
+ {
+ doc.write("doxygen='" + this.tagName + "' ");
+ }
+ doc.write("href='" + this.hreference + "' TARGET=\"basefrm\" ")
+ if (browserVersion > 0)
+ doc.write("onClick='javascript:clickOnFolder("+this.id+")'")
+ doc.write(">")
+ }
+ else
+ doc.write("<a>")
+}
+
+function addChild(childNode)
+{
+ this.children[this.nChildren] = childNode
+ this.nChildren++
+ return childNode
+}
+
+function folderSubEntries()
+{
+ var i = 0
+ var se = this.nChildren
+
+ for (i=0; i < this.nChildren; i++){
+ if (this.children[i].children) //is a folder
+ se = se + this.children[i].subEntries()
+ }
+
+ return se
+}
+
+
+// Definition of class Item (a document or link inside a Folder)
+// *************************************************************
+
+function Item(itemDescription, tagName, itemLink) // Constructor
+{
+ // constant data
+ this.desc = itemDescription
+ this.tagName = tagName
+ this.link = itemLink
+ this.id = -1 //initialized in initalize()
+ this.navObj = 0 //initialized in render()
+ this.iconImg = 0 //initialized in render()
+ this.iconSrc = "ftv2doc.png"
+
+ // methods
+ this.initialize = initializeItem
+ this.createIndex = createEntryIndex
+ this.hide = hideItem
+ this.display = display
+ this.renderOb = drawItem
+ this.totalHeight = totalHeight
+}
+
+function hideItem()
+{
+ if (browserVersion == 1 || browserVersion == 3) {
+ if (this.navObj.style.display == "none")
+ return
+ this.navObj.style.display = "none"
+ } else {
+ if (this.navObj.visibility == "hidden")
+ return
+ this.navObj.visibility = "hidden"
+ }
+}
+
+function initializeItem(level, lastNode, leftSide)
+{
+ this.createIndex()
+
+ if (level>0)
+ if (lastNode) //the last 'brother' in the children array
+ {
+ this.renderOb(leftSide + "<img src='ftv2lastnode.png' width=16 height=22>")
+ leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>"
+ }
+ else
+ {
+ this.renderOb(leftSide + "<img src='ftv2node.png' width=16 height=22>")
+ leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>"
+ }
+ else
+ this.renderOb("")
+}
+
+function drawItem(leftSide)
+{
+ if (browserVersion == 2)
+ doc.write("<layer id='item" + this.id + "' top=" + doc.yPos + " visibility=hidden>")
+ if (browserVersion == 3)
+ doc.write("<div id='item" + this.id + "' style='display:block;'>")
+
+ doc.write("\n<table ")
+ if (browserVersion == 1)
+ doc.write(" id='item" + this.id + "' style='position:block;' ")
+ doc.write(" border=0 cellspacing=0 cellpadding=0>\n")
+ doc.write("<tr><td>")
+ doc.write(leftSide)
+ if (this.link!="")
+ {
+ doc.write("<a href=" + this.link + ">")
+ }
+ doc.write("<img id='itemIcon"+this.id+"' ")
+ doc.write("src='"+this.iconSrc+"' border=0>")
+ if (this.link!="")
+ {
+ doc.write("</a>")
+ }
+ doc.write("</td>\n<td valign=middle nowrap>")
+ if (USETEXTLINKS && this.link!="")
+ doc.write("<a href=" + this.link + ">" + this.desc + "</a>")
+ else
+ doc.write(this.desc)
+ if (this.tagName!="")
+ {
+ doc.write(" [external]");
+ }
+ doc.write("\n</table>\n")
+
+ if (browserVersion == 2)
+ doc.write("</layer>")
+ if (browserVersion == 3)
+ doc.write("</div>")
+
+ if (browserVersion == 1) {
+ this.navObj = doc.all["item"+this.id]
+ this.iconImg = doc.all["itemIcon"+this.id]
+ } else if (browserVersion == 2) {
+ this.navObj = doc.layers["item"+this.id]
+ this.iconImg = this.navObj.document.images["itemIcon"+this.id]
+ doc.yPos=doc.yPos+this.navObj.clip.height
+ } else if (browserVersion == 3) {
+ this.navObj = doc.getElementById("item"+this.id)
+ this.iconImg = doc.images.namedItem("itemIcon"+this.id)
+ }
+}
+
+
+// Methods common to both objects (pseudo-inheritance)
+// ********************************************************
+
+function display()
+{
+ if (browserVersion == 1 || browserVersion == 3)
+ this.navObj.style.display = "block"
+ else
+ this.navObj.visibility = "show"
+}
+
+function createEntryIndex()
+{
+ this.id = nEntries
+ indexOfEntries[nEntries] = this
+ nEntries++
+}
+
+// total height of subEntries open
+function totalHeight() //used with browserVersion == 2
+{
+ var h = this.navObj.clip.height
+ var i = 0
+
+ if (this.isOpen) //is a folder and _is_ open
+ for (i=0 ; i < this.nChildren; i++)
+ h = h + this.children[i].totalHeight()
+
+ return h
+}
+
+
+// Events
+// *********************************************************
+
+function clickOnFolder(folderId)
+{
+ var clicked = indexOfEntries[folderId]
+
+ if (!clicked.isOpen)
+ clickOnNode(folderId)
+
+ return
+
+ if (clicked.isSelected)
+ return
+}
+
+function clickOnNode(folderId)
+{
+ var clickedFolder = 0
+ var state = 0
+
+ clickedFolder = indexOfEntries[folderId]
+ state = clickedFolder.isOpen
+
+ clickedFolder.setState(!state) //open<->close
+}
+
+function initializeDocument()
+{
+ doc = document;
+ if (doc.all)
+ browserVersion = 1 //IE4
+ else
+ if (doc.layers)
+ browserVersion = 2 //NS4
+ else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1)
+ browserVersion = 3 //mozilla
+ else
+ browserVersion = 0 //other
+
+ foldersTree.initialize(0, 1, "")
+ foldersTree.display()
+
+ if (browserVersion > 0)
+ {
+ if(browserVersion != 3)
+ doc.write("<layer top="+indexOfEntries[nEntries-1].navObj.top+">&nbsp;</layer>")
+
+ // close the whole tree
+ clickOnNode(0)
+ // open the root folder
+ clickOnNode(0)
+ }
+}
+
+// Auxiliary Functions for Folder-Treee backward compatibility
+// *********************************************************
+
+function gFld(description, tagName, hreference)
+{
+ folder = new Folder(description, tagName, hreference)
+ return folder
+}
+
+function gLnk(description, tagName, linkData)
+{
+ fullLink = ""
+
+ if (linkData!="")
+ {
+ fullLink = "'"+linkData+"' target=\"basefrm\""
+ }
+
+ linkItem = new Item(description, tagName, fullLink)
+ return linkItem
+}
+
+function insFld(parentFolder, childFolder)
+{
+ return parentFolder.addChild(childFolder)
+}
+
+function insDoc(parentFolder, document)
+{
+ parentFolder.addChild(document)
+}
+
+// Global variables
+// ****************
+
+USETEXTLINKS = 1
+indexOfEntries = new Array
+nEntries = 0
+doc = document
+browserVersion = 0
+selectedFolder=0
diff --git a/docs/module-doc/users_8cpp-source.html b/docs/module-doc/users_8cpp-source.html
new file mode 100644
index 000000000..8575303e7
--- /dev/null
+++ b/docs/module-doc/users_8cpp-source.html
@@ -0,0 +1,109 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>users.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>users.cpp</h1><a href="users_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
+00002 <span class="comment"></span>
+00003 <span class="comment">$Log$
+00003 <span class="comment">Revision 1.1 2003/01/23 19:45:58 brain
+00003 <span class="comment">Initial revision
+00003 <span class="comment">
+00003 <span class="comment">Revision 1.6 2003/01/22 20:59:12 brain
+00003 <span class="comment">Added FileReader class documentation
+00003 <span class="comment"></span>
+00004 <span class="comment">Revision 1.3 2003/01/17 13:21:38 brain</span>
+00005 <span class="comment">Added CONNECT ALLOW and CONNECT DENY config tags</span>
+00006 <span class="comment">Added PASS command</span>
+00007 <span class="comment"></span>
+00008 <span class="comment">Revision 1.2 2003/01/17 10:37:55 brain</span>
+00009 <span class="comment">Added /INVITE command and relevent structures</span>
+00010 <span class="comment"></span>
+00011 <span class="comment">Revision 1.1 2003/01/16 01:10:04 brain</span>
+00012 <span class="comment">forgot to add this</span>
+00013 <span class="comment"></span>
+00014 <span class="comment"></span>
+00015 <span class="comment">*/</span>
+00016
+00017 <span class="preprocessor">#include "inspircd_config.h"</span>
+00018 <span class="preprocessor">#include "<a class="code" href="channels_8h.html">channels.h</a>"</span>
+00019 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
+00020 <span class="preprocessor">#include "inspircd.h"</span>
+00021 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+00022
+<a name="l00023"></a><a class="code" href="classuserrec.html#a0">00023</a> <a class="code" href="classuserrec.html#a0">userrec::userrec</a>()
+00024 {
+00025 <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
+00026 strcpy(nick,<span class="stringliteral">""</span>);
+00027 <a class="code" href="classuserrec.html#m1">ip</a> = 0;
+00028 strcpy(ident,<span class="stringliteral">""</span>);
+00029 strcpy(host,<span class="stringliteral">""</span>);
+00030 strcpy(dhost,<span class="stringliteral">""</span>);
+00031 strcpy(fullname,<span class="stringliteral">""</span>);
+00032 strcpy(modes,<span class="stringliteral">""</span>);
+00033 strcpy(inbuf,<span class="stringliteral">""</span>);
+00034 strcpy(server,<span class="stringliteral">""</span>);
+00035 strcpy(awaymsg,<span class="stringliteral">""</span>);
+00036 <a class="code" href="classuserrec.html#m6">fd</a> = <a class="code" href="classuserrec.html#m9">lastping</a> = <a class="code" href="classuserrec.html#m10">signon</a> = <a class="code" href="classuserrec.html#m11">idle_lastmsg</a> = <a class="code" href="classuserrec.html#m12">nping</a> = <a class="code" href="classuserrec.html#m13">registered</a> = 0;
+00037 <a class="code" href="classuserrec.html#m17">port</a> = <a class="code" href="classuserrec.html#m18">bytes_in</a> = <a class="code" href="classuserrec.html#m19">bytes_out</a> = <a class="code" href="classuserrec.html#m20">cmds_in</a> = <a class="code" href="classuserrec.html#m21">cmds_out</a> = 0;
+00038 <a class="code" href="classuserrec.html#m23">haspassed</a> = <span class="keyword">false</span>;
+00039 strcpy(result,<span class="stringliteral">""</span>);
+00040 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; MAXCHANS; i++)
+00041 {
+00042 <a class="code" href="classuserrec.html#m14">chans</a>[i].<a class="code" href="classucrec.html#m1">channel</a> = NULL;
+00043 }
+00044 <a class="code" href="classuserrec.html#o0">invites</a>.clear();
+00045 }
+00046
+00047
+<a name="l00048"></a><a class="code" href="classuserrec.html#a2">00048</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a2">userrec::GetFullHost</a>()
+00049 {
+00050 sprintf(result,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,dhost);
+00051 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#m22">result</a>;
+00052 }
+00053
+00054
+<a name="l00055"></a><a class="code" href="classuserrec.html#a3">00055</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a3">userrec::GetFullRealHost</a>()
+00056 {
+00057 sprintf(result,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,host);
+00058 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#m22">result</a>;
+00059 }
+00060
+<a name="l00061"></a><a class="code" href="classuserrec.html#a4">00061</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a4">userrec::IsInvited</a>(<span class="keywordtype">char</span>* channel)
+00062 {
+00063 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#o0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#o0">invites</a>.end(); i++)
+00064 {
+00065 <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
+00066 {
+00067 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00068 }
+00069 }
+00070 }
+00071
+<a name="l00072"></a><a class="code" href="classuserrec.html#a5">00072</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a5">userrec::InviteTo</a>(<span class="keywordtype">char</span>* channel)
+00073 {
+00074 <a class="code" href="classInvited.html">Invited</a> i;
+00075 strcpy(i.<a class="code" href="classInvited.html#m0">channel</a>,channel);
+00076 <a class="code" href="classuserrec.html#o0">invites</a>.push_back(i);
+00077 }
+00078
+<a name="l00079"></a><a class="code" href="classuserrec.html#a6">00079</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a6">userrec::RemoveInvite</a>(<span class="keywordtype">char</span>* channel)
+00080 {
+00081 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#o0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#o0">invites</a>.end(); i++)
+00082 {
+00083 <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
+00084 {
+00085 <a class="code" href="classuserrec.html#o0">invites</a>.erase(i);
+00086 <span class="keywordflow">return</span>;
+00087 }
+00088 }
+00089 }
+</pre></div><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/users_8cpp.html b/docs/module-doc/users_8cpp.html
new file mode 100644
index 000000000..10c198675
--- /dev/null
+++ b/docs/module-doc/users_8cpp.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>users.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>users.cpp File Reference</h1><code>#include "inspircd_config.h"</code><br>
+<code>#include "<a class="el" href="channels_8h-source.html">channels.h</a>"</code><br>
+<code>#include "<a class="el" href="users_8h-source.html">users.h</a>"</code><br>
+<code>#include "inspircd.h"</code><br>
+<code>#include &lt;stdio.h&gt;</code><br>
+
+<p>
+<a href="users_8cpp-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/users_8h-source.html b/docs/module-doc/users_8h-source.html
new file mode 100644
index 000000000..446423af1
--- /dev/null
+++ b/docs/module-doc/users_8h-source.html
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>users.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>users.h</h1><a href="users_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
+00002 <span class="comment"></span>
+00003 <span class="comment">$Log$
+00003 <span class="comment">Revision 1.1 2003/01/23 19:45:58 brain
+00003 <span class="comment">Initial revision
+00003 <span class="comment">
+00003 <span class="comment">Revision 1.6 2003/01/22 20:59:12 brain
+00003 <span class="comment">Added FileReader class documentation
+00003 <span class="comment"></span>
+00004 <span class="comment">Revision 1.9 2003/01/22 00:44:26 brain</span>
+00005 <span class="comment">Added documentation comments</span>
+00006 <span class="comment"></span>
+00007 <span class="comment">Revision 1.8 2003/01/21 21:11:17 brain</span>
+00008 <span class="comment">Added documentation</span>
+00009 <span class="comment"></span>
+00010 <span class="comment">Revision 1.7 2003/01/17 13:21:38 brain</span>
+00011 <span class="comment">Added CONNECT ALLOW and CONNECT DENY config tags</span>
+00012 <span class="comment">Added PASS command</span>
+00013 <span class="comment"></span>
+00014 <span class="comment">Revision 1.6 2003/01/17 10:37:55 brain</span>
+00015 <span class="comment">Added /INVITE command and relevent structures</span>
+00016 <span class="comment"></span>
+00017 <span class="comment">Revision 1.5 2003/01/16 20:11:56 brain</span>
+00018 <span class="comment">fixed some ugly pointer bugs (thanks dblack and a|KK|y!)</span>
+00019 <span class="comment"></span>
+00020 <span class="comment">Revision 1.4 2003/01/15 22:47:44 brain</span>
+00021 <span class="comment">Changed user and channel structs to classes (finally)</span>
+00022 <span class="comment"></span>
+00023 <span class="comment">Revision 1.3 2003/01/14 21:14:30 brain</span>
+00024 <span class="comment">added /ISON command (for mIRC etc basic notify)</span>
+00025 <span class="comment"></span>
+00026 <span class="comment"></span>
+00027 <span class="comment">*/</span>
+00028
+00029 <span class="preprocessor">#include "inspircd_config.h"</span>
+00030 <span class="preprocessor">#include "<a class="code" href="channels_8h.html">channels.h</a>"</span>
+00031
+00032 <span class="preprocessor">#include &lt;string&gt;</span>
+00033
+00034 <span class="preprocessor">#ifndef __USERS_H__ </span>
+00035 <span class="preprocessor"></span><span class="preprocessor">#define __USERS_H__ </span>
+00036 <span class="preprocessor"></span>
+<a name="l00037"></a><a class="code" href="users_8h.html#a0">00037</a> <span class="preprocessor">#define STATUS_OP 4</span>
+<a name="l00038"></a><a class="code" href="users_8h.html#a1">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_HOP 2</span>
+<a name="l00039"></a><a class="code" href="users_8h.html#a2">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_VOICE 1</span>
+<a name="l00040"></a><a class="code" href="users_8h.html#a3">00040</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_NORMAL 0</span>
+00041 <span class="preprocessor"></span>
+<a name="l00042"></a><a class="code" href="users_8h.html#a4">00042</a> <span class="preprocessor">#define CC_ALLOW 0</span>
+<a name="l00043"></a><a class="code" href="users_8h.html#a5">00043</a> <span class="preprocessor"></span><span class="preprocessor">#define CC_DENY 1</span>
+00044 <span class="preprocessor"></span>
+<a name="l00047"></a><a class="code" href="classInvited.html">00047</a> <span class="keyword">class </span><a class="code" href="classInvited.html">Invited</a>
+00048 {
+00049 <span class="keyword">public</span>:
+<a name="l00050"></a><a class="code" href="classInvited.html#m0">00050</a> <span class="keywordtype">char</span> <a class="code" href="classInvited.html#m0">channel</a>[CHANMAX];
+00051 };
+00052
+00053
+<a name="l00056"></a><a class="code" href="classConnectClass.html">00056</a> <span class="keyword">class </span><a class="code" href="classConnectClass.html">ConnectClass</a>
+00057 {
+00058 <span class="keyword">public</span>:
+<a name="l00059"></a><a class="code" href="classConnectClass.html#m0">00059</a> <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#m0">type</a>;
+<a name="l00060"></a><a class="code" href="classConnectClass.html#m1">00060</a> <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#m1">host</a>[MAXBUF];
+<a name="l00061"></a><a class="code" href="classConnectClass.html#m2">00061</a> <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#m2">pass</a>[MAXBUF];
+00062 };
+00063
+<a name="l00066"></a><a class="code" href="users_8h.html#a6">00066</a> <span class="keyword">typedef</span> vector&lt;Invited&gt; <a class="code" href="users_8h.html#a6">InvitedList</a>;
+00067
+00068
+00069
+<a name="l00072"></a><a class="code" href="users_8h.html#a7">00072</a> <span class="keyword">typedef</span> vector&lt;ConnectClass&gt; <a class="code" href="users_8h.html#a7">ClassVector</a>;
+00073
+<a name="l00080"></a><a class="code" href="classuserrec.html">00080</a> <span class="keyword">class </span><a class="code" href="classuserrec.html">userrec</a>
+00081 {
+00082 <span class="keyword">private</span>:
+00083
+<a name="l00086"></a><a class="code" href="classuserrec.html#o0">00086</a> <a class="code" href="users_8h.html#a6">InvitedList</a> <a class="code" href="classuserrec.html#o0">invites</a>;
+00087 <span class="keyword">public</span>:
+00088
+<a name="l00093"></a><a class="code" href="classuserrec.html#m0">00093</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m0">nick</a>[NICKMAX];
+00094
+<a name="l00097"></a><a class="code" href="classuserrec.html#m1">00097</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#m1">ip</a>;
+00098
+<a name="l00101"></a><a class="code" href="classuserrec.html#m2">00101</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m2">ident</a>[64];
+00102
+<a name="l00105"></a><a class="code" href="classuserrec.html#m3">00105</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m3">host</a>[256];
+00106
+<a name="l00110"></a><a class="code" href="classuserrec.html#m4">00110</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m4">dhost</a>[256];
+00111
+<a name="l00114"></a><a class="code" href="classuserrec.html#m5">00114</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m5">fullname</a>[128];
+00115
+<a name="l00120"></a><a class="code" href="classuserrec.html#m6">00120</a> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#m6">fd</a>;
+00121
+<a name="l00126"></a><a class="code" href="classuserrec.html#m7">00126</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m7">modes</a>[32];
+00127
+<a name="l00131"></a><a class="code" href="classuserrec.html#m8">00131</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m8">inbuf</a>[MAXBUF];
+00132
+<a name="l00138"></a><a class="code" href="classuserrec.html#m9">00138</a> time_t <a class="code" href="classuserrec.html#m9">lastping</a>;
+00139
+<a name="l00142"></a><a class="code" href="classuserrec.html#m10">00142</a> time_t <a class="code" href="classuserrec.html#m10">signon</a>;
+00143
+<a name="l00147"></a><a class="code" href="classuserrec.html#m11">00147</a> time_t <a class="code" href="classuserrec.html#m11">idle_lastmsg</a>;
+00148
+<a name="l00153"></a><a class="code" href="classuserrec.html#m12">00153</a> time_t <a class="code" href="classuserrec.html#m12">nping</a>;
+00154
+<a name="l00159"></a><a class="code" href="classuserrec.html#m13">00159</a> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#m13">registered</a>;
+00160
+<a name="l00165"></a><a class="code" href="classuserrec.html#m14">00165</a> <a class="code" href="classucrec.html">ucrec</a> <a class="code" href="classuserrec.html#m14">chans</a>[MAXCHANS];
+00166
+<a name="l00169"></a><a class="code" href="classuserrec.html#m15">00169</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m15">server</a>[256];
+00170
+<a name="l00174"></a><a class="code" href="classuserrec.html#m16">00174</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m16">awaymsg</a>[512];
+00175
+<a name="l00178"></a><a class="code" href="classuserrec.html#m17">00178</a> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#m17">port</a>;
+00179
+<a name="l00183"></a><a class="code" href="classuserrec.html#m18">00183</a> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#m18">bytes_in</a>;
+00184
+<a name="l00188"></a><a class="code" href="classuserrec.html#m19">00188</a> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#m19">bytes_out</a>;
+00189
+<a name="l00193"></a><a class="code" href="classuserrec.html#m20">00193</a> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#m20">cmds_in</a>;
+00194
+<a name="l00198"></a><a class="code" href="classuserrec.html#m21">00198</a> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#m21">cmds_out</a>;
+00199
+<a name="l00203"></a><a class="code" href="classuserrec.html#m22">00203</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m22">result</a>[256];
+00204
+<a name="l00209"></a><a class="code" href="classuserrec.html#m23">00209</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#m23">haspassed</a>;
+00210
+00211 <a class="code" href="classuserrec.html#a0">userrec</a>();
+00212
+<a name="l00213"></a><a class="code" href="classuserrec.html#a1">00213</a> <span class="keyword">virtual</span> <a class="code" href="classuserrec.html#a1">~userrec</a>() { }
+00214
+00219 <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a2">GetFullHost</a>();
+00220
+00226 <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a3">GetFullRealHost</a>();
+00227
+00230 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a4">IsInvited</a>(<span class="keywordtype">char</span>* channel);
+00231
+00234 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a5">InviteTo</a>(<span class="keywordtype">char</span>* channel);
+00235
+00240 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a6">RemoveInvite</a>(<span class="keywordtype">char</span>* channel);
+00241
+00242 };
+00243
+00244
+00245 <span class="preprocessor">#endif</span>
+</pre></div><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/users_8h.html b/docs/module-doc/users_8h.html
new file mode 100644
index 000000000..2593a2dcb
--- /dev/null
+++ b/docs/module-doc/users_8h.html
@@ -0,0 +1,239 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>users.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>users.h File Reference</h1><code>#include "inspircd_config.h"</code><br>
+<code>#include "<a class="el" href="channels_8h-source.html">channels.h</a>"</code><br>
+<code>#include &lt;string&gt;</code><br>
+
+<p>
+<a href="users_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Compounds</h2></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classConnectClass.html">ConnectClass</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds information relevent to &lt;connect allow&gt; and &lt;connect deny&gt; tags in the config file.</em> <a href="classConnectClass.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classInvited.html">Invited</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a channel name to which a user has been invited.</em> <a href="classInvited.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html">userrec</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds all information about a user This class stores all information about a user connected to the irc server.</em> <a href="classuserrec.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Defines</h2></td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a0">STATUS_OP</a>&nbsp;&nbsp;&nbsp;4</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a1">STATUS_HOP</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a2">STATUS_VOICE</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a3">STATUS_NORMAL</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a4">CC_ALLOW</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a5">CC_DENY</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
+<tr><td nowrap align=right valign=top>typedef vector&lt; <a class="el" href="classInvited.html">Invited</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a6">InvitedList</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a complete list of all channels to which a user has been invited and has not yet joined.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>typedef vector&lt; <a class="el" href="classConnectClass.html">ConnectClass</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a7">ClassVector</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a complete list of all allow and deny tags from the configuration file (connection classes).</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a name="a4" doxytag="users.h::CC_ALLOW"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define CC_ALLOW&nbsp;&nbsp;&nbsp;0
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00042">42</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="a5" doxytag="users.h::CC_DENY"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define CC_DENY&nbsp;&nbsp;&nbsp;1
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00043">43</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="a1" doxytag="users.h::STATUS_HOP"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define STATUS_HOP&nbsp;&nbsp;&nbsp;2
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00038">38</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="a3" doxytag="users.h::STATUS_NORMAL"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define STATUS_NORMAL&nbsp;&nbsp;&nbsp;0
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00040">40</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="a0" doxytag="users.h::STATUS_OP"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define STATUS_OP&nbsp;&nbsp;&nbsp;4
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00037">37</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="a2" doxytag="users.h::STATUS_VOICE"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define STATUS_VOICE&nbsp;&nbsp;&nbsp;1
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00039">39</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a name="a7" doxytag="users.h::ClassVector"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef vector&lt;<a class="el" href="classConnectClass.html">ConnectClass</a>&gt; ClassVector
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Holds a complete list of all allow and deny tags from the configuration file (connection classes).
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00072">72</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="a6" doxytag="users.h::InvitedList"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef vector&lt;<a class="el" href="classInvited.html">Invited</a>&gt; InvitedList
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Holds a complete list of all channels to which a user has been invited and has not yet joined.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00066">66</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>