summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/module-doc/annotated.html6
-rw-r--r--docs/module-doc/base_8h-source.html2
-rw-r--r--docs/module-doc/base_8h.html2
-rw-r--r--docs/module-doc/channels_8cpp-source.html283
-rw-r--r--docs/module-doc/channels_8cpp.html1004
-rw-r--r--docs/module-doc/channels_8cpp__incl.gifbin15573 -> 128948 bytes
-rw-r--r--docs/module-doc/channels_8h-source.html4
-rw-r--r--docs/module-doc/channels_8h.html18
-rw-r--r--docs/module-doc/channels_8h__dep__incl.gifbin13438 -> 15481 bytes
-rw-r--r--docs/module-doc/classAdmin-members.html2
-rw-r--r--docs/module-doc/classAdmin.html14
-rw-r--r--docs/module-doc/classBanItem-members.html2
-rw-r--r--docs/module-doc/classBanItem.html2
-rw-r--r--docs/module-doc/classConfigReader-members.html2
-rw-r--r--docs/module-doc/classConfigReader.html96
-rw-r--r--docs/module-doc/classConnectClass-members.html2
-rw-r--r--docs/module-doc/classConnectClass.html2
-rw-r--r--docs/module-doc/classExemptItem-members.html2
-rw-r--r--docs/module-doc/classExemptItem.html2
-rw-r--r--docs/module-doc/classExtMode-members.html2
-rw-r--r--docs/module-doc/classExtMode.html18
-rw-r--r--docs/module-doc/classExtensible-members.html2
-rw-r--r--docs/module-doc/classExtensible.html5
-rw-r--r--docs/module-doc/classExtensible__inherit__graph.gifbin10538 -> 9478 bytes
-rw-r--r--docs/module-doc/classFileReader-members.html2
-rw-r--r--docs/module-doc/classFileReader.html96
-rw-r--r--docs/module-doc/classGLine-members.html2
-rw-r--r--docs/module-doc/classGLine.html2
-rw-r--r--docs/module-doc/classHostItem-members.html2
-rw-r--r--docs/module-doc/classHostItem.html2
-rw-r--r--docs/module-doc/classInviteItem-members.html2
-rw-r--r--docs/module-doc/classInviteItem.html2
-rw-r--r--docs/module-doc/classInvited-members.html2
-rw-r--r--docs/module-doc/classInvited.html2
-rw-r--r--docs/module-doc/classKLine-members.html2
-rw-r--r--docs/module-doc/classKLine.html2
-rw-r--r--docs/module-doc/classModeParameter-members.html2
-rw-r--r--docs/module-doc/classModeParameter.html8
-rw-r--r--docs/module-doc/classModule-members.html4
-rw-r--r--docs/module-doc/classModule.html166
-rw-r--r--docs/module-doc/classModuleFactory-members.html2
-rw-r--r--docs/module-doc/classModuleFactory.html12
-rw-r--r--docs/module-doc/classQLine-members.html2
-rw-r--r--docs/module-doc/classQLine.html2
-rw-r--r--docs/module-doc/classServer-members.html3
-rw-r--r--docs/module-doc/classServer.html443
-rw-r--r--docs/module-doc/classVersion-members.html2
-rw-r--r--docs/module-doc/classVersion.html16
-rw-r--r--docs/module-doc/classXLine-members.html2
-rw-r--r--docs/module-doc/classXLine.html2
-rw-r--r--docs/module-doc/classZLine-members.html2
-rw-r--r--docs/module-doc/classZLine.html2
-rw-r--r--docs/module-doc/classchanrec-members.html2
-rw-r--r--docs/module-doc/classchanrec.html214
-rw-r--r--docs/module-doc/classclassbase-members.html2
-rw-r--r--docs/module-doc/classclassbase.html25
-rw-r--r--docs/module-doc/classclassbase__inherit__graph.gifbin23294 -> 24849 bytes
-rw-r--r--docs/module-doc/classcommand__t-members.html2
-rw-r--r--docs/module-doc/classcommand__t.html2
-rw-r--r--docs/module-doc/classconnection-members.html2
-rw-r--r--docs/module-doc/classconnection.html4
-rw-r--r--docs/module-doc/classes.html34
-rw-r--r--docs/module-doc/classircd__connector-members.html2
-rw-r--r--docs/module-doc/classircd__connector.html2
-rw-r--r--docs/module-doc/classpacket-members.html2
-rw-r--r--docs/module-doc/classpacket.html2
-rw-r--r--docs/module-doc/classserverrec-members.html2
-rw-r--r--docs/module-doc/classserverrec.html2
-rw-r--r--docs/module-doc/classucrec-members.html5
-rw-r--r--docs/module-doc/classucrec.html9
-rw-r--r--docs/module-doc/classucrec__coll__graph.gifbin7010 -> 6061 bytes
-rw-r--r--docs/module-doc/classucrec__inherit__graph.gifbin2445 -> 1444 bytes
-rw-r--r--docs/module-doc/classuserrec-members.html4
-rw-r--r--docs/module-doc/classuserrec.html8
-rw-r--r--docs/module-doc/commands_8h-source.html2
-rw-r--r--docs/module-doc/commands_8h.html4
-rw-r--r--docs/module-doc/connection_8h-source.html2
-rw-r--r--docs/module-doc/connection_8h.html15
-rw-r--r--docs/module-doc/connection_8h__dep__incl.gifbin12508 -> 6767 bytes
-rw-r--r--docs/module-doc/ctables_8h-source.html2
-rw-r--r--docs/module-doc/ctables_8h.html7
-rw-r--r--docs/module-doc/ctables_8h__dep__incl.gifbin3545 -> 5467 bytes
-rw-r--r--docs/module-doc/files.html2
-rw-r--r--docs/module-doc/functions.html20
-rw-r--r--docs/module-doc/globals.html143
-rw-r--r--docs/module-doc/graph_legend.html2
-rw-r--r--docs/module-doc/hierarchy.html8
-rw-r--r--docs/module-doc/inherit__graph__0.gifbin39856 -> 40554 bytes
-rw-r--r--docs/module-doc/inherit__graph__1.gifbin614 -> 956 bytes
-rw-r--r--docs/module-doc/inherit__graph__2.gifbin558 -> 1089 bytes
-rw-r--r--docs/module-doc/inherit__graph__3.gifbin0 -> 1076 bytes
-rw-r--r--docs/module-doc/inherit__graph__4.gifbin0 -> 828 bytes
-rw-r--r--docs/module-doc/inherits.html70
-rw-r--r--docs/module-doc/main.html2
-rw-r--r--docs/module-doc/message_8h-source.html2
-rw-r--r--docs/module-doc/message_8h.html19
-rw-r--r--docs/module-doc/message_8h__dep__incl.gifbin1797 -> 3092 bytes
-rw-r--r--docs/module-doc/mode_8h-source.html4
-rw-r--r--docs/module-doc/mode_8h.html5
-rw-r--r--docs/module-doc/mode_8h__dep__incl.gifbin1693 -> 2993 bytes
-rw-r--r--docs/module-doc/modules_8cpp-source.html1082
-rw-r--r--docs/module-doc/modules_8cpp.html1511
-rw-r--r--docs/module-doc/modules_8cpp__incl.gifbin18452 -> 146506 bytes
-rw-r--r--docs/module-doc/modules_8h-source.html398
-rw-r--r--docs/module-doc/modules_8h.html79
-rw-r--r--docs/module-doc/modules_8h__dep__incl.gifbin1756 -> 3069 bytes
-rw-r--r--docs/module-doc/namespacenspace.html22
-rw-r--r--docs/module-doc/namespaces.html3
-rw-r--r--docs/module-doc/namespacestd.html2
-rw-r--r--docs/module-doc/servers_8cpp-source.html2
-rw-r--r--docs/module-doc/servers_8cpp.html2
-rw-r--r--docs/module-doc/servers_8h-source.html2
-rw-r--r--docs/module-doc/servers_8h.html6
-rw-r--r--docs/module-doc/servers_8h__dep__incl.gifbin1665 -> 4200 bytes
-rw-r--r--docs/module-doc/structInAddr__HashComp-members.html16
-rw-r--r--docs/module-doc/structInAddr__HashComp.html73
-rw-r--r--docs/module-doc/structStrHashComp-members.html16
-rw-r--r--docs/module-doc/structStrHashComp.html70
-rw-r--r--docs/module-doc/structnspace_1_1nspace_1_1hash_3_01in__addr_01_4-members.html16
-rw-r--r--docs/module-doc/structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html63
-rw-r--r--docs/module-doc/structnspace_1_1nspace_1_1hash_3_01string_01_4-members.html16
-rw-r--r--docs/module-doc/structnspace_1_1nspace_1_1hash_3_01string_01_4.html65
-rw-r--r--docs/module-doc/tree.html69
-rw-r--r--docs/module-doc/users_8cpp-source.html4
-rw-r--r--docs/module-doc/users_8cpp.html2
-rw-r--r--docs/module-doc/users_8h-source.html4
-rw-r--r--docs/module-doc/users_8h.html15
-rw-r--r--docs/module-doc/users_8h__dep__incl.gifbin8030 -> 11760 bytes
-rw-r--r--docs/module-doc/xline_8h-source.html2
-rw-r--r--docs/module-doc/xline_8h.html9
-rw-r--r--docs/module-doc/xline_8h__dep__incl.gifbin0 -> 2984 bytes
-rw-r--r--include/modules.h2
132 files changed, 4775 insertions, 1670 deletions
diff --git a/docs/module-doc/annotated.html b/docs/module-doc/annotated.html
index abb0d3b07..53cfa62ab 100644
--- a/docs/module-doc/annotated.html
+++ b/docs/module-doc/annotated.html
@@ -20,7 +20,10 @@
<tr><td class="indexkey"><a class="el" href="classExtMode.html">ExtMode</a></td><td class="indexvalue"></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="classGLine.html">GLine</a></td><td class="indexvalue">GLine class</td></tr>
+ <tr><td class="indexkey"><a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html">nspace::hash&lt; in_addr &gt;</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html">nspace::hash&lt; string &gt;</a></td><td class="indexvalue"></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="structInAddr__HashComp.html">InAddr_HashComp</a></td><td class="indexvalue"></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="classircd__connector.html">ircd_connector</a></td><td class="indexvalue">Each connection has one or more of these each represents ONE outbound connection to another ircd so each inbound has multiple outbounds</td></tr>
@@ -32,13 +35,14 @@
<tr><td class="indexkey"><a class="el" href="classQLine.html">QLine</a></td><td class="indexvalue">QLine class</td></tr>
<tr><td class="indexkey"><a class="el" href="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="classserverrec.html">serverrec</a></td><td class="indexvalue">A class that defines the local server or a remote server</td></tr>
+ <tr><td class="indexkey"><a class="el" href="structStrHashComp.html">StrHashComp</a></td><td class="indexvalue"></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>
<tr><td class="indexkey"><a class="el" href="classXLine.html">XLine</a></td><td class="indexvalue">XLine is the base class for ban lines such as G lines and K lines</td></tr>
<tr><td class="indexkey"><a class="el" href="classZLine.html">ZLine</a></td><td class="indexvalue">ZLine class</td></tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:09 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:18 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/base_8h-source.html b/docs/module-doc/base_8h-source.html
index 7d9860bf8..84e1ee5ea 100644
--- a/docs/module-doc/base_8h-source.html
+++ b/docs/module-doc/base_8h-source.html
@@ -44,7 +44,7 @@
00067
00068 <span class="preprocessor">#endif</span>
00069 <span class="preprocessor"></span>
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:06 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/base_8h.html b/docs/module-doc/base_8h.html
index 3aa70b0db..9c283c306 100644
--- a/docs/module-doc/base_8h.html
+++ b/docs/module-doc/base_8h.html
@@ -59,7 +59,7 @@ This graph shows which files directly or indirectly include this file:<p><center
Definition at line <a class="el" href="base_8h-source.html#l00013">13</a> of file <a class="el" href="base_8h-source.html">base.h</a>. </td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:01 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:07 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/channels_8cpp-source.html b/docs/module-doc/channels_8cpp-source.html
index aee88a231..867825333 100644
--- a/docs/module-doc/channels_8cpp-source.html
+++ b/docs/module-doc/channels_8cpp-source.html
@@ -6,107 +6,192 @@
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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.cpp</h1><a href="channels_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="preprocessor">#include "inspircd_config.h"</span>
-00002 <span class="preprocessor">#include "<a class="code" href="channels_8h.html">channels.h</a>"</span>
-00003 <span class="preprocessor">#include "inspircd.h"</span>
-00004 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
-00005 <span class="preprocessor">#include &lt;string&gt;</span>
-00006 <span class="preprocessor">#include &lt;vector&gt;</span>
-00007
-00008 <span class="keyword">using</span> <span class="keyword">namespace </span>std;
-00009
-<a name="l00010"></a><a class="code" href="channels_8cpp.html#a0">00010</a> std::vector&lt;ModeParameter&gt; <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>;
-00011
-<a name="l00012"></a><a class="code" href="classchanrec.html#a4">00012</a> <a class="code" href="classchanrec.html#a4">chanrec::chanrec</a>()
-00013 {
-00014 strcpy(name,<span class="stringliteral">""</span>);
-00015 strcpy(custom_modes,<span class="stringliteral">""</span>);
-00016 strcpy(topic,<span class="stringliteral">""</span>);
-00017 strcpy(setby,<span class="stringliteral">""</span>);
-00018 strcpy(key,<span class="stringliteral">""</span>);
-00019 <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;
-00020 <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>;
-00021 }
-00022
-<a name="l00023"></a><a class="code" href="classchanrec.html#a0">00023</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a0">chanrec::SetCustomMode</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">bool</span> mode_on)
-00024 {
-00025 <span class="keywordflow">if</span> (mode_on) {
-00026 <span class="keywordtype">char</span> m[3];
-00027 m[0] = mode;
-00028 m[1] = <span class="charliteral">'\0'</span>;
-00029 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
-00030 {
-00031 strncat(custom_modes,m,MAXMODES);
-00032 }
-00033 log(DEBUG,<span class="stringliteral">"Custom mode %c set"</span>,mode);
-00034 }
-00035 <span class="keywordflow">else</span> {
-00036 <span class="keywordtype">char</span> temp[MAXBUF];
-00037 <span class="keywordtype">int</span> count = 0;
-00038 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> q = 0; q &lt; strlen(custom_modes); q++) {
-00039 <span class="keywordflow">if</span> (<a class="code" href="classchanrec.html#m1">custom_modes</a>[q] != mode) {
-00040 temp[count++] = mode;
-00041 }
-00042 }
-00043 temp[count] = <span class="charliteral">'\0'</span>;
-00044 strncpy(custom_modes,temp,MAXMODES);
-00045 log(DEBUG,<span class="stringliteral">"Custom mode %c removed"</span>,mode);
-00046 this-&gt;<a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
-00047 }
-00048 }
+<hr><h1>channels.cpp</h1><a href="channels_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="preprocessor">#include "inspircd.h"</span>
+00002 <span class="preprocessor">#include "inspircd_io.h"</span>
+00003 <span class="preprocessor">#include "inspircd_util.h"</span>
+00004 <span class="preprocessor">#include "inspircd_config.h"</span>
+00005 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
+00006 <span class="preprocessor">#include &lt;fcntl.h&gt;</span>
+00007 <span class="preprocessor">#include &lt;sys/errno.h&gt;</span>
+00008 <span class="preprocessor">#include &lt;sys/ioctl.h&gt;</span>
+00009 <span class="preprocessor">#include &lt;sys/utsname.h&gt;</span>
+00010 <span class="preprocessor">#include &lt;cstdio&gt;</span>
+00011 <span class="preprocessor">#include &lt;time.h&gt;</span>
+00012 <span class="preprocessor">#include &lt;string&gt;</span>
+00013 <span class="preprocessor">#ifdef GCC3</span>
+00014 <span class="preprocessor"></span><span class="preprocessor">#include &lt;ext/hash_map&gt;</span>
+00015 <span class="preprocessor">#else</span>
+00016 <span class="preprocessor"></span><span class="preprocessor">#include &lt;hash_map&gt;</span>
+00017 <span class="preprocessor">#endif</span>
+00018 <span class="preprocessor"></span><span class="preprocessor">#include &lt;map&gt;</span>
+00019 <span class="preprocessor">#include &lt;sstream&gt;</span>
+00020 <span class="preprocessor">#include &lt;vector&gt;</span>
+00021 <span class="preprocessor">#include &lt;errno.h&gt;</span>
+00022 <span class="preprocessor">#include &lt;deque&gt;</span>
+00023 <span class="preprocessor">#include &lt;errno.h&gt;</span>
+00024 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
+00025 <span class="preprocessor">#include &lt;sched.h&gt;</span>
+00026 <span class="preprocessor">#include "<a class="code" href="connection_8h.html">connection.h</a>"</span>
+00027 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
+00028 <span class="preprocessor">#include "<a class="code" href="servers_8h.html">servers.h</a>"</span>
+00029 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span>
+00030 <span class="preprocessor">#include "globals.h"</span>
+00031 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span>
+00032 <span class="preprocessor">#include "dynamic.h"</span>
+00033 <span class="preprocessor">#include "wildcard.h"</span>
+00034 <span class="preprocessor">#include "<a class="code" href="message_8h.html">message.h</a>"</span>
+00035 <span class="preprocessor">#include "<a class="code" href="mode_8h.html">mode.h</a>"</span>
+00036 <span class="preprocessor">#include "<a class="code" href="xline_8h.html">xline.h</a>"</span>
+00037
+00038 <span class="preprocessor">#ifdef GCC3</span>
+00039 <span class="preprocessor"></span><span class="preprocessor">#define nspace __gnu_cxx</span>
+00040 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00041"></a><a class="code" href="channels_8cpp.html#a0">00041</a> <span class="preprocessor"></span><span class="preprocessor">#define nspace std</span>
+00042 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+00043 <span class="preprocessor"></span>
+00044 <span class="keyword">using</span> <span class="keyword">namespace </span>std;
+00045
+00046 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a1">MODCOUNT</a>;
+<a name="l00047"></a><a class="code" href="channels_8cpp.html#a2">00047</a> <span class="keyword">extern</span> vector&lt;Module*&gt; <a class="code" href="channels_8cpp.html#a2">modules</a>;
+<a name="l00048"></a><a class="code" href="channels_8cpp.html#a3">00048</a> <span class="keyword">extern</span> vector&lt;ircd_module*&gt; <a class="code" href="channels_8cpp.html#a3">factory</a>;
00049
-<a name="l00050"></a><a class="code" href="classchanrec.html#a1">00050</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a1">chanrec::SetCustomModeParam</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">char</span>* parameter,<span class="keywordtype">bool</span> mode_on)
-00051 {
-00052
-00053 log(DEBUG,<span class="stringliteral">"SetCustomModeParam called"</span>);
-00054 <a class="code" href="classModeParameter.html">ModeParameter</a> M;
-00055 M.<a class="code" href="classModeParameter.html#m0">mode</a> = mode;
-00056 strcpy(M.<a class="code" href="classModeParameter.html#m2">channel</a>,this-&gt;name);
-00057 strcpy(M.<a class="code" href="classModeParameter.html#m1">parameter</a>,parameter);
-00058 <span class="keywordflow">if</span> (mode_on)
-00059 {
-00060 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
-00061 <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.push_back(M);
-00062 }
-00063 <span class="keywordflow">else</span>
-00064 {
-00065 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.size())
-00066 {
-00067 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.end(); i++)
-00068 {
-00069 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-00070 {
-00071 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
-00072 <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.erase(i);
-00073 <span class="keywordflow">return</span>;
-00074 }
-00075 }
-00076 }
-00077 log(DEBUG,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
-00078 }
-00079 }
-00080
-<a name="l00081"></a><a class="code" href="classchanrec.html#a2">00081</a> <span class="keywordtype">bool</span> <a class="code" href="classchanrec.html#a2">chanrec::IsCustomModeSet</a>(<span class="keywordtype">char</span> mode)
-00082 {
-00083 log(DEBUG,<span class="stringliteral">"Checking ISCustomModeSet: %c %s"</span>,mode,this-&gt;custom_modes);
-00084 <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode) != 0);
-00085 }
+<a name="l00050"></a><a class="code" href="channels_8cpp.html#a4">00050</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a4">LogLevel</a>;
+<a name="l00051"></a><a class="code" href="channels_8cpp.html#a5">00051</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a5">ServerName</a>[MAXBUF];
+<a name="l00052"></a><a class="code" href="channels_8cpp.html#a6">00052</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a6">Network</a>[MAXBUF];
+<a name="l00053"></a><a class="code" href="channels_8cpp.html#a7">00053</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a7">ServerDesc</a>[MAXBUF];
+<a name="l00054"></a><a class="code" href="channels_8cpp.html#a8">00054</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a8">AdminName</a>[MAXBUF];
+<a name="l00055"></a><a class="code" href="channels_8cpp.html#a9">00055</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a9">AdminEmail</a>[MAXBUF];
+<a name="l00056"></a><a class="code" href="channels_8cpp.html#a10">00056</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a10">AdminNick</a>[MAXBUF];
+<a name="l00057"></a><a class="code" href="channels_8cpp.html#a11">00057</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a11">diepass</a>[MAXBUF];
+<a name="l00058"></a><a class="code" href="channels_8cpp.html#a12">00058</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a12">restartpass</a>[MAXBUF];
+<a name="l00059"></a><a class="code" href="channels_8cpp.html#a13">00059</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a13">motd</a>[MAXBUF];
+<a name="l00060"></a><a class="code" href="channels_8cpp.html#a14">00060</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a14">rules</a>[MAXBUF];
+<a name="l00061"></a><a class="code" href="channels_8cpp.html#a15">00061</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a15">list</a>[MAXBUF];
+<a name="l00062"></a><a class="code" href="channels_8cpp.html#a16">00062</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a16">PrefixQuit</a>[MAXBUF];
+<a name="l00063"></a><a class="code" href="channels_8cpp.html#a17">00063</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a17">DieValue</a>[MAXBUF];
+00064
+<a name="l00065"></a><a class="code" href="channels_8cpp.html#a18">00065</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a18">debugging</a>;
+<a name="l00066"></a><a class="code" href="channels_8cpp.html#a19">00066</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a19">WHOWAS_STALE</a>;
+<a name="l00067"></a><a class="code" href="channels_8cpp.html#a20">00067</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a20">WHOWAS_MAX</a>;
+<a name="l00068"></a><a class="code" href="channels_8cpp.html#a21">00068</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a21">DieDelay</a>;
+<a name="l00069"></a><a class="code" href="channels_8cpp.html#a22">00069</a> <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#a22">startup_time</a>;
+<a name="l00070"></a><a class="code" href="channels_8cpp.html#a23">00070</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a23">NetBufferSize</a>;
+<a name="l00071"></a><a class="code" href="channels_8cpp.html#a24">00071</a> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a24">MaxWhoResults</a>;
+<a name="l00072"></a><a class="code" href="channels_8cpp.html#a25">00072</a> <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#a25">nb_start</a>;
+00073
+<a name="l00074"></a><a class="code" href="channels_8cpp.html#a26">00074</a> <span class="keyword">extern</span> std::vector&lt;int&gt; <a class="code" href="channels_8cpp.html#a26">fd_reap</a>;
+<a name="l00075"></a><a class="code" href="channels_8cpp.html#a27">00075</a> <span class="keyword">extern</span> std::vector&lt;std::string&gt; <a class="code" href="channels_8cpp.html#a27">module_names</a>;
+00076
+<a name="l00077"></a><a class="code" href="channels_8cpp.html#a28">00077</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a28">bannerBuffer</a>[MAXBUF];
+<a name="l00078"></a><a class="code" href="channels_8cpp.html#a29">00078</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a29">boundPortCount</a>;
+<a name="l00079"></a><a class="code" href="channels_8cpp.html#a30">00079</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a30">portCount</a>;
+<a name="l00080"></a><a class="code" href="channels_8cpp.html#a31">00080</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a31">UDPportCount</a>;
+<a name="l00081"></a><a class="code" href="channels_8cpp.html#a32">00081</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a32">ports</a>[MAXSOCKS];
+<a name="l00082"></a><a class="code" href="channels_8cpp.html#a33">00082</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a33">defaultRoute</a>;
+00083
+<a name="l00084"></a><a class="code" href="channels_8cpp.html#a34">00084</a> <span class="keyword">extern</span> std::vector&lt;long&gt; <a class="code" href="channels_8cpp.html#a34">auth_cookies</a>;
+<a name="l00085"></a><a class="code" href="channels_8cpp.html#a35">00085</a> <span class="keyword">extern</span> std::stringstream <a class="code" href="channels_8cpp.html#a35">config_f</a>;
00086
-<a name="l00087"></a><a class="code" href="classchanrec.html#a3">00087</a> std::string <a class="code" href="classchanrec.html#a3">chanrec::GetModeParameter</a>(<span class="keywordtype">char</span> mode)
-00088 {
-00089 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.size())
-00090 {
-00091 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.end(); i++)
-00092 {
-00093 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-00094 {
-00095 <span class="keywordflow">return</span> std::string(i-&gt;parameter);
-00096 }
-00097 }
-00098 }
-00099 <span class="keywordflow">return</span> std::string(<span class="stringliteral">""</span>);
-00100 }
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 2004 for InspIRCd by
+<a name="l00087"></a><a class="code" href="channels_8cpp.html#a36">00087</a> <span class="keyword">extern</span> <a class="code" href="classserverrec.html">serverrec</a>* <a class="code" href="channels_8cpp.html#a36">me</a>[32];
+00088
+<a name="l00089"></a><a class="code" href="channels_8cpp.html#a37">00089</a> <span class="keyword">extern</span> FILE *<a class="code" href="channels_8cpp.html#a37">log_file</a>;
+00090
+00091
+00092 <span class="keyword">using</span> <span class="keyword">namespace </span>std;
+00093
+<a name="l00094"></a><a class="code" href="channels_8cpp.html#a38">00094</a> std::vector&lt;ModeParameter&gt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>;
+00095
+<a name="l00096"></a><a class="code" href="classchanrec.html#a4">00096</a> <a class="code" href="classchanrec.html#a4">chanrec::chanrec</a>()
+00097 {
+00098 strcpy(name,<span class="stringliteral">""</span>);
+00099 strcpy(custom_modes,<span class="stringliteral">""</span>);
+00100 strcpy(topic,<span class="stringliteral">""</span>);
+00101 strcpy(setby,<span class="stringliteral">""</span>);
+00102 strcpy(key,<span class="stringliteral">""</span>);
+00103 <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;
+00104 <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>;
+00105 }
+00106
+<a name="l00107"></a><a class="code" href="classchanrec.html#a0">00107</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a0">chanrec::SetCustomMode</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">bool</span> mode_on)
+00108 {
+00109 <span class="keywordflow">if</span> (mode_on) {
+00110 <span class="keywordtype">char</span> m[3];
+00111 m[0] = mode;
+00112 m[1] = <span class="charliteral">'\0'</span>;
+00113 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
+00114 {
+00115 strncat(custom_modes,m,MAXMODES);
+00116 }
+00117 log(DEBUG,<span class="stringliteral">"Custom mode %c set"</span>,mode);
+00118 }
+00119 <span class="keywordflow">else</span> {
+00120 <span class="keywordtype">char</span> temp[MAXBUF];
+00121 <span class="keywordtype">int</span> count = 0;
+00122 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> q = 0; q &lt; strlen(custom_modes); q++) {
+00123 <span class="keywordflow">if</span> (<a class="code" href="classchanrec.html#m1">custom_modes</a>[q] != mode) {
+00124 temp[count++] = mode;
+00125 }
+00126 }
+00127 temp[count] = <span class="charliteral">'\0'</span>;
+00128 strncpy(custom_modes,temp,MAXMODES);
+00129 log(DEBUG,<span class="stringliteral">"Custom mode %c removed"</span>,mode);
+00130 this-&gt;<a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
+00131 }
+00132 }
+00133
+00134
+<a name="l00135"></a><a class="code" href="classchanrec.html#a1">00135</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#a1">chanrec::SetCustomModeParam</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">char</span>* parameter,<span class="keywordtype">bool</span> mode_on)
+00136 {
+00137
+00138 log(DEBUG,<span class="stringliteral">"SetCustomModeParam called"</span>);
+00139 <a class="code" href="classModeParameter.html">ModeParameter</a> M;
+00140 M.<a class="code" href="classModeParameter.html#m0">mode</a> = mode;
+00141 strcpy(M.<a class="code" href="classModeParameter.html#m2">channel</a>,this-&gt;name);
+00142 strcpy(M.<a class="code" href="classModeParameter.html#m1">parameter</a>,parameter);
+00143 <span class="keywordflow">if</span> (mode_on)
+00144 {
+00145 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
+00146 <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.push_back(M);
+00147 }
+00148 <span class="keywordflow">else</span>
+00149 {
+00150 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
+00151 {
+00152 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
+00153 {
+00154 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+00155 {
+00156 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
+00157 <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.erase(i);
+00158 <span class="keywordflow">return</span>;
+00159 }
+00160 }
+00161 }
+00162 log(DEBUG,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
+00163 }
+00164 }
+00165
+<a name="l00166"></a><a class="code" href="classchanrec.html#a2">00166</a> <span class="keywordtype">bool</span> <a class="code" href="classchanrec.html#a2">chanrec::IsCustomModeSet</a>(<span class="keywordtype">char</span> mode)
+00167 {
+00168 log(DEBUG,<span class="stringliteral">"Checking ISCustomModeSet: %c %s"</span>,mode,this-&gt;custom_modes);
+00169 <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode) != 0);
+00170 }
+00171
+<a name="l00172"></a><a class="code" href="classchanrec.html#a3">00172</a> std::string <a class="code" href="classchanrec.html#a3">chanrec::GetModeParameter</a>(<span class="keywordtype">char</span> mode)
+00173 {
+00174 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
+00175 {
+00176 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
+00177 {
+00178 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+00179 {
+00180 <span class="keywordflow">return</span> std::string(i-&gt;parameter);
+00181 }
+00182 }
+00183 }
+00184 <span class="keywordflow">return</span> std::string(<span class="stringliteral">""</span>);
+00185 }
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:06 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/channels_8cpp.html b/docs/module-doc/channels_8cpp.html
index 45ffc4333..45de799ac 100644
--- a/docs/module-doc/channels_8cpp.html
+++ b/docs/module-doc/channels_8cpp.html
@@ -6,18 +6,48 @@
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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.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 "inspircd.h"</code><br>
-<code>#include &lt;stdio.h&gt;</code><br>
+<hr><h1>channels.cpp File Reference</h1><code>#include "inspircd.h"</code><br>
+<code>#include "inspircd_io.h"</code><br>
+<code>#include "inspircd_util.h"</code><br>
+<code>#include "inspircd_config.h"</code><br>
+<code>#include &lt;unistd.h&gt;</code><br>
+<code>#include &lt;fcntl.h&gt;</code><br>
+<code>#include &lt;sys/errno.h&gt;</code><br>
+<code>#include &lt;sys/ioctl.h&gt;</code><br>
+<code>#include &lt;sys/utsname.h&gt;</code><br>
+<code>#include &lt;cstdio&gt;</code><br>
+<code>#include &lt;time.h&gt;</code><br>
<code>#include &lt;string&gt;</code><br>
+<code>#include &lt;hash_map&gt;</code><br>
+<code>#include &lt;map&gt;</code><br>
+<code>#include &lt;sstream&gt;</code><br>
<code>#include &lt;vector&gt;</code><br>
+<code>#include &lt;errno.h&gt;</code><br>
+<code>#include &lt;deque&gt;</code><br>
+<code>#include &lt;sched.h&gt;</code><br>
+<code>#include "<a class="el" href="connection_8h-source.html">connection.h</a>"</code><br>
+<code>#include "<a class="el" href="users_8h-source.html">users.h</a>"</code><br>
+<code>#include "<a class="el" href="servers_8h-source.html">servers.h</a>"</code><br>
+<code>#include "<a class="el" href="ctables_8h-source.html">ctables.h</a>"</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 "dynamic.h"</code><br>
+<code>#include "wildcard.h"</code><br>
+<code>#include "<a class="el" href="message_8h-source.html">message.h</a>"</code><br>
+<code>#include "<a class="el" href="mode_8h-source.html">mode.h</a>"</code><br>
+<code>#include "<a class="el" href="xline_8h-source.html">xline.h</a>"</code><br>
<p>
Include dependency graph for channels.cpp:<p><center><img src="channels_8cpp__incl.gif" border="0" usemap="#channels.cpp_map" alt="Include dependency graph"></center>
<map name="channels.cpp_map">
-<area href="channels_8h.html" shape="rect" coords="211,155,283,176" alt="">
-<area href="base_8h.html" shape="rect" coords="139,86,187,107" alt="">
+<area href="ctables_8h.html" shape="rect" coords="309,863,371,884" alt="">
+<area href="connection_8h.html" shape="rect" coords="176,1064,256,1085" alt="">
+<area href="users_8h.html" shape="rect" coords="315,411,365,432" alt="">
+<area href="servers_8h.html" shape="rect" coords="308,1061,372,1083" alt="">
+<area href="modules_8h.html" shape="rect" coords="436,715,503,736" alt="">
+<area href="message_8h.html" shape="rect" coords="433,267,505,288" alt="">
+<area href="mode_8h.html" shape="rect" coords="444,368,495,389" alt="">
+<area href="xline_8h.html" shape="rect" coords="445,551,493,572" alt="">
</map>
<p>
@@ -25,11 +55,243 @@ Include dependency graph for channels.cpp:<p><center><img src="channels_8cpp__in
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Namespaces</h2></td></tr>
<tr><td nowrap align=right valign=top>namespace &nbsp;</td><td valign=bottom><a class="el" href="namespacestd.html">std</a></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_8cpp.html#a0">nspace</a>&nbsp;&nbsp;&nbsp;std</td></tr>
<tr><td colspan=2><br><h2>Variables</h2></td></tr>
-<tr><td nowrap align=right valign=top>std::vector&lt; <a class="el" href="classModeParameter.html">ModeParameter</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a0">custom_mode_params</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a1">MODCOUNT</a> = -1</td></tr>
+<tr><td nowrap align=right valign=top>vector&lt; <a class="el" href="classModule.html">Module</a> * &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a2">modules</a></td></tr>
+<tr><td nowrap align=right valign=top>vector&lt; <a class="el" href="modules_8h.html#a25">ircd_module</a> * &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a3">factory</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a4">LogLevel</a></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a5">ServerName</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a6">Network</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a7">ServerDesc</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a8">AdminName</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a9">AdminEmail</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a10">AdminNick</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a11">diepass</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a12">restartpass</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a13">motd</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a14">rules</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a15">list</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a16">PrefixQuit</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a17">DieValue</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a18">debugging</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a19">WHOWAS_STALE</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a20">WHOWAS_MAX</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a21">DieDelay</a></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a22">startup_time</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a23">NetBufferSize</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a24">MaxWhoResults</a></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a25">nb_start</a></td></tr>
+<tr><td nowrap align=right valign=top>std::vector&lt; int &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a26">fd_reap</a></td></tr>
+<tr><td nowrap align=right valign=top>std::vector&lt; std::string &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a27">module_names</a></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a28">bannerBuffer</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a29">boundPortCount</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a30">portCount</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a31">UDPportCount</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a32">ports</a> [MAXSOCKS]</td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a33">defaultRoute</a></td></tr>
+<tr><td nowrap align=right valign=top>std::vector&lt; long &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a34">auth_cookies</a></td></tr>
+<tr><td nowrap align=right valign=top>std::stringstream&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a35">config_f</a></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="classserverrec.html">serverrec</a> *&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a36">me</a> [32]</td></tr>
+<tr><td nowrap align=right valign=top>FILE *&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a37">log_file</a></td></tr>
+<tr><td nowrap align=right valign=top>std::vector&lt; <a class="el" href="classModeParameter.html">ModeParameter</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8cpp.html#a38">custom_mode_params</a></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a name="a0" doxytag="channels.cpp::nspace"></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 nspace&nbsp;&nbsp;&nbsp;std
+ </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_8cpp-source.html#l00041">41</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
</table>
<hr><h2>Variable Documentation</h2>
-<a name="a0" doxytag="channels.cpp::custom_mode_params"></a><p>
+<a name="a9" doxytag="channels.cpp::AdminEmail"></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 AdminEmail[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_8cpp-source.html#l00055">55</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a8" doxytag="channels.cpp::AdminName"></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 AdminName[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_8cpp-source.html#l00054">54</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a10" doxytag="channels.cpp::AdminNick"></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 AdminNick[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_8cpp-source.html#l00056">56</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a34" doxytag="channels.cpp::auth_cookies"></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"> std::vector&lt;long&gt; auth_cookies
+ </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_8cpp-source.html#l00084">84</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a28" doxytag="channels.cpp::bannerBuffer"></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 bannerBuffer[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_8cpp-source.html#l00077">77</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a29" doxytag="channels.cpp::boundPortCount"></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 boundPortCount
+ </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_8cpp-source.html#l00078">78</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a35" doxytag="channels.cpp::config_f"></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"> std::stringstream config_f
+ </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_8cpp-source.html#l00085">85</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a38" doxytag="channels.cpp::custom_mode_params"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -50,12 +312,732 @@ Include dependency graph for channels.cpp:<p><center><img src="channels_8cpp__in
<p>
<p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00010">10</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00094">94</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00172">chanrec::GetModeParameter()</a>, and <a class="el" href="channels_8cpp-source.html#l00135">chanrec::SetCustomModeParam()</a>. </td>
+ </tr>
+</table>
+<a name="a18" doxytag="channels.cpp::debugging"></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 debugging
+ </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_8cpp-source.html#l00065">65</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a33" doxytag="channels.cpp::defaultRoute"></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 defaultRoute
+ </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_8cpp-source.html#l00082">82</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a21" doxytag="channels.cpp::DieDelay"></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 DieDelay
+ </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_8cpp-source.html#l00068">68</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a11" doxytag="channels.cpp::diepass"></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 diepass[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_8cpp-source.html#l00057">57</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a17" doxytag="channels.cpp::DieValue"></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 DieValue[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_8cpp-source.html#l00063">63</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a3" doxytag="channels.cpp::factory"></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"> vector&lt;<a class="el" href="modules_8h.html#a25">ircd_module</a>*&gt; factory
+ </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_8cpp-source.html#l00048">48</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a26" doxytag="channels.cpp::fd_reap"></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"> std::vector&lt;int&gt; fd_reap
+ </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_8cpp-source.html#l00074">74</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a15" doxytag="channels.cpp::list"></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 list[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_8cpp-source.html#l00061">61</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a37" doxytag="channels.cpp::log_file"></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"> FILE* log_file
+ </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_8cpp-source.html#l00089">89</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a4" doxytag="channels.cpp::LogLevel"></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 LogLevel
+ </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_8cpp-source.html#l00050">50</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a24" doxytag="channels.cpp::MaxWhoResults"></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 MaxWhoResults
+ </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_8cpp-source.html#l00071">71</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a36" doxytag="channels.cpp::me"></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="classserverrec.html">serverrec</a>* me[32]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8cpp-source.html#l00087">87</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a1" doxytag="channels.cpp::MODCOUNT"></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 MODCOUNT = -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="modules_8cpp-source.html#l00652">652</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a27" doxytag="channels.cpp::module_names"></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"> std::vector&lt;std::string&gt; module_names
+ </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_8cpp-source.html#l00075">75</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a2" doxytag="channels.cpp::modules"></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"> vector&lt;<a class="el" href="classModule.html">Module</a>*&gt; modules
+ </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_8cpp-source.html#l00047">47</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a13" doxytag="channels.cpp::motd"></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 motd[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_8cpp-source.html#l00059">59</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a25" doxytag="channels.cpp::nb_start"></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 nb_start
+ </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_8cpp-source.html#l00072">72</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a23" doxytag="channels.cpp::NetBufferSize"></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 NetBufferSize
+ </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_8cpp-source.html#l00070">70</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a6" doxytag="channels.cpp::Network"></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 Network[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_8cpp-source.html#l00052">52</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a30" doxytag="channels.cpp::portCount"></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 portCount
+ </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_8cpp-source.html#l00079">79</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a32" doxytag="channels.cpp::ports"></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 ports[MAXSOCKS]
+ </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_8cpp-source.html#l00081">81</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a16" doxytag="channels.cpp::PrefixQuit"></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 PrefixQuit[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_8cpp-source.html#l00062">62</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a12" doxytag="channels.cpp::restartpass"></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 restartpass[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_8cpp-source.html#l00058">58</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a14" doxytag="channels.cpp::rules"></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 rules[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_8cpp-source.html#l00060">60</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a7" doxytag="channels.cpp::ServerDesc"></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 ServerDesc[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_8cpp-source.html#l00053">53</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a5" doxytag="channels.cpp::ServerName"></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 ServerName[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_8cpp-source.html#l00051">51</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a22" doxytag="channels.cpp::startup_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 startup_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_8cpp-source.html#l00069">69</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a31" doxytag="channels.cpp::UDPportCount"></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 UDPportCount
+ </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_8cpp-source.html#l00080">80</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a20" doxytag="channels.cpp::WHOWAS_MAX"></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 WHOWAS_MAX
+ </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_8cpp-source.html#l00067">67</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a19" doxytag="channels.cpp::WHOWAS_STALE"></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 WHOWAS_STALE
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00087">chanrec::GetModeParameter()</a>, and <a class="el" href="channels_8cpp-source.html#l00050">chanrec::SetCustomModeParam()</a>. </td>
+Definition at line <a class="el" href="channels_8cpp-source.html#l00066">66</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>. </td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:01 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:08 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/channels_8cpp__incl.gif b/docs/module-doc/channels_8cpp__incl.gif
index e9574e746..e969c0636 100644
--- a/docs/module-doc/channels_8cpp__incl.gif
+++ b/docs/module-doc/channels_8cpp__incl.gif
Binary files differ
diff --git a/docs/module-doc/channels_8h-source.html b/docs/module-doc/channels_8h-source.html
index 9812ef9b2..3016a0db1 100644
--- a/docs/module-doc/channels_8h-source.html
+++ b/docs/module-doc/channels_8h-source.html
@@ -116,7 +116,7 @@
<a name="l00183"></a><a class="code" href="channels_8h.html#a3">00183</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_PROTECT 8</span>
<a name="l00184"></a><a class="code" href="channels_8h.html#a4">00184</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_FOUNDER 16</span>
00185 <span class="preprocessor"></span>
-<a name="l00191"></a><a class="code" href="classucrec.html">00191</a> <span class="keyword">class </span><a class="code" href="classucrec.html">ucrec</a> : <span class="keyword">public</span> <a class="code" href="classExtensible.html">Extensible</a>
+<a name="l00191"></a><a class="code" href="classucrec.html">00191</a> <span class="keyword">class </span><a class="code" href="classucrec.html">ucrec</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
00192 {
00193 <span class="keyword">public</span>:
<a name="l00197"></a><a class="code" href="classucrec.html#m0">00197</a> <span class="keywordtype">long</span> <a class="code" href="classucrec.html#m0">uc_modes</a>;
@@ -129,7 +129,7 @@
00207
00208 <span class="preprocessor">#endif</span>
00209 <span class="preprocessor"></span>
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:06 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/channels_8h.html b/docs/module-doc/channels_8h.html
index 491130e8f..a48e4e135 100644
--- a/docs/module-doc/channels_8h.html
+++ b/docs/module-doc/channels_8h.html
@@ -21,14 +21,14 @@ Include dependency graph for channels.h:<p><center><img src="channels_8h__incl.g
<p>
This graph shows which files directly or indirectly include this file:<p><center><img src="channels_8h__dep__incl.gif" border="0" usemap="#channels.hdep_map" alt="Included by dependency graph"></center>
<map name="channels.hdep_map">
-<area href="channels_8cpp.html" shape="rect" coords="7,155,95,176" alt="">
-<area href="users_8cpp.html" shape="rect" coords="48,86,115,107" alt="">
-<area href="users_8h.html" shape="rect" coords="220,155,271,176" alt="">
-<area href="commands_8h.html" shape="rect" coords="139,86,221,107" alt="">
-<area href="modules_8cpp.html" shape="rect" coords="240,16,323,38" alt="">
-<area href="message_8h.html" shape="rect" coords="245,86,317,107" alt="">
-<area href="mode_8h.html" shape="rect" coords="341,86,392,107" alt="">
-<area href="xline_8h.html" shape="rect" coords="416,86,464,107" alt="">
+<area href="users_8cpp.html" shape="rect" coords="7,86,73,107" alt="">
+<area href="users_8h.html" shape="rect" coords="200,155,251,176" alt="">
+<area href="channels_8cpp.html" shape="rect" coords="373,16,461,38" alt="">
+<area href="message_8h.html" shape="rect" coords="327,86,399,107" alt="">
+<area href="mode_8h.html" shape="rect" coords="423,86,473,107" alt="">
+<area href="xline_8h.html" shape="rect" coords="255,86,303,107" alt="">
+<area href="modules_8cpp.html" shape="rect" coords="237,16,320,38" alt="">
+<area href="commands_8h.html" shape="rect" coords="97,86,180,107" alt="">
</map>
<p>
@@ -263,7 +263,7 @@ Holds a complete invite list.
Definition at line <a class="el" href="channels_8h-source.html#l00077">77</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 Sat May 1 13:39:02 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:09 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/channels_8h__dep__incl.gif b/docs/module-doc/channels_8h__dep__incl.gif
index c8c5064e3..6281b51ed 100644
--- a/docs/module-doc/channels_8h__dep__incl.gif
+++ b/docs/module-doc/channels_8h__dep__incl.gif
Binary files differ
diff --git a/docs/module-doc/classAdmin-members.html b/docs/module-doc/classAdmin-members.html
index 1016ac41e..d785e2eff 100644
--- a/docs/module-doc/classAdmin-members.html
+++ b/docs/module-doc/classAdmin-members.html
@@ -14,7 +14,7 @@
<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>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:10 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:18 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classAdmin.html b/docs/module-doc/classAdmin.html
index 6682ae817..62af6c8ed 100644
--- a/docs/module-doc/classAdmin.html
+++ b/docs/module-doc/classAdmin.html
@@ -35,7 +35,7 @@ It is constructed by class <a class="el" href="classServer.html">Server</a>, and
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00100">100</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00104">104</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>
@@ -79,9 +79,9 @@ Definition at line <a class="el" href="modules_8h-source.html#l00100">100</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00137">137</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00283">283</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00137 : <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) { };
+<div class="fragment"><pre>00283 : <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>
@@ -107,7 +107,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00137">137</a>
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00103">103</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00107">107</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>
@@ -131,7 +131,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00103">103</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00103">103</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00107">107</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>
@@ -155,12 +155,12 @@ Definition at line <a class="el" href="modules_8h-source.html#l00103">103</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00103">103</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00107">107</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 Sat May 1 13:39:10 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:18 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classBanItem-members.html b/docs/module-doc/classBanItem-members.html
index 5a4677502..db972727f 100644
--- a/docs/module-doc/classBanItem-members.html
+++ b/docs/module-doc/classBanItem-members.html
@@ -15,7 +15,7 @@
<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="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></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 Sat May 1 13:39:11 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:19 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classBanItem.html b/docs/module-doc/classBanItem.html
index 9557c93ac..9901750d8 100644
--- a/docs/module-doc/classBanItem.html
+++ b/docs/module-doc/classBanItem.html
@@ -31,7 +31,7 @@ A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to h
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00034">34</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 Sat May 1 13:39:11 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:19 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classConfigReader-members.html b/docs/module-doc/classConfigReader-members.html
index 683542e9d..8dcacacc9 100644
--- a/docs/module-doc/classConfigReader-members.html
+++ b/docs/module-doc/classConfigReader-members.html
@@ -19,7 +19,7 @@
<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="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></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 Sat May 1 13:39:13 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:22 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classConfigReader.html b/docs/module-doc/classConfigReader.html
index 34229d103..648d7fd88 100644
--- a/docs/module-doc/classConfigReader.html
+++ b/docs/module-doc/classConfigReader.html
@@ -49,7 +49,7 @@ It may either be instantiated with one parameter or none. Constructing the class
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00588">588</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00612">612</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>
@@ -79,14 +79,14 @@ 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#l00385">385</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00553">553</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00596">cache</a>, and <a class="el" href="modules_8h-source.html#l00599">error</a>.
+References <a class="el" href="modules_8h-source.html#l00620">cache</a>, and <a class="el" href="modules_8h-source.html#l00623">error</a>.
<p>
-<div class="fragment"><pre>00386 {
-00387 this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00388 this-&gt;<a class="code" href="classConfigReader.html#n1">error</a> = LoadConf(CONFIG_FILE,this-&gt;cache);
-00389 }
+<div class="fragment"><pre>00554 {
+00555 this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+00556 this-&gt;<a class="code" href="classConfigReader.html#n1">error</a> = LoadConf(CONFIG_FILE,this-&gt;cache);
+00557 }
</pre></div> </td>
</tr>
</table>
@@ -120,14 +120,14 @@ 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#l00399">399</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00567">567</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00596">cache</a>, and <a class="el" href="modules_8h-source.html#l00599">error</a>.
+References <a class="el" href="modules_8h-source.html#l00620">cache</a>, and <a class="el" href="modules_8h-source.html#l00623">error</a>.
<p>
-<div class="fragment"><pre>00400 {
-00401 this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00402 this-&gt;<a class="code" href="classConfigReader.html#n1">error</a> = LoadConf(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>);
-00403 };
+<div class="fragment"><pre>00568 {
+00569 this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+00570 this-&gt;<a class="code" href="classConfigReader.html#n1">error</a> = LoadConf(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>);
+00571 };
</pre></div> </td>
</tr>
</table>
@@ -160,14 +160,14 @@ Default destructor.
<p>
This method destroys the ConfigReader class.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00392">392</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00560">560</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00596">cache</a>.
+References <a class="el" href="modules_8h-source.html#l00620">cache</a>.
<p>
-<div class="fragment"><pre>00393 {
-00394 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>)
-00395 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>;
-00396 }
+<div class="fragment"><pre>00561 {
+00562 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>)
+00563 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>;
+00564 }
</pre></div> </td>
</tr>
</table>
@@ -202,11 +202,11 @@ Counts the number of times a given tag appears in the config file.
<p>
This method counts the number of times a tag appears in a config file, for use where there are several tags of the same kind, e.g. with opers and connect types. It can be used with the index value of <a class="el" href="classConfigReader.html#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#l00417">417</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00585">585</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00418 {
-00419 <span class="keywordflow">return</span> EnumConf(cache,tag.c_str());
-00420 }
+<div class="fragment"><pre>00586 {
+00587 <span class="keywordflow">return</span> EnumConf(cache,tag.c_str());
+00588 }
</pre></div> </td>
</tr>
</table>
@@ -249,11 +249,11 @@ Returns the number of items within a tag.
<p>
For example if the tag was &lt;test tag="blah" data="foo"&gt; then this function would return 2. Spaces and newlines both qualify as valid seperators between values.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00422">422</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00590">590</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00423 {
-00424 <span class="keywordflow">return</span> EnumValues(cache, tag.c_str(), index);
-00425 }
+<div class="fragment"><pre>00591 {
+00592 <span class="keywordflow">return</span> EnumValues(cache, tag.c_str(), index);
+00593 }
</pre></div> </td>
</tr>
</table>
@@ -302,17 +302,17 @@ 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#l00405">405</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-<div class="fragment"><pre>00406 {
-00407 <span class="keywordtype">char</span> val[MAXBUF];
-00408 <span class="keywordtype">char</span> t[MAXBUF];
-00409 <span class="keywordtype">char</span> n[MAXBUF];
-00410 strncpy(t,tag.c_str(),MAXBUF);
-00411 strncpy(n,name.c_str(),MAXBUF);
-00412 ReadConf(cache,t,n,index,val);
-00413 <span class="keywordflow">return</span> std::string(val);
-00414 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00573">573</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00574 {
+00575 <span class="keywordtype">char</span> val[MAXBUF];
+00576 <span class="keywordtype">char</span> t[MAXBUF];
+00577 <span class="keywordtype">char</span> n[MAXBUF];
+00578 strncpy(t,tag.c_str(),MAXBUF);
+00579 strncpy(n,name.c_str(),MAXBUF);
+00580 ReadConf(cache,t,n,index,val);
+00581 <span class="keywordflow">return</span> std::string(val);
+00582 }
</pre></div> </td>
</tr>
</table>
@@ -345,13 +345,13 @@ Returns true if a config file is valid.
<p>
This method is partially implemented and will only return false if the config file does not exist or could not be opened.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00427">427</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00595">595</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00599">error</a>.
+References <a class="el" href="modules_8h-source.html#l00623">error</a>.
<p>
-<div class="fragment"><pre>00428 {
-00429 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#n1">error</a>;
-00430 }
+<div class="fragment"><pre>00596 {
+00597 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#n1">error</a>;
+00598 }
</pre></div> </td>
</tr>
</table>
@@ -379,9 +379,9 @@ The contents of the configuration file This protected member should never be acc
<p>
It will contain a pointer to the configuration file data with unneeded data (such as comments) stripped from it.
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00596">596</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00620">620</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#l00385">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00392">~ConfigReader()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00553">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00560">~ConfigReader()</a>. </td>
</tr>
</table>
<a name="n1" doxytag="ConfigReader::error"></a><p>
@@ -407,14 +407,14 @@ Used to store errors.
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00599">599</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00623">623</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#l00385">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00427">Verify()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00553">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00595">Verify()</a>. </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:13 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:22 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classConnectClass-members.html b/docs/module-doc/classConnectClass-members.html
index 24b8fde34..7618f37f3 100644
--- a/docs/module-doc/classConnectClass-members.html
+++ b/docs/module-doc/classConnectClass-members.html
@@ -16,7 +16,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classConnectClass.html#m1">registration_timeout</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>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:14 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:22 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classConnectClass.html b/docs/module-doc/classConnectClass.html
index e23e9f1ad..ff4ce6153 100644
--- a/docs/module-doc/classConnectClass.html
+++ b/docs/module-doc/classConnectClass.html
@@ -212,7 +212,7 @@ Definition at line <a class="el" href="users_8h-source.html#l00039">39</a> of fi
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="users_8h-source.html">users.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:14 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:22 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classExemptItem-members.html b/docs/module-doc/classExemptItem-members.html
index b36a01af2..e6c0c1f07 100644
--- a/docs/module-doc/classExemptItem-members.html
+++ b/docs/module-doc/classExemptItem-members.html
@@ -15,7 +15,7 @@
<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="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></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 Sat May 1 13:39:15 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:24 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classExemptItem.html b/docs/module-doc/classExemptItem.html
index 6c6544ef4..22bad4370 100644
--- a/docs/module-doc/classExemptItem.html
+++ b/docs/module-doc/classExemptItem.html
@@ -31,7 +31,7 @@ A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to h
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00042">42</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 Sat May 1 13:39:15 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:24 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classExtMode-members.html b/docs/module-doc/classExtMode-members.html
index 462ff320c..38d2d3719 100644
--- a/docs/module-doc/classExtMode-members.html
+++ b/docs/module-doc/classExtMode-members.html
@@ -17,7 +17,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classExtMode.html#m2">params_when_on</a></td><td><a class="el" href="classExtMode.html">ExtMode</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classExtMode.html#m1">type</a></td><td><a class="el" href="classExtMode.html">ExtMode</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:17 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:25 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classExtMode.html b/docs/module-doc/classExtMode.html
index 751aad764..f43dbc010 100644
--- a/docs/module-doc/classExtMode.html
+++ b/docs/module-doc/classExtMode.html
@@ -82,9 +82,9 @@
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00030">30</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00175">175</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00030 : <a class="code" href="classExtMode.html#m0">modechar</a>(mc), <a class="code" href="classExtMode.html#m1">type</a>(ty), <a class="code" href="classExtMode.html#m4">needsoper</a>(oper), <a class="code" href="classExtMode.html#m2">params_when_on</a>(p_on), <a class="code" href="classExtMode.html#m3">params_when_off</a>(p_off) { };
+<div class="fragment"><pre>00175 : <a class="code" href="classExtMode.html#m0">modechar</a>(mc), <a class="code" href="classExtMode.html#m1">type</a>(ty), <a class="code" href="classExtMode.html#m4">needsoper</a>(oper), <a class="code" href="classExtMode.html#m2">params_when_on</a>(p_on), <a class="code" href="classExtMode.html#m3">params_when_off</a>(p_off) { };
</pre></div> </td>
</tr>
</table>
@@ -110,7 +110,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00030">30</a> o
<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>. </td>
+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>. </td>
</tr>
</table>
<a name="m0" doxytag="ExtMode::modechar"></a><p>
@@ -134,7 +134,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00029">29</a> o
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00024">24</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00169">169</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
</tr>
</table>
<a name="m4" doxytag="ExtMode::needsoper"></a><p>
@@ -158,7 +158,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00024">24</a> o
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00028">28</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00173">173</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
</tr>
</table>
<a name="m3" doxytag="ExtMode::params_when_off"></a><p>
@@ -182,7 +182,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00028">28</a> o
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00027">27</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00172">172</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
</tr>
</table>
<a name="m2" doxytag="ExtMode::params_when_on"></a><p>
@@ -206,7 +206,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00027">27</a> o
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00026">26</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00171">171</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
</tr>
</table>
<a name="m1" doxytag="ExtMode::type"></a><p>
@@ -230,12 +230,12 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00026">26</a> o
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00025">25</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00170">170</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:17 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:25 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classExtensible-members.html b/docs/module-doc/classExtensible-members.html
index 2fb6d28fb..1879a77f2 100644
--- a/docs/module-doc/classExtensible-members.html
+++ b/docs/module-doc/classExtensible-members.html
@@ -14,7 +14,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classExtensible.html#a2">GetExt</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classExtensible.html#a1">Shrink</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:16 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:25 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classExtensible.html b/docs/module-doc/classExtensible.html
index ee9c6bdde..8add77476 100644
--- a/docs/module-doc/classExtensible.html
+++ b/docs/module-doc/classExtensible.html
@@ -17,8 +17,7 @@ Inheritance diagram for Extensible:<p><center><img src="classExtensible__inherit
<area href="classcommand__t.html" shape="rect" coords="89,155,167,176" alt="">
<area href="classconnection.html" shape="rect" coords="191,155,260,176" alt="">
<area href="classircd__connector.html" shape="rect" coords="284,155,380,176" alt="">
-<area href="classucrec.html" shape="rect" coords="404,155,449,176" alt="">
-<area href="classclassbase.html" shape="rect" coords="192,16,259,38" alt="">
+<area href="classclassbase.html" shape="rect" coords="143,16,209,38" alt="">
<area href="classserverrec.html" shape="rect" coords="149,224,216,246" alt="">
<area href="classuserrec.html" shape="rect" coords="240,224,296,246" alt="">
</map>
@@ -178,7 +177,7 @@ Definition at line <a class="el" href="base_8h-source.html#l00042">42</a> of fil
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="base_8h-source.html">base.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:16 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:25 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classExtensible__inherit__graph.gif b/docs/module-doc/classExtensible__inherit__graph.gif
index 829cb917e..cf8e3eec4 100644
--- a/docs/module-doc/classExtensible__inherit__graph.gif
+++ b/docs/module-doc/classExtensible__inherit__graph.gif
Binary files differ
diff --git a/docs/module-doc/classFileReader-members.html b/docs/module-doc/classFileReader-members.html
index 80a52cb41..6f3568105 100644
--- a/docs/module-doc/classFileReader-members.html
+++ b/docs/module-doc/classFileReader-members.html
@@ -18,7 +18,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a3">LoadFile</a>(std::string filename)</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
<tr 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 Sat May 1 13:39:17 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:26 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classFileReader.html b/docs/module-doc/classFileReader.html
index 4d53881cf..fc98c5761 100644
--- a/docs/module-doc/classFileReader.html
+++ b/docs/module-doc/classFileReader.html
@@ -46,7 +46,7 @@ This class contains methods for read-only manipulation of a text file in memory.
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00648">648</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00672">672</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>
@@ -76,10 +76,10 @@ Default constructor.
<p>
This method does not load any file into memory, you must use the LoadFile method after constructing the class this way.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00440">440</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00608">608</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00441 {
-00442 }
+<div class="fragment"><pre>00609 {
+00610 }
</pre></div> </td>
</tr>
</table>
@@ -113,15 +113,15 @@ Secondary constructor.
<p>
This method initialises the class with a file loaded into it ready for GetLine and and other methods to be called. If the file could not be loaded, <a class="el" href="classFileReader.html#a6">FileReader::FileSize</a> returns 0.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00433">433</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00601">601</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00650">fc</a>, and <a class="el" href="modules_8h-source.html#l00050">file_cache</a>.
+References <a class="el" href="modules_8h-source.html#l00674">fc</a>, and <a class="el" href="modules_8h-source.html#l00050">file_cache</a>.
<p>
-<div class="fragment"><pre>00434 {
-00435 <a class="code" href="modules_8h.html#a22">file_cache</a> c;
-00436 readfile(c,filename.c_str());
-00437 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
-00438 }
+<div class="fragment"><pre>00602 {
+00603 <a class="code" href="modules_8h.html#a22">file_cache</a> c;
+00604 readfile(c,filename.c_str());
+00605 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+00606 }
</pre></div> </td>
</tr>
</table>
@@ -154,10 +154,10 @@ Default destructor.
<p>
This deletes the memory allocated to the file.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00452">452</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00620">620</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00453 {
-00454 }
+<div class="fragment"><pre>00621 {
+00622 }
</pre></div> </td>
</tr>
</table>
@@ -191,20 +191,20 @@ Returns true if the file exists This function will return false if the file coul
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00456">456</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00624">624</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00650">fc</a>.
+References <a class="el" href="modules_8h-source.html#l00674">fc</a>.
<p>
-<div class="fragment"><pre>00457 {
-00458 <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#o0">fc</a>.size() == 0)
-00459 {
-00460 <span class="keywordflow">return</span>(false);
-00461 }
-00462 <span class="keywordflow">else</span>
-00463 {
-00464 <span class="keywordflow">return</span>(true);
-00465 }
-00466 }
+<div class="fragment"><pre>00625 {
+00626 <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#o0">fc</a>.size() == 0)
+00627 {
+00628 <span class="keywordflow">return</span>(false);
+00629 }
+00630 <span class="keywordflow">else</span>
+00631 {
+00632 <span class="keywordflow">return</span>(true);
+00633 }
+00634 }
</pre></div> </td>
</tr>
</table>
@@ -237,13 +237,13 @@ Returns the size of the file in lines.
<p>
This method returns the number of lines in the read file. If it is 0, no lines have been read into memory, either because the file is empty or it does not exist, or cannot be opened due to permission problems.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00475">475</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00643">643</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00650">fc</a>.
+References <a class="el" href="modules_8h-source.html#l00674">fc</a>.
<p>
-<div class="fragment"><pre>00476 {
-00477 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>.size();
-00478 }
+<div class="fragment"><pre>00644 {
+00645 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>.size();
+00646 }
</pre></div> </td>
</tr>
</table>
@@ -277,15 +277,15 @@ Retrieve one line from the file.
<p>
This method retrieves one line from the text file. If an empty non-NULL string is returned, the index was out of bounds, or the line had no data on it.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00468">468</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00636">636</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00650">fc</a>.
+References <a class="el" href="modules_8h-source.html#l00674">fc</a>.
<p>
-<div class="fragment"><pre>00469 {
-00470 <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#o0">fc</a>.size()))
-00471 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-00472 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>[x];
-00473 }
+<div class="fragment"><pre>00637 {
+00638 <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#o0">fc</a>.size()))
+00639 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00640 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>[x];
+00641 }
</pre></div> </td>
</tr>
</table>
@@ -319,15 +319,15 @@ Used to load a file.
<p>
This method loads a file into the class ready for GetLine and and other methods to be called. If the file could not be loaded, <a class="el" href="classFileReader.html#a6">FileReader::FileSize</a> returns 0.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00444">444</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00612">612</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00650">fc</a>, and <a class="el" href="modules_8h-source.html#l00050">file_cache</a>.
+References <a class="el" href="modules_8h-source.html#l00674">fc</a>, and <a class="el" href="modules_8h-source.html#l00050">file_cache</a>.
<p>
-<div class="fragment"><pre>00445 {
-00446 <a class="code" href="modules_8h.html#a22">file_cache</a> c;
-00447 readfile(c,filename.c_str());
-00448 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
-00449 }
+<div class="fragment"><pre>00613 {
+00614 <a class="code" href="modules_8h.html#a22">file_cache</a> c;
+00615 readfile(c,filename.c_str());
+00616 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+00617 }
</pre></div> </td>
</tr>
</table>
@@ -353,14 +353,14 @@ References <a class="el" href="modules_8h-source.html#l00650">fc</a>, and <a cla
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00650">650</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00674">674</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#l00456">Exists()</a>, <a class="el" href="modules_8cpp-source.html#l00433">FileReader()</a>, <a class="el" href="modules_8cpp-source.html#l00475">FileSize()</a>, <a class="el" href="modules_8cpp-source.html#l00468">GetLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00444">LoadFile()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00624">Exists()</a>, <a class="el" href="modules_8cpp-source.html#l00601">FileReader()</a>, <a class="el" href="modules_8cpp-source.html#l00643">FileSize()</a>, <a class="el" href="modules_8cpp-source.html#l00636">GetLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00612">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 Sat May 1 13:39:17 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:26 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classGLine-members.html b/docs/module-doc/classGLine-members.html
index 97ae8ec23..f7e43fa31 100644
--- a/docs/module-doc/classGLine-members.html
+++ b/docs/module-doc/classGLine-members.html
@@ -16,7 +16,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classXLine.html#m0">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classXLine.html#m2">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:18 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:26 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classGLine.html b/docs/module-doc/classGLine.html
index 8c9d2c083..0fc6ac6ea 100644
--- a/docs/module-doc/classGLine.html
+++ b/docs/module-doc/classGLine.html
@@ -61,7 +61,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00063">63</a> of fi
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:18 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:26 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classHostItem-members.html b/docs/module-doc/classHostItem-members.html
index ab3381af1..0c2e5b73d 100644
--- a/docs/module-doc/classHostItem-members.html
+++ b/docs/module-doc/classHostItem-members.html
@@ -15,7 +15,7 @@
<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="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></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 Sat May 1 13:39:18 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:27 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classHostItem.html b/docs/module-doc/classHostItem.html
index 66bff7697..9aed89e96 100644
--- a/docs/module-doc/classHostItem.html
+++ b/docs/module-doc/classHostItem.html
@@ -181,7 +181,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00021">21</a> of
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:18 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:27 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classInviteItem-members.html b/docs/module-doc/classInviteItem-members.html
index 06d098a1f..771a56e5f 100644
--- a/docs/module-doc/classInviteItem-members.html
+++ b/docs/module-doc/classInviteItem-members.html
@@ -15,7 +15,7 @@
<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="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></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 Sat May 1 13:39:20 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:28 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classInviteItem.html b/docs/module-doc/classInviteItem.html
index cd80bfd34..2e441521c 100644
--- a/docs/module-doc/classInviteItem.html
+++ b/docs/module-doc/classInviteItem.html
@@ -31,7 +31,7 @@ A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to h
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00050">50</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 Sat May 1 13:39:20 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:28 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classInvited-members.html b/docs/module-doc/classInvited-members.html
index ae62ac75b..ae303b76d 100644
--- a/docs/module-doc/classInvited-members.html
+++ b/docs/module-doc/classInvited-members.html
@@ -11,7 +11,7 @@
<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>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a0">classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:19 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:28 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classInvited.html b/docs/module-doc/classInvited.html
index 872eeeb3e..9920893e0 100644
--- a/docs/module-doc/classInvited.html
+++ b/docs/module-doc/classInvited.html
@@ -58,7 +58,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00068">userrec::Invite
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="users_8h-source.html">users.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:19 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:28 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classKLine-members.html b/docs/module-doc/classKLine-members.html
index 96544cae5..2c149418a 100644
--- a/docs/module-doc/classKLine-members.html
+++ b/docs/module-doc/classKLine-members.html
@@ -16,7 +16,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classXLine.html#m0">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classXLine.html#m2">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:21 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:29 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classKLine.html b/docs/module-doc/classKLine.html
index 5e304ccee..bb769f93b 100644
--- a/docs/module-doc/classKLine.html
+++ b/docs/module-doc/classKLine.html
@@ -61,7 +61,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00052">52</a> of fi
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:21 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:29 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classModeParameter-members.html b/docs/module-doc/classModeParameter-members.html
index 12b409bc6..2243a3896 100644
--- a/docs/module-doc/classModeParameter-members.html
+++ b/docs/module-doc/classModeParameter-members.html
@@ -13,7 +13,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classModeParameter.html#m0">mode</a></td><td><a class="el" href="classModeParameter.html">ModeParameter</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classModeParameter.html#m1">parameter</a></td><td><a class="el" href="classModeParameter.html">ModeParameter</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:21 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:30 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classModeParameter.html b/docs/module-doc/classModeParameter.html
index ac9464f44..bdf6890b8 100644
--- a/docs/module-doc/classModeParameter.html
+++ b/docs/module-doc/classModeParameter.html
@@ -57,7 +57,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00059">59</a> of
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00064">64</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00050">chanrec::SetCustomModeParam()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00135">chanrec::SetCustomModeParam()</a>. </td>
</tr>
</table>
<a name="m0" doxytag="ModeParameter::mode"></a><p>
@@ -83,7 +83,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00050">chanrec::Set
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00062">62</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00050">chanrec::SetCustomModeParam()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00135">chanrec::SetCustomModeParam()</a>. </td>
</tr>
</table>
<a name="m1" doxytag="ModeParameter::parameter"></a><p>
@@ -109,12 +109,12 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00050">chanrec::Set
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00063">63</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00050">chanrec::SetCustomModeParam()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00135">chanrec::SetCustomModeParam()</a>. </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:21 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:30 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classModule-members.html b/docs/module-doc/classModule-members.html
index 69880c1c2..267439d68 100644
--- a/docs/module-doc/classModule-members.html
+++ b/docs/module-doc/classModule-members.html
@@ -12,6 +12,7 @@
<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#a19">OnAccessCheck</a>(userrec *source, userrec *dest, chanrec *channel, int access_type)</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#a21">OnChannelSync</a>(chanrec *chan)</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#a11">OnExtendedMode</a>(userrec *user, void *target, char modechar, int type, bool mode_on, string_list &amp;params)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a14">OnInfo</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#a13">OnOper</a>(userrec *user)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
@@ -27,10 +28,11 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a18">OnUserPreNick</a>(userrec *user, std::string newnick)</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#a17">OnUserPreNotice</a>(userrec *user, void *dest, int target_type, std::string text)</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#a20">OnUserSync</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#a15">OnWhois</a>(userrec *source, userrec *dest)</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="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</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 Sat May 1 13:39:22 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:31 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classModule.html b/docs/module-doc/classModule.html
index cd2fe531f..078603f8a 100644
--- a/docs/module-doc/classModule.html
+++ b/docs/module-doc/classModule.html
@@ -62,6 +62,10 @@ Inheritance diagram for Module:<p><center><img src="classModule__inherit__graph.
<tr><td>&nbsp;</td><td><font size=-1><em>Called before any nickchange, local or remote.</em> <a href="#a18"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual int&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a19">OnAccessCheck</a> (<a class="el" href="classuserrec.html">userrec</a> *source, <a class="el" href="classuserrec.html">userrec</a> *dest, <a class="el" href="classchanrec.html">chanrec</a> *channel, int access_type)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Called before an action which requires a channel privilage check.</em> <a href="#a19"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="modules_8h.html#a23">string_list</a>&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a20">OnUserSync</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Called during a netburst to sync user data.</em> <a href="#a20"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="modules_8h.html#a23">string_list</a>&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a21">OnChannelSync</a> (<a class="el" href="classchanrec.html">chanrec</a> *chan)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Called during a netburst to sync channel data.</em> <a href="#a21"></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.
@@ -70,7 +74,7 @@ All modules must inherit from this class, its methods will be called when irc se
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00112">112</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00116">116</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>
@@ -100,9 +104,9 @@ Default constructor creates a module class.
<p>
<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>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00285">285</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00139 { }
+<div class="fragment"><pre>00285 { }
</pre></div> </td>
</tr>
</table>
@@ -135,9 +139,9 @@ Default destructor destroys a module class.
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00140">140</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00286">286</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00140 { }
+<div class="fragment"><pre>00286 { }
</pre></div> </td>
</tr>
</table>
@@ -171,9 +175,9 @@ 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#l00151">151</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00297">297</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00151 { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0); }
+<div class="fragment"><pre>00297 { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0); }
</pre></div> </td>
</tr>
</table>
@@ -227,6 +231,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00151">151</a>
Called before an action which requires a channel privilage check.
<p>
This function is called before many functions which check a users status on a channel, for example before opping a user, deopping a user, kicking a user, etc. There are several values for access_type which indicate for what reason access is being checked. These are:<br>
+<br>
AC_KICK (0) - A user is being kicked<br>
AC_DEOP (1) - a user is being deopped<br>
AC_OP (2) - a user is being opped<br>
@@ -236,13 +241,52 @@ This function is called before many functions which check a users status on a ch
AC_DEHALFOP (6) - a user is being dehalfopped<br>
AC_INVITE (7) - a user is being invited<br>
AC_GENERAL_MODE (8) - a user channel mode is being changed<br>
+<br>
Upon returning from your function you must return either ACR_DEFAULT, to indicate the module wishes to do nothing, or ACR_DENY where approprate to deny the action, and ACR_ALLOW where appropriate to allow the action. Please note that in the case of some access checks (such as AC_GENERAL_MODE) access may be denied 'upstream' causing other checks such as AC_DEOP to not be reached. Be very careful with use of the AC_GENERAL_MODE type, as it may inadvertently override the behaviour of other modules. When the access_type is AC_GENERAL_MODE, the destination of the mode will be NULL (as it has not yet been determined).
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00158">158</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00304">304</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
References <a class="el" href="modules_8h-source.html#l00027">ACR_DEFAULT</a>.
<p>
-<div class="fragment"><pre>00158 { <span class="keywordflow">return</span> <a class="code" href="modules_8h.html#a8">ACR_DEFAULT</a>; };
+<div class="fragment"><pre>00304 { <span class="keywordflow">return</span> <a class="code" href="modules_8h.html#a8">ACR_DEFAULT</a>; };
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a21" doxytag="Module::OnChannelSync"></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#a23">string_list</a> Module::OnChannelSync </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>chan</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 during a netburst to sync channel data.
+<p>
+This is called during the netburst on a per-channel basis. You should use this call to up any special channel-related things which are implemented by your module, e.g. sending listmodes. You may return multiple commands in the string_list.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00306">306</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00051">string_list</a>.
+<p>
+<div class="fragment"><pre>00306 { <a class="code" href="modules_8h.html#a23">string_list</a> empty; <span class="keywordflow">return</span> empty; }
</pre></div> </td>
</tr>
</table>
@@ -309,9 +353,9 @@ Called whenever an extended mode is to be processed.
<p>
The type parameter is MT_SERVER, MT_CLIENT or MT_CHANNEL, dependent on where the mode is being changed. mode_on is set when the mode is being set, in which case params contains a list of parameters for the mode as strings. If mode_on is false, the mode is being removed, and parameters may contain the parameters for the mode, dependent on wether they were defined when a mode handler was set up with <a class="el" href="classServer.html#a21">Server::AddExtendedMode</a> If the mode is a channel mode, target is a chanrec*, and if it is a user mode, target is a userrec*. You must cast this value yourself to make use of it.
<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>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00296">296</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00150 { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+<div class="fragment"><pre>00296 { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
</pre></div> </td>
</tr>
</table>
@@ -346,9 +390,9 @@ Called whenever a user types /INFO.
The userrec will contain the information of the user who typed the command. Modules may use this method to output their own credits in /INFO (which is the ircd's version of an about box). It is purposefully not possible to modify any info that has already been output, or halt the list. You must write a 371 numeric to the user, containing your info in the following format:<p>
:information here
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00153">153</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00299">299</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00153 { };
+<div class="fragment"><pre>00299 { };
</pre></div> </td>
</tr>
</table>
@@ -382,9 +426,9 @@ Called whenever a user opers locally.
<p>
The userrec will contain the oper mode 'o' as this function is called after any modifications are made to the user's structure by the core.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00152">152</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00298">298</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00152 { };
+<div class="fragment"><pre>00298 { };
</pre></div> </td>
</tr>
</table>
@@ -418,9 +462,9 @@ Called after a packet is received from another irc server.
<p>
The packet is represented as a char*, as it should be regarded as a buffer, and not a string. This allows you to easily represent it in the correct ways to implement encryption, compression, digital signatures and anything else you may want to add. This should be regarded as a pre-processor and will be called immediately after the packet is received but before any other operations with the core of the ircd.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00146">146</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00292">292</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00146 { }
+<div class="fragment"><pre>00292 { }
</pre></div> </td>
</tr>
</table>
@@ -454,9 +498,9 @@ Called before a packet is transmitted across the irc network between two irc ser
<p>
The packet is represented as a char*, as it should be regarded as a buffer, and not a string. This allows you to easily represent it in the correct ways to implement encryption, compression, digital signatures and anything else you may want to add. This should be regarded as a pre-processor and will be called before ANY other operations within the ircd core program.
<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>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00291">291</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00145 { }
+<div class="fragment"><pre>00291 { }
</pre></div> </td>
</tr>
</table>
@@ -489,9 +533,9 @@ Called on rehash.
<p>
This method is called prior to a /REHASH or when a SIGHUP is received from the operating system. You should use it to reload any files so that your module keeps in step with the rest of the application.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00147">147</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00293">293</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00147 { }
+<div class="fragment"><pre>00293 { }
</pre></div> </td>
</tr>
</table>
@@ -540,9 +584,9 @@ Called when a raw command is transmitted or received.
<p>
This method is the lowest level of handler available to a module. It will be called with raw data which is passing through a connected socket. If you wish, you may munge this data by changing the string parameter "raw". If you do this, after your function exits it will immediately be cut down to 510 characters plus a carriage return and linefeed. For INBOUND messages only (where inbound is set to true) the value of user will be the userrec of the connection sending the data. This is not possible for outbound data because the data may be being routed to multiple targets.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00148">148</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00294">294</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00148 { }
+<div class="fragment"><pre>00294 { }
</pre></div> </td>
</tr>
</table>
@@ -576,9 +620,9 @@ 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#l00141">141</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00287">287</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00141 { }
+<div class="fragment"><pre>00287 { }
</pre></div> </td>
</tr>
</table>
@@ -621,9 +665,9 @@ 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#l00143">143</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00289">289</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00143 { }
+<div class="fragment"><pre>00289 { }
</pre></div> </td>
</tr>
</table>
@@ -666,9 +710,9 @@ 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#l00144">144</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00290">290</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00144 { }
+<div class="fragment"><pre>00290 { }
</pre></div> </td>
</tr>
</table>
@@ -719,9 +763,9 @@ Returning any nonzero value from this function stops the process immediately, ca
IMPORTANT NOTE!<p>
If the user joins a NEW channel which does not exist yet, OnUserPreJoin will be called BEFORE the channel record is created. This will cause chanrec* chan to be NULL. There is very little you can do in form of processing on the actual channel record at this point, however the channel NAME will still be passed in char* cname, so that you could for example implement a channel blacklist or whitelist, etc.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00149">149</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00295">295</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00149 { <span class="keywordflow">return</span> 0; }
+<div class="fragment"><pre>00295 { <span class="keywordflow">return</span> 0; }
</pre></div> </td>
</tr>
</table>
@@ -776,9 +820,9 @@ Called whenever a user is about to PRIVMSG A user or a channel, before any proce
<p>
Returning any nonzero value from this function stops the process immediately, causing no output to be sent to the user by the core. If you do this you must produce your own numerics, notices etc. This is useful for modules which may want to filter or redirect messages. target_type can be one of TYPE_USER or TYPE_CHANNEL. If the target_type value is a user, you must cast dest to a userrec* otherwise you must cast it to a chanrec*, this is the details of where the message is destined to be sent.
<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>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00301">301</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00155 { <span class="keywordflow">return</span> 0; };
+<div class="fragment"><pre>00301 { <span class="keywordflow">return</span> 0; };
</pre></div> </td>
</tr>
</table>
@@ -821,9 +865,9 @@ Called before any nickchange, local or remote.
<p>
This can be used to implement Q-lines etc. Please note that although you can see remote nickchanges through this function, you should NOT make any changes to the userrec if the user is a remote user as this may cause a desnyc. check user-&gt;server before taking any action (including returning nonzero from the method). If your method returns nonzero, the nickchange is silently forbidden, and it is down to your module to generate some meaninful output.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00157">157</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00303">303</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00157 { <span class="keywordflow">return</span> 0; };
+<div class="fragment"><pre>00303 { <span class="keywordflow">return</span> 0; };
</pre></div> </td>
</tr>
</table>
@@ -878,9 +922,9 @@ Called whenever a user is about to NOTICE A user or a channel, before any proces
<p>
Returning any nonzero value from this function stops the process immediately, causing no output to be sent to the user by the core. If you do this you must produce your own numerics, notices etc. This is useful for modules which may want to filter or redirect messages. target_type can be one of TYPE_USER or TYPE_CHANNEL. If the target_type value is a user, you must cast dest to a userrec* otherwise you must cast it to a chanrec*, this is the details of where the message is destined to be sent.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00156">156</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00302">302</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00156 { <span class="keywordflow">return</span> 0; };
+<div class="fragment"><pre>00302 { <span class="keywordflow">return</span> 0; };
</pre></div> </td>
</tr>
</table>
@@ -914,9 +958,47 @@ 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#l00142">142</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00288">288</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00288 { }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a20" doxytag="Module::OnUserSync"></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#a23">string_list</a> Module::OnUserSync </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 during a netburst to sync user data.
+<p>
+This is called during the netburst on a per-user basis. You should use this call to up any special user-related things which are implemented by your module, e.g. sending listmodes. You may return multiple commands in the string_list.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00305">305</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00051">string_list</a>.
<p>
-<div class="fragment"><pre>00142 { }
+<div class="fragment"><pre>00305 { <a class="code" href="modules_8h.html#a23">string_list</a> empty; <span class="keywordflow">return</span> empty; }
</pre></div> </td>
</tr>
</table>
@@ -959,15 +1041,15 @@ Called whenever a /WHOIS is performed on a local user.
<p>
The source parameter contains the details of the user who issued the WHOIS command, and the dest parameter contains the information of the user they are whoising.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00154">154</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00300">300</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00154 { };
+<div class="fragment"><pre>00300 { };
</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 Sat May 1 13:39:22 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:31 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classModuleFactory-members.html b/docs/module-doc/classModuleFactory-members.html
index 0d30f798e..9584e3d7a 100644
--- a/docs/module-doc/classModuleFactory-members.html
+++ b/docs/module-doc/classModuleFactory-members.html
@@ -13,7 +13,7 @@
<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="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</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 Sat May 1 13:39:23 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:31 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classModuleFactory.html b/docs/module-doc/classModuleFactory.html
index 96e51e3cc..00704bd21 100644
--- a/docs/module-doc/classModuleFactory.html
+++ b/docs/module-doc/classModuleFactory.html
@@ -34,7 +34,7 @@ This is to allow for modules to create many different variants of <a class="el"
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00703">703</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00727">727</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>
@@ -62,9 +62,9 @@ Definition at line <a class="el" href="modules_8h-source.html#l00703">703</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00706">706</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00730">730</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
<p>
-<div class="fragment"><pre>00706 { }
+<div class="fragment"><pre>00730 { }
</pre></div> </td>
</tr>
</table>
@@ -95,9 +95,9 @@ Definition at line <a class="el" href="modules_8h-source.html#l00706">706</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00707">707</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00731">731</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
<p>
-<div class="fragment"><pre>00707 { }
+<div class="fragment"><pre>00731 { }
</pre></div> </td>
</tr>
</table>
@@ -134,7 +134,7 @@ Your inherited class of ModuleFactory must return a pointer to your <a class="el
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="modules_8h-source.html">modules.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:23 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:31 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classQLine-members.html b/docs/module-doc/classQLine-members.html
index 9ff708c96..a112e1b17 100644
--- a/docs/module-doc/classQLine-members.html
+++ b/docs/module-doc/classQLine-members.html
@@ -17,7 +17,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classXLine.html#m0">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classXLine.html#m2">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:24 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:32 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classQLine.html b/docs/module-doc/classQLine.html
index 888e58305..d0f20f3b4 100644
--- a/docs/module-doc/classQLine.html
+++ b/docs/module-doc/classQLine.html
@@ -89,7 +89,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00089">89</a> of fi
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:24 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:32 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classServer-members.html b/docs/module-doc/classServer-members.html
index a7bc180f6..fc5851ad8 100644
--- a/docs/module-doc/classServer-members.html
+++ b/docs/module-doc/classServer-members.html
@@ -24,6 +24,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a20">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#a19">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#a18">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#a35">GetUsers</a>(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#a12">IsNick</a>(std::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#a17">IsOnChannel</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#a34">IsUlined</a>(std::string server)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
@@ -45,7 +46,7 @@
<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="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></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 Sat May 1 13:39:25 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:33 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classServer.html b/docs/module-doc/classServer.html
index 1486d7d17..b38e48866 100644
--- a/docs/module-doc/classServer.html
+++ b/docs/module-doc/classServer.html
@@ -92,6 +92,8 @@ Inheritance diagram for Server:<p><center><img src="classServer__inherit__graph.
<tr><td>&nbsp;</td><td><font size=-1><em>Change GECOS (fullname) of a user.</em> <a href="#a33"></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#a34">IsUlined</a> (std::string server)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns true if the servername you give is ulined.</em> <a href="#a34"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="modules_8h.html#a24">chanuserlist</a>&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a35">GetUsers</a> (<a class="el" href="classchanrec.html">chanrec</a> *chan)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Fetches the userlist of a channel.</em> <a href="#a35"></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.
@@ -100,7 +102,7 @@ All modules should instantiate at least one copy of this class, and use its memb
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00295">295</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00313">313</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>
@@ -130,10 +132,10 @@ Default constructor.
<p>
Creates a Server object.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00164">164</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00313">313</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00165 {
-00166 }
+<div class="fragment"><pre>00314 {
+00315 }
</pre></div> </td>
</tr>
</table>
@@ -166,10 +168,10 @@ Default destructor.
<p>
Destroys a Server object.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00168">168</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00317">317</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00169 {
-00170 }
+<div class="fragment"><pre>00318 {
+00319 }
</pre></div> </td>
</tr>
</table>
@@ -227,13 +229,13 @@ This allows modules to add extra commands into the command table. You must place
typedef void (handlerfunc) (char**, int, userrec*); ... void <a class="el" href="commands_8h.html#a5">handle_kill(char **parameters, int pcnt, userrec *user)</a><p>
When the command is typed, the parameters will be placed into the parameters array (similar to argv) and the parameter count will be placed into pcnt (similar to argv). There will never be any less parameters than the 'minparams' value you specified when creating the command. The *user parameter is the class of the user which caused the command to trigger, who will always have the flag you specified in 'flags' when creating the initial command. For example to create an oper only command create the commands with flags='o'.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00226">226</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00394">394</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h.html#a25">createcommand()</a>.
+References <a class="el" href="modules_8h.html#a26">createcommand()</a>.
<p>
-<div class="fragment"><pre>00227 {
-00228 <a class="code" href="modules_8h.html#a25">createcommand</a>(cmd,f,flags,minparams);
-00229 }
+<div class="fragment"><pre>00395 {
+00396 <a class="code" href="modules_8h.html#a26">createcommand</a>(cmd,f,flags,minparams);
+00397 }
</pre></div> </td>
</tr>
</table>
@@ -272,16 +274,16 @@ This call is used to implement modes like +q and +a. The characteristics of thes
(4) The mode and its parameter are NOT stored in the channels modes structure<p>
It is down to the module handling the mode to maintain state and determine what 'items' (e.g. users, or a banlist) have the mode set on them, and process the modes at the correct times, e.g. during access checks on channels, etc. When the extended mode is triggered the OnExtendedMode method will be triggered as above. Note that the target you are given will be a channel, if for example your mode is set 'on a user' (in for example +a) you must use Server::Find to locate the user the mode is operating on. Your mode handler may return 1 to handle the mode AND tell the core to display the mode change, e.g. '+aaa one two three' in the case of the mode for 'two', or it may return -1 to 'eat' the mode change, so the above example would become '+aa one three' after processing.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00371">371</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00539">539</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00108">DoAddExtendedMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00118">ModeMakeList()</a>.
+References <a class="el" href="modules_8cpp-source.html#l00254">DoAddExtendedMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00264">ModeMakeList()</a>.
<p>
-<div class="fragment"><pre>00372 {
-00373 <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#a9">DoAddExtendedMode</a>(modechar,MT_CHANNEL,<span class="keyword">false</span>,1,1);
-00374 <span class="keywordflow">if</span> (res)
-00375 <a class="code" href="modules_8cpp.html#a10">ModeMakeList</a>(modechar);
-00376 <span class="keywordflow">return</span> res;
-00377 }
+<div class="fragment"><pre>00540 {
+00541 <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(modechar,MT_CHANNEL,<span class="keyword">false</span>,1,1);
+00542 <span class="keywordflow">if</span> (res)
+00543 <a class="code" href="modules_8cpp.html#a58">ModeMakeList</a>(modechar);
+00544 <span class="keywordflow">return</span> res;
+00545 }
</pre></div> </td>
</tr>
</table>
@@ -342,28 +344,28 @@ Adds an extended mode letter which is parsed by a module.
<p>
This allows modules to add extra mode letters, e.g. +x for hostcloak. the "type" parameter is either MT_CHANNEL, MT_CLIENT, or MT_SERVER, to indicate wether the mode is a channel mode, a client mode, or a server mode. requires_oper is used with MT_CLIENT type modes only to indicate the mode can only be set or unset by an oper. If this is used for MT_CHANNEL type modes it is ignored. params_when_on is the number of modes to expect when the mode is turned on (for type MT_CHANNEL only), e.g. with mode +k, this would have a value of 1. the params_when_off value has a similar value to params_when_on, except it indicates the number of parameters to expect when the mode is disabled. Modes which act in a similar way to channel mode +l (e.g. require a parameter to enable, but not to disable) should use this parameter. The function returns false if the mode is unavailable, and will not attempt to allocate another character, as this will confuse users. This also means that as only one module can claim a specific mode character, the core does not need to keep track of which modules own which modes, which speeds up operation of the server. In this version, a mode can have at most one parameter, attempting to use more parameters will have undefined effects.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00351">351</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8cpp-source.html#l00108">DoAddExtendedMode()</a>, <a class="el" href="modules_8h-source.html#l00022">MT_CLIENT</a>, and <a class="el" href="modules_8h-source.html#l00023">MT_SERVER</a>.
-<p>
-<div class="fragment"><pre>00352 {
-00353 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#a7">MT_SERVER</a>)
-00354 {
-00355 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
-00356 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00357 }
-00358 <span class="keywordflow">if</span> (((params_when_on&gt;0) || (params_when_off&gt;0)) &amp;&amp; (type == <a class="code" href="modules_8h.html#a6">MT_CLIENT</a>))
-00359 {
-00360 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
-00361 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00362 }
-00363 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
-00364 {
-00365 log(DEBUG,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
-00366 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00367 }
-00368 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#a9">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
-00369 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00519">519</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8cpp-source.html#l00254">DoAddExtendedMode()</a>, <a class="el" href="modules_8h-source.html#l00022">MT_CLIENT</a>, and <a class="el" href="modules_8h-source.html#l00023">MT_SERVER</a>.
+<p>
+<div class="fragment"><pre>00520 {
+00521 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#a7">MT_SERVER</a>)
+00522 {
+00523 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
+00524 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00525 }
+00526 <span class="keywordflow">if</span> (((params_when_on&gt;0) || (params_when_off&gt;0)) &amp;&amp; (type == <a class="code" href="modules_8h.html#a6">MT_CLIENT</a>))
+00527 {
+00528 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
+00529 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00530 }
+00531 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
+00532 {
+00533 log(DEBUG,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
+00534 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00535 }
+00536 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
+00537 }
</pre></div> </td>
</tr>
</table>
@@ -419,11 +421,11 @@ Calls the handler for a command, either implemented by the core or by another mo
You can use this function to trigger other commands in the ircd, such as PRIVMSG, JOIN, KICK etc, or even as a method of callback. By defining command names that are untypeable for users on irc (e.g. those which contain a or <br>
) you may use them as callback identifiers. The first parameter to this method is the name of the command handler you wish to call, e.g. PRIVMSG. This will be a command handler previously registered by the core or wih <a class="el" href="classServer.html#a23">AddCommand()</a>. The second parameter is an array of parameters, and the third parameter is a count of parameters in the array. If you do not pass enough parameters to meet the minimum needed by the handler, the functiom will silently ignore it. The final parameter is the user executing the command handler, used for privilage checks, etc.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00216">216</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00384">384</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00217 {
-00218 call_handler(commandname.c_str(),parameters,pcnt,user);
-00219 }
+<div class="fragment"><pre>00385 {
+00386 call_handler(commandname.c_str(),parameters,pcnt,user);
+00387 }
</pre></div> </td>
</tr>
</table>
@@ -466,13 +468,13 @@ Change GECOS (fullname) of a user.
<p>
You should always call this method to change a user's GECOS rather than writing directly to the fullname member of userrec, as any change applied via this method will be propogated to any linked servers.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00304">304</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00472">472</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
References <a class="el" href="message_8h.html#a10">ChangeName()</a>.
<p>
-<div class="fragment"><pre>00305 {
-00306 <a class="code" href="message_8h.html#a10">ChangeName</a>(user,gecos.c_str());
-00307 }
+<div class="fragment"><pre>00473 {
+00474 <a class="code" href="message_8h.html#a10">ChangeName</a>(user,gecos.c_str());
+00475 }
</pre></div> </td>
</tr>
</table>
@@ -515,13 +517,13 @@ Change displayed hostname of a user.
<p>
You should always call this method to change a user's host rather than writing directly to the dhost member of userrec, as any change applied via this method will be propogated to any linked servers.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00299">299</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00467">467</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
References <a class="el" href="message_8h.html#a11">ChangeDisplayedHost()</a>.
<p>
-<div class="fragment"><pre>00300 {
-00301 <a class="code" href="message_8h.html#a11">ChangeDisplayedHost</a>(user,host.c_str());
-00302 }
+<div class="fragment"><pre>00468 {
+00469 <a class="code" href="message_8h.html#a11">ChangeDisplayedHost</a>(user,host.c_str());
+00470 }
</pre></div> </td>
</tr>
</table>
@@ -564,11 +566,11 @@ Forces a user nickchange.
<p>
This command works similarly to SVSNICK, and can be used to implement Q-lines etc. If you specify an invalid nickname, the nick change will be dropped and the target user will receive the error numeric for it.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00200">200</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00368">368</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00201 {
-00202 force_nickchange(user,nickname.c_str());
-00203 }
+<div class="fragment"><pre>00369 {
+00370 force_nickchange(user,nickname.c_str());
+00371 }
</pre></div> </td>
</tr>
</table>
@@ -611,13 +613,13 @@ Attempts to look up a user's privilages on a channel.
<p>
This function will return a string containing either @, , +, or an empty string, representing the user's privilages upon the channel you specify.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00324">324</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00492">492</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
References <a class="el" href="message_8h.html#a14">cmode()</a>.
<p>
-<div class="fragment"><pre>00325 {
-00326 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a14">cmode</a>(User,Chan);
-00327 }
+<div class="fragment"><pre>00493 {
+00494 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a14">cmode</a>(User,Chan);
+00495 }
</pre></div> </td>
</tr>
</table>
@@ -660,13 +662,13 @@ Returns true if two users share a common channel.
<p>
This method is used internally by the NICK and QUIT commands, and the <a class="el" href="classServer.html#a10">Server::SendCommon</a> method.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00277">277</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00445">445</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
References <a class="el" href="message_8h.html#a0">common_channels()</a>.
<p>
-<div class="fragment"><pre>00278 {
-00279 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a0">common_channels</a>(u1,u2) != 0);
-00280 }
+<div class="fragment"><pre>00446 {
+00447 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a0">common_channels</a>(u1,u2) != 0);
+00448 }
</pre></div> </td>
</tr>
</table>
@@ -700,11 +702,11 @@ Returns a count of the number of users on a channel.
<p>
This will NEVER be 0, as if the chanrec exists, it will have at least one user in the channel.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00379">379</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00547">547</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00380 {
-00381 <span class="keywordflow">return</span> usercount(c);
-00382 }
+<div class="fragment"><pre>00548 {
+00549 <span class="keywordflow">return</span> usercount(c);
+00550 }
</pre></div> </td>
</tr>
</table>
@@ -738,11 +740,11 @@ Attempts to look up a channel and return a pointer to it.
<p>
This function will return NULL if the channel does not exist.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00319">319</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00487">487</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00320 {
-00321 <span class="keywordflow">return</span> FindChan(channel.c_str());
-00322 }
+<div class="fragment"><pre>00488 {
+00489 <span class="keywordflow">return</span> FindChan(channel.c_str());
+00490 }
</pre></div> </td>
</tr>
</table>
@@ -776,11 +778,11 @@ Attempts to look up a nick and return a pointer to it.
<p>
This function will return NULL if the nick does not exist.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00314">314</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00482">482</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00315 {
-00316 <span class="keywordflow">return</span> Find(nick);
-00317 }
+<div class="fragment"><pre>00483 {
+00484 <span class="keywordflow">return</span> Find(nick);
+00485 }
</pre></div> </td>
</tr>
</table>
@@ -813,11 +815,11 @@ Returns the information of the server as returned by the /ADMIN command.
<p>
See the <a class="el" href="classAdmin.html">Admin</a> class for further information of the return value. The members <a class="el" href="classAdmin.html#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#l00344">344</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00512">512</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00345 {
-00346 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
-00347 }
+<div class="fragment"><pre>00513 {
+00514 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+00515 }
</pre></div> </td>
</tr>
</table>
@@ -850,11 +852,11 @@ Returns the network name, global to all linked servers.
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00339">339</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00507">507</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00340 {
-00341 <span class="keywordflow">return</span> getnetworkname();
-00342 }
+<div class="fragment"><pre>00508 {
+00509 <span class="keywordflow">return</span> getnetworkname();
+00510 }
</pre></div> </td>
</tr>
</table>
@@ -887,11 +889,66 @@ 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#l00334">334</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00502">502</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00335 {
-00336 <span class="keywordflow">return</span> getservername();
-00337 }
+<div class="fragment"><pre>00503 {
+00504 <span class="keywordflow">return</span> getservername();
+00505 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a35" doxytag="Server::GetUsers"></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#a24">chanuserlist</a> Server::GetUsers </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>chan</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>
+Fetches the userlist of a channel.
+<p>
+This function must be here and not a member of userrec or chanrec due to include constraints.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00349">349</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00055">chanuserlist</a>, <a class="el" href="modules_8cpp-source.html#l00155">clientlist</a>, <a class="el" href="message_8h.html#a16">has_channel()</a>, and <a class="el" href="message_8h.html#a13">isnick()</a>.
+<p>
+<div class="fragment"><pre>00350 {
+00351 <a class="code" href="modules_8h.html#a24">chanuserlist</a> userl;
+00352 userl.clear();
+00353 <span class="keywordflow">for</span> (user_hash::const_iterator i = <a class="code" href="modules_8cpp.html#a42">clientlist</a>.begin(); i != <a class="code" href="modules_8cpp.html#a42">clientlist</a>.end(); i++)
+00354 {
+00355 <span class="keywordflow">if</span> (i-&gt;second)
+00356 {
+00357 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#a16">has_channel</a>(i-&gt;second,chan))
+00358 {
+00359 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#a13">isnick</a>(i-&gt;second-&gt;nick))
+00360 {
+00361 userl.push_back(i-&gt;second);
+00362 }
+00363 }
+00364 }
+00365 }
+00366 <span class="keywordflow">return</span> userl;
+00367 }
</pre></div> </td>
</tr>
</table>
@@ -925,13 +982,13 @@ Returns true if a nick is valid.
<p>
Nicks for unregistered connections will return false.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00309">309</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00477">477</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
References <a class="el" href="message_8h.html#a13">isnick()</a>.
<p>
-<div class="fragment"><pre>00310 {
-00311 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a13">isnick</a>(nick.c_str()) != 0);
-00312 }
+<div class="fragment"><pre>00478 {
+00479 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a13">isnick</a>(nick.c_str()) != 0);
+00480 }
</pre></div> </td>
</tr>
</table>
@@ -974,13 +1031,13 @@ Checks if a user is on a channel.
<p>
This function will return true or false to indicate if user 'User' is on channel 'Chan'.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00329">329</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00497">497</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
References <a class="el" href="message_8h.html#a16">has_channel()</a>.
<p>
-<div class="fragment"><pre>00330 {
-00331 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a16">has_channel</a>(User,Chan);
-00332 }
+<div class="fragment"><pre>00498 {
+00499 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a16">has_channel</a>(User,Chan);
+00500 }
</pre></div> </td>
</tr>
</table>
@@ -1014,13 +1071,13 @@ Returns true if the servername you give is ulined.
<p>
ULined servers have extra privilages. They are allowed to change nicknames on remote servers, change modes of clients which are on remote servers and set modes of channels where there are no channel operators for that channel on the ulined server, amongst other things. Ulined server data is also broadcast across the mesh at all times as opposed to selectively messaged in the case of normal servers, as many ulined server types (such as services) do not support meshed links and must operate in this manner.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00211">211</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00379">379</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
References <a class="el" href="commands_8h.html#a70">is_uline()</a>.
<p>
-<div class="fragment"><pre>00212 {
-00213 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a70">is_uline</a>(server.c_str());
-00214 }
+<div class="fragment"><pre>00380 {
+00381 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a70">is_uline</a>(server.c_str());
+00382 }
</pre></div> </td>
</tr>
</table>
@@ -1069,11 +1126,11 @@ Forces a user to join a channel.
<p>
This is similar to svsjoin and can be used to implement redirection, etc. On success, the return value is a valid pointer to a chanrec* of the channel the user was joined to. On failure, the result is NULL.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00190">190</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00339">339</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00191 {
-00192 <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">true</span>);
-00193 }
+<div class="fragment"><pre>00340 {
+00341 <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">true</span>);
+00342 }
</pre></div> </td>
</tr>
</table>
@@ -1116,11 +1173,11 @@ Writes a log string.
<p>
This method writes a line of text to the log. If the level given is lower than the level given in the configuration, this command has no effect.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00221">221</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00389">389</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00222 {
-00223 log(level,<span class="stringliteral">"%s"</span>,s.c_str());
-00224 }
+<div class="fragment"><pre>00390 {
+00391 log(level,<span class="stringliteral">"%s"</span>,s.c_str());
+00392 }
</pre></div> </td>
</tr>
</table>
@@ -1163,14 +1220,14 @@ Matches text against a glob pattern.
<p>
Uses the ircd's internal matching function to match string against a globbing pattern, e.g. *!*@*.com Returns true if the literal successfully matches the pattern, false if otherwise.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00177">177</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00326">326</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00178 {
-00179 <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
-00180 strncpy(literal,sliteral.c_str(),MAXBUF);
-00181 strncpy(pattern,spattern.c_str(),MAXBUF);
-00182 <span class="keywordflow">return</span> match(literal,pattern);
-00183 }
+<div class="fragment"><pre>00327 {
+00328 <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
+00329 strncpy(literal,sliteral.c_str(),MAXBUF);
+00330 strncpy(pattern,spattern.c_str(),MAXBUF);
+00331 <span class="keywordflow">return</span> match(literal,pattern);
+00332 }
</pre></div> </td>
</tr>
</table>
@@ -1219,11 +1276,11 @@ Forces a user to part a channel.
<p>
This is similar to svspart and can be used to implement redirection, etc. Although the return value of this function is a pointer to a channel record, the returned data is undefined and should not be read or written to. This behaviour may be changed in a future version.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00195">195</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00344">344</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00196 {
-00197 <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
-00198 }
+<div class="fragment"><pre>00345 {
+00346 <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
+00347 }
</pre></div> </td>
</tr>
</table>
@@ -1268,14 +1325,14 @@ To the user, it will appear as if they typed /QUIT themselves, except for the fa
WARNING!<p>
Once you call this function, userrec* user will immediately become INVALID. You MUST NOT write to, or read from this pointer after calling the QuitUser method UNDER ANY CIRCUMSTANCES! The best course of action after calling this method is to immediately bail from your handler.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00205">205</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00373">373</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
References <a class="el" href="users_8h-source.html#l00091">userrec::nick</a>, and <a class="el" href="message_8h.html#a19">send_network_quit()</a>.
<p>
-<div class="fragment"><pre>00206 {
-00207 <a class="code" href="message_8h.html#a19">send_network_quit</a>(user-&gt;<a class="code" href="classuserrec.html#m0">nick</a>,reason.c_str());
-00208 kill_link(user,reason.c_str());
-00209 }
+<div class="fragment"><pre>00374 {
+00375 <a class="code" href="message_8h.html#a19">send_network_quit</a>(user-&gt;<a class="code" href="classuserrec.html#m0">nick</a>,reason.c_str());
+00376 kill_link(user,reason.c_str());
+00377 }
</pre></div> </td>
</tr>
</table>
@@ -1318,11 +1375,11 @@ Sends a line of text down a TCP/IP socket.
<p>
This method writes a line of text to an established socket, cutting it to 510 characters plus a carriage return and linefeed if required.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00236">236</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00404">404</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00237 {
-00238 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-00239 }
+<div class="fragment"><pre>00405 {
+00406 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00407 }
</pre></div> </td>
</tr>
</table>
@@ -1377,18 +1434,18 @@ Sends text from a user to a channel (mulicast).
<p>
This method writes a line of text to a channel, with the given user's nick/ident /host combination prepended, as used in PRIVMSG etc commands (see RFC 1459). If the IncludeSender flag is set, then the text is also sent back to the user from which it originated, as seen in MODE (see RFC 1459).
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00265">265</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-<div class="fragment"><pre>00266 {
-00267 <span class="keywordflow">if</span> (IncludeSender)
-00268 {
-00269 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00270 }
-00271 <span class="keywordflow">else</span>
-00272 {
-00273 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00274 }
-00275 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00433">433</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00434 {
+00435 <span class="keywordflow">if</span> (IncludeSender)
+00436 {
+00437 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00438 }
+00439 <span class="keywordflow">else</span>
+00440 {
+00441 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00442 }
+00443 }
</pre></div> </td>
</tr>
</table>
@@ -1437,18 +1494,18 @@ Sends text from a user to one or more channels (mulicast).
<p>
This method writes a line of text to all users which share a common channel with a given user, with the user's nick/ident/host combination prepended, as used in PRIVMSG etc commands (see RFC 1459). If the IncludeSender flag is set, then the text is also sent back to the user from which it originated, as seen in NICK (see RFC 1459). Otherwise, it is only sent to the other recipients, as seen in QUIT.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00282">282</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-<div class="fragment"><pre>00283 {
-00284 <span class="keywordflow">if</span> (IncludeSender)
-00285 {
-00286 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
-00287 }
-00288 <span class="keywordflow">else</span>
-00289 {
-00290 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
-00291 }
-00292 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00450">450</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00451 {
+00452 <span class="keywordflow">if</span> (IncludeSender)
+00453 {
+00454 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00455 }
+00456 <span class="keywordflow">else</span>
+00457 {
+00458 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00459 }
+00460 }
</pre></div> </td>
</tr>
</table>
@@ -1497,11 +1554,11 @@ Sends text from a user to a socket.
<p>
This method writes a line of text to an established socket, with the given user's nick/ident /host combination prepended, as used in PRIVSG etc commands (see RFC 1459)
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00246">246</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00414">414</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00247 {
-00248 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00249 }
+<div class="fragment"><pre>00415 {
+00416 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00417 }
</pre></div> </td>
</tr>
</table>
@@ -1557,13 +1614,13 @@ modes[2] = user-&gt;nick;<p>
Srv-&gt;SendMode(modes,3,user);<p>
The modes will originate from the server where the command was issued, however responses (e.g. numerics) will be sent to the user you provide as the third parameter. You must be sure to get the number of parameters correct in the pcnt parameter otherwise you could leave your server in an unstable state!
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00231">231</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00399">399</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h.html#a26">server_mode()</a>.
+References <a class="el" href="modules_8h.html#a27">server_mode()</a>.
<p>
-<div class="fragment"><pre>00232 {
-00233 <a class="code" href="modules_8h.html#a26">server_mode</a>(parameters,pcnt,user);
-00234 }
+<div class="fragment"><pre>00400 {
+00401 <a class="code" href="modules_8h.html#a27">server_mode</a>(parameters,pcnt,user);
+00402 }
</pre></div> </td>
</tr>
</table>
@@ -1597,11 +1654,11 @@ Sends text to all opers.
<p>
This method sends a server notice to all opers with the usermode +s.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00172">172</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00321">321</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00173 {
-00174 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
-00175 }
+<div class="fragment"><pre>00322 {
+00323 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
+00324 }
</pre></div> </td>
</tr>
</table>
@@ -1644,11 +1701,11 @@ Sends text from the server to a socket.
<p>
This method writes a line of text to an established socket, with the servername prepended as used by numerics (see RFC 1459)
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00241">241</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00409">409</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00242 {
-00243 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-00244 }
+<div class="fragment"><pre>00410 {
+00411 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00412 }
</pre></div> </td>
</tr>
</table>
@@ -1701,22 +1758,22 @@ The format will become:<p>
:localserver TEXT<p>
Which is useful for numerics and server notices to single users, etc.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00251">251</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00419">419</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
References <a class="el" href="connection_8h-source.html#l00166">connection::fd</a>.
<p>
-<div class="fragment"><pre>00252 {
-00253 <span class="keywordflow">if</span> (!Source)
-00254 {
-00255 <span class="comment">// if source is NULL, then the message originates from the local server</span>
-00256 Write(Dest-&gt;<a class="code" href="classconnection.html#m0">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
-00257 }
-00258 <span class="keywordflow">else</span>
-00259 {
-00260 <span class="comment">// otherwise it comes from the user specified</span>
-00261 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
-00262 }
-00263 }
+<div class="fragment"><pre>00420 {
+00421 <span class="keywordflow">if</span> (!Source)
+00422 {
+00423 <span class="comment">// if source is NULL, then the message originates from the local server</span>
+00424 Write(Dest-&gt;<a class="code" href="classconnection.html#m0">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
+00425 }
+00426 <span class="keywordflow">else</span>
+00427 {
+00428 <span class="comment">// otherwise it comes from the user specified</span>
+00429 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+00430 }
+00431 }
</pre></div> </td>
</tr>
</table>
@@ -1767,11 +1824,11 @@ These can be RFC specified modes such as +i, or module provided modes, including
Serv-&gt;SendToModeMask("xi", WM_OR, "m00");<p>
Then the text 'm00' will be sent to all users with EITHER mode x or i. Conversely if you used WM_AND, the user must have both modes set to receive the message.
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00185">185</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00334">334</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00186 {
-00187 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
-00188 }
+<div class="fragment"><pre>00335 {
+00336 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
+00337 }
</pre></div> </td>
</tr>
</table>
@@ -1814,17 +1871,17 @@ 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#l00294">294</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00462">462</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00295 {
-00296 WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
-00297 }
+<div class="fragment"><pre>00463 {
+00464 WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
+00465 }
</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 Sat May 1 13:39:24 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:33 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classVersion-members.html b/docs/module-doc/classVersion-members.html
index 56265788b..9b128a552 100644
--- a/docs/module-doc/classVersion-members.html
+++ b/docs/module-doc/classVersion-members.html
@@ -15,7 +15,7 @@
<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>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:27 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:36 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classVersion.html b/docs/module-doc/classVersion.html
index f925b4a3d..79f62d7a1 100644
--- a/docs/module-doc/classVersion.html
+++ b/docs/module-doc/classVersion.html
@@ -36,7 +36,7 @@ A class of type Version is returned by the GetVersion method of the <a class="el
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00088">88</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00092">92</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>
@@ -86,9 +86,9 @@ Definition at line <a class="el" href="modules_8h-source.html#l00088">88</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00133">133</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00279">279</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00133 : <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) { };
+<div class="fragment"><pre>00279 : <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>
@@ -114,7 +114,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00133">133</a>
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00091">91</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00095">95</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>
@@ -138,7 +138,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00091">91</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00091">91</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00095">95</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>
@@ -162,7 +162,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00091">91</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00091">91</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00095">95</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>
@@ -186,12 +186,12 @@ Definition at line <a class="el" href="modules_8h-source.html#l00091">91</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00091">91</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00095">95</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 Sat May 1 13:39:27 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:36 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classXLine-members.html b/docs/module-doc/classXLine-members.html
index 678c3da6a..9edb965c9 100644
--- a/docs/module-doc/classXLine-members.html
+++ b/docs/module-doc/classXLine-members.html
@@ -15,7 +15,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classXLine.html#m0">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classXLine.html#m2">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:28 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:37 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classXLine.html b/docs/module-doc/classXLine.html
index a1e13f118..60fb230f1 100644
--- a/docs/module-doc/classXLine.html
+++ b/docs/module-doc/classXLine.html
@@ -175,7 +175,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00032">32</a> of fi
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:28 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:37 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classZLine-members.html b/docs/module-doc/classZLine-members.html
index be371cfa5..fa65024d1 100644
--- a/docs/module-doc/classZLine-members.html
+++ b/docs/module-doc/classZLine-members.html
@@ -17,7 +17,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classXLine.html#m0">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classXLine.html#m2">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:29 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:37 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classZLine.html b/docs/module-doc/classZLine.html
index 8c2aa4d04..46bf05ddb 100644
--- a/docs/module-doc/classZLine.html
+++ b/docs/module-doc/classZLine.html
@@ -89,7 +89,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00078">78</a> of fi
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:29 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:37 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classchanrec-members.html b/docs/module-doc/classchanrec-members.html
index 9a7889360..5fe341785 100644
--- a/docs/module-doc/classchanrec-members.html
+++ b/docs/module-doc/classchanrec-members.html
@@ -34,7 +34,7 @@
<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#a5">~chanrec</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td><code> [inline, virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:11 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:20 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classchanrec.html b/docs/module-doc/classchanrec.html
index 31357bc82..ff4e28cfb 100644
--- a/docs/module-doc/classchanrec.html
+++ b/docs/module-doc/classchanrec.html
@@ -104,19 +104,19 @@ Creates a channel record and initialises it with default values.
<p>
<p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00012">12</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00096">96</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
<p>
References <a class="el" href="channels_8h-source.html#l00144">c_private</a>, <a class="el" href="channels_8h-source.html#l00100">created</a>, <a class="el" href="channels_8h-source.html#l00130">inviteonly</a>, <a class="el" href="channels_8h-source.html#l00113">limit</a>, <a class="el" href="channels_8h-source.html#l00134">moderated</a>, <a class="el" href="channels_8h-source.html#l00126">noexternal</a>, <a class="el" href="channels_8h-source.html#l00139">secret</a>, <a class="el" href="channels_8h-source.html#l00122">topiclock</a>, and <a class="el" href="channels_8h-source.html#l00104">topicset</a>.
<p>
-<div class="fragment"><pre>00013 {
-00014 strcpy(name,<span class="stringliteral">""</span>);
-00015 strcpy(custom_modes,<span class="stringliteral">""</span>);
-00016 strcpy(topic,<span class="stringliteral">""</span>);
-00017 strcpy(setby,<span class="stringliteral">""</span>);
-00018 strcpy(key,<span class="stringliteral">""</span>);
-00019 <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;
-00020 <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>;
-00021 }
+<div class="fragment"><pre>00097 {
+00098 strcpy(name,<span class="stringliteral">""</span>);
+00099 strcpy(custom_modes,<span class="stringliteral">""</span>);
+00100 strcpy(topic,<span class="stringliteral">""</span>);
+00101 strcpy(setby,<span class="stringliteral">""</span>);
+00102 strcpy(key,<span class="stringliteral">""</span>);
+00103 <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;
+00104 <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>;
+00105 }
</pre></div> </td>
</tr>
</table>
@@ -184,23 +184,23 @@ Returns the parameter for a custom mode on a channel.
<p>
For example if "+L #foo" is set, and you pass this method 'L', it will return '#foo'. If the mode is not set on the channel, or the mode has no parameters associated with it, it will return an empty string.
<p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00087">87</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8cpp-source.html#l00010">custom_mode_params</a>.
-<p>
-<div class="fragment"><pre>00088 {
-00089 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.size())
-00090 {
-00091 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.end(); i++)
-00092 {
-00093 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-00094 {
-00095 <span class="keywordflow">return</span> std::string(i-&gt;parameter);
-00096 }
-00097 }
-00098 }
-00099 <span class="keywordflow">return</span> std::string(<span class="stringliteral">""</span>);
-00100 }
+Definition at line <a class="el" href="channels_8cpp-source.html#l00172">172</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8cpp-source.html#l00094">custom_mode_params</a>.
+<p>
+<div class="fragment"><pre>00173 {
+00174 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
+00175 {
+00176 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
+00177 {
+00178 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+00179 {
+00180 <span class="keywordflow">return</span> std::string(i-&gt;parameter);
+00181 }
+00182 }
+00183 }
+00184 <span class="keywordflow">return</span> std::string(<span class="stringliteral">""</span>);
+00185 }
</pre></div> </td>
</tr>
</table>
@@ -234,12 +234,12 @@ Returns true if a custom mode is set on a channel.
<p>
<p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00081">81</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00166">166</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
<p>
-<div class="fragment"><pre>00082 {
-00083 log(DEBUG,<span class="stringliteral">"Checking ISCustomModeSet: %c %s"</span>,mode,this-&gt;custom_modes);
-00084 <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode) != 0);
-00085 }
+<div class="fragment"><pre>00167 {
+00168 log(DEBUG,<span class="stringliteral">"Checking ISCustomModeSet: %c %s"</span>,mode,this-&gt;custom_modes);
+00169 <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode) != 0);
+00170 }
</pre></div> </td>
</tr>
</table>
@@ -282,35 +282,35 @@ Sets or unsets a custom mode in the channels info.
<p>
<p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00023">23</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8h-source.html#l00092">custom_modes</a>, and <a class="el" href="channels_8cpp-source.html#l00050">SetCustomModeParam()</a>.
-<p>
-<div class="fragment"><pre>00024 {
-00025 <span class="keywordflow">if</span> (mode_on) {
-00026 <span class="keywordtype">char</span> m[3];
-00027 m[0] = mode;
-00028 m[1] = <span class="charliteral">'\0'</span>;
-00029 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
-00030 {
-00031 strncat(custom_modes,m,MAXMODES);
-00032 }
-00033 log(DEBUG,<span class="stringliteral">"Custom mode %c set"</span>,mode);
-00034 }
-00035 <span class="keywordflow">else</span> {
-00036 <span class="keywordtype">char</span> temp[MAXBUF];
-00037 <span class="keywordtype">int</span> count = 0;
-00038 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> q = 0; q &lt; strlen(custom_modes); q++) {
-00039 <span class="keywordflow">if</span> (<a class="code" href="classchanrec.html#m1">custom_modes</a>[q] != mode) {
-00040 temp[count++] = mode;
-00041 }
-00042 }
-00043 temp[count] = <span class="charliteral">'\0'</span>;
-00044 strncpy(custom_modes,temp,MAXMODES);
-00045 log(DEBUG,<span class="stringliteral">"Custom mode %c removed"</span>,mode);
-00046 this-&gt;<a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
-00047 }
-00048 }
+Definition at line <a class="el" href="channels_8cpp-source.html#l00107">107</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00092">custom_modes</a>, and <a class="el" href="channels_8cpp-source.html#l00135">SetCustomModeParam()</a>.
+<p>
+<div class="fragment"><pre>00108 {
+00109 <span class="keywordflow">if</span> (mode_on) {
+00110 <span class="keywordtype">char</span> m[3];
+00111 m[0] = mode;
+00112 m[1] = <span class="charliteral">'\0'</span>;
+00113 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
+00114 {
+00115 strncat(custom_modes,m,MAXMODES);
+00116 }
+00117 log(DEBUG,<span class="stringliteral">"Custom mode %c set"</span>,mode);
+00118 }
+00119 <span class="keywordflow">else</span> {
+00120 <span class="keywordtype">char</span> temp[MAXBUF];
+00121 <span class="keywordtype">int</span> count = 0;
+00122 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> q = 0; q &lt; strlen(custom_modes); q++) {
+00123 <span class="keywordflow">if</span> (<a class="code" href="classchanrec.html#m1">custom_modes</a>[q] != mode) {
+00124 temp[count++] = mode;
+00125 }
+00126 }
+00127 temp[count] = <span class="charliteral">'\0'</span>;
+00128 strncpy(custom_modes,temp,MAXMODES);
+00129 log(DEBUG,<span class="stringliteral">"Custom mode %c removed"</span>,mode);
+00130 this-&gt;<a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
+00131 }
+00132 }
</pre></div> </td>
</tr>
</table>
@@ -359,41 +359,41 @@ Sets or unsets the parameters for a custom mode in a channels info.
<p>
<p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00050">50</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8h-source.html#l00064">ModeParameter::channel</a>, <a class="el" href="channels_8cpp-source.html#l00010">custom_mode_params</a>, <a class="el" href="channels_8h-source.html#l00062">ModeParameter::mode</a>, and <a class="el" href="channels_8h-source.html#l00063">ModeParameter::parameter</a>.
-<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00023">SetCustomMode()</a>.
-<p>
-<div class="fragment"><pre>00051 {
-00052
-00053 log(DEBUG,<span class="stringliteral">"SetCustomModeParam called"</span>);
-00054 <a class="code" href="classModeParameter.html">ModeParameter</a> M;
-00055 M.<a class="code" href="classModeParameter.html#m0">mode</a> = mode;
-00056 strcpy(M.<a class="code" href="classModeParameter.html#m2">channel</a>,this-&gt;name);
-00057 strcpy(M.<a class="code" href="classModeParameter.html#m1">parameter</a>,parameter);
-00058 <span class="keywordflow">if</span> (mode_on)
-00059 {
-00060 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
-00061 <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.push_back(M);
-00062 }
-00063 <span class="keywordflow">else</span>
-00064 {
-00065 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.size())
-00066 {
-00067 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.end(); i++)
-00068 {
-00069 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-00070 {
-00071 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
-00072 <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.erase(i);
-00073 <span class="keywordflow">return</span>;
-00074 }
-00075 }
-00076 }
-00077 log(DEBUG,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
-00078 }
-00079 }
+Definition at line <a class="el" href="channels_8cpp-source.html#l00135">135</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00064">ModeParameter::channel</a>, <a class="el" href="channels_8cpp-source.html#l00094">custom_mode_params</a>, <a class="el" href="channels_8h-source.html#l00062">ModeParameter::mode</a>, and <a class="el" href="channels_8h-source.html#l00063">ModeParameter::parameter</a>.
+<p>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00107">SetCustomMode()</a>.
+<p>
+<div class="fragment"><pre>00136 {
+00137
+00138 log(DEBUG,<span class="stringliteral">"SetCustomModeParam called"</span>);
+00139 <a class="code" href="classModeParameter.html">ModeParameter</a> M;
+00140 M.<a class="code" href="classModeParameter.html#m0">mode</a> = mode;
+00141 strcpy(M.<a class="code" href="classModeParameter.html#m2">channel</a>,this-&gt;name);
+00142 strcpy(M.<a class="code" href="classModeParameter.html#m1">parameter</a>,parameter);
+00143 <span class="keywordflow">if</span> (mode_on)
+00144 {
+00145 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
+00146 <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.push_back(M);
+00147 }
+00148 <span class="keywordflow">else</span>
+00149 {
+00150 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
+00151 {
+00152 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
+00153 {
+00154 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+00155 {
+00156 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
+00157 <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.erase(i);
+00158 <span class="keywordflow">return</span>;
+00159 }
+00160 }
+00161 }
+00162 log(DEBUG,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
+00163 }
+00164 }
</pre></div> </td>
</tr>
</table>
@@ -449,7 +449,7 @@ This value cannot be set at the same time as <a class="el" href="classchanrec.ht
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00144">144</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00096">chanrec()</a>. </td>
</tr>
</table>
<a name="m3" doxytag="chanrec::created"></a><p>
@@ -477,7 +477,7 @@ Creation time.
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00100">100</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00096">chanrec()</a>. </td>
</tr>
</table>
<a name="m1" doxytag="chanrec::custom_modes"></a><p>
@@ -505,7 +505,7 @@ Plugins may use this field in any way they see fit.
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00092">92</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00023">SetCustomMode()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00107">SetCustomMode()</a>. </td>
</tr>
</table>
<a name="m10" doxytag="chanrec::inviteonly"></a><p>
@@ -533,7 +533,7 @@ Nonzero if the mode +i is set.
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00130">130</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00096">chanrec()</a>. </td>
</tr>
</table>
<a name="m7" doxytag="chanrec::key"></a><p>
@@ -587,7 +587,7 @@ If this value is zero, there is no limit in place.
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00113">113</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00096">chanrec()</a>. </td>
</tr>
</table>
<a name="m11" doxytag="chanrec::moderated"></a><p>
@@ -615,7 +615,7 @@ Nonzero if the mode +m is set.
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00134">134</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00096">chanrec()</a>. </td>
</tr>
</table>
<a name="m0" doxytag="chanrec::name"></a><p>
@@ -669,7 +669,7 @@ Nonzero if the mode +n is set.
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00126">126</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00096">chanrec()</a>. </td>
</tr>
</table>
<a name="m12" doxytag="chanrec::secret"></a><p>
@@ -697,7 +697,7 @@ This value cannot be set at the same time as <a class="el" href="classchanrec.ht
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00139">139</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00096">chanrec()</a>. </td>
</tr>
</table>
<a name="m5" doxytag="chanrec::setby"></a><p>
@@ -777,7 +777,7 @@ Nonzero if the mode +t is set.
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00122">122</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00096">chanrec()</a>. </td>
</tr>
</table>
<a name="m4" doxytag="chanrec::topicset"></a><p>
@@ -805,12 +805,12 @@ If no topic was ever set, this will be equal to <a class="el" href="classchanrec
<p>
Definition at line <a class="el" href="channels_8h-source.html#l00104">104</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>. </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00096">chanrec()</a>. </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="channels_8h-source.html">channels.h</a><li><a class="el" href="channels_8cpp-source.html">channels.cpp</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:11 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:20 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classclassbase-members.html b/docs/module-doc/classclassbase-members.html
index ebb0a1092..9d3e9cbf0 100644
--- a/docs/module-doc/classclassbase-members.html
+++ b/docs/module-doc/classclassbase-members.html
@@ -10,7 +10,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#m0">age</a></td><td><a class="el" href="classclassbase.html">classbase</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a0">classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:12 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:20 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classclassbase.html b/docs/module-doc/classclassbase.html
index 5fc3622c5..341411bf6 100644
--- a/docs/module-doc/classclassbase.html
+++ b/docs/module-doc/classclassbase.html
@@ -13,21 +13,22 @@
<p>
Inheritance diagram for classbase:<p><center><img src="classclassbase__inherit__graph.gif" border="0" usemap="#classbase__inherit__map" alt="Inheritance graph"></center>
<map name="classbase__inherit__map">
-<area href="classAdmin.html" shape="rect" coords="163,5,211,27" alt="">
-<area href="classConfigReader.html" shape="rect" coords="141,51,232,72" alt="">
+<area href="classAdmin.html" shape="rect" coords="163,5,211,26" alt="">
+<area href="classConfigReader.html" shape="rect" coords="141,50,232,72" alt="">
<area href="classConnectClass.html" shape="rect" coords="143,96,231,117" alt="">
-<area href="classExtensible.html" shape="rect" coords="152,141,221,163" alt="">
-<area href="classExtMode.html" shape="rect" coords="157,187,216,208" alt="">
+<area href="classExtensible.html" shape="rect" coords="152,141,221,162" alt="">
+<area href="classExtMode.html" shape="rect" coords="157,186,216,208" alt="">
<area href="classFileReader.html" shape="rect" coords="149,232,224,253" alt="">
-<area href="classHostItem.html" shape="rect" coords="157,277,216,299" alt="">
-<area href="classInvited.html" shape="rect" coords="164,323,209,344" alt="">
+<area href="classHostItem.html" shape="rect" coords="157,277,216,298" alt="">
+<area href="classInvited.html" shape="rect" coords="164,322,209,344" alt="">
<area href="classModeParameter.html" shape="rect" coords="135,368,239,389" alt="">
-<area href="classModule.html" shape="rect" coords="161,413,212,435" alt="">
-<area href="classModuleFactory.html" shape="rect" coords="140,459,233,480" alt="">
+<area href="classModule.html" shape="rect" coords="161,413,212,434" alt="">
+<area href="classModuleFactory.html" shape="rect" coords="140,458,233,480" alt="">
<area href="classpacket.html" shape="rect" coords="161,504,212,525" alt="">
-<area href="classServer.html" shape="rect" coords="161,549,212,571" alt="">
-<area href="classVersion.html" shape="rect" coords="160,595,213,616" alt="">
-<area href="classXLine.html" shape="rect" coords="165,640,208,661" alt="">
+<area href="classServer.html" shape="rect" coords="161,549,212,570" alt="">
+<area href="classucrec.html" shape="rect" coords="164,594,209,616" alt="">
+<area href="classVersion.html" shape="rect" coords="160,640,213,661" alt="">
+<area href="classXLine.html" shape="rect" coords="165,685,208,706" alt="">
</map>
<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for classbase:<p><center><img src="classclassbase__coll__graph.gif" border="0" usemap="#classbase__coll__map" alt="Collaboration graph"></center>
<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classclassbase-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
@@ -143,7 +144,7 @@ Definition at line <a class="el" href="base_8h-source.html#l00022">22</a> of fil
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="base_8h-source.html">base.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:12 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:20 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classclassbase__inherit__graph.gif b/docs/module-doc/classclassbase__inherit__graph.gif
index 1cb76d639..e439ceccd 100644
--- a/docs/module-doc/classclassbase__inherit__graph.gif
+++ b/docs/module-doc/classclassbase__inherit__graph.gif
Binary files differ
diff --git a/docs/module-doc/classcommand__t-members.html b/docs/module-doc/classcommand__t-members.html
index fec485611..4b7a9f236 100644
--- a/docs/module-doc/classcommand__t-members.html
+++ b/docs/module-doc/classcommand__t-members.html
@@ -19,7 +19,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classcommand__t.html#m5">total_bytes</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classcommand__t.html#m4">use_count</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:13 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:21 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classcommand__t.html b/docs/module-doc/classcommand__t.html
index 420a0a0a5..3e5fe694f 100644
--- a/docs/module-doc/classcommand__t.html
+++ b/docs/module-doc/classcommand__t.html
@@ -200,7 +200,7 @@ Definition at line <a class="el" href="ctables_8h-source.html#l00042">42</a> of
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="ctables_8h-source.html">ctables.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:13 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:21 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classconnection-members.html b/docs/module-doc/classconnection-members.html
index 68f985332..73f814ba7 100644
--- a/docs/module-doc/classconnection-members.html
+++ b/docs/module-doc/classconnection-members.html
@@ -42,7 +42,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classconnection.html#m11">state</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classconnection.html#a4">TerminateLink</a>(char *targethost)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:15 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:23 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classconnection.html b/docs/module-doc/classconnection.html
index 866474624..cadaca1b3 100644
--- a/docs/module-doc/classconnection.html
+++ b/docs/module-doc/classconnection.html
@@ -654,7 +654,7 @@ File descriptor of the connection.
<p>
Definition at line <a class="el" href="connection_8h-source.html#l00166">166</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00251">Server::SendTo()</a>, <a class="el" href="servers_8cpp-source.html#l00012">serverrec::serverrec()</a>, and <a class="el" href="users_8cpp-source.html#l00013">userrec::userrec()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00419">Server::SendTo()</a>, <a class="el" href="servers_8cpp-source.html#l00012">serverrec::serverrec()</a>, and <a class="el" href="users_8cpp-source.html#l00013">userrec::userrec()</a>. </td>
</tr>
</table>
<a name="m8" doxytag="connection::haspassed"></a><p>
@@ -1011,7 +1011,7 @@ Definition at line <a class="el" href="connection_8h-source.html#l00212">212</a>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="connection_8h-source.html">connection.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:15 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:23 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classes.html b/docs/module-doc/classes.html
index 183c704e5..c25abfa29 100644
--- a/docs/module-doc/classes.html
+++ b/docs/module-doc/classes.html
@@ -8,23 +8,23 @@
<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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;</div></td></tr></table>
-</td><td><a class="el" href="classconnection.html">connection</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><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;U&nbsp;&nbsp;</div></td></tr></table>
-</td></tr><tr><td><a class="el" href="classAdmin.html">Admin</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;E&nbsp;&nbsp;</div></td></tr></table>
-</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</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;</div></td></tr></table>
-</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;P&nbsp;&nbsp;</div></td></tr></table>
-</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="classExtensible.html">Extensible</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInviteItem.html">InviteItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classpacket.html">packet</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;V&nbsp;&nbsp;</div></td></tr></table>
-</td></tr><tr><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classExtMode.html">ExtMode</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classircd__connector.html">ircd_connector</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;Q&nbsp;&nbsp;</div></td></tr></table>
-</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><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;F&nbsp;&nbsp;</div></td></tr></table>
-</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;K&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classQLine.html">QLine</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;X&nbsp;&nbsp;</div></td></tr></table>
-</td></tr><tr><td><a class="el" href="classclassbase.html">classbase</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classFileReader.html">FileReader</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classKLine.html">KLine</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classXLine.html">XLine</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classcommand__t.html">command_t</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;G&nbsp;&nbsp;</div></td></tr></table>
-</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;M&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classServer.html">Server</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;Z&nbsp;&nbsp;</div></td></tr></table>
-</td></tr><tr><td><a class="el" href="classConfigReader.html">ConfigReader</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classGLine.html">GLine</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classModeParameter.html">ModeParameter</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classserverrec.html">serverrec</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classZLine.html">ZLine</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classConnectClass.html">ConnectClass</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;H&nbsp;&nbsp;</div></td></tr></table>
-</td></tr></table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:10 2004 for InspIRCd by
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;E&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html">hash&lt; string &gt;</a> (<a class="el" href="namespacenspace.html">nspace</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classModeParameter.html">ModeParameter</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structStrHashComp.html">StrHashComp</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classAdmin.html">Admin</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classExemptItem.html">ExemptItem</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><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;U&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;B&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classExtensible.html">Extensible</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classucrec.html">ucrec</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="classExtMode.html">ExtMode</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structInAddr__HashComp.html">InAddr_HashComp</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;P&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classuserrec.html">userrec</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;F&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classInvited.html">Invited</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classpacket.html">packet</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;V&nbsp;&nbsp;</div></td></tr></table>
+</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><td><a class="el" href="classInviteItem.html">InviteItem</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;Q&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classVersion.html">Version</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classclassbase.html">classbase</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;G&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classircd__connector.html">ircd_connector</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classQLine.html">QLine</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;X&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="classcommand__t.html">command_t</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classGLine.html">GLine</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;K&nbsp;&nbsp;</div></td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classXLine.html">XLine</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><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;</div></td></tr></table>
+</td><td><a class="el" href="classKLine.html">KLine</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classServer.html">Server</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;Z&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="classConnectClass.html">ConnectClass</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html">hash&lt; in_addr &gt;</a> (<a class="el" href="namespacenspace.html">nspace</a>)&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;M&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classserverrec.html">serverrec</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classZLine.html">ZLine</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classconnection.html">connection</a>&nbsp;&nbsp;&nbsp;</td></tr></table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:18 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classircd__connector-members.html b/docs/module-doc/classircd__connector-members.html
index d1e11ca91..3b1e822cd 100644
--- a/docs/module-doc/classircd__connector-members.html
+++ b/docs/module-doc/classircd__connector-members.html
@@ -36,7 +36,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classExtensible.html#a1">Shrink</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classircd__connector.html#o4">state</a></td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td><code> [private]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:20 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:29 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classircd__connector.html b/docs/module-doc/classircd__connector.html
index 9d8bfb109..1c8298918 100644
--- a/docs/module-doc/classircd__connector.html
+++ b/docs/module-doc/classircd__connector.html
@@ -777,7 +777,7 @@ Definition at line <a class="el" href="connection_8h-source.html#l00063">63</a>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="connection_8h-source.html">connection.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:20 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:29 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classpacket-members.html b/docs/module-doc/classpacket-members.html
index 42d5e765c..015873b3d 100644
--- a/docs/module-doc/classpacket-members.html
+++ b/docs/module-doc/classpacket-members.html
@@ -10,7 +10,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#m0">age</a></td><td><a class="el" href="classclassbase.html">classbase</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a0">classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:23 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:32 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classpacket.html b/docs/module-doc/classpacket.html
index b5c9646f1..a6c998f05 100644
--- a/docs/module-doc/classpacket.html
+++ b/docs/module-doc/classpacket.html
@@ -31,7 +31,7 @@ This declaration is preserved here to maintain documentation only.
<p>
Definition at line <a class="el" href="connection_8h-source.html#l00155">155</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="connection_8h-source.html">connection.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:23 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:32 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classserverrec-members.html b/docs/module-doc/classserverrec-members.html
index 3b18ee111..cfccf86f0 100644
--- a/docs/module-doc/classserverrec-members.html
+++ b/docs/module-doc/classserverrec-members.html
@@ -55,7 +55,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classserverrec.html#m6">version</a></td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classserverrec.html#a2">~serverrec</a>()</td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
-</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:25 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:34 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classserverrec.html b/docs/module-doc/classserverrec.html
index 46a6352bb..2a07b6951 100644
--- a/docs/module-doc/classserverrec.html
+++ b/docs/module-doc/classserverrec.html
@@ -480,7 +480,7 @@ Referenced by <a class="el" href="servers_8cpp-source.html#l00012">serverrec()</
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="servers_8h-source.html">servers.h</a><li><a class="el" href="servers_8cpp-source.html">servers.cpp</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:25 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:34 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classucrec-members.html b/docs/module-doc/classucrec-members.html
index bf936fed1..3489f6f21 100644
--- a/docs/module-doc/classucrec-members.html
+++ b/docs/module-doc/classucrec-members.html
@@ -10,14 +10,11 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classclassbase.html#m0">age</a></td><td><a class="el" href="classclassbase.html">classbase</a></td><td></td></tr>
<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="classclassbase.html#a0">classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
- <tr bgcolor="#f0f0f0"><td><a class="el" href="classExtensible.html#a0">Extend</a>(std::string key, char *p)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
- <tr bgcolor="#f0f0f0"><td><a class="el" href="classExtensible.html#a2">GetExt</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
- <tr bgcolor="#f0f0f0"><td><a class="el" href="classExtensible.html#a1">Shrink</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
<tr 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="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</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 Sat May 1 13:39:26 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:35 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classucrec.html b/docs/module-doc/classucrec.html
index c9a240d55..87ad2c57d 100644
--- a/docs/module-doc/classucrec.html
+++ b/docs/module-doc/classucrec.html
@@ -13,13 +13,12 @@
<p>
Inheritance diagram for ucrec:<p><center><img src="classucrec__inherit__graph.gif" border="0" usemap="#ucrec__inherit__map" alt="Inheritance graph"></center>
<map name="ucrec__inherit__map">
-<area href="classExtensible.html" shape="rect" coords="7,85,76,106" alt="">
-<area href="classclassbase.html" shape="rect" coords="8,16,75,37" alt="">
+<area href="classclassbase.html" shape="rect" coords="7,16,73,37" alt="">
</map>
<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for ucrec:<p><center><img src="classucrec__coll__graph.gif" border="0" usemap="#ucrec__coll__map" alt="Collaboration graph"></center>
<map name="ucrec__coll__map">
-<area href="classExtensible.html" shape="rect" coords="19,16,88,37" alt="">
-<area href="classchanrec.html" shape="rect" coords="69,107,128,128" alt="">
+<area href="classclassbase.html" shape="rect" coords="7,107,73,128" alt="">
+<area href="classchanrec.html" shape="rect" coords="215,107,273,128" alt="">
</map>
<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classucrec-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
@@ -165,7 +164,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00013">userrec::userre
</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 Sat May 1 13:39:26 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:35 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classucrec__coll__graph.gif b/docs/module-doc/classucrec__coll__graph.gif
index d79d0d19b..8aa1931d5 100644
--- a/docs/module-doc/classucrec__coll__graph.gif
+++ b/docs/module-doc/classucrec__coll__graph.gif
Binary files differ
diff --git a/docs/module-doc/classucrec__inherit__graph.gif b/docs/module-doc/classucrec__inherit__graph.gif
index 6cbaccd88..a8248f4a6 100644
--- a/docs/module-doc/classucrec__inherit__graph.gif
+++ b/docs/module-doc/classucrec__inherit__graph.gif
Binary files differ
diff --git a/docs/module-doc/classuserrec-members.html b/docs/module-doc/classuserrec-members.html
index dfde860d7..1dc94288f 100644
--- a/docs/module-doc/classuserrec-members.html
+++ b/docs/module-doc/classuserrec-members.html
@@ -31,7 +31,7 @@
<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="classconnection.html#m8">haspassed</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
- <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a7">HasPermission</a>(char *command)</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#a7">HasPermission</a>(char *command)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classconnection.html#m1">host</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m1">ident</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classconnection.html#m14">idle_lastmsg</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
@@ -63,7 +63,7 @@
<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="classclassbase.html#a1">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></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 Sat May 1 13:39:27 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:36 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/classuserrec.html b/docs/module-doc/classuserrec.html
index 5a12bb755..0cee7cba2 100644
--- a/docs/module-doc/classuserrec.html
+++ b/docs/module-doc/classuserrec.html
@@ -37,7 +37,7 @@ Inheritance diagram for userrec:<p><center><img src="classuserrec__inherit__grap
<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 nowrap align=right valign=top>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a7">HasPermission</a> (char *command)</td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a7">HasPermission</a> (char *command)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns true or false for if a user can execute a privilaged oper command.</em> <a href="#a7"></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>
@@ -258,7 +258,7 @@ References <a class="el" href="users_8h-source.html#l00126">result</a>.
<td class="md" nowrap valign="top">char *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>command</em> </td>
<td class="md" valign="top">)&nbsp;</td>
- <td class="md" nowrap><code> [virtual]</code></td>
+ <td class="md" nowrap></td>
</tr>
</table>
@@ -718,7 +718,7 @@ An invalid nickname indicates an unregistered connection prior to the NICK comma
<p>
Definition at line <a class="el" href="users_8h-source.html#l00091">91</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00205">Server::QuitUser()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00373">Server::QuitUser()</a>. </td>
</tr>
</table>
<a name="m11" doxytag="userrec::oper"></a><p>
@@ -831,7 +831,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00013">userrec()</a>.
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="users_8h-source.html">users.h</a><li><a class="el" href="users_8cpp-source.html">users.cpp</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:27 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:35 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/commands_8h-source.html b/docs/module-doc/commands_8h-source.html
index 01b3b7ee2..84c651278 100644
--- a/docs/module-doc/commands_8h-source.html
+++ b/docs/module-doc/commands_8h-source.html
@@ -98,7 +98,7 @@
00098 <span class="keywordtype">bool</span> <a class="code" href="commands_8h.html#a70">is_uline</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* server);
00099
00100 <span class="preprocessor">#endif</span>
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:06 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/commands_8h.html b/docs/module-doc/commands_8h.html
index 4708fe2e5..b4390f2cf 100644
--- a/docs/module-doc/commands_8h.html
+++ b/docs/module-doc/commands_8h.html
@@ -3446,7 +3446,7 @@ Functions for u:lined servers.
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00211">Server::IsUlined()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00379">Server::IsUlined()</a>. </td>
</tr>
</table>
<a name="a47" doxytag="commands.h::process_restricted_commands"></a><p>
@@ -3517,7 +3517,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00211">Server::IsUli
</td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:03 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:10 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/connection_8h-source.html b/docs/module-doc/connection_8h-source.html
index 002837730..9787c9d2d 100644
--- a/docs/module-doc/connection_8h-source.html
+++ b/docs/module-doc/connection_8h-source.html
@@ -157,7 +157,7 @@
00288
00289 <span class="preprocessor">#endif</span>
00290 <span class="preprocessor"></span>
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:06 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/connection_8h.html b/docs/module-doc/connection_8h.html
index e7bc240bf..d89c6d21b 100644
--- a/docs/module-doc/connection_8h.html
+++ b/docs/module-doc/connection_8h.html
@@ -29,15 +29,10 @@ Include dependency graph for connection.h:<p><center><img src="connection_8h__in
<p>
This graph shows which files directly or indirectly include this file:<p><center><img src="connection_8h__dep__incl.gif" border="0" usemap="#connection.hdep_map" alt="Included by dependency graph"></center>
<map name="connection.hdep_map">
-<area href="users_8h.html" shape="rect" coords="256,155,307,176" alt="">
-<area href="users_8cpp.html" shape="rect" coords="7,86,73,107" alt="">
-<area href="commands_8h.html" shape="rect" coords="97,86,180,107" alt="">
-<area href="modules_8cpp.html" shape="rect" coords="199,16,281,38" alt="">
-<area href="message_8h.html" shape="rect" coords="204,86,276,107" alt="">
-<area href="mode_8h.html" shape="rect" coords="300,86,351,107" alt="">
-<area href="xline_8h.html" shape="rect" coords="375,86,423,107" alt="">
-<area href="servers_8h.html" shape="rect" coords="413,155,477,176" alt="">
-<area href="servers_8cpp.html" shape="rect" coords="447,86,527,107" alt="">
+<area href="channels_8cpp.html" shape="rect" coords="24,16,112,37" alt="">
+<area href="users_8h.html" shape="rect" coords="57,85,108,106" alt="">
+<area href="servers_8h.html" shape="rect" coords="132,85,196,106" alt="">
+<area href="modules_8cpp.html" shape="rect" coords="136,16,219,37" alt="">
</map>
<p>
@@ -203,7 +198,7 @@ Definition at line <a class="el" href="connection_8h-source.html#l00027">27</a>
Definition at line <a class="el" href="connection_8h-source.html#l00024">24</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>. </td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:04 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:11 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/connection_8h__dep__incl.gif b/docs/module-doc/connection_8h__dep__incl.gif
index ac5958da9..afab79193 100644
--- a/docs/module-doc/connection_8h__dep__incl.gif
+++ b/docs/module-doc/connection_8h__dep__incl.gif
Binary files differ
diff --git a/docs/module-doc/ctables_8h-source.html b/docs/module-doc/ctables_8h-source.html
index fc96a89e0..fe2503299 100644
--- a/docs/module-doc/ctables_8h-source.html
+++ b/docs/module-doc/ctables_8h-source.html
@@ -41,7 +41,7 @@
00047
00048 <span class="preprocessor">#endif</span>
00049 <span class="preprocessor"></span>
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:06 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/ctables_8h.html b/docs/module-doc/ctables_8h.html
index f609460b7..5aee02962 100644
--- a/docs/module-doc/ctables_8h.html
+++ b/docs/module-doc/ctables_8h.html
@@ -19,8 +19,9 @@ Include dependency graph for ctables.h:<p><center><img src="ctables_8h__incl.gif
<p>
This graph shows which files directly or indirectly include this file:<p><center><img src="ctables_8h__dep__incl.gif" border="0" usemap="#ctables.hdep_map" alt="Included by dependency graph"></center>
<map name="ctables.hdep_map">
-<area href="modules_8cpp.html" shape="rect" coords="13,16,96,37" alt="">
-<area href="modules_8h.html" shape="rect" coords="57,85,124,106" alt="">
+<area href="channels_8cpp.html" shape="rect" coords="7,16,95,37" alt="">
+<area href="modules_8h.html" shape="rect" coords="72,85,139,106" alt="">
+<area href="modules_8cpp.html" shape="rect" coords="127,16,209,37" alt="">
</map>
<p>
@@ -30,7 +31,7 @@ This graph shows which files directly or indirectly include this file:<p><center
<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classcommand__t.html">command_t</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>A structure that defines a command.</em> <a href="classcommand__t.html#_details">More...</a><em></em></font><br><br></td></tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:04 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:11 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/ctables_8h__dep__incl.gif b/docs/module-doc/ctables_8h__dep__incl.gif
index aa9715c04..ac4b2bcbd 100644
--- a/docs/module-doc/ctables_8h__dep__incl.gif
+++ b/docs/module-doc/ctables_8h__dep__incl.gif
Binary files differ
diff --git a/docs/module-doc/files.html b/docs/module-doc/files.html
index a5e078f14..0cdfbd278 100644
--- a/docs/module-doc/files.html
+++ b/docs/module-doc/files.html
@@ -23,7 +23,7 @@
<tr><td class="indexkey"><a class="el" href="users_8h.html">users.h</a> <a href="users_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="xline_8h.html">xline.h</a> <a href="xline_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:06 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/functions.html b/docs/module-doc/functions.html
index 65c5edaa5..d061f50cc 100644
--- a/docs/module-doc/functions.html
+++ b/docs/module-doc/functions.html
@@ -104,7 +104,8 @@ Here is a list of all class members with links to the classes they belong to:<h3
: <a class="el" href="classircd__connector.html#a7">ircd_connector</a><li>GetServerName()
: <a class="el" href="classServer.html#a18">Server</a>, <a class="el" href="classircd__connector.html#a1">ircd_connector</a><li>GetServerPort()
: <a class="el" href="classircd__connector.html#a10">ircd_connector</a><li>GetState()
-: <a class="el" href="classircd__connector.html#a5">ircd_connector</a><li>GetVersion()
+: <a class="el" href="classircd__connector.html#a5">ircd_connector</a><li>GetUsers()
+: <a class="el" href="classServer.html#a35">Server</a><li>GetVersion()
: <a class="el" href="classModule.html#a2">Module</a></ul>
<h3><a name="index_h">- h -</a>
</h3><ul>
@@ -181,7 +182,8 @@ Here is a list of all class members with links to the classes they belong to:<h3
<h3><a name="index_o">- o -</a>
</h3><ul>
<li>OnAccessCheck()
-: <a class="el" href="classModule.html#a19">Module</a><li>OnExtendedMode()
+: <a class="el" href="classModule.html#a19">Module</a><li>OnChannelSync()
+: <a class="el" href="classModule.html#a21">Module</a><li>OnExtendedMode()
: <a class="el" href="classModule.html#a11">Module</a><li>OnInfo()
: <a class="el" href="classModule.html#a14">Module</a><li>OnOper()
: <a class="el" href="classModule.html#a13">Module</a><li>OnPacketReceive()
@@ -196,9 +198,11 @@ Here is a list of all class members with links to the classes they belong to:<h3
: <a class="el" href="classModule.html#a16">Module</a><li>OnUserPreNick()
: <a class="el" href="classModule.html#a18">Module</a><li>OnUserPreNotice()
: <a class="el" href="classModule.html#a17">Module</a><li>OnUserQuit()
-: <a class="el" href="classModule.html#a4">Module</a><li>OnWhois()
+: <a class="el" href="classModule.html#a4">Module</a><li>OnUserSync()
+: <a class="el" href="classModule.html#a20">Module</a><li>OnWhois()
: <a class="el" href="classModule.html#a15">Module</a><li>oper
-: <a class="el" href="classuserrec.html#m11">userrec</a><li>opercount
+: <a class="el" href="classuserrec.html#m11">userrec</a><li>operator()()
+: <a class="el" href="structInAddr__HashComp.html#a0">InAddr_HashComp</a>, <a class="el" href="structStrHashComp.html#a0">StrHashComp</a>, <a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html#a0">nspace::hash&lt; string &gt;</a>, <a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html#a0">nspace::hash&lt; in_addr &gt;</a><li>opercount
: <a class="el" href="classserverrec.html#m4">serverrec</a></ul>
<h3><a name="index_p">- p -</a>
</h3><ul>
@@ -284,9 +288,9 @@ Here is a list of all class members with links to the classes they belong to:<h3
<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="classserverrec.html#m6">serverrec</a><li>Version()
-: <a class="el" href="classVersion.html#a0">Version</a></ul>
+: <a class="el" href="classConfigReader.html#a5">ConfigReader</a><li>Version()
+: <a class="el" href="classVersion.html#a0">Version</a><li>version
+: <a class="el" href="classserverrec.html#m6">serverrec</a></ul>
<h3><a name="index_~">- ~ -</a>
</h3><ul>
<li>~chanrec()
@@ -301,7 +305,7 @@ Here is a list of all class members with links to the classes they belong to:<h3
: <a class="el" href="classserverrec.html#a2">serverrec</a><li>~ucrec()
: <a class="el" href="classucrec.html#a1">ucrec</a><li>~userrec()
: <a class="el" href="classuserrec.html#a1">userrec</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:10 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:18 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/globals.html b/docs/module-doc/globals.html
index 50ed95c36..327a5d9f0 100644
--- a/docs/module-doc/globals.html
+++ b/docs/module-doc/globals.html
@@ -7,7 +7,7 @@
<center>
<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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_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_l">l</a>&nbsp;|&nbsp;<a href="#index_m">m</a>&nbsp;|&nbsp;<a href="#index_n">n</a>&nbsp;|&nbsp;<a href="#index_p">p</a>&nbsp;|&nbsp;<a href="#index_q">q</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_z">z</a></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_l">l</a>&nbsp;|&nbsp;<a href="#index_m">m</a>&nbsp;|&nbsp;<a href="#index_n">n</a>&nbsp;|&nbsp;<a href="#index_p">p</a>&nbsp;|&nbsp;<a href="#index_q">q</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_w">w</a>&nbsp;|&nbsp;<a href="#index_z">z</a></center>
<p>
Here is a list of all file members with links to the files they belong to:<h3><a name="index_a">- a -</a>
@@ -29,54 +29,73 @@ Here is a list of all file members with links to the files they belong to:<h3><a
: <a class="el" href="xline_8h.html#a1">xline.h</a><li>add_kline()
: <a class="el" href="xline_8h.html#a4">xline.h</a><li>add_qline()
: <a class="el" href="xline_8h.html#a2">xline.h</a><li>add_zline()
-: <a class="el" href="xline_8h.html#a3">xline.h</a><li>allowed_umode()
+: <a class="el" href="xline_8h.html#a3">xline.h</a><li>address_cache
+: <a class="el" href="modules_8cpp.html#a40">modules.cpp</a><li>AdminEmail
+: <a class="el" href="modules_8cpp.html#a9">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a9">channels.cpp</a><li>AdminName
+: <a class="el" href="modules_8cpp.html#a8">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a8">channels.cpp</a><li>AdminNick
+: <a class="el" href="modules_8cpp.html#a10">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a10">channels.cpp</a><li>allowed_umode()
: <a class="el" href="mode_8h.html#a9">mode.h</a><li>apply_lines()
-: <a class="el" href="xline_8h.html#a14">xline.h</a></ul>
+: <a class="el" href="xline_8h.html#a14">xline.h</a><li>auth_cookies
+: <a class="el" href="modules_8cpp.html#a34">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a34">channels.cpp</a></ul>
<h3><a name="index_b">- b -</a>
</h3><ul>
<li>BanList
-: <a class="el" href="channels_8h.html#a5">channels.h</a><li>Blocking()
-: <a class="el" href="message_8h.html#a5">message.h</a></ul>
+: <a class="el" href="channels_8h.html#a5">channels.h</a><li>bannerBuffer
+: <a class="el" href="modules_8cpp.html#a28">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a28">channels.cpp</a><li>Blocking()
+: <a class="el" href="message_8h.html#a5">message.h</a><li>boundPortCount
+: <a class="el" href="modules_8cpp.html#a29">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a29">channels.cpp</a></ul>
<h3><a name="index_c">- c -</a>
</h3><ul>
<li>c_count()
: <a class="el" href="message_8h.html#a8">message.h</a><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>ChangeDisplayedHost()
+: <a class="el" href="users_8h.html#a5">users.h</a><li>chan_hash
+: <a class="el" href="modules_8cpp.html#a39">modules.cpp</a><li>ChangeDisplayedHost()
: <a class="el" href="message_8h.html#a11">message.h</a><li>ChangeName()
-: <a class="el" href="message_8h.html#a10">message.h</a><li>chlist()
+: <a class="el" href="message_8h.html#a10">message.h</a><li>chanlist
+: <a class="el" href="modules_8cpp.html#a43">modules.cpp</a><li>chanuserlist
+: <a class="el" href="modules_8h.html#a24">modules.h</a><li>chlist()
: <a class="el" href="message_8h.html#a18">message.h</a><li>chop()
: <a class="el" href="message_8h.html#a1">message.h</a><li>ClassVector
: <a class="el" href="users_8h.html#a7">users.h</a><li>CleanAndResolve()
-: <a class="el" href="message_8h.html#a7">message.h</a><li>cmode()
-: <a class="el" href="message_8h.html#a14">message.h</a><li>common_channels()
+: <a class="el" href="message_8h.html#a7">message.h</a><li>clientlist
+: <a class="el" href="modules_8cpp.html#a42">modules.cpp</a><li>cmdlist
+: <a class="el" href="modules_8cpp.html#a45">modules.cpp</a><li>cmode()
+: <a class="el" href="message_8h.html#a14">message.h</a><li>command_table
+: <a class="el" href="modules_8cpp.html#a41">modules.cpp</a><li>common_channels()
: <a class="el" href="message_8h.html#a0">message.h</a><li>config_f
-: <a class="el" href="users_8cpp.html#a0">users.cpp</a><li>createcommand()
-: <a class="el" href="modules_8h.html#a25">modules.h</a><li>cstatus()
+: <a class="el" href="users_8cpp.html#a0">users.cpp</a>, <a class="el" href="modules_8cpp.html#a35">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a35">channels.cpp</a><li>createcommand()
+: <a class="el" href="modules_8h.html#a26">modules.h</a><li>cstatus()
: <a class="el" href="message_8h.html#a15">message.h</a><li>custom_mode_params
-: <a class="el" href="channels_8cpp.html#a0">channels.cpp</a></ul>
+: <a class="el" href="channels_8cpp.html#a38">channels.cpp</a></ul>
<h3><a name="index_d">- d -</a>
</h3><ul>
<li>DEBUG
-: <a class="el" href="modules_8h.html#a0">modules.h</a><li>DEFAULT
-: <a class="el" href="modules_8h.html#a2">modules.h</a><li>del_gline()
+: <a class="el" href="modules_8h.html#a0">modules.h</a><li>debugging
+: <a class="el" href="modules_8cpp.html#a18">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a18">channels.cpp</a><li>DEFAULT
+: <a class="el" href="modules_8h.html#a2">modules.h</a><li>defaultRoute
+: <a class="el" href="modules_8cpp.html#a33">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a33">channels.cpp</a><li>del_gline()
: <a class="el" href="xline_8h.html#a5">xline.h</a><li>del_kline()
: <a class="el" href="xline_8h.html#a8">xline.h</a><li>del_qline()
: <a class="el" href="xline_8h.html#a6">xline.h</a><li>del_zline()
-: <a class="el" href="xline_8h.html#a7">xline.h</a><li>DoAddExtendedMode()
-: <a class="el" href="modules_8cpp.html#a9">modules.cpp</a></ul>
+: <a class="el" href="xline_8h.html#a7">xline.h</a><li>DieDelay
+: <a class="el" href="modules_8cpp.html#a21">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a21">channels.cpp</a><li>diepass
+: <a class="el" href="modules_8cpp.html#a11">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a11">channels.cpp</a><li>DieValue
+: <a class="el" href="modules_8cpp.html#a17">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a17">channels.cpp</a><li>DoAddExtendedMode()
+: <a class="el" href="modules_8cpp.html#a57">modules.cpp</a></ul>
<h3><a name="index_e">- e -</a>
</h3><ul>
<li>EMode
-: <a class="el" href="modules_8cpp.html#a2">modules.cpp</a><li>ExemptList
+: <a class="el" href="modules_8cpp.html#a51">modules.cpp</a><li>ExemptList
: <a class="el" href="channels_8h.html#a6">channels.h</a><li>expire_lines()
: <a class="el" href="xline_8h.html#a13">xline.h</a><li>ExtModeList
-: <a class="el" href="modules_8cpp.html#a0">modules.cpp</a><li>ExtModeListIter
-: <a class="el" href="modules_8cpp.html#a1">modules.cpp</a></ul>
+: <a class="el" href="modules_8cpp.html#a49">modules.cpp</a><li>ExtModeListIter
+: <a class="el" href="modules_8cpp.html#a50">modules.cpp</a></ul>
<h3><a name="index_f">- f -</a>
</h3><ul>
-<li>factory()
-: <a class="el" href="modules_8cpp.html#a12">modules.cpp</a><li>file_cache
+<li>factory
+: <a class="el" href="modules_8cpp.html#a60">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a3">channels.cpp</a><li>fd_reap
+: <a class="el" href="modules_8cpp.html#a26">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a26">channels.cpp</a><li>file_cache
: <a class="el" href="modules_8h.html#a22">modules.h</a><li>FOREACH_MOD
: <a class="el" href="modules_8h.html#a20">modules.h</a><li>FOREACH_RESULT
: <a class="el" href="modules_8h.html#a21">modules.h</a></ul>
@@ -116,9 +135,9 @@ Here is a list of all file members with links to the files they belong to:<h3><a
: <a class="el" href="commands_8h.html#a46">commands.h</a><li>handle_links()
: <a class="el" href="commands_8h.html#a38">commands.h</a><li>handle_list()
: <a class="el" href="commands_8h.html#a20">commands.h</a><li>handle_lusers()
-: <a class="el" href="commands_8h.html#a22">commands.h</a><li>handle_m()
-: <a class="el" href="commands_8h.html#a63">commands.h</a><li>handle_M()
-: <a class="el" href="commands_8h.html#a64">commands.h</a><li>handle_map()
+: <a class="el" href="commands_8h.html#a22">commands.h</a><li>handle_M()
+: <a class="el" href="commands_8h.html#a64">commands.h</a><li>handle_m()
+: <a class="el" href="commands_8h.html#a63">commands.h</a><li>handle_map()
: <a class="el" href="commands_8h.html#a39">commands.h</a><li>handle_mode()
: <a class="el" href="mode_8h.html#a11">mode.h</a><li>handle_modules()
: <a class="el" href="commands_8h.html#a34">commands.h</a><li>handle_motd()
@@ -145,9 +164,9 @@ Here is a list of all file members with links to the files they belong to:<h3><a
: <a class="el" href="commands_8h.html#a27">commands.h</a><li>handle_squit()
: <a class="el" href="commands_8h.html#a37">commands.h</a><li>handle_stats()
: <a class="el" href="commands_8h.html#a35">commands.h</a><li>handle_summon()
-: <a class="el" href="commands_8h.html#a6">commands.h</a><li>handle_t()
-: <a class="el" href="commands_8h.html#a66">commands.h</a><li>handle_T()
-: <a class="el" href="commands_8h.html#a65">commands.h</a><li>handle_time()
+: <a class="el" href="commands_8h.html#a6">commands.h</a><li>handle_T()
+: <a class="el" href="commands_8h.html#a65">commands.h</a><li>handle_t()
+: <a class="el" href="commands_8h.html#a66">commands.h</a><li>handle_time()
: <a class="el" href="commands_8h.html#a15">commands.h</a><li>handle_topic()
: <a class="el" href="commands_8h.html#a10">commands.h</a><li>handle_trace()
: <a class="el" href="commands_8h.html#a33">commands.h</a><li>handle_user()
@@ -166,8 +185,9 @@ Here is a list of all file members with links to the files they belong to:<h3><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><li>ircd_module
-: <a class="el" href="modules_8h.html#a24">modules.h</a><li>is_uline()
+: <a class="el" href="channels_8h.html#a7">channels.h</a><li>IP
+: <a class="el" href="modules_8cpp.html#a48">modules.cpp</a><li>ircd_module
+: <a class="el" href="modules_8h.html#a25">modules.h</a><li>is_uline()
: <a class="el" href="commands_8h.html#a70">commands.h</a><li>isident()
: <a class="el" href="message_8h.html#a12">message.h</a><li>isnick()
: <a class="el" href="message_8h.html#a13">message.h</a></ul>
@@ -175,35 +195,50 @@ Here is a list of all file members with links to the files they belong to:<h3><a
</h3><ul>
<li>LINK_ACTIVE
: <a class="el" href="servers_8h.html#a0">servers.h</a><li>LINK_INACTIVE
-: <a class="el" href="servers_8h.html#a1">servers.h</a></ul>
+: <a class="el" href="servers_8h.html#a1">servers.h</a><li>list
+: <a class="el" href="modules_8cpp.html#a15">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a15">channels.cpp</a><li>log_file
+: <a class="el" href="modules_8cpp.html#a37">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a37">channels.cpp</a><li>LogLevel
+: <a class="el" href="modules_8cpp.html#a4">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a4">channels.cpp</a></ul>
<h3><a name="index_m">- m -</a>
</h3><ul>
<li>matches_gline()
: <a class="el" href="xline_8h.html#a10">xline.h</a><li>matches_kline()
: <a class="el" href="xline_8h.html#a12">xline.h</a><li>matches_qline()
: <a class="el" href="xline_8h.html#a9">xline.h</a><li>matches_zline()
-: <a class="el" href="xline_8h.html#a11">xline.h</a><li>merge_mode()
+: <a class="el" href="xline_8h.html#a11">xline.h</a><li>MaxWhoResults
+: <a class="el" href="modules_8cpp.html#a24">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a24">channels.cpp</a><li>me
+: <a class="el" href="modules_8cpp.html#a36">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a36">channels.cpp</a><li>merge_mode()
: <a class="el" href="mode_8h.html#a13">mode.h</a><li>merge_mode2()
: <a class="el" href="mode_8h.html#a14">mode.h</a><li>MODCOUNT
-: <a class="el" href="modules_8cpp.html#a3">modules.cpp</a><li>ModeDefined()
-: <a class="el" href="modules_8cpp.html#a4">modules.cpp</a><li>ModeDefinedOff()
-: <a class="el" href="modules_8cpp.html#a8">modules.cpp</a><li>ModeDefinedOn()
-: <a class="el" href="modules_8cpp.html#a7">modules.cpp</a><li>ModeDefinedOper()
-: <a class="el" href="modules_8cpp.html#a6">modules.cpp</a><li>ModeIsListMode()
-: <a class="el" href="modules_8cpp.html#a5">modules.cpp</a><li>ModeMakeList()
-: <a class="el" href="modules_8cpp.html#a10">modules.cpp</a><li>modules()
-: <a class="el" href="modules_8cpp.html#a11">modules.cpp</a><li>MT_CHANNEL
+: <a class="el" href="modules_8cpp.html#a1">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a1">channels.cpp</a><li>ModeDefined()
+: <a class="el" href="modules_8cpp.html#a52">modules.cpp</a><li>ModeDefinedOff()
+: <a class="el" href="modules_8cpp.html#a56">modules.cpp</a><li>ModeDefinedOn()
+: <a class="el" href="modules_8cpp.html#a55">modules.cpp</a><li>ModeDefinedOper()
+: <a class="el" href="modules_8cpp.html#a54">modules.cpp</a><li>ModeIsListMode()
+: <a class="el" href="modules_8cpp.html#a53">modules.cpp</a><li>ModeMakeList()
+: <a class="el" href="modules_8cpp.html#a58">modules.cpp</a><li>module_names
+: <a class="el" href="modules_8cpp.html#a27">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a27">channels.cpp</a><li>modules
+: <a class="el" href="modules_8cpp.html#a59">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a2">channels.cpp</a><li>motd
+: <a class="el" href="modules_8cpp.html#a13">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a13">channels.cpp</a><li>MOTD
+: <a class="el" href="modules_8cpp.html#a46">modules.cpp</a><li>MT_CHANNEL
: <a class="el" href="modules_8h.html#a5">modules.h</a><li>MT_CLIENT
: <a class="el" href="modules_8h.html#a6">modules.h</a><li>MT_SERVER
: <a class="el" href="modules_8h.html#a7">modules.h</a></ul>
<h3><a name="index_n">- n -</a>
</h3><ul>
-<li>NonBlocking()
+<li>nb_start
+: <a class="el" href="modules_8cpp.html#a25">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a25">channels.cpp</a><li>NetBufferSize
+: <a class="el" href="modules_8cpp.html#a23">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a23">channels.cpp</a><li>Network
+: <a class="el" href="modules_8cpp.html#a6">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a6">channels.cpp</a><li>NonBlocking()
: <a class="el" href="message_8h.html#a6">message.h</a><li>NONE
-: <a class="el" href="modules_8h.html#a4">modules.h</a></ul>
+: <a class="el" href="modules_8h.html#a4">modules.h</a><li>nspace
+: <a class="el" href="modules_8cpp.html#a0">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a0">channels.cpp</a></ul>
<h3><a name="index_p">- p -</a>
</h3><ul>
-<li>process_modes()
+<li>portCount
+: <a class="el" href="modules_8cpp.html#a30">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a30">channels.cpp</a><li>ports
+: <a class="el" href="modules_8cpp.html#a32">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a32">channels.cpp</a><li>PrefixQuit
+: <a class="el" href="modules_8cpp.html#a16">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a16">channels.cpp</a><li>process_modes()
: <a class="el" href="mode_8h.html#a8">mode.h</a><li>process_module_umode()
: <a class="el" href="mode_8h.html#a10">mode.h</a><li>process_restricted_commands()
: <a class="el" href="commands_8h.html#a47">commands.h</a></ul>
@@ -215,14 +250,20 @@ Here is a list of all file members with links to the files they belong to:<h3><a
<h3><a name="index_r">- r -</a>
</h3><ul>
<li>read_xline_defaults()
-: <a class="el" href="xline_8h.html#a0">xline.h</a></ul>
+: <a class="el" href="xline_8h.html#a0">xline.h</a><li>restartpass
+: <a class="el" href="modules_8cpp.html#a12">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a12">channels.cpp</a><li>RULES
+: <a class="el" href="modules_8cpp.html#a47">modules.cpp</a><li>rules
+: <a class="el" href="modules_8cpp.html#a14">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a14">channels.cpp</a></ul>
<h3><a name="index_s">- s -</a>
</h3><ul>
<li>safedelete()
: <a class="el" href="message_8h.html#a4">message.h</a><li>send_network_quit()
: <a class="el" href="message_8h.html#a19">message.h</a><li>server_mode()
-: <a class="el" href="modules_8h.html#a26">modules.h</a>, <a class="el" href="mode_8h.html#a12">mode.h</a><li>SPARSE
-: <a class="el" href="modules_8h.html#a3">modules.h</a><li>STATE_CONNECTED
+: <a class="el" href="modules_8h.html#a27">modules.h</a>, <a class="el" href="mode_8h.html#a12">mode.h</a><li>ServerDesc
+: <a class="el" href="modules_8cpp.html#a7">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a7">channels.cpp</a><li>ServerName
+: <a class="el" href="modules_8cpp.html#a5">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a5">channels.cpp</a><li>SPARSE
+: <a class="el" href="modules_8h.html#a3">modules.h</a><li>startup_time
+: <a class="el" href="modules_8cpp.html#a22">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a22">channels.cpp</a><li>STATE_CONNECTED
: <a class="el" href="connection_8h.html#a1">connection.h</a><li>STATE_DISCONNECTED
: <a class="el" href="connection_8h.html#a0">connection.h</a><li>STATE_NOAUTH_INBOUND
: <a class="el" href="connection_8h.html#a3">connection.h</a><li>STATE_NOAUTH_OUTBOUND
@@ -255,18 +296,26 @@ Here is a list of all file members with links to the files they belong to:<h3><a
: <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>
+: <a class="el" href="channels_8h.html#a1">channels.h</a><li>UDPportCount
+: <a class="el" href="modules_8cpp.html#a31">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a31">channels.cpp</a><li>user_hash
+: <a class="el" href="modules_8cpp.html#a38">modules.cpp</a></ul>
<h3><a name="index_v">- v -</a>
</h3><ul>
<li>VERBOSE
: <a class="el" href="modules_8h.html#a1">modules.h</a><li>VoidPointer
: <a class="el" href="base_8h.html#a0">base.h</a></ul>
+<h3><a name="index_w">- w -</a>
+</h3><ul>
+<li>whowas
+: <a class="el" href="modules_8cpp.html#a44">modules.cpp</a><li>WHOWAS_MAX
+: <a class="el" href="modules_8cpp.html#a20">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a20">channels.cpp</a><li>WHOWAS_STALE
+: <a class="el" href="modules_8cpp.html#a19">modules.cpp</a>, <a class="el" href="channels_8cpp.html#a19">channels.cpp</a></ul>
<h3><a name="index_z">- z -</a>
</h3><ul>
<li>zline_make_global()
: <a class="el" href="xline_8h.html#a22">xline.h</a><li>zline_set_creation_time()
: <a class="el" href="xline_8h.html#a21">xline.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:29 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:38 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/graph_legend.html b/docs/module-doc/graph_legend.html
index 1d17a02d5..cb5ca6514 100644
--- a/docs/module-doc/graph_legend.html
+++ b/docs/module-doc/graph_legend.html
@@ -69,7 +69,7 @@ A purple dashed arrow is used if a class is contained or used by another class.
<li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
</ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:29 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:38 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/hierarchy.html b/docs/module-doc/hierarchy.html
index 7470b7b5e..264b1e07a 100644
--- a/docs/module-doc/hierarchy.html
+++ b/docs/module-doc/hierarchy.html
@@ -24,7 +24,6 @@ This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
<li><a class="el" href="classuserrec.html">userrec</a>
</ul>
<li><a class="el" href="classircd__connector.html">ircd_connector</a>
-<li><a class="el" href="classucrec.html">ucrec</a>
</ul>
<li><a class="el" href="classExtMode.html">ExtMode</a>
<li><a class="el" href="classFileReader.html">FileReader</a>
@@ -40,6 +39,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
<li><a class="el" href="classModuleFactory.html">ModuleFactory</a>
<li><a class="el" href="classpacket.html">packet</a>
<li><a class="el" href="classServer.html">Server</a>
+<li><a class="el" href="classucrec.html">ucrec</a>
<li><a class="el" href="classVersion.html">Version</a>
<li><a class="el" href="classXLine.html">XLine</a>
<ul>
@@ -49,8 +49,12 @@ This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
<li><a class="el" href="classZLine.html">ZLine</a>
</ul>
</ul>
+<li><a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html">nspace::hash&lt; in_addr &gt;</a>
+<li><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html">nspace::hash&lt; string &gt;</a>
+<li><a class="el" href="structInAddr__HashComp.html">InAddr_HashComp</a>
+<li><a class="el" href="structStrHashComp.html">StrHashComp</a>
</ul>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:10 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:18 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/inherit__graph__0.gif b/docs/module-doc/inherit__graph__0.gif
index 54028c55c..50e1f6c75 100644
--- a/docs/module-doc/inherit__graph__0.gif
+++ b/docs/module-doc/inherit__graph__0.gif
Binary files differ
diff --git a/docs/module-doc/inherit__graph__1.gif b/docs/module-doc/inherit__graph__1.gif
index f79fa673d..d1e6a2187 100644
--- a/docs/module-doc/inherit__graph__1.gif
+++ b/docs/module-doc/inherit__graph__1.gif
Binary files differ
diff --git a/docs/module-doc/inherit__graph__2.gif b/docs/module-doc/inherit__graph__2.gif
index fbe411c4d..de0ed715e 100644
--- a/docs/module-doc/inherit__graph__2.gif
+++ b/docs/module-doc/inherit__graph__2.gif
Binary files differ
diff --git a/docs/module-doc/inherit__graph__3.gif b/docs/module-doc/inherit__graph__3.gif
new file mode 100644
index 000000000..2a20c6925
--- /dev/null
+++ b/docs/module-doc/inherit__graph__3.gif
Binary files differ
diff --git a/docs/module-doc/inherit__graph__4.gif b/docs/module-doc/inherit__graph__4.gif
new file mode 100644
index 000000000..c63b1f348
--- /dev/null
+++ b/docs/module-doc/inherit__graph__4.gif
Binary files differ
diff --git a/docs/module-doc/inherits.html b/docs/module-doc/inherits.html
index 359c95704..b1b7fca58 100644
--- a/docs/module-doc/inherits.html
+++ b/docs/module-doc/inherits.html
@@ -11,39 +11,55 @@
<table border=0 cellspacing=10 cellpadding=0>
<tr><td><img src="inherit__graph__0.gif" border="0" alt="" usemap="#classbase_map">
<map name="classbase_map">
-<area href="classclassbase.html" shape="rect" coords="19,323,85,344" alt="">
-<area href="classAdmin.html" shape="rect" coords="163,5,211,27" alt="">
-<area href="classConfigReader.html" shape="rect" coords="141,51,232,72" alt="">
+<area href="classclassbase.html" shape="rect" coords="19,345,85,366" alt="">
+<area href="classAdmin.html" shape="rect" coords="163,5,211,26" alt="">
+<area href="classConfigReader.html" shape="rect" coords="141,50,232,72" alt="">
<area href="classConnectClass.html" shape="rect" coords="143,96,231,117" alt="">
-<area href="classExtensible.html" shape="rect" coords="152,141,221,163" alt="">
-<area href="classExtMode.html" shape="rect" coords="157,187,216,208" alt="">
+<area href="classExtensible.html" shape="rect" coords="152,141,221,162" alt="">
+<area href="classExtMode.html" shape="rect" coords="157,186,216,208" alt="">
<area href="classFileReader.html" shape="rect" coords="149,232,224,253" alt="">
-<area href="classHostItem.html" shape="rect" coords="157,277,216,299" alt="">
-<area href="classInvited.html" shape="rect" coords="164,323,209,344" alt="">
+<area href="classHostItem.html" shape="rect" coords="157,277,216,298" alt="">
+<area href="classInvited.html" shape="rect" coords="164,322,209,344" alt="">
<area href="classModeParameter.html" shape="rect" coords="135,368,239,389" alt="">
-<area href="classModule.html" shape="rect" coords="161,413,212,435" alt="">
-<area href="classModuleFactory.html" shape="rect" coords="140,459,233,480" alt="">
+<area href="classModule.html" shape="rect" coords="161,413,212,434" alt="">
+<area href="classModuleFactory.html" shape="rect" coords="140,458,233,480" alt="">
<area href="classpacket.html" shape="rect" coords="161,504,212,525" alt="">
-<area href="classServer.html" shape="rect" coords="161,549,212,571" alt="">
-<area href="classVersion.html" shape="rect" coords="160,595,213,616" alt="">
-<area href="classXLine.html" shape="rect" coords="165,640,208,661" alt="">
-<area href="classchanrec.html" shape="rect" coords="305,28,364,49" alt="">
-<area href="classcommand__t.html" shape="rect" coords="296,73,373,95" alt="">
-<area href="classconnection.html" shape="rect" coords="300,119,369,140" alt="">
-<area href="classircd__connector.html" shape="rect" coords="287,164,383,185" alt="">
-<area href="classucrec.html" shape="rect" coords="312,209,357,231" alt="">
-<area href="classserverrec.html" shape="rect" coords="432,96,499,117" alt="">
-<area href="classuserrec.html" shape="rect" coords="437,141,493,163" alt="">
-<area href="classBanItem.html" shape="rect" coords="307,255,363,276" alt="">
-<area href="classExemptItem.html" shape="rect" coords="296,300,373,321" alt="">
-<area href="classInviteItem.html" shape="rect" coords="303,345,367,367" alt="">
-<area href="classGLine.html" shape="rect" coords="313,572,356,593" alt="">
-<area href="classKLine.html" shape="rect" coords="313,617,356,639" alt="">
-<area href="classQLine.html" shape="rect" coords="312,663,357,684" alt="">
-<area href="classZLine.html" shape="rect" coords="313,708,356,729" alt="">
+<area href="classServer.html" shape="rect" coords="161,549,212,570" alt="">
+<area href="classucrec.html" shape="rect" coords="164,594,209,616" alt="">
+<area href="classVersion.html" shape="rect" coords="160,640,213,661" alt="">
+<area href="classXLine.html" shape="rect" coords="165,685,208,706" alt="">
+<area href="classchanrec.html" shape="rect" coords="305,50,364,72" alt="">
+<area href="classcommand__t.html" shape="rect" coords="296,96,373,117" alt="">
+<area href="classconnection.html" shape="rect" coords="300,141,369,162" alt="">
+<area href="classircd__connector.html" shape="rect" coords="287,186,383,208" alt="">
+<area href="classserverrec.html" shape="rect" coords="432,118,499,140" alt="">
+<area href="classuserrec.html" shape="rect" coords="437,164,493,185" alt="">
+<area href="classBanItem.html" shape="rect" coords="307,232,363,253" alt="">
+<area href="classExemptItem.html" shape="rect" coords="296,277,373,298" alt="">
+<area href="classInviteItem.html" shape="rect" coords="303,322,367,344" alt="">
+<area href="classGLine.html" shape="rect" coords="313,617,356,638" alt="">
+<area href="classKLine.html" shape="rect" coords="313,662,356,684" alt="">
+<area href="classQLine.html" shape="rect" coords="312,708,357,729" alt="">
+<area href="classZLine.html" shape="rect" coords="313,753,356,774" alt="">
+</map></td></tr>
+<tr><td><img src="inherit__graph__1.gif" border="0" alt="" usemap="#InAddr__HashComp_map">
+<map name="InAddr__HashComp_map">
+<area href="structInAddr__HashComp.html" shape="rect" coords="17,5,137,26" alt="">
+</map></td></tr>
+<tr><td><img src="inherit__graph__2.gif" border="0" alt="" usemap="#nspace_1_1hash_3_01in__addr_01_4_map">
+<map name="nspace_1_1hash_3_01in__addr_01_4_map">
+<area href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html" shape="rect" coords="19,5,171,26" alt="">
+</map></td></tr>
+<tr><td><img src="inherit__graph__3.gif" border="0" alt="" usemap="#nspace_1_1hash_3_01string_01_4_map">
+<map name="nspace_1_1hash_3_01string_01_4_map">
+<area href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html" shape="rect" coords="19,5,160,26" alt="">
+</map></td></tr>
+<tr><td><img src="inherit__graph__4.gif" border="0" alt="" usemap="#StrHashComp_map">
+<map name="StrHashComp_map">
+<area href="structStrHashComp.html" shape="rect" coords="17,5,111,26" alt="">
</map></td></tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:29 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:39 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/main.html b/docs/module-doc/main.html
index c433b868d..aa404610e 100644
--- a/docs/module-doc/main.html
+++ b/docs/module-doc/main.html
@@ -8,7 +8,7 @@
<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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 Sat May 1 13:38:59 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:06 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/message_8h-source.html b/docs/module-doc/message_8h-source.html
index cd076d86a..a17476c3c 100644
--- a/docs/module-doc/message_8h-source.html
+++ b/docs/module-doc/message_8h-source.html
@@ -42,7 +42,7 @@
00034 <span class="keywordtype">void</span> <a class="code" href="message_8h.html#a19">send_network_quit</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* nick, <span class="keyword">const</span> <span class="keywordtype">char</span>* reason);
00035
00036 <span class="preprocessor">#endif</span>
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:06 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/message_8h.html b/docs/module-doc/message_8h.html
index 238512165..0c180087e 100644
--- a/docs/module-doc/message_8h.html
+++ b/docs/module-doc/message_8h.html
@@ -26,7 +26,8 @@ Include dependency graph for message.h:<p><center><img src="message_8h__incl.gif
<p>
This graph shows which files directly or indirectly include this file:<p><center><img src="message_8h__dep__incl.gif" border="0" usemap="#message.hdep_map" alt="Included by dependency graph"></center>
<map name="message.hdep_map">
-<area href="modules_8cpp.html" shape="rect" coords="7,16,89,37" alt="">
+<area href="channels_8cpp.html" shape="rect" coords="7,16,95,37" alt="">
+<area href="modules_8cpp.html" shape="rect" coords="119,16,201,37" alt="">
</map>
<p>
@@ -150,7 +151,7 @@ This graph shows which files directly or indirectly include this file:<p><center
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00299">Server::ChangeHost()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00467">Server::ChangeHost()</a>. </td>
</tr>
</table>
<a name="a10" doxytag="message.h::ChangeName"></a><p>
@@ -190,7 +191,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00299">Server::Chang
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00304">Server::ChangeGECOS()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00472">Server::ChangeGECOS()</a>. </td>
</tr>
</table>
<a name="a18" doxytag="message.h::chlist"></a><p>
@@ -326,7 +327,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00304">Server::Chang
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00324">Server::ChanMode()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00492">Server::ChanMode()</a>. </td>
</tr>
</table>
<a name="a0" doxytag="message.h::common_channels"></a><p>
@@ -366,7 +367,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00324">Server::ChanM
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00277">Server::CommonChannels()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00445">Server::CommonChannels()</a>. </td>
</tr>
</table>
<a name="a15" doxytag="message.h::cstatus"></a><p>
@@ -444,7 +445,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00277">Server::Commo
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00329">Server::IsOnChannel()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00349">Server::GetUsers()</a>, and <a class="el" href="modules_8cpp-source.html#l00497">Server::IsOnChannel()</a>. </td>
</tr>
</table>
<a name="a9" doxytag="message.h::hasumode"></a><p>
@@ -542,7 +543,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00329">Server::IsOnC
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00309">Server::IsNick()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00349">Server::GetUsers()</a>, and <a class="el" href="modules_8cpp-source.html#l00477">Server::IsNick()</a>. </td>
</tr>
</table>
<a name="a6" doxytag="message.h::NonBlocking"></a><p>
@@ -669,7 +670,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00309">Server::IsNic
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00205">Server::QuitUser()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00373">Server::QuitUser()</a>. </td>
</tr>
</table>
<a name="a17" doxytag="message.h::TidyBan"></a><p>
@@ -730,7 +731,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00205">Server::QuitU
</td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:05 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:12 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/message_8h__dep__incl.gif b/docs/module-doc/message_8h__dep__incl.gif
index 3420983e7..fcaf12977 100644
--- a/docs/module-doc/message_8h__dep__incl.gif
+++ b/docs/module-doc/message_8h__dep__incl.gif
Binary files differ
diff --git a/docs/module-doc/mode_8h-source.html b/docs/module-doc/mode_8h-source.html
index 72d2d6cde..a68f160e6 100644
--- a/docs/module-doc/mode_8h-source.html
+++ b/docs/module-doc/mode_8h-source.html
@@ -33,13 +33,13 @@
00025 <span class="keywordtype">bool</span> <a class="code" href="mode_8h.html#a9">allowed_umode</a>(<span class="keywordtype">char</span> umode, <span class="keywordtype">char</span>* sourcemodes,<span class="keywordtype">bool</span> adding);
00026 <span class="keywordtype">bool</span> <a class="code" href="mode_8h.html#a10">process_module_umode</a>(<span class="keywordtype">char</span> umode, <a class="code" href="classuserrec.html">userrec</a>* source, <span class="keywordtype">void</span>* dest, <span class="keywordtype">bool</span> adding);
00027 <span class="keywordtype">void</span> <a class="code" href="mode_8h.html#a11">handle_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-00028 <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#a26">server_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
+00028 <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#a27">server_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
00029 <span class="keywordtype">void</span> <a class="code" href="mode_8h.html#a13">merge_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt);
00030 <span class="keywordtype">void</span> <a class="code" href="mode_8h.html#a14">merge_mode2</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
00031
00032
00033 <span class="preprocessor">#endif</span>
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:06 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/mode_8h.html b/docs/module-doc/mode_8h.html
index ab7faf405..929a1cd2a 100644
--- a/docs/module-doc/mode_8h.html
+++ b/docs/module-doc/mode_8h.html
@@ -26,7 +26,8 @@ Include dependency graph for mode.h:<p><center><img src="mode_8h__incl.gif" bord
<p>
This graph shows which files directly or indirectly include this file:<p><center><img src="mode_8h__dep__incl.gif" border="0" usemap="#mode.hdep_map" alt="Included by dependency graph"></center>
<map name="mode.hdep_map">
-<area href="modules_8cpp.html" shape="rect" coords="7,16,89,37" alt="">
+<area href="channels_8cpp.html" shape="rect" coords="7,16,95,37" alt="">
+<area href="modules_8cpp.html" shape="rect" coords="119,16,201,37" alt="">
</map>
<p>
@@ -788,7 +789,7 @@ This graph shows which files directly or indirectly include this file:<p><center
</td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:06 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:13 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/mode_8h__dep__incl.gif b/docs/module-doc/mode_8h__dep__incl.gif
index 44fe3bf92..c6d8b6a29 100644
--- a/docs/module-doc/mode_8h__dep__incl.gif
+++ b/docs/module-doc/mode_8h__dep__incl.gif
Binary files differ
diff --git a/docs/module-doc/modules_8cpp-source.html b/docs/module-doc/modules_8cpp-source.html
index 7d63ff9d7..5d6a33b5e 100644
--- a/docs/module-doc/modules_8cpp-source.html
+++ b/docs/module-doc/modules_8cpp-source.html
@@ -6,493 +6,661 @@
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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"></span>
-00004 <span class="comment">*/</span>
-00005
-00006
-00007
-00008 <span class="preprocessor">#include &lt;typeinfo&gt;</span>
-00009 <span class="preprocessor">#include &lt;iostream&gt;</span>
-00010 <span class="preprocessor">#include "globals.h"</span>
-00011 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span>
-00012 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span>
-00013 <span class="preprocessor">#include "inspircd_io.h"</span>
-00014 <span class="preprocessor">#include "wildcard.h"</span>
-00015 <span class="preprocessor">#include "<a class="code" href="mode_8h.html">mode.h</a>"</span>
-00016 <span class="preprocessor">#include "<a class="code" href="message_8h.html">message.h</a>"</span>
-00017 <span class="preprocessor">#include "<a class="code" href="commands_8h.html">commands.h</a>"</span>
-00018
-00019 <span class="comment">// class type for holding an extended mode character - internal to core</span>
-00020
-<a name="l00021"></a><a class="code" href="classExtMode.html">00021</a> <span class="keyword">class </span><a class="code" href="classExtMode.html">ExtMode</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-00022 {
-00023 <span class="keyword">public</span>:
-<a name="l00024"></a><a class="code" href="classExtMode.html#m0">00024</a> <span class="keywordtype">char</span> <a class="code" href="classExtMode.html#m0">modechar</a>;
-<a name="l00025"></a><a class="code" href="classExtMode.html#m1">00025</a> <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#m1">type</a>;
-<a name="l00026"></a><a class="code" href="classExtMode.html#m2">00026</a> <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#m2">params_when_on</a>;
-<a name="l00027"></a><a class="code" href="classExtMode.html#m3">00027</a> <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#m3">params_when_off</a>;
-<a name="l00028"></a><a class="code" href="classExtMode.html#m4">00028</a> <span class="keywordtype">bool</span> <a class="code" href="classExtMode.html#m4">needsoper</a>;
-<a name="l00029"></a><a class="code" href="classExtMode.html#m5">00029</a> <span class="keywordtype">bool</span> <a class="code" href="classExtMode.html#m5">list</a>;
-<a name="l00030"></a><a class="code" href="classExtMode.html#a0">00030</a> <a class="code" href="classExtMode.html#a0">ExtMode</a>(<span class="keywordtype">char</span> mc, <span class="keywordtype">int</span> ty, <span class="keywordtype">bool</span> oper, <span class="keywordtype">int</span> p_on, <span class="keywordtype">int</span> p_off) : modechar(mc), type(ty), needsoper(oper), params_when_on(p_on), params_when_off(p_off) { };
-00031 };
-00032
-<a name="l00033"></a><a class="code" href="modules_8cpp.html#a0">00033</a> <span class="keyword">typedef</span> std::vector&lt;ExtMode&gt; <a class="code" href="modules_8cpp.html#a0">ExtModeList</a>;
-<a name="l00034"></a><a class="code" href="modules_8cpp.html#a1">00034</a> <span class="keyword">typedef</span> ExtModeList::iterator <a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a>;
-00035
-<a name="l00036"></a><a class="code" href="modules_8cpp.html#a2">00036</a> <a class="code" href="modules_8cpp.html#a0">ExtModeList</a> <a class="code" href="modules_8cpp.html#a2">EMode</a>;
-00037
-00038 <span class="comment">// returns true if an extended mode character is in use</span>
-<a name="l00039"></a><a class="code" href="modules_8cpp.html#a4">00039</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#a4">ModeDefined</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
-00040 {
-00041 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a2">EMode</a>.size());
-00042 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a2">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a2">EMode</a>.end(); i++)
-00043 {
-00044 log(DEBUG,<span class="stringliteral">"i-&gt;modechar==%c, modechar=%c, i-&gt;type=%d, type=%d"</span>,i-&gt;modechar,modechar,i-&gt;type,type);
-00045 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-00046 {
-00047 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00048 }
-00049 }
-00050 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00051 }
-00052
-<a name="l00053"></a><a class="code" href="modules_8cpp.html#a5">00053</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#a5">ModeIsListMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
-00054 {
-00055 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a2">EMode</a>.size());
-00056 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a2">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a2">EMode</a>.end(); i++)
-00057 {
-00058 log(DEBUG,<span class="stringliteral">"i-&gt;modechar==%c, modechar=%c, i-&gt;type=%d, type=%d"</span>,i-&gt;modechar,modechar,i-&gt;type,type);
-00059 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;list == <span class="keyword">true</span>))
-00060 {
-00061 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00062 }
-00063 }
-00064 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00065 }
-00066
-<a name="l00067"></a><a class="code" href="modules_8cpp.html#a6">00067</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#a6">ModeDefinedOper</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
-00068 {
-00069 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a2">EMode</a>.size());
-00070 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a2">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a2">EMode</a>.end(); i++)
-00071 {
-00072 log(DEBUG,<span class="stringliteral">"i-&gt;modechar==%c, modechar=%c, i-&gt;type=%d, type=%d"</span>,i-&gt;modechar,modechar,i-&gt;type,type);
-00073 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;needsoper == <span class="keyword">true</span>))
-00074 {
-00075 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00076 }
-00077 }
-00078 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00079 }
-00080
-00081 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span>
-<a name="l00082"></a><a class="code" href="modules_8cpp.html#a7">00082</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a7">ModeDefinedOn</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
-00083 {
-00084 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a2">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a2">EMode</a>.end(); i++)
-00085 {
-00086 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-00087 {
-00088 <span class="keywordflow">return</span> i-&gt;params_when_on;
-00089 }
-00090 }
-00091 <span class="keywordflow">return</span> 0;
-00092 }
-00093
-00094 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span>
-<a name="l00095"></a><a class="code" href="modules_8cpp.html#a8">00095</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a8">ModeDefinedOff</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
-00096 {
-00097 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a2">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a2">EMode</a>.end(); i++)
-00098 {
-00099 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-00100 {
-00101 <span class="keywordflow">return</span> i-&gt;params_when_off;
+<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="preprocessor">#include "inspircd.h"</span>
+00002 <span class="preprocessor">#include "inspircd_io.h"</span>
+00003 <span class="preprocessor">#include "inspircd_util.h"</span>
+00004 <span class="preprocessor">#include "inspircd_config.h"</span>
+00005 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
+00006 <span class="preprocessor">#include &lt;fcntl.h&gt;</span>
+00007 <span class="preprocessor">#include &lt;sys/errno.h&gt;</span>
+00008 <span class="preprocessor">#include &lt;sys/ioctl.h&gt;</span>
+00009 <span class="preprocessor">#include &lt;sys/utsname.h&gt;</span>
+00010 <span class="preprocessor">#include &lt;cstdio&gt;</span>
+00011 <span class="preprocessor">#include &lt;time.h&gt;</span>
+00012 <span class="preprocessor">#include &lt;string&gt;</span>
+00013 <span class="preprocessor">#ifdef GCC3</span>
+00014 <span class="preprocessor"></span><span class="preprocessor">#include &lt;ext/hash_map&gt;</span>
+00015 <span class="preprocessor">#else</span>
+00016 <span class="preprocessor"></span><span class="preprocessor">#include &lt;hash_map&gt;</span>
+00017 <span class="preprocessor">#endif</span>
+00018 <span class="preprocessor"></span><span class="preprocessor">#include &lt;map&gt;</span>
+00019 <span class="preprocessor">#include &lt;sstream&gt;</span>
+00020 <span class="preprocessor">#include &lt;vector&gt;</span>
+00021 <span class="preprocessor">#include &lt;errno.h&gt;</span>
+00022 <span class="preprocessor">#include &lt;deque&gt;</span>
+00023 <span class="preprocessor">#include &lt;errno.h&gt;</span>
+00024 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
+00025 <span class="preprocessor">#include &lt;sched.h&gt;</span>
+00026 <span class="preprocessor">#include "<a class="code" href="connection_8h.html">connection.h</a>"</span>
+00027 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
+00028 <span class="preprocessor">#include "<a class="code" href="servers_8h.html">servers.h</a>"</span>
+00029 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span>
+00030 <span class="preprocessor">#include "globals.h"</span>
+00031 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span>
+00032 <span class="preprocessor">#include "dynamic.h"</span>
+00033 <span class="preprocessor">#include "wildcard.h"</span>
+00034 <span class="preprocessor">#include "<a class="code" href="message_8h.html">message.h</a>"</span>
+00035 <span class="preprocessor">#include "<a class="code" href="mode_8h.html">mode.h</a>"</span>
+00036 <span class="preprocessor">#include "<a class="code" href="xline_8h.html">xline.h</a>"</span>
+00037 <span class="preprocessor">#include "<a class="code" href="commands_8h.html">commands.h</a>"</span>
+00038
+00039 <span class="preprocessor">#ifdef GCC3</span>
+00040 <span class="preprocessor"></span><span class="preprocessor">#define nspace __gnu_cxx</span>
+00041 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00042"></a><a class="code" href="modules_8cpp.html#a0">00042</a> <span class="preprocessor"></span><span class="preprocessor">#define nspace std</span>
+00043 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+00044 <span class="preprocessor"></span>
+00045 <span class="keyword">using</span> <span class="keyword">namespace </span>std;
+00046
+00047 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a1">MODCOUNT</a>;
+<a name="l00048"></a><a class="code" href="modules_8cpp.html#a2">00048</a> <span class="keyword">extern</span> vector&lt;Module*&gt; <a class="code" href="channels_8cpp.html#a2">modules</a>;
+<a name="l00049"></a><a class="code" href="modules_8cpp.html#a3">00049</a> <span class="keyword">extern</span> vector&lt;ircd_module*&gt; <a class="code" href="channels_8cpp.html#a3">factory</a>;
+00050
+<a name="l00051"></a><a class="code" href="modules_8cpp.html#a4">00051</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a4">LogLevel</a>;
+<a name="l00052"></a><a class="code" href="modules_8cpp.html#a5">00052</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a5">ServerName</a>[MAXBUF];
+<a name="l00053"></a><a class="code" href="modules_8cpp.html#a6">00053</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a6">Network</a>[MAXBUF];
+<a name="l00054"></a><a class="code" href="modules_8cpp.html#a7">00054</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a7">ServerDesc</a>[MAXBUF];
+<a name="l00055"></a><a class="code" href="modules_8cpp.html#a8">00055</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a8">AdminName</a>[MAXBUF];
+<a name="l00056"></a><a class="code" href="modules_8cpp.html#a9">00056</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a9">AdminEmail</a>[MAXBUF];
+<a name="l00057"></a><a class="code" href="modules_8cpp.html#a10">00057</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a10">AdminNick</a>[MAXBUF];
+<a name="l00058"></a><a class="code" href="modules_8cpp.html#a11">00058</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a11">diepass</a>[MAXBUF];
+<a name="l00059"></a><a class="code" href="modules_8cpp.html#a12">00059</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a12">restartpass</a>[MAXBUF];
+<a name="l00060"></a><a class="code" href="modules_8cpp.html#a13">00060</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a13">motd</a>[MAXBUF];
+<a name="l00061"></a><a class="code" href="modules_8cpp.html#a14">00061</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a14">rules</a>[MAXBUF];
+<a name="l00062"></a><a class="code" href="modules_8cpp.html#a15">00062</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a15">list</a>[MAXBUF];
+<a name="l00063"></a><a class="code" href="modules_8cpp.html#a16">00063</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a16">PrefixQuit</a>[MAXBUF];
+<a name="l00064"></a><a class="code" href="modules_8cpp.html#a17">00064</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a17">DieValue</a>[MAXBUF];
+00065
+<a name="l00066"></a><a class="code" href="modules_8cpp.html#a18">00066</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a18">debugging</a>;
+<a name="l00067"></a><a class="code" href="modules_8cpp.html#a19">00067</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a19">WHOWAS_STALE</a>;
+<a name="l00068"></a><a class="code" href="modules_8cpp.html#a20">00068</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a20">WHOWAS_MAX</a>;
+<a name="l00069"></a><a class="code" href="modules_8cpp.html#a21">00069</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a21">DieDelay</a>;
+<a name="l00070"></a><a class="code" href="modules_8cpp.html#a22">00070</a> <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#a22">startup_time</a>;
+<a name="l00071"></a><a class="code" href="modules_8cpp.html#a23">00071</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a23">NetBufferSize</a>;
+<a name="l00072"></a><a class="code" href="modules_8cpp.html#a24">00072</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a24">MaxWhoResults</a>;
+<a name="l00073"></a><a class="code" href="modules_8cpp.html#a25">00073</a> <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#a25">nb_start</a>;
+00074
+<a name="l00075"></a><a class="code" href="modules_8cpp.html#a26">00075</a> <span class="keyword">extern</span> std::vector&lt;int&gt; <a class="code" href="channels_8cpp.html#a26">fd_reap</a>;
+<a name="l00076"></a><a class="code" href="modules_8cpp.html#a27">00076</a> <span class="keyword">extern</span> std::vector&lt;std::string&gt; <a class="code" href="channels_8cpp.html#a27">module_names</a>;
+00077
+<a name="l00078"></a><a class="code" href="modules_8cpp.html#a28">00078</a> <span class="keyword">extern</span> <span class="keywordtype">char</span> <a class="code" href="channels_8cpp.html#a28">bannerBuffer</a>[MAXBUF];
+<a name="l00079"></a><a class="code" href="modules_8cpp.html#a29">00079</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a29">boundPortCount</a>;
+<a name="l00080"></a><a class="code" href="modules_8cpp.html#a30">00080</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a30">portCount</a>;
+<a name="l00081"></a><a class="code" href="modules_8cpp.html#a31">00081</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a31">UDPportCount</a>;
+<a name="l00082"></a><a class="code" href="modules_8cpp.html#a32">00082</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a32">ports</a>[MAXSOCKS];
+<a name="l00083"></a><a class="code" href="modules_8cpp.html#a33">00083</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#a33">defaultRoute</a>;
+00084
+<a name="l00085"></a><a class="code" href="modules_8cpp.html#a34">00085</a> <span class="keyword">extern</span> std::vector&lt;long&gt; <a class="code" href="channels_8cpp.html#a34">auth_cookies</a>;
+<a name="l00086"></a><a class="code" href="modules_8cpp.html#a35">00086</a> <span class="keyword">extern</span> std::stringstream <a class="code" href="channels_8cpp.html#a35">config_f</a>;
+00087
+<a name="l00088"></a><a class="code" href="modules_8cpp.html#a36">00088</a> <span class="keyword">extern</span> <a class="code" href="classserverrec.html">serverrec</a>* <a class="code" href="channels_8cpp.html#a36">me</a>[32];
+00089
+<a name="l00090"></a><a class="code" href="modules_8cpp.html#a37">00090</a> <span class="keyword">extern</span> FILE *<a class="code" href="channels_8cpp.html#a37">log_file</a>;
+00091
+00092
+<a name="l00093"></a><a class="code" href="namespacenspace.html">00093</a> <span class="keyword">namespace </span><a class="code" href="channels_8cpp.html#a0">nspace</a>
+00094 {
+<a name="l00095"></a><a class="code" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html">00095</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span><a class="code" href="channels_8cpp.html#a0">nspace</a>::hash&lt;in_addr&gt;
+00096 {
+<a name="l00097"></a><a class="code" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html#a0">00097</a> size_t operator()(<span class="keyword">const</span> <span class="keyword">struct</span> in_addr &amp;a)<span class="keyword"> const</span>
+00098 <span class="keyword"> </span>{
+00099 size_t q;
+00100 memcpy(&amp;q,&amp;a,<span class="keyword">sizeof</span>(size_t));
+00101 <span class="keywordflow">return</span> q;
00102 }
-00103 }
-00104 <span class="keywordflow">return</span> 0;
-00105 }
-00106
-00107 <span class="comment">// returns true if an extended mode character is in use</span>
-<a name="l00108"></a><a class="code" href="modules_8cpp.html#a9">00108</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#a9">DoAddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_on, <span class="keywordtype">int</span> params_off)
-00109 {
-00110 <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#a4">ModeDefined</a>(modechar,type)) {
-00111 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00112 }
-00113 <a class="code" href="modules_8cpp.html#a2">EMode</a>.push_back(<a class="code" href="classExtMode.html">ExtMode</a>(modechar,type,requires_oper,params_on,params_off));
-00114 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00115 }
-00116
-00117 <span class="comment">// turns a mode into a listmode</span>
-<a name="l00118"></a><a class="code" href="modules_8cpp.html#a10">00118</a> <span class="keywordtype">void</span> <a class="code" href="modules_8cpp.html#a10">ModeMakeList</a>(<span class="keywordtype">char</span> modechar)
-00119 {
-00120 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a2">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a2">EMode</a>.end(); i++)
-00121 {
-00122 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == <a class="code" href="modules_8h.html#a5">MT_CHANNEL</a>))
-00123 {
-00124 i-&gt;list = <span class="keyword">true</span>;
-00125 <span class="keywordflow">return</span>;
-00126 }
-00127 }
-00128 <span class="keywordflow">return</span>;
-00129 }
-00130
-00131 <span class="comment">// version is a simple class for holding a modules version number</span>
-00132
-<a name="l00133"></a><a class="code" href="classVersion.html#a0">00133</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) { };
+00103 };
+00104
+<a name="l00105"></a><a class="code" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html">00105</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span><a class="code" href="channels_8cpp.html#a0">nspace</a>::hash&lt;string&gt;
+00106 {
+<a name="l00107"></a><a class="code" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html#a0">00107</a> size_t operator()(<span class="keyword">const</span> string &amp;s)<span class="keyword"> const</span>
+00108 <span class="keyword"> </span>{
+00109 <span class="keywordtype">char</span> a[MAXBUF];
+00110 <span class="keyword">static</span> <span class="keyword">struct </span>hash&lt;const char *&gt; strhash;
+00111 strcpy(a,s.c_str());
+00112 strlower(a);
+00113 <span class="keywordflow">return</span> strhash(a);
+00114 }
+00115 };
+00116 }
+00117
+00118
+<a name="l00119"></a><a class="code" href="structStrHashComp.html">00119</a> <span class="keyword">struct </span><a class="code" href="structStrHashComp.html">StrHashComp</a>
+00120 {
+00121
+<a name="l00122"></a><a class="code" href="structStrHashComp.html#a0">00122</a> <span class="keywordtype">bool</span> <a class="code" href="structStrHashComp.html#a0">operator()</a>(<span class="keyword">const</span> string&amp; s1, <span class="keyword">const</span> string&amp; s2)<span class="keyword"> const</span>
+00123 <span class="keyword"> </span>{
+00124 <span class="keywordtype">char</span> a[MAXBUF],b[MAXBUF];
+00125 strcpy(a,s1.c_str());
+00126 strcpy(b,s2.c_str());
+00127 <span class="keywordflow">return</span> (strcasecmp(a,b) == 0);
+00128 }
+00129
+00130 };
+00131
+<a name="l00132"></a><a class="code" href="structInAddr__HashComp.html">00132</a> <span class="keyword">struct </span><a class="code" href="structInAddr__HashComp.html">InAddr_HashComp</a>
+00133 {
00134
-00135 <span class="comment">// admin is a simple class for holding a server's administrative info</span>
-00136
-<a name="l00137"></a><a class="code" href="classAdmin.html#a0">00137</a> <a class="code" href="classAdmin.html#a0">Admin::Admin</a>(std::string name, std::string email, std::string nick) : Name(name), Email(email), Nick(nick) { };
-00138
-<a name="l00139"></a><a class="code" href="classModule.html#a0">00139</a> <a class="code" href="classModule.html#a0">Module::Module</a>() { }
-<a name="l00140"></a><a class="code" href="classModule.html#a1">00140</a> <a class="code" href="classModule.html#a1">Module::~Module</a>() { }
-<a name="l00141"></a><a class="code" href="classModule.html#a3">00141</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="l00142"></a><a class="code" href="classModule.html#a4">00142</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="l00143"></a><a class="code" href="classModule.html#a5">00143</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="l00144"></a><a class="code" href="classModule.html#a6">00144</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="l00145"></a><a class="code" href="classModule.html#a7">00145</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a7">Module::OnPacketTransmit</a>(<span class="keywordtype">char</span> *p) { }
-<a name="l00146"></a><a class="code" href="classModule.html#a8">00146</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a8">Module::OnPacketReceive</a>(<span class="keywordtype">char</span> *p) { }
-<a name="l00147"></a><a class="code" href="classModule.html#a9">00147</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a9">Module::OnRehash</a>() { }
-<a name="l00148"></a><a class="code" href="classModule.html#a10">00148</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a10">Module::OnServerRaw</a>(std::string &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user) { }
-<a name="l00149"></a><a class="code" href="classModule.html#a12">00149</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a12">Module::OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname) { <span class="keywordflow">return</span> 0; }
-<a name="l00150"></a><a class="code" href="classModule.html#a11">00150</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a11">Module::OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, string_list &amp;params) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
-<a name="l00151"></a><a class="code" href="classModule.html#a2">00151</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); }
-<a name="l00152"></a><a class="code" href="classModule.html#a13">00152</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a13">Module::OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
-<a name="l00153"></a><a class="code" href="classModule.html#a14">00153</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a14">Module::OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
-<a name="l00154"></a><a class="code" href="classModule.html#a15">00154</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a15">Module::OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest) { };
-<a name="l00155"></a><a class="code" href="classModule.html#a16">00155</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a16">Module::OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string text) { <span class="keywordflow">return</span> 0; };
-<a name="l00156"></a><a class="code" href="classModule.html#a17">00156</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a17">Module::OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string text) { <span class="keywordflow">return</span> 0; };
-<a name="l00157"></a><a class="code" href="classModule.html#a18">00157</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a18">Module::OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newnick) { <span class="keywordflow">return</span> 0; };
-<a name="l00158"></a><a class="code" href="classModule.html#a19">00158</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a19">Module::OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type) { <span class="keywordflow">return</span> <a class="code" href="modules_8h.html#a8">ACR_DEFAULT</a>; };
-00159
-00160 <span class="comment">// server is a wrapper class that provides methods to all of the C-style</span>
-00161 <span class="comment">// exports in the core</span>
-00162 <span class="comment">//</span>
+<a name="l00135"></a><a class="code" href="structInAddr__HashComp.html#a0">00135</a> <span class="keywordtype">bool</span> <a class="code" href="structInAddr__HashComp.html#a0">operator()</a>(<span class="keyword">const</span> in_addr &amp;s1, <span class="keyword">const</span> in_addr &amp;s2)<span class="keyword"> const</span>
+00136 <span class="keyword"> </span>{
+00137 size_t q;
+00138 size_t p;
+00139
+00140 memcpy(&amp;q,&amp;s1,<span class="keyword">sizeof</span>(size_t));
+00141 memcpy(&amp;p,&amp;s2,<span class="keyword">sizeof</span>(size_t));
+00142
+00143 <span class="keywordflow">return</span> (q == p);
+00144 }
+00145
+00146 };
+00147
+00148
+<a name="l00149"></a><a class="code" href="modules_8cpp.html#a38">00149</a> <span class="keyword">typedef</span> nspace::hash_map&lt;std::string, userrec*, nspace::hash&lt;string&gt;, <a class="code" href="structStrHashComp.html">StrHashComp</a>&gt; <a class="code" href="modules_8cpp.html#a38">user_hash</a>;
+<a name="l00150"></a><a class="code" href="modules_8cpp.html#a39">00150</a> <span class="keyword">typedef</span> nspace::hash_map&lt;std::string, chanrec*, nspace::hash&lt;string&gt;, <a class="code" href="structStrHashComp.html">StrHashComp</a>&gt; <a class="code" href="modules_8cpp.html#a39">chan_hash</a>;
+<a name="l00151"></a><a class="code" href="modules_8cpp.html#a40">00151</a> <span class="keyword">typedef</span> nspace::hash_map&lt;in_addr,string*, nspace::hash&lt;in_addr&gt;, <a class="code" href="structInAddr__HashComp.html">InAddr_HashComp</a>&gt; <a class="code" href="modules_8cpp.html#a40">address_cache</a>;
+<a name="l00152"></a><a class="code" href="modules_8cpp.html#a41">00152</a> <span class="keyword">typedef</span> std::deque&lt;command_t&gt; <a class="code" href="modules_8cpp.html#a41">command_table</a>;
+00153
+00154
+<a name="l00155"></a><a class="code" href="modules_8cpp.html#a42">00155</a> <span class="keyword">extern</span> <a class="code" href="modules_8cpp.html#a38">user_hash</a> <a class="code" href="modules_8cpp.html#a42">clientlist</a>;
+<a name="l00156"></a><a class="code" href="modules_8cpp.html#a43">00156</a> <span class="keyword">extern</span> <a class="code" href="modules_8cpp.html#a39">chan_hash</a> <a class="code" href="modules_8cpp.html#a43">chanlist</a>;
+<a name="l00157"></a><a class="code" href="modules_8cpp.html#a44">00157</a> <span class="keyword">extern</span> <a class="code" href="modules_8cpp.html#a38">user_hash</a> <a class="code" href="modules_8cpp.html#a44">whowas</a>;
+<a name="l00158"></a><a class="code" href="modules_8cpp.html#a45">00158</a> <span class="keyword">extern</span> <a class="code" href="modules_8cpp.html#a41">command_table</a> <a class="code" href="modules_8cpp.html#a45">cmdlist</a>;
+<a name="l00159"></a><a class="code" href="modules_8cpp.html#a46">00159</a> <span class="keyword">extern</span> <a class="code" href="modules_8h.html#a22">file_cache</a> <a class="code" href="modules_8cpp.html#a46">MOTD</a>;
+<a name="l00160"></a><a class="code" href="modules_8cpp.html#a47">00160</a> <span class="keyword">extern</span> <a class="code" href="modules_8h.html#a22">file_cache</a> <a class="code" href="modules_8cpp.html#a47">RULES</a>;
+<a name="l00161"></a><a class="code" href="modules_8cpp.html#a48">00161</a> <span class="keyword">extern</span> <a class="code" href="modules_8cpp.html#a40">address_cache</a> <a class="code" href="modules_8cpp.html#a48">IP</a>;
+00162
00163
-<a name="l00164"></a><a class="code" href="classServer.html#a0">00164</a> <a class="code" href="classServer.html#a0">Server::Server</a>()
-00165 {
-00166 }
-00167
-<a name="l00168"></a><a class="code" href="classServer.html#a1">00168</a> <a class="code" href="classServer.html#a1">Server::~Server</a>()
-00169 {
-00170 }
-00171
-<a name="l00172"></a><a class="code" href="classServer.html#a2">00172</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">Server::SendOpers</a>(std::string s)
-00173 {
-00174 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
-00175 }
-00176
-<a name="l00177"></a><a class="code" href="classServer.html#a30">00177</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a30">Server::MatchText</a>(std::string sliteral, std::string spattern)
-00178 {
-00179 <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
-00180 strncpy(literal,sliteral.c_str(),MAXBUF);
-00181 strncpy(pattern,spattern.c_str(),MAXBUF);
-00182 <span class="keywordflow">return</span> match(literal,pattern);
-00183 }
-00184
-<a name="l00185"></a><a class="code" href="classServer.html#a25">00185</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a25">Server::SendToModeMask</a>(std::string modes, <span class="keywordtype">int</span> flags, std::string text)
+00164 <span class="comment">// class type for holding an extended mode character - internal to core</span>
+00165
+<a name="l00166"></a><a class="code" href="classExtMode.html">00166</a> <span class="keyword">class </span><a class="code" href="classExtMode.html">ExtMode</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+00167 {
+00168 <span class="keyword">public</span>:
+<a name="l00169"></a><a class="code" href="classExtMode.html#m0">00169</a> <span class="keywordtype">char</span> <a class="code" href="classExtMode.html#m0">modechar</a>;
+<a name="l00170"></a><a class="code" href="classExtMode.html#m1">00170</a> <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#m1">type</a>;
+<a name="l00171"></a><a class="code" href="classExtMode.html#m2">00171</a> <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#m2">params_when_on</a>;
+<a name="l00172"></a><a class="code" href="classExtMode.html#m3">00172</a> <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#m3">params_when_off</a>;
+<a name="l00173"></a><a class="code" href="classExtMode.html#m4">00173</a> <span class="keywordtype">bool</span> <a class="code" href="classExtMode.html#m4">needsoper</a>;
+<a name="l00174"></a><a class="code" href="classExtMode.html#m5">00174</a> <span class="keywordtype">bool</span> <a class="code" href="channels_8cpp.html#a15">list</a>;
+<a name="l00175"></a><a class="code" href="classExtMode.html#a0">00175</a> <a class="code" href="classExtMode.html#a0">ExtMode</a>(<span class="keywordtype">char</span> mc, <span class="keywordtype">int</span> ty, <span class="keywordtype">bool</span> oper, <span class="keywordtype">int</span> p_on, <span class="keywordtype">int</span> p_off) : modechar(mc), type(ty), needsoper(oper), params_when_on(p_on), params_when_off(p_off) { };
+00176 };
+00177
+<a name="l00178"></a><a class="code" href="modules_8cpp.html#a49">00178</a> <span class="keyword">typedef</span> std::vector&lt;ExtMode&gt; <a class="code" href="modules_8cpp.html#a49">ExtModeList</a>;
+<a name="l00179"></a><a class="code" href="modules_8cpp.html#a50">00179</a> <span class="keyword">typedef</span> ExtModeList::iterator <a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a>;
+00180
+00181
+<a name="l00182"></a><a class="code" href="modules_8cpp.html#a51">00182</a> <a class="code" href="modules_8cpp.html#a49">ExtModeList</a> <a class="code" href="modules_8cpp.html#a51">EMode</a>;
+00183
+00184 <span class="comment">// returns true if an extended mode character is in use</span>
+<a name="l00185"></a><a class="code" href="modules_8cpp.html#a52">00185</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#a52">ModeDefined</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
00186 {
-00187 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
-00188 }
-00189
-<a name="l00190"></a><a class="code" href="classServer.html#a26">00190</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a26">Server::JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string key)
-00191 {
-00192 <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">true</span>);
-00193 }
-00194
-<a name="l00195"></a><a class="code" href="classServer.html#a27">00195</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a27">Server::PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string reason)
-00196 {
-00197 <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
-00198 }
-00199
-<a name="l00200"></a><a class="code" href="classServer.html#a28">00200</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a28">Server::ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string nickname)
-00201 {
-00202 force_nickchange(user,nickname.c_str());
-00203 }
-00204
-<a name="l00205"></a><a class="code" href="classServer.html#a29">00205</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a29">Server::QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string reason)
-00206 {
-00207 <a class="code" href="message_8h.html#a19">send_network_quit</a>(user-&gt;<a class="code" href="classuserrec.html#m0">nick</a>,reason.c_str());
-00208 kill_link(user,reason.c_str());
-00209 }
-00210
-<a name="l00211"></a><a class="code" href="classServer.html#a34">00211</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a34">Server::IsUlined</a>(std::string server)
-00212 {
-00213 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a70">is_uline</a>(server.c_str());
-00214 }
-00215
-<a name="l00216"></a><a class="code" href="classServer.html#a31">00216</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a31">Server::CallCommandHandler</a>(std::string commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user)
-00217 {
-00218 call_handler(commandname.c_str(),parameters,pcnt,user);
-00219 }
-00220
-<a name="l00221"></a><a class="code" href="classServer.html#a3">00221</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Server::Log</a>(<span class="keywordtype">int</span> level, std::string s)
-00222 {
-00223 log(level,<span class="stringliteral">"%s"</span>,s.c_str());
-00224 }
-00225
-<a name="l00226"></a><a class="code" href="classServer.html#a23">00226</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a23">Server::AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams)
-00227 {
-00228 <a class="code" href="modules_8h.html#a25">createcommand</a>(cmd,f,flags,minparams);
-00229 }
-00230
-<a name="l00231"></a><a class="code" href="classServer.html#a24">00231</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a24">Server::SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user)
-00232 {
-00233 <a class="code" href="modules_8h.html#a26">server_mode</a>(parameters,pcnt,user);
-00234 }
-00235
-<a name="l00236"></a><a class="code" href="classServer.html#a4">00236</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Server::Send</a>(<span class="keywordtype">int</span> Socket, std::string s)
-00237 {
-00238 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-00239 }
-00240
-<a name="l00241"></a><a class="code" href="classServer.html#a5">00241</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">Server::SendServ</a>(<span class="keywordtype">int</span> Socket, std::string s)
+00187 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a51">EMode</a>.size());
+00188 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
+00189 {
+00190 log(DEBUG,<span class="stringliteral">"i-&gt;modechar==%c, modechar=%c, i-&gt;type=%d, type=%d"</span>,i-&gt;modechar,modechar,i-&gt;type,type);
+00191 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+00192 {
+00193 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00194 }
+00195 }
+00196 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00197 }
+00198
+<a name="l00199"></a><a class="code" href="modules_8cpp.html#a53">00199</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#a53">ModeIsListMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
+00200 {
+00201 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a51">EMode</a>.size());
+00202 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
+00203 {
+00204 log(DEBUG,<span class="stringliteral">"i-&gt;modechar==%c, modechar=%c, i-&gt;type=%d, type=%d"</span>,i-&gt;modechar,modechar,i-&gt;type,type);
+00205 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;list == <span class="keyword">true</span>))
+00206 {
+00207 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00208 }
+00209 }
+00210 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00211 }
+00212
+<a name="l00213"></a><a class="code" href="modules_8cpp.html#a54">00213</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#a54">ModeDefinedOper</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
+00214 {
+00215 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a51">EMode</a>.size());
+00216 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
+00217 {
+00218 log(DEBUG,<span class="stringliteral">"i-&gt;modechar==%c, modechar=%c, i-&gt;type=%d, type=%d"</span>,i-&gt;modechar,modechar,i-&gt;type,type);
+00219 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;needsoper == <span class="keyword">true</span>))
+00220 {
+00221 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00222 }
+00223 }
+00224 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00225 }
+00226
+00227 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span>
+<a name="l00228"></a><a class="code" href="modules_8cpp.html#a55">00228</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a55">ModeDefinedOn</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
+00229 {
+00230 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
+00231 {
+00232 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+00233 {
+00234 <span class="keywordflow">return</span> i-&gt;params_when_on;
+00235 }
+00236 }
+00237 <span class="keywordflow">return</span> 0;
+00238 }
+00239
+00240 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span>
+<a name="l00241"></a><a class="code" href="modules_8cpp.html#a56">00241</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a56">ModeDefinedOff</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
00242 {
-00243 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-00244 }
-00245
-<a name="l00246"></a><a class="code" href="classServer.html#a6">00246</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">Server::SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, std::string s)
-00247 {
-00248 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00249 }
-00250
-<a name="l00251"></a><a class="code" href="classServer.html#a7">00251</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">Server::SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, std::string s)
-00252 {
-00253 <span class="keywordflow">if</span> (!Source)
-00254 {
-00255 <span class="comment">// if source is NULL, then the message originates from the local server</span>
-00256 Write(Dest-&gt;<a class="code" href="classconnection.html#m0">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
-00257 }
-00258 <span class="keywordflow">else</span>
-00259 {
-00260 <span class="comment">// otherwise it comes from the user specified</span>
-00261 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
-00262 }
-00263 }
-00264
-<a name="l00265"></a><a class="code" href="classServer.html#a8">00265</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">Server::SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, std::string s,<span class="keywordtype">bool</span> IncludeSender)
-00266 {
-00267 <span class="keywordflow">if</span> (IncludeSender)
-00268 {
-00269 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00270 }
-00271 <span class="keywordflow">else</span>
-00272 {
-00273 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00274 }
+00243 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
+00244 {
+00245 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+00246 {
+00247 <span class="keywordflow">return</span> i-&gt;params_when_off;
+00248 }
+00249 }
+00250 <span class="keywordflow">return</span> 0;
+00251 }
+00252
+00253 <span class="comment">// returns true if an extended mode character is in use</span>
+<a name="l00254"></a><a class="code" href="modules_8cpp.html#a57">00254</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_on, <span class="keywordtype">int</span> params_off)
+00255 {
+00256 <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#a52">ModeDefined</a>(modechar,type)) {
+00257 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00258 }
+00259 <a class="code" href="modules_8cpp.html#a51">EMode</a>.push_back(<a class="code" href="classExtMode.html">ExtMode</a>(modechar,type,requires_oper,params_on,params_off));
+00260 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00261 }
+00262
+00263 <span class="comment">// turns a mode into a listmode</span>
+<a name="l00264"></a><a class="code" href="modules_8cpp.html#a58">00264</a> <span class="keywordtype">void</span> <a class="code" href="modules_8cpp.html#a58">ModeMakeList</a>(<span class="keywordtype">char</span> modechar)
+00265 {
+00266 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
+00267 {
+00268 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == <a class="code" href="modules_8h.html#a5">MT_CHANNEL</a>))
+00269 {
+00270 i-&gt;list = <span class="keyword">true</span>;
+00271 <span class="keywordflow">return</span>;
+00272 }
+00273 }
+00274 <span class="keywordflow">return</span>;
00275 }
00276
-<a name="l00277"></a><a class="code" href="classServer.html#a9">00277</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)
-00278 {
-00279 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a0">common_channels</a>(u1,u2) != 0);
-00280 }
-00281
-<a name="l00282"></a><a class="code" href="classServer.html#a10">00282</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a10">Server::SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text,<span class="keywordtype">bool</span> IncludeSender)
-00283 {
-00284 <span class="keywordflow">if</span> (IncludeSender)
-00285 {
-00286 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
-00287 }
-00288 <span class="keywordflow">else</span>
-00289 {
-00290 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
-00291 }
-00292 }
-00293
-<a name="l00294"></a><a class="code" href="classServer.html#a11">00294</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">Server::SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text)
-00295 {
-00296 WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
-00297 }
-00298
-<a name="l00299"></a><a class="code" href="classServer.html#a32">00299</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a32">Server::ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string host)
-00300 {
-00301 <a class="code" href="message_8h.html#a11">ChangeDisplayedHost</a>(user,host.c_str());
-00302 }
-00303
-<a name="l00304"></a><a class="code" href="classServer.html#a33">00304</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a33">Server::ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string gecos)
-00305 {
-00306 <a class="code" href="message_8h.html#a10">ChangeName</a>(user,gecos.c_str());
-00307 }
+00277 <span class="comment">// version is a simple class for holding a modules version number</span>
+00278
+<a name="l00279"></a><a class="code" href="classVersion.html#a0">00279</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) { };
+00280
+00281 <span class="comment">// admin is a simple class for holding a server's administrative info</span>
+00282
+<a name="l00283"></a><a class="code" href="classAdmin.html#a0">00283</a> <a class="code" href="classAdmin.html#a0">Admin::Admin</a>(std::string name, std::string email, std::string nick) : Name(name), Email(email), Nick(nick) { };
+00284
+<a name="l00285"></a><a class="code" href="classModule.html#a0">00285</a> <a class="code" href="classModule.html#a0">Module::Module</a>() { }
+<a name="l00286"></a><a class="code" href="classModule.html#a1">00286</a> <a class="code" href="classModule.html#a1">Module::~Module</a>() { }
+<a name="l00287"></a><a class="code" href="classModule.html#a3">00287</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="l00288"></a><a class="code" href="classModule.html#a4">00288</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="l00289"></a><a class="code" href="classModule.html#a5">00289</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="l00290"></a><a class="code" href="classModule.html#a6">00290</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="l00291"></a><a class="code" href="classModule.html#a7">00291</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a7">Module::OnPacketTransmit</a>(<span class="keywordtype">char</span> *p) { }
+<a name="l00292"></a><a class="code" href="classModule.html#a8">00292</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a8">Module::OnPacketReceive</a>(<span class="keywordtype">char</span> *p) { }
+<a name="l00293"></a><a class="code" href="classModule.html#a9">00293</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a9">Module::OnRehash</a>() { }
+<a name="l00294"></a><a class="code" href="classModule.html#a10">00294</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a10">Module::OnServerRaw</a>(std::string &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user) { }
+<a name="l00295"></a><a class="code" href="classModule.html#a12">00295</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a12">Module::OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname) { <span class="keywordflow">return</span> 0; }
+<a name="l00296"></a><a class="code" href="classModule.html#a11">00296</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a11">Module::OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, string_list &amp;params) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+<a name="l00297"></a><a class="code" href="classModule.html#a2">00297</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); }
+<a name="l00298"></a><a class="code" href="classModule.html#a13">00298</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a13">Module::OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
+<a name="l00299"></a><a class="code" href="classModule.html#a14">00299</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a14">Module::OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
+<a name="l00300"></a><a class="code" href="classModule.html#a15">00300</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a15">Module::OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest) { };
+<a name="l00301"></a><a class="code" href="classModule.html#a16">00301</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a16">Module::OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string text) { <span class="keywordflow">return</span> 0; };
+<a name="l00302"></a><a class="code" href="classModule.html#a17">00302</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a17">Module::OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string text) { <span class="keywordflow">return</span> 0; };
+<a name="l00303"></a><a class="code" href="classModule.html#a18">00303</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a18">Module::OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newnick) { <span class="keywordflow">return</span> 0; };
+<a name="l00304"></a><a class="code" href="classModule.html#a19">00304</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a19">Module::OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type) { <span class="keywordflow">return</span> <a class="code" href="modules_8h.html#a8">ACR_DEFAULT</a>; };
+<a name="l00305"></a><a class="code" href="classModule.html#a20">00305</a> <a class="code" href="modules_8h.html#a23">string_list</a> <a class="code" href="classModule.html#a20">Module::OnUserSync</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { <a class="code" href="modules_8h.html#a23">string_list</a> empty; <span class="keywordflow">return</span> empty; }
+<a name="l00306"></a><a class="code" href="classModule.html#a21">00306</a> <a class="code" href="modules_8h.html#a23">string_list</a> <a class="code" href="classModule.html#a21">Module::OnChannelSync</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan) { <a class="code" href="modules_8h.html#a23">string_list</a> empty; <span class="keywordflow">return</span> empty; }
+00307
00308
-<a name="l00309"></a><a class="code" href="classServer.html#a12">00309</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">Server::IsNick</a>(std::string nick)
-00310 {
-00311 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a13">isnick</a>(nick.c_str()) != 0);
-00312 }
-00313
-<a name="l00314"></a><a class="code" href="classServer.html#a14">00314</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a14">Server::FindNick</a>(std::string nick)
-00315 {
-00316 <span class="keywordflow">return</span> Find(nick);
-00317 }
-00318
-<a name="l00319"></a><a class="code" href="classServer.html#a15">00319</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a15">Server::FindChannel</a>(std::string channel)
-00320 {
-00321 <span class="keywordflow">return</span> FindChan(channel.c_str());
-00322 }
-00323
-<a name="l00324"></a><a class="code" href="classServer.html#a16">00324</a> std::string <a class="code" href="classServer.html#a16">Server::ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
-00325 {
-00326 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a14">cmode</a>(User,Chan);
-00327 }
-00328
-<a name="l00329"></a><a class="code" href="classServer.html#a17">00329</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a17">Server::IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
-00330 {
-00331 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a16">has_channel</a>(User,Chan);
+00309 <span class="comment">// server is a wrapper class that provides methods to all of the C-style</span>
+00310 <span class="comment">// exports in the core</span>
+00311 <span class="comment">//</span>
+00312
+<a name="l00313"></a><a class="code" href="classServer.html#a0">00313</a> <a class="code" href="classServer.html#a0">Server::Server</a>()
+00314 {
+00315 }
+00316
+<a name="l00317"></a><a class="code" href="classServer.html#a1">00317</a> <a class="code" href="classServer.html#a1">Server::~Server</a>()
+00318 {
+00319 }
+00320
+<a name="l00321"></a><a class="code" href="classServer.html#a2">00321</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">Server::SendOpers</a>(std::string s)
+00322 {
+00323 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
+00324 }
+00325
+<a name="l00326"></a><a class="code" href="classServer.html#a30">00326</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a30">Server::MatchText</a>(std::string sliteral, std::string spattern)
+00327 {
+00328 <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
+00329 strncpy(literal,sliteral.c_str(),MAXBUF);
+00330 strncpy(pattern,spattern.c_str(),MAXBUF);
+00331 <span class="keywordflow">return</span> match(literal,pattern);
00332 }
00333
-<a name="l00334"></a><a class="code" href="classServer.html#a18">00334</a> std::string <a class="code" href="classServer.html#a18">Server::GetServerName</a>()
+<a name="l00334"></a><a class="code" href="classServer.html#a25">00334</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a25">Server::SendToModeMask</a>(std::string modes, <span class="keywordtype">int</span> flags, std::string text)
00335 {
-00336 <span class="keywordflow">return</span> getservername();
+00336 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
00337 }
00338
-<a name="l00339"></a><a class="code" href="classServer.html#a19">00339</a> std::string <a class="code" href="classServer.html#a19">Server::GetNetworkName</a>()
+<a name="l00339"></a><a class="code" href="classServer.html#a26">00339</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a26">Server::JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string key)
00340 {
-00341 <span class="keywordflow">return</span> getnetworkname();
+00341 <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">true</span>);
00342 }
00343
-<a name="l00344"></a><a class="code" href="classServer.html#a20">00344</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a20">Server::GetAdmin</a>()
+<a name="l00344"></a><a class="code" href="classServer.html#a27">00344</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a27">Server::PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string reason)
00345 {
-00346 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+00346 <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
00347 }
00348
-00349
-00350
-<a name="l00351"></a><a class="code" href="classServer.html#a21">00351</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a21">Server::AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off)
-00352 {
-00353 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#a7">MT_SERVER</a>)
+<a name="l00349"></a><a class="code" href="classServer.html#a35">00349</a> <a class="code" href="modules_8h.html#a24">chanuserlist</a> <a class="code" href="classServer.html#a35">Server::GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan)
+00350 {
+00351 <a class="code" href="modules_8h.html#a24">chanuserlist</a> userl;
+00352 userl.clear();
+00353 <span class="keywordflow">for</span> (user_hash::const_iterator i = <a class="code" href="modules_8cpp.html#a42">clientlist</a>.begin(); i != <a class="code" href="modules_8cpp.html#a42">clientlist</a>.end(); i++)
00354 {
-00355 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
-00356 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00357 }
-00358 <span class="keywordflow">if</span> (((params_when_on&gt;0) || (params_when_off&gt;0)) &amp;&amp; (type == <a class="code" href="modules_8h.html#a6">MT_CLIENT</a>))
-00359 {
-00360 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
-00361 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00362 }
-00363 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
-00364 {
-00365 log(DEBUG,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
-00366 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00367 }
-00368 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#a9">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
-00369 }
-00370
-<a name="l00371"></a><a class="code" href="classServer.html#a22">00371</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a22">Server::AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar)
-00372 {
-00373 <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#a9">DoAddExtendedMode</a>(modechar,MT_CHANNEL,<span class="keyword">false</span>,1,1);
-00374 <span class="keywordflow">if</span> (res)
-00375 <a class="code" href="modules_8cpp.html#a10">ModeMakeList</a>(modechar);
-00376 <span class="keywordflow">return</span> res;
+00355 <span class="keywordflow">if</span> (i-&gt;second)
+00356 {
+00357 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#a16">has_channel</a>(i-&gt;second,chan))
+00358 {
+00359 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#a13">isnick</a>(i-&gt;second-&gt;nick))
+00360 {
+00361 userl.push_back(i-&gt;second);
+00362 }
+00363 }
+00364 }
+00365 }
+00366 <span class="keywordflow">return</span> userl;
+00367 }
+<a name="l00368"></a><a class="code" href="classServer.html#a28">00368</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a28">Server::ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string nickname)
+00369 {
+00370 force_nickchange(user,nickname.c_str());
+00371 }
+00372
+<a name="l00373"></a><a class="code" href="classServer.html#a29">00373</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a29">Server::QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string reason)
+00374 {
+00375 <a class="code" href="message_8h.html#a19">send_network_quit</a>(user-&gt;<a class="code" href="classuserrec.html#m0">nick</a>,reason.c_str());
+00376 kill_link(user,reason.c_str());
00377 }
00378
-<a name="l00379"></a><a class="code" href="classServer.html#a13">00379</a> <span class="keywordtype">int</span> <a class="code" href="classServer.html#a13">Server::CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c)
+<a name="l00379"></a><a class="code" href="classServer.html#a34">00379</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a34">Server::IsUlined</a>(std::string server)
00380 {
-00381 <span class="keywordflow">return</span> usercount(c);
+00381 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a70">is_uline</a>(server.c_str());
00382 }
00383
-00384
-<a name="l00385"></a><a class="code" href="classConfigReader.html#a0">00385</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>()
-00386 {
-00387 this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00388 this-&gt;<a class="code" href="classConfigReader.html#n1">error</a> = LoadConf(CONFIG_FILE,this-&gt;cache);
-00389 }
-00390
-00391
-<a name="l00392"></a><a class="code" href="classConfigReader.html#a2">00392</a> <a class="code" href="classConfigReader.html#a2">ConfigReader::~ConfigReader</a>()
-00393 {
-00394 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>)
-00395 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>;
-00396 }
-00397
+<a name="l00384"></a><a class="code" href="classServer.html#a31">00384</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a31">Server::CallCommandHandler</a>(std::string commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user)
+00385 {
+00386 call_handler(commandname.c_str(),parameters,pcnt,user);
+00387 }
+00388
+<a name="l00389"></a><a class="code" href="classServer.html#a3">00389</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Server::Log</a>(<span class="keywordtype">int</span> level, std::string s)
+00390 {
+00391 log(level,<span class="stringliteral">"%s"</span>,s.c_str());
+00392 }
+00393
+<a name="l00394"></a><a class="code" href="classServer.html#a23">00394</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a23">Server::AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams)
+00395 {
+00396 <a class="code" href="modules_8h.html#a26">createcommand</a>(cmd,f,flags,minparams);
+00397 }
00398
-<a name="l00399"></a><a class="code" href="classConfigReader.html#a1">00399</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>(std::string filename)
+<a name="l00399"></a><a class="code" href="classServer.html#a24">00399</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a24">Server::SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user)
00400 {
-00401 this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00402 this-&gt;<a class="code" href="classConfigReader.html#n1">error</a> = LoadConf(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>);
-00403 };
-00404
-<a name="l00405"></a><a class="code" href="classConfigReader.html#a3">00405</a> std::string <a class="code" href="classConfigReader.html#a3">ConfigReader::ReadValue</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index)
-00406 {
-00407 <span class="keywordtype">char</span> val[MAXBUF];
-00408 <span class="keywordtype">char</span> t[MAXBUF];
-00409 <span class="keywordtype">char</span> n[MAXBUF];
-00410 strncpy(t,tag.c_str(),MAXBUF);
-00411 strncpy(n,name.c_str(),MAXBUF);
-00412 ReadConf(cache,t,n,index,val);
-00413 <span class="keywordflow">return</span> std::string(val);
-00414 }
-00415
-00416
-<a name="l00417"></a><a class="code" href="classConfigReader.html#a4">00417</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a4">ConfigReader::Enumerate</a>(std::string tag)
-00418 {
-00419 <span class="keywordflow">return</span> EnumConf(cache,tag.c_str());
-00420 }
-00421
-<a name="l00422"></a><a class="code" href="classConfigReader.html#a6">00422</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a6">ConfigReader::EnumerateValues</a>(std::string tag, <span class="keywordtype">int</span> index)
-00423 {
-00424 <span class="keywordflow">return</span> EnumValues(cache, tag.c_str(), index);
-00425 }
-00426
-<a name="l00427"></a><a class="code" href="classConfigReader.html#a5">00427</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a5">ConfigReader::Verify</a>()
-00428 {
-00429 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#n1">error</a>;
-00430 }
-00431
+00401 <a class="code" href="modules_8h.html#a27">server_mode</a>(parameters,pcnt,user);
+00402 }
+00403
+<a name="l00404"></a><a class="code" href="classServer.html#a4">00404</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Server::Send</a>(<span class="keywordtype">int</span> Socket, std::string s)
+00405 {
+00406 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00407 }
+00408
+<a name="l00409"></a><a class="code" href="classServer.html#a5">00409</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">Server::SendServ</a>(<span class="keywordtype">int</span> Socket, std::string s)
+00410 {
+00411 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00412 }
+00413
+<a name="l00414"></a><a class="code" href="classServer.html#a6">00414</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">Server::SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, std::string s)
+00415 {
+00416 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00417 }
+00418
+<a name="l00419"></a><a class="code" href="classServer.html#a7">00419</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">Server::SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, std::string s)
+00420 {
+00421 <span class="keywordflow">if</span> (!Source)
+00422 {
+00423 <span class="comment">// if source is NULL, then the message originates from the local server</span>
+00424 Write(Dest-&gt;<a class="code" href="classconnection.html#m0">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
+00425 }
+00426 <span class="keywordflow">else</span>
+00427 {
+00428 <span class="comment">// otherwise it comes from the user specified</span>
+00429 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+00430 }
+00431 }
00432
-<a name="l00433"></a><a class="code" href="classFileReader.html#a1">00433</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>(std::string filename)
+<a name="l00433"></a><a class="code" href="classServer.html#a8">00433</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">Server::SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, std::string s,<span class="keywordtype">bool</span> IncludeSender)
00434 {
-00435 <a class="code" href="modules_8h.html#a22">file_cache</a> c;
-00436 readfile(c,filename.c_str());
-00437 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
-00438 }
-00439
-<a name="l00440"></a><a class="code" href="classFileReader.html#a0">00440</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>()
-00441 {
-00442 }
-00443
-<a name="l00444"></a><a class="code" href="classFileReader.html#a3">00444</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">FileReader::LoadFile</a>(std::string filename)
-00445 {
-00446 <a class="code" href="modules_8h.html#a22">file_cache</a> c;
-00447 readfile(c,filename.c_str());
-00448 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
-00449 }
-00450
-00451
-<a name="l00452"></a><a class="code" href="classFileReader.html#a2">00452</a> <a class="code" href="classFileReader.html#a2">FileReader::~FileReader</a>()
-00453 {
-00454 }
-00455
-<a name="l00456"></a><a class="code" href="classFileReader.html#a4">00456</a> <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#a4">FileReader::Exists</a>()
-00457 {
-00458 <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#o0">fc</a>.size() == 0)
-00459 {
-00460 <span class="keywordflow">return</span>(false);
-00461 }
-00462 <span class="keywordflow">else</span>
-00463 {
-00464 <span class="keywordflow">return</span>(true);
-00465 }
-00466 }
-00467
-<a name="l00468"></a><a class="code" href="classFileReader.html#a5">00468</a> std::string <a class="code" href="classFileReader.html#a5">FileReader::GetLine</a>(<span class="keywordtype">int</span> x)
-00469 {
-00470 <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#o0">fc</a>.size()))
-00471 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-00472 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>[x];
-00473 }
-00474
-<a name="l00475"></a><a class="code" href="classFileReader.html#a6">00475</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a6">FileReader::FileSize</a>()
-00476 {
-00477 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>.size();
-00478 }
-00479
-00480
-00481 std::vector&lt;Module*&gt; <a class="code" href="modules_8cpp.html#a11">modules</a>(255);
-00482 std::vector&lt;ircd_module*&gt; <a class="code" href="modules_8cpp.html#a12">factory</a>(255);
-00483
-<a name="l00484"></a><a class="code" href="modules_8cpp.html#a3">00484</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a3">MODCOUNT</a> = -1;
-00485
+00435 <span class="keywordflow">if</span> (IncludeSender)
+00436 {
+00437 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00438 }
+00439 <span class="keywordflow">else</span>
+00440 {
+00441 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00442 }
+00443 }
+00444
+<a name="l00445"></a><a class="code" href="classServer.html#a9">00445</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)
+00446 {
+00447 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a0">common_channels</a>(u1,u2) != 0);
+00448 }
+00449
+<a name="l00450"></a><a class="code" href="classServer.html#a10">00450</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a10">Server::SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text,<span class="keywordtype">bool</span> IncludeSender)
+00451 {
+00452 <span class="keywordflow">if</span> (IncludeSender)
+00453 {
+00454 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00455 }
+00456 <span class="keywordflow">else</span>
+00457 {
+00458 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00459 }
+00460 }
+00461
+<a name="l00462"></a><a class="code" href="classServer.html#a11">00462</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">Server::SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text)
+00463 {
+00464 WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
+00465 }
+00466
+<a name="l00467"></a><a class="code" href="classServer.html#a32">00467</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a32">Server::ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string host)
+00468 {
+00469 <a class="code" href="message_8h.html#a11">ChangeDisplayedHost</a>(user,host.c_str());
+00470 }
+00471
+<a name="l00472"></a><a class="code" href="classServer.html#a33">00472</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a33">Server::ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string gecos)
+00473 {
+00474 <a class="code" href="message_8h.html#a10">ChangeName</a>(user,gecos.c_str());
+00475 }
+00476
+<a name="l00477"></a><a class="code" href="classServer.html#a12">00477</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">Server::IsNick</a>(std::string nick)
+00478 {
+00479 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a13">isnick</a>(nick.c_str()) != 0);
+00480 }
+00481
+<a name="l00482"></a><a class="code" href="classServer.html#a14">00482</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a14">Server::FindNick</a>(std::string nick)
+00483 {
+00484 <span class="keywordflow">return</span> Find(nick);
+00485 }
00486
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 2004 for InspIRCd by
+<a name="l00487"></a><a class="code" href="classServer.html#a15">00487</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a15">Server::FindChannel</a>(std::string channel)
+00488 {
+00489 <span class="keywordflow">return</span> FindChan(channel.c_str());
+00490 }
+00491
+<a name="l00492"></a><a class="code" href="classServer.html#a16">00492</a> std::string <a class="code" href="classServer.html#a16">Server::ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
+00493 {
+00494 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a14">cmode</a>(User,Chan);
+00495 }
+00496
+<a name="l00497"></a><a class="code" href="classServer.html#a17">00497</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a17">Server::IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
+00498 {
+00499 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a16">has_channel</a>(User,Chan);
+00500 }
+00501
+<a name="l00502"></a><a class="code" href="classServer.html#a18">00502</a> std::string <a class="code" href="classServer.html#a18">Server::GetServerName</a>()
+00503 {
+00504 <span class="keywordflow">return</span> getservername();
+00505 }
+00506
+<a name="l00507"></a><a class="code" href="classServer.html#a19">00507</a> std::string <a class="code" href="classServer.html#a19">Server::GetNetworkName</a>()
+00508 {
+00509 <span class="keywordflow">return</span> getnetworkname();
+00510 }
+00511
+<a name="l00512"></a><a class="code" href="classServer.html#a20">00512</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a20">Server::GetAdmin</a>()
+00513 {
+00514 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+00515 }
+00516
+00517
+00518
+<a name="l00519"></a><a class="code" href="classServer.html#a21">00519</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a21">Server::AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off)
+00520 {
+00521 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#a7">MT_SERVER</a>)
+00522 {
+00523 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
+00524 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00525 }
+00526 <span class="keywordflow">if</span> (((params_when_on&gt;0) || (params_when_off&gt;0)) &amp;&amp; (type == <a class="code" href="modules_8h.html#a6">MT_CLIENT</a>))
+00527 {
+00528 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
+00529 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00530 }
+00531 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
+00532 {
+00533 log(DEBUG,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
+00534 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00535 }
+00536 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
+00537 }
+00538
+<a name="l00539"></a><a class="code" href="classServer.html#a22">00539</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a22">Server::AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar)
+00540 {
+00541 <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#a57">DoAddExtendedMode</a>(modechar,MT_CHANNEL,<span class="keyword">false</span>,1,1);
+00542 <span class="keywordflow">if</span> (res)
+00543 <a class="code" href="modules_8cpp.html#a58">ModeMakeList</a>(modechar);
+00544 <span class="keywordflow">return</span> res;
+00545 }
+00546
+<a name="l00547"></a><a class="code" href="classServer.html#a13">00547</a> <span class="keywordtype">int</span> <a class="code" href="classServer.html#a13">Server::CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c)
+00548 {
+00549 <span class="keywordflow">return</span> usercount(c);
+00550 }
+00551
+00552
+<a name="l00553"></a><a class="code" href="classConfigReader.html#a0">00553</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>()
+00554 {
+00555 this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+00556 this-&gt;<a class="code" href="classConfigReader.html#n1">error</a> = LoadConf(CONFIG_FILE,this-&gt;cache);
+00557 }
+00558
+00559
+<a name="l00560"></a><a class="code" href="classConfigReader.html#a2">00560</a> <a class="code" href="classConfigReader.html#a2">ConfigReader::~ConfigReader</a>()
+00561 {
+00562 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>)
+00563 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>;
+00564 }
+00565
+00566
+<a name="l00567"></a><a class="code" href="classConfigReader.html#a1">00567</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>(std::string filename)
+00568 {
+00569 this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+00570 this-&gt;<a class="code" href="classConfigReader.html#n1">error</a> = LoadConf(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>);
+00571 };
+00572
+<a name="l00573"></a><a class="code" href="classConfigReader.html#a3">00573</a> std::string <a class="code" href="classConfigReader.html#a3">ConfigReader::ReadValue</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index)
+00574 {
+00575 <span class="keywordtype">char</span> val[MAXBUF];
+00576 <span class="keywordtype">char</span> t[MAXBUF];
+00577 <span class="keywordtype">char</span> n[MAXBUF];
+00578 strncpy(t,tag.c_str(),MAXBUF);
+00579 strncpy(n,name.c_str(),MAXBUF);
+00580 ReadConf(cache,t,n,index,val);
+00581 <span class="keywordflow">return</span> std::string(val);
+00582 }
+00583
+00584
+<a name="l00585"></a><a class="code" href="classConfigReader.html#a4">00585</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a4">ConfigReader::Enumerate</a>(std::string tag)
+00586 {
+00587 <span class="keywordflow">return</span> EnumConf(cache,tag.c_str());
+00588 }
+00589
+<a name="l00590"></a><a class="code" href="classConfigReader.html#a6">00590</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a6">ConfigReader::EnumerateValues</a>(std::string tag, <span class="keywordtype">int</span> index)
+00591 {
+00592 <span class="keywordflow">return</span> EnumValues(cache, tag.c_str(), index);
+00593 }
+00594
+<a name="l00595"></a><a class="code" href="classConfigReader.html#a5">00595</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a5">ConfigReader::Verify</a>()
+00596 {
+00597 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#n1">error</a>;
+00598 }
+00599
+00600
+<a name="l00601"></a><a class="code" href="classFileReader.html#a1">00601</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>(std::string filename)
+00602 {
+00603 <a class="code" href="modules_8h.html#a22">file_cache</a> c;
+00604 readfile(c,filename.c_str());
+00605 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+00606 }
+00607
+<a name="l00608"></a><a class="code" href="classFileReader.html#a0">00608</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>()
+00609 {
+00610 }
+00611
+<a name="l00612"></a><a class="code" href="classFileReader.html#a3">00612</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">FileReader::LoadFile</a>(std::string filename)
+00613 {
+00614 <a class="code" href="modules_8h.html#a22">file_cache</a> c;
+00615 readfile(c,filename.c_str());
+00616 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+00617 }
+00618
+00619
+<a name="l00620"></a><a class="code" href="classFileReader.html#a2">00620</a> <a class="code" href="classFileReader.html#a2">FileReader::~FileReader</a>()
+00621 {
+00622 }
+00623
+<a name="l00624"></a><a class="code" href="classFileReader.html#a4">00624</a> <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#a4">FileReader::Exists</a>()
+00625 {
+00626 <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#o0">fc</a>.size() == 0)
+00627 {
+00628 <span class="keywordflow">return</span>(false);
+00629 }
+00630 <span class="keywordflow">else</span>
+00631 {
+00632 <span class="keywordflow">return</span>(true);
+00633 }
+00634 }
+00635
+<a name="l00636"></a><a class="code" href="classFileReader.html#a5">00636</a> std::string <a class="code" href="classFileReader.html#a5">FileReader::GetLine</a>(<span class="keywordtype">int</span> x)
+00637 {
+00638 <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#o0">fc</a>.size()))
+00639 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00640 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>[x];
+00641 }
+00642
+<a name="l00643"></a><a class="code" href="classFileReader.html#a6">00643</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a6">FileReader::FileSize</a>()
+00644 {
+00645 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>.size();
+00646 }
+00647
+00648
+00649 std::vector&lt;Module*&gt; <a class="code" href="modules_8cpp.html#a59">modules</a>(255);
+00650 std::vector&lt;ircd_module*&gt; <a class="code" href="modules_8cpp.html#a60">factory</a>(255);
+00651
+<a name="l00652"></a><a class="code" href="modules_8cpp.html#a1">00652</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a1">MODCOUNT</a> = -1;
+00653
+00654
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:06 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/modules_8cpp.html b/docs/module-doc/modules_8cpp.html
index 52e729483..cb9caaa72 100644
--- a/docs/module-doc/modules_8cpp.html
+++ b/docs/module-doc/modules_8cpp.html
@@ -6,51 +6,232 @@
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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&gt;</code><br>
+<hr><h1>modules.cpp File Reference</h1><code>#include "inspircd.h"</code><br>
+<code>#include "inspircd_io.h"</code><br>
+<code>#include "inspircd_util.h"</code><br>
+<code>#include "inspircd_config.h"</code><br>
+<code>#include &lt;unistd.h&gt;</code><br>
+<code>#include &lt;fcntl.h&gt;</code><br>
+<code>#include &lt;sys/errno.h&gt;</code><br>
+<code>#include &lt;sys/ioctl.h&gt;</code><br>
+<code>#include &lt;sys/utsname.h&gt;</code><br>
+<code>#include &lt;cstdio&gt;</code><br>
+<code>#include &lt;time.h&gt;</code><br>
+<code>#include &lt;string&gt;</code><br>
+<code>#include &lt;hash_map&gt;</code><br>
+<code>#include &lt;map&gt;</code><br>
+<code>#include &lt;sstream&gt;</code><br>
+<code>#include &lt;vector&gt;</code><br>
+<code>#include &lt;errno.h&gt;</code><br>
+<code>#include &lt;deque&gt;</code><br>
+<code>#include &lt;sched.h&gt;</code><br>
+<code>#include "<a class="el" href="connection_8h-source.html">connection.h</a>"</code><br>
+<code>#include "<a class="el" href="users_8h-source.html">users.h</a>"</code><br>
+<code>#include "<a class="el" href="servers_8h-source.html">servers.h</a>"</code><br>
+<code>#include "<a class="el" href="ctables_8h-source.html">ctables.h</a>"</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 "<a class="el" href="ctables_8h-source.html">ctables.h</a>"</code><br>
-<code>#include "inspircd_io.h"</code><br>
+<code>#include "dynamic.h"</code><br>
<code>#include "wildcard.h"</code><br>
-<code>#include "<a class="el" href="mode_8h-source.html">mode.h</a>"</code><br>
<code>#include "<a class="el" href="message_8h-source.html">message.h</a>"</code><br>
+<code>#include "<a class="el" href="mode_8h-source.html">mode.h</a>"</code><br>
+<code>#include "<a class="el" href="xline_8h-source.html">xline.h</a>"</code><br>
<code>#include "<a class="el" href="commands_8h-source.html">commands.h</a>"</code><br>
<p>
Include dependency graph for modules.cpp:<p><center><img src="modules_8cpp__incl.gif" border="0" usemap="#modules.cpp_map" alt="Include dependency graph"></center>
<map name="modules.cpp_map">
-<area href="mode_8h.html" shape="rect" coords="143,197,193,218" alt="">
-<area href="message_8h.html" shape="rect" coords="132,333,204,354" alt="">
-<area href="commands_8h.html" shape="rect" coords="127,378,209,400" alt="">
-<area href="modules_8h.html" shape="rect" coords="135,5,201,26" alt="">
-<area href="ctables_8h.html" shape="rect" coords="17,29,79,50" alt="">
+<area href="ctables_8h.html" shape="rect" coords="309,1019,371,1040" alt="">
+<area href="connection_8h.html" shape="rect" coords="176,1216,256,1237" alt="">
+<area href="users_8h.html" shape="rect" coords="315,669,365,691" alt="">
+<area href="servers_8h.html" shape="rect" coords="308,1193,372,1215" alt="">
+<area href="modules_8h.html" shape="rect" coords="436,921,503,943" alt="">
+<area href="message_8h.html" shape="rect" coords="433,571,505,592" alt="">
+<area href="mode_8h.html" shape="rect" coords="444,693,495,715" alt="">
+<area href="xline_8h.html" shape="rect" coords="445,397,493,419" alt="">
+<area href="commands_8h.html" shape="rect" coords="428,300,511,321" alt="">
</map>
<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>
+<tr><td colspan=2><br><h2>Namespaces</h2></td></tr>
+<tr><td nowrap align=right valign=top>namespace &nbsp;</td><td valign=bottom><a class="el" href="namespacenspace.html">nspace</a></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="classExtMode.html">ExtMode</a></td></tr>
+<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structInAddr__HashComp.html">InAddr_HashComp</a></td></tr>
+<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structStrHashComp.html">StrHashComp</a></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_8cpp.html#a0">nspace</a>&nbsp;&nbsp;&nbsp;std</td></tr>
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
-<tr><td nowrap align=right valign=top>typedef std::vector&lt; <a class="el" href="classExtMode.html">ExtMode</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a0">ExtModeList</a></td></tr>
-<tr><td nowrap align=right valign=top>typedef ExtModeList::iterator&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a1">ExtModeListIter</a></td></tr>
+<tr><td nowrap align=right valign=top>typedef nspace::hash_map&lt;<br>
+ std::string, <a class="el" href="classuserrec.html">userrec</a> *, nspace::hash&lt;<br>
+ string &gt;, <a class="el" href="structStrHashComp.html">StrHashComp</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a38">user_hash</a></td></tr>
+<tr><td nowrap align=right valign=top>typedef nspace::hash_map&lt;<br>
+ std::string, <a class="el" href="classchanrec.html">chanrec</a> *, nspace::hash&lt;<br>
+ string &gt;, <a class="el" href="structStrHashComp.html">StrHashComp</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a39">chan_hash</a></td></tr>
+<tr><td nowrap align=right valign=top>typedef nspace::hash_map&lt;<br>
+ in_addr, string *, nspace::hash&lt;<br>
+ in_addr &gt;, <a class="el" href="structInAddr__HashComp.html">InAddr_HashComp</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a40">address_cache</a></td></tr>
+<tr><td nowrap align=right valign=top>typedef std::deque&lt; <a class="el" href="classcommand__t.html">command_t</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a41">command_table</a></td></tr>
+<tr><td nowrap align=right valign=top>typedef std::vector&lt; <a class="el" href="classExtMode.html">ExtMode</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a49">ExtModeList</a></td></tr>
+<tr><td nowrap align=right valign=top>typedef ExtModeList::iterator&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a50">ExtModeListIter</a></td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
-<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a4">ModeDefined</a> (char modechar, int type)</td></tr>
-<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a5">ModeIsListMode</a> (char modechar, int type)</td></tr>
-<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a6">ModeDefinedOper</a> (char modechar, int type)</td></tr>
-<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a7">ModeDefinedOn</a> (char modechar, int type)</td></tr>
-<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a8">ModeDefinedOff</a> (char modechar, int type)</td></tr>
-<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a9">DoAddExtendedMode</a> (char modechar, int type, bool requires_oper, int params_on, int params_off)</td></tr>
-<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a10">ModeMakeList</a> (char modechar)</td></tr>
-<tr><td nowrap align=right valign=top>std::vector&lt; <a class="el" href="classModule.html">Module</a> * &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a11">modules</a> (255)</td></tr>
-<tr><td nowrap align=right valign=top>std::vector&lt; <a class="el" href="modules_8h.html#a24">ircd_module</a> * &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a12">factory</a> (255)</td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a52">ModeDefined</a> (char modechar, int type)</td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a53">ModeIsListMode</a> (char modechar, int type)</td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a54">ModeDefinedOper</a> (char modechar, int type)</td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a55">ModeDefinedOn</a> (char modechar, int type)</td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a56">ModeDefinedOff</a> (char modechar, int type)</td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a57">DoAddExtendedMode</a> (char modechar, int type, bool requires_oper, int params_on, int params_off)</td></tr>
+<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a58">ModeMakeList</a> (char modechar)</td></tr>
+<tr><td nowrap align=right valign=top>std::vector&lt; <a class="el" href="classModule.html">Module</a> * &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a59">modules</a> (255)</td></tr>
+<tr><td nowrap align=right valign=top>std::vector&lt; <a class="el" href="modules_8h.html#a25">ircd_module</a> * &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a60">factory</a> (255)</td></tr>
<tr><td colspan=2><br><h2>Variables</h2></td></tr>
-<tr><td nowrap align=right valign=top><a class="el" href="modules_8cpp.html#a0">ExtModeList</a>&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a2">EMode</a></td></tr>
-<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a3">MODCOUNT</a> = -1</td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a1">MODCOUNT</a> = -1</td></tr>
+<tr><td nowrap align=right valign=top>vector&lt; <a class="el" href="classModule.html">Module</a> * &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a2">modules</a></td></tr>
+<tr><td nowrap align=right valign=top>vector&lt; <a class="el" href="modules_8h.html#a25">ircd_module</a> * &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a3">factory</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a4">LogLevel</a></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a5">ServerName</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a6">Network</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a7">ServerDesc</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a8">AdminName</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a9">AdminEmail</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a10">AdminNick</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a11">diepass</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a12">restartpass</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a13">motd</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a14">rules</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a15">list</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a16">PrefixQuit</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a17">DieValue</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a18">debugging</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a19">WHOWAS_STALE</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a20">WHOWAS_MAX</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a21">DieDelay</a></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a22">startup_time</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a23">NetBufferSize</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a24">MaxWhoResults</a></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a25">nb_start</a></td></tr>
+<tr><td nowrap align=right valign=top>std::vector&lt; int &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a26">fd_reap</a></td></tr>
+<tr><td nowrap align=right valign=top>std::vector&lt; std::string &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a27">module_names</a></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a28">bannerBuffer</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a29">boundPortCount</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a30">portCount</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a31">UDPportCount</a></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a32">ports</a> [MAXSOCKS]</td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a33">defaultRoute</a></td></tr>
+<tr><td nowrap align=right valign=top>std::vector&lt; long &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a34">auth_cookies</a></td></tr>
+<tr><td nowrap align=right valign=top>std::stringstream&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a35">config_f</a></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="classserverrec.html">serverrec</a> *&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a36">me</a> [32]</td></tr>
+<tr><td nowrap align=right valign=top>FILE *&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a37">log_file</a></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="modules_8cpp.html#a38">user_hash</a>&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a42">clientlist</a></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="modules_8cpp.html#a39">chan_hash</a>&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a43">chanlist</a></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="modules_8cpp.html#a38">user_hash</a>&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a44">whowas</a></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="modules_8cpp.html#a41">command_table</a>&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a45">cmdlist</a></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="modules_8h.html#a22">file_cache</a>&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a46">MOTD</a></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="modules_8h.html#a22">file_cache</a>&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a47">RULES</a></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="modules_8cpp.html#a40">address_cache</a>&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a48">IP</a></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="modules_8cpp.html#a49">ExtModeList</a>&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a51">EMode</a></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a name="a0" doxytag="modules.cpp::nspace"></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 nspace&nbsp;&nbsp;&nbsp;std
+ </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#l00042">42</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
</table>
<hr><h2>Typedef Documentation</h2>
-<a name="a0" doxytag="modules.cpp::ExtModeList"></a><p>
+<a name="a40" doxytag="modules.cpp::address_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 nspace::hash_map&lt;in_addr,string*, nspace::hash&lt;in_addr&gt;, <a class="el" href="structInAddr__HashComp.html">InAddr_HashComp</a>&gt; address_cache
+ </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#l00151">151</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a39" doxytag="modules.cpp::chan_hash"></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 nspace::hash_map&lt;std::string, <a class="el" href="classchanrec.html">chanrec</a>*, nspace::hash&lt;string&gt;, <a class="el" href="structStrHashComp.html">StrHashComp</a>&gt; chan_hash
+ </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#l00150">150</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a41" doxytag="modules.cpp::command_table"></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 std::deque&lt;<a class="el" href="classcommand__t.html">command_t</a>&gt; command_table
+ </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#l00152">152</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a49" doxytag="modules.cpp::ExtModeList"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -71,10 +252,10 @@ Include dependency graph for modules.cpp:<p><center><img src="modules_8cpp__incl
<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>. </td>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00178">178</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
</tr>
</table>
-<a name="a1" doxytag="modules.cpp::ExtModeListIter"></a><p>
+<a name="a50" doxytag="modules.cpp::ExtModeListIter"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -95,13 +276,37 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00033">33</a> o
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00034">34</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00179">179</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00039">ModeDefined()</a>, <a class="el" href="modules_8cpp-source.html#l00095">ModeDefinedOff()</a>, <a class="el" href="modules_8cpp-source.html#l00082">ModeDefinedOn()</a>, <a class="el" href="modules_8cpp-source.html#l00067">ModeDefinedOper()</a>, <a class="el" href="modules_8cpp-source.html#l00053">ModeIsListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00118">ModeMakeList()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00185">ModeDefined()</a>, <a class="el" href="modules_8cpp-source.html#l00241">ModeDefinedOff()</a>, <a class="el" href="modules_8cpp-source.html#l00228">ModeDefinedOn()</a>, <a class="el" href="modules_8cpp-source.html#l00213">ModeDefinedOper()</a>, <a class="el" href="modules_8cpp-source.html#l00199">ModeIsListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00264">ModeMakeList()</a>. </td>
+ </tr>
+</table>
+<a name="a38" doxytag="modules.cpp::user_hash"></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 nspace::hash_map&lt;std::string, <a class="el" href="classuserrec.html">userrec</a>*, nspace::hash&lt;string&gt;, <a class="el" href="structStrHashComp.html">StrHashComp</a>&gt; user_hash
+ </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#l00149">149</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
</tr>
</table>
<hr><h2>Function Documentation</h2>
-<a name="a9" doxytag="modules.cpp::DoAddExtendedMode"></a><p>
+<a name="a57" doxytag="modules.cpp::DoAddExtendedMode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -156,29 +361,29 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00039">ModeDefined()
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00108">108</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00254">254</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00039">ModeDefined()</a>.
+References <a class="el" href="modules_8cpp-source.html#l00182">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00185">ModeDefined()</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00371">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00351">Server::AddExtendedMode()</a>.
+Referenced by <a class="el" href="modules_8cpp-source.html#l00539">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00519">Server::AddExtendedMode()</a>.
<p>
-<div class="fragment"><pre>00109 {
-00110 <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#a4">ModeDefined</a>(modechar,type)) {
-00111 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00112 }
-00113 <a class="code" href="modules_8cpp.html#a2">EMode</a>.push_back(<a class="code" href="classExtMode.html">ExtMode</a>(modechar,type,requires_oper,params_on,params_off));
-00114 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00115 }
+<div class="fragment"><pre>00255 {
+00256 <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#a52">ModeDefined</a>(modechar,type)) {
+00257 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00258 }
+00259 <a class="code" href="modules_8cpp.html#a51">EMode</a>.push_back(<a class="code" href="classExtMode.html">ExtMode</a>(modechar,type,requires_oper,params_on,params_off));
+00260 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00261 }
</pre></div> </td>
</tr>
</table>
-<a name="a12" doxytag="modules.cpp::factory"></a><p>
+<a name="a60" doxytag="modules.cpp::factory"></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"> std::vector&lt;<a class="el" href="modules_8h.html#a24">ircd_module</a>*&gt; factory </td>
+ <td class="md" nowrap valign="top"> std::vector&lt;<a class="el" href="modules_8h.html#a25">ircd_module</a>*&gt; factory </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">255&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
@@ -201,7 +406,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00371">Server::AddEx
</td>
</tr>
</table>
-<a name="a4" doxytag="modules.cpp::ModeDefined"></a><p>
+<a name="a52" doxytag="modules.cpp::ModeDefined"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -238,28 +443,28 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00371">Server::AddEx
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00039">39</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00185">185</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00034">ExtModeListIter</a>.
+References <a class="el" href="modules_8cpp-source.html#l00182">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00179">ExtModeListIter</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00108">DoAddExtendedMode()</a>.
+Referenced by <a class="el" href="modules_8cpp-source.html#l00254">DoAddExtendedMode()</a>.
<p>
-<div class="fragment"><pre>00040 {
-00041 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a2">EMode</a>.size());
-00042 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a2">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a2">EMode</a>.end(); i++)
-00043 {
-00044 log(DEBUG,<span class="stringliteral">"i-&gt;modechar==%c, modechar=%c, i-&gt;type=%d, type=%d"</span>,i-&gt;modechar,modechar,i-&gt;type,type);
-00045 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-00046 {
-00047 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00048 }
-00049 }
-00050 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00051 }
+<div class="fragment"><pre>00186 {
+00187 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a51">EMode</a>.size());
+00188 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
+00189 {
+00190 log(DEBUG,<span class="stringliteral">"i-&gt;modechar==%c, modechar=%c, i-&gt;type=%d, type=%d"</span>,i-&gt;modechar,modechar,i-&gt;type,type);
+00191 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+00192 {
+00193 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00194 }
+00195 }
+00196 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00197 }
</pre></div> </td>
</tr>
</table>
-<a name="a8" doxytag="modules.cpp::ModeDefinedOff"></a><p>
+<a name="a56" doxytag="modules.cpp::ModeDefinedOff"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -296,24 +501,24 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00108">DoAddExtended
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00095">95</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00241">241</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00034">ExtModeListIter</a>.
+References <a class="el" href="modules_8cpp-source.html#l00182">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00179">ExtModeListIter</a>.
<p>
-<div class="fragment"><pre>00096 {
-00097 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a2">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a2">EMode</a>.end(); i++)
-00098 {
-00099 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-00100 {
-00101 <span class="keywordflow">return</span> i-&gt;params_when_off;
-00102 }
-00103 }
-00104 <span class="keywordflow">return</span> 0;
-00105 }
+<div class="fragment"><pre>00242 {
+00243 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
+00244 {
+00245 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+00246 {
+00247 <span class="keywordflow">return</span> i-&gt;params_when_off;
+00248 }
+00249 }
+00250 <span class="keywordflow">return</span> 0;
+00251 }
</pre></div> </td>
</tr>
</table>
-<a name="a7" doxytag="modules.cpp::ModeDefinedOn"></a><p>
+<a name="a55" doxytag="modules.cpp::ModeDefinedOn"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -350,24 +555,24 @@ References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00082">82</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00228">228</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00034">ExtModeListIter</a>.
+References <a class="el" href="modules_8cpp-source.html#l00182">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00179">ExtModeListIter</a>.
<p>
-<div class="fragment"><pre>00083 {
-00084 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a2">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a2">EMode</a>.end(); i++)
-00085 {
-00086 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-00087 {
-00088 <span class="keywordflow">return</span> i-&gt;params_when_on;
-00089 }
-00090 }
-00091 <span class="keywordflow">return</span> 0;
-00092 }
+<div class="fragment"><pre>00229 {
+00230 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
+00231 {
+00232 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+00233 {
+00234 <span class="keywordflow">return</span> i-&gt;params_when_on;
+00235 }
+00236 }
+00237 <span class="keywordflow">return</span> 0;
+00238 }
</pre></div> </td>
</tr>
</table>
-<a name="a6" doxytag="modules.cpp::ModeDefinedOper"></a><p>
+<a name="a54" doxytag="modules.cpp::ModeDefinedOper"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -404,26 +609,26 @@ References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00067">67</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00213">213</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00034">ExtModeListIter</a>.
+References <a class="el" href="modules_8cpp-source.html#l00182">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00179">ExtModeListIter</a>.
<p>
-<div class="fragment"><pre>00068 {
-00069 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a2">EMode</a>.size());
-00070 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a2">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a2">EMode</a>.end(); i++)
-00071 {
-00072 log(DEBUG,<span class="stringliteral">"i-&gt;modechar==%c, modechar=%c, i-&gt;type=%d, type=%d"</span>,i-&gt;modechar,modechar,i-&gt;type,type);
-00073 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;needsoper == <span class="keyword">true</span>))
-00074 {
-00075 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00076 }
-00077 }
-00078 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00079 }
+<div class="fragment"><pre>00214 {
+00215 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a51">EMode</a>.size());
+00216 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
+00217 {
+00218 log(DEBUG,<span class="stringliteral">"i-&gt;modechar==%c, modechar=%c, i-&gt;type=%d, type=%d"</span>,i-&gt;modechar,modechar,i-&gt;type,type);
+00219 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;needsoper == <span class="keyword">true</span>))
+00220 {
+00221 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00222 }
+00223 }
+00224 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00225 }
</pre></div> </td>
</tr>
</table>
-<a name="a5" doxytag="modules.cpp::ModeIsListMode"></a><p>
+<a name="a53" doxytag="modules.cpp::ModeIsListMode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -460,26 +665,26 @@ References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00053">53</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00199">199</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00034">ExtModeListIter</a>.
+References <a class="el" href="modules_8cpp-source.html#l00182">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00179">ExtModeListIter</a>.
<p>
-<div class="fragment"><pre>00054 {
-00055 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a2">EMode</a>.size());
-00056 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a2">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a2">EMode</a>.end(); i++)
-00057 {
-00058 log(DEBUG,<span class="stringliteral">"i-&gt;modechar==%c, modechar=%c, i-&gt;type=%d, type=%d"</span>,i-&gt;modechar,modechar,i-&gt;type,type);
-00059 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;list == <span class="keyword">true</span>))
-00060 {
-00061 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00062 }
-00063 }
-00064 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00065 }
+<div class="fragment"><pre>00200 {
+00201 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a51">EMode</a>.size());
+00202 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
+00203 {
+00204 log(DEBUG,<span class="stringliteral">"i-&gt;modechar==%c, modechar=%c, i-&gt;type=%d, type=%d"</span>,i-&gt;modechar,modechar,i-&gt;type,type);
+00205 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;list == <span class="keyword">true</span>))
+00206 {
+00207 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00208 }
+00209 }
+00210 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00211 }
</pre></div> </td>
</tr>
</table>
-<a name="a10" doxytag="modules.cpp::ModeMakeList"></a><p>
+<a name="a58" doxytag="modules.cpp::ModeMakeList"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -507,27 +712,27 @@ References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00118">118</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00264">264</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, <a class="el" href="modules_8cpp-source.html#l00034">ExtModeListIter</a>, and <a class="el" href="modules_8h-source.html#l00021">MT_CHANNEL</a>.
+References <a class="el" href="modules_8cpp-source.html#l00182">EMode</a>, <a class="el" href="modules_8cpp-source.html#l00179">ExtModeListIter</a>, and <a class="el" href="modules_8h-source.html#l00021">MT_CHANNEL</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00371">Server::AddExtendedListMode()</a>.
+Referenced by <a class="el" href="modules_8cpp-source.html#l00539">Server::AddExtendedListMode()</a>.
<p>
-<div class="fragment"><pre>00119 {
-00120 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a2">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a2">EMode</a>.end(); i++)
-00121 {
-00122 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == <a class="code" href="modules_8h.html#a5">MT_CHANNEL</a>))
-00123 {
-00124 i-&gt;list = <span class="keyword">true</span>;
-00125 <span class="keywordflow">return</span>;
-00126 }
-00127 }
-00128 <span class="keywordflow">return</span>;
-00129 }
+<div class="fragment"><pre>00265 {
+00266 <span class="keywordflow">for</span> (<a class="code" href="modules_8cpp.html#a50">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#a51">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#a51">EMode</a>.end(); i++)
+00267 {
+00268 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == <a class="code" href="modules_8h.html#a5">MT_CHANNEL</a>))
+00269 {
+00270 i-&gt;list = <span class="keyword">true</span>;
+00271 <span class="keywordflow">return</span>;
+00272 }
+00273 }
+00274 <span class="keywordflow">return</span>;
+00275 }
</pre></div> </td>
</tr>
</table>
-<a name="a11" doxytag="modules.cpp::modules"></a><p>
+<a name="a59" doxytag="modules.cpp::modules"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -557,13 +762,375 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00371">Server::AddEx
</tr>
</table>
<hr><h2>Variable Documentation</h2>
-<a name="a2" doxytag="modules.cpp::EMode"></a><p>
+<a name="a9" doxytag="modules.cpp::AdminEmail"></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 AdminEmail[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="modules_8cpp-source.html#l00056">56</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a8" doxytag="modules.cpp::AdminName"></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 AdminName[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="modules_8cpp-source.html#l00055">55</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a10" doxytag="modules.cpp::AdminNick"></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 AdminNick[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="modules_8cpp-source.html#l00057">57</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a34" doxytag="modules.cpp::auth_cookies"></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"> std::vector&lt;long&gt; auth_cookies
+ </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#l00085">85</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a28" doxytag="modules.cpp::bannerBuffer"></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 bannerBuffer[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="modules_8cpp-source.html#l00078">78</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a29" doxytag="modules.cpp::boundPortCount"></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 boundPortCount
+ </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#l00079">79</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a43" doxytag="modules.cpp::chanlist"></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_8cpp.html#a39">chan_hash</a> chanlist
+ </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#l00156">156</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a42" doxytag="modules.cpp::clientlist"></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_8cpp.html#a38">user_hash</a> clientlist
+ </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#l00155">155</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00349">Server::GetUsers()</a>. </td>
+ </tr>
+</table>
+<a name="a45" doxytag="modules.cpp::cmdlist"></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_8cpp.html#a41">command_table</a> cmdlist
+ </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#l00158">158</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a35" doxytag="modules.cpp::config_f"></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"> std::stringstream config_f
+ </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#l00086">86</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a18" doxytag="modules.cpp::debugging"></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 debugging
+ </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#l00066">66</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a33" doxytag="modules.cpp::defaultRoute"></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 defaultRoute
+ </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#l00083">83</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a21" doxytag="modules.cpp::DieDelay"></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 DieDelay
+ </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#l00069">69</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a11" doxytag="modules.cpp::diepass"></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 diepass[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="modules_8cpp-source.html#l00058">58</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a17" doxytag="modules.cpp::DieValue"></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 DieValue[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="modules_8cpp-source.html#l00064">64</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a51" doxytag="modules.cpp::EMode"></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_8cpp.html#a0">ExtModeList</a> EMode
+ <td class="md" nowrap valign="top"> <a class="el" href="modules_8cpp.html#a49">ExtModeList</a> EMode
</table>
</td>
</tr>
@@ -578,12 +1145,204 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00371">Server::AddEx
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00036">36</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00182">182</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00108">DoAddExtendedMode()</a>, <a class="el" href="modules_8cpp-source.html#l00039">ModeDefined()</a>, <a class="el" href="modules_8cpp-source.html#l00095">ModeDefinedOff()</a>, <a class="el" href="modules_8cpp-source.html#l00082">ModeDefinedOn()</a>, <a class="el" href="modules_8cpp-source.html#l00067">ModeDefinedOper()</a>, <a class="el" href="modules_8cpp-source.html#l00053">ModeIsListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00118">ModeMakeList()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00254">DoAddExtendedMode()</a>, <a class="el" href="modules_8cpp-source.html#l00185">ModeDefined()</a>, <a class="el" href="modules_8cpp-source.html#l00241">ModeDefinedOff()</a>, <a class="el" href="modules_8cpp-source.html#l00228">ModeDefinedOn()</a>, <a class="el" href="modules_8cpp-source.html#l00213">ModeDefinedOper()</a>, <a class="el" href="modules_8cpp-source.html#l00199">ModeIsListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00264">ModeMakeList()</a>. </td>
</tr>
</table>
-<a name="a3" doxytag="modules.cpp::MODCOUNT"></a><p>
+<a name="a3" doxytag="modules.cpp::factory"></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"> vector&lt;<a class="el" href="modules_8h.html#a25">ircd_module</a>*&gt; factory
+ </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#l00049">49</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a26" doxytag="modules.cpp::fd_reap"></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"> std::vector&lt;int&gt; fd_reap
+ </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#l00075">75</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a48" doxytag="modules.cpp::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"> <a class="el" href="modules_8cpp.html#a40">address_cache</a> IP
+ </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#l00161">161</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a15" doxytag="modules.cpp::list"></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 list[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="modules_8cpp-source.html#l00062">62</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a37" doxytag="modules.cpp::log_file"></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"> FILE* log_file
+ </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#l00090">90</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a4" doxytag="modules.cpp::LogLevel"></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 LogLevel
+ </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#l00051">51</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a24" doxytag="modules.cpp::MaxWhoResults"></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 MaxWhoResults
+ </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#l00072">72</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a36" doxytag="modules.cpp::me"></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="classserverrec.html">serverrec</a>* me[32]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00088">88</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a1" doxytag="modules.cpp::MODCOUNT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -604,10 +1363,490 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00108">DoAddExtended
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00484">484</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00652">652</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a27" doxytag="modules.cpp::module_names"></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"> std::vector&lt;std::string&gt; module_names
+ </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#l00076">76</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a2" doxytag="modules.cpp::modules"></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"> vector&lt;<a class="el" href="classModule.html">Module</a>*&gt; modules
+ </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#l00048">48</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a46" doxytag="modules.cpp::MOTD"></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#a22">file_cache</a> MOTD
+ </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#l00159">159</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a13" doxytag="modules.cpp::motd"></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 motd[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="modules_8cpp-source.html#l00060">60</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a25" doxytag="modules.cpp::nb_start"></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 nb_start
+ </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#l00073">73</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a23" doxytag="modules.cpp::NetBufferSize"></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 NetBufferSize
+ </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#l00071">71</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a6" doxytag="modules.cpp::Network"></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 Network[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="modules_8cpp-source.html#l00053">53</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a30" doxytag="modules.cpp::portCount"></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 portCount
+ </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#l00080">80</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a32" doxytag="modules.cpp::ports"></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 ports[MAXSOCKS]
+ </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#l00082">82</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a16" doxytag="modules.cpp::PrefixQuit"></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 PrefixQuit[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="modules_8cpp-source.html#l00063">63</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a12" doxytag="modules.cpp::restartpass"></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 restartpass[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="modules_8cpp-source.html#l00059">59</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a47" doxytag="modules.cpp::RULES"></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#a22">file_cache</a> RULES
+ </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#l00160">160</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a14" doxytag="modules.cpp::rules"></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 rules[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="modules_8cpp-source.html#l00061">61</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a7" doxytag="modules.cpp::ServerDesc"></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 ServerDesc[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="modules_8cpp-source.html#l00054">54</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a5" doxytag="modules.cpp::ServerName"></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 ServerName[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="modules_8cpp-source.html#l00052">52</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a22" doxytag="modules.cpp::startup_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 startup_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="modules_8cpp-source.html#l00070">70</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a31" doxytag="modules.cpp::UDPportCount"></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 UDPportCount
+ </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#l00081">81</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a44" doxytag="modules.cpp::whowas"></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_8cpp.html#a38">user_hash</a> whowas
+ </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#l00157">157</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a20" doxytag="modules.cpp::WHOWAS_MAX"></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 WHOWAS_MAX
+ </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#l00068">68</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
+<a name="a19" doxytag="modules.cpp::WHOWAS_STALE"></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 WHOWAS_STALE
+ </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#l00067">67</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:06 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:14 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/modules_8cpp__incl.gif b/docs/module-doc/modules_8cpp__incl.gif
index 1566919c3..f656c6e55 100644
--- a/docs/module-doc/modules_8cpp__incl.gif
+++ b/docs/module-doc/modules_8cpp__incl.gif
Binary files differ
diff --git a/docs/module-doc/modules_8h-source.html b/docs/module-doc/modules_8h-source.html
index 687d9919d..6868c47b5 100644
--- a/docs/module-doc/modules_8h-source.html
+++ b/docs/module-doc/modules_8h-source.html
@@ -56,205 +56,213 @@
<a name="l00050"></a><a class="code" href="modules_8h.html#a22">00050</a> <span class="keyword">typedef</span> std::deque&lt;std::string&gt; <a class="code" href="modules_8h.html#a22">file_cache</a>;
<a name="l00051"></a><a class="code" href="modules_8h.html#a23">00051</a> <span class="keyword">typedef</span> <a class="code" href="modules_8h.html#a22">file_cache</a> <a class="code" href="modules_8h.html#a23">string_list</a>;
00052
-00053
-00054 <span class="comment">// This #define allows us to call a method in all</span>
-00055 <span class="comment">// loaded modules in a readable simple way, e.g.:</span>
-00056 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span>
+<a name="l00055"></a><a class="code" href="modules_8h.html#a24">00055</a> <span class="keyword">typedef</span> std::deque&lt;userrec*&gt; <a class="code" href="modules_8h.html#a24">chanuserlist</a>;
+00056
00057
-<a name="l00058"></a><a class="code" href="modules_8h.html#a20">00058</a> <span class="preprocessor">#define FOREACH_MOD for (int i = 0; i &lt;= MODCOUNT; i++) modules[i]-&gt;</span>
-00059 <span class="preprocessor"></span>
-00060 <span class="comment">// This define is similar to the one above but returns a result in MOD_RESULT.</span>
-00061 <span class="comment">// The first module to return a nonzero result is the value to be accepted,</span>
-00062 <span class="comment">// and any modules after are ignored.</span>
-00063
-00064 <span class="comment">// *********************************************************************************************</span>
-00065
-<a name="l00066"></a><a class="code" href="modules_8h.html#a21">00066</a> <span class="preprocessor">#define FOREACH_RESULT(x) { MOD_RESULT = 0; \</span>
-00067 <span class="preprocessor"> for (int i = 0; i &lt;= MODCOUNT; i++) { \</span>
-00068 <span class="preprocessor"> int res = modules[i]-&gt;x ; \</span>
-00069 <span class="preprocessor"> if (res) { \</span>
-00070 <span class="preprocessor"> MOD_RESULT = res; \</span>
-00071 <span class="preprocessor"> break; \</span>
-00072 <span class="preprocessor"> } \</span>
-00073 <span class="preprocessor"> } \</span>
-00074 <span class="preprocessor"> } </span>
-00075 <span class="preprocessor"></span>
-00076 <span class="comment">// *********************************************************************************************</span>
-00077
-00078 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#a25">createcommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams);
-00079 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#a26">server_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-00080
-00081 <span class="comment">// class Version holds the version information of a Module, returned</span>
-00082 <span class="comment">// by Module::GetVersion (thanks RD)</span>
-00083
-<a name="l00088"></a><a class="code" href="classVersion.html">00088</a> <span class="keyword">class </span><a class="code" href="classVersion.html">Version</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-00089 {
-00090 <span class="keyword">public</span>:
-<a name="l00091"></a><a class="code" href="classVersion.html#m2">00091</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>;
-00092 <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);
-00093 };
-00094
-<a name="l00100"></a><a class="code" href="classAdmin.html">00100</a> <span class="keyword">class </span><a class="code" href="classAdmin.html">Admin</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-00101 {
-00102 <span class="keyword">public</span>:
-<a name="l00103"></a><a class="code" href="classAdmin.html#m2">00103</a> <span class="keyword">const</span> std::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>;
-00104 <a class="code" href="classAdmin.html#a0">Admin</a>(std::string name, std::string email, std::string nick);
-00105 };
-00106
-<a name="l00112"></a><a class="code" href="classModule.html">00112</a> <span class="keyword">class </span><a class="code" href="classModule.html">Module</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-00113 {
-00114 <span class="keyword">public</span>:
-00115
-00119 <a class="code" href="classModule.html#a0">Module</a>();
-00120
-00124 <span class="keyword">virtual</span> <a class="code" href="classModule.html#a1">~Module</a>();
-00125
-00130 <span class="keyword">virtual</span> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#a2">GetVersion</a>();
-00131
-00135 <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);
-00136
-00140 <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);
-00141
-00146 <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);
-00147
-00152 <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);
-00153
-00160 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a7">OnPacketTransmit</a>(<span class="keywordtype">char</span> *p);
-00161
-00169 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a8">OnPacketReceive</a>(<span class="keywordtype">char</span> *p);
-00170
-00176 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a9">OnRehash</a>();
-00177
-00186 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a10">OnServerRaw</a>(std::string &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user);
-00187
-00197 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a11">OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, string_list &amp;params);
-00198
-00211 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a12">OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname);
-00212
-00213
-00218 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a13">OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-00219
-00228 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a14">OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-00229
-00234 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a15">OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest);
-00235
-00244 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a16">OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string text);
-00245
-00254 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a17">OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string text);
-00255
-00263 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a18">OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newnick);
-00264
-00286 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a19">OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type);
-00287 };
-00288
-00289
-<a name="l00295"></a><a class="code" href="classServer.html">00295</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-00296 {
-00297 <span class="keyword">public</span>:
-00301 <a class="code" href="classServer.html#a0">Server</a>();
-00305 <span class="keyword">virtual</span> <a class="code" href="classServer.html#a1">~Server</a>();
+00058 <span class="comment">// This #define allows us to call a method in all</span>
+00059 <span class="comment">// loaded modules in a readable simple way, e.g.:</span>
+00060 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span>
+00061
+<a name="l00062"></a><a class="code" href="modules_8h.html#a20">00062</a> <span class="preprocessor">#define FOREACH_MOD for (int i = 0; i &lt;= MODCOUNT; i++) modules[i]-&gt;</span>
+00063 <span class="preprocessor"></span>
+00064 <span class="comment">// This define is similar to the one above but returns a result in MOD_RESULT.</span>
+00065 <span class="comment">// The first module to return a nonzero result is the value to be accepted,</span>
+00066 <span class="comment">// and any modules after are ignored.</span>
+00067
+00068 <span class="comment">// *********************************************************************************************</span>
+00069
+<a name="l00070"></a><a class="code" href="modules_8h.html#a21">00070</a> <span class="preprocessor">#define FOREACH_RESULT(x) { MOD_RESULT = 0; \</span>
+00071 <span class="preprocessor"> for (int i = 0; i &lt;= MODCOUNT; i++) { \</span>
+00072 <span class="preprocessor"> int res = modules[i]-&gt;x ; \</span>
+00073 <span class="preprocessor"> if (res) { \</span>
+00074 <span class="preprocessor"> MOD_RESULT = res; \</span>
+00075 <span class="preprocessor"> break; \</span>
+00076 <span class="preprocessor"> } \</span>
+00077 <span class="preprocessor"> } \</span>
+00078 <span class="preprocessor"> } </span>
+00079 <span class="preprocessor"></span>
+00080 <span class="comment">// *********************************************************************************************</span>
+00081
+00082 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#a26">createcommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams);
+00083 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#a27">server_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
+00084
+00085 <span class="comment">// class Version holds the version information of a Module, returned</span>
+00086 <span class="comment">// by Module::GetVersion (thanks RD)</span>
+00087
+<a name="l00092"></a><a class="code" href="classVersion.html">00092</a> <span class="keyword">class </span><a class="code" href="classVersion.html">Version</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+00093 {
+00094 <span class="keyword">public</span>:
+<a name="l00095"></a><a class="code" href="classVersion.html#m2">00095</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>;
+00096 <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);
+00097 };
+00098
+<a name="l00104"></a><a class="code" href="classAdmin.html">00104</a> <span class="keyword">class </span><a class="code" href="classAdmin.html">Admin</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+00105 {
+00106 <span class="keyword">public</span>:
+<a name="l00107"></a><a class="code" href="classAdmin.html#m2">00107</a> <span class="keyword">const</span> std::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>;
+00108 <a class="code" href="classAdmin.html#a0">Admin</a>(std::string name, std::string email, std::string nick);
+00109 };
+00110
+<a name="l00116"></a><a class="code" href="classModule.html">00116</a> <span class="keyword">class </span><a class="code" href="classModule.html">Module</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+00117 {
+00118 <span class="keyword">public</span>:
+00119
+00123 <a class="code" href="classModule.html#a0">Module</a>();
+00124
+00128 <span class="keyword">virtual</span> <a class="code" href="classModule.html#a1">~Module</a>();
+00129
+00134 <span class="keyword">virtual</span> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#a2">GetVersion</a>();
+00135
+00139 <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);
+00140
+00144 <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);
+00145
+00150 <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);
+00151
+00156 <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);
+00157
+00164 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a7">OnPacketTransmit</a>(<span class="keywordtype">char</span> *p);
+00165
+00173 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a8">OnPacketReceive</a>(<span class="keywordtype">char</span> *p);
+00174
+00180 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a9">OnRehash</a>();
+00181
+00190 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a10">OnServerRaw</a>(std::string &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user);
+00191
+00201 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a11">OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, string_list &amp;params);
+00202
+00215 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a12">OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname);
+00216
+00217
+00222 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a13">OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00223
+00232 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a14">OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00233
+00238 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a15">OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest);
+00239
+00248 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a16">OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string text);
+00249
+00258 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a17">OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string text);
+00259
+00267 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a18">OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newnick);
+00268
+00291 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a19">OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type);
+00297 <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#a23">string_list</a> <a class="code" href="classModule.html#a20">OnUserSync</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00298
+00304 <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#a23">string_list</a> <a class="code" href="classModule.html#a21">OnChannelSync</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan);
+00305 };
00306
-00310 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">SendOpers</a>(std::string s);
-00315 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Log</a>(<span class="keywordtype">int</span> level, std::string s);
-00320 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Send</a>(<span class="keywordtype">int</span> Socket, std::string s);
-00325 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">SendServ</a>(<span class="keywordtype">int</span> Socket, std::string s);
-00330 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, std::string s);
-00345 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, std::string s);
-00352 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, std::string s,<span class="keywordtype">bool</span> IncludeSender);
-00357 <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);
-00365 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a10">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text,<span class="keywordtype">bool</span> IncludeSender);
-00370 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text);
-00371
-00375 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">IsNick</a>(std::string nick);
-00379 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classServer.html#a13">CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c);
-00383 <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a14">FindNick</a>(std::string nick);
-00387 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a15">FindChannel</a>(std::string channel);
-00392 <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a16">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
-00396 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a17">IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
-00399 <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a18">GetServerName</a>();
-00402 <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a19">GetNetworkName</a>();
-00408 <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a20">GetAdmin</a>();
-00427 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a21">AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off);
-00428
-00450 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a22">AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar);
-00451
-00466 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a23">AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams);
-00467
-00489 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a24">SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-00490
-00503 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a25">SendToModeMask</a>(std::string modes, <span class="keywordtype">int</span> flags, std::string text);
-00504
-00510 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a26">JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string key);
-00511
-00517 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a27">PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string reason);
-00518
-00524 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a28">ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string nickname);
-00525
-00536 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a29">QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string reason);
-00537
-00542 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a30">MatchText</a>(std::string sliteral, std::string spattern);
+00307
+<a name="l00313"></a><a class="code" href="classServer.html">00313</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+00314 {
+00315 <span class="keyword">public</span>:
+00319 <a class="code" href="classServer.html#a0">Server</a>();
+00323 <span class="keyword">virtual</span> <a class="code" href="classServer.html#a1">~Server</a>();
+00324
+00328 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">SendOpers</a>(std::string s);
+00333 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Log</a>(<span class="keywordtype">int</span> level, std::string s);
+00338 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Send</a>(<span class="keywordtype">int</span> Socket, std::string s);
+00343 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">SendServ</a>(<span class="keywordtype">int</span> Socket, std::string s);
+00348 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, std::string s);
+00363 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, std::string s);
+00370 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, std::string s,<span class="keywordtype">bool</span> IncludeSender);
+00375 <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);
+00383 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a10">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text,<span class="keywordtype">bool</span> IncludeSender);
+00388 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text);
+00389
+00393 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">IsNick</a>(std::string nick);
+00397 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classServer.html#a13">CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c);
+00401 <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a14">FindNick</a>(std::string nick);
+00405 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a15">FindChannel</a>(std::string channel);
+00410 <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a16">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
+00414 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a17">IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
+00417 <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a18">GetServerName</a>();
+00420 <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a19">GetNetworkName</a>();
+00426 <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a20">GetAdmin</a>();
+00445 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a21">AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off);
+00446
+00468 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a22">AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar);
+00469
+00484 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a23">AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams);
+00485
+00507 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a24">SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
+00508
+00521 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a25">SendToModeMask</a>(std::string modes, <span class="keywordtype">int</span> flags, std::string text);
+00522
+00528 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a26">JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string key);
+00529
+00535 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a27">PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string reason);
+00536
+00542 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a28">ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string nickname);
00543
-00555 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a31">CallCommandHandler</a>(std::string commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
-00556
-00562 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a32">ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string host);
-00563
-00569 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a33">ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string gecos);
-00570
-00579 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a34">IsUlined</a>(std::string server);
-00580 };
-00581
-<a name="l00588"></a><a class="code" href="classConfigReader.html">00588</a> <span class="keyword">class </span><a class="code" href="classConfigReader.html">ConfigReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-00589 {
-00590 <span class="keyword">protected</span>:
-<a name="l00596"></a><a class="code" href="classConfigReader.html#n0">00596</a> std::stringstream *<a class="code" href="classConfigReader.html#n0">cache</a>;
-<a name="l00599"></a><a class="code" href="classConfigReader.html#n1">00599</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#n1">error</a>;
-00600
-00601 <span class="keyword">public</span>:
-00606 <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(); <span class="comment">// default constructor reads ircd.conf</span>
-00610 <span class="comment"></span> <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(std::string filename); <span class="comment">// read a module-specific config</span>
-00614 <span class="comment"></span> <a class="code" href="classConfigReader.html#a2">~ConfigReader</a>();
-00619 std::string <a class="code" href="classConfigReader.html#a3">ReadValue</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index);
-00626 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a4">Enumerate</a>(std::string tag);
-00631 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a5">Verify</a>();
-00632
-00638 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a6">EnumerateValues</a>(std::string tag, <span class="keywordtype">int</span> index);
-00639 };
-00640
-00641
-00642
-<a name="l00648"></a><a class="code" href="classFileReader.html">00648</a> <span class="keyword">class </span><a class="code" href="classFileReader.html">FileReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-00649 {
-<a name="l00650"></a><a class="code" href="classFileReader.html#o0">00650</a> <a class="code" href="modules_8h.html#a22">file_cache</a> <a class="code" href="classFileReader.html#o0">fc</a>;
-00651 <span class="keyword">public</span>:
-00656 <a class="code" href="classFileReader.html#a0">FileReader</a>();
-00657
-00663 <a class="code" href="classFileReader.html#a0">FileReader</a>(std::string filename);
+00554 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a29">QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string reason);
+00555
+00560 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a30">MatchText</a>(std::string sliteral, std::string spattern);
+00561
+00573 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a31">CallCommandHandler</a>(std::string commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
+00574
+00580 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a32">ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string host);
+00581
+00587 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a33">ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string gecos);
+00588
+00597 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a34">IsUlined</a>(std::string server);
+00598
+00602 <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#a24">chanuserlist</a> <a class="code" href="classServer.html#a35">GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan);
+00603
+00604 };
+00605
+<a name="l00612"></a><a class="code" href="classConfigReader.html">00612</a> <span class="keyword">class </span><a class="code" href="classConfigReader.html">ConfigReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+00613 {
+00614 <span class="keyword">protected</span>:
+<a name="l00620"></a><a class="code" href="classConfigReader.html#n0">00620</a> std::stringstream *<a class="code" href="classConfigReader.html#n0">cache</a>;
+<a name="l00623"></a><a class="code" href="classConfigReader.html#n1">00623</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#n1">error</a>;
+00624
+00625 <span class="keyword">public</span>:
+00630 <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(); <span class="comment">// default constructor reads ircd.conf</span>
+00634 <span class="comment"></span> <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(std::string filename); <span class="comment">// read a module-specific config</span>
+00638 <span class="comment"></span> <a class="code" href="classConfigReader.html#a2">~ConfigReader</a>();
+00643 std::string <a class="code" href="classConfigReader.html#a3">ReadValue</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index);
+00650 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a4">Enumerate</a>(std::string tag);
+00655 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a5">Verify</a>();
+00656
+00662 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a6">EnumerateValues</a>(std::string tag, <span class="keywordtype">int</span> index);
+00663 };
00664
-00668 <a class="code" href="classFileReader.html#a2">~FileReader</a>();
-00669
-00675 <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">LoadFile</a>(std::string filename);
-00676
-00680 <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#a4">Exists</a>();
-00681
-00686 std::string <a class="code" href="classFileReader.html#a5">GetLine</a>(<span class="keywordtype">int</span> x);
-00687
-00693 <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a6">FileSize</a>();
-00694 };
-00695
-00696
-<a name="l00703"></a><a class="code" href="classModuleFactory.html">00703</a> <span class="keyword">class </span><a class="code" href="classModuleFactory.html">ModuleFactory</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-00704 {
-00705 <span class="keyword">public</span>:
-<a name="l00706"></a><a class="code" href="classModuleFactory.html#a0">00706</a> <a class="code" href="classModuleFactory.html#a0">ModuleFactory</a>() { }
-<a name="l00707"></a><a class="code" href="classModuleFactory.html#a1">00707</a> <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#a1">~ModuleFactory</a>() { }
-00712 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#a2">CreateModule</a>() = 0;
-00713 };
-00714
-00715
-<a name="l00716"></a><a class="code" href="modules_8h.html#a24">00716</a> <span class="keyword">typedef</span> DLLFactory&lt;ModuleFactory&gt; <a class="code" href="modules_8h.html#a24">ircd_module</a>;
-00717
-00718 <span class="preprocessor">#endif</span>
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 2004 for InspIRCd by
+00665
+00666
+<a name="l00672"></a><a class="code" href="classFileReader.html">00672</a> <span class="keyword">class </span><a class="code" href="classFileReader.html">FileReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+00673 {
+<a name="l00674"></a><a class="code" href="classFileReader.html#o0">00674</a> <a class="code" href="modules_8h.html#a22">file_cache</a> <a class="code" href="classFileReader.html#o0">fc</a>;
+00675 <span class="keyword">public</span>:
+00680 <a class="code" href="classFileReader.html#a0">FileReader</a>();
+00681
+00687 <a class="code" href="classFileReader.html#a0">FileReader</a>(std::string filename);
+00688
+00692 <a class="code" href="classFileReader.html#a2">~FileReader</a>();
+00693
+00699 <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">LoadFile</a>(std::string filename);
+00700
+00704 <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#a4">Exists</a>();
+00705
+00710 std::string <a class="code" href="classFileReader.html#a5">GetLine</a>(<span class="keywordtype">int</span> x);
+00711
+00717 <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a6">FileSize</a>();
+00718 };
+00719
+00720
+<a name="l00727"></a><a class="code" href="classModuleFactory.html">00727</a> <span class="keyword">class </span><a class="code" href="classModuleFactory.html">ModuleFactory</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+00728 {
+00729 <span class="keyword">public</span>:
+<a name="l00730"></a><a class="code" href="classModuleFactory.html#a0">00730</a> <a class="code" href="classModuleFactory.html#a0">ModuleFactory</a>() { }
+<a name="l00731"></a><a class="code" href="classModuleFactory.html#a1">00731</a> <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#a1">~ModuleFactory</a>() { }
+00736 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#a2">CreateModule</a>() = 0;
+00737 };
+00738
+00739
+<a name="l00740"></a><a class="code" href="modules_8h.html#a25">00740</a> <span class="keyword">typedef</span> DLLFactory&lt;ModuleFactory&gt; <a class="code" href="modules_8h.html#a25">ircd_module</a>;
+00741
+00742 <span class="preprocessor">#endif</span>
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:07 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/modules_8h.html b/docs/module-doc/modules_8h.html
index c4dc01702..99ac7ab9b 100644
--- a/docs/module-doc/modules_8h.html
+++ b/docs/module-doc/modules_8h.html
@@ -23,7 +23,8 @@ Include dependency graph for modules.h:<p><center><img src="modules_8h__incl.gif
<p>
This graph shows which files directly or indirectly include this file:<p><center><img src="modules_8h__dep__incl.gif" border="0" usemap="#modules.hdep_map" alt="Included by dependency graph"></center>
<map name="modules.hdep_map">
-<area href="modules_8cpp.html" shape="rect" coords="7,16,89,37" alt="">
+<area href="channels_8cpp.html" shape="rect" coords="7,16,95,37" alt="">
+<area href="modules_8cpp.html" shape="rect" coords="119,16,201,37" alt="">
</map>
<p>
@@ -65,16 +66,18 @@ This graph shows which files directly or indirectly include this file:<p><center
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a17">AC_DEHALFOP</a>&nbsp;&nbsp;&nbsp;6</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a18">AC_INVITE</a>&nbsp;&nbsp;&nbsp;7</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a19">AC_GENERAL_MODE</a>&nbsp;&nbsp;&nbsp;8</td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a20">FOREACH_MOD</a>&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt;= <a class="el" href="modules_8cpp.html#a3">MODCOUNT</a>; i++) modules[i]-&gt;</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a20">FOREACH_MOD</a>&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt;= <a class="el" href="modules_8cpp.html#a1">MODCOUNT</a>; i++) modules[i]-&gt;</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a21">FOREACH_RESULT</a>(x)</td></tr>
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
<tr><td nowrap align=right valign=top>typedef std::deque&lt; std::string &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a22">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="#a22"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>typedef <a class="el" href="modules_8h.html#a22">file_cache</a>&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a23">string_list</a></td></tr>
-<tr><td nowrap align=right valign=top>typedef DLLFactory&lt; <a class="el" href="classModuleFactory.html">ModuleFactory</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a24">ircd_module</a></td></tr>
+<tr><td nowrap align=right valign=top>typedef std::deque&lt; <a class="el" href="classuserrec.html">userrec</a> * &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a24">chanuserlist</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a list of users in a channel.</em> <a href="#a24"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>typedef DLLFactory&lt; <a class="el" href="classModuleFactory.html">ModuleFactory</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a25">ircd_module</a></td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
-<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a25">createcommand</a> (char *cmd, handlerfunc f, char flags, int minparams)</td></tr>
-<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a26">server_mode</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a26">createcommand</a> (char *cmd, handlerfunc f, char flags, int minparams)</td></tr>
+<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a27">server_mode</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a name="a17" doxytag="modules.h::AC_DEHALFOP"></a><p>
@@ -340,7 +343,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00029">29</a> of
<p>
Definition at line <a class="el" href="modules_8h-source.html#l00027">27</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#l00158">Module::OnAccessCheck()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00304">Module::OnAccessCheck()</a>. </td>
</tr>
</table>
<a name="a9" doxytag="modules.h::ACR_DENY"></a><p>
@@ -421,7 +424,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00015">15</a> of
<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;= <a class="el" href="modules_8cpp.html#a3">MODCOUNT</a>; i++) modules[i]-&gt;
+ <td class="md" nowrap valign="top"> #define FOREACH_MOD&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt;= <a class="el" href="modules_8cpp.html#a1">MODCOUNT</a>; i++) modules[i]-&gt;
</table>
</td>
</tr>
@@ -436,7 +439,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00015">15</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00058">58</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00062">62</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
</tr>
</table>
<a name="a21" doxytag="modules.h::FOREACH_RESULT"></a><p>
@@ -464,8 +467,8 @@ Definition at line <a class="el" href="modules_8h-source.html#l00058">58</a> of
<p>
<b>Value:</b><div class="fragment"><pre>{ MOD_RESULT = 0; \
- <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="modules_8cpp.html#a3">MODCOUNT</a>; i++) { \
- <span class="keywordtype">int</span> res = <a class="code" href="modules_8cpp.html#a11">modules</a>[i]-&gt;x ; \
+ <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="modules_8cpp.html#a1">MODCOUNT</a>; i++) { \
+ <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#a2">modules</a>[i]-&gt;x ; \
<span class="keywordflow">if</span> (res) { \
MOD_RESULT = res; \
<span class="keywordflow">break</span>; \
@@ -474,7 +477,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00058">58</a> of
}
</pre></div>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00066">66</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00070">70</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
</tr>
</table>
<a name="a5" doxytag="modules.h::MT_CHANNEL"></a><p>
@@ -500,7 +503,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00066">66</a> of
<p>
Definition at line <a class="el" href="modules_8h-source.html#l00021">21</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#l00118">ModeMakeList()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00264">ModeMakeList()</a>. </td>
</tr>
</table>
<a name="a6" doxytag="modules.h::MT_CLIENT"></a><p>
@@ -526,7 +529,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00118">ModeMakeList(
<p>
Definition at line <a class="el" href="modules_8h-source.html#l00022">22</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#l00351">Server::AddExtendedMode()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00519">Server::AddExtendedMode()</a>. </td>
</tr>
</table>
<a name="a7" doxytag="modules.h::MT_SERVER"></a><p>
@@ -552,7 +555,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00351">Server::AddEx
<p>
Definition at line <a class="el" href="modules_8h-source.html#l00023">23</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00351">Server::AddExtendedMode()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00519">Server::AddExtendedMode()</a>. </td>
</tr>
</table>
<a name="a4" doxytag="modules.h::NONE"></a><p>
@@ -628,6 +631,34 @@ Definition at line <a class="el" href="modules_8h-source.html#l00014">14</a> of
</tr>
</table>
<hr><h2>Typedef Documentation</h2>
+<a name="a24" doxytag="modules.h::chanuserlist"></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 std::deque&lt;<a class="el" href="classuserrec.html">userrec</a>*&gt; chanuserlist
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Holds a list of users in a channel.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00055">55</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#l00349">Server::GetUsers()</a>. </td>
+ </tr>
+</table>
<a name="a22" doxytag="modules.h::file_cache"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
@@ -653,10 +684,10 @@ Low level definition of a <a class="el" href="classFileReader.html">FileReader</
<p>
Definition at line <a class="el" href="modules_8h-source.html#l00050">50</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#l00433">FileReader::FileReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00444">FileReader::LoadFile()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00601">FileReader::FileReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00612">FileReader::LoadFile()</a>. </td>
</tr>
</table>
-<a name="a24" doxytag="modules.h::ircd_module"></a><p>
+<a name="a25" doxytag="modules.h::ircd_module"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -677,7 +708,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00433">FileReader::F
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00716">716</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00740">740</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
</tr>
</table>
<a name="a23" doxytag="modules.h::string_list"></a><p>
@@ -701,11 +732,13 @@ Definition at line <a class="el" href="modules_8h-source.html#l00716">716</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00051">51</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00051">51</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#l00306">Module::OnChannelSync()</a>, and <a class="el" href="modules_8cpp-source.html#l00305">Module::OnUserSync()</a>. </td>
</tr>
</table>
<hr><h2>Function Documentation</h2>
-<a name="a25" doxytag="modules.h::createcommand"></a><p>
+<a name="a26" doxytag="modules.h::createcommand"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -754,10 +787,10 @@ Definition at line <a class="el" href="modules_8h-source.html#l00051">51</a> of
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00226">Server::AddCommand()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00394">Server::AddCommand()</a>. </td>
</tr>
</table>
-<a name="a26" doxytag="modules.h::server_mode"></a><p>
+<a name="a27" doxytag="modules.h::server_mode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -800,10 +833,10 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00226">Server::AddCo
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00231">Server::SendMode()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00399">Server::SendMode()</a>. </td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:07 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:15 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/modules_8h__dep__incl.gif b/docs/module-doc/modules_8h__dep__incl.gif
index ca5349967..c11169717 100644
--- a/docs/module-doc/modules_8h__dep__incl.gif
+++ b/docs/module-doc/modules_8h__dep__incl.gif
Binary files differ
diff --git a/docs/module-doc/namespacenspace.html b/docs/module-doc/namespacenspace.html
new file mode 100644
index 000000000..c43d6904a
--- /dev/null
+++ b/docs/module-doc/namespacenspace.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>nspace Namespace Reference</title>
+<link href="inspircd.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc3 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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>nspace Namespace Reference</h1>
+<p>
+<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>struct &nbsp;</td><td valign=bottom><a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html">hash&lt; in_addr &gt;</a></td></tr>
+<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html">hash&lt; string &gt;</a></td></tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:37 2004 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-rc3 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/namespaces.html b/docs/module-doc/namespaces.html
index c186aed4c..66d75ef86 100644
--- a/docs/module-doc/namespaces.html
+++ b/docs/module-doc/namespaces.html
@@ -7,9 +7,10 @@
<center>
<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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 Namespace List</h1>Here is a list of all namespaces with brief descriptions:<table>
+ <tr><td class="indexkey"><a class="el" href="namespacenspace.html">nspace</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="namespacestd.html">std</a></td><td class="indexvalue"></td></tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:29 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:37 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/namespacestd.html b/docs/module-doc/namespacestd.html
index 9c3e71c0b..865a77e0d 100644
--- a/docs/module-doc/namespacestd.html
+++ b/docs/module-doc/namespacestd.html
@@ -11,7 +11,7 @@
<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:29 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:38 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/servers_8cpp-source.html b/docs/module-doc/servers_8cpp-source.html
index 6c852e2b5..8056ab048 100644
--- a/docs/module-doc/servers_8cpp-source.html
+++ b/docs/module-doc/servers_8cpp-source.html
@@ -48,7 +48,7 @@
00040 <a class="code" href="classserverrec.html#m9">sync_soon</a> = <span class="keyword">false</span>;
00041 }
00042
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:07 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/servers_8cpp.html b/docs/module-doc/servers_8cpp.html
index 8f79de16e..d79623de4 100644
--- a/docs/module-doc/servers_8cpp.html
+++ b/docs/module-doc/servers_8cpp.html
@@ -23,7 +23,7 @@ Include dependency graph for servers.cpp:<p><center><img src="servers_8cpp__incl
<a href="servers_8cpp-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:07 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:15 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/servers_8h-source.html b/docs/module-doc/servers_8h-source.html
index 15f392ea0..a50589257 100644
--- a/docs/module-doc/servers_8h-source.html
+++ b/docs/module-doc/servers_8h-source.html
@@ -49,7 +49,7 @@
00067
00068 <span class="preprocessor">#endif</span>
00069 <span class="preprocessor"></span>
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:07 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/servers_8h.html b/docs/module-doc/servers_8h.html
index 3b2f5a1c2..bbd42b91a 100644
--- a/docs/module-doc/servers_8h.html
+++ b/docs/module-doc/servers_8h.html
@@ -20,7 +20,9 @@ Include dependency graph for servers.h:<p><center><img src="servers_8h__incl.gif
<p>
This graph shows which files directly or indirectly include this file:<p><center><img src="servers_8h__dep__incl.gif" border="0" usemap="#servers.hdep_map" alt="Included by dependency graph"></center>
<map name="servers.hdep_map">
-<area href="servers_8cpp.html" shape="rect" coords="7,16,87,37" alt="">
+<area href="channels_8cpp.html" shape="rect" coords="7,16,95,37" alt="">
+<area href="modules_8cpp.html" shape="rect" coords="119,16,201,37" alt="">
+<area href="servers_8cpp.html" shape="rect" coords="225,16,305,37" alt="">
</map>
<p>
@@ -82,7 +84,7 @@ Definition at line <a class="el" href="servers_8h-source.html#l00014">14</a> of
Definition at line <a class="el" href="servers_8h-source.html#l00015">15</a> of file <a class="el" href="servers_8h-source.html">servers.h</a>. </td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:08 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:16 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/servers_8h__dep__incl.gif b/docs/module-doc/servers_8h__dep__incl.gif
index a3638a0cb..42da40def 100644
--- a/docs/module-doc/servers_8h__dep__incl.gif
+++ b/docs/module-doc/servers_8h__dep__incl.gif
Binary files differ
diff --git a/docs/module-doc/structInAddr__HashComp-members.html b/docs/module-doc/structInAddr__HashComp-members.html
new file mode 100644
index 000000000..574135070
--- /dev/null
+++ b/docs/module-doc/structInAddr__HashComp-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="inspircd.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc3 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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>InAddr_HashComp Member List</h1>This is the complete list of members for <a class="el" href="structInAddr__HashComp.html">InAddr_HashComp</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="structInAddr__HashComp.html#a0">operator()</a>(const in_addr &amp;s1, const in_addr &amp;s2) const</td><td><a class="el" href="structInAddr__HashComp.html">InAddr_HashComp</a></td><td><code> [inline]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:27 2004 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-rc3 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/structInAddr__HashComp.html b/docs/module-doc/structInAddr__HashComp.html
new file mode 100644
index 000000000..ce21c53e3
--- /dev/null
+++ b/docs/module-doc/structInAddr__HashComp.html
@@ -0,0 +1,73 @@
+<!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>InAddr_HashComp struct Reference</title>
+<link href="inspircd.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc3 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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>InAddr_HashComp Struct Reference</h1><a href="structInAddr__HashComp-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="structInAddr__HashComp.html#a0">operator()</a> (const in_addr &amp;s1, const in_addr &amp;s2) const</td></tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a0" doxytag="InAddr_HashComp::operator()"></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 InAddr_HashComp::operator() </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const in_addr &amp;&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s1</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>const in_addr &amp;&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s2</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<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_8cpp-source.html#l00135">135</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00136 {
+00137 size_t q;
+00138 size_t p;
+00139
+00140 memcpy(&amp;q,&amp;s1,<span class="keyword">sizeof</span>(size_t));
+00141 memcpy(&amp;p,&amp;s2,<span class="keyword">sizeof</span>(size_t));
+00142
+00143 <span class="keywordflow">return</span> (q == p);
+00144 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:27 2004 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-rc3 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/structStrHashComp-members.html b/docs/module-doc/structStrHashComp-members.html
new file mode 100644
index 000000000..dd56c00e5
--- /dev/null
+++ b/docs/module-doc/structStrHashComp-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="inspircd.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc3 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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>StrHashComp Member List</h1>This is the complete list of members for <a class="el" href="structStrHashComp.html">StrHashComp</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="structStrHashComp.html#a0">operator()</a>(const string &amp;s1, const string &amp;s2) const</td><td><a class="el" href="structStrHashComp.html">StrHashComp</a></td><td><code> [inline]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:34 2004 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-rc3 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/structStrHashComp.html b/docs/module-doc/structStrHashComp.html
new file mode 100644
index 000000000..03fb5a0f3
--- /dev/null
+++ b/docs/module-doc/structStrHashComp.html
@@ -0,0 +1,70 @@
+<!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>StrHashComp struct Reference</title>
+<link href="inspircd.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc3 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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>StrHashComp Struct Reference</h1><a href="structStrHashComp-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="structStrHashComp.html#a0">operator()</a> (const string &amp;s1, const string &amp;s2) const</td></tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a0" doxytag="StrHashComp::operator()"></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 StrHashComp::operator() </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s1</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s2</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<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_8cpp-source.html#l00122">122</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00123 {
+00124 <span class="keywordtype">char</span> a[MAXBUF],b[MAXBUF];
+00125 strcpy(a,s1.c_str());
+00126 strcpy(b,s2.c_str());
+00127 <span class="keywordflow">return</span> (strcasecmp(a,b) == 0);
+00128 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:34 2004 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-rc3 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/structnspace_1_1nspace_1_1hash_3_01in__addr_01_4-members.html b/docs/module-doc/structnspace_1_1nspace_1_1hash_3_01in__addr_01_4-members.html
new file mode 100644
index 000000000..a54a649c3
--- /dev/null
+++ b/docs/module-doc/structnspace_1_1nspace_1_1hash_3_01in__addr_01_4-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="inspircd.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc3 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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>nspace::hash&lt; in_addr &gt; Member List</h1>This is the complete list of members for <a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html">nspace::hash&lt; in_addr &gt;</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html#a0">operator()</a>(const struct in_addr &amp;a) const</td><td><a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html">nspace::hash&lt; in_addr &gt;</a></td><td><code> [inline]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:38 2004 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-rc3 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html b/docs/module-doc/structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html
new file mode 100644
index 000000000..782fa03c0
--- /dev/null
+++ b/docs/module-doc/structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html
@@ -0,0 +1,63 @@
+<!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> Templatenspace::hash&lt; in_addr &gt; struct Reference</title>
+<link href="inspircd.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc3 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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>nspace::hash&lt; in_addr &gt; Struct Template Reference</h1><a href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td nowrap align=right valign=top>size_t&nbsp;</td><td valign=bottom><a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html#a0">operator()</a> (const struct in_addr &amp;a) const</td></tr>
+</table>
+<h3>template&lt;&gt;<br>
+ struct nspace::hash&lt; in_addr &gt;</h3>
+
+<hr><h2>Member Function Documentation</h2>
+<a name="a0" doxytag="nspace::nspace::hash< in_addr >::operator()"></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"> size_t nspace::hash&lt; in_addr &gt;::operator() </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const struct in_addr &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>a</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap> const<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_8cpp-source.html#l00097">97</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00098 {
+00099 size_t q;
+00100 memcpy(&amp;q,&amp;a,<span class="keyword">sizeof</span>(size_t));
+00101 <span class="keywordflow">return</span> q;
+00102 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:37 2004 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-rc3 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/structnspace_1_1nspace_1_1hash_3_01string_01_4-members.html b/docs/module-doc/structnspace_1_1nspace_1_1hash_3_01string_01_4-members.html
new file mode 100644
index 000000000..56f56c347
--- /dev/null
+++ b/docs/module-doc/structnspace_1_1nspace_1_1hash_3_01string_01_4-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="inspircd.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc3 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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>nspace::hash&lt; string &gt; Member List</h1>This is the complete list of members for <a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html">nspace::hash&lt; string &gt;</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html#a0">operator()</a>(const string &amp;s) const</td><td><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html">nspace::hash&lt; string &gt;</a></td><td><code> [inline]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:38 2004 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-rc3 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/structnspace_1_1nspace_1_1hash_3_01string_01_4.html b/docs/module-doc/structnspace_1_1nspace_1_1hash_3_01string_01_4.html
new file mode 100644
index 000000000..caf3bcb4f
--- /dev/null
+++ b/docs/module-doc/structnspace_1_1nspace_1_1hash_3_01string_01_4.html
@@ -0,0 +1,65 @@
+<!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> Templatenspace::hash&lt; string &gt; struct Reference</title>
+<link href="inspircd.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc3 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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>nspace::hash&lt; string &gt; Struct Template Reference</h1><a href="structnspace_1_1nspace_1_1hash_3_01string_01_4-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td nowrap align=right valign=top>size_t&nbsp;</td><td valign=bottom><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html#a0">operator()</a> (const string &amp;s) const</td></tr>
+</table>
+<h3>template&lt;&gt;<br>
+ struct nspace::hash&lt; string &gt;</h3>
+
+<hr><h2>Member Function Documentation</h2>
+<a name="a0" doxytag="nspace::nspace::hash< string >::operator()"></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"> size_t nspace::hash&lt; string &gt;::operator() </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>s</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap> const<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_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="keywordtype">char</span> a[MAXBUF];
+00110 <span class="keyword">static</span> <span class="keyword">struct </span>hash&lt;const char *&gt; strhash;
+00111 strcpy(a,s.c_str());
+00112 strlower(a);
+00113 <span class="keywordflow">return</span> strhash(a);
+00114 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:38 2004 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-rc3 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/tree.html b/docs/module-doc/tree.html
index 68dee8a28..67ae1fa52 100644
--- a/docs/module-doc/tree.html
+++ b/docs/module-doc/tree.html
@@ -144,7 +144,10 @@
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classExtMode.html" target="basefrm">ExtMode</a></p>
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classFileReader.html" target="basefrm">FileReader</a></p>
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classGLine.html" target="basefrm">GLine</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html" target="basefrm">nspace::hash< in_addr ></a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html" target="basefrm">nspace::hash< string ></a></p>
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classHostItem.html" target="basefrm">HostItem</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="structInAddr__HashComp.html" target="basefrm">InAddr_HashComp</a></p>
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classInvited.html" target="basefrm">Invited</a></p>
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classInviteItem.html" target="basefrm">InviteItem</a></p>
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classircd__connector.html" target="basefrm">ircd_connector</a></p>
@@ -156,6 +159,7 @@
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classQLine.html" target="basefrm">QLine</a></p>
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classServer.html" target="basefrm">Server</a></p>
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classserverrec.html" target="basefrm">serverrec</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="structStrHashComp.html" target="basefrm">StrHashComp</a></p>
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classucrec.html" target="basefrm">ucrec</a></p>
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classuserrec.html" target="basefrm">userrec</a></p>
<p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classVersion.html" target="basefrm">Version</a></p>
@@ -164,50 +168,55 @@
</div>
<p><img src="ftv2pnode.png" onclick="toggleFolder('folder3', this)"/><img src="ftv2folderclosed.png" onclick="toggleFolder('folder3', this)"/><a class="el" href="hierarchy.html" target="basefrm">Class Hierarchy</a></p>
<div id="folder3">
- <p><img src="ftv2vertline.png"/><img src="ftv2plastnode.png" onclick="toggleFolder('folder4', this)"/><img src="ftv2folderclosed.png" onclick="toggleFolder('folder4', this)"/><a class="el" href="classclassbase.html" target="basefrm">classbase</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2pnode.png" onclick="toggleFolder('folder4', this)"/><img src="ftv2folderclosed.png" onclick="toggleFolder('folder4', this)"/><a class="el" href="classclassbase.html" target="basefrm">classbase</a></p>
<div id="folder4">
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classAdmin.html" target="basefrm">Admin</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classConfigReader.html" target="basefrm">ConfigReader</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classConnectClass.html" target="basefrm">ConnectClass</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2pnode.png" onclick="toggleFolder('folder5', this)"/><img src="ftv2folderclosed.png" onclick="toggleFolder('folder5', this)"/><a class="el" href="classExtensible.html" target="basefrm">Extensible</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classAdmin.html" target="basefrm">Admin</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classConfigReader.html" target="basefrm">ConfigReader</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classConnectClass.html" target="basefrm">ConnectClass</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2pnode.png" onclick="toggleFolder('folder5', this)"/><img src="ftv2folderclosed.png" onclick="toggleFolder('folder5', this)"/><a class="el" href="classExtensible.html" target="basefrm">Extensible</a></p>
<div id="folder5">
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classchanrec.html" target="basefrm">chanrec</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classcommand__t.html" target="basefrm">command_t</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2vertline.png"/><img src="ftv2pnode.png" onclick="toggleFolder('folder6', this)"/><img src="ftv2folderclosed.png" onclick="toggleFolder('folder6', this)"/><a class="el" href="classconnection.html" target="basefrm">connection</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classchanrec.html" target="basefrm">chanrec</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classcommand__t.html" target="basefrm">command_t</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2pnode.png" onclick="toggleFolder('folder6', this)"/><img src="ftv2folderclosed.png" onclick="toggleFolder('folder6', this)"/><a class="el" href="classconnection.html" target="basefrm">connection</a></p>
<div id="folder6">
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classserverrec.html" target="basefrm">serverrec</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2lastnode.png"/><img src="ftv2doc.png"/><a class="el" href="classuserrec.html" target="basefrm">userrec</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classserverrec.html" target="basefrm">serverrec</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2lastnode.png"/><img src="ftv2doc.png"/><a class="el" href="classuserrec.html" target="basefrm">userrec</a></p>
</div>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classircd__connector.html" target="basefrm">ircd_connector</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2vertline.png"/><img src="ftv2lastnode.png"/><img src="ftv2doc.png"/><a class="el" href="classucrec.html" target="basefrm">ucrec</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2lastnode.png"/><img src="ftv2doc.png"/><a class="el" href="classircd__connector.html" target="basefrm">ircd_connector</a></p>
</div>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classExtMode.html" target="basefrm">ExtMode</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classFileReader.html" target="basefrm">FileReader</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2pnode.png" onclick="toggleFolder('folder7', this)"/><img src="ftv2folderclosed.png" onclick="toggleFolder('folder7', this)"/><a class="el" href="classHostItem.html" target="basefrm">HostItem</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classExtMode.html" target="basefrm">ExtMode</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classFileReader.html" target="basefrm">FileReader</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2pnode.png" onclick="toggleFolder('folder7', this)"/><img src="ftv2folderclosed.png" onclick="toggleFolder('folder7', this)"/><a class="el" href="classHostItem.html" target="basefrm">HostItem</a></p>
<div id="folder7">
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classBanItem.html" target="basefrm">BanItem</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classExemptItem.html" target="basefrm">ExemptItem</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2vertline.png"/><img src="ftv2lastnode.png"/><img src="ftv2doc.png"/><a class="el" href="classInviteItem.html" target="basefrm">InviteItem</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classBanItem.html" target="basefrm">BanItem</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classExemptItem.html" target="basefrm">ExemptItem</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2lastnode.png"/><img src="ftv2doc.png"/><a class="el" href="classInviteItem.html" target="basefrm">InviteItem</a></p>
</div>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classInvited.html" target="basefrm">Invited</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classModeParameter.html" target="basefrm">ModeParameter</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classModule.html" target="basefrm">Module</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classModuleFactory.html" target="basefrm">ModuleFactory</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classpacket.html" target="basefrm">packet</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classServer.html" target="basefrm">Server</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classVersion.html" target="basefrm">Version</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2plastnode.png" onclick="toggleFolder('folder8', this)"/><img src="ftv2folderclosed.png" onclick="toggleFolder('folder8', this)"/><a class="el" href="classXLine.html" target="basefrm">XLine</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classInvited.html" target="basefrm">Invited</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classModeParameter.html" target="basefrm">ModeParameter</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classModule.html" target="basefrm">Module</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classModuleFactory.html" target="basefrm">ModuleFactory</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classpacket.html" target="basefrm">packet</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classServer.html" target="basefrm">Server</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classucrec.html" target="basefrm">ucrec</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classVersion.html" target="basefrm">Version</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2plastnode.png" onclick="toggleFolder('folder8', this)"/><img src="ftv2folderclosed.png" onclick="toggleFolder('folder8', this)"/><a class="el" href="classXLine.html" target="basefrm">XLine</a></p>
<div id="folder8">
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classGLine.html" target="basefrm">GLine</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classKLine.html" target="basefrm">KLine</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classQLine.html" target="basefrm">QLine</a></p>
- <p><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2blank.png"/><img src="ftv2lastnode.png"/><img src="ftv2doc.png"/><a class="el" href="classZLine.html" target="basefrm">ZLine</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classGLine.html" target="basefrm">GLine</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classKLine.html" target="basefrm">KLine</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="classQLine.html" target="basefrm">QLine</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2vertline.png"/><img src="ftv2blank.png"/><img src="ftv2lastnode.png"/><img src="ftv2doc.png"/><a class="el" href="classZLine.html" target="basefrm">ZLine</a></p>
</div>
</div>
+ <p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="structnspace_1_1nspace_1_1hash_3_01in__addr_01_4.html" target="basefrm">nspace::hash< in_addr ></a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="structnspace_1_1nspace_1_1hash_3_01string_01_4.html" target="basefrm">nspace::hash< string ></a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="structInAddr__HashComp.html" target="basefrm">InAddr_HashComp</a></p>
+ <p><img src="ftv2vertline.png"/><img src="ftv2lastnode.png"/><img src="ftv2doc.png"/><a class="el" href="structStrHashComp.html" target="basefrm">StrHashComp</a></p>
</div>
<p><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="functions.html" target="basefrm">Compound Members</a></p>
<p><img src="ftv2pnode.png" onclick="toggleFolder('folder9', this)"/><img src="ftv2folderclosed.png" onclick="toggleFolder('folder9', this)"/><a class="el" href="namespaces.html" target="basefrm">Namespace List</a></p>
<div id="folder9">
+ <p><img src="ftv2vertline.png"/><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="namespacenspace.html" target="basefrm">nspace</a></p>
<p><img src="ftv2vertline.png"/><img src="ftv2lastnode.png"/><img src="ftv2doc.png"/><a class="el" href="namespacestd.html" target="basefrm">std</a></p>
</div>
<p><img src="ftv2node.png"/><img src="ftv2doc.png"/><a class="el" href="globals.html" target="basefrm">File Members</a></p>
diff --git a/docs/module-doc/users_8cpp-source.html b/docs/module-doc/users_8cpp-source.html
index 901476431..3445cc0c3 100644
--- a/docs/module-doc/users_8cpp-source.html
+++ b/docs/module-doc/users_8cpp-source.html
@@ -16,7 +16,7 @@
00008 <span class="preprocessor">#include "inspircd.h"</span>
00009 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
00010
-<a name="l00011"></a><a class="code" href="users_8cpp.html#a0">00011</a> <span class="keyword">extern</span> std::stringstream <a class="code" href="users_8cpp.html#a0">config_f</a>;
+<a name="l00011"></a><a class="code" href="users_8cpp.html#a0">00011</a> <span class="keyword">extern</span> std::stringstream <a class="code" href="channels_8cpp.html#a35">config_f</a>;
00012
<a name="l00013"></a><a class="code" href="classuserrec.html#a0">00013</a> <a class="code" href="classuserrec.html#a0">userrec::userrec</a>()
00014 {
@@ -155,7 +155,7 @@
00147 }
00148
00149
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:07 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/users_8cpp.html b/docs/module-doc/users_8cpp.html
index 0f6449ce6..90bb7b37c 100644
--- a/docs/module-doc/users_8cpp.html
+++ b/docs/module-doc/users_8cpp.html
@@ -52,7 +52,7 @@ Include dependency graph for users.cpp:<p><center><img src="users_8cpp__incl.gif
Definition at line <a class="el" href="users_8cpp-source.html#l00011">11</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>. </td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:08 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:16 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/users_8h-source.html b/docs/module-doc/users_8h-source.html
index 2b6f863ad..676a7681d 100644
--- a/docs/module-doc/users_8h-source.html
+++ b/docs/module-doc/users_8h-source.html
@@ -104,13 +104,13 @@
00171
00176 <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);
00177
-00182 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a7">HasPermission</a>(<span class="keywordtype">char</span>* command);
+00182 <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a7">HasPermission</a>(<span class="keywordtype">char</span>* command);
00183
00184 };
00185
00186
00187 <span class="preprocessor">#endif</span>
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:07 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/users_8h.html b/docs/module-doc/users_8h.html
index 10bbbe439..374109a47 100644
--- a/docs/module-doc/users_8h.html
+++ b/docs/module-doc/users_8h.html
@@ -21,12 +21,13 @@ Include dependency graph for users.h:<p><center><img src="users_8h__incl.gif" bo
<p>
This graph shows which files directly or indirectly include this file:<p><center><img src="users_8h__dep__incl.gif" border="0" usemap="#users.hdep_map" alt="Included by dependency graph"></center>
<map name="users.hdep_map">
-<area href="users_8cpp.html" shape="rect" coords="7,85,73,106" alt="">
-<area href="commands_8h.html" shape="rect" coords="97,85,180,106" alt="">
-<area href="modules_8cpp.html" shape="rect" coords="199,16,281,37" alt="">
-<area href="message_8h.html" shape="rect" coords="204,85,276,106" alt="">
-<area href="mode_8h.html" shape="rect" coords="300,85,351,106" alt="">
-<area href="xline_8h.html" shape="rect" coords="375,85,423,106" alt="">
+<area href="channels_8cpp.html" shape="rect" coords="373,16,461,37" alt="">
+<area href="message_8h.html" shape="rect" coords="327,85,399,106" alt="">
+<area href="mode_8h.html" shape="rect" coords="423,85,473,106" alt="">
+<area href="xline_8h.html" shape="rect" coords="255,85,303,106" alt="">
+<area href="modules_8cpp.html" shape="rect" coords="237,16,320,37" alt="">
+<area href="commands_8h.html" shape="rect" coords="57,85,140,106" alt="">
+<area href="users_8cpp.html" shape="rect" coords="164,85,231,106" alt="">
</map>
<p>
@@ -250,7 +251,7 @@ Holds a complete list of all channels to which a user has been invited and has n
Definition at line <a class="el" href="users_8h-source.html#l00064">64</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 Sat May 1 13:39:09 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:17 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/users_8h__dep__incl.gif b/docs/module-doc/users_8h__dep__incl.gif
index 2c5fe25b7..98967bdc5 100644
--- a/docs/module-doc/users_8h__dep__incl.gif
+++ b/docs/module-doc/users_8h__dep__incl.gif
Binary files differ
diff --git a/docs/module-doc/xline_8h-source.html b/docs/module-doc/xline_8h-source.html
index dc4bea5c4..de5d5a897 100644
--- a/docs/module-doc/xline_8h-source.html
+++ b/docs/module-doc/xline_8h-source.html
@@ -100,7 +100,7 @@
00130 <span class="preprocessor">#endif</span>
00131 <span class="preprocessor"></span>
00132
-</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 17:50:07 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/xline_8h.html b/docs/module-doc/xline_8h.html
index 167ecc9cf..1961894d5 100644
--- a/docs/module-doc/xline_8h.html
+++ b/docs/module-doc/xline_8h.html
@@ -24,6 +24,13 @@ Include dependency graph for xline.h:<p><center><img src="xline_8h__incl.gif" bo
</map>
<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="xline_8h__dep__incl.gif" border="0" usemap="#xline.hdep_map" alt="Included by dependency graph"></center>
+<map name="xline.hdep_map">
+<area href="channels_8cpp.html" shape="rect" coords="7,16,95,37" alt="">
+<area href="modules_8cpp.html" shape="rect" coords="119,16,201,37" alt="">
+</map>
+
+<p>
<a href="xline_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>
@@ -907,7 +914,7 @@ Include dependency graph for xline.h:<p><center><img src="xline_8h__incl.gif" bo
</td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:09 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 17:50:18 2004 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-rc3 </small></address>
diff --git a/docs/module-doc/xline_8h__dep__incl.gif b/docs/module-doc/xline_8h__dep__incl.gif
new file mode 100644
index 000000000..469e0d231
--- /dev/null
+++ b/docs/module-doc/xline_8h__dep__incl.gif
Binary files differ
diff --git a/include/modules.h b/include/modules.h
index df971b611..48e360114 100644
--- a/include/modules.h
+++ b/include/modules.h
@@ -599,7 +599,7 @@ class Server : public classbase
/** Fetches the userlist of a channel. This function must be here and not a member of userrec or
* chanrec due to include constraints.
*/
- virtual chanuserlist Server::GetUsers(chanrec* chan);
+ virtual chanuserlist GetUsers(chanrec* chan);
};