summaryrefslogtreecommitdiff
path: root/docs/module-doc
diff options
context:
space:
mode:
Diffstat (limited to 'docs/module-doc')
-rw-r--r--docs/module-doc/annotated.html2
-rw-r--r--docs/module-doc/base_8h-source.html8
-rw-r--r--docs/module-doc/base_8h.html2
-rw-r--r--docs/module-doc/channels_8cpp-source.html2
-rw-r--r--docs/module-doc/channels_8cpp.html2
-rw-r--r--docs/module-doc/channels_8h-source.html2
-rw-r--r--docs/module-doc/channels_8h.html2
-rw-r--r--docs/module-doc/classAdmin-members.html2
-rw-r--r--docs/module-doc/classAdmin.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.html3
-rw-r--r--docs/module-doc/classExtMode.html31
-rw-r--r--docs/module-doc/classExtMode__coll__graph.gifbin10335 -> 10477 bytes
-rw-r--r--docs/module-doc/classExtensible-members.html4
-rw-r--r--docs/module-doc/classExtensible.html14
-rw-r--r--docs/module-doc/classExtensible__coll__graph.gifbin6375 -> 6126 bytes
-rw-r--r--docs/module-doc/classFileReader-members.html2
-rw-r--r--docs/module-doc/classFileReader.html100
-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.html2
-rw-r--r--docs/module-doc/classModule-members.html3
-rw-r--r--docs/module-doc/classModule.html159
-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.html36
-rw-r--r--docs/module-doc/classServer.html559
-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.html4
-rw-r--r--docs/module-doc/classchanrec.html2
-rw-r--r--docs/module-doc/classchanrec__coll__graph.gifbin21868 -> 21679 bytes
-rw-r--r--docs/module-doc/classclassbase-members.html2
-rw-r--r--docs/module-doc/classclassbase.html2
-rw-r--r--docs/module-doc/classcommand__t-members.html4
-rw-r--r--docs/module-doc/classcommand__t.html2
-rw-r--r--docs/module-doc/classconnection-members.html4
-rw-r--r--docs/module-doc/classconnection.html4
-rw-r--r--docs/module-doc/classes.html2
-rw-r--r--docs/module-doc/classircd__connector-members.html4
-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.html4
-rw-r--r--docs/module-doc/classserverrec.html2
-rw-r--r--docs/module-doc/classucrec-members.html4
-rw-r--r--docs/module-doc/classucrec.html2
-rw-r--r--docs/module-doc/classuserrec-members.html4
-rw-r--r--docs/module-doc/classuserrec.html68
-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.html2
-rw-r--r--docs/module-doc/ctables_8h-source.html2
-rw-r--r--docs/module-doc/ctables_8h.html2
-rw-r--r--docs/module-doc/files.html2
-rw-r--r--docs/module-doc/functions.html62
-rw-r--r--docs/module-doc/globals.html50
-rw-r--r--docs/module-doc/graph_legend.html2
-rw-r--r--docs/module-doc/hierarchy.html2
-rw-r--r--docs/module-doc/inherits.html2
-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.html18
-rw-r--r--docs/module-doc/mode_8h-source.html4
-rw-r--r--docs/module-doc/mode_8h.html2
-rw-r--r--docs/module-doc/modules_8cpp-source.html830
-rw-r--r--docs/module-doc/modules_8cpp.html270
-rw-r--r--docs/module-doc/modules_8h-source.html443
-rw-r--r--docs/module-doc/modules_8h.html376
-rw-r--r--docs/module-doc/namespaces.html2
-rw-r--r--docs/module-doc/namespacestd.html2
-rw-r--r--docs/module-doc/servers_8cpp-source.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.html2
-rw-r--r--docs/module-doc/users_8cpp-source.html70
-rw-r--r--docs/module-doc/users_8cpp.html2
-rw-r--r--docs/module-doc/users_8h-source.html2
-rw-r--r--docs/module-doc/users_8h.html2
-rw-r--r--docs/module-doc/xline_8h-source.html2
-rw-r--r--docs/module-doc/xline_8h.html2
104 files changed, 2054 insertions, 1364 deletions
diff --git a/docs/module-doc/annotated.html b/docs/module-doc/annotated.html
index 95945ac47..abb0d3b07 100644
--- a/docs/module-doc/annotated.html
+++ b/docs/module-doc/annotated.html
@@ -38,7 +38,7 @@
<tr><td class="indexkey"><a class="el" href="classXLine.html">XLine</a></td><td class="indexvalue">XLine is the base class for ban lines such as G lines and K lines</td></tr>
<tr><td class="indexkey"><a class="el" href="classZLine.html">ZLine</a></td><td class="indexvalue">ZLine class</td></tr>
</table>
-<hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:31 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/base_8h-source.html b/docs/module-doc/base_8h-source.html
index 6e698c0a5..7d9860bf8 100644
--- a/docs/module-doc/base_8h-source.html
+++ b/docs/module-doc/base_8h-source.html
@@ -31,20 +31,20 @@
00030
<a name="l00038"></a><a class="code" href="classExtensible.html">00038</a> <span class="keyword">class </span><a class="code" href="classExtensible.html">Extensible</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
00039 {
-<a name="l00042"></a><a class="code" href="classExtensible.html#o0">00042</a> std::map&lt;std::string,VoidPointer&gt; <a class="code" href="classExtensible.html#o0">Extension_Items</a>;
+<a name="l00042"></a><a class="code" href="classExtensible.html#o0">00042</a> std::map&lt;std::string,char*&gt; <a class="code" href="classExtensible.html#o0">Extension_Items</a>;
00043
00044 <span class="keyword">public</span>:
00045
-00052 <span class="keywordtype">bool</span> <a class="code" href="classExtensible.html#a0">Extend</a>(std::string key, VoidPointer p);
+00052 <span class="keywordtype">bool</span> <a class="code" href="classExtensible.html#a0">Extend</a>(std::string key, <span class="keywordtype">char</span>* p);
00053
00059 <span class="keywordtype">bool</span> <a class="code" href="classExtensible.html#a1">Shrink</a>(std::string key);
00060
-00065 <a class="code" href="base_8h.html#a0">VoidPointer</a> <a class="code" href="classExtensible.html#a2">GetExt</a>(std::string key);
+00065 <span class="keywordtype">char</span>* <a class="code" href="classExtensible.html#a2">GetExt</a>(std::string key);
00066 };
00067
00068 <span class="preprocessor">#endif</span>
00069 <span class="preprocessor"></span>
-</pre></div><hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:22 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 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 8cc0bcf2c..3aa70b0db 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 Fri Apr 30 15:46:23 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:01 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 e3ae0f437..aee88a231 100644
--- a/docs/module-doc/channels_8cpp-source.html
+++ b/docs/module-doc/channels_8cpp-source.html
@@ -106,7 +106,7 @@
00098 }
00099 <span class="keywordflow">return</span> std::string(<span class="stringliteral">""</span>);
00100 }
-</pre></div><hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:22 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 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 d5dac0da3..45ffc4333 100644
--- a/docs/module-doc/channels_8cpp.html
+++ b/docs/module-doc/channels_8cpp.html
@@ -55,7 +55,7 @@ Definition at line <a class="el" href="channels_8cpp-source.html#l00010">10</a>
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>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:23 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:01 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-source.html b/docs/module-doc/channels_8h-source.html
index a69f69dfa..9812ef9b2 100644
--- a/docs/module-doc/channels_8h-source.html
+++ b/docs/module-doc/channels_8h-source.html
@@ -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 Fri Apr 30 15:46:22 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 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 560b9f7a5..491130e8f 100644
--- a/docs/module-doc/channels_8h.html
+++ b/docs/module-doc/channels_8h.html
@@ -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 Fri Apr 30 15:46:24 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:02 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-members.html b/docs/module-doc/classAdmin-members.html
index deacaca38..1016ac41e 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 Fri Apr 30 15:46:32 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classAdmin.html b/docs/module-doc/classAdmin.html
index 6e1d3abb7..6682ae817 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#l00080">80</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#l00100">100</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#l00080">80</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00109">109</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#l00137">137</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00109 : <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>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) { };
</pre></div> </td>
</tr>
</table>
@@ -107,7 +107,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00109">109</a>
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00083">83</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#l00103">103</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#l00083">83</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00083">83</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#l00103">103</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#l00083">83</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00083">83</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#l00103">103</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 Fri Apr 30 15:46:32 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classBanItem-members.html b/docs/module-doc/classBanItem-members.html
index 2418b5278..5a4677502 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 Fri Apr 30 15:46:32 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classBanItem.html b/docs/module-doc/classBanItem.html
index a01f2a750..9557c93ac 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 Fri Apr 30 15:46:32 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classConfigReader-members.html b/docs/module-doc/classConfigReader-members.html
index 52675b464..683542e9d 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 Fri Apr 30 15:46:35 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classConfigReader.html b/docs/module-doc/classConfigReader.html
index 0b3e2ad20..34229d103 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#l00518">518</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#l00588">588</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#l00343">343</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#l00385">385</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00526">cache</a>, and <a class="el" href="modules_8h-source.html#l00529">error</a>.
+References <a class="el" href="modules_8h-source.html#l00596">cache</a>, and <a class="el" href="modules_8h-source.html#l00599">error</a>.
<p>
-<div class="fragment"><pre>00344 {
-00345 this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00346 this-&gt;<a class="code" href="classConfigReader.html#n1">error</a> = LoadConf(CONFIG_FILE,this-&gt;cache);
-00347 }
+<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 }
</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#l00357">357</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-source.html#l00526">cache</a>, and <a class="el" href="modules_8h-source.html#l00529">error</a>.
+References <a class="el" href="modules_8h-source.html#l00596">cache</a>, and <a class="el" href="modules_8h-source.html#l00599">error</a>.
<p>
-<div class="fragment"><pre>00358 {
-00359 this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00360 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>);
-00361 };
+<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 };
</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#l00350">350</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#l00392">392</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00526">cache</a>.
+References <a class="el" href="modules_8h-source.html#l00596">cache</a>.
<p>
-<div class="fragment"><pre>00351 {
-00352 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>)
-00353 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>;
-00354 }
+<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 }
</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#l00375">375</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#l00417">417</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00376 {
-00377 <span class="keywordflow">return</span> EnumConf(cache,tag.c_str());
-00378 }
+<div class="fragment"><pre>00418 {
+00419 <span class="keywordflow">return</span> EnumConf(cache,tag.c_str());
+00420 }
</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#l00380">380</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#l00422">422</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00381 {
-00382 <span class="keywordflow">return</span> EnumValues(cache, tag.c_str(), index);
-00383 }
+<div class="fragment"><pre>00423 {
+00424 <span class="keywordflow">return</span> EnumValues(cache, tag.c_str(), index);
+00425 }
</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#l00363">363</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-<div class="fragment"><pre>00364 {
-00365 <span class="keywordtype">char</span> val[MAXBUF];
-00366 <span class="keywordtype">char</span> t[MAXBUF];
-00367 <span class="keywordtype">char</span> n[MAXBUF];
-00368 strncpy(t,tag.c_str(),MAXBUF);
-00369 strncpy(n,name.c_str(),MAXBUF);
-00370 ReadConf(cache,t,n,index,val);
-00371 <span class="keywordflow">return</span> std::string(val);
-00372 }
+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 }
</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#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#l00427">427</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00529">error</a>.
+References <a class="el" href="modules_8h-source.html#l00599">error</a>.
<p>
-<div class="fragment"><pre>00386 {
-00387 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#n1">error</a>;
-00388 }
+<div class="fragment"><pre>00428 {
+00429 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#n1">error</a>;
+00430 }
</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#l00526">526</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#l00596">596</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#l00343">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00350">~ConfigReader()</a>. </td>
+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>
</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#l00529">529</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#l00599">599</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#l00343">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00385">Verify()</a>. </td>
+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>
</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 Fri Apr 30 15:46:35 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classConnectClass-members.html b/docs/module-doc/classConnectClass-members.html
index 277cfa703..24b8fde34 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 Fri Apr 30 15:46:35 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classConnectClass.html b/docs/module-doc/classConnectClass.html
index b3fc93555..e23e9f1ad 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 Fri Apr 30 15:46:35 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classExemptItem-members.html b/docs/module-doc/classExemptItem-members.html
index 91fb10549..b36a01af2 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 Fri Apr 30 15:46:37 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classExemptItem.html b/docs/module-doc/classExemptItem.html
index fe83ba73f..6c6544ef4 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 Fri Apr 30 15:46:37 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classExtMode-members.html b/docs/module-doc/classExtMode-members.html
index 0d1d4a42f..462ff320c 100644
--- a/docs/module-doc/classExtMode-members.html
+++ b/docs/module-doc/classExtMode-members.html
@@ -10,13 +10,14 @@
<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="classExtMode.html#a0">ExtMode</a>(char mc, int ty, bool oper, int p_on, int p_off)</td><td><a class="el" href="classExtMode.html">ExtMode</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classExtMode.html#m5">list</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#m0">modechar</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#m4">needsoper</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#m3">params_when_off</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#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 Fri Apr 30 15:46:38 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classExtMode.html b/docs/module-doc/classExtMode.html
index eaf57547f..751aad764 100644
--- a/docs/module-doc/classExtMode.html
+++ b/docs/module-doc/classExtMode.html
@@ -24,6 +24,7 @@
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classExtMode.html#m2">params_when_on</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classExtMode.html#m3">params_when_off</a></td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classExtMode.html#m4">needsoper</a></td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classExtMode.html#m5">list</a></td></tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="ExtMode::ExtMode"></a><p>
@@ -81,13 +82,37 @@
<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>.
+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>.
<p>
-<div class="fragment"><pre>00029 : <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>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) { };
</pre></div> </td>
</tr>
</table>
<hr><h2>Member Data Documentation</h2>
+<a name="m5" doxytag="ExtMode::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"> bool ExtMode::list
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00029">29</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+ </tr>
+</table>
<a name="m0" doxytag="ExtMode::modechar"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
@@ -210,7 +235,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00025">25</a> o
</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 Fri Apr 30 15:46:38 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classExtMode__coll__graph.gif b/docs/module-doc/classExtMode__coll__graph.gif
index 11260f705..ae929f14e 100644
--- a/docs/module-doc/classExtMode__coll__graph.gif
+++ b/docs/module-doc/classExtMode__coll__graph.gif
Binary files differ
diff --git a/docs/module-doc/classExtensible-members.html b/docs/module-doc/classExtensible-members.html
index fc7408412..2fb6d28fb 100644
--- a/docs/module-doc/classExtensible-members.html
+++ b/docs/module-doc/classExtensible-members.html
@@ -9,12 +9,12 @@
<hr><h1>Extensible Member List</h1>This is the complete list of members for <a class="el" href="classExtensible.html">Extensible</a>, including all inherited members.<table>
<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="classExtensible.html#a0">Extend</a>(std::string key, VoidPointer 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#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#o0">Extension_Items</a></td><td><a class="el" href="classExtensible.html">Extensible</a></td><td><code> [private]</code></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="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 Fri Apr 30 15:46:38 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classExtensible.html b/docs/module-doc/classExtensible.html
index ff602dfad..ee9c6bdde 100644
--- a/docs/module-doc/classExtensible.html
+++ b/docs/module-doc/classExtensible.html
@@ -29,14 +29,14 @@ Inheritance diagram for Extensible:<p><center><img src="classExtensible__inherit
<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classExtensible-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="classExtensible.html#a0">Extend</a> (std::string key, <a class="el" href="base_8h.html#a0">VoidPointer</a> p)</td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classExtensible.html#a0">Extend</a> (std::string key, char *p)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Extend an Extensible class.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classExtensible.html#a1">Shrink</a> (std::string key)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Shrink an Extensible class.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top><a class="el" href="base_8h.html#a0">VoidPointer</a>&nbsp;</td><td valign=bottom><a class="el" href="classExtensible.html#a2">GetExt</a> (std::string key)</td></tr>
+<tr><td nowrap align=right valign=top>char *&nbsp;</td><td valign=bottom><a class="el" href="classExtensible.html#a2">GetExt</a> (std::string key)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get an extension item.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
-<tr><td nowrap align=right valign=top>std::map&lt; std::string, <a class="el" href="base_8h.html#a0">VoidPointer</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="classExtensible.html#o0">Extension_Items</a></td></tr>
+<tr><td nowrap align=right valign=top>std::map&lt; std::string, char * &gt;&nbsp;</td><td valign=bottom><a class="el" href="classExtensible.html#o0">Extension_Items</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Private data store.</em> <a href="#o0"></a><em></em></font><br><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
@@ -61,7 +61,7 @@ Definition at line <a class="el" href="base_8h-source.html#l00038">38</a> of fil
<tr>
<td></td>
<td></td>
- <td class="md" nowrap><a class="el" href="base_8h.html#a0">VoidPointer</a>&nbsp;</td>
+ <td class="md" nowrap>char *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>p</em></td>
</tr>
<tr>
@@ -93,7 +93,7 @@ You must provide a key to store the data as, and a void* to the data (typedef Vo
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
- <td class="md" nowrap valign="top"> <a class="el" href="base_8h.html#a0">VoidPointer</a> Extensible::GetExt </td>
+ <td class="md" nowrap valign="top"> char* Extensible::GetExt </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">std::string&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>key</em> </td>
@@ -156,7 +156,7 @@ You must provide a key name. The given key name will be removed from the classes
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
- <td class="md" nowrap valign="top"> std::map&lt;std::string,<a class="el" href="base_8h.html#a0">VoidPointer</a>&gt; Extensible::Extension_Items<code> [private]</code>
+ <td class="md" nowrap valign="top"> std::map&lt;std::string,char*&gt; Extensible::Extension_Items<code> [private]</code>
</table>
</td>
</tr>
@@ -178,7 +178,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 Fri Apr 30 15:46:38 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classExtensible__coll__graph.gif b/docs/module-doc/classExtensible__coll__graph.gif
index 50eece365..3c4842752 100644
--- a/docs/module-doc/classExtensible__coll__graph.gif
+++ b/docs/module-doc/classExtensible__coll__graph.gif
Binary files differ
diff --git a/docs/module-doc/classFileReader-members.html b/docs/module-doc/classFileReader-members.html
index 2c1eb3fb6..80a52cb41 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 Fri Apr 30 15:46:39 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classFileReader.html b/docs/module-doc/classFileReader.html
index aaabafca3..4d53881cf 100644
--- a/docs/module-doc/classFileReader.html
+++ b/docs/module-doc/classFileReader.html
@@ -37,7 +37,7 @@ Inheritance diagram for FileReader:<p><center><img src="classFileReader__inherit
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a6">FileSize</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the size of the file in lines.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
-<tr><td nowrap align=right valign=top><a class="el" href="modules_8h.html#a10">file_cache</a>&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#o0">fc</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="classFileReader.html#o0">fc</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Caches a text file into memory and can be used to retrieve lines from it.
@@ -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#l00578">578</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#l00648">648</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#l00398">398</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#l00440">440</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00399 {
-00400 }
+<div class="fragment"><pre>00441 {
+00442 }
</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#l00391">391</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#l00433">433</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00580">fc</a>, and <a class="el" href="modules_8h-source.html#l00030">file_cache</a>.
+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>.
<p>
-<div class="fragment"><pre>00392 {
-00393 <a class="code" href="modules_8h.html#a10">file_cache</a> c;
-00394 readfile(c,filename.c_str());
-00395 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
-00396 }
+<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 }
</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#l00410">410</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00452">452</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00411 {
-00412 }
+<div class="fragment"><pre>00453 {
+00454 }
</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#l00414">414</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00456">456</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00580">fc</a>.
+References <a class="el" href="modules_8h-source.html#l00650">fc</a>.
<p>
-<div class="fragment"><pre>00415 {
-00416 <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#o0">fc</a>.size() == 0)
-00417 {
-00418 <span class="keywordflow">return</span>(false);
-00419 }
-00420 <span class="keywordflow">else</span>
-00421 {
-00422 <span class="keywordflow">return</span>(true);
-00423 }
-00424 }
+<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 }
</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#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#l00475">475</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00580">fc</a>.
+References <a class="el" href="modules_8h-source.html#l00650">fc</a>.
<p>
-<div class="fragment"><pre>00434 {
-00435 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>.size();
-00436 }
+<div class="fragment"><pre>00476 {
+00477 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>.size();
+00478 }
</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#l00426">426</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#l00468">468</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00580">fc</a>.
+References <a class="el" href="modules_8h-source.html#l00650">fc</a>.
<p>
-<div class="fragment"><pre>00427 {
-00428 <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#o0">fc</a>.size()))
-00429 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-00430 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>[x];
-00431 }
+<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 }
</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#l00402">402</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00444">444</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h-source.html#l00580">fc</a>, and <a class="el" href="modules_8h-source.html#l00030">file_cache</a>.
+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>.
<p>
-<div class="fragment"><pre>00403 {
-00404 <a class="code" href="modules_8h.html#a10">file_cache</a> c;
-00405 readfile(c,filename.c_str());
-00406 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
-00407 }
+<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 }
</pre></div> </td>
</tr>
</table>
@@ -338,7 +338,7 @@ References <a class="el" href="modules_8h-source.html#l00580">fc</a>, and <a cla
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
- <td class="md" nowrap valign="top"> <a class="el" href="modules_8h.html#a10">file_cache</a> FileReader::fc<code> [private]</code>
+ <td class="md" nowrap valign="top"> <a class="el" href="modules_8h.html#a22">file_cache</a> FileReader::fc<code> [private]</code>
</table>
</td>
</tr>
@@ -353,14 +353,14 @@ References <a class="el" href="modules_8h-source.html#l00580">fc</a>, and <a cla
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00580">580</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#l00650">650</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#l00414">Exists()</a>, <a class="el" href="modules_8cpp-source.html#l00391">FileReader()</a>, <a class="el" href="modules_8cpp-source.html#l00433">FileSize()</a>, <a class="el" href="modules_8cpp-source.html#l00426">GetLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00402">LoadFile()</a>. </td>
+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>
</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 Fri Apr 30 15:46:39 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classGLine-members.html b/docs/module-doc/classGLine-members.html
index 17362de37..97ae8ec23 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 Fri Apr 30 15:46:39 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classGLine.html b/docs/module-doc/classGLine.html
index 7b2763fa1..8c9d2c083 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 Fri Apr 30 15:46:39 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classHostItem-members.html b/docs/module-doc/classHostItem-members.html
index 820dc104d..ab3381af1 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 Fri Apr 30 15:46:40 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classHostItem.html b/docs/module-doc/classHostItem.html
index 8c0cebbfe..66bff7697 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 Fri Apr 30 15:46:40 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classInviteItem-members.html b/docs/module-doc/classInviteItem-members.html
index 494fed463..06d098a1f 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 Fri Apr 30 15:46:41 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classInviteItem.html b/docs/module-doc/classInviteItem.html
index 5618ddffc..cd80bfd34 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 Fri Apr 30 15:46:41 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classInvited-members.html b/docs/module-doc/classInvited-members.html
index 68c2ebfae..ae62ac75b 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 Fri Apr 30 15:46:41 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classInvited.html b/docs/module-doc/classInvited.html
index 2d98a2710..872eeeb3e 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 Fri Apr 30 15:46:41 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classKLine-members.html b/docs/module-doc/classKLine-members.html
index 7308897e2..96544cae5 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 Fri Apr 30 15:46:42 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classKLine.html b/docs/module-doc/classKLine.html
index 1597d97e0..5e304ccee 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 Fri Apr 30 15:46:42 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classModeParameter-members.html b/docs/module-doc/classModeParameter-members.html
index df1b6703c..12b409bc6 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 Fri Apr 30 15:46:43 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classModeParameter.html b/docs/module-doc/classModeParameter.html
index 7b94a7613..ac9464f44 100644
--- a/docs/module-doc/classModeParameter.html
+++ b/docs/module-doc/classModeParameter.html
@@ -114,7 +114,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00050">chanrec::Set
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
-<hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:43 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classModule-members.html b/docs/module-doc/classModule-members.html
index 16eb009b3..69880c1c2 100644
--- a/docs/module-doc/classModule-members.html
+++ b/docs/module-doc/classModule-members.html
@@ -11,6 +11,7 @@
<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="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#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>
@@ -29,7 +30,7 @@
<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 Fri Apr 30 15:46:44 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classModule.html b/docs/module-doc/classModule.html
index a931bf27e..cd2fe531f 100644
--- a/docs/module-doc/classModule.html
+++ b/docs/module-doc/classModule.html
@@ -44,7 +44,7 @@ Inheritance diagram for Module:<p><center><img src="classModule__inherit__graph.
<tr><td>&nbsp;</td><td><font size=-1><em>Called on rehash.</em> <a href="#a9"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a10">OnServerRaw</a> (std::string &amp;raw, bool inbound, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Called when a raw command is transmitted or received.</em> <a href="#a10"></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="classModule.html#a11">OnExtendedMode</a> (<a class="el" href="classuserrec.html">userrec</a> *user, void *target, char modechar, int type, bool mode_on, <a class="el" href="modules_8h.html#a11">string_list</a> &amp;params)</td></tr>
+<tr><td nowrap align=right valign=top>virtual int&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a11">OnExtendedMode</a> (<a class="el" href="classuserrec.html">userrec</a> *user, void *target, char modechar, int type, bool mode_on, <a class="el" href="modules_8h.html#a23">string_list</a> &amp;params)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Called whenever an extended mode is to be processed.</em> <a href="#a11"></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#a12">OnUserPreJoin</a> (<a class="el" href="classuserrec.html">userrec</a> *user, <a class="el" href="classchanrec.html">chanrec</a> *chan, const char *cname)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Called whenever a user is about to join a channel, before any processing is done.</em> <a href="#a12"></a><em></em></font><br><br></td></tr>
@@ -60,6 +60,8 @@ Inheritance diagram for Module:<p><center><img src="classModule__inherit__graph.
<tr><td>&nbsp;</td><td><font size=-1><em>Called whenever a user is about to NOTICE A user or a channel, before any processing is done.</em> <a href="#a17"></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#a18">OnUserPreNick</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string newnick)</td></tr>
<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>
</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.
@@ -68,7 +70,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#l00092">92</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#l00112">112</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>
@@ -98,9 +100,9 @@ Default constructor creates a module class.
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00111">111</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#l00139">139</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00111 { }
+<div class="fragment"><pre>00139 { }
</pre></div> </td>
</tr>
</table>
@@ -133,9 +135,9 @@ Default destructor destroys a module class.
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00112">112</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#l00140">140</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00112 { }
+<div class="fragment"><pre>00140 { }
</pre></div> </td>
</tr>
</table>
@@ -169,9 +171,78 @@ 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#l00123">123</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#l00151">151</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00123 { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0); }
+<div class="fragment"><pre>00151 { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0); }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a19" doxytag="Module::OnAccessCheck"></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 Module::OnAccessCheck </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>dest</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>channel</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>access_type</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called 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>
+ AC_KICK (0) - A user is being kicked<br>
+ AC_DEOP (1) - a user is being deopped<br>
+ AC_OP (2) - a user is being opped<br>
+ AC_VOICE (3) - a user is being voiced<br>
+ AC_DEVOICE (4) - a user is being devoiced<br>
+ AC_HALFOP (5) - a user is being halfopped<br>
+ AC_DEHALFOP (6) - a user is being dehalfopped<br>
+ AC_INVITE (7) - a user is being invited<br>
+ AC_GENERAL_MODE (8) - a user channel mode is being changed<br>
+ 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>.
+<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>; };
</pre></div> </td>
</tr>
</table>
@@ -181,7 +252,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00123">123</a>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
- <td class="md" nowrap valign="top"> bool Module::OnExtendedMode </td>
+ <td class="md" nowrap valign="top"> int Module::OnExtendedMode </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>user</em>, </td>
@@ -213,7 +284,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00123">123</a>
<tr>
<td></td>
<td></td>
- <td class="md" nowrap><a class="el" href="modules_8h.html#a11">string_list</a> &amp;&nbsp;</td>
+ <td class="md" nowrap><a class="el" href="modules_8h.html#a23">string_list</a> &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>params</em></td>
</tr>
<tr>
@@ -236,11 +307,11 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00123">123</a>
<p>
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#a20">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.
+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#l00122">122</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#l00150">150</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00122 { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+<div class="fragment"><pre>00150 { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
</pre></div> </td>
</tr>
</table>
@@ -275,9 +346,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#l00125">125</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#l00153">153</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00125 { };
+<div class="fragment"><pre>00153 { };
</pre></div> </td>
</tr>
</table>
@@ -311,9 +382,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#l00124">124</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#l00152">152</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00124 { };
+<div class="fragment"><pre>00152 { };
</pre></div> </td>
</tr>
</table>
@@ -347,9 +418,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#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#l00146">146</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00118 { }
+<div class="fragment"><pre>00146 { }
</pre></div> </td>
</tr>
</table>
@@ -383,9 +454,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#l00117">117</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#l00145">145</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00117 { }
+<div class="fragment"><pre>00145 { }
</pre></div> </td>
</tr>
</table>
@@ -418,9 +489,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#l00119">119</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#l00147">147</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00119 { }
+<div class="fragment"><pre>00147 { }
</pre></div> </td>
</tr>
</table>
@@ -469,9 +540,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#l00120">120</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#l00148">148</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00120 { }
+<div class="fragment"><pre>00148 { }
</pre></div> </td>
</tr>
</table>
@@ -505,9 +576,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#l00113">113</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#l00141">141</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00113 { }
+<div class="fragment"><pre>00141 { }
</pre></div> </td>
</tr>
</table>
@@ -550,9 +621,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#l00115">115</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#l00143">143</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00115 { }
+<div class="fragment"><pre>00143 { }
</pre></div> </td>
</tr>
</table>
@@ -595,9 +666,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#l00116">116</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#l00144">144</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00116 { }
+<div class="fragment"><pre>00144 { }
</pre></div> </td>
</tr>
</table>
@@ -648,9 +719,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#l00121">121</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#l00149">149</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00121 { <span class="keywordflow">return</span> 0; }
+<div class="fragment"><pre>00149 { <span class="keywordflow">return</span> 0; }
</pre></div> </td>
</tr>
</table>
@@ -705,9 +776,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#l00127">127</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#l00155">155</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00127 { <span class="keywordflow">return</span> 0; };
+<div class="fragment"><pre>00155 { <span class="keywordflow">return</span> 0; };
</pre></div> </td>
</tr>
</table>
@@ -750,9 +821,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#l00129">129</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#l00157">157</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00129 { <span class="keywordflow">return</span> 0; };
+<div class="fragment"><pre>00157 { <span class="keywordflow">return</span> 0; };
</pre></div> </td>
</tr>
</table>
@@ -807,9 +878,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#l00128">128</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#l00156">156</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00128 { <span class="keywordflow">return</span> 0; };
+<div class="fragment"><pre>00156 { <span class="keywordflow">return</span> 0; };
</pre></div> </td>
</tr>
</table>
@@ -843,9 +914,9 @@ 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#l00114">114</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#l00142">142</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00114 { }
+<div class="fragment"><pre>00142 { }
</pre></div> </td>
</tr>
</table>
@@ -888,15 +959,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#l00126">126</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#l00154">154</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00126 { };
+<div class="fragment"><pre>00154 { };
</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 Fri Apr 30 15:46:44 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classModuleFactory-members.html b/docs/module-doc/classModuleFactory-members.html
index 2bc4751f8..0d30f798e 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 Fri Apr 30 15:46:45 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classModuleFactory.html b/docs/module-doc/classModuleFactory.html
index 296be3d3c..96e51e3cc 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#l00633">633</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#l00703">703</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#l00633">633</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00636">636</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#l00706">706</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
<p>
-<div class="fragment"><pre>00636 { }
+<div class="fragment"><pre>00706 { }
</pre></div> </td>
</tr>
</table>
@@ -95,9 +95,9 @@ Definition at line <a class="el" href="modules_8h-source.html#l00636">636</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00637">637</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#l00707">707</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
<p>
-<div class="fragment"><pre>00637 { }
+<div class="fragment"><pre>00707 { }
</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 Fri Apr 30 15:46:45 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classQLine-members.html b/docs/module-doc/classQLine-members.html
index 477b1346a..9ff708c96 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 Fri Apr 30 15:46:46 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classQLine.html b/docs/module-doc/classQLine.html
index 79e409ce1..888e58305 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 Fri Apr 30 15:46:46 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classServer-members.html b/docs/module-doc/classServer-members.html
index 552fe6f2b..a7bc180f6 100644
--- a/docs/module-doc/classServer-members.html
+++ b/docs/module-doc/classServer-members.html
@@ -7,43 +7,45 @@
<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>Server Member List</h1>This is the complete list of members for <a class="el" href="classServer.html">Server</a>, including all inherited members.<table>
- <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a21">AddCommand</a>(char *cmd, handlerfunc f, char flags, int minparams)</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#a20">AddExtendedMode</a>(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off)</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#a23">AddCommand</a>(char *cmd, handlerfunc f, char flags, int minparams)</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#a22">AddExtendedListMode</a>(char modechar)</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#a21">AddExtendedMode</a>(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off)</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="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="classServer.html#a29">CallCommandHandler</a>(std::string commandname, char **parameters, int pcnt, userrec *user)</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#a31">ChangeGECOS</a>(userrec *user, std::string gecos)</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#a30">ChangeHost</a>(userrec *user, std::string host)</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#a26">ChangeUserNick</a>(userrec *user, std::string nickname)</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#a31">CallCommandHandler</a>(std::string commandname, char **parameters, int pcnt, userrec *user)</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#a33">ChangeGECOS</a>(userrec *user, std::string gecos)</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#a32">ChangeHost</a>(userrec *user, std::string host)</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#a28">ChangeUserNick</a>(userrec *user, std::string nickname)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a16">ChanMode</a>(userrec *User, chanrec *Chan)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="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="classServer.html#a9">CommonChannels</a>(userrec *u1, userrec *u2)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a13">CountUsers</a>(chanrec *c)</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#a15">FindChannel</a>(std::string channel)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a14">FindNick</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#a19">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#a18">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#a17">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#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#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#a32">IsUlined</a>(std::string server)</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#a24">JoinUserToChannel</a>(userrec *user, std::string cname, std::string key)</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>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a26">JoinUserToChannel</a>(userrec *user, std::string cname, std::string key)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a3">Log</a>(int level, std::string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
- <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a28">MatchText</a>(std::string sliteral, std::string spattern)</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#a25">PartUserFromChannel</a>(userrec *user, std::string cname, std::string reason)</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#a27">QuitUser</a>(userrec *user, std::string reason)</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#a30">MatchText</a>(std::string sliteral, std::string spattern)</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#a27">PartUserFromChannel</a>(userrec *user, std::string cname, std::string reason)</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#a29">QuitUser</a>(userrec *user, std::string reason)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a4">Send</a>(int Socket, std::string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a8">SendChannel</a>(userrec *User, chanrec *Channel, std::string s, bool IncludeSender)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a10">SendCommon</a>(userrec *User, std::string text, bool IncludeSender)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a6">SendFrom</a>(int Socket, userrec *User, std::string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
- <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a22">SendMode</a>(char **parameters, int pcnt, userrec *user)</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#a24">SendMode</a>(char **parameters, int pcnt, userrec *user)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a2">SendOpers</a>(std::string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a5">SendServ</a>(int Socket, std::string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a7">SendTo</a>(userrec *Source, userrec *Dest, std::string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
- <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a23">SendToModeMask</a>(std::string modes, int flags, std::string text)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a25">SendToModeMask</a>(std::string modes, int flags, std::string text)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a11">SendWallops</a>(userrec *User, std::string text)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a0">Server</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="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 Fri Apr 30 15:46:47 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classServer.html b/docs/module-doc/classServer.html
index 770d43736..1486d7d17 100644
--- a/docs/module-doc/classServer.html
+++ b/docs/module-doc/classServer.html
@@ -56,38 +56,42 @@ Inheritance diagram for Server:<p><center><img src="classServer__inherit__graph.
<tr><td>&nbsp;</td><td><font size=-1><em>Attempts to look up a channel and return a pointer to it.</em> <a href="#a15"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual std::string&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a16">ChanMode</a> (<a class="el" href="classuserrec.html">userrec</a> *User, <a class="el" href="classchanrec.html">chanrec</a> *Chan)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Attempts to look up a user's privilages on a channel.</em> <a href="#a16"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual std::string&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a17">GetServerName</a> ()</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Returns the server name of the server where the module is loaded.</em> <a href="#a17"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual std::string&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a18">GetNetworkName</a> ()</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Returns the network name, global to all linked servers.</em> <a href="#a18"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual <a class="el" href="classAdmin.html">Admin</a>&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a19">GetAdmin</a> ()</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Returns the information of the server as returned by the /ADMIN command.</em> <a href="#a19"></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#a20">AddExtendedMode</a> (char modechar, int type, bool requires_oper, int params_when_on, int params_when_off)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Adds an extended mode letter which is parsed by a module This allows modules to add extra mode letters, e.g.</em> <a href="#a20"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a21">AddCommand</a> (char *cmd, handlerfunc f, char flags, int minparams)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Adds a command to the command table.</em> <a href="#a21"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a22">SendMode</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sends a servermode.</em> <a href="#a22"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a23">SendToModeMask</a> (std::string modes, int flags, std::string text)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sends to all users matching a mode mask You must specify one or more usermodes as the first parameter.</em> <a href="#a23"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual <a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a24">JoinUserToChannel</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string cname, std::string key)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Forces a user to join a channel.</em> <a href="#a24"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual <a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a25">PartUserFromChannel</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string cname, std::string reason)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Forces a user to part a channel.</em> <a href="#a25"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a26">ChangeUserNick</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string nickname)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Forces a user nickchange.</em> <a href="#a26"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a27">QuitUser</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string reason)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Forces a user to quit with the specified reason.</em> <a href="#a27"></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#a28">MatchText</a> (std::string sliteral, std::string spattern)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Matches text against a glob pattern.</em> <a href="#a28"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a29">CallCommandHandler</a> (std::string commandname, char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Calls the handler for a command, either implemented by the core or by another module.</em> <a href="#a29"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a30">ChangeHost</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string host)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Change displayed hostname of a user.</em> <a href="#a30"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a31">ChangeGECOS</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string gecos)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Change GECOS (fullname) of a user.</em> <a href="#a31"></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#a32">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="#a32"></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#a17">IsOnChannel</a> (<a class="el" href="classuserrec.html">userrec</a> *User, <a class="el" href="classchanrec.html">chanrec</a> *Chan)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Checks if a user is on a channel.</em> <a href="#a17"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual std::string&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a18">GetServerName</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the server name of the server where the module is loaded.</em> <a href="#a18"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual std::string&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a19">GetNetworkName</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the network name, global to all linked servers.</em> <a href="#a19"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classAdmin.html">Admin</a>&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a20">GetAdmin</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the information of the server as returned by the /ADMIN command.</em> <a href="#a20"></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#a21">AddExtendedMode</a> (char modechar, int type, bool requires_oper, int params_when_on, int params_when_off)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Adds an extended mode letter which is parsed by a module.</em> <a href="#a21"></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#a22">AddExtendedListMode</a> (char modechar)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Adds an extended mode letter which is parsed by a module and handled in a list fashion.</em> <a href="#a22"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a23">AddCommand</a> (char *cmd, handlerfunc f, char flags, int minparams)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Adds a command to the command table.</em> <a href="#a23"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a24">SendMode</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends a servermode.</em> <a href="#a24"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a25">SendToModeMask</a> (std::string modes, int flags, std::string text)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends to all users matching a mode mask You must specify one or more usermodes as the first parameter.</em> <a href="#a25"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a26">JoinUserToChannel</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string cname, std::string key)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Forces a user to join a channel.</em> <a href="#a26"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a27">PartUserFromChannel</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string cname, std::string reason)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Forces a user to part a channel.</em> <a href="#a27"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a28">ChangeUserNick</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string nickname)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Forces a user nickchange.</em> <a href="#a28"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a29">QuitUser</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string reason)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Forces a user to quit with the specified reason.</em> <a href="#a29"></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#a30">MatchText</a> (std::string sliteral, std::string spattern)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Matches text against a glob pattern.</em> <a href="#a30"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a31">CallCommandHandler</a> (std::string commandname, char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Calls the handler for a command, either implemented by the core or by another module.</em> <a href="#a31"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a32">ChangeHost</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string host)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Change displayed hostname of a user.</em> <a href="#a32"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a33">ChangeGECOS</a> (<a class="el" href="classuserrec.html">userrec</a> *user, std::string gecos)</td></tr>
+<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>
</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.
@@ -96,7 +100,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#l00252">252</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#l00295">295</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>
@@ -126,10 +130,10 @@ Default constructor.
<p>
Creates a Server object.
<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>.
+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>.
<p>
-<div class="fragment"><pre>00136 {
-00137 }
+<div class="fragment"><pre>00165 {
+00166 }
</pre></div> </td>
</tr>
</table>
@@ -162,15 +166,15 @@ Default destructor.
<p>
Destroys a Server object.
<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#l00168">168</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00140 {
-00141 }
+<div class="fragment"><pre>00169 {
+00170 }
</pre></div> </td>
</tr>
</table>
<hr><h2>Member Function Documentation</h2>
-<a name="a21" doxytag="Server::AddCommand"></a><p>
+<a name="a23" doxytag="Server::AddCommand"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -223,17 +227,65 @@ 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#l00197">197</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#l00226">226</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h.html#a13">createcommand()</a>.
+References <a class="el" href="modules_8h.html#a25">createcommand()</a>.
<p>
-<div class="fragment"><pre>00198 {
-00199 <a class="code" href="modules_8h.html#a13">createcommand</a>(cmd,f,flags,minparams);
-00200 }
+<div class="fragment"><pre>00227 {
+00228 <a class="code" href="modules_8h.html#a25">createcommand</a>(cmd,f,flags,minparams);
+00229 }
</pre></div> </td>
</tr>
</table>
-<a name="a20" doxytag="Server::AddExtendedMode"></a><p>
+<a name="a22" doxytag="Server::AddExtendedListMode"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool Server::AddExtendedListMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">char&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>modechar</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Adds an extended mode letter which is parsed by a module and handled in a list fashion.
+<p>
+This call is used to implement modes like +q and +a. The characteristics of these modes are as follows:<p>
+(1) They are ALWAYS on channels, not on users, therefore their type is MT_CHANNEL<p>
+(2) They always take exactly one parameter when being added or removed<p>
+(3) They can be set multiple times, usually on users in channels<p>
+(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>.
+<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>.
+<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 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a21" doxytag="Server::AddExtendedMode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -286,36 +338,36 @@ References <a class="el" href="modules_8h.html#a13">createcommand()</a>.
<td>
<p>
-Adds an extended mode letter which is parsed by a module This allows modules to add extra mode letters, e.g.
+Adds an extended mode letter which is parsed by a module.
<p>
-+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.
+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#l00317">317</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#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#l00093">DoAddExtendedMode()</a>, <a class="el" href="modules_8h-source.html#l00018">MT_CLIENT</a>, and <a class="el" href="modules_8h-source.html#l00019">MT_SERVER</a>.
+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>00318 {
-00319 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#a7">MT_SERVER</a>)
-00320 {
-00321 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
-00322 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00323 }
-00324 <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>))
-00325 {
-00326 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
-00327 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00328 }
-00329 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
-00330 {
-00331 log(DEBUG,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
-00332 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00333 }
-00334 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#a8">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
-00335 }
+<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 }
</pre></div> </td>
</tr>
</table>
-<a name="a29" doxytag="Server::CallCommandHandler"></a><p>
+<a name="a31" doxytag="Server::CallCommandHandler"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -365,17 +417,17 @@ References <a class="el" href="modules_8cpp-source.html#l00093">DoAddExtendedMod
Calls the handler for a command, either implemented by the core or by another module.
<p>
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#a21">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.
+) 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#l00187">187</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#l00216">216</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00188 {
-00189 call_handler(commandname.c_str(),parameters,pcnt,user);
-00190 }
+<div class="fragment"><pre>00217 {
+00218 call_handler(commandname.c_str(),parameters,pcnt,user);
+00219 }
</pre></div> </td>
</tr>
</table>
-<a name="a31" doxytag="Server::ChangeGECOS"></a><p>
+<a name="a33" doxytag="Server::ChangeGECOS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -414,17 +466,17 @@ 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#l00275">275</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="message_8h.html#a10">ChangeName()</a>.
<p>
-<div class="fragment"><pre>00276 {
-00277 <a class="code" href="message_8h.html#a10">ChangeName</a>(user,gecos.c_str());
-00278 }
+<div class="fragment"><pre>00305 {
+00306 <a class="code" href="message_8h.html#a10">ChangeName</a>(user,gecos.c_str());
+00307 }
</pre></div> </td>
</tr>
</table>
-<a name="a30" doxytag="Server::ChangeHost"></a><p>
+<a name="a32" doxytag="Server::ChangeHost"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -463,17 +515,17 @@ 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#l00270">270</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>
References <a class="el" href="message_8h.html#a11">ChangeDisplayedHost()</a>.
<p>
-<div class="fragment"><pre>00271 {
-00272 <a class="code" href="message_8h.html#a11">ChangeDisplayedHost</a>(user,host.c_str());
-00273 }
+<div class="fragment"><pre>00300 {
+00301 <a class="code" href="message_8h.html#a11">ChangeDisplayedHost</a>(user,host.c_str());
+00302 }
</pre></div> </td>
</tr>
</table>
-<a name="a26" doxytag="Server::ChangeUserNick"></a><p>
+<a name="a28" doxytag="Server::ChangeUserNick"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -512,11 +564,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#l00171">171</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#l00200">200</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00172 {
-00173 force_nickchange(user,nickname.c_str());
-00174 }
+<div class="fragment"><pre>00201 {
+00202 force_nickchange(user,nickname.c_str());
+00203 }
</pre></div> </td>
</tr>
</table>
@@ -559,13 +611,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#l00295">295</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#l00324">324</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>00296 {
-00297 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a14">cmode</a>(User,Chan);
-00298 }
+<div class="fragment"><pre>00325 {
+00326 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a14">cmode</a>(User,Chan);
+00327 }
</pre></div> </td>
</tr>
</table>
@@ -608,13 +660,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#l00248">248</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#l00277">277</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>00249 {
-00250 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a0">common_channels</a>(u1,u2) != 0);
-00251 }
+<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 }
</pre></div> </td>
</tr>
</table>
@@ -648,11 +700,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#l00337">337</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>
-<div class="fragment"><pre>00338 {
-00339 <span class="keywordflow">return</span> usercount(c);
-00340 }
+<div class="fragment"><pre>00380 {
+00381 <span class="keywordflow">return</span> usercount(c);
+00382 }
</pre></div> </td>
</tr>
</table>
@@ -686,11 +738,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#l00290">290</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#l00319">319</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00291 {
-00292 <span class="keywordflow">return</span> FindChan(channel.c_str());
-00293 }
+<div class="fragment"><pre>00320 {
+00321 <span class="keywordflow">return</span> FindChan(channel.c_str());
+00322 }
</pre></div> </td>
</tr>
</table>
@@ -724,15 +776,15 @@ 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#l00285">285</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#l00314">314</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00286 {
-00287 <span class="keywordflow">return</span> Find(nick);
-00288 }
+<div class="fragment"><pre>00315 {
+00316 <span class="keywordflow">return</span> Find(nick);
+00317 }
</pre></div> </td>
</tr>
</table>
-<a name="a19" doxytag="Server::GetAdmin"></a><p>
+<a name="a20" doxytag="Server::GetAdmin"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -761,15 +813,15 @@ 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#l00310">310</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>00311 {
-00312 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
-00313 }
+<div class="fragment"><pre>00345 {
+00346 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+00347 }
</pre></div> </td>
</tr>
</table>
-<a name="a18" doxytag="Server::GetNetworkName"></a><p>
+<a name="a19" doxytag="Server::GetNetworkName"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -798,15 +850,15 @@ Returns the network name, global to all linked servers.
<p>
<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>.
+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>00306 {
-00307 <span class="keywordflow">return</span> getnetworkname();
-00308 }
+<div class="fragment"><pre>00340 {
+00341 <span class="keywordflow">return</span> getnetworkname();
+00342 }
</pre></div> </td>
</tr>
</table>
-<a name="a17" doxytag="Server::GetServerName"></a><p>
+<a name="a18" doxytag="Server::GetServerName"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -835,11 +887,11 @@ Returns the server name of the server where the module is loaded.
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00300">300</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>00301 {
-00302 <span class="keywordflow">return</span> getservername();
-00303 }
+<div class="fragment"><pre>00335 {
+00336 <span class="keywordflow">return</span> getservername();
+00337 }
</pre></div> </td>
</tr>
</table>
@@ -873,17 +925,66 @@ 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#l00280">280</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#l00309">309</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>00281 {
-00282 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a13">isnick</a>(nick.c_str()) != 0);
-00283 }
+<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 }
</pre></div> </td>
</tr>
</table>
-<a name="a32" doxytag="Server::IsUlined"></a><p>
+<a name="a17" doxytag="Server::IsOnChannel"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool Server::IsOnChannel </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>User</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Chan</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+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>.
+<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 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a34" doxytag="Server::IsUlined"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -913,17 +1014,17 @@ 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#l00182">182</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#l00211">211</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>00183 {
-00184 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a70">is_uline</a>(server.c_str());
-00185 }
+<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 }
</pre></div> </td>
</tr>
</table>
-<a name="a24" doxytag="Server::JoinUserToChannel"></a><p>
+<a name="a26" doxytag="Server::JoinUserToChannel"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -968,11 +1069,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#l00161">161</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#l00190">190</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00162 {
-00163 <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">true</span>);
-00164 }
+<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 }
</pre></div> </td>
</tr>
</table>
@@ -1015,15 +1116,15 @@ 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#l00192">192</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#l00221">221</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00193 {
-00194 log(level,<span class="stringliteral">"%s"</span>,s.c_str());
-00195 }
+<div class="fragment"><pre>00222 {
+00223 log(level,<span class="stringliteral">"%s"</span>,s.c_str());
+00224 }
</pre></div> </td>
</tr>
</table>
-<a name="a28" doxytag="Server::MatchText"></a><p>
+<a name="a30" doxytag="Server::MatchText"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -1062,18 +1163,18 @@ 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#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#l00177">177</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00149 {
-00150 <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
-00151 strncpy(literal,sliteral.c_str(),MAXBUF);
-00152 strncpy(pattern,spattern.c_str(),MAXBUF);
-00153 <span class="keywordflow">return</span> match(literal,pattern);
-00154 }
+<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 }
</pre></div> </td>
</tr>
</table>
-<a name="a25" doxytag="Server::PartUserFromChannel"></a><p>
+<a name="a27" doxytag="Server::PartUserFromChannel"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -1118,15 +1219,15 @@ 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#l00166">166</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#l00195">195</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00167 {
-00168 <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
-00169 }
+<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 }
</pre></div> </td>
</tr>
</table>
-<a name="a27" doxytag="Server::QuitUser"></a><p>
+<a name="a29" doxytag="Server::QuitUser"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -1167,14 +1268,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#l00176">176</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#l00205">205</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>00177 {
-00178 <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());
-00179 kill_link(user,reason.c_str());
-00180 }
+<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 }
</pre></div> </td>
</tr>
</table>
@@ -1217,11 +1318,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#l00207">207</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#l00236">236</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00208 {
-00209 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-00210 }
+<div class="fragment"><pre>00237 {
+00238 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00239 }
</pre></div> </td>
</tr>
</table>
@@ -1276,18 +1377,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#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#l00265">265</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00237 {
-00238 <span class="keywordflow">if</span> (IncludeSender)
-00239 {
-00240 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00241 }
-00242 <span class="keywordflow">else</span>
-00243 {
-00244 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00245 }
-00246 }
+<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 }
</pre></div> </td>
</tr>
</table>
@@ -1336,18 +1437,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#l00253">253</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-<div class="fragment"><pre>00254 {
-00255 <span class="keywordflow">if</span> (IncludeSender)
-00256 {
-00257 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
-00258 }
-00259 <span class="keywordflow">else</span>
-00260 {
-00261 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
-00262 }
-00263 }
+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 }
</pre></div> </td>
</tr>
</table>
@@ -1396,15 +1497,15 @@ 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#l00217">217</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#l00246">246</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00218 {
-00219 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00220 }
+<div class="fragment"><pre>00247 {
+00248 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00249 }
</pre></div> </td>
</tr>
</table>
-<a name="a22" doxytag="Server::SendMode"></a><p>
+<a name="a24" doxytag="Server::SendMode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -1456,13 +1557,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#l00202">202</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#l00231">231</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8h.html#a14">server_mode()</a>.
+References <a class="el" href="modules_8h.html#a26">server_mode()</a>.
<p>
-<div class="fragment"><pre>00203 {
-00204 <a class="code" href="modules_8h.html#a14">server_mode</a>(parameters,pcnt,user);
-00205 }
+<div class="fragment"><pre>00232 {
+00233 <a class="code" href="modules_8h.html#a26">server_mode</a>(parameters,pcnt,user);
+00234 }
</pre></div> </td>
</tr>
</table>
@@ -1496,11 +1597,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#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#l00172">172</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00144 {
-00145 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
-00146 }
+<div class="fragment"><pre>00173 {
+00174 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
+00175 }
</pre></div> </td>
</tr>
</table>
@@ -1543,11 +1644,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#l00212">212</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>
-<div class="fragment"><pre>00213 {
-00214 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-00215 }
+<div class="fragment"><pre>00242 {
+00243 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00244 }
</pre></div> </td>
</tr>
</table>
@@ -1600,26 +1701,26 @@ 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#l00222">222</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#l00251">251</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>00223 {
-00224 <span class="keywordflow">if</span> (!Source)
-00225 {
-00226 <span class="comment">// if source is NULL, then the message originates from the local server</span>
-00227 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());
-00228 }
-00229 <span class="keywordflow">else</span>
-00230 {
-00231 <span class="comment">// otherwise it comes from the user specified</span>
-00232 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
-00233 }
-00234 }
+<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 }
</pre></div> </td>
</tr>
</table>
-<a name="a23" doxytag="Server::SendToModeMask"></a><p>
+<a name="a25" doxytag="Server::SendToModeMask"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -1666,11 +1767,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#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#l00185">185</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00157 {
-00158 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
-00159 }
+<div class="fragment"><pre>00186 {
+00187 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
+00188 }
</pre></div> </td>
</tr>
</table>
@@ -1713,17 +1814,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#l00265">265</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>00266 {
-00267 WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
-00268 }
+<div class="fragment"><pre>00295 {
+00296 WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
+00297 }
</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 Fri Apr 30 15:46:47 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classVersion-members.html b/docs/module-doc/classVersion-members.html
index 687f219ef..56265788b 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 Fri Apr 30 15:46:49 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classVersion.html b/docs/module-doc/classVersion.html
index 113af7d4e..f925b4a3d 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#l00068">68</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#l00088">88</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#l00068">68</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00105">105</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#l00133">133</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-<div class="fragment"><pre>00105 : <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>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) { };
</pre></div> </td>
</tr>
</table>
@@ -114,7 +114,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00105">105</a>
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00071">71</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#l00091">91</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#l00071">71</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00071">71</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#l00091">91</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#l00071">71</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00071">71</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#l00091">91</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#l00071">71</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00071">71</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#l00091">91</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 Fri Apr 30 15:46:49 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classXLine-members.html b/docs/module-doc/classXLine-members.html
index 230d36435..678c3da6a 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 Fri Apr 30 15:46:50 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classXLine.html b/docs/module-doc/classXLine.html
index f14c4a5f7..a1e13f118 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 Fri Apr 30 15:46:50 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classZLine-members.html b/docs/module-doc/classZLine-members.html
index 167e9462f..be371cfa5 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 Fri Apr 30 15:46:51 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classZLine.html b/docs/module-doc/classZLine.html
index c3ecd93f0..8c2aa4d04 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 Fri Apr 30 15:46:51 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classchanrec-members.html b/docs/module-doc/classchanrec-members.html
index b9844c177..9a7889360 100644
--- a/docs/module-doc/classchanrec-members.html
+++ b/docs/module-doc/classchanrec-members.html
@@ -14,7 +14,7 @@
<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="classchanrec.html#m3">created</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m1">custom_modes</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
- <tr bgcolor="#f0f0f0"><td><a class="el" href="classExtensible.html#a0">Extend</a>(std::string key, VoidPointer 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#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="classchanrec.html#a3">GetModeParameter</a>(char mode)</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m10">inviteonly</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
@@ -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 Fri Apr 30 15:46:33 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classchanrec.html b/docs/module-doc/classchanrec.html
index 88b1de112..31357bc82 100644
--- a/docs/module-doc/classchanrec.html
+++ b/docs/module-doc/classchanrec.html
@@ -810,7 +810,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
</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 Fri Apr 30 15:46:33 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classchanrec__coll__graph.gif b/docs/module-doc/classchanrec__coll__graph.gif
index ed67ec055..7e494b129 100644
--- a/docs/module-doc/classchanrec__coll__graph.gif
+++ b/docs/module-doc/classchanrec__coll__graph.gif
Binary files differ
diff --git a/docs/module-doc/classclassbase-members.html b/docs/module-doc/classclassbase-members.html
index 9f6aaef1d..ebb0a1092 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 Fri Apr 30 15:46:34 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classclassbase.html b/docs/module-doc/classclassbase.html
index 7e170acad..5fc3622c5 100644
--- a/docs/module-doc/classclassbase.html
+++ b/docs/module-doc/classclassbase.html
@@ -143,7 +143,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 Fri Apr 30 15:46:34 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classcommand__t-members.html b/docs/module-doc/classcommand__t-members.html
index e682a5dbb..fec485611 100644
--- a/docs/module-doc/classcommand__t-members.html
+++ b/docs/module-doc/classcommand__t-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="classcommand__t.html#m0">command</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="classExtensible.html#a0">Extend</a>(std::string key, VoidPointer 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#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="classcommand__t.html#m2">flags_needed</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="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="classcommand__t.html#m1">handler_function</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
@@ -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 Fri Apr 30 15:46:34 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classcommand__t.html b/docs/module-doc/classcommand__t.html
index 62f517d08..420a0a0a5 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 Fri Apr 30 15:46:34 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classconnection-members.html b/docs/module-doc/classconnection-members.html
index 5e0b13c2b..68f985332 100644
--- a/docs/module-doc/classconnection-members.html
+++ b/docs/module-doc/classconnection-members.html
@@ -18,7 +18,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classconnection.html#a0">connection</a>()</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classconnection.html#m18">connectors</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#a1">CreateListener</a>(char *host, int p)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
- <tr bgcolor="#f0f0f0"><td><a class="el" href="classExtensible.html#a0">Extend</a>(std::string key, VoidPointer 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#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="classconnection.html#m0">fd</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#a7">FindHost</a>(std::string host)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classconnection.html#a9">GenKey</a>()</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
@@ -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 Fri Apr 30 15:46:36 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classconnection.html b/docs/module-doc/classconnection.html
index 721996bee..866474624 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#l00222">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#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>
</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 Fri Apr 30 15:46:36 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classes.html b/docs/module-doc/classes.html
index e5661e253..183c704e5 100644
--- a/docs/module-doc/classes.html
+++ b/docs/module-doc/classes.html
@@ -24,7 +24,7 @@
</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 Fri Apr 30 15:46:31 2004 for InspIRCd by
+</td></tr></table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classircd__connector-members.html b/docs/module-doc/classircd__connector-members.html
index b0ec48472..d1e11ca91 100644
--- a/docs/module-doc/classircd__connector-members.html
+++ b/docs/module-doc/classircd__connector-members.html
@@ -12,7 +12,7 @@
<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="classircd__connector.html#a13">CloseConnection</a>()</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classircd__connector.html#o3">description</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="classExtensible.html#a0">Extend</a>(std::string key, VoidPointer 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#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="classircd__connector.html#o1">fd</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="classircd__connector.html#a8">GetDescription</a>()</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classircd__connector.html#a3">GetDescriptor</a>()</td><td><a class="el" href="classircd__connector.html">ircd_connector</a></td><td></td></tr>
@@ -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 Fri Apr 30 15:46:42 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classircd__connector.html b/docs/module-doc/classircd__connector.html
index aa0818e4d..9d8bfb109 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 Fri Apr 30 15:46:42 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classpacket-members.html b/docs/module-doc/classpacket-members.html
index 36d9a4cf0..42d5e765c 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 Fri Apr 30 15:46:45 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classpacket.html b/docs/module-doc/classpacket.html
index bbb978dae..b5c9646f1 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 Fri Apr 30 15:46:45 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classserverrec-members.html b/docs/module-doc/classserverrec-members.html
index 4cd3caba7..3b18ee111 100644
--- a/docs/module-doc/classserverrec-members.html
+++ b/docs/module-doc/classserverrec-members.html
@@ -19,7 +19,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classconnection.html#m18">connectors</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#a1">CreateListener</a>(char *host, int p)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classserverrec.html#m8">description</a></td><td><a class="el" href="classserverrec.html">serverrec</a></td><td></td></tr>
- <tr bgcolor="#f0f0f0"><td><a class="el" href="classExtensible.html#a0">Extend</a>(std::string key, VoidPointer 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#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="classconnection.html#m0">fd</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#a7">FindHost</a>(std::string host)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classconnection.html#a9">GenKey</a>()</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
@@ -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 Fri Apr 30 15:46:47 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classserverrec.html b/docs/module-doc/classserverrec.html
index 347ee98e2..46a6352bb 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 Fri Apr 30 15:46:47 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classucrec-members.html b/docs/module-doc/classucrec-members.html
index fa8a99e3e..bf936fed1 100644
--- a/docs/module-doc/classucrec-members.html
+++ b/docs/module-doc/classucrec-members.html
@@ -10,14 +10,14 @@
<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, VoidPointer 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#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 Fri Apr 30 15:46:48 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classucrec.html b/docs/module-doc/classucrec.html
index 0d39baa51..c9a240d55 100644
--- a/docs/module-doc/classucrec.html
+++ b/docs/module-doc/classucrec.html
@@ -165,7 +165,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 Fri Apr 30 15:46:48 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classuserrec-members.html b/docs/module-doc/classuserrec-members.html
index d09cd94ec..dfde860d7 100644
--- a/docs/module-doc/classuserrec-members.html
+++ b/docs/module-doc/classuserrec-members.html
@@ -21,7 +21,7 @@
<tr bgcolor="#f0f0f0"><td><a class="el" href="classconnection.html#m18">connectors</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#a1">CreateListener</a>(char *host, int p)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m2">dhost</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
- <tr bgcolor="#f0f0f0"><td><a class="el" href="classExtensible.html#a0">Extend</a>(std::string key, VoidPointer 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#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="classconnection.html#m0">fd</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#a7">FindHost</a>(std::string host)</td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m9">flood</a></td><td><a class="el" href="classuserrec.html">userrec</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 Fri Apr 30 15:46:49 2004 for InspIRCd by
+</table><hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/classuserrec.html b/docs/module-doc/classuserrec.html
index 023abf77f..5a12bb755 100644
--- a/docs/module-doc/classuserrec.html
+++ b/docs/module-doc/classuserrec.html
@@ -298,41 +298,37 @@ Definition at line <a class="el" href="users_8cpp-source.html#l00097">97</a> of
00114 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this-&gt;nick,this-&gt;oper);
00115 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&amp;config_f);
00116 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&amp;savept);
-00117 <span class="comment">//myclass = savept;</span>
-00118 <span class="keywordflow">while</span> (myclass)
-00119 {
-00120 log(DEBUG,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
-00121 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;config_f); k++)
-00122 {
-00123 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;config_f);
-00124 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
-00125 {
-00126 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;config_f);
-00127 log(DEBUG,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
+00117 <span class="keywordflow">while</span> (myclass)
+00118 {
+00119 log(DEBUG,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
+00120 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;config_f); k++)
+00121 {
+00122 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;config_f);
+00123 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
+00124 {
+00125 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;config_f);
+00126 log(DEBUG,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
+00127
00128
-00129
-00130 mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
-00131 <span class="comment">//mycmd = savept2;</span>
-00132 <span class="keywordflow">while</span> (mycmd)
-00133 {
-00134 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
-00135 {
-00136 log(DEBUG,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
-00137 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00138 }
-00139 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
-00140 <span class="comment">//mycmd = savept2;</span>
-00141 }
-00142 }
-00143 }
-00144 myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
-00145 <span class="comment">//myclass = savept;</span>
-00146 }
-00147 }
-00148 }
-00149 }
-00150 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00151 }
+00129 mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
+00130 <span class="keywordflow">while</span> (mycmd)
+00131 {
+00132 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
+00133 {
+00134 log(DEBUG,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
+00135 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00136 }
+00137 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
+00138 }
+00139 }
+00140 }
+00141 myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
+00142 }
+00143 }
+00144 }
+00145 }
+00146 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00147 }
</pre></div> </td>
</tr>
</table>
@@ -722,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#l00176">Server::QuitUser()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00205">Server::QuitUser()</a>. </td>
</tr>
</table>
<a name="m11" doxytag="userrec::oper"></a><p>
@@ -835,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 Fri Apr 30 15:46:49 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/commands_8h-source.html b/docs/module-doc/commands_8h-source.html
index 437a19dff..01b3b7ee2 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 Fri Apr 30 15:46:22 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 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 2bea6fe23..4708fe2e5 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#l00182">Server::IsUlined()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00211">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#l00182">Server::IsUli
</td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:25 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:03 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 5676b36fe..002837730 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 Fri Apr 30 15:46:22 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 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 e2c0fb1fc..e7bc240bf 100644
--- a/docs/module-doc/connection_8h.html
+++ b/docs/module-doc/connection_8h.html
@@ -203,7 +203,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 Fri Apr 30 15:46:26 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:04 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-source.html b/docs/module-doc/ctables_8h-source.html
index de2de125b..fc96a89e0 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 Fri Apr 30 15:46:22 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 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 dbb8cdb52..f609460b7 100644
--- a/docs/module-doc/ctables_8h.html
+++ b/docs/module-doc/ctables_8h.html
@@ -30,7 +30,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 Fri Apr 30 15:46:26 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:04 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/files.html b/docs/module-doc/files.html
index be56ff88b..a5e078f14 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 Fri Apr 30 15:46:22 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 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 13b534329..65c5edaa5 100644
--- a/docs/module-doc/functions.html
+++ b/docs/module-doc/functions.html
@@ -13,8 +13,9 @@
Here is a list of all class members with links to the classes they belong to:<h3><a name="index_a">- a -</a>
</h3><ul>
<li>AddCommand()
-: <a class="el" href="classServer.html#a21">Server</a><li>AddExtendedMode()
-: <a class="el" href="classServer.html#a20">Server</a><li>AddIncoming()
+: <a class="el" href="classServer.html#a23">Server</a><li>AddExtendedListMode()
+: <a class="el" href="classServer.html#a22">Server</a><li>AddExtendedMode()
+: <a class="el" href="classServer.html#a21">Server</a><li>AddIncoming()
: <a class="el" href="classconnection.html#a8">connection</a><li>addr
: <a class="el" href="classircd__connector.html#o0">ircd_connector</a><li>Admin()
: <a class="el" href="classAdmin.html#a0">Admin</a><li>age
@@ -33,10 +34,10 @@ Here is a list of all class members with links to the classes they belong to:<h3
<li>c_private
: <a class="el" href="classchanrec.html#m13">chanrec</a><li>cache
: <a class="el" href="classConfigReader.html#n0">ConfigReader</a><li>CallCommandHandler()
-: <a class="el" href="classServer.html#a29">Server</a><li>ChangeGECOS()
-: <a class="el" href="classServer.html#a31">Server</a><li>ChangeHost()
-: <a class="el" href="classServer.html#a30">Server</a><li>ChangeUserNick()
-: <a class="el" href="classServer.html#a26">Server</a><li>ChanMode()
+: <a class="el" href="classServer.html#a31">Server</a><li>ChangeGECOS()
+: <a class="el" href="classServer.html#a33">Server</a><li>ChangeHost()
+: <a class="el" href="classServer.html#a32">Server</a><li>ChangeUserNick()
+: <a class="el" href="classServer.html#a28">Server</a><li>ChanMode()
: <a class="el" href="classServer.html#a16">Server</a><li>channel
: <a class="el" href="classInvited.html#m0">Invited</a>, <a class="el" href="classucrec.html#m1">ucrec</a>, <a class="el" href="classModeParameter.html#m2">ModeParameter</a><li>chanrec()
: <a class="el" href="classchanrec.html#a4">chanrec</a><li>chans
@@ -91,7 +92,7 @@ Here is a list of all class members with links to the classes they belong to:<h3
</h3><ul>
<li>GenKey()
: <a class="el" href="classconnection.html#a9">connection</a><li>GetAdmin()
-: <a class="el" href="classServer.html#a19">Server</a><li>GetDescription()
+: <a class="el" href="classServer.html#a20">Server</a><li>GetDescription()
: <a class="el" href="classircd__connector.html#a8">ircd_connector</a><li>GetDescriptor()
: <a class="el" href="classircd__connector.html#a3">ircd_connector</a><li>GetExt()
: <a class="el" href="classExtensible.html#a2">Extensible</a><li>GetFullHost()
@@ -99,9 +100,9 @@ Here is a list of all class members with links to the classes they belong to:<h3
: <a class="el" href="classuserrec.html#a3">userrec</a><li>GetLine()
: <a class="el" href="classFileReader.html#a5">FileReader</a><li>GetModeParameter()
: <a class="el" href="classchanrec.html#a3">chanrec</a><li>GetNetworkName()
-: <a class="el" href="classServer.html#a18">Server</a><li>GetServerIP()
+: <a class="el" href="classServer.html#a19">Server</a><li>GetServerIP()
: <a class="el" href="classircd__connector.html#a7">ircd_connector</a><li>GetServerName()
-: <a class="el" href="classServer.html#a17">Server</a>, <a class="el" href="classircd__connector.html#a1">ircd_connector</a><li>GetServerPort()
+: <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="classModule.html#a2">Module</a></ul>
@@ -131,12 +132,13 @@ Here is a list of all class members with links to the classes they belong to:<h3
: <a class="el" href="classQLine.html#m1">QLine</a>, <a class="el" href="classZLine.html#m1">ZLine</a><li>IsCustomModeSet()
: <a class="el" href="classchanrec.html#a2">chanrec</a><li>IsInvited()
: <a class="el" href="classuserrec.html#a4">userrec</a><li>IsNick()
-: <a class="el" href="classServer.html#a12">Server</a><li>IsUlined()
-: <a class="el" href="classServer.html#a32">Server</a></ul>
+: <a class="el" href="classServer.html#a12">Server</a><li>IsOnChannel()
+: <a class="el" href="classServer.html#a17">Server</a><li>IsUlined()
+: <a class="el" href="classServer.html#a34">Server</a></ul>
<h3><a name="index_j">- j -</a>
</h3><ul>
<li>JoinUserToChannel()
-: <a class="el" href="classServer.html#a24">Server</a><li>jupiter
+: <a class="el" href="classServer.html#a26">Server</a><li>jupiter
: <a class="el" href="classserverrec.html#m7">serverrec</a></ul>
<h3><a name="index_k">- k -</a>
</h3><ul>
@@ -146,7 +148,8 @@ Here is a list of all class members with links to the classes they belong to:<h3
</h3><ul>
<li>lastping
: <a class="el" href="classconnection.html#m12">connection</a><li>limit
-: <a class="el" href="classchanrec.html#m6">chanrec</a><li>LoadFile()
+: <a class="el" href="classchanrec.html#m6">chanrec</a><li>list
+: <a class="el" href="classExtMode.html#m5">ExtMode</a><li>LoadFile()
: <a class="el" href="classFileReader.html#a3">FileReader</a><li>Log()
: <a class="el" href="classServer.html#a3">Server</a></ul>
<h3><a name="index_m">- m -</a>
@@ -154,7 +157,7 @@ Here is a list of all class members with links to the classes they belong to:<h3
<li>Major
: <a class="el" href="classVersion.html#m0">Version</a><li>MakeOutboundConnection()
: <a class="el" href="classircd__connector.html#a0">ircd_connector</a><li>MatchText()
-: <a class="el" href="classServer.html#a28">Server</a><li>MeshCookie()
+: <a class="el" href="classServer.html#a30">Server</a><li>MeshCookie()
: <a class="el" href="classconnection.html#a3">connection</a><li>min_params
: <a class="el" href="classcommand__t.html#m3">command_t</a><li>Minor
: <a class="el" href="classVersion.html#m1">Version</a><li>mode
@@ -167,9 +170,9 @@ Here is a list of all class members with links to the classes they belong to:<h3
<h3><a name="index_n">- n -</a>
</h3><ul>
<li>n_matches
-: <a class="el" href="classXLine.html#m4">XLine</a><li>name
-: <a class="el" href="classserverrec.html#m0">serverrec</a>, <a class="el" href="classchanrec.html#m0">chanrec</a><li>Name
-: <a class="el" href="classAdmin.html#m0">Admin</a><li>needsoper
+: <a class="el" href="classXLine.html#m4">XLine</a><li>Name
+: <a class="el" href="classAdmin.html#m0">Admin</a><li>name
+: <a class="el" href="classserverrec.html#m0">serverrec</a>, <a class="el" href="classchanrec.html#m0">chanrec</a><li>needsoper
: <a class="el" href="classExtMode.html#m4">ExtMode</a><li>Nick
: <a class="el" href="classAdmin.html#m2">Admin</a><li>nick
: <a class="el" href="classQLine.html#m0">QLine</a>, <a class="el" href="classuserrec.html#m0">userrec</a><li>noexternal
@@ -177,7 +180,8 @@ Here is a list of all class members with links to the classes they belong to:<h3
: <a class="el" href="classconnection.html#m15">connection</a></ul>
<h3><a name="index_o">- o -</a>
</h3><ul>
-<li>OnExtendedMode()
+<li>OnAccessCheck()
+: <a class="el" href="classModule.html#a19">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()
@@ -202,14 +206,14 @@ Here is a list of all class members with links to the classes they belong to:<h3
: <a class="el" href="classModeParameter.html#m1">ModeParameter</a><li>params_when_off
: <a class="el" href="classExtMode.html#m3">ExtMode</a><li>params_when_on
: <a class="el" href="classExtMode.html#m2">ExtMode</a><li>PartUserFromChannel()
-: <a class="el" href="classServer.html#a25">Server</a><li>pass
+: <a class="el" href="classServer.html#a27">Server</a><li>pass
: <a class="el" href="classConnectClass.html#m4">ConnectClass</a><li>pingtime
: <a class="el" href="classserverrec.html#m1">serverrec</a><li>port
: <a class="el" href="classconnection.html#m9">connection</a>, <a class="el" href="classircd__connector.html#m1">ircd_connector</a></ul>
<h3><a name="index_q">- q -</a>
</h3><ul>
<li>QuitUser()
-: <a class="el" href="classServer.html#a27">Server</a></ul>
+: <a class="el" href="classServer.html#a29">Server</a></ul>
<h3><a name="index_r">- r -</a>
</h3><ul>
<li>ReadValue()
@@ -230,15 +234,15 @@ Here is a list of all class members with links to the classes they belong to:<h3
: <a class="el" href="classServer.html#a8">Server</a><li>SendCommon()
: <a class="el" href="classServer.html#a10">Server</a><li>SendFrom()
: <a class="el" href="classServer.html#a6">Server</a><li>SendMode()
-: <a class="el" href="classServer.html#a22">Server</a><li>SendOpers()
+: <a class="el" href="classServer.html#a24">Server</a><li>SendOpers()
: <a class="el" href="classServer.html#a2">Server</a><li>SendPacket()
: <a class="el" href="classconnection.html#a5">connection</a><li>SendServ()
: <a class="el" href="classServer.html#a5">Server</a><li>SendTo()
: <a class="el" href="classServer.html#a7">Server</a><li>SendToModeMask()
-: <a class="el" href="classServer.html#a23">Server</a><li>SendWallops()
-: <a class="el" href="classServer.html#a11">Server</a><li>Server()
-: <a class="el" href="classServer.html#a0">Server</a><li>server
-: <a class="el" href="classuserrec.html#m6">userrec</a><li>servername
+: <a class="el" href="classServer.html#a25">Server</a><li>SendWallops()
+: <a class="el" href="classServer.html#a11">Server</a><li>server
+: <a class="el" href="classuserrec.html#m6">userrec</a><li>Server()
+: <a class="el" href="classServer.html#a0">Server</a><li>servername
: <a class="el" href="classircd__connector.html#o2">ircd_connector</a><li>serverrec()
: <a class="el" href="classserverrec.html#a1">serverrec</a><li>set_by
: <a class="el" href="classHostItem.html#m1">HostItem</a><li>set_time
@@ -280,9 +284,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="classVersion.html#a0">Version</a><li>version
-: <a class="el" href="classserverrec.html#m6">serverrec</a></ul>
+: <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>
<h3><a name="index_~">- ~ -</a>
</h3><ul>
<li>~chanrec()
@@ -297,7 +301,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 Fri Apr 30 15:46:31 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/globals.html b/docs/module-doc/globals.html
index e52a8e334..50ed95c36 100644
--- a/docs/module-doc/globals.html
+++ b/docs/module-doc/globals.html
@@ -12,7 +12,19 @@
<p>
Here is a list of all file members with links to the files they belong to:<h3><a name="index_a">- a -</a>
</h3><ul>
-<li>add_ban()
+<li>AC_DEHALFOP
+: <a class="el" href="modules_8h.html#a17">modules.h</a><li>AC_DEOP
+: <a class="el" href="modules_8h.html#a12">modules.h</a><li>AC_DEVOICE
+: <a class="el" href="modules_8h.html#a15">modules.h</a><li>AC_GENERAL_MODE
+: <a class="el" href="modules_8h.html#a19">modules.h</a><li>AC_HALFOP
+: <a class="el" href="modules_8h.html#a16">modules.h</a><li>AC_INVITE
+: <a class="el" href="modules_8h.html#a18">modules.h</a><li>AC_KICK
+: <a class="el" href="modules_8h.html#a11">modules.h</a><li>AC_OP
+: <a class="el" href="modules_8h.html#a13">modules.h</a><li>AC_VOICE
+: <a class="el" href="modules_8h.html#a14">modules.h</a><li>ACR_ALLOW
+: <a class="el" href="modules_8h.html#a10">modules.h</a><li>ACR_DEFAULT
+: <a class="el" href="modules_8h.html#a8">modules.h</a><li>ACR_DENY
+: <a class="el" href="modules_8h.html#a9">modules.h</a><li>add_ban()
: <a class="el" href="mode_8h.html#a6">mode.h</a><li>add_gline()
: <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()
@@ -40,7 +52,7 @@ Here is a list of all file members with links to the files they belong to:<h3><a
: <a class="el" href="message_8h.html#a14">message.h</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#a13">modules.h</a><li>cstatus()
+: <a class="el" href="modules_8h.html#a25">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>
<h3><a name="index_d">- d -</a>
@@ -52,7 +64,7 @@ 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#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#a8">modules.cpp</a></ul>
+: <a class="el" href="modules_8cpp.html#a9">modules.cpp</a></ul>
<h3><a name="index_e">- e -</a>
</h3><ul>
<li>EMode
@@ -64,10 +76,10 @@ Here is a list of all file members with links to the files they belong to:<h3><a
<h3><a name="index_f">- f -</a>
</h3><ul>
<li>factory()
-: <a class="el" href="modules_8cpp.html#a10">modules.cpp</a><li>file_cache
-: <a class="el" href="modules_8h.html#a10">modules.h</a><li>FOREACH_MOD
-: <a class="el" href="modules_8h.html#a8">modules.h</a><li>FOREACH_RESULT
-: <a class="el" href="modules_8h.html#a9">modules.h</a></ul>
+: <a class="el" href="modules_8cpp.html#a12">modules.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>
<h3><a name="index_g">- g -</a>
</h3><ul>
<li>give_hops()
@@ -133,9 +145,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#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#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#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()
@@ -155,7 +167,7 @@ Here is a list of all file members with links to the files they belong to:<h3><a
<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#a12">modules.h</a><li>is_uline()
+: <a class="el" href="modules_8h.html#a24">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,10 +187,12 @@ Here is a list of all file members with links to the files they belong to:<h3><a
: <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#a7">modules.cpp</a><li>ModeDefinedOn()
-: <a class="el" href="modules_8cpp.html#a6">modules.cpp</a><li>ModeDefinedOper()
-: <a class="el" href="modules_8cpp.html#a5">modules.cpp</a><li>modules()
-: <a class="el" href="modules_8cpp.html#a9">modules.cpp</a><li>MT_CHANNEL
+: <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_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>
@@ -207,7 +221,7 @@ Here is a list of all file members with links to the files they belong to:<h3><a
<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#a14">modules.h</a>, <a class="el" href="mode_8h.html#a12">mode.h</a><li>SPARSE
+: <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="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
@@ -223,7 +237,7 @@ Here is a list of all file members with links to the files they belong to:<h3><a
: <a class="el" href="users_8h.html#a3">users.h</a><li>STATUS_OP
: <a class="el" href="users_8h.html#a0">users.h</a><li>STATUS_VOICE
: <a class="el" href="users_8h.html#a2">users.h</a><li>string_list
-: <a class="el" href="modules_8h.html#a11">modules.h</a><li>sync_xlines()
+: <a class="el" href="modules_8h.html#a23">modules.h</a><li>sync_xlines()
: <a class="el" href="xline_8h.html#a24">xline.h</a></ul>
<h3><a name="index_t">- t -</a>
</h3><ul>
@@ -252,7 +266,7 @@ Here is a list of all file members with links to the files they belong to:<h3><a
<li>zline_make_global()
: <a class="el" href="xline_8h.html#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 Fri Apr 30 15:46:51 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/graph_legend.html b/docs/module-doc/graph_legend.html
index 4ac49f896..1d17a02d5 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 Fri Apr 30 15:46:51 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/hierarchy.html b/docs/module-doc/hierarchy.html
index b8740117d..7470b7b5e 100644
--- a/docs/module-doc/hierarchy.html
+++ b/docs/module-doc/hierarchy.html
@@ -50,7 +50,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
</ul>
</ul>
</ul>
-<hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:31 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/inherits.html b/docs/module-doc/inherits.html
index 9137ea35f..359c95704 100644
--- a/docs/module-doc/inherits.html
+++ b/docs/module-doc/inherits.html
@@ -43,7 +43,7 @@
<area href="classZLine.html" shape="rect" coords="313,708,356,729" alt="">
</map></td></tr>
</table>
-<hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:51 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/main.html b/docs/module-doc/main.html
index d6aeb50df..c433b868d 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 Fri Apr 30 15:46:22 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 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 385b8c0d8..cd076d86a 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 Fri Apr 30 15:46:22 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:38:59 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 82047f0e8..238512165 100644
--- a/docs/module-doc/message_8h.html
+++ b/docs/module-doc/message_8h.html
@@ -150,7 +150,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#l00270">Server::ChangeHost()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00299">Server::ChangeHost()</a>. </td>
</tr>
</table>
<a name="a10" doxytag="message.h::ChangeName"></a><p>
@@ -190,7 +190,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00270">Server::Chang
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00275">Server::ChangeGECOS()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00304">Server::ChangeGECOS()</a>. </td>
</tr>
</table>
<a name="a18" doxytag="message.h::chlist"></a><p>
@@ -326,7 +326,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00275">Server::Chang
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00295">Server::ChanMode()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00324">Server::ChanMode()</a>. </td>
</tr>
</table>
<a name="a0" doxytag="message.h::common_channels"></a><p>
@@ -366,7 +366,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00295">Server::ChanM
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00248">Server::CommonChannels()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00277">Server::CommonChannels()</a>. </td>
</tr>
</table>
<a name="a15" doxytag="message.h::cstatus"></a><p>
@@ -442,7 +442,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00248">Server::Commo
<td>
<p>
- </td>
+
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00329">Server::IsOnChannel()</a>. </td>
</tr>
</table>
<a name="a9" doxytag="message.h::hasumode"></a><p>
@@ -540,7 +542,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00248">Server::Commo
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00280">Server::IsNick()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00309">Server::IsNick()</a>. </td>
</tr>
</table>
<a name="a6" doxytag="message.h::NonBlocking"></a><p>
@@ -667,7 +669,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00280">Server::IsNic
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00176">Server::QuitUser()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00205">Server::QuitUser()</a>. </td>
</tr>
</table>
<a name="a17" doxytag="message.h::TidyBan"></a><p>
@@ -728,7 +730,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00176">Server::QuitU
</td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:27 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39:05 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-source.html b/docs/module-doc/mode_8h-source.html
index d234e9587..72d2d6cde 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#a14">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#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);
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 Fri Apr 30 15:46:22 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 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 ad494a3da..ab7faf405 100644
--- a/docs/module-doc/mode_8h.html
+++ b/docs/module-doc/mode_8h.html
@@ -788,7 +788,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 Fri Apr 30 15:46:27 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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-source.html b/docs/module-doc/modules_8cpp-source.html
index 62a3122c0..7d63ff9d7 100644
--- a/docs/module-doc/modules_8cpp-source.html
+++ b/docs/module-doc/modules_8cpp-source.html
@@ -34,423 +34,465 @@
<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#a0">00029</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) { };
-00030 };
-00031
-<a name="l00032"></a><a class="code" href="modules_8cpp.html#a0">00032</a> <span class="keyword">typedef</span> std::vector&lt;ExtMode&gt; <a class="code" href="modules_8cpp.html#a0">ExtModeList</a>;
-<a name="l00033"></a><a class="code" href="modules_8cpp.html#a1">00033</a> <span class="keyword">typedef</span> ExtModeList::iterator <a class="code" href="modules_8cpp.html#a1">ExtModeListIter</a>;
-00034
-<a name="l00035"></a><a class="code" href="modules_8cpp.html#a2">00035</a> <a class="code" href="modules_8cpp.html#a0">ExtModeList</a> <a class="code" href="modules_8cpp.html#a2">EMode</a>;
-00036
-00037 <span class="comment">// returns true if an extended mode character is in use</span>
-<a name="l00038"></a><a class="code" href="modules_8cpp.html#a4">00038</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)
-00039 {
-00040 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a2">EMode</a>.size());
-00041 <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++)
-00042 {
-00043 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);
-00044 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-00045 {
-00046 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00047 }
-00048 }
-00049 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00050 }
-00051
-<a name="l00052"></a><a class="code" href="modules_8cpp.html#a5">00052</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#a5">ModeDefinedOper</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
-00053 {
-00054 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a2">EMode</a>.size());
-00055 <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++)
-00056 {
-00057 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);
-00058 <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>))
-00059 {
-00060 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00061 }
-00062 }
-00063 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00064 }
-00065
-00066 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span>
-<a name="l00067"></a><a class="code" href="modules_8cpp.html#a6">00067</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a6">ModeDefinedOn</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
+<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 <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++)
-00070 {
-00071 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-00072 {
-00073 <span class="keywordflow">return</span> i-&gt;params_when_on;
-00074 }
-00075 }
-00076 <span class="keywordflow">return</span> 0;
-00077 }
-00078
-00079 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span>
-<a name="l00080"></a><a class="code" href="modules_8cpp.html#a7">00080</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a7">ModeDefinedOff</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
-00081 {
-00082 <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++)
-00083 {
-00084 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-00085 {
-00086 <span class="keywordflow">return</span> i-&gt;params_when_off;
-00087 }
-00088 }
-00089 <span class="keywordflow">return</span> 0;
-00090 }
-00091
-00092 <span class="comment">// returns true if an extended mode character is in use</span>
-<a name="l00093"></a><a class="code" href="modules_8cpp.html#a8">00093</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#a8">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)
-00094 {
-00095 <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#a4">ModeDefined</a>(modechar,type)) {
-00096 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00097 }
-00098 <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));
-00099 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00100 }
-00101
-00102
-00103 <span class="comment">// version is a simple class for holding a modules version number</span>
-00104
-<a name="l00105"></a><a class="code" href="classVersion.html#a0">00105</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) { };
+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;
+00102 }
+00103 }
+00104 <span class="keywordflow">return</span> 0;
+00105 }
00106
-00107 <span class="comment">// admin is a simple class for holding a server's administrative info</span>
-00108
-<a name="l00109"></a><a class="code" href="classAdmin.html#a0">00109</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) { };
-00110
-<a name="l00111"></a><a class="code" href="classModule.html#a0">00111</a> <a class="code" href="classModule.html#a0">Module::Module</a>() { }
-<a name="l00112"></a><a class="code" href="classModule.html#a1">00112</a> <a class="code" href="classModule.html#a1">Module::~Module</a>() { }
-<a name="l00113"></a><a class="code" href="classModule.html#a3">00113</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="l00114"></a><a class="code" href="classModule.html#a4">00114</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="l00115"></a><a class="code" href="classModule.html#a5">00115</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="l00116"></a><a class="code" href="classModule.html#a6">00116</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="l00117"></a><a class="code" href="classModule.html#a7">00117</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a7">Module::OnPacketTransmit</a>(<span class="keywordtype">char</span> *p) { }
-<a name="l00118"></a><a class="code" href="classModule.html#a8">00118</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a8">Module::OnPacketReceive</a>(<span class="keywordtype">char</span> *p) { }
-<a name="l00119"></a><a class="code" href="classModule.html#a9">00119</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a9">Module::OnRehash</a>() { }
-<a name="l00120"></a><a class="code" href="classModule.html#a10">00120</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="l00121"></a><a class="code" href="classModule.html#a12">00121</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="l00122"></a><a class="code" href="classModule.html#a11">00122</a> <span class="keywordtype">bool</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="l00123"></a><a class="code" href="classModule.html#a2">00123</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="l00124"></a><a class="code" href="classModule.html#a13">00124</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="l00125"></a><a class="code" href="classModule.html#a14">00125</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="l00126"></a><a class="code" href="classModule.html#a15">00126</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="l00127"></a><a class="code" href="classModule.html#a16">00127</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="l00128"></a><a class="code" href="classModule.html#a17">00128</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="l00129"></a><a class="code" href="classModule.html#a18">00129</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; };
+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">// server is a wrapper class that provides methods to all of the C-style</span>
-00132 <span class="comment">// exports in the core</span>
-00133 <span class="comment">//</span>
+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) { };
00134
-<a name="l00135"></a><a class="code" href="classServer.html#a0">00135</a> <a class="code" href="classServer.html#a0">Server::Server</a>()
-00136 {
-00137 }
+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="classServer.html#a1">00139</a> <a class="code" href="classServer.html#a1">Server::~Server</a>()
-00140 {
-00141 }
-00142
-<a name="l00143"></a><a class="code" href="classServer.html#a2">00143</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">Server::SendOpers</a>(std::string s)
-00144 {
-00145 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
-00146 }
-00147
-<a name="l00148"></a><a class="code" href="classServer.html#a28">00148</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a28">Server::MatchText</a>(std::string sliteral, std::string spattern)
-00149 {
-00150 <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
-00151 strncpy(literal,sliteral.c_str(),MAXBUF);
-00152 strncpy(pattern,spattern.c_str(),MAXBUF);
-00153 <span class="keywordflow">return</span> match(literal,pattern);
-00154 }
-00155
-<a name="l00156"></a><a class="code" href="classServer.html#a23">00156</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a23">Server::SendToModeMask</a>(std::string modes, <span class="keywordtype">int</span> flags, std::string text)
-00157 {
-00158 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
-00159 }
-00160
-<a name="l00161"></a><a class="code" href="classServer.html#a24">00161</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a24">Server::JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string key)
-00162 {
-00163 <span class="keywordflow">return</span> add_channel(user,cname.c_str(),key.c_str(),<span class="keyword">true</span>);
-00164 }
-00165
-<a name="l00166"></a><a class="code" href="classServer.html#a25">00166</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a25">Server::PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string reason)
-00167 {
-00168 <span class="keywordflow">return</span> del_channel(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
-00169 }
-00170
-<a name="l00171"></a><a class="code" href="classServer.html#a26">00171</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a26">Server::ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string nickname)
-00172 {
-00173 force_nickchange(user,nickname.c_str());
-00174 }
-00175
-<a name="l00176"></a><a class="code" href="classServer.html#a27">00176</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a27">Server::QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string reason)
-00177 {
-00178 <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());
-00179 kill_link(user,reason.c_str());
-00180 }
-00181
-<a name="l00182"></a><a class="code" href="classServer.html#a32">00182</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a32">Server::IsUlined</a>(std::string server)
-00183 {
-00184 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#a70">is_uline</a>(server.c_str());
-00185 }
-00186
-<a name="l00187"></a><a class="code" href="classServer.html#a29">00187</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a29">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)
-00188 {
-00189 call_handler(commandname.c_str(),parameters,pcnt,user);
-00190 }
-00191
-<a name="l00192"></a><a class="code" href="classServer.html#a3">00192</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)
-00193 {
-00194 log(level,<span class="stringliteral">"%s"</span>,s.c_str());
-00195 }
-00196
-<a name="l00197"></a><a class="code" href="classServer.html#a21">00197</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a21">Server::AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams)
-00198 {
-00199 <a class="code" href="modules_8h.html#a13">createcommand</a>(cmd,f,flags,minparams);
-00200 }
-00201
-<a name="l00202"></a><a class="code" href="classServer.html#a22">00202</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a22">Server::SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user)
-00203 {
-00204 <a class="code" href="modules_8h.html#a14">server_mode</a>(parameters,pcnt,user);
-00205 }
-00206
-<a name="l00207"></a><a class="code" href="classServer.html#a4">00207</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)
-00208 {
-00209 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-00210 }
-00211
-<a name="l00212"></a><a class="code" href="classServer.html#a5">00212</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)
-00213 {
-00214 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-00215 }
-00216
-<a name="l00217"></a><a class="code" href="classServer.html#a6">00217</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)
-00218 {
-00219 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00220 }
-00221
-<a name="l00222"></a><a class="code" href="classServer.html#a7">00222</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)
-00223 {
-00224 <span class="keywordflow">if</span> (!Source)
-00225 {
-00226 <span class="comment">// if source is NULL, then the message originates from the local server</span>
-00227 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());
-00228 }
-00229 <span class="keywordflow">else</span>
-00230 {
-00231 <span class="comment">// otherwise it comes from the user specified</span>
-00232 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
-00233 }
+<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>
+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)
+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#a8">00236</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)
+<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 <span class="keywordflow">if</span> (IncludeSender)
-00239 {
-00240 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00241 }
-00242 <span class="keywordflow">else</span>
-00243 {
-00244 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-00245 }
-00246 }
-00247
-<a name="l00248"></a><a class="code" href="classServer.html#a9">00248</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)
-00249 {
-00250 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a0">common_channels</a>(u1,u2) != 0);
-00251 }
-00252
-<a name="l00253"></a><a class="code" href="classServer.html#a10">00253</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)
-00254 {
-00255 <span class="keywordflow">if</span> (IncludeSender)
-00256 {
-00257 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
-00258 }
-00259 <span class="keywordflow">else</span>
-00260 {
-00261 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
+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)
+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#a11">00265</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)
+<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 WriteWallOps(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
-00268 }
-00269
-<a name="l00270"></a><a class="code" href="classServer.html#a30">00270</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a30">Server::ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string host)
-00271 {
-00272 <a class="code" href="message_8h.html#a11">ChangeDisplayedHost</a>(user,host.c_str());
-00273 }
-00274
-<a name="l00275"></a><a class="code" href="classServer.html#a31">00275</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a31">Server::ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string gecos)
-00276 {
-00277 <a class="code" href="message_8h.html#a10">ChangeName</a>(user,gecos.c_str());
-00278 }
-00279
-<a name="l00280"></a><a class="code" href="classServer.html#a12">00280</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">Server::IsNick</a>(std::string nick)
-00281 {
-00282 <span class="keywordflow">return</span> (<a class="code" href="message_8h.html#a13">isnick</a>(nick.c_str()) != 0);
-00283 }
-00284
-<a name="l00285"></a><a class="code" href="classServer.html#a14">00285</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a14">Server::FindNick</a>(std::string nick)
-00286 {
-00287 <span class="keywordflow">return</span> Find(nick);
-00288 }
-00289
-<a name="l00290"></a><a class="code" href="classServer.html#a15">00290</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a15">Server::FindChannel</a>(std::string channel)
-00291 {
-00292 <span class="keywordflow">return</span> FindChan(channel.c_str());
-00293 }
-00294
-<a name="l00295"></a><a class="code" href="classServer.html#a16">00295</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)
-00296 {
-00297 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#a14">cmode</a>(User,Chan);
-00298 }
-00299
-<a name="l00300"></a><a class="code" href="classServer.html#a17">00300</a> std::string <a class="code" href="classServer.html#a17">Server::GetServerName</a>()
-00301 {
-00302 <span class="keywordflow">return</span> getservername();
-00303 }
-00304
-<a name="l00305"></a><a class="code" href="classServer.html#a18">00305</a> std::string <a class="code" href="classServer.html#a18">Server::GetNetworkName</a>()
-00306 {
-00307 <span class="keywordflow">return</span> getnetworkname();
-00308 }
-00309
-<a name="l00310"></a><a class="code" href="classServer.html#a19">00310</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a19">Server::GetAdmin</a>()
-00311 {
-00312 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
-00313 }
-00314
-00315
-00316
-<a name="l00317"></a><a class="code" href="classServer.html#a20">00317</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a20">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)
-00318 {
-00319 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#a7">MT_SERVER</a>)
-00320 {
-00321 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
-00322 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00323 }
-00324 <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>))
-00325 {
-00326 log(DEBUG,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
-00327 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00328 }
-00329 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
-00330 {
-00331 log(DEBUG,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
-00332 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00333 }
-00334 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#a8">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
-00335 }
-00336
-<a name="l00337"></a><a class="code" href="classServer.html#a13">00337</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)
-00338 {
-00339 <span class="keywordflow">return</span> usercount(c);
-00340 }
-00341
-00342
-<a name="l00343"></a><a class="code" href="classConfigReader.html#a0">00343</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>()
-00344 {
-00345 this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00346 this-&gt;<a class="code" href="classConfigReader.html#n1">error</a> = LoadConf(CONFIG_FILE,this-&gt;cache);
+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 }
+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 }
+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);
+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>()
+00335 {
+00336 <span class="keywordflow">return</span> getservername();
+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>()
+00340 {
+00341 <span class="keywordflow">return</span> getnetworkname();
+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>()
+00345 {
+00346 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
00347 }
00348
00349
-<a name="l00350"></a><a class="code" href="classConfigReader.html#a2">00350</a> <a class="code" href="classConfigReader.html#a2">ConfigReader::~ConfigReader</a>()
-00351 {
-00352 <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>)
-00353 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a>;
-00354 }
-00355
-00356
-<a name="l00357"></a><a class="code" href="classConfigReader.html#a1">00357</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>(std::string filename)
-00358 {
-00359 this-&gt;<a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-00360 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>);
-00361 };
-00362
-<a name="l00363"></a><a class="code" href="classConfigReader.html#a3">00363</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)
-00364 {
-00365 <span class="keywordtype">char</span> val[MAXBUF];
-00366 <span class="keywordtype">char</span> t[MAXBUF];
-00367 <span class="keywordtype">char</span> n[MAXBUF];
-00368 strncpy(t,tag.c_str(),MAXBUF);
-00369 strncpy(n,name.c_str(),MAXBUF);
-00370 ReadConf(cache,t,n,index,val);
-00371 <span class="keywordflow">return</span> std::string(val);
-00372 }
-00373
-00374
-<a name="l00375"></a><a class="code" href="classConfigReader.html#a4">00375</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a4">ConfigReader::Enumerate</a>(std::string tag)
-00376 {
-00377 <span class="keywordflow">return</span> EnumConf(cache,tag.c_str());
-00378 }
-00379
-<a name="l00380"></a><a class="code" href="classConfigReader.html#a6">00380</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)
-00381 {
-00382 <span class="keywordflow">return</span> EnumValues(cache, tag.c_str(), index);
-00383 }
+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>)
+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;
+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)
+00380 {
+00381 <span class="keywordflow">return</span> usercount(c);
+00382 }
+00383
00384
-<a name="l00385"></a><a class="code" href="classConfigReader.html#a5">00385</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a5">ConfigReader::Verify</a>()
+<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 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#n1">error</a>;
-00388 }
-00389
+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
-<a name="l00391"></a><a class="code" href="classFileReader.html#a1">00391</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>(std::string filename)
-00392 {
-00393 <a class="code" href="modules_8h.html#a10">file_cache</a> c;
-00394 readfile(c,filename.c_str());
-00395 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+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="l00398"></a><a class="code" href="classFileReader.html#a0">00398</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>()
-00399 {
-00400 }
-00401
-<a name="l00402"></a><a class="code" href="classFileReader.html#a3">00402</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">FileReader::LoadFile</a>(std::string filename)
-00403 {
-00404 <a class="code" href="modules_8h.html#a10">file_cache</a> c;
-00405 readfile(c,filename.c_str());
-00406 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
-00407 }
-00408
-00409
-<a name="l00410"></a><a class="code" href="classFileReader.html#a2">00410</a> <a class="code" href="classFileReader.html#a2">FileReader::~FileReader</a>()
-00411 {
-00412 }
-00413
-<a name="l00414"></a><a class="code" href="classFileReader.html#a4">00414</a> <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#a4">FileReader::Exists</a>()
-00415 {
-00416 <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#o0">fc</a>.size() == 0)
-00417 {
-00418 <span class="keywordflow">return</span>(false);
-00419 }
-00420 <span class="keywordflow">else</span>
-00421 {
-00422 <span class="keywordflow">return</span>(true);
-00423 }
-00424 }
-00425
-<a name="l00426"></a><a class="code" href="classFileReader.html#a5">00426</a> std::string <a class="code" href="classFileReader.html#a5">FileReader::GetLine</a>(<span class="keywordtype">int</span> x)
-00427 {
-00428 <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#o0">fc</a>.size()))
-00429 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-00430 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>[x];
-00431 }
+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)
+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
00432
-<a name="l00433"></a><a class="code" href="classFileReader.html#a6">00433</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a6">FileReader::FileSize</a>()
+<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)
00434 {
-00435 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>.size();
-00436 }
-00437
-00438
-00439 std::vector&lt;Module*&gt; <a class="code" href="modules_8cpp.html#a9">modules</a>(255);
-00440 std::vector&lt;ircd_module*&gt; <a class="code" href="modules_8cpp.html#a10">factory</a>(255);
-00441
-<a name="l00442"></a><a class="code" href="modules_8cpp.html#a3">00442</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#a3">MODCOUNT</a> = -1;
+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
-00444
-</pre></div><hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:22 2004 for InspIRCd by
+<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
+00486
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 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 05504e831..52e729483 100644
--- a/docs/module-doc/modules_8cpp.html
+++ b/docs/module-doc/modules_8cpp.html
@@ -37,12 +37,14 @@ Include dependency graph for modules.cpp:<p><center><img src="modules_8cpp__incl
<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 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">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#a6">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#a7">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#a8">DoAddExtendedMode</a> (char modechar, int type, bool requires_oper, int params_on, int params_off)</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#a9">modules</a> (255)</td></tr>
-<tr><td nowrap align=right valign=top>std::vector&lt; <a class="el" href="modules_8h.html#a12">ircd_module</a> * &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8cpp.html#a10">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#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 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>
@@ -69,7 +71,7 @@ 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#l00032">32</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#l00033">33</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>
@@ -93,13 +95,13 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00032">32</a> o
<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>.
+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>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00038">ModeDefined()</a>, <a class="el" href="modules_8cpp-source.html#l00080">ModeDefinedOff()</a>, <a class="el" href="modules_8cpp-source.html#l00067">ModeDefinedOn()</a>, and <a class="el" href="modules_8cpp-source.html#l00052">ModeDefinedOper()</a>. </td>
+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>
</tr>
</table>
<hr><h2>Function Documentation</h2>
-<a name="a8" doxytag="modules.cpp::DoAddExtendedMode"></a><p>
+<a name="a9" doxytag="modules.cpp::DoAddExtendedMode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -154,29 +156,29 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00038">ModeDefined()
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00093">93</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#l00108">108</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00035">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00038">ModeDefined()</a>.
+References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00039">ModeDefined()</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00317">Server::AddExtendedMode()</a>.
+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>.
<p>
-<div class="fragment"><pre>00094 {
-00095 <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#a4">ModeDefined</a>(modechar,type)) {
-00096 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00097 }
-00098 <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));
-00099 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00100 }
+<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 }
</pre></div> </td>
</tr>
</table>
-<a name="a10" doxytag="modules.cpp::factory"></a><p>
+<a name="a12" 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#a12">ircd_module</a>*&gt; factory </td>
+ <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" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">255&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
@@ -236,28 +238,28 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00317">Server::AddEx
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00038">38</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#l00039">39</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00035">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00033">ExtModeListIter</a>.
+References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00034">ExtModeListIter</a>.
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00093">DoAddExtendedMode()</a>.
+Referenced by <a class="el" href="modules_8cpp-source.html#l00108">DoAddExtendedMode()</a>.
<p>
-<div class="fragment"><pre>00039 {
-00040 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a2">EMode</a>.size());
-00041 <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++)
-00042 {
-00043 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);
-00044 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-00045 {
-00046 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00047 }
-00048 }
-00049 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00050 }
+<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 }
</pre></div> </td>
</tr>
</table>
-<a name="a7" doxytag="modules.cpp::ModeDefinedOff"></a><p>
+<a name="a8" doxytag="modules.cpp::ModeDefinedOff"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -294,24 +296,24 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00093">DoAddExtended
<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>.
+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>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00035">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00033">ExtModeListIter</a>.
+References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00034">ExtModeListIter</a>.
<p>
-<div class="fragment"><pre>00081 {
-00082 <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++)
-00083 {
-00084 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-00085 {
-00086 <span class="keywordflow">return</span> i-&gt;params_when_off;
-00087 }
-00088 }
-00089 <span class="keywordflow">return</span> 0;
-00090 }
+<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 }
</pre></div> </td>
</tr>
</table>
-<a name="a6" doxytag="modules.cpp::ModeDefinedOn"></a><p>
+<a name="a7" doxytag="modules.cpp::ModeDefinedOn"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -348,30 +350,86 @@ References <a class="el" href="modules_8cpp-source.html#l00035">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>.
+<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>.
+<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 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a6" doxytag="modules.cpp::ModeDefinedOper"></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 ModeDefinedOper </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">char&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>modechar</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>type</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
Definition at line <a class="el" href="modules_8cpp-source.html#l00067">67</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00035">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00033">ExtModeListIter</a>.
+References <a class="el" href="modules_8cpp-source.html#l00036">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00034">ExtModeListIter</a>.
<p>
<div class="fragment"><pre>00068 {
-00069 <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++)
-00070 {
-00071 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-00072 {
-00073 <span class="keywordflow">return</span> i-&gt;params_when_on;
-00074 }
-00075 }
-00076 <span class="keywordflow">return</span> 0;
-00077 }
+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 }
</pre></div> </td>
</tr>
</table>
-<a name="a5" doxytag="modules.cpp::ModeDefinedOper"></a><p>
+<a name="a5" doxytag="modules.cpp::ModeIsListMode"></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 ModeDefinedOper </td>
+ <td class="md" nowrap valign="top"> bool ModeIsListMode </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">char&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>modechar</em>, </td>
@@ -402,26 +460,74 @@ References <a class="el" href="modules_8cpp-source.html#l00035">EMode</a>, and <
<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>.
+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>.
+<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>.
+<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 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a10" doxytag="modules.cpp::ModeMakeList"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void ModeMakeList </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">char&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>modechar</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<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>.
+<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>.
<p>
-References <a class="el" href="modules_8cpp-source.html#l00035">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00033">ExtModeListIter</a>.
+Referenced by <a class="el" href="modules_8cpp-source.html#l00371">Server::AddExtendedListMode()</a>.
<p>
-<div class="fragment"><pre>00053 {
-00054 log(DEBUG,<span class="stringliteral">"Size of extmodes vector is %d"</span>,<a class="code" href="modules_8cpp.html#a2">EMode</a>.size());
-00055 <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++)
-00056 {
-00057 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);
-00058 <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>))
-00059 {
-00060 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00061 }
-00062 }
-00063 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00064 }
+<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 }
</pre></div> </td>
</tr>
</table>
-<a name="a9" doxytag="modules.cpp::modules"></a><p>
+<a name="a11" doxytag="modules.cpp::modules"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -472,9 +578,9 @@ References <a class="el" href="modules_8cpp-source.html#l00035">EMode</a>, and <
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00035">35</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#l00036">36</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#l00093">DoAddExtendedMode()</a>, <a class="el" href="modules_8cpp-source.html#l00038">ModeDefined()</a>, <a class="el" href="modules_8cpp-source.html#l00080">ModeDefinedOff()</a>, <a class="el" href="modules_8cpp-source.html#l00067">ModeDefinedOn()</a>, and <a class="el" href="modules_8cpp-source.html#l00052">ModeDefinedOper()</a>. </td>
+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>
</tr>
</table>
<a name="a3" doxytag="modules.cpp::MODCOUNT"></a><p>
@@ -498,10 +604,10 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00093">DoAddExtended
<p>
<p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00442">442</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>. </td>
+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>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:28 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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_8h-source.html b/docs/module-doc/modules_8h-source.html
index da3ae5bd7..687d9919d 100644
--- a/docs/module-doc/modules_8h-source.html
+++ b/docs/module-doc/modules_8h-source.html
@@ -16,220 +16,245 @@
00008 <span class="preprocessor">#ifndef __PLUGIN_H</span>
00009 <span class="preprocessor"></span><span class="preprocessor">#define __PLUGIN_H</span>
00010 <span class="preprocessor"></span>
-<a name="l00011"></a><a class="code" href="modules_8h.html#a0">00011</a> <span class="preprocessor">#define DEBUG 10</span>
-<a name="l00012"></a><a class="code" href="modules_8h.html#a1">00012</a> <span class="preprocessor"></span><span class="preprocessor">#define VERBOSE 20</span>
-<a name="l00013"></a><a class="code" href="modules_8h.html#a2">00013</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT 30</span>
-<a name="l00014"></a><a class="code" href="modules_8h.html#a3">00014</a> <span class="preprocessor"></span><span class="preprocessor">#define SPARSE 40</span>
-<a name="l00015"></a><a class="code" href="modules_8h.html#a4">00015</a> <span class="preprocessor"></span><span class="preprocessor">#define NONE 50</span>
-00016 <span class="preprocessor"></span>
-<a name="l00017"></a><a class="code" href="modules_8h.html#a5">00017</a> <span class="preprocessor">#define MT_CHANNEL 1</span>
-<a name="l00018"></a><a class="code" href="modules_8h.html#a6">00018</a> <span class="preprocessor"></span><span class="preprocessor">#define MT_CLIENT 2</span>
-<a name="l00019"></a><a class="code" href="modules_8h.html#a7">00019</a> <span class="preprocessor"></span><span class="preprocessor">#define MT_SERVER 3</span>
-00020 <span class="preprocessor"></span>
-00021 <span class="preprocessor">#include "dynamic.h"</span>
-00022 <span class="preprocessor">#include "<a class="code" href="base_8h.html">base.h</a>"</span>
-00023 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span>
-00024 <span class="preprocessor">#include &lt;string&gt;</span>
-00025 <span class="preprocessor">#include &lt;deque&gt;</span>
-00026 <span class="preprocessor">#include &lt;sstream&gt;</span>
-00027
-<a name="l00030"></a><a class="code" href="modules_8h.html#a10">00030</a> <span class="keyword">typedef</span> std::deque&lt;std::string&gt; <a class="code" href="modules_8h.html#a10">file_cache</a>;
-<a name="l00031"></a><a class="code" href="modules_8h.html#a11">00031</a> <span class="keyword">typedef</span> <a class="code" href="modules_8h.html#a10">file_cache</a> <a class="code" href="modules_8h.html#a11">string_list</a>;
-00032
-00033
-00034 <span class="comment">// This #define allows us to call a method in all</span>
-00035 <span class="comment">// loaded modules in a readable simple way, e.g.:</span>
-00036 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span>
-00037
-<a name="l00038"></a><a class="code" href="modules_8h.html#a8">00038</a> <span class="preprocessor">#define FOREACH_MOD for (int i = 0; i &lt;= MODCOUNT; i++) modules[i]-&gt;</span>
-00039 <span class="preprocessor"></span>
-00040 <span class="comment">// This define is similar to the one above but returns a result in MOD_RESULT.</span>
-00041 <span class="comment">// The first module to return a nonzero result is the value to be accepted,</span>
-00042 <span class="comment">// and any modules after are ignored.</span>
-00043
-00044 <span class="comment">// *********************************************************************************************</span>
-00045
-<a name="l00046"></a><a class="code" href="modules_8h.html#a9">00046</a> <span class="preprocessor">#define FOREACH_RESULT(x) { MOD_RESULT = 0; \</span>
-00047 <span class="preprocessor"> for (int i = 0; i &lt;= MODCOUNT; i++) { \</span>
-00048 <span class="preprocessor"> int res = modules[i]-&gt;x ; \</span>
-00049 <span class="preprocessor"> if (res) { \</span>
-00050 <span class="preprocessor"> MOD_RESULT = res; \</span>
-00051 <span class="preprocessor"> break; \</span>
-00052 <span class="preprocessor"> } \</span>
-00053 <span class="preprocessor"> } \</span>
-00054 <span class="preprocessor"> } </span>
-00055 <span class="preprocessor"></span>
-00056 <span class="comment">// *********************************************************************************************</span>
+00011 <span class="comment">// log levels</span>
+00012
+<a name="l00013"></a><a class="code" href="modules_8h.html#a0">00013</a> <span class="preprocessor">#define DEBUG 10</span>
+<a name="l00014"></a><a class="code" href="modules_8h.html#a1">00014</a> <span class="preprocessor"></span><span class="preprocessor">#define VERBOSE 20</span>
+<a name="l00015"></a><a class="code" href="modules_8h.html#a2">00015</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT 30</span>
+<a name="l00016"></a><a class="code" href="modules_8h.html#a3">00016</a> <span class="preprocessor"></span><span class="preprocessor">#define SPARSE 40</span>
+<a name="l00017"></a><a class="code" href="modules_8h.html#a4">00017</a> <span class="preprocessor"></span><span class="preprocessor">#define NONE 50</span>
+00018 <span class="preprocessor"></span>
+00019 <span class="comment">// used with OnExtendedMode() method of modules</span>
+00020
+<a name="l00021"></a><a class="code" href="modules_8h.html#a5">00021</a> <span class="preprocessor">#define MT_CHANNEL 1</span>
+<a name="l00022"></a><a class="code" href="modules_8h.html#a6">00022</a> <span class="preprocessor"></span><span class="preprocessor">#define MT_CLIENT 2</span>
+<a name="l00023"></a><a class="code" href="modules_8h.html#a7">00023</a> <span class="preprocessor"></span><span class="preprocessor">#define MT_SERVER 3</span>
+00024 <span class="preprocessor"></span>
+00025 <span class="comment">// used with OnAccessCheck() method of modules</span>
+00026
+<a name="l00027"></a><a class="code" href="modules_8h.html#a8">00027</a> <span class="preprocessor">#define ACR_DEFAULT 0 // Do default action (act as if the module isnt even loaded)</span>
+<a name="l00028"></a><a class="code" href="modules_8h.html#a9">00028</a> <span class="preprocessor"></span><span class="preprocessor">#define ACR_DENY 1 // deny the action</span>
+<a name="l00029"></a><a class="code" href="modules_8h.html#a10">00029</a> <span class="preprocessor"></span><span class="preprocessor">#define ACR_ALLOW 2 // allow the action</span>
+00030 <span class="preprocessor"></span>
+<a name="l00031"></a><a class="code" href="modules_8h.html#a11">00031</a> <span class="preprocessor">#define AC_KICK 0 // a user is being kicked</span>
+<a name="l00032"></a><a class="code" href="modules_8h.html#a12">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_DEOP 1 // a user is being deopped</span>
+<a name="l00033"></a><a class="code" href="modules_8h.html#a13">00033</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_OP 2 // a user is being opped</span>
+<a name="l00034"></a><a class="code" href="modules_8h.html#a14">00034</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_VOICE 3 // a user is being voiced</span>
+<a name="l00035"></a><a class="code" href="modules_8h.html#a15">00035</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_DEVOICE 4 // a user is being devoiced</span>
+<a name="l00036"></a><a class="code" href="modules_8h.html#a16">00036</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_HALFOP 5 // a user is being halfopped</span>
+<a name="l00037"></a><a class="code" href="modules_8h.html#a17">00037</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_DEHALFOP 6 // a user is being dehalfopped</span>
+<a name="l00038"></a><a class="code" href="modules_8h.html#a18">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_INVITE 7 // a user is being invited</span>
+<a name="l00039"></a><a class="code" href="modules_8h.html#a19">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_GENERAL_MODE 8 // a user channel mode is being changed</span>
+00040 <span class="preprocessor"></span>
+00041 <span class="preprocessor">#include "dynamic.h"</span>
+00042 <span class="preprocessor">#include "<a class="code" href="base_8h.html">base.h</a>"</span>
+00043 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span>
+00044 <span class="preprocessor">#include &lt;string&gt;</span>
+00045 <span class="preprocessor">#include &lt;deque&gt;</span>
+00046 <span class="preprocessor">#include &lt;sstream&gt;</span>
+00047
+<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>
00057
-00058 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#a13">createcommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams);
-00059 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#a14">server_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-00060
-00061 <span class="comment">// class Version holds the version information of a Module, returned</span>
-00062 <span class="comment">// by Module::GetVersion (thanks RD)</span>
+<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
-<a name="l00068"></a><a class="code" href="classVersion.html">00068</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>
-00069 {
-00070 <span class="keyword">public</span>:
-<a name="l00071"></a><a class="code" href="classVersion.html#m2">00071</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>;
-00072 <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);
-00073 };
-00074
-<a name="l00080"></a><a class="code" href="classAdmin.html">00080</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>
-00081 {
-00082 <span class="keyword">public</span>:
-<a name="l00083"></a><a class="code" href="classAdmin.html#m2">00083</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>;
-00084 <a class="code" href="classAdmin.html#a0">Admin</a>(std::string name, std::string email, std::string nick);
-00085 };
-00086
-<a name="l00092"></a><a class="code" href="classModule.html">00092</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>
-00093 {
-00094 <span class="keyword">public</span>:
-00095
-00099 <a class="code" href="classModule.html#a0">Module</a>();
-00100
-00104 <span class="keyword">virtual</span> <a class="code" href="classModule.html#a1">~Module</a>();
-00105
-00110 <span class="keyword">virtual</span> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#a2">GetVersion</a>();
-00111
-00115 <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);
-00116
-00120 <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);
-00121
-00126 <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);
-00127
-00132 <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);
-00133
-00140 <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);
+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
-00149 <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);
-00150
-00156 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a9">OnRehash</a>();
-00157
-00166 <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);
-00167
-00177 <span class="keyword">virtual</span> <span class="keywordtype">bool</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);
-00178
-00191 <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);
-00192
-00193
-00198 <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);
-00199
-00208 <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);
-00209
-00214 <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);
-00215
-00224 <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);
-00225
-00234 <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);
+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
-00243 <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);
-00244 };
+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
-00246
-<a name="l00252"></a><a class="code" href="classServer.html">00252</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>
-00253 {
-00254 <span class="keyword">public</span>:
-00258 <a class="code" href="classServer.html#a0">Server</a>();
-00262 <span class="keyword">virtual</span> <a class="code" href="classServer.html#a1">~Server</a>();
-00263
-00267 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">SendOpers</a>(std::string s);
-00272 <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);
-00277 <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);
-00282 <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);
-00287 <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);
-00302 <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);
-00309 <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);
-00314 <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);
-00322 <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);
-00327 <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);
-00328
-00332 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">IsNick</a>(std::string nick);
-00336 <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);
-00340 <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);
-00344 <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);
-00349 <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);
-00352 <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a17">GetServerName</a>();
-00355 <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a18">GetNetworkName</a>();
-00361 <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a19">GetAdmin</a>();
-00380 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a20">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);
-00381
-00396 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a21">AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams);
-00397
-00419 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a22">SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-00420
-00433 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a23">SendToModeMask</a>(std::string modes, <span class="keywordtype">int</span> flags, std::string text);
-00434
-00440 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a24">JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string key);
-00441
-00447 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a25">PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string reason);
-00448
-00454 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a26">ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string nickname);
-00455
-00466 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a27">QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string reason);
-00467
-00472 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a28">MatchText</a>(std::string sliteral, std::string spattern);
-00473
-00485 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a29">CallCommandHandler</a>(std::string commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
-00486
-00492 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a30">ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string host);
-00493
-00499 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a31">ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string gecos);
-00500
-00509 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a32">IsUlined</a>(std::string server);
-00510 };
-00511
-<a name="l00518"></a><a class="code" href="classConfigReader.html">00518</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>
-00519 {
-00520 <span class="keyword">protected</span>:
-<a name="l00526"></a><a class="code" href="classConfigReader.html#n0">00526</a> std::stringstream *<a class="code" href="classConfigReader.html#n0">cache</a>;
-<a name="l00529"></a><a class="code" href="classConfigReader.html#n1">00529</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#n1">error</a>;
-00530
-00531 <span class="keyword">public</span>:
-00536 <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(); <span class="comment">// default constructor reads ircd.conf</span>
-00540 <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>
-00544 <span class="comment"></span> <a class="code" href="classConfigReader.html#a2">~ConfigReader</a>();
-00549 std::string <a class="code" href="classConfigReader.html#a3">ReadValue</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index);
-00556 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a4">Enumerate</a>(std::string tag);
-00561 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a5">Verify</a>();
-00562
-00568 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a6">EnumerateValues</a>(std::string tag, <span class="keywordtype">int</span> index);
-00569 };
-00570
-00571
-00572
-<a name="l00578"></a><a class="code" href="classFileReader.html">00578</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>
-00579 {
-<a name="l00580"></a><a class="code" href="classFileReader.html#o0">00580</a> <a class="code" href="modules_8h.html#a10">file_cache</a> <a class="code" href="classFileReader.html#o0">fc</a>;
-00581 <span class="keyword">public</span>:
-00586 <a class="code" href="classFileReader.html#a0">FileReader</a>();
-00587
-00593 <a class="code" href="classFileReader.html#a0">FileReader</a>(std::string filename);
-00594
-00598 <a class="code" href="classFileReader.html#a2">~FileReader</a>();
-00599
-00605 <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">LoadFile</a>(std::string filename);
-00606
-00610 <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#a4">Exists</a>();
-00611
-00616 std::string <a class="code" href="classFileReader.html#a5">GetLine</a>(<span class="keywordtype">int</span> x);
-00617
-00623 <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a6">FileSize</a>();
-00624 };
-00625
-00626
-<a name="l00633"></a><a class="code" href="classModuleFactory.html">00633</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>
-00634 {
-00635 <span class="keyword">public</span>:
-<a name="l00636"></a><a class="code" href="classModuleFactory.html#a0">00636</a> <a class="code" href="classModuleFactory.html#a0">ModuleFactory</a>() { }
-<a name="l00637"></a><a class="code" href="classModuleFactory.html#a1">00637</a> <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#a1">~ModuleFactory</a>() { }
-00642 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#a2">CreateModule</a>() = 0;
-00643 };
-00644
-00645
-<a name="l00646"></a><a class="code" href="modules_8h.html#a12">00646</a> <span class="keyword">typedef</span> DLLFactory&lt;ModuleFactory&gt; <a class="code" href="modules_8h.html#a12">ircd_module</a>;
-00647
-00648 <span class="preprocessor">#endif</span>
-</pre></div><hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:22 2004 for InspIRCd by
+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>();
+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);
+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);
+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
<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 7f2d81d63..c4dc01702 100644
--- a/docs/module-doc/modules_8h.html
+++ b/docs/module-doc/modules_8h.html
@@ -53,18 +53,320 @@ 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#a5">MT_CHANNEL</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a6">MT_CLIENT</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a7">MT_SERVER</a>&nbsp;&nbsp;&nbsp;3</td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a8">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#a9">FOREACH_RESULT</a>(x)</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a8">ACR_DEFAULT</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a9">ACR_DENY</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a10">ACR_ALLOW</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a11">AC_KICK</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a12">AC_DEOP</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a13">AC_OP</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a14">AC_VOICE</a>&nbsp;&nbsp;&nbsp;3</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a15">AC_DEVOICE</a>&nbsp;&nbsp;&nbsp;4</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a16">AC_HALFOP</a>&nbsp;&nbsp;&nbsp;5</td></tr>
+<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#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#a10">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="#a10"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef <a class="el" href="modules_8h.html#a10">file_cache</a>&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a11">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#a12">ircd_module</a></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 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#a13">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#a14">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#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>
</table>
<hr><h2>Define Documentation</h2>
+<a name="a17" doxytag="modules.h::AC_DEHALFOP"></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 AC_DEHALFOP&nbsp;&nbsp;&nbsp;6
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00037">37</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="a12" doxytag="modules.h::AC_DEOP"></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 AC_DEOP&nbsp;&nbsp;&nbsp;1
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00032">32</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="a15" doxytag="modules.h::AC_DEVOICE"></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 AC_DEVOICE&nbsp;&nbsp;&nbsp;4
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00035">35</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="a19" doxytag="modules.h::AC_GENERAL_MODE"></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 AC_GENERAL_MODE&nbsp;&nbsp;&nbsp;8
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00039">39</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="a16" doxytag="modules.h::AC_HALFOP"></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 AC_HALFOP&nbsp;&nbsp;&nbsp;5
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00036">36</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="a18" doxytag="modules.h::AC_INVITE"></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 AC_INVITE&nbsp;&nbsp;&nbsp;7
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00038">38</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="a11" doxytag="modules.h::AC_KICK"></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 AC_KICK&nbsp;&nbsp;&nbsp;0
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00031">31</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="a13" doxytag="modules.h::AC_OP"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define AC_OP&nbsp;&nbsp;&nbsp;2
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00033">33</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="a14" doxytag="modules.h::AC_VOICE"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define AC_VOICE&nbsp;&nbsp;&nbsp;3
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00034">34</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="a10" doxytag="modules.h::ACR_ALLOW"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define ACR_ALLOW&nbsp;&nbsp;&nbsp;2
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00029">29</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="a8" doxytag="modules.h::ACR_DEFAULT"></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 ACR_DEFAULT&nbsp;&nbsp;&nbsp;0
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="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>
+ </tr>
+</table>
+<a name="a9" doxytag="modules.h::ACR_DENY"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define ACR_DENY&nbsp;&nbsp;&nbsp;1
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00028">28</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
<a name="a0" doxytag="modules.h::DEBUG"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
@@ -86,7 +388,7 @@ This graph shows which files directly or indirectly include this file:<p><center
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00011">11</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#l00013">13</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
</tr>
</table>
<a name="a2" doxytag="modules.h::DEFAULT"></a><p>
@@ -110,10 +412,10 @@ Definition at line <a class="el" href="modules_8h-source.html#l00011">11</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00013">13</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#l00015">15</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
</tr>
</table>
-<a name="a8" doxytag="modules.h::FOREACH_MOD"></a><p>
+<a name="a20" doxytag="modules.h::FOREACH_MOD"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -134,10 +436,10 @@ Definition at line <a class="el" href="modules_8h-source.html#l00013">13</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00038">38</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+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>
</tr>
</table>
-<a name="a9" doxytag="modules.h::FOREACH_RESULT"></a><p>
+<a name="a21" doxytag="modules.h::FOREACH_RESULT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -163,7 +465,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00038">38</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#a9">modules</a>[i]-&gt;x ; \
+ <span class="keywordtype">int</span> res = <a class="code" href="modules_8cpp.html#a11">modules</a>[i]-&gt;x ; \
<span class="keywordflow">if</span> (res) { \
MOD_RESULT = res; \
<span class="keywordflow">break</span>; \
@@ -172,7 +474,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00038">38</a> of
}
</pre></div>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00046">46</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#l00066">66</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>
@@ -196,7 +498,9 @@ Definition at line <a class="el" href="modules_8h-source.html#l00046">46</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00017">17</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#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>
</tr>
</table>
<a name="a6" doxytag="modules.h::MT_CLIENT"></a><p>
@@ -220,9 +524,9 @@ Definition at line <a class="el" href="modules_8h-source.html#l00017">17</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00018">18</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#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#l00317">Server::AddExtendedMode()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00351">Server::AddExtendedMode()</a>. </td>
</tr>
</table>
<a name="a7" doxytag="modules.h::MT_SERVER"></a><p>
@@ -246,9 +550,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00317">Server::AddEx
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00019">19</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#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#l00317">Server::AddExtendedMode()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00351">Server::AddExtendedMode()</a>. </td>
</tr>
</table>
<a name="a4" doxytag="modules.h::NONE"></a><p>
@@ -272,7 +576,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00317">Server::AddEx
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00015">15</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#l00017">17</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
</tr>
</table>
<a name="a3" doxytag="modules.h::SPARSE"></a><p>
@@ -296,7 +600,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#l00014">14</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#l00016">16</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
</tr>
</table>
<a name="a1" doxytag="modules.h::VERBOSE"></a><p>
@@ -320,11 +624,11 @@ Definition at line <a class="el" href="modules_8h-source.html#l00014">14</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00012">12</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#l00014">14</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
</tr>
</table>
<hr><h2>Typedef Documentation</h2>
-<a name="a10" doxytag="modules.h::file_cache"></a><p>
+<a name="a22" doxytag="modules.h::file_cache"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -347,12 +651,12 @@ Low level definition of a <a class="el" href="classFileReader.html">FileReader</
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00030">30</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#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#l00391">FileReader::FileReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00402">FileReader::LoadFile()</a>. </td>
+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>
</tr>
</table>
-<a name="a12" doxytag="modules.h::ircd_module"></a><p>
+<a name="a24" doxytag="modules.h::ircd_module"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -373,16 +677,16 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00391">FileReader::F
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00646">646</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#l00716">716</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
</tr>
</table>
-<a name="a11" doxytag="modules.h::string_list"></a><p>
+<a name="a23" doxytag="modules.h::string_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"> typedef <a class="el" href="modules_8h.html#a10">file_cache</a> string_list
+ <td class="md" nowrap valign="top"> typedef <a class="el" href="modules_8h.html#a22">file_cache</a> string_list
</table>
</td>
</tr>
@@ -397,11 +701,11 @@ Definition at line <a class="el" href="modules_8h-source.html#l00646">646</a> of
<p>
<p>
-Definition at line <a class="el" href="modules_8h-source.html#l00031">31</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </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>. </td>
</tr>
</table>
<hr><h2>Function Documentation</h2>
-<a name="a13" doxytag="modules.h::createcommand"></a><p>
+<a name="a25" doxytag="modules.h::createcommand"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -450,10 +754,10 @@ Definition at line <a class="el" href="modules_8h-source.html#l00031">31</a> of
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00197">Server::AddCommand()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00226">Server::AddCommand()</a>. </td>
</tr>
</table>
-<a name="a14" doxytag="modules.h::server_mode"></a><p>
+<a name="a26" doxytag="modules.h::server_mode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
@@ -496,10 +800,10 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00197">Server::AddCo
<p>
<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00202">Server::SendMode()</a>. </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00231">Server::SendMode()</a>. </td>
</tr>
</table>
-<hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:29 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/namespaces.html b/docs/module-doc/namespaces.html
index d682b327e..c186aed4c 100644
--- a/docs/module-doc/namespaces.html
+++ b/docs/module-doc/namespaces.html
@@ -9,7 +9,7 @@
<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="namespacestd.html">std</a></td><td class="indexvalue"></td></tr>
</table>
-<hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:51 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/namespacestd.html b/docs/module-doc/namespacestd.html
index a042c7dc2..9c3e71c0b 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 Fri Apr 30 15:46:51 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/servers_8cpp-source.html b/docs/module-doc/servers_8cpp-source.html
index 979259f7c..6c852e2b5 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 Fri Apr 30 15:46:22 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 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 f0da23d7e..8f79de16e 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 Fri Apr 30 15:46:29 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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-source.html b/docs/module-doc/servers_8h-source.html
index 76c39de77..15f392ea0 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 Fri Apr 30 15:46:22 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 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 4924ab54e..3b2f5a1c2 100644
--- a/docs/module-doc/servers_8h.html
+++ b/docs/module-doc/servers_8h.html
@@ -82,7 +82,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 Fri Apr 30 15:46:29 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/users_8cpp-source.html b/docs/module-doc/users_8cpp-source.html
index d6aca8a62..901476431 100644
--- a/docs/module-doc/users_8cpp-source.html
+++ b/docs/module-doc/users_8cpp-source.html
@@ -122,44 +122,40 @@
00114 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this-&gt;nick,this-&gt;oper);
00115 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&amp;config_f);
00116 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&amp;savept);
-00117 <span class="comment">//myclass = savept;</span>
-00118 <span class="keywordflow">while</span> (myclass)
-00119 {
-00120 log(DEBUG,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
-00121 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;config_f); k++)
-00122 {
-00123 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;config_f);
-00124 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
-00125 {
-00126 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;config_f);
-00127 log(DEBUG,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
+00117 <span class="keywordflow">while</span> (myclass)
+00118 {
+00119 log(DEBUG,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
+00120 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;config_f); k++)
+00121 {
+00122 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;config_f);
+00123 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
+00124 {
+00125 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;config_f);
+00126 log(DEBUG,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
+00127
00128
-00129
-00130 mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
-00131 <span class="comment">//mycmd = savept2;</span>
-00132 <span class="keywordflow">while</span> (mycmd)
-00133 {
-00134 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
-00135 {
-00136 log(DEBUG,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
-00137 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00138 }
-00139 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
-00140 <span class="comment">//mycmd = savept2;</span>
-00141 }
-00142 }
-00143 }
-00144 myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
-00145 <span class="comment">//myclass = savept;</span>
-00146 }
-00147 }
-00148 }
-00149 }
-00150 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00151 }
-00152
-00153
-</pre></div><hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:22 2004 for InspIRCd by
+00129 mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
+00130 <span class="keywordflow">while</span> (mycmd)
+00131 {
+00132 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
+00133 {
+00134 log(DEBUG,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
+00135 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00136 }
+00137 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
+00138 }
+00139 }
+00140 }
+00141 myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
+00142 }
+00143 }
+00144 }
+00145 }
+00146 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00147 }
+00148
+00149
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 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 183860ca4..0f6449ce6 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 Fri Apr 30 15:46:30 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/users_8h-source.html b/docs/module-doc/users_8h-source.html
index 0b08c62e1..2b6f863ad 100644
--- a/docs/module-doc/users_8h-source.html
+++ b/docs/module-doc/users_8h-source.html
@@ -110,7 +110,7 @@
00185
00186
00187 <span class="preprocessor">#endif</span>
-</pre></div><hr><address style="align: right;"><small>Generated on Fri Apr 30 15:46:22 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 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 ca67b1ba6..10bbbe439 100644
--- a/docs/module-doc/users_8h.html
+++ b/docs/module-doc/users_8h.html
@@ -250,7 +250,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 Fri Apr 30 15:46:31 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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/xline_8h-source.html b/docs/module-doc/xline_8h-source.html
index 2f140fba9..dc4bea5c4 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 Fri Apr 30 15:46:22 2004 for InspIRCd by
+</pre></div><hr><address style="align: right;"><small>Generated on Sat May 1 13:39:00 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 1ff84faa0..167ecc9cf 100644
--- a/docs/module-doc/xline_8h.html
+++ b/docs/module-doc/xline_8h.html
@@ -907,7 +907,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 Fri Apr 30 15:46:31 2004 for InspIRCd by
+<hr><address style="align: right;"><small>Generated on Sat May 1 13:39: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>