diff options
Diffstat (limited to 'docs/module-doc/modules_8cpp-source.html')
-rw-r--r-- | docs/module-doc/modules_8cpp-source.html | 1799 |
1 files changed, 899 insertions, 900 deletions
diff --git a/docs/module-doc/modules_8cpp-source.html b/docs/module-doc/modules_8cpp-source.html index a13d4ac10..ac2ff009e 100644 --- a/docs/module-doc/modules_8cpp-source.html +++ b/docs/module-doc/modules_8cpp-source.html @@ -28,923 +28,922 @@ <a name="l00019"></a>00019 <span class="preprocessor">#include "inspircd_config.h"</span> <a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="inspircd_8h.html">inspircd.h</a>"</span> <a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="inspircd__io_8h.html">inspircd_io.h</a>"</span> -<a name="l00022"></a>00022 <span class="preprocessor">#include "inspircd_util.h"</span> -<a name="l00023"></a>00023 <span class="preprocessor">#include <unistd.h></span> -<a name="l00024"></a>00024 <span class="preprocessor">#include <sys/errno.h></span> -<a name="l00025"></a>00025 <span class="preprocessor">#include <time.h></span> -<a name="l00026"></a>00026 <span class="preprocessor">#include <string></span> -<a name="l00027"></a>00027 <span class="preprocessor">#ifdef GCC3</span> -<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#include <ext/hash_map></span> -<a name="l00029"></a>00029 <span class="preprocessor">#else</span> -<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#include <hash_map></span> -<a name="l00031"></a>00031 <span class="preprocessor">#endif</span> -<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#include <map></span> -<a name="l00033"></a>00033 <span class="preprocessor">#include <sstream></span> -<a name="l00034"></a>00034 <span class="preprocessor">#include <vector></span> -<a name="l00035"></a>00035 <span class="preprocessor">#include <deque></span> -<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span> -<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span> -<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="globals_8h.html">globals.h</a>"</span> -<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span> -<a name="l00040"></a>00040 <span class="preprocessor">#include "dynamic.h"</span> -<a name="l00041"></a>00041 <span class="preprocessor">#include "wildcard.h"</span> -<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="message_8h.html">message.h</a>"</span> -<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="mode_8h.html">mode.h</a>"</span> -<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="xline_8h.html">xline.h</a>"</span> -<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="commands_8h.html">commands.h</a>"</span> -<a name="l00046"></a>00046 <span class="preprocessor">#include "inspstring.h"</span> -<a name="l00047"></a>00047 <span class="preprocessor">#include "helperfuncs.h"</span> -<a name="l00048"></a>00048 <span class="preprocessor">#include "<a class="code" href="hashcomp_8h.html">hashcomp.h</a>"</span> -<a name="l00049"></a>00049 <span class="preprocessor">#include "<a class="code" href="socket_8h.html">socket.h</a>"</span> -<a name="l00050"></a>00050 <span class="preprocessor">#include "<a class="code" href="socketengine_8h.html">socketengine.h</a>"</span> -<a name="l00051"></a>00051 <span class="preprocessor">#include "<a class="code" href="typedefs_8h.html">typedefs.h</a>"</span> -<a name="l00052"></a>00052 -<a name="l00053"></a>00053 <span class="keyword">extern</span> <a class="code" href="classSocketEngine.html">SocketEngine</a>* <a class="code" href="modules_8cpp.html#SE">SE</a>; +<a name="l00022"></a>00022 <span class="preprocessor">#include <unistd.h></span> +<a name="l00023"></a>00023 <span class="preprocessor">#include <sys/errno.h></span> +<a name="l00024"></a>00024 <span class="preprocessor">#include <time.h></span> +<a name="l00025"></a>00025 <span class="preprocessor">#include <string></span> +<a name="l00026"></a>00026 <span class="preprocessor">#ifdef GCC3</span> +<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#include <ext/hash_map></span> +<a name="l00028"></a>00028 <span class="preprocessor">#else</span> +<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#include <hash_map></span> +<a name="l00030"></a>00030 <span class="preprocessor">#endif</span> +<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#include <map></span> +<a name="l00032"></a>00032 <span class="preprocessor">#include <sstream></span> +<a name="l00033"></a>00033 <span class="preprocessor">#include <vector></span> +<a name="l00034"></a>00034 <span class="preprocessor">#include <deque></span> +<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span> +<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span> +<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="globals_8h.html">globals.h</a>"</span> +<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span> +<a name="l00039"></a>00039 <span class="preprocessor">#include "dynamic.h"</span> +<a name="l00040"></a>00040 <span class="preprocessor">#include "wildcard.h"</span> +<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="message_8h.html">message.h</a>"</span> +<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="mode_8h.html">mode.h</a>"</span> +<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="xline_8h.html">xline.h</a>"</span> +<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="commands_8h.html">commands.h</a>"</span> +<a name="l00045"></a>00045 <span class="preprocessor">#include "inspstring.h"</span> +<a name="l00046"></a>00046 <span class="preprocessor">#include "helperfuncs.h"</span> +<a name="l00047"></a>00047 <span class="preprocessor">#include "<a class="code" href="hashcomp_8h.html">hashcomp.h</a>"</span> +<a name="l00048"></a>00048 <span class="preprocessor">#include "<a class="code" href="socket_8h.html">socket.h</a>"</span> +<a name="l00049"></a>00049 <span class="preprocessor">#include "<a class="code" href="socketengine_8h.html">socketengine.h</a>"</span> +<a name="l00050"></a>00050 <span class="preprocessor">#include "<a class="code" href="typedefs_8h.html">typedefs.h</a>"</span> +<a name="l00051"></a>00051 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span> +<a name="l00052"></a>00052 <span class="preprocessor">#include "command_parse.h"</span> +<a name="l00053"></a>00053 <a name="l00054"></a>00054 <span class="keyword">extern</span> <a class="code" href="classServerConfig.html">ServerConfig</a> *<a class="code" href="channels_8cpp.html#Config">Config</a>; <a name="l00055"></a>00055 <span class="keyword">extern</span> <a class="code" href="classInspIRCd.html">InspIRCd</a>* <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>; <a name="l00056"></a>00056 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>; <a name="l00057"></a>00057 <span class="keyword">extern</span> std::vector<Module*> <a class="code" href="channels_8cpp.html#modules">modules</a>; <a name="l00058"></a>00058 <span class="keyword">extern</span> std::vector<ircd_module*> <a class="code" href="channels_8cpp.html#factory">factory</a>; <a name="l00059"></a>00059 <span class="keyword">extern</span> std::vector<InspSocket*> <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>; -<a name="l00060"></a>00060 -<a name="l00061"></a>00061 <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#TIME">TIME</a>; -<a name="l00062"></a>00062 <span class="keyword">class </span><a class="code" href="classServer.html">Server</a>; -<a name="l00063"></a>00063 <span class="keyword">extern</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[65536]; -<a name="l00064"></a>00064 -<a name="l00065"></a>00065 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#user_5Fhash">user_hash</a> <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>; -<a name="l00066"></a>00066 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#chan_5Fhash">chan_hash</a> <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>; -<a name="l00067"></a>00067 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#command_5Ftable">command_table</a> <a class="code" href="modules_8cpp.html#cmdlist">cmdlist</a>; -<a name="l00068"></a><a class="code" href="modules_8cpp.html#EMode">00068</a> <a class="code" href="typedefs_8h.html#ExtModeList">ExtModeList</a> <a class="code" href="modules_8cpp.html#EMode">EMode</a>; -<a name="l00069"></a>00069 -<a name="l00070"></a>00070 <span class="comment">// returns true if an extended mode character is in use</span> -<a name="l00071"></a><a class="code" href="modules_8h.html#ModeDefined_28char_20c_2C_20int_20i_29">00071</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type) -<a name="l00072"></a>00072 { -<a name="l00073"></a>00073 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i < <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++) -<a name="l00074"></a>00074 { -<a name="l00075"></a>00075 <span class="keywordflow">if</span> ((i->modechar == modechar) && (i->type == type)) -<a name="l00076"></a>00076 { -<a name="l00077"></a>00077 <span class="keywordflow">return</span> <span class="keyword">true</span>; -<a name="l00078"></a>00078 } -<a name="l00079"></a>00079 } -<a name="l00080"></a>00080 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00081"></a>00081 } -<a name="l00082"></a>00082 -<a name="l00083"></a><a class="code" href="modules_8h.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">00083</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">ModeIsListMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type) -<a name="l00084"></a>00084 { -<a name="l00085"></a>00085 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i < <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++) -<a name="l00086"></a>00086 { -<a name="l00087"></a>00087 <span class="keywordflow">if</span> ((i->modechar == modechar) && (i->type == type) && (i->list == <span class="keyword">true</span>)) -<a name="l00088"></a>00088 { -<a name="l00089"></a>00089 <span class="keywordflow">return</span> <span class="keyword">true</span>; -<a name="l00090"></a>00090 } -<a name="l00091"></a>00091 } -<a name="l00092"></a>00092 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00093"></a>00093 } -<a name="l00094"></a>00094 -<a name="l00095"></a><a class="code" href="modules_8h.html#ModeDefinedOper_28char_20c_2C_20int_20i_29">00095</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefinedOper_28char_20modechar_2C_20int_20type_29">ModeDefinedOper</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type) -<a name="l00096"></a>00096 { -<a name="l00097"></a>00097 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i < <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++) -<a name="l00098"></a>00098 { -<a name="l00099"></a>00099 <span class="keywordflow">if</span> ((i->modechar == modechar) && (i->type == type) && (i->needsoper == <span class="keyword">true</span>)) -<a name="l00100"></a>00100 { -<a name="l00101"></a>00101 <span class="keywordflow">return</span> <span class="keyword">true</span>; -<a name="l00102"></a>00102 } -<a name="l00103"></a>00103 } -<a name="l00104"></a>00104 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00105"></a>00105 } -<a name="l00106"></a>00106 -<a name="l00107"></a>00107 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span> -<a name="l00108"></a><a class="code" href="modules_8h.html#ModeDefinedOn_28char_20c_2C_20int_20i_29">00108</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOn_28char_20modechar_2C_20int_20type_29">ModeDefinedOn</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type) -<a name="l00109"></a>00109 { -<a name="l00110"></a>00110 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i < <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++) -<a name="l00111"></a>00111 { -<a name="l00112"></a>00112 <span class="keywordflow">if</span> ((i->modechar == modechar) && (i->type == type)) -<a name="l00113"></a>00113 { -<a name="l00114"></a>00114 <span class="keywordflow">return</span> i->params_when_on; -<a name="l00115"></a>00115 } -<a name="l00116"></a>00116 } -<a name="l00117"></a>00117 <span class="keywordflow">return</span> 0; -<a name="l00118"></a>00118 } -<a name="l00119"></a>00119 -<a name="l00120"></a>00120 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span> -<a name="l00121"></a><a class="code" href="modules_8h.html#ModeDefinedOff_28char_20c_2C_20int_20i_29">00121</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOff_28char_20modechar_2C_20int_20type_29">ModeDefinedOff</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type) -<a name="l00122"></a>00122 { -<a name="l00123"></a>00123 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i < <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++) -<a name="l00124"></a>00124 { -<a name="l00125"></a>00125 <span class="keywordflow">if</span> ((i->modechar == modechar) && (i->type == type)) -<a name="l00126"></a>00126 { -<a name="l00127"></a>00127 <span class="keywordflow">return</span> i->params_when_off; -<a name="l00128"></a>00128 } -<a name="l00129"></a>00129 } -<a name="l00130"></a>00130 <span class="keywordflow">return</span> 0; -<a name="l00131"></a>00131 } -<a name="l00132"></a>00132 -<a name="l00133"></a>00133 <span class="comment">// returns true if an extended mode character is in use</span> -<a name="l00134"></a><a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">00134</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(<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) -<a name="l00135"></a>00135 { -<a name="l00136"></a>00136 <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(modechar,type)) { -<a name="l00137"></a>00137 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00138"></a>00138 } -<a name="l00139"></a>00139 <a class="code" href="modules_8cpp.html#EMode">EMode</a>.push_back(<a class="code" href="classExtMode.html">ExtMode</a>(modechar,type,requires_oper,params_on,params_off)); -<a name="l00140"></a>00140 <span class="keywordflow">return</span> <span class="keyword">true</span>; -<a name="l00141"></a>00141 } -<a name="l00142"></a>00142 -<a name="l00143"></a>00143 <span class="comment">// turns a mode into a listmode</span> -<a name="l00144"></a><a class="code" href="modules_8h.html#ModeMakeList_28char_20modechar_29">00144</a> <span class="keywordtype">void</span> <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(<span class="keywordtype">char</span> modechar) -<a name="l00145"></a>00145 { -<a name="l00146"></a>00146 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i < <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++) -<a name="l00147"></a>00147 { -<a name="l00148"></a>00148 <span class="keywordflow">if</span> ((i->modechar == modechar) && (i->type == <a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>)) -<a name="l00149"></a>00149 { -<a name="l00150"></a>00150 i->list = <span class="keyword">true</span>; -<a name="l00151"></a>00151 <span class="keywordflow">return</span>; -<a name="l00152"></a>00152 } -<a name="l00153"></a>00153 } -<a name="l00154"></a>00154 <span class="keywordflow">return</span>; -<a name="l00155"></a>00155 } -<a name="l00156"></a>00156 -<a name="l00157"></a>00157 <span class="comment">// version is a simple class for holding a modules version number</span> -<a name="l00158"></a>00158 -<a name="l00159"></a><a class="code" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">00159</a> <a class="code" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">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, <span class="keywordtype">int</span> flags) : Major(major), Minor(minor), Revision(revision), Build(build), Flags(flags) { }; -<a name="l00160"></a>00160 -<a name="l00161"></a>00161 <span class="comment">// admin is a simple class for holding a server's administrative info</span> -<a name="l00162"></a>00162 -<a name="l00163"></a><a class="code" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">00163</a> <a class="code" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">Admin::Admin</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name, <a class="code" href="namespaceirc.html#string">std::string</a> email, <a class="code" href="namespaceirc.html#string">std::string</a> nick) : Name(name), Email(email), Nick(nick) { }; -<a name="l00164"></a>00164 -<a name="l00165"></a><a class="code" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">00165</a> <a class="code" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request::Request</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="classModule.html">Module</a>* dst) : data(anydata), source(src), dest(dst) { }; -<a name="l00166"></a>00166 -<a name="l00167"></a><a class="code" href="classRequest.html#GetData_28_29">00167</a> <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#GetData_28_29">Request::GetData</a>() -<a name="l00168"></a>00168 { -<a name="l00169"></a>00169 <span class="keywordflow">return</span> this-><a class="code" href="classRequest.html#data">data</a>; -<a name="l00170"></a>00170 } -<a name="l00171"></a>00171 -<a name="l00172"></a><a class="code" href="classRequest.html#GetSource_28_29">00172</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetSource_28_29">Request::GetSource</a>() -<a name="l00173"></a>00173 { -<a name="l00174"></a>00174 <span class="keywordflow">return</span> this-><a class="code" href="classRequest.html#source">source</a>; -<a name="l00175"></a>00175 } -<a name="l00176"></a>00176 -<a name="l00177"></a><a class="code" href="classRequest.html#GetDest_28_29">00177</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetDest_28_29">Request::GetDest</a>() -<a name="l00178"></a>00178 { -<a name="l00179"></a>00179 <span class="keywordflow">return</span> this-><a class="code" href="classRequest.html#dest">dest</a>; -<a name="l00180"></a>00180 } -<a name="l00181"></a>00181 -<a name="l00182"></a><a class="code" href="classRequest.html#Send_28_29">00182</a> <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#Send_28_29">Request::Send</a>() -<a name="l00183"></a>00183 { -<a name="l00184"></a>00184 <span class="keywordflow">if</span> (this->dest) -<a name="l00185"></a>00185 { -<a name="l00186"></a>00186 <span class="keywordflow">return</span> <a class="code" href="classRequest.html#dest">dest</a>-><a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">OnRequest</a>(<span class="keyword">this</span>); -<a name="l00187"></a>00187 } -<a name="l00188"></a>00188 <span class="keywordflow">else</span> -<a name="l00189"></a>00189 { -<a name="l00190"></a>00190 <span class="keywordflow">return</span> NULL; -<a name="l00191"></a>00191 } -<a name="l00192"></a>00192 } -<a name="l00193"></a>00193 -<a name="l00194"></a><a class="code" href="classEvent.html#Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29">00194</a> <a class="code" href="classEvent.html#Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29">Event::Event</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="namespaceirc.html#string">std::string</a> eventid) : data(anydata), source(src), id(eventid) { }; -<a name="l00195"></a>00195 -<a name="l00196"></a><a class="code" href="classEvent.html#GetData_28_29">00196</a> <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#GetData_28_29">Event::GetData</a>() -<a name="l00197"></a>00197 { -<a name="l00198"></a>00198 <span class="keywordflow">return</span> this-><a class="code" href="classEvent.html#data">data</a>; -<a name="l00199"></a>00199 } -<a name="l00200"></a>00200 -<a name="l00201"></a><a class="code" href="classEvent.html#GetSource_28_29">00201</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#GetSource_28_29">Event::GetSource</a>() -<a name="l00202"></a>00202 { -<a name="l00203"></a>00203 <span class="keywordflow">return</span> this-><a class="code" href="classEvent.html#source">source</a>; -<a name="l00204"></a>00204 } -<a name="l00205"></a>00205 -<a name="l00206"></a><a class="code" href="classEvent.html#Send_28_29">00206</a> <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#Send_28_29">Event::Send</a>() -<a name="l00207"></a>00207 { -<a name="l00208"></a>00208 <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnEvent(<span class="keyword">this</span>); -<a name="l00209"></a>00209 <span class="keywordflow">return</span> NULL; -<a name="l00210"></a>00210 } -<a name="l00211"></a>00211 -<a name="l00212"></a><a class="code" href="classEvent.html#GetEventID_28_29">00212</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#GetEventID_28_29">Event::GetEventID</a>() -<a name="l00213"></a>00213 { -<a name="l00214"></a>00214 <span class="keywordflow">return</span> this-><a class="code" href="classEvent.html#id">id</a>; -<a name="l00215"></a>00215 } +<a name="l00060"></a>00060 <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#TIME">TIME</a>; +<a name="l00061"></a>00061 <span class="keyword">class </span><a class="code" href="classServer.html">Server</a>; +<a name="l00062"></a>00062 <span class="keyword">extern</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[65536]; +<a name="l00063"></a>00063 +<a name="l00064"></a>00064 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#user_5Fhash">user_hash</a> <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>; +<a name="l00065"></a>00065 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#chan_5Fhash">chan_hash</a> <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>; +<a name="l00066"></a>00066 <span class="keyword">extern</span> <a class="code" href="ctables_8h.html#command_5Ftable">command_table</a> <a class="code" href="modules_8cpp.html#cmdlist">cmdlist</a>; +<a name="l00067"></a><a class="code" href="modules_8cpp.html#EMode">00067</a> <a class="code" href="typedefs_8h.html#ExtModeList">ExtModeList</a> <a class="code" href="modules_8cpp.html#EMode">EMode</a>; +<a name="l00068"></a>00068 +<a name="l00069"></a>00069 <span class="comment">// returns true if an extended mode character is in use</span> +<a name="l00070"></a><a class="code" href="modules_8h.html#ModeDefined_28char_20c_2C_20int_20i_29">00070</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type) +<a name="l00071"></a>00071 { +<a name="l00072"></a>00072 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i < <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++) +<a name="l00073"></a>00073 { +<a name="l00074"></a>00074 <span class="keywordflow">if</span> ((i->modechar == modechar) && (i->type == type)) +<a name="l00075"></a>00075 { +<a name="l00076"></a>00076 <span class="keywordflow">return</span> <span class="keyword">true</span>; +<a name="l00077"></a>00077 } +<a name="l00078"></a>00078 } +<a name="l00079"></a>00079 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00080"></a>00080 } +<a name="l00081"></a>00081 +<a name="l00082"></a><a class="code" href="modules_8h.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">00082</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">ModeIsListMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type) +<a name="l00083"></a>00083 { +<a name="l00084"></a>00084 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i < <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++) +<a name="l00085"></a>00085 { +<a name="l00086"></a>00086 <span class="keywordflow">if</span> ((i->modechar == modechar) && (i->type == type) && (i->list == <span class="keyword">true</span>)) +<a name="l00087"></a>00087 { +<a name="l00088"></a>00088 <span class="keywordflow">return</span> <span class="keyword">true</span>; +<a name="l00089"></a>00089 } +<a name="l00090"></a>00090 } +<a name="l00091"></a>00091 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00092"></a>00092 } +<a name="l00093"></a>00093 +<a name="l00094"></a><a class="code" href="modules_8h.html#ModeDefinedOper_28char_20c_2C_20int_20i_29">00094</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefinedOper_28char_20modechar_2C_20int_20type_29">ModeDefinedOper</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type) +<a name="l00095"></a>00095 { +<a name="l00096"></a>00096 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i < <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++) +<a name="l00097"></a>00097 { +<a name="l00098"></a>00098 <span class="keywordflow">if</span> ((i->modechar == modechar) && (i->type == type) && (i->needsoper == <span class="keyword">true</span>)) +<a name="l00099"></a>00099 { +<a name="l00100"></a>00100 <span class="keywordflow">return</span> <span class="keyword">true</span>; +<a name="l00101"></a>00101 } +<a name="l00102"></a>00102 } +<a name="l00103"></a>00103 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00104"></a>00104 } +<a name="l00105"></a>00105 +<a name="l00106"></a>00106 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span> +<a name="l00107"></a><a class="code" href="modules_8h.html#ModeDefinedOn_28char_20c_2C_20int_20i_29">00107</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOn_28char_20modechar_2C_20int_20type_29">ModeDefinedOn</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type) +<a name="l00108"></a>00108 { +<a name="l00109"></a>00109 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i < <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++) +<a name="l00110"></a>00110 { +<a name="l00111"></a>00111 <span class="keywordflow">if</span> ((i->modechar == modechar) && (i->type == type)) +<a name="l00112"></a>00112 { +<a name="l00113"></a>00113 <span class="keywordflow">return</span> i->params_when_on; +<a name="l00114"></a>00114 } +<a name="l00115"></a>00115 } +<a name="l00116"></a>00116 <span class="keywordflow">return</span> 0; +<a name="l00117"></a>00117 } +<a name="l00118"></a>00118 +<a name="l00119"></a>00119 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span> +<a name="l00120"></a><a class="code" href="modules_8h.html#ModeDefinedOff_28char_20c_2C_20int_20i_29">00120</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOff_28char_20modechar_2C_20int_20type_29">ModeDefinedOff</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type) +<a name="l00121"></a>00121 { +<a name="l00122"></a>00122 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i < <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++) +<a name="l00123"></a>00123 { +<a name="l00124"></a>00124 <span class="keywordflow">if</span> ((i->modechar == modechar) && (i->type == type)) +<a name="l00125"></a>00125 { +<a name="l00126"></a>00126 <span class="keywordflow">return</span> i->params_when_off; +<a name="l00127"></a>00127 } +<a name="l00128"></a>00128 } +<a name="l00129"></a>00129 <span class="keywordflow">return</span> 0; +<a name="l00130"></a>00130 } +<a name="l00131"></a>00131 +<a name="l00132"></a>00132 <span class="comment">// returns true if an extended mode character is in use</span> +<a name="l00133"></a><a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">00133</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(<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) +<a name="l00134"></a>00134 { +<a name="l00135"></a>00135 <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(modechar,type)) { +<a name="l00136"></a>00136 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00137"></a>00137 } +<a name="l00138"></a>00138 <a class="code" href="modules_8cpp.html#EMode">EMode</a>.push_back(<a class="code" href="classExtMode.html">ExtMode</a>(modechar,type,requires_oper,params_on,params_off)); +<a name="l00139"></a>00139 <span class="keywordflow">return</span> <span class="keyword">true</span>; +<a name="l00140"></a>00140 } +<a name="l00141"></a>00141 +<a name="l00142"></a>00142 <span class="comment">// turns a mode into a listmode</span> +<a name="l00143"></a><a class="code" href="modules_8h.html#ModeMakeList_28char_20modechar_29">00143</a> <span class="keywordtype">void</span> <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(<span class="keywordtype">char</span> modechar) +<a name="l00144"></a>00144 { +<a name="l00145"></a>00145 <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i < <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++) +<a name="l00146"></a>00146 { +<a name="l00147"></a>00147 <span class="keywordflow">if</span> ((i->modechar == modechar) && (i->type == <a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>)) +<a name="l00148"></a>00148 { +<a name="l00149"></a>00149 i->list = <span class="keyword">true</span>; +<a name="l00150"></a>00150 <span class="keywordflow">return</span>; +<a name="l00151"></a>00151 } +<a name="l00152"></a>00152 } +<a name="l00153"></a>00153 <span class="keywordflow">return</span>; +<a name="l00154"></a>00154 } +<a name="l00155"></a>00155 +<a name="l00156"></a>00156 <span class="comment">// version is a simple class for holding a modules version number</span> +<a name="l00157"></a>00157 +<a name="l00158"></a><a class="code" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">00158</a> <a class="code" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">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, <span class="keywordtype">int</span> flags) : Major(major), Minor(minor), Revision(revision), Build(build), Flags(flags) { }; +<a name="l00159"></a>00159 +<a name="l00160"></a>00160 <span class="comment">// admin is a simple class for holding a server's administrative info</span> +<a name="l00161"></a>00161 +<a name="l00162"></a><a class="code" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">00162</a> <a class="code" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">Admin::Admin</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name, <a class="code" href="namespaceirc.html#string">std::string</a> email, <a class="code" href="namespaceirc.html#string">std::string</a> nick) : Name(name), Email(email), Nick(nick) { }; +<a name="l00163"></a>00163 +<a name="l00164"></a><a class="code" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">00164</a> <a class="code" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request::Request</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="classModule.html">Module</a>* dst) : data(anydata), source(src), dest(dst) { }; +<a name="l00165"></a>00165 +<a name="l00166"></a><a class="code" href="classRequest.html#GetData_28_29">00166</a> <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#GetData_28_29">Request::GetData</a>() +<a name="l00167"></a>00167 { +<a name="l00168"></a>00168 <span class="keywordflow">return</span> this-><a class="code" href="classRequest.html#data">data</a>; +<a name="l00169"></a>00169 } +<a name="l00170"></a>00170 +<a name="l00171"></a><a class="code" href="classRequest.html#GetSource_28_29">00171</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetSource_28_29">Request::GetSource</a>() +<a name="l00172"></a>00172 { +<a name="l00173"></a>00173 <span class="keywordflow">return</span> this-><a class="code" href="classRequest.html#source">source</a>; +<a name="l00174"></a>00174 } +<a name="l00175"></a>00175 +<a name="l00176"></a><a class="code" href="classRequest.html#GetDest_28_29">00176</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetDest_28_29">Request::GetDest</a>() +<a name="l00177"></a>00177 { +<a name="l00178"></a>00178 <span class="keywordflow">return</span> this-><a class="code" href="classRequest.html#dest">dest</a>; +<a name="l00179"></a>00179 } +<a name="l00180"></a>00180 +<a name="l00181"></a><a class="code" href="classRequest.html#Send_28_29">00181</a> <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#Send_28_29">Request::Send</a>() +<a name="l00182"></a>00182 { +<a name="l00183"></a>00183 <span class="keywordflow">if</span> (this->dest) +<a name="l00184"></a>00184 { +<a name="l00185"></a>00185 <span class="keywordflow">return</span> <a class="code" href="classRequest.html#dest">dest</a>-><a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">OnRequest</a>(<span class="keyword">this</span>); +<a name="l00186"></a>00186 } +<a name="l00187"></a>00187 <span class="keywordflow">else</span> +<a name="l00188"></a>00188 { +<a name="l00189"></a>00189 <span class="keywordflow">return</span> NULL; +<a name="l00190"></a>00190 } +<a name="l00191"></a>00191 } +<a name="l00192"></a>00192 +<a name="l00193"></a><a class="code" href="classEvent.html#Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29">00193</a> <a class="code" href="classEvent.html#Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29">Event::Event</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="namespaceirc.html#string">std::string</a> eventid) : data(anydata), source(src), id(eventid) { }; +<a name="l00194"></a>00194 +<a name="l00195"></a><a class="code" href="classEvent.html#GetData_28_29">00195</a> <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#GetData_28_29">Event::GetData</a>() +<a name="l00196"></a>00196 { +<a name="l00197"></a>00197 <span class="keywordflow">return</span> this-><a class="code" href="classEvent.html#data">data</a>; +<a name="l00198"></a>00198 } +<a name="l00199"></a>00199 +<a name="l00200"></a><a class="code" href="classEvent.html#GetSource_28_29">00200</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#GetSource_28_29">Event::GetSource</a>() +<a name="l00201"></a>00201 { +<a name="l00202"></a>00202 <span class="keywordflow">return</span> this-><a class="code" href="classEvent.html#source">source</a>; +<a name="l00203"></a>00203 } +<a name="l00204"></a>00204 +<a name="l00205"></a><a class="code" href="classEvent.html#Send_28_29">00205</a> <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#Send_28_29">Event::Send</a>() +<a name="l00206"></a>00206 { +<a name="l00207"></a>00207 <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnEvent(<span class="keyword">this</span>); +<a name="l00208"></a>00208 <span class="keywordflow">return</span> NULL; +<a name="l00209"></a>00209 } +<a name="l00210"></a>00210 +<a name="l00211"></a><a class="code" href="classEvent.html#GetEventID_28_29">00211</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#GetEventID_28_29">Event::GetEventID</a>() +<a name="l00212"></a>00212 { +<a name="l00213"></a>00213 <span class="keywordflow">return</span> this-><a class="code" href="classEvent.html#id">id</a>; +<a name="l00214"></a>00214 } +<a name="l00215"></a>00215 <a name="l00216"></a>00216 -<a name="l00217"></a>00217 -<a name="l00218"></a>00218 <span class="comment">// These declarations define the behavours of the base class Module (which does nothing at all)</span> -<a name="l00219"></a>00219 -<a name="l00220"></a><a class="code" href="classModule.html#Module_28Server_20_2AMe_29">00220</a> <a class="code" href="classModule.html#Module_28Server_20_2AMe_29">Module::Module</a>(<a class="code" href="classServer.html">Server</a>* Me) { } -<a name="l00221"></a><a class="code" href="classModule.html#_7EModule_28_29">00221</a> <a class="code" href="classModule.html#_7EModule_28_29">Module::~Module</a>() { } -<a name="l00222"></a><a class="code" href="classModule.html#OnUserConnect_28userrec_20_2Auser_29">00222</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserConnect_28userrec_20_2Auser_29">Module::OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { } -<a name="l00223"></a><a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">00223</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Module::OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> message) { } -<a name="l00224"></a><a class="code" href="classModule.html#OnUserDisconnect_28userrec_20_2Auser_29">00224</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserDisconnect_28userrec_20_2Auser_29">Module::OnUserDisconnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { } -<a name="l00225"></a><a class="code" href="classModule.html#OnUserJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">00225</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">Module::OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel) { } -<a name="l00226"></a><a class="code" href="classModule.html#OnUserPart_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">00226</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserPart_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">Module::OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel) { } -<a name="l00227"></a><a class="code" href="classModule.html#OnRehash_28std_3A_3Astring_20parameter_29">00227</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRehash_28std_3A_3Astring_20parameter_29">Module::OnRehash</a>(<a class="code" href="namespaceirc.html#string">std::string</a> parameter) { } -<a name="l00228"></a><a class="code" href="classModule.html#OnServerRaw_28std_3A_3Astring_20_26raw_2C_20bool_20inbound_2C_20userrec_20_2Auser_29">00228</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnServerRaw_28std_3A_3Astring_20_26raw_2C_20bool_20inbound_2C_20userrec_20_2Auser_29">Module::OnServerRaw</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user) { } -<a name="l00229"></a><a class="code" href="classModule.html#OnUserPreJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20const_20char_20_2Acname_29">00229</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20const_20char_20_2Acname_29">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="l00230"></a><a class="code" href="classModule.html#OnExtendedMode_28userrec_20_2Auser_2C_20void_20_2Atarget_2C_20char_20modechar_2C_20int_20type_2C_20bool_20mode_5Fon_2C_20string_5Flist_20_26params_29">00230</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnExtendedMode_28userrec_20_2Auser_2C_20void_20_2Atarget_2C_20char_20modechar_2C_20int_20type_2C_20bool_20mode_5Fon_2C_20string_5Flist_20_26params_29">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, <a class="code" href="modules_8h.html#string_5Flist">string_list</a> &params) { <span class="keywordflow">return</span> <span class="keyword">false</span>; } -<a name="l00231"></a><a class="code" href="classModule.html#OnMode_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">00231</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnMode_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">Module::OnMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text) { }; -<a name="l00232"></a><a class="code" href="classModule.html#GetVersion_28_29">00232</a> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#GetVersion_28_29">Module::GetVersion</a>() { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0,<a class="code" href="modules_8h.html#VF_5FVENDOR">VF_VENDOR</a>); } -<a name="l00233"></a><a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_2C_20std_3A_3Astring_20opertype_29">00233</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_2C_20std_3A_3Astring_20opertype_29">Module::OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> opertype) { }; -<a name="l00234"></a><a class="code" href="classModule.html#OnInfo_28userrec_20_2Auser_29">00234</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnInfo_28userrec_20_2Auser_29">Module::OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }; -<a name="l00235"></a><a class="code" href="classModule.html#OnWhois_28userrec_20_2Asource_2C_20userrec_20_2Adest_29">00235</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnWhois_28userrec_20_2Asource_2C_20userrec_20_2Adest_29">Module::OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest) { }; -<a name="l00236"></a><a class="code" href="classModule.html#OnUserPreInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">00236</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">Module::OnUserPreInvite</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="keywordflow">return</span> 0; }; -<a name="l00237"></a><a class="code" href="classModule.html#OnUserPreMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">00237</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">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, <a class="code" href="namespaceirc.html#string">std::string</a> &text) { <span class="keywordflow">return</span> 0; }; -<a name="l00238"></a><a class="code" href="classModule.html#OnUserPreNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">00238</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">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, <a class="code" href="namespaceirc.html#string">std::string</a> &text) { <span class="keywordflow">return</span> 0; }; -<a name="l00239"></a><a class="code" href="classModule.html#OnUserPreNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20newnick_29">00239</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20newnick_29">Module::OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newnick) { <span class="keywordflow">return</span> 0; }; -<a name="l00240"></a><a class="code" href="classModule.html#OnUserPostNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20oldnick_29">00240</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserPostNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20oldnick_29">Module::OnUserPostNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> oldnick) { }; -<a name="l00241"></a><a class="code" href="classModule.html#OnAccessCheck_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_2C_20int_20access_5Ftype_29">00241</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnAccessCheck_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_2C_20int_20access_5Ftype_29">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#ACR_5FDEFAULT">ACR_DEFAULT</a>; }; -<a name="l00242"></a><a class="code" href="classModule.html#On_30_30_35Numeric_28std_3A_3Astring_20_26output_29">00242</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#On_30_30_35Numeric_28std_3A_3Astring_20_26output_29">Module::On005Numeric</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &output) { }; -<a name="l00243"></a><a class="code" href="classModule.html#OnKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">00243</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">Module::OnKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { <span class="keywordflow">return</span> 0; }; -<a name="l00244"></a><a class="code" href="classModule.html#OnLoadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">00244</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnLoadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">Module::OnLoadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name) { }; -<a name="l00245"></a><a class="code" href="classModule.html#OnUnloadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">00245</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUnloadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">Module::OnUnloadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name) { }; -<a name="l00246"></a><a class="code" href="classModule.html#OnBackgroundTimer_28time_5Ft_20curtime_29">00246</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnBackgroundTimer_28time_5Ft_20curtime_29">Module::OnBackgroundTimer</a>(time_t curtime) { }; -<a name="l00247"></a><a class="code" href="classModule.html#OnSendList_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_2C_20char_20mode_29">00247</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSendList_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_2C_20char_20mode_29">Module::OnSendList</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel, <span class="keywordtype">char</span> mode) { }; -<a name="l00248"></a><a class="code" href="classModule.html#OnPreCommand_28std_3A_3Astring_20command_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00248</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnPreCommand_28std_3A_3Astring_20command_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Module::OnPreCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> command, <span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user) { <span class="keywordflow">return</span> 0; }; -<a name="l00249"></a><a class="code" href="classModule.html#OnCheckReady_28userrec_20_2Auser_29">00249</a> <span class="keywordtype">bool</span> <a class="code" href="classModule.html#OnCheckReady_28userrec_20_2Auser_29">Module::OnCheckReady</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }; -<a name="l00250"></a><a class="code" href="classModule.html#OnUserRegister_28userrec_20_2Auser_29">00250</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserRegister_28userrec_20_2Auser_29">Module::OnUserRegister</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }; -<a name="l00251"></a><a class="code" href="classModule.html#OnUserPreKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">00251</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">Module::OnUserPreKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { <span class="keywordflow">return</span> 0; }; -<a name="l00252"></a><a class="code" href="classModule.html#OnUserKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">00252</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">Module::OnUserKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { }; -<a name="l00253"></a><a class="code" href="classModule.html#OnRawMode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20char_20mode_2C_20std_3A_3Astring_20param_2C_20bool_20adding_2C_20int_20pcnt_29">00253</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawMode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20char_20mode_2C_20std_3A_3Astring_20param_2C_20bool_20adding_2C_20int_20pcnt_29">Module::OnRawMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keywordtype">char</span> mode, <a class="code" href="namespaceirc.html#string">std::string</a> param, <span class="keywordtype">bool</span> adding, <span class="keywordtype">int</span> pcnt) { <span class="keywordflow">return</span> 0; }; -<a name="l00254"></a><a class="code" href="classModule.html#OnCheckInvite_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">00254</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckInvite_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">Module::OnCheckInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan) { <span class="keywordflow">return</span> 0; }; -<a name="l00255"></a><a class="code" href="classModule.html#OnCheckKey_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20keygiven_29">00255</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckKey_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20keygiven_29">Module::OnCheckKey</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> keygiven) { <span class="keywordflow">return</span> 0; }; -<a name="l00256"></a><a class="code" href="classModule.html#OnCheckLimit_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">00256</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckLimit_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">Module::OnCheckLimit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan) { <span class="keywordflow">return</span> 0; }; -<a name="l00257"></a><a class="code" href="classModule.html#OnCheckBan_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">00257</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckBan_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">Module::OnCheckBan</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan) { <span class="keywordflow">return</span> 0; }; -<a name="l00258"></a><a class="code" href="classModule.html#OnStats_28char_20symbol_29">00258</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnStats_28char_20symbol_29">Module::OnStats</a>(<span class="keywordtype">char</span> symbol) { }; -<a name="l00259"></a><a class="code" href="classModule.html#OnChangeLocalUserHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">00259</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnChangeLocalUserHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">Module::OnChangeLocalUserHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost) { <span class="keywordflow">return</span> 0; }; -<a name="l00260"></a><a class="code" href="classModule.html#OnChangeLocalUserGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">00260</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnChangeLocalUserGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">Module::OnChangeLocalUserGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost) { <span class="keywordflow">return</span> 0; }; -<a name="l00261"></a><a class="code" href="classModule.html#OnLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">00261</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">Module::OnLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic) { <span class="keywordflow">return</span> 0; }; -<a name="l00262"></a><a class="code" href="classModule.html#OnEvent_28Event_20_2Aevent_29">00262</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnEvent_28Event_20_2Aevent_29">Module::OnEvent</a>(<a class="code" href="classEvent.html">Event</a>* event) { <span class="keywordflow">return</span>; }; -<a name="l00263"></a><a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">00263</a> <span class="keywordtype">char</span>* <a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">Module::OnRequest</a>(<a class="code" href="classRequest.html">Request</a>* request) { <span class="keywordflow">return</span> NULL; }; -<a name="l00264"></a><a class="code" href="classModule.html#OnOperCompare_28std_3A_3Astring_20password_2C_20std_3A_3Astring_20input_29">00264</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnOperCompare_28std_3A_3Astring_20password_2C_20std_3A_3Astring_20input_29">Module::OnOperCompare</a>(<a class="code" href="namespaceirc.html#string">std::string</a> password, <a class="code" href="namespaceirc.html#string">std::string</a> input) { <span class="keywordflow">return</span> 0; }; -<a name="l00265"></a><a class="code" href="classModule.html#OnGlobalOper_28userrec_20_2Auser_29">00265</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGlobalOper_28userrec_20_2Auser_29">Module::OnGlobalOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }; -<a name="l00266"></a><a class="code" href="classModule.html#OnGlobalConnect_28userrec_20_2Auser_29">00266</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGlobalConnect_28userrec_20_2Auser_29">Module::OnGlobalConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }; -<a name="l00267"></a><a class="code" href="classModule.html#OnAddBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">00267</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnAddBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">Module::OnAddBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask) { <span class="keywordflow">return</span> 0; }; -<a name="l00268"></a><a class="code" href="classModule.html#OnDelBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">00268</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnDelBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">Module::OnDelBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask) { <span class="keywordflow">return</span> 0; }; -<a name="l00269"></a><a class="code" href="classModule.html#OnRawSocketAccept_28int_20fd_2C_20std_3A_3Astring_20ip_2C_20int_20localport_29">00269</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRawSocketAccept_28int_20fd_2C_20std_3A_3Astring_20ip_2C_20int_20localport_29">Module::OnRawSocketAccept</a>(<span class="keywordtype">int</span> fd, <a class="code" href="namespaceirc.html#string">std::string</a> ip, <span class="keywordtype">int</span> localport) { }; -<a name="l00270"></a><a class="code" href="classModule.html#OnRawSocketWrite_28int_20fd_2C_20char_20_2Abuffer_2C_20int_20count_29">00270</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawSocketWrite_28int_20fd_2C_20char_20_2Abuffer_2C_20int_20count_29">Module::OnRawSocketWrite</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> count) { <span class="keywordflow">return</span> 0; }; -<a name="l00271"></a><a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">00271</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">Module::OnRawSocketClose</a>(<span class="keywordtype">int</span> fd) { }; -<a name="l00272"></a><a class="code" href="classModule.html#OnRawSocketRead_28int_20fd_2C_20char_20_2Abuffer_2C_20unsigned_20int_20count_2C_20int_20_26readresult_29">00272</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawSocketRead_28int_20fd_2C_20char_20_2Abuffer_2C_20unsigned_20int_20count_2C_20int_20_26readresult_29">Module::OnRawSocketRead</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> &readresult) { <span class="keywordflow">return</span> 0; }; -<a name="l00273"></a><a class="code" href="classModule.html#OnUserMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">00273</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">Module::OnUserMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text) { }; -<a name="l00274"></a><a class="code" href="classModule.html#OnUserNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">00274</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">Module::OnUserNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text) { }; -<a name="l00275"></a><a class="code" href="classModule.html#OnRemoteKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">00275</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRemoteKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">Module::OnRemoteKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { }; -<a name="l00276"></a><a class="code" href="classModule.html#OnUserInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">00276</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">Module::OnUserInvite</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) { }; -<a name="l00277"></a><a class="code" href="classModule.html#OnPostLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">00277</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnPostLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">Module::OnPostLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic) { }; -<a name="l00278"></a><a class="code" href="classModule.html#OnGetServerDescription_28std_3A_3Astring_20servername_2C_20std_3A_3Astring_20_26description_29">00278</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGetServerDescription_28std_3A_3Astring_20servername_2C_20std_3A_3Astring_20_26description_29">Module::OnGetServerDescription</a>(<a class="code" href="namespaceirc.html#string">std::string</a> servername,<a class="code" href="namespaceirc.html#string">std::string</a> &description) { }; -<a name="l00279"></a><a class="code" href="classModule.html#OnSyncUser_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">00279</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncUser_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">Module::OnSyncUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque) { }; -<a name="l00280"></a><a class="code" href="classModule.html#OnSyncChannel_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">00280</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncChannel_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">Module::OnSyncChannel</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque) { }; -<a name="l00281"></a><a class="code" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">00281</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">Module::ProtoSendMode</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> modeline) { }; -<a name="l00282"></a><a class="code" href="classModule.html#OnSyncChannelMetaData_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">00282</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncChannelMetaData_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">Module::OnSyncChannelMetaData</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname) { }; -<a name="l00283"></a><a class="code" href="classModule.html#OnSyncUserMetaData_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">00283</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncUserMetaData_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">Module::OnSyncUserMetaData</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname) { }; -<a name="l00284"></a><a class="code" href="classModule.html#OnDecodeMetaData_28int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">00284</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDecodeMetaData_28int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">Module::OnDecodeMetaData</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata) { }; -<a name="l00285"></a><a class="code" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">00285</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">Module::ProtoSendMetaData</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata) { }; -<a name="l00286"></a><a class="code" href="classModule.html#OnWallops_28userrec_20_2Auser_2C_20std_3A_3Astring_20text_29">00286</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnWallops_28userrec_20_2Auser_2C_20std_3A_3Astring_20text_29">Module::OnWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> text) { }; -<a name="l00287"></a><a class="code" href="classModule.html#OnChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">00287</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">Module::OnChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost) { }; -<a name="l00288"></a><a class="code" href="classModule.html#OnChangeName_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">00288</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnChangeName_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">Module::OnChangeName</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos) { }; -<a name="l00289"></a><a class="code" href="classModule.html#OnAddGLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00289</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddGLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Module::OnAddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { }; -<a name="l00290"></a><a class="code" href="classModule.html#OnAddZLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipmask_29">00290</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddZLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipmask_29">Module::OnAddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask) { }; -<a name="l00291"></a><a class="code" href="classModule.html#OnAddKLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00291</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddKLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Module::OnAddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { }; -<a name="l00292"></a><a class="code" href="classModule.html#OnAddQLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickmask_29">00292</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddQLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickmask_29">Module::OnAddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask) { }; -<a name="l00293"></a><a class="code" href="classModule.html#OnAddELine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00293</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddELine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Module::OnAddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { }; -<a name="l00294"></a><a class="code" href="classModule.html#OnDelGLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">00294</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelGLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">Module::OnDelGLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { }; -<a name="l00295"></a><a class="code" href="classModule.html#OnDelZLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20ipmask_29">00295</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelZLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20ipmask_29">Module::OnDelZLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask) { }; -<a name="l00296"></a><a class="code" href="classModule.html#OnDelKLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">00296</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelKLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">Module::OnDelKLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { }; -<a name="l00297"></a><a class="code" href="classModule.html#OnDelQLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20nickmask_29">00297</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelQLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20nickmask_29">Module::OnDelQLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask) { }; -<a name="l00298"></a><a class="code" href="classModule.html#OnDelELine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">00298</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelELine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">Module::OnDelELine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { }; -<a name="l00299"></a><a class="code" href="classModule.html#OnCleanup_28int_20target_5Ftype_2C_20void_20_2Aitem_29">00299</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnCleanup_28int_20target_5Ftype_2C_20void_20_2Aitem_29">Module::OnCleanup</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* item) { }; -<a name="l00300"></a>00300 -<a name="l00301"></a>00301 <span class="comment">/* server is a wrapper class that provides methods to all of the C-style</span> -<a name="l00302"></a>00302 <span class="comment"> * exports in the core</span> -<a name="l00303"></a>00303 <span class="comment"> */</span> -<a name="l00304"></a>00304 -<a name="l00305"></a><a class="code" href="classServer.html#Server_28_29">00305</a> <a class="code" href="classServer.html#Server_28_29">Server::Server</a>() -<a name="l00306"></a>00306 { -<a name="l00307"></a>00307 } -<a name="l00308"></a>00308 -<a name="l00309"></a><a class="code" href="classServer.html#_7EServer_28_29">00309</a> <a class="code" href="classServer.html#_7EServer_28_29">Server::~Server</a>() -<a name="l00310"></a>00310 { -<a name="l00311"></a>00311 } -<a name="l00312"></a>00312 -<a name="l00313"></a><a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">00313</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">Server::AddSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock) -<a name="l00314"></a>00314 { -<a name="l00315"></a>00315 <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.push_back(sock); -<a name="l00316"></a>00316 } -<a name="l00317"></a>00317 -<a name="l00318"></a><a class="code" href="classServer.html#RehashServer_28_29">00318</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#RehashServer_28_29">Server::RehashServer</a>() -<a name="l00319"></a>00319 { -<a name="l00320"></a>00320 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** Rehashing config file"</span>); -<a name="l00321"></a>00321 Config-><a class="code" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a>(<span class="keyword">false</span>,NULL); -<a name="l00322"></a>00322 } -<a name="l00323"></a>00323 -<a name="l00324"></a><a class="code" href="classServer.html#GetConfig_28_29">00324</a> <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="classServer.html#GetConfig_28_29">Server::GetConfig</a>() -<a name="l00325"></a>00325 { -<a name="l00326"></a>00326 <span class="keywordflow">return</span> Config; -<a name="l00327"></a>00327 } -<a name="l00328"></a>00328 -<a name="l00329"></a><a class="code" href="classServer.html#GetVersion_28_29">00329</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetVersion_28_29">Server::GetVersion</a>() -<a name="l00330"></a>00330 { -<a name="l00331"></a>00331 <span class="keywordflow">return</span> ServerInstance-><a class="code" href="classInspIRCd.html#GetVersionString_28_29">GetVersionString</a>(); -<a name="l00332"></a>00332 } -<a name="l00333"></a>00333 -<a name="l00334"></a><a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">00334</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">Server::DelSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock) -<a name="l00335"></a>00335 { -<a name="l00336"></a>00336 <span class="keywordflow">for</span> (std::vector<InspSocket*>::iterator a = <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.begin(); a < <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.end(); a++) -<a name="l00337"></a>00337 { -<a name="l00338"></a>00338 <span class="keywordflow">if</span> (*a == sock) -<a name="l00339"></a>00339 { -<a name="l00340"></a>00340 <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.erase(a); -<a name="l00341"></a>00341 <span class="keywordflow">return</span>; -<a name="l00342"></a>00342 } -<a name="l00343"></a>00343 } -<a name="l00344"></a>00344 } -<a name="l00345"></a>00345 -<a name="l00346"></a><a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">00346</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">Server::SendOpers</a>(<a class="code" href="namespaceirc.html#string">std::string</a> s) -<a name="l00347"></a>00347 { -<a name="l00348"></a>00348 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"%s"</span>,s.c_str()); -<a name="l00349"></a>00349 } -<a name="l00350"></a>00350 -<a name="l00351"></a><a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">00351</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">Server::MatchText</a>(<a class="code" href="namespaceirc.html#string">std::string</a> sliteral, <a class="code" href="namespaceirc.html#string">std::string</a> spattern) -<a name="l00352"></a>00352 { -<a name="l00353"></a>00353 <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF]; -<a name="l00354"></a>00354 strlcpy(literal,sliteral.c_str(),MAXBUF); -<a name="l00355"></a>00355 strlcpy(pattern,spattern.c_str(),MAXBUF); -<a name="l00356"></a>00356 <span class="keywordflow">return</span> match(literal,pattern); -<a name="l00357"></a>00357 } -<a name="l00358"></a>00358 -<a name="l00359"></a><a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">00359</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">Server::SendToModeMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes, <span class="keywordtype">int</span> flags, <a class="code" href="namespaceirc.html#string">std::string</a> text) -<a name="l00360"></a>00360 { -<a name="l00361"></a>00361 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str()); -<a name="l00362"></a>00362 } -<a name="l00363"></a>00363 -<a name="l00364"></a><a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">00364</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">Server::JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> key) -<a name="l00365"></a>00365 { -<a name="l00366"></a>00366 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">add_channel</a>(user,cname.c_str(),key.c_str(),<span class="keyword">false</span>); -<a name="l00367"></a>00367 } -<a name="l00368"></a>00368 -<a name="l00369"></a><a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">00369</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">Server::PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> reason) -<a name="l00370"></a>00370 { -<a name="l00371"></a>00371 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#del_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acname_2C_20const_20char_20_2Areason_2C_20bool_20local_29">del_channel</a>(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>); -<a name="l00372"></a>00372 } -<a name="l00373"></a>00373 -<a name="l00374"></a><a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">00374</a> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> <a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">Server::GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan) -<a name="l00375"></a>00375 { -<a name="l00376"></a>00376 <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> userl; -<a name="l00377"></a>00377 userl.clear(); -<a name="l00378"></a>00378 std::vector<char*> *list = chan-><a class="code" href="classchanrec.html#GetUsers_28_29">GetUsers</a>(); -<a name="l00379"></a>00379 <span class="keywordflow">for</span> (std::vector<char*>::iterator i = list->begin(); i != list->end(); i++) -<a name="l00380"></a>00380 { -<a name="l00381"></a>00381 <span class="keywordtype">char</span>* o = *i; -<a name="l00382"></a>00382 userl.push_back((<a class="code" href="classuserrec.html">userrec</a>*)o); -<a name="l00383"></a>00383 } -<a name="l00384"></a>00384 <span class="keywordflow">return</span> userl; -<a name="l00385"></a>00385 } -<a name="l00386"></a><a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">00386</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">Server::ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> nickname) -<a name="l00387"></a>00387 { -<a name="l00388"></a>00388 <a class="code" href="inspircd_8h.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange</a>(user,nickname.c_str()); -<a name="l00389"></a>00389 } -<a name="l00390"></a>00390 -<a name="l00391"></a><a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">00391</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">Server::QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> reason) -<a name="l00392"></a>00392 { -<a name="l00393"></a>00393 <a class="code" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,reason.c_str()); -<a name="l00394"></a>00394 } -<a name="l00395"></a>00395 -<a name="l00396"></a><a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">00396</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">Server::IsUlined</a>(<a class="code" href="namespaceirc.html#string">std::string</a> server) -<a name="l00397"></a>00397 { -<a name="l00398"></a>00398 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(server.c_str()); -<a name="l00399"></a>00399 } -<a name="l00400"></a>00400 -<a name="l00401"></a><a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00401</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::CallCommandHandler</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user) -<a name="l00402"></a>00402 { -<a name="l00403"></a>00403 <a class="code" href="inspircd_8h.html#call_5Fhandler_28const_20char_20_2Acommandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">call_handler</a>(commandname.c_str(),parameters,pcnt,user); -<a name="l00404"></a>00404 } -<a name="l00405"></a>00405 -<a name="l00406"></a><a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00406</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::IsValidModuleCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user) -<a name="l00407"></a>00407 { -<a name="l00408"></a>00408 <span class="keywordflow">return</span> <a class="code" href="inspircd_8h.html#is_5Fvalid_5Fcmd_28const_20char_20_2Acommandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">is_valid_cmd</a>(commandname.c_str(), pcnt, user); -<a name="l00409"></a>00409 } -<a name="l00410"></a>00410 -<a name="l00411"></a><a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">00411</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Server::Log</a>(<span class="keywordtype">int</span> level, <a class="code" href="namespaceirc.html#string">std::string</a> s) -<a name="l00412"></a>00412 { -<a name="l00413"></a>00413 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(level,<span class="stringliteral">"%s"</span>,s.c_str()); -<a name="l00414"></a>00414 } -<a name="l00415"></a>00415 -<a name="l00416"></a><a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">00416</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">Server::AddCommand</a>(<span class="keywordtype">char</span>* cmd, <a class="code" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source) -<a name="l00417"></a>00417 { -<a name="l00418"></a>00418 <a class="code" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand</a>(cmd,f,flags,minparams,source); -<a name="l00419"></a>00419 } -<a name="l00420"></a>00420 -<a name="l00421"></a><a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00421</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user) -<a name="l00422"></a>00422 { -<a name="l00423"></a>00423 <a class="code" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a>(parameters,pcnt,user); -<a name="l00424"></a>00424 } -<a name="l00425"></a>00425 -<a name="l00426"></a><a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">00426</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server::Send</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s) -<a name="l00427"></a>00427 { -<a name="l00428"></a>00428 <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(Socket,<span class="stringliteral">"%s"</span>,s.c_str()); -<a name="l00429"></a>00429 } -<a name="l00430"></a>00430 -<a name="l00431"></a><a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">00431</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server::SendServ</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s) -<a name="l00432"></a>00432 { -<a name="l00433"></a>00433 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(Socket,<span class="stringliteral">"%s"</span>,s.c_str()); -<a name="l00434"></a>00434 } -<a name="l00435"></a>00435 -<a name="l00436"></a><a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">00436</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">Server::SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> s) -<a name="l00437"></a>00437 { -<a name="l00438"></a>00438 <a class="code" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom</a>(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str()); -<a name="l00439"></a>00439 } -<a name="l00440"></a>00440 -<a name="l00441"></a><a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">00441</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">Server::SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, <a class="code" href="namespaceirc.html#string">std::string</a> s) -<a name="l00442"></a>00442 { -<a name="l00443"></a>00443 <span class="keywordflow">if</span> (!Source) -<a name="l00444"></a>00444 { -<a name="l00445"></a>00445 <span class="comment">// if source is NULL, then the message originates from the local server</span> -<a name="l00446"></a>00446 <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(Dest-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s %s"</span>,this->GetServerName().c_str(),s.c_str()); -<a name="l00447"></a>00447 } -<a name="l00448"></a>00448 <span class="keywordflow">else</span> -<a name="l00449"></a>00449 { -<a name="l00450"></a>00450 <span class="comment">// otherwise it comes from the user specified</span> -<a name="l00451"></a>00451 <a class="code" href="globals_8h.html#WriteTo_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20char_20_2Adata_2C_2E_2E_2E_29">WriteTo</a>(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str()); -<a name="l00452"></a>00452 } -<a name="l00453"></a>00453 } -<a name="l00454"></a>00454 -<a name="l00455"></a><a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">00455</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">Server::SendChannelServerNotice</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> text) -<a name="l00456"></a>00456 { -<a name="l00457"></a>00457 WriteChannelWithServ((<span class="keywordtype">char</span>*)ServName.c_str(), Channel, <span class="stringliteral">"%s"</span>, text.c_str()); -<a name="l00458"></a>00458 } -<a name="l00459"></a>00459 -<a name="l00460"></a><a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">00460</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">Server::SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> s,<span class="keywordtype">bool</span> IncludeSender) -<a name="l00461"></a>00461 { -<a name="l00462"></a>00462 <span class="keywordflow">if</span> (IncludeSender) -<a name="l00463"></a>00463 { -<a name="l00464"></a>00464 <a class="code" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel</a>(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str()); -<a name="l00465"></a>00465 } -<a name="l00466"></a>00466 <span class="keywordflow">else</span> -<a name="l00467"></a>00467 { -<a name="l00468"></a>00468 <a class="code" href="globals_8h.html#ChanExceptSender_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">ChanExceptSender</a>(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str()); -<a name="l00469"></a>00469 } -<a name="l00470"></a>00470 } -<a name="l00471"></a>00471 -<a name="l00472"></a><a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">00472</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">Server::CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2) -<a name="l00473"></a>00473 { -<a name="l00474"></a>00474 <span class="keywordflow">return</span> (<a class="code" href="globals_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels</a>(u1,u2) != 0); -<a name="l00475"></a>00475 } -<a name="l00476"></a>00476 -<a name="l00477"></a><a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">00477</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">Server::SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text,<span class="keywordtype">bool</span> IncludeSender) -<a name="l00478"></a>00478 { -<a name="l00479"></a>00479 <span class="keywordflow">if</span> (IncludeSender) -<a name="l00480"></a>00480 { -<a name="l00481"></a>00481 <a class="code" href="globals_8h.html#WriteCommon_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommon</a>(User,<span class="stringliteral">"%s"</span>,text.c_str()); -<a name="l00482"></a>00482 } -<a name="l00483"></a>00483 <span class="keywordflow">else</span> -<a name="l00484"></a>00484 { -<a name="l00485"></a>00485 <a class="code" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept</a>(User,<span class="stringliteral">"%s"</span>,text.c_str()); -<a name="l00486"></a>00486 } -<a name="l00487"></a>00487 } -<a name="l00488"></a>00488 -<a name="l00489"></a><a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">00489</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">Server::SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text) -<a name="l00490"></a>00490 { -<a name="l00491"></a>00491 <a class="code" href="globals_8h.html#WriteWallOps_28userrec_20_2Asource_2C_20bool_20local_5Fonly_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteWallOps</a>(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str()); -<a name="l00492"></a>00492 } -<a name="l00493"></a>00493 -<a name="l00494"></a><a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">00494</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">Server::ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> host) -<a name="l00495"></a>00495 { -<a name="l00496"></a>00496 <a class="code" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost</a>(user,host.c_str()); -<a name="l00497"></a>00497 } -<a name="l00498"></a>00498 -<a name="l00499"></a><a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">00499</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">Server::ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos) -<a name="l00500"></a>00500 { -<a name="l00501"></a>00501 <a class="code" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName</a>(user,gecos.c_str()); -<a name="l00502"></a>00502 } -<a name="l00503"></a>00503 -<a name="l00504"></a><a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">00504</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">Server::IsNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick) -<a name="l00505"></a>00505 { -<a name="l00506"></a>00506 <span class="keywordflow">return</span> (<a class="code" href="globals_8h.html#isnick_28const_20char_20_2An_29">isnick</a>(nick.c_str()) != 0); -<a name="l00507"></a>00507 } -<a name="l00508"></a>00508 -<a name="l00509"></a><a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">00509</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">Server::FindNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick) -<a name="l00510"></a>00510 { -<a name="l00511"></a>00511 <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#Find_28std_3A_3Astring_20nick_29">Find</a>(nick); -<a name="l00512"></a>00512 } -<a name="l00513"></a>00513 -<a name="l00514"></a><a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">00514</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">Server::FindDescriptor</a>(<span class="keywordtype">int</span> socket) -<a name="l00515"></a>00515 { -<a name="l00516"></a>00516 <span class="keywordflow">return</span> (socket < 65536 ? fd_ref_table[socket] : NULL); -<a name="l00517"></a>00517 } -<a name="l00518"></a>00518 -<a name="l00519"></a><a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">00519</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">Server::FindChannel</a>(<a class="code" href="namespaceirc.html#string">std::string</a> channel) -<a name="l00520"></a>00520 { -<a name="l00521"></a>00521 <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan</a>(channel.c_str()); -<a name="l00522"></a>00522 } -<a name="l00523"></a>00523 -<a name="l00524"></a><a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">00524</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server::ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan) -<a name="l00525"></a>00525 { -<a name="l00526"></a>00526 <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode</a>(User,Chan); -<a name="l00527"></a>00527 } -<a name="l00528"></a>00528 -<a name="l00529"></a><a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">00529</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server::IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan) -<a name="l00530"></a>00530 { -<a name="l00531"></a>00531 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(User,Chan); -<a name="l00532"></a>00532 } -<a name="l00533"></a>00533 -<a name="l00534"></a><a class="code" href="classServer.html#GetServerName_28_29">00534</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerName_28_29">Server::GetServerName</a>() -<a name="l00535"></a>00535 { -<a name="l00536"></a>00536 <span class="keywordflow">return</span> Config-><a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>; -<a name="l00537"></a>00537 } -<a name="l00538"></a>00538 -<a name="l00539"></a><a class="code" href="classServer.html#GetNetworkName_28_29">00539</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetNetworkName_28_29">Server::GetNetworkName</a>() -<a name="l00540"></a>00540 { -<a name="l00541"></a>00541 <span class="keywordflow">return</span> Config-><a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>; -<a name="l00542"></a>00542 } -<a name="l00543"></a>00543 -<a name="l00544"></a><a class="code" href="classServer.html#GetServerDescription_28_29">00544</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerDescription_28_29">Server::GetServerDescription</a>() -<a name="l00545"></a>00545 { -<a name="l00546"></a>00546 <span class="keywordflow">return</span> Config-><a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerDesc</a>; -<a name="l00547"></a>00547 } -<a name="l00548"></a>00548 -<a name="l00549"></a><a class="code" href="classServer.html#GetAdmin_28_29">00549</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#GetAdmin_28_29">Server::GetAdmin</a>() -<a name="l00550"></a>00550 { -<a name="l00551"></a>00551 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(Config-><a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">AdminName</a>,Config-><a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">AdminEmail</a>,Config-><a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">AdminNick</a>); -<a name="l00552"></a>00552 } +<a name="l00217"></a>00217 <span class="comment">// These declarations define the behavours of the base class Module (which does nothing at all)</span> +<a name="l00218"></a>00218 +<a name="l00219"></a><a class="code" href="classModule.html#Module_28Server_20_2AMe_29">00219</a> <a class="code" href="classModule.html#Module_28Server_20_2AMe_29">Module::Module</a>(<a class="code" href="classServer.html">Server</a>* Me) { } +<a name="l00220"></a><a class="code" href="classModule.html#_7EModule_28_29">00220</a> <a class="code" href="classModule.html#_7EModule_28_29">Module::~Module</a>() { } +<a name="l00221"></a><a class="code" href="classModule.html#OnUserConnect_28userrec_20_2Auser_29">00221</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserConnect_28userrec_20_2Auser_29">Module::OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { } +<a name="l00222"></a><a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">00222</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Module::OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> message) { } +<a name="l00223"></a><a class="code" href="classModule.html#OnUserDisconnect_28userrec_20_2Auser_29">00223</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserDisconnect_28userrec_20_2Auser_29">Module::OnUserDisconnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { } +<a name="l00224"></a><a class="code" href="classModule.html#OnUserJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">00224</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">Module::OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel) { } +<a name="l00225"></a><a class="code" href="classModule.html#OnUserPart_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">00225</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserPart_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">Module::OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel) { } +<a name="l00226"></a><a class="code" href="classModule.html#OnRehash_28std_3A_3Astring_20parameter_29">00226</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRehash_28std_3A_3Astring_20parameter_29">Module::OnRehash</a>(<a class="code" href="namespaceirc.html#string">std::string</a> parameter) { } +<a name="l00227"></a><a class="code" href="classModule.html#OnServerRaw_28std_3A_3Astring_20_26raw_2C_20bool_20inbound_2C_20userrec_20_2Auser_29">00227</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnServerRaw_28std_3A_3Astring_20_26raw_2C_20bool_20inbound_2C_20userrec_20_2Auser_29">Module::OnServerRaw</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user) { } +<a name="l00228"></a><a class="code" href="classModule.html#OnUserPreJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20const_20char_20_2Acname_29">00228</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20const_20char_20_2Acname_29">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="l00229"></a><a class="code" href="classModule.html#OnExtendedMode_28userrec_20_2Auser_2C_20void_20_2Atarget_2C_20char_20modechar_2C_20int_20type_2C_20bool_20mode_5Fon_2C_20string_5Flist_20_26params_29">00229</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnExtendedMode_28userrec_20_2Auser_2C_20void_20_2Atarget_2C_20char_20modechar_2C_20int_20type_2C_20bool_20mode_5Fon_2C_20string_5Flist_20_26params_29">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, <a class="code" href="modules_8h.html#string_5Flist">string_list</a> &params) { <span class="keywordflow">return</span> <span class="keyword">false</span>; } +<a name="l00230"></a><a class="code" href="classModule.html#OnMode_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">00230</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnMode_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">Module::OnMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text) { }; +<a name="l00231"></a><a class="code" href="classModule.html#GetVersion_28_29">00231</a> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#GetVersion_28_29">Module::GetVersion</a>() { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0,<a class="code" href="modules_8h.html#VF_5FVENDOR">VF_VENDOR</a>); } +<a name="l00232"></a><a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_2C_20std_3A_3Astring_20opertype_29">00232</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_2C_20std_3A_3Astring_20opertype_29">Module::OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> opertype) { }; +<a name="l00233"></a><a class="code" href="classModule.html#OnInfo_28userrec_20_2Auser_29">00233</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnInfo_28userrec_20_2Auser_29">Module::OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }; +<a name="l00234"></a><a class="code" href="classModule.html#OnWhois_28userrec_20_2Asource_2C_20userrec_20_2Adest_29">00234</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnWhois_28userrec_20_2Asource_2C_20userrec_20_2Adest_29">Module::OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest) { }; +<a name="l00235"></a><a class="code" href="classModule.html#OnUserPreInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">00235</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">Module::OnUserPreInvite</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="keywordflow">return</span> 0; }; +<a name="l00236"></a><a class="code" href="classModule.html#OnUserPreMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">00236</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">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, <a class="code" href="namespaceirc.html#string">std::string</a> &text) { <span class="keywordflow">return</span> 0; }; +<a name="l00237"></a><a class="code" href="classModule.html#OnUserPreNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">00237</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">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, <a class="code" href="namespaceirc.html#string">std::string</a> &text) { <span class="keywordflow">return</span> 0; }; +<a name="l00238"></a><a class="code" href="classModule.html#OnUserPreNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20newnick_29">00238</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20newnick_29">Module::OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newnick) { <span class="keywordflow">return</span> 0; }; +<a name="l00239"></a><a class="code" href="classModule.html#OnUserPostNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20oldnick_29">00239</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserPostNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20oldnick_29">Module::OnUserPostNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> oldnick) { }; +<a name="l00240"></a><a class="code" href="classModule.html#OnAccessCheck_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_2C_20int_20access_5Ftype_29">00240</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnAccessCheck_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_2C_20int_20access_5Ftype_29">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#ACR_5FDEFAULT">ACR_DEFAULT</a>; }; +<a name="l00241"></a><a class="code" href="classModule.html#On_30_30_35Numeric_28std_3A_3Astring_20_26output_29">00241</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#On_30_30_35Numeric_28std_3A_3Astring_20_26output_29">Module::On005Numeric</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &output) { }; +<a name="l00242"></a><a class="code" href="classModule.html#OnKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">00242</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">Module::OnKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { <span class="keywordflow">return</span> 0; }; +<a name="l00243"></a><a class="code" href="classModule.html#OnLoadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">00243</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnLoadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">Module::OnLoadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name) { }; +<a name="l00244"></a><a class="code" href="classModule.html#OnUnloadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">00244</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUnloadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">Module::OnUnloadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name) { }; +<a name="l00245"></a><a class="code" href="classModule.html#OnBackgroundTimer_28time_5Ft_20curtime_29">00245</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnBackgroundTimer_28time_5Ft_20curtime_29">Module::OnBackgroundTimer</a>(time_t curtime) { }; +<a name="l00246"></a><a class="code" href="classModule.html#OnSendList_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_2C_20char_20mode_29">00246</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSendList_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_2C_20char_20mode_29">Module::OnSendList</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel, <span class="keywordtype">char</span> mode) { }; +<a name="l00247"></a><a class="code" href="classModule.html#OnPreCommand_28std_3A_3Astring_20command_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00247</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnPreCommand_28std_3A_3Astring_20command_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Module::OnPreCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> command, <span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user) { <span class="keywordflow">return</span> 0; }; +<a name="l00248"></a><a class="code" href="classModule.html#OnCheckReady_28userrec_20_2Auser_29">00248</a> <span class="keywordtype">bool</span> <a class="code" href="classModule.html#OnCheckReady_28userrec_20_2Auser_29">Module::OnCheckReady</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }; +<a name="l00249"></a><a class="code" href="classModule.html#OnUserRegister_28userrec_20_2Auser_29">00249</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserRegister_28userrec_20_2Auser_29">Module::OnUserRegister</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }; +<a name="l00250"></a><a class="code" href="classModule.html#OnUserPreKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">00250</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">Module::OnUserPreKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { <span class="keywordflow">return</span> 0; }; +<a name="l00251"></a><a class="code" href="classModule.html#OnUserKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">00251</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">Module::OnUserKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { }; +<a name="l00252"></a><a class="code" href="classModule.html#OnRawMode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20char_20mode_2C_20std_3A_3Astring_20param_2C_20bool_20adding_2C_20int_20pcnt_29">00252</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawMode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20char_20mode_2C_20std_3A_3Astring_20param_2C_20bool_20adding_2C_20int_20pcnt_29">Module::OnRawMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keywordtype">char</span> mode, <a class="code" href="namespaceirc.html#string">std::string</a> param, <span class="keywordtype">bool</span> adding, <span class="keywordtype">int</span> pcnt) { <span class="keywordflow">return</span> 0; }; +<a name="l00253"></a><a class="code" href="classModule.html#OnCheckInvite_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">00253</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckInvite_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">Module::OnCheckInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan) { <span class="keywordflow">return</span> 0; }; +<a name="l00254"></a><a class="code" href="classModule.html#OnCheckKey_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20keygiven_29">00254</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckKey_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20keygiven_29">Module::OnCheckKey</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> keygiven) { <span class="keywordflow">return</span> 0; }; +<a name="l00255"></a><a class="code" href="classModule.html#OnCheckLimit_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">00255</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckLimit_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">Module::OnCheckLimit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan) { <span class="keywordflow">return</span> 0; }; +<a name="l00256"></a><a class="code" href="classModule.html#OnCheckBan_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">00256</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckBan_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">Module::OnCheckBan</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan) { <span class="keywordflow">return</span> 0; }; +<a name="l00257"></a><a class="code" href="classModule.html#OnStats_28char_20symbol_29">00257</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnStats_28char_20symbol_29">Module::OnStats</a>(<span class="keywordtype">char</span> symbol) { }; +<a name="l00258"></a><a class="code" href="classModule.html#OnChangeLocalUserHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">00258</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnChangeLocalUserHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">Module::OnChangeLocalUserHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost) { <span class="keywordflow">return</span> 0; }; +<a name="l00259"></a><a class="code" href="classModule.html#OnChangeLocalUserGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">00259</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnChangeLocalUserGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">Module::OnChangeLocalUserGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost) { <span class="keywordflow">return</span> 0; }; +<a name="l00260"></a><a class="code" href="classModule.html#OnLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">00260</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">Module::OnLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic) { <span class="keywordflow">return</span> 0; }; +<a name="l00261"></a><a class="code" href="classModule.html#OnEvent_28Event_20_2Aevent_29">00261</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnEvent_28Event_20_2Aevent_29">Module::OnEvent</a>(<a class="code" href="classEvent.html">Event</a>* event) { <span class="keywordflow">return</span>; }; +<a name="l00262"></a><a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">00262</a> <span class="keywordtype">char</span>* <a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">Module::OnRequest</a>(<a class="code" href="classRequest.html">Request</a>* request) { <span class="keywordflow">return</span> NULL; }; +<a name="l00263"></a><a class="code" href="classModule.html#OnOperCompare_28std_3A_3Astring_20password_2C_20std_3A_3Astring_20input_29">00263</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnOperCompare_28std_3A_3Astring_20password_2C_20std_3A_3Astring_20input_29">Module::OnOperCompare</a>(<a class="code" href="namespaceirc.html#string">std::string</a> password, <a class="code" href="namespaceirc.html#string">std::string</a> input) { <span class="keywordflow">return</span> 0; }; +<a name="l00264"></a><a class="code" href="classModule.html#OnGlobalOper_28userrec_20_2Auser_29">00264</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGlobalOper_28userrec_20_2Auser_29">Module::OnGlobalOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }; +<a name="l00265"></a><a class="code" href="classModule.html#OnGlobalConnect_28userrec_20_2Auser_29">00265</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGlobalConnect_28userrec_20_2Auser_29">Module::OnGlobalConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }; +<a name="l00266"></a><a class="code" href="classModule.html#OnAddBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">00266</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnAddBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">Module::OnAddBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask) { <span class="keywordflow">return</span> 0; }; +<a name="l00267"></a><a class="code" href="classModule.html#OnDelBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">00267</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnDelBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">Module::OnDelBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask) { <span class="keywordflow">return</span> 0; }; +<a name="l00268"></a><a class="code" href="classModule.html#OnRawSocketAccept_28int_20fd_2C_20std_3A_3Astring_20ip_2C_20int_20localport_29">00268</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRawSocketAccept_28int_20fd_2C_20std_3A_3Astring_20ip_2C_20int_20localport_29">Module::OnRawSocketAccept</a>(<span class="keywordtype">int</span> fd, <a class="code" href="namespaceirc.html#string">std::string</a> ip, <span class="keywordtype">int</span> localport) { }; +<a name="l00269"></a><a class="code" href="classModule.html#OnRawSocketWrite_28int_20fd_2C_20char_20_2Abuffer_2C_20int_20count_29">00269</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawSocketWrite_28int_20fd_2C_20char_20_2Abuffer_2C_20int_20count_29">Module::OnRawSocketWrite</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> count) { <span class="keywordflow">return</span> 0; }; +<a name="l00270"></a><a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">00270</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">Module::OnRawSocketClose</a>(<span class="keywordtype">int</span> fd) { }; +<a name="l00271"></a><a class="code" href="classModule.html#OnRawSocketRead_28int_20fd_2C_20char_20_2Abuffer_2C_20unsigned_20int_20count_2C_20int_20_26readresult_29">00271</a> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawSocketRead_28int_20fd_2C_20char_20_2Abuffer_2C_20unsigned_20int_20count_2C_20int_20_26readresult_29">Module::OnRawSocketRead</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> &readresult) { <span class="keywordflow">return</span> 0; }; +<a name="l00272"></a><a class="code" href="classModule.html#OnUserMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">00272</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">Module::OnUserMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text) { }; +<a name="l00273"></a><a class="code" href="classModule.html#OnUserNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">00273</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">Module::OnUserNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text) { }; +<a name="l00274"></a><a class="code" href="classModule.html#OnRemoteKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">00274</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRemoteKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">Module::OnRemoteKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { }; +<a name="l00275"></a><a class="code" href="classModule.html#OnUserInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">00275</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">Module::OnUserInvite</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) { }; +<a name="l00276"></a><a class="code" href="classModule.html#OnPostLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">00276</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnPostLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">Module::OnPostLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic) { }; +<a name="l00277"></a><a class="code" href="classModule.html#OnGetServerDescription_28std_3A_3Astring_20servername_2C_20std_3A_3Astring_20_26description_29">00277</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGetServerDescription_28std_3A_3Astring_20servername_2C_20std_3A_3Astring_20_26description_29">Module::OnGetServerDescription</a>(<a class="code" href="namespaceirc.html#string">std::string</a> servername,<a class="code" href="namespaceirc.html#string">std::string</a> &description) { }; +<a name="l00278"></a><a class="code" href="classModule.html#OnSyncUser_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">00278</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncUser_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">Module::OnSyncUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque) { }; +<a name="l00279"></a><a class="code" href="classModule.html#OnSyncChannel_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">00279</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncChannel_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">Module::OnSyncChannel</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque) { }; +<a name="l00280"></a><a class="code" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">00280</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">Module::ProtoSendMode</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> modeline) { }; +<a name="l00281"></a><a class="code" href="classModule.html#OnSyncChannelMetaData_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">00281</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncChannelMetaData_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">Module::OnSyncChannelMetaData</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname) { }; +<a name="l00282"></a><a class="code" href="classModule.html#OnSyncUserMetaData_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">00282</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncUserMetaData_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">Module::OnSyncUserMetaData</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname) { }; +<a name="l00283"></a><a class="code" href="classModule.html#OnDecodeMetaData_28int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">00283</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDecodeMetaData_28int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">Module::OnDecodeMetaData</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata) { }; +<a name="l00284"></a><a class="code" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">00284</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">Module::ProtoSendMetaData</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata) { }; +<a name="l00285"></a><a class="code" href="classModule.html#OnWallops_28userrec_20_2Auser_2C_20std_3A_3Astring_20text_29">00285</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnWallops_28userrec_20_2Auser_2C_20std_3A_3Astring_20text_29">Module::OnWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> text) { }; +<a name="l00286"></a><a class="code" href="classModule.html#OnChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">00286</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">Module::OnChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost) { }; +<a name="l00287"></a><a class="code" href="classModule.html#OnChangeName_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">00287</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnChangeName_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">Module::OnChangeName</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos) { }; +<a name="l00288"></a><a class="code" href="classModule.html#OnAddGLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00288</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddGLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Module::OnAddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { }; +<a name="l00289"></a><a class="code" href="classModule.html#OnAddZLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipmask_29">00289</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddZLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipmask_29">Module::OnAddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask) { }; +<a name="l00290"></a><a class="code" href="classModule.html#OnAddKLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00290</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddKLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Module::OnAddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { }; +<a name="l00291"></a><a class="code" href="classModule.html#OnAddQLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickmask_29">00291</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddQLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickmask_29">Module::OnAddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask) { }; +<a name="l00292"></a><a class="code" href="classModule.html#OnAddELine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00292</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddELine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Module::OnAddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { }; +<a name="l00293"></a><a class="code" href="classModule.html#OnDelGLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">00293</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelGLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">Module::OnDelGLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { }; +<a name="l00294"></a><a class="code" href="classModule.html#OnDelZLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20ipmask_29">00294</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelZLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20ipmask_29">Module::OnDelZLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask) { }; +<a name="l00295"></a><a class="code" href="classModule.html#OnDelKLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">00295</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelKLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">Module::OnDelKLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { }; +<a name="l00296"></a><a class="code" href="classModule.html#OnDelQLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20nickmask_29">00296</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelQLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20nickmask_29">Module::OnDelQLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask) { }; +<a name="l00297"></a><a class="code" href="classModule.html#OnDelELine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">00297</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelELine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">Module::OnDelELine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { }; +<a name="l00298"></a><a class="code" href="classModule.html#OnCleanup_28int_20target_5Ftype_2C_20void_20_2Aitem_29">00298</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnCleanup_28int_20target_5Ftype_2C_20void_20_2Aitem_29">Module::OnCleanup</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* item) { }; +<a name="l00299"></a>00299 +<a name="l00300"></a>00300 <span class="comment">/* server is a wrapper class that provides methods to all of the C-style</span> +<a name="l00301"></a>00301 <span class="comment"> * exports in the core</span> +<a name="l00302"></a>00302 <span class="comment"> */</span> +<a name="l00303"></a>00303 +<a name="l00304"></a><a class="code" href="classServer.html#Server_28_29">00304</a> <a class="code" href="classServer.html#Server_28_29">Server::Server</a>() +<a name="l00305"></a>00305 { +<a name="l00306"></a>00306 } +<a name="l00307"></a>00307 +<a name="l00308"></a><a class="code" href="classServer.html#_7EServer_28_29">00308</a> <a class="code" href="classServer.html#_7EServer_28_29">Server::~Server</a>() +<a name="l00309"></a>00309 { +<a name="l00310"></a>00310 } +<a name="l00311"></a>00311 +<a name="l00312"></a><a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">00312</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">Server::AddSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock) +<a name="l00313"></a>00313 { +<a name="l00314"></a>00314 <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.push_back(sock); +<a name="l00315"></a>00315 } +<a name="l00316"></a>00316 +<a name="l00317"></a><a class="code" href="classServer.html#RehashServer_28_29">00317</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#RehashServer_28_29">Server::RehashServer</a>() +<a name="l00318"></a>00318 { +<a name="l00319"></a>00319 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** Rehashing config file"</span>); +<a name="l00320"></a>00320 Config-><a class="code" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a>(<span class="keyword">false</span>,NULL); +<a name="l00321"></a>00321 } +<a name="l00322"></a>00322 +<a name="l00323"></a><a class="code" href="classServer.html#GetConfig_28_29">00323</a> <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="classServer.html#GetConfig_28_29">Server::GetConfig</a>() +<a name="l00324"></a>00324 { +<a name="l00325"></a>00325 <span class="keywordflow">return</span> Config; +<a name="l00326"></a>00326 } +<a name="l00327"></a>00327 +<a name="l00328"></a><a class="code" href="classServer.html#GetVersion_28_29">00328</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetVersion_28_29">Server::GetVersion</a>() +<a name="l00329"></a>00329 { +<a name="l00330"></a>00330 <span class="keywordflow">return</span> ServerInstance-><a class="code" href="classInspIRCd.html#GetVersionString_28_29">GetVersionString</a>(); +<a name="l00331"></a>00331 } +<a name="l00332"></a>00332 +<a name="l00333"></a><a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">00333</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">Server::DelSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock) +<a name="l00334"></a>00334 { +<a name="l00335"></a>00335 <span class="keywordflow">for</span> (std::vector<InspSocket*>::iterator a = <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.begin(); a < <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.end(); a++) +<a name="l00336"></a>00336 { +<a name="l00337"></a>00337 <span class="keywordflow">if</span> (*a == sock) +<a name="l00338"></a>00338 { +<a name="l00339"></a>00339 <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.erase(a); +<a name="l00340"></a>00340 <span class="keywordflow">return</span>; +<a name="l00341"></a>00341 } +<a name="l00342"></a>00342 } +<a name="l00343"></a>00343 } +<a name="l00344"></a>00344 +<a name="l00345"></a><a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">00345</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">Server::SendOpers</a>(<a class="code" href="namespaceirc.html#string">std::string</a> s) +<a name="l00346"></a>00346 { +<a name="l00347"></a>00347 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"%s"</span>,s.c_str()); +<a name="l00348"></a>00348 } +<a name="l00349"></a>00349 +<a name="l00350"></a><a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">00350</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">Server::MatchText</a>(<a class="code" href="namespaceirc.html#string">std::string</a> sliteral, <a class="code" href="namespaceirc.html#string">std::string</a> spattern) +<a name="l00351"></a>00351 { +<a name="l00352"></a>00352 <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF]; +<a name="l00353"></a>00353 strlcpy(literal,sliteral.c_str(),MAXBUF); +<a name="l00354"></a>00354 strlcpy(pattern,spattern.c_str(),MAXBUF); +<a name="l00355"></a>00355 <span class="keywordflow">return</span> match(literal,pattern); +<a name="l00356"></a>00356 } +<a name="l00357"></a>00357 +<a name="l00358"></a><a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">00358</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">Server::SendToModeMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes, <span class="keywordtype">int</span> flags, <a class="code" href="namespaceirc.html#string">std::string</a> text) +<a name="l00359"></a>00359 { +<a name="l00360"></a>00360 WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str()); +<a name="l00361"></a>00361 } +<a name="l00362"></a>00362 +<a name="l00363"></a><a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">00363</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">Server::JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> key) +<a name="l00364"></a>00364 { +<a name="l00365"></a>00365 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">add_channel</a>(user,cname.c_str(),key.c_str(),<span class="keyword">false</span>); +<a name="l00366"></a>00366 } +<a name="l00367"></a>00367 +<a name="l00368"></a><a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">00368</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">Server::PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> reason) +<a name="l00369"></a>00369 { +<a name="l00370"></a>00370 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#del_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acname_2C_20const_20char_20_2Areason_2C_20bool_20local_29">del_channel</a>(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>); +<a name="l00371"></a>00371 } +<a name="l00372"></a>00372 +<a name="l00373"></a><a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">00373</a> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> <a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">Server::GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan) +<a name="l00374"></a>00374 { +<a name="l00375"></a>00375 <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> userl; +<a name="l00376"></a>00376 userl.clear(); +<a name="l00377"></a>00377 std::vector<char*> *list = chan-><a class="code" href="classchanrec.html#GetUsers_28_29">GetUsers</a>(); +<a name="l00378"></a>00378 <span class="keywordflow">for</span> (std::vector<char*>::iterator i = list->begin(); i != list->end(); i++) +<a name="l00379"></a>00379 { +<a name="l00380"></a>00380 <span class="keywordtype">char</span>* o = *i; +<a name="l00381"></a>00381 userl.push_back((<a class="code" href="classuserrec.html">userrec</a>*)o); +<a name="l00382"></a>00382 } +<a name="l00383"></a>00383 <span class="keywordflow">return</span> userl; +<a name="l00384"></a>00384 } +<a name="l00385"></a><a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">00385</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">Server::ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> nickname) +<a name="l00386"></a>00386 { +<a name="l00387"></a>00387 <a class="code" href="users_8cpp.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange</a>(user,nickname.c_str()); +<a name="l00388"></a>00388 } +<a name="l00389"></a>00389 +<a name="l00390"></a><a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">00390</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">Server::QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> reason) +<a name="l00391"></a>00391 { +<a name="l00392"></a>00392 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,reason.c_str()); +<a name="l00393"></a>00393 } +<a name="l00394"></a>00394 +<a name="l00395"></a><a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">00395</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">Server::IsUlined</a>(<a class="code" href="namespaceirc.html#string">std::string</a> server) +<a name="l00396"></a>00396 { +<a name="l00397"></a>00397 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(server.c_str()); +<a name="l00398"></a>00398 } +<a name="l00399"></a>00399 +<a name="l00400"></a><a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00400</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::CallCommandHandler</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user) +<a name="l00401"></a>00401 { +<a name="l00402"></a>00402 ServerInstance-><a class="code" href="classInspIRCd.html#Parser">Parser</a>->CallHandler(commandname,parameters,pcnt,user); +<a name="l00403"></a>00403 } +<a name="l00404"></a>00404 +<a name="l00405"></a><a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00405</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::IsValidModuleCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user) +<a name="l00406"></a>00406 { +<a name="l00407"></a>00407 <span class="keywordflow">return</span> ServerInstance-><a class="code" href="classInspIRCd.html#Parser">Parser</a>->IsValidCommand(commandname, pcnt, user); +<a name="l00408"></a>00408 } +<a name="l00409"></a>00409 +<a name="l00410"></a><a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">00410</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Server::Log</a>(<span class="keywordtype">int</span> level, <a class="code" href="namespaceirc.html#string">std::string</a> s) +<a name="l00411"></a>00411 { +<a name="l00412"></a>00412 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(level,<span class="stringliteral">"%s"</span>,s.c_str()); +<a name="l00413"></a>00413 } +<a name="l00414"></a>00414 +<a name="l00415"></a><a class="code" href="classServer.html#AddCommand_28command_5Ft_20_2Af_29">00415</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28command_5Ft_20_2Af_29">Server::AddCommand</a>(<a class="code" href="classcommand__t.html">command_t</a> *f) +<a name="l00416"></a>00416 { +<a name="l00417"></a>00417 ServerInstance-><a class="code" href="classInspIRCd.html#Parser">Parser</a>->CreateCommand(f); +<a name="l00418"></a>00418 } +<a name="l00419"></a>00419 +<a name="l00420"></a><a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00420</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user) +<a name="l00421"></a>00421 { +<a name="l00422"></a>00422 ServerInstance-><a class="code" href="classInspIRCd.html#ModeGrok">ModeGrok</a>-><a class="code" href="classModeParser.html#ServerMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">ServerMode</a>(parameters,pcnt,user); +<a name="l00423"></a>00423 } +<a name="l00424"></a>00424 +<a name="l00425"></a><a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">00425</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server::Send</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s) +<a name="l00426"></a>00426 { +<a name="l00427"></a>00427 <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(Socket,<span class="stringliteral">"%s"</span>,s.c_str()); +<a name="l00428"></a>00428 } +<a name="l00429"></a>00429 +<a name="l00430"></a><a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">00430</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server::SendServ</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s) +<a name="l00431"></a>00431 { +<a name="l00432"></a>00432 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(Socket,<span class="stringliteral">"%s"</span>,s.c_str()); +<a name="l00433"></a>00433 } +<a name="l00434"></a>00434 +<a name="l00435"></a><a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">00435</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">Server::SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> s) +<a name="l00436"></a>00436 { +<a name="l00437"></a>00437 <a class="code" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom</a>(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str()); +<a name="l00438"></a>00438 } +<a name="l00439"></a>00439 +<a name="l00440"></a><a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">00440</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">Server::SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, <a class="code" href="namespaceirc.html#string">std::string</a> s) +<a name="l00441"></a>00441 { +<a name="l00442"></a>00442 <span class="keywordflow">if</span> (!Source) +<a name="l00443"></a>00443 { +<a name="l00444"></a>00444 <span class="comment">// if source is NULL, then the message originates from the local server</span> +<a name="l00445"></a>00445 <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(Dest-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s %s"</span>,this->GetServerName().c_str(),s.c_str()); +<a name="l00446"></a>00446 } +<a name="l00447"></a>00447 <span class="keywordflow">else</span> +<a name="l00448"></a>00448 { +<a name="l00449"></a>00449 <span class="comment">// otherwise it comes from the user specified</span> +<a name="l00450"></a>00450 <a class="code" href="globals_8h.html#WriteTo_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20char_20_2Adata_2C_2E_2E_2E_29">WriteTo</a>(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str()); +<a name="l00451"></a>00451 } +<a name="l00452"></a>00452 } +<a name="l00453"></a>00453 +<a name="l00454"></a><a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">00454</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">Server::SendChannelServerNotice</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> text) +<a name="l00455"></a>00455 { +<a name="l00456"></a>00456 WriteChannelWithServ((<span class="keywordtype">char</span>*)ServName.c_str(), Channel, <span class="stringliteral">"%s"</span>, text.c_str()); +<a name="l00457"></a>00457 } +<a name="l00458"></a>00458 +<a name="l00459"></a><a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">00459</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">Server::SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> s,<span class="keywordtype">bool</span> IncludeSender) +<a name="l00460"></a>00460 { +<a name="l00461"></a>00461 <span class="keywordflow">if</span> (IncludeSender) +<a name="l00462"></a>00462 { +<a name="l00463"></a>00463 <a class="code" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel</a>(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str()); +<a name="l00464"></a>00464 } +<a name="l00465"></a>00465 <span class="keywordflow">else</span> +<a name="l00466"></a>00466 { +<a name="l00467"></a>00467 <a class="code" href="globals_8h.html#ChanExceptSender_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">ChanExceptSender</a>(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str()); +<a name="l00468"></a>00468 } +<a name="l00469"></a>00469 } +<a name="l00470"></a>00470 +<a name="l00471"></a><a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">00471</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">Server::CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2) +<a name="l00472"></a>00472 { +<a name="l00473"></a>00473 <span class="keywordflow">return</span> (<a class="code" href="globals_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels</a>(u1,u2) != 0); +<a name="l00474"></a>00474 } +<a name="l00475"></a>00475 +<a name="l00476"></a><a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">00476</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">Server::SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text,<span class="keywordtype">bool</span> IncludeSender) +<a name="l00477"></a>00477 { +<a name="l00478"></a>00478 <span class="keywordflow">if</span> (IncludeSender) +<a name="l00479"></a>00479 { +<a name="l00480"></a>00480 <a class="code" href="globals_8h.html#WriteCommon_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommon</a>(User,<span class="stringliteral">"%s"</span>,text.c_str()); +<a name="l00481"></a>00481 } +<a name="l00482"></a>00482 <span class="keywordflow">else</span> +<a name="l00483"></a>00483 { +<a name="l00484"></a>00484 <a class="code" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept</a>(User,<span class="stringliteral">"%s"</span>,text.c_str()); +<a name="l00485"></a>00485 } +<a name="l00486"></a>00486 } +<a name="l00487"></a>00487 +<a name="l00488"></a><a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">00488</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">Server::SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text) +<a name="l00489"></a>00489 { +<a name="l00490"></a>00490 <a class="code" href="globals_8h.html#WriteWallOps_28userrec_20_2Asource_2C_20bool_20local_5Fonly_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteWallOps</a>(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str()); +<a name="l00491"></a>00491 } +<a name="l00492"></a>00492 +<a name="l00493"></a><a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">00493</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">Server::ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> host) +<a name="l00494"></a>00494 { +<a name="l00495"></a>00495 <a class="code" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost</a>(user,host.c_str()); +<a name="l00496"></a>00496 } +<a name="l00497"></a>00497 +<a name="l00498"></a><a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">00498</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">Server::ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos) +<a name="l00499"></a>00499 { +<a name="l00500"></a>00500 <a class="code" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName</a>(user,gecos.c_str()); +<a name="l00501"></a>00501 } +<a name="l00502"></a>00502 +<a name="l00503"></a><a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">00503</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">Server::IsNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick) +<a name="l00504"></a>00504 { +<a name="l00505"></a>00505 <span class="keywordflow">return</span> (<a class="code" href="globals_8h.html#isnick_28const_20char_20_2An_29">isnick</a>(nick.c_str()) != 0); +<a name="l00506"></a>00506 } +<a name="l00507"></a>00507 +<a name="l00508"></a><a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">00508</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">Server::FindNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick) +<a name="l00509"></a>00509 { +<a name="l00510"></a>00510 <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#Find_28std_3A_3Astring_20nick_29">Find</a>(nick); +<a name="l00511"></a>00511 } +<a name="l00512"></a>00512 +<a name="l00513"></a><a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">00513</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">Server::FindDescriptor</a>(<span class="keywordtype">int</span> socket) +<a name="l00514"></a>00514 { +<a name="l00515"></a>00515 <span class="keywordflow">return</span> (socket < 65536 ? fd_ref_table[socket] : NULL); +<a name="l00516"></a>00516 } +<a name="l00517"></a>00517 +<a name="l00518"></a><a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">00518</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">Server::FindChannel</a>(<a class="code" href="namespaceirc.html#string">std::string</a> channel) +<a name="l00519"></a>00519 { +<a name="l00520"></a>00520 <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan</a>(channel.c_str()); +<a name="l00521"></a>00521 } +<a name="l00522"></a>00522 +<a name="l00523"></a><a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">00523</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server::ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan) +<a name="l00524"></a>00524 { +<a name="l00525"></a>00525 <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode</a>(User,Chan); +<a name="l00526"></a>00526 } +<a name="l00527"></a>00527 +<a name="l00528"></a><a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">00528</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server::IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan) +<a name="l00529"></a>00529 { +<a name="l00530"></a>00530 <span class="keywordflow">return</span> <a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(User,Chan); +<a name="l00531"></a>00531 } +<a name="l00532"></a>00532 +<a name="l00533"></a><a class="code" href="classServer.html#GetServerName_28_29">00533</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerName_28_29">Server::GetServerName</a>() +<a name="l00534"></a>00534 { +<a name="l00535"></a>00535 <span class="keywordflow">return</span> Config-><a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>; +<a name="l00536"></a>00536 } +<a name="l00537"></a>00537 +<a name="l00538"></a><a class="code" href="classServer.html#GetNetworkName_28_29">00538</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetNetworkName_28_29">Server::GetNetworkName</a>() +<a name="l00539"></a>00539 { +<a name="l00540"></a>00540 <span class="keywordflow">return</span> Config-><a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>; +<a name="l00541"></a>00541 } +<a name="l00542"></a>00542 +<a name="l00543"></a><a class="code" href="classServer.html#GetServerDescription_28_29">00543</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerDescription_28_29">Server::GetServerDescription</a>() +<a name="l00544"></a>00544 { +<a name="l00545"></a>00545 <span class="keywordflow">return</span> Config-><a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerDesc</a>; +<a name="l00546"></a>00546 } +<a name="l00547"></a>00547 +<a name="l00548"></a><a class="code" href="classServer.html#GetAdmin_28_29">00548</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#GetAdmin_28_29">Server::GetAdmin</a>() +<a name="l00549"></a>00549 { +<a name="l00550"></a>00550 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(Config-><a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">AdminName</a>,Config-><a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">AdminEmail</a>,Config-><a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">AdminNick</a>); +<a name="l00551"></a>00551 } +<a name="l00552"></a>00552 <a name="l00553"></a>00553 <a name="l00554"></a>00554 -<a name="l00555"></a>00555 -<a name="l00556"></a><a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">00556</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">Server::AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off) -<a name="l00557"></a>00557 { -<a name="l00558"></a>00558 <span class="keywordflow">if</span> (((modechar >= <span class="charliteral">'A'</span>) && (modechar <= <span class="charliteral">'Z'</span>)) || ((modechar >= <span class="charliteral">'a'</span>) && (modechar <= <span class="charliteral">'z'</span>))) -<a name="l00559"></a>00559 { -<a name="l00560"></a>00560 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#MT_5FSERVER">MT_SERVER</a>) -<a name="l00561"></a>00561 { -<a name="l00562"></a>00562 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>); -<a name="l00563"></a>00563 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00564"></a>00564 } -<a name="l00565"></a>00565 <span class="keywordflow">if</span> (((params_when_on>0) || (params_when_off>0)) && (type == <a class="code" href="modules_8h.html#MT_5FCLIENT">MT_CLIENT</a>)) -<a name="l00566"></a>00566 { -<a name="l00567"></a>00567 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>); -<a name="l00568"></a>00568 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00569"></a>00569 } -<a name="l00570"></a>00570 <span class="keywordflow">if</span> ((params_when_on>1) || (params_when_off>1)) -<a name="l00571"></a>00571 { -<a name="l00572"></a>00572 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>); -<a name="l00573"></a>00573 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00574"></a>00574 } -<a name="l00575"></a>00575 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off); -<a name="l00576"></a>00576 } -<a name="l00577"></a>00577 <span class="keywordflow">else</span> -<a name="l00578"></a>00578 { -<a name="l00579"></a>00579 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Muppet modechar detected."</span>); -<a name="l00580"></a>00580 } -<a name="l00581"></a>00581 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00582"></a>00582 } -<a name="l00583"></a>00583 -<a name="l00584"></a><a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">00584</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">Server::AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar) -<a name="l00585"></a>00585 { -<a name="l00586"></a>00586 <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,<a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>,<span class="keyword">false</span>,1,1); -<a name="l00587"></a>00587 <span class="keywordflow">if</span> (res) -<a name="l00588"></a>00588 <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(modechar); -<a name="l00589"></a>00589 <span class="keywordflow">return</span> res; -<a name="l00590"></a>00590 } -<a name="l00591"></a>00591 -<a name="l00592"></a><a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">00592</a> <span class="keywordtype">int</span> <a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">Server::CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c) -<a name="l00593"></a>00593 { -<a name="l00594"></a>00594 <span class="keywordflow">return</span> usercount(c); -<a name="l00595"></a>00595 } +<a name="l00555"></a><a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">00555</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">Server::AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off) +<a name="l00556"></a>00556 { +<a name="l00557"></a>00557 <span class="keywordflow">if</span> (((modechar >= <span class="charliteral">'A'</span>) && (modechar <= <span class="charliteral">'Z'</span>)) || ((modechar >= <span class="charliteral">'a'</span>) && (modechar <= <span class="charliteral">'z'</span>))) +<a name="l00558"></a>00558 { +<a name="l00559"></a>00559 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#MT_5FSERVER">MT_SERVER</a>) +<a name="l00560"></a>00560 { +<a name="l00561"></a>00561 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>); +<a name="l00562"></a>00562 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00563"></a>00563 } +<a name="l00564"></a>00564 <span class="keywordflow">if</span> (((params_when_on>0) || (params_when_off>0)) && (type == <a class="code" href="modules_8h.html#MT_5FCLIENT">MT_CLIENT</a>)) +<a name="l00565"></a>00565 { +<a name="l00566"></a>00566 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>); +<a name="l00567"></a>00567 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00568"></a>00568 } +<a name="l00569"></a>00569 <span class="keywordflow">if</span> ((params_when_on>1) || (params_when_off>1)) +<a name="l00570"></a>00570 { +<a name="l00571"></a>00571 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>); +<a name="l00572"></a>00572 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00573"></a>00573 } +<a name="l00574"></a>00574 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off); +<a name="l00575"></a>00575 } +<a name="l00576"></a>00576 <span class="keywordflow">else</span> +<a name="l00577"></a>00577 { +<a name="l00578"></a>00578 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Muppet modechar detected."</span>); +<a name="l00579"></a>00579 } +<a name="l00580"></a>00580 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00581"></a>00581 } +<a name="l00582"></a>00582 +<a name="l00583"></a><a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">00583</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">Server::AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar) +<a name="l00584"></a>00584 { +<a name="l00585"></a>00585 <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,<a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>,<span class="keyword">false</span>,1,1); +<a name="l00586"></a>00586 <span class="keywordflow">if</span> (res) +<a name="l00587"></a>00587 <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(modechar); +<a name="l00588"></a>00588 <span class="keywordflow">return</span> res; +<a name="l00589"></a>00589 } +<a name="l00590"></a>00590 +<a name="l00591"></a><a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">00591</a> <span class="keywordtype">int</span> <a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">Server::CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c) +<a name="l00592"></a>00592 { +<a name="l00593"></a>00593 <span class="keywordflow">return</span> usercount(c); +<a name="l00594"></a>00594 } +<a name="l00595"></a>00595 <a name="l00596"></a>00596 -<a name="l00597"></a>00597 -<a name="l00598"></a><a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">00598</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Server::UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="namespaceirc.html#string">std::string</a> message) -<a name="l00599"></a>00599 { -<a name="l00600"></a>00600 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-><a class="code" href="classconnection.html#fd">fd</a>; -<a name="l00601"></a>00601 user-><a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>; -<a name="l00602"></a>00602 user-><a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>(); -<a name="l00603"></a>00603 <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-><a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-><a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,message.c_str()); -<a name="l00604"></a>00604 SE-><a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(old_fd); -<a name="l00605"></a>00605 shutdown(old_fd,2); -<a name="l00606"></a>00606 close(old_fd); -<a name="l00607"></a>00607 <span class="keywordflow">return</span> <span class="keyword">true</span>; -<a name="l00608"></a>00608 } -<a name="l00609"></a>00609 -<a name="l00610"></a><a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">00610</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">Server::PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,<a class="code" href="namespaceirc.html#string">std::string</a> message) -<a name="l00611"></a>00611 { -<a name="l00612"></a>00612 zombie-><a class="code" href="classconnection.html#fd">fd</a> = alive-><a class="code" href="classconnection.html#fd">fd</a>; -<a name="l00613"></a>00613 alive-><a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>; -<a name="l00614"></a>00614 alive-><a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>(); -<a name="l00615"></a>00615 <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(zombie-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,alive-><a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,alive-><a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,zombie-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>); -<a name="l00616"></a>00616 <a class="code" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(alive,message.c_str()); -<a name="l00617"></a>00617 fd_ref_table[zombie-><a class="code" href="classconnection.html#fd">fd</a>] = zombie; -<a name="l00618"></a>00618 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < zombie->chans.size(); i++) -<a name="l00619"></a>00619 { -<a name="l00620"></a>00620 <span class="keywordflow">if</span> (zombie-><a class="code" href="classuserrec.html#chans">chans</a>[i].channel != NULL) -<a name="l00621"></a>00621 { -<a name="l00622"></a>00622 <span class="keywordflow">if</span> (zombie-><a class="code" href="classuserrec.html#chans">chans</a>[i].channel->name) -<a name="l00623"></a>00623 { -<a name="l00624"></a>00624 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-><a class="code" href="classuserrec.html#chans">chans</a>[i].channel; -<a name="l00625"></a>00625 <a class="code" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom</a>(zombie-><a class="code" href="classconnection.html#fd">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-><a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>); -<a name="l00626"></a>00626 <span class="keywordflow">if</span> (Ptr-><a class="code" href="classchanrec.html#topicset">topicset</a>) -<a name="l00627"></a>00627 { -<a name="l00628"></a>00628 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-><a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-><a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>); -<a name="l00629"></a>00629 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-><a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-><a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>, Ptr-><a class="code" href="classchanrec.html#topicset">topicset</a>); -<a name="l00630"></a>00630 } -<a name="l00631"></a>00631 userlist(zombie,Ptr); -<a name="l00632"></a>00632 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-><a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>); -<a name="l00633"></a>00633 -<a name="l00634"></a>00634 } -<a name="l00635"></a>00635 } -<a name="l00636"></a>00636 } -<a name="l00637"></a>00637 <span class="keywordflow">return</span> <span class="keyword">true</span>; -<a name="l00638"></a>00638 } -<a name="l00639"></a>00639 -<a name="l00640"></a><a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00640</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) -<a name="l00641"></a>00641 { -<a name="l00642"></a>00642 <a class="code" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str()); -<a name="l00643"></a>00643 } -<a name="l00644"></a>00644 -<a name="l00645"></a><a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">00645</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">Server::AddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickname) -<a name="l00646"></a>00646 { -<a name="l00647"></a>00647 <a class="code" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline</a>(duration, source.c_str(), reason.c_str(), nickname.c_str()); -<a name="l00648"></a>00648 } -<a name="l00649"></a>00649 -<a name="l00650"></a><a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">00650</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">Server::AddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipaddr) -<a name="l00651"></a>00651 { -<a name="l00652"></a>00652 <a class="code" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline</a>(duration, source.c_str(), reason.c_str(), ipaddr.c_str()); -<a name="l00653"></a>00653 } -<a name="l00654"></a>00654 -<a name="l00655"></a><a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00655</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) -<a name="l00656"></a>00656 { -<a name="l00657"></a>00657 <a class="code" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str()); -<a name="l00658"></a>00658 } -<a name="l00659"></a>00659 -<a name="l00660"></a><a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00660</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) -<a name="l00661"></a>00661 { -<a name="l00662"></a>00662 <a class="code" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str()); -<a name="l00663"></a>00663 } -<a name="l00664"></a>00664 -<a name="l00665"></a><a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">00665</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">Server::DelGLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask) -<a name="l00666"></a>00666 { -<a name="l00667"></a>00667 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline</a>(hostmask.c_str()); -<a name="l00668"></a>00668 } -<a name="l00669"></a>00669 -<a name="l00670"></a><a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">00670</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">Server::DelQLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nickname) -<a name="l00671"></a>00671 { -<a name="l00672"></a>00672 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline</a>(nickname.c_str()); -<a name="l00673"></a>00673 } -<a name="l00674"></a>00674 -<a name="l00675"></a><a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">00675</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">Server::DelZLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ipaddr) -<a name="l00676"></a>00676 { -<a name="l00677"></a>00677 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline</a>(ipaddr.c_str()); -<a name="l00678"></a>00678 } -<a name="l00679"></a>00679 -<a name="l00680"></a><a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">00680</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">Server::DelKLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask) -<a name="l00681"></a>00681 { -<a name="l00682"></a>00682 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline</a>(hostmask.c_str()); -<a name="l00683"></a>00683 } -<a name="l00684"></a>00684 -<a name="l00685"></a><a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">00685</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">Server::DelELine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask) -<a name="l00686"></a>00686 { -<a name="l00687"></a>00687 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline</a>(hostmask.c_str()); -<a name="l00688"></a>00688 } -<a name="l00689"></a>00689 -<a name="l00690"></a><a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">00690</a> <span class="keywordtype">long</span> <a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">Server::CalcDuration</a>(<a class="code" href="namespaceirc.html#string">std::string</a> delta) -<a name="l00691"></a>00691 { -<a name="l00692"></a>00692 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>(delta.c_str()); -<a name="l00693"></a>00693 } -<a name="l00694"></a>00694 -<a name="l00695"></a><a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">00695</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">Server::IsValidMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask) -<a name="l00696"></a>00696 { -<a name="l00697"></a>00697 <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str(); -<a name="l00698"></a>00698 <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0) -<a name="l00699"></a>00699 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00700"></a>00700 <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0) -<a name="l00701"></a>00701 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00702"></a>00702 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < strlen(dest); i++) -<a name="l00703"></a>00703 <span class="keywordflow">if</span> (dest[i] < 32) -<a name="l00704"></a>00704 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00705"></a>00705 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < strlen(dest); i++) -<a name="l00706"></a>00706 <span class="keywordflow">if</span> (dest[i] > 126) -<a name="l00707"></a>00707 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00708"></a>00708 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> c = 0; -<a name="l00709"></a>00709 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < strlen(dest); i++) -<a name="l00710"></a>00710 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>) -<a name="l00711"></a>00711 c++; -<a name="l00712"></a>00712 <span class="keywordflow">if</span> (c>1) -<a name="l00713"></a>00713 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00714"></a>00714 c = 0; -<a name="l00715"></a>00715 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < strlen(dest); i++) -<a name="l00716"></a>00716 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>) -<a name="l00717"></a>00717 c++; -<a name="l00718"></a>00718 <span class="keywordflow">if</span> (c>1) -<a name="l00719"></a>00719 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00720"></a>00720 -<a name="l00721"></a>00721 <span class="keywordflow">return</span> <span class="keyword">true</span>; -<a name="l00722"></a>00722 } -<a name="l00723"></a>00723 -<a name="l00724"></a><a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">00724</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">Server::FindModule</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name) -<a name="l00725"></a>00725 { -<a name="l00726"></a>00726 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i <= <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>; i++) -<a name="l00727"></a>00727 { -<a name="l00728"></a>00728 <span class="keywordflow">if</span> (Config-><a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>[i] == name) -<a name="l00729"></a>00729 { -<a name="l00730"></a>00730 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#modules">modules</a>[i]; -<a name="l00731"></a>00731 } -<a name="l00732"></a>00732 } -<a name="l00733"></a>00733 <span class="keywordflow">return</span> NULL; -<a name="l00734"></a>00734 } -<a name="l00735"></a>00735 -<a name="l00736"></a><a class="code" href="classConfigReader.html#ConfigReader_28_29">00736</a> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader::ConfigReader</a>() -<a name="l00737"></a>00737 { -<a name="l00738"></a>00738 Config-><a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>(); -<a name="l00739"></a>00739 this-><a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out); -<a name="l00740"></a>00740 this-><a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out); -<a name="l00741"></a>00741 this-><a class="code" href="classConfigReader.html#readerror">readerror</a> = Config-><a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(CONFIG_FILE,this->cache,this->errorlog); -<a name="l00742"></a>00742 <span class="keywordflow">if</span> (!this->readerror) -<a name="l00743"></a>00743 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>; -<a name="l00744"></a>00744 } +<a name="l00597"></a><a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">00597</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Server::UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="namespaceirc.html#string">std::string</a> message) +<a name="l00598"></a>00598 { +<a name="l00599"></a>00599 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-><a class="code" href="classconnection.html#fd">fd</a>; +<a name="l00600"></a>00600 user-><a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>; +<a name="l00601"></a>00601 user-><a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>(); +<a name="l00602"></a>00602 <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-><a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-><a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,message.c_str()); +<a name="l00603"></a>00603 ServerInstance-><a class="code" href="classInspIRCd.html#SE">SE</a>-><a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(old_fd); +<a name="l00604"></a>00604 shutdown(old_fd,2); +<a name="l00605"></a>00605 close(old_fd); +<a name="l00606"></a>00606 <span class="keywordflow">return</span> <span class="keyword">true</span>; +<a name="l00607"></a>00607 } +<a name="l00608"></a>00608 +<a name="l00609"></a><a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">00609</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">Server::PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,<a class="code" href="namespaceirc.html#string">std::string</a> message) +<a name="l00610"></a>00610 { +<a name="l00611"></a>00611 zombie-><a class="code" href="classconnection.html#fd">fd</a> = alive-><a class="code" href="classconnection.html#fd">fd</a>; +<a name="l00612"></a>00612 alive-><a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>; +<a name="l00613"></a>00613 alive-><a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>(); +<a name="l00614"></a>00614 <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(zombie-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,alive-><a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,alive-><a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,zombie-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>); +<a name="l00615"></a>00615 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(alive,message.c_str()); +<a name="l00616"></a>00616 fd_ref_table[zombie-><a class="code" href="classconnection.html#fd">fd</a>] = zombie; +<a name="l00617"></a>00617 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < zombie->chans.size(); i++) +<a name="l00618"></a>00618 { +<a name="l00619"></a>00619 <span class="keywordflow">if</span> (zombie-><a class="code" href="classuserrec.html#chans">chans</a>[i].channel != NULL) +<a name="l00620"></a>00620 { +<a name="l00621"></a>00621 <span class="keywordflow">if</span> (zombie-><a class="code" href="classuserrec.html#chans">chans</a>[i].channel->name) +<a name="l00622"></a>00622 { +<a name="l00623"></a>00623 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-><a class="code" href="classuserrec.html#chans">chans</a>[i].channel; +<a name="l00624"></a>00624 <a class="code" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom</a>(zombie-><a class="code" href="classconnection.html#fd">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-><a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>); +<a name="l00625"></a>00625 <span class="keywordflow">if</span> (Ptr-><a class="code" href="classchanrec.html#topicset">topicset</a>) +<a name="l00626"></a>00626 { +<a name="l00627"></a>00627 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-><a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-><a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>); +<a name="l00628"></a>00628 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-><a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-><a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>, Ptr-><a class="code" href="classchanrec.html#topicset">topicset</a>); +<a name="l00629"></a>00629 } +<a name="l00630"></a>00630 userlist(zombie,Ptr); +<a name="l00631"></a>00631 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-><a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>); +<a name="l00632"></a>00632 +<a name="l00633"></a>00633 } +<a name="l00634"></a>00634 } +<a name="l00635"></a>00635 } +<a name="l00636"></a>00636 <span class="keywordflow">return</span> <span class="keyword">true</span>; +<a name="l00637"></a>00637 } +<a name="l00638"></a>00638 +<a name="l00639"></a><a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00639</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) +<a name="l00640"></a>00640 { +<a name="l00641"></a>00641 <a class="code" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str()); +<a name="l00642"></a>00642 } +<a name="l00643"></a>00643 +<a name="l00644"></a><a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">00644</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">Server::AddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickname) +<a name="l00645"></a>00645 { +<a name="l00646"></a>00646 <a class="code" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline</a>(duration, source.c_str(), reason.c_str(), nickname.c_str()); +<a name="l00647"></a>00647 } +<a name="l00648"></a>00648 +<a name="l00649"></a><a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">00649</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">Server::AddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipaddr) +<a name="l00650"></a>00650 { +<a name="l00651"></a>00651 <a class="code" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline</a>(duration, source.c_str(), reason.c_str(), ipaddr.c_str()); +<a name="l00652"></a>00652 } +<a name="l00653"></a>00653 +<a name="l00654"></a><a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00654</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) +<a name="l00655"></a>00655 { +<a name="l00656"></a>00656 <a class="code" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str()); +<a name="l00657"></a>00657 } +<a name="l00658"></a>00658 +<a name="l00659"></a><a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00659</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) +<a name="l00660"></a>00660 { +<a name="l00661"></a>00661 <a class="code" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str()); +<a name="l00662"></a>00662 } +<a name="l00663"></a>00663 +<a name="l00664"></a><a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">00664</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">Server::DelGLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask) +<a name="l00665"></a>00665 { +<a name="l00666"></a>00666 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline</a>(hostmask.c_str()); +<a name="l00667"></a>00667 } +<a name="l00668"></a>00668 +<a name="l00669"></a><a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">00669</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">Server::DelQLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nickname) +<a name="l00670"></a>00670 { +<a name="l00671"></a>00671 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline</a>(nickname.c_str()); +<a name="l00672"></a>00672 } +<a name="l00673"></a>00673 +<a name="l00674"></a><a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">00674</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">Server::DelZLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ipaddr) +<a name="l00675"></a>00675 { +<a name="l00676"></a>00676 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline</a>(ipaddr.c_str()); +<a name="l00677"></a>00677 } +<a name="l00678"></a>00678 +<a name="l00679"></a><a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">00679</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">Server::DelKLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask) +<a name="l00680"></a>00680 { +<a name="l00681"></a>00681 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline</a>(hostmask.c_str()); +<a name="l00682"></a>00682 } +<a name="l00683"></a>00683 +<a name="l00684"></a><a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">00684</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">Server::DelELine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask) +<a name="l00685"></a>00685 { +<a name="l00686"></a>00686 <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline</a>(hostmask.c_str()); +<a name="l00687"></a>00687 } +<a name="l00688"></a>00688 +<a name="l00689"></a><a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">00689</a> <span class="keywordtype">long</span> <a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">Server::CalcDuration</a>(<a class="code" href="namespaceirc.html#string">std::string</a> delta) +<a name="l00690"></a>00690 { +<a name="l00691"></a>00691 <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>(delta.c_str()); +<a name="l00692"></a>00692 } +<a name="l00693"></a>00693 +<a name="l00694"></a><a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">00694</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">Server::IsValidMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask) +<a name="l00695"></a>00695 { +<a name="l00696"></a>00696 <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str(); +<a name="l00697"></a>00697 <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0) +<a name="l00698"></a>00698 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00699"></a>00699 <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0) +<a name="l00700"></a>00700 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00701"></a>00701 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < strlen(dest); i++) +<a name="l00702"></a>00702 <span class="keywordflow">if</span> (dest[i] < 32) +<a name="l00703"></a>00703 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00704"></a>00704 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < strlen(dest); i++) +<a name="l00705"></a>00705 <span class="keywordflow">if</span> (dest[i] > 126) +<a name="l00706"></a>00706 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00707"></a>00707 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> c = 0; +<a name="l00708"></a>00708 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < strlen(dest); i++) +<a name="l00709"></a>00709 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>) +<a name="l00710"></a>00710 c++; +<a name="l00711"></a>00711 <span class="keywordflow">if</span> (c>1) +<a name="l00712"></a>00712 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00713"></a>00713 c = 0; +<a name="l00714"></a>00714 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < strlen(dest); i++) +<a name="l00715"></a>00715 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>) +<a name="l00716"></a>00716 c++; +<a name="l00717"></a>00717 <span class="keywordflow">if</span> (c>1) +<a name="l00718"></a>00718 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00719"></a>00719 +<a name="l00720"></a>00720 <span class="keywordflow">return</span> <span class="keyword">true</span>; +<a name="l00721"></a>00721 } +<a name="l00722"></a>00722 +<a name="l00723"></a><a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">00723</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">Server::FindModule</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name) +<a name="l00724"></a>00724 { +<a name="l00725"></a>00725 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i <= <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>; i++) +<a name="l00726"></a>00726 { +<a name="l00727"></a>00727 <span class="keywordflow">if</span> (Config-><a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>[i] == name) +<a name="l00728"></a>00728 { +<a name="l00729"></a>00729 <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#modules">modules</a>[i]; +<a name="l00730"></a>00730 } +<a name="l00731"></a>00731 } +<a name="l00732"></a>00732 <span class="keywordflow">return</span> NULL; +<a name="l00733"></a>00733 } +<a name="l00734"></a>00734 +<a name="l00735"></a><a class="code" href="classConfigReader.html#ConfigReader_28_29">00735</a> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader::ConfigReader</a>() +<a name="l00736"></a>00736 { +<a name="l00737"></a>00737 Config-><a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>(); +<a name="l00738"></a>00738 this-><a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out); +<a name="l00739"></a>00739 this-><a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out); +<a name="l00740"></a>00740 this-><a class="code" href="classConfigReader.html#readerror">readerror</a> = Config-><a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(CONFIG_FILE,this->cache,this->errorlog); +<a name="l00741"></a>00741 <span class="keywordflow">if</span> (!this->readerror) +<a name="l00742"></a>00742 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>; +<a name="l00743"></a>00743 } +<a name="l00744"></a>00744 <a name="l00745"></a>00745 -<a name="l00746"></a>00746 -<a name="l00747"></a><a class="code" href="classConfigReader.html#_7EConfigReader_28_29">00747</a> <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">ConfigReader::~ConfigReader</a>() -<a name="l00748"></a>00748 { -<a name="l00749"></a>00749 <span class="keywordflow">if</span> (this->cache) -<a name="l00750"></a>00750 <span class="keyword">delete</span> this-><a class="code" href="classConfigReader.html#cache">cache</a>; -<a name="l00751"></a>00751 <span class="keywordflow">if</span> (this->errorlog) -<a name="l00752"></a>00752 <span class="keyword">delete</span> this-><a class="code" href="classConfigReader.html#errorlog">errorlog</a>; -<a name="l00753"></a>00753 } +<a name="l00746"></a><a class="code" href="classConfigReader.html#_7EConfigReader_28_29">00746</a> <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">ConfigReader::~ConfigReader</a>() +<a name="l00747"></a>00747 { +<a name="l00748"></a>00748 <span class="keywordflow">if</span> (this->cache) +<a name="l00749"></a>00749 <span class="keyword">delete</span> this-><a class="code" href="classConfigReader.html#cache">cache</a>; +<a name="l00750"></a>00750 <span class="keywordflow">if</span> (this->errorlog) +<a name="l00751"></a>00751 <span class="keyword">delete</span> this-><a class="code" href="classConfigReader.html#errorlog">errorlog</a>; +<a name="l00752"></a>00752 } +<a name="l00753"></a>00753 <a name="l00754"></a>00754 -<a name="l00755"></a>00755 -<a name="l00756"></a><a class="code" href="classConfigReader.html#ConfigReader_28std_3A_3Astring_20filename_29">00756</a> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader::ConfigReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename) -<a name="l00757"></a>00757 { -<a name="l00758"></a>00758 Config-><a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>(); -<a name="l00759"></a>00759 this-><a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out); -<a name="l00760"></a>00760 this-><a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out); -<a name="l00761"></a>00761 this-><a class="code" href="classConfigReader.html#readerror">readerror</a> = Config-><a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(filename.c_str(),this-><a class="code" href="classConfigReader.html#cache">cache</a>,this-><a class="code" href="classConfigReader.html#errorlog">errorlog</a>); -<a name="l00762"></a>00762 <span class="keywordflow">if</span> (!this->readerror) -<a name="l00763"></a>00763 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>; -<a name="l00764"></a>00764 }; -<a name="l00765"></a>00765 -<a name="l00766"></a><a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">00766</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader::ReadValue</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index) -<a name="l00767"></a>00767 { -<a name="l00768"></a>00768 <span class="keywordtype">char</span> val[MAXBUF]; -<a name="l00769"></a>00769 <span class="keywordtype">char</span> t[MAXBUF]; -<a name="l00770"></a>00770 <span class="keywordtype">char</span> n[MAXBUF]; -<a name="l00771"></a>00771 strlcpy(t,tag.c_str(),MAXBUF); -<a name="l00772"></a>00772 strlcpy(n,name.c_str(),MAXBUF); -<a name="l00773"></a>00773 <span class="keywordtype">int</span> res = Config-><a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val); -<a name="l00774"></a>00774 <span class="keywordflow">if</span> (!res) -<a name="l00775"></a>00775 { -<a name="l00776"></a>00776 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>; -<a name="l00777"></a>00777 <span class="keywordflow">return</span> <span class="stringliteral">""</span>; -<a name="l00778"></a>00778 } -<a name="l00779"></a>00779 <span class="keywordflow">return</span> val; -<a name="l00780"></a>00780 } -<a name="l00781"></a>00781 -<a name="l00782"></a><a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">00782</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader::ReadFlag</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index) -<a name="l00783"></a>00783 { -<a name="l00784"></a>00784 <span class="keywordtype">char</span> val[MAXBUF]; -<a name="l00785"></a>00785 <span class="keywordtype">char</span> t[MAXBUF]; -<a name="l00786"></a>00786 <span class="keywordtype">char</span> n[MAXBUF]; -<a name="l00787"></a>00787 strlcpy(t,tag.c_str(),MAXBUF); -<a name="l00788"></a>00788 strlcpy(n,name.c_str(),MAXBUF); -<a name="l00789"></a>00789 <span class="keywordtype">int</span> res = Config-><a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val); -<a name="l00790"></a>00790 <span class="keywordflow">if</span> (!res) -<a name="l00791"></a>00791 { -<a name="l00792"></a>00792 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>; -<a name="l00793"></a>00793 <span class="keywordflow">return</span> <span class="keyword">false</span>; -<a name="l00794"></a>00794 } -<a name="l00795"></a>00795 <a class="code" href="namespaceirc.html#string">std::string</a> s = val; -<a name="l00796"></a>00796 <span class="keywordflow">return</span> ((s == <span class="stringliteral">"yes"</span>) || (s == <span class="stringliteral">"YES"</span>) || (s == <span class="stringliteral">"true"</span>) || (s == <span class="stringliteral">"TRUE"</span>) || (s == <span class="stringliteral">"1"</span>)); -<a name="l00797"></a>00797 } -<a name="l00798"></a>00798 -<a name="l00799"></a><a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">00799</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ConfigReader::ReadInteger</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned) -<a name="l00800"></a>00800 { -<a name="l00801"></a>00801 <span class="keywordtype">char</span> val[MAXBUF]; -<a name="l00802"></a>00802 <span class="keywordtype">char</span> t[MAXBUF]; -<a name="l00803"></a>00803 <span class="keywordtype">char</span> n[MAXBUF]; -<a name="l00804"></a>00804 strlcpy(t,tag.c_str(),MAXBUF); -<a name="l00805"></a>00805 strlcpy(n,name.c_str(),MAXBUF); -<a name="l00806"></a>00806 <span class="keywordtype">int</span> res = Config-><a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val); -<a name="l00807"></a>00807 <span class="keywordflow">if</span> (!res) -<a name="l00808"></a>00808 { -<a name="l00809"></a>00809 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>; -<a name="l00810"></a>00810 <span class="keywordflow">return</span> 0; -<a name="l00811"></a>00811 } -<a name="l00812"></a>00812 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < strlen(val); i++) -<a name="l00813"></a>00813 { -<a name="l00814"></a>00814 <span class="keywordflow">if</span> (!isdigit(val[i])) -<a name="l00815"></a>00815 { -<a name="l00816"></a>00816 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">CONF_NOT_A_NUMBER</a>; -<a name="l00817"></a>00817 <span class="keywordflow">return</span> 0; -<a name="l00818"></a>00818 } -<a name="l00819"></a>00819 } -<a name="l00820"></a>00820 <span class="keywordflow">if</span> ((needs_unsigned) && (atoi(val)<0)) -<a name="l00821"></a>00821 { -<a name="l00822"></a>00822 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">CONF_NOT_UNSIGNED</a>; -<a name="l00823"></a>00823 <span class="keywordflow">return</span> 0; -<a name="l00824"></a>00824 } -<a name="l00825"></a>00825 <span class="keywordflow">return</span> atoi(val); -<a name="l00826"></a>00826 } -<a name="l00827"></a>00827 -<a name="l00828"></a><a class="code" href="classConfigReader.html#GetError_28_29">00828</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">ConfigReader::GetError</a>() -<a name="l00829"></a>00829 { -<a name="l00830"></a>00830 <span class="keywordtype">long</span> olderr = this-><a class="code" href="classConfigReader.html#error">error</a>; -<a name="l00831"></a>00831 this-><a class="code" href="classConfigReader.html#error">error</a> = 0; -<a name="l00832"></a>00832 <span class="keywordflow">return</span> olderr; -<a name="l00833"></a>00833 } -<a name="l00834"></a>00834 -<a name="l00835"></a><a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">00835</a> <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">ConfigReader::DumpErrors</a>(<span class="keywordtype">bool</span> bail, <a class="code" href="classuserrec.html">userrec</a>* user) -<a name="l00836"></a>00836 { -<a name="l00837"></a>00837 <span class="keywordflow">if</span> (bail) -<a name="l00838"></a>00838 { -<a name="l00839"></a>00839 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#errorlog">errorlog</a>->str().c_str()); -<a name="l00840"></a>00840 exit(0); -<a name="l00841"></a>00841 } -<a name="l00842"></a>00842 <span class="keywordflow">else</span> -<a name="l00843"></a>00843 { -<a name="l00844"></a>00844 <span class="keywordtype">char</span> dataline[1024]; -<a name="l00845"></a>00845 <span class="keywordflow">if</span> (user) -<a name="l00846"></a>00846 { -<a name="l00847"></a>00847 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>); -<a name="l00848"></a>00848 <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>->eof()) -<a name="l00849"></a>00849 { -<a name="l00850"></a>00850 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>->getline(dataline,1024); -<a name="l00851"></a>00851 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,dataline); -<a name="l00852"></a>00852 } -<a name="l00853"></a>00853 } -<a name="l00854"></a>00854 <span class="keywordflow">else</span> -<a name="l00855"></a>00855 { -<a name="l00856"></a>00856 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>); -<a name="l00857"></a>00857 <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>->eof()) -<a name="l00858"></a>00858 { -<a name="l00859"></a>00859 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>->getline(dataline,1024); -<a name="l00860"></a>00860 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(dataline); -<a name="l00861"></a>00861 } -<a name="l00862"></a>00862 } -<a name="l00863"></a>00863 <span class="keywordflow">return</span>; -<a name="l00864"></a>00864 } -<a name="l00865"></a>00865 } +<a name="l00755"></a><a class="code" href="classConfigReader.html#ConfigReader_28std_3A_3Astring_20filename_29">00755</a> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader::ConfigReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename) +<a name="l00756"></a>00756 { +<a name="l00757"></a>00757 Config-><a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>(); +<a name="l00758"></a>00758 this-><a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out); +<a name="l00759"></a>00759 this-><a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out); +<a name="l00760"></a>00760 this-><a class="code" href="classConfigReader.html#readerror">readerror</a> = Config-><a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(filename.c_str(),this-><a class="code" href="classConfigReader.html#cache">cache</a>,this-><a class="code" href="classConfigReader.html#errorlog">errorlog</a>); +<a name="l00761"></a>00761 <span class="keywordflow">if</span> (!this->readerror) +<a name="l00762"></a>00762 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>; +<a name="l00763"></a>00763 }; +<a name="l00764"></a>00764 +<a name="l00765"></a><a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">00765</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader::ReadValue</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index) +<a name="l00766"></a>00766 { +<a name="l00767"></a>00767 <span class="keywordtype">char</span> val[MAXBUF]; +<a name="l00768"></a>00768 <span class="keywordtype">char</span> t[MAXBUF]; +<a name="l00769"></a>00769 <span class="keywordtype">char</span> n[MAXBUF]; +<a name="l00770"></a>00770 strlcpy(t,tag.c_str(),MAXBUF); +<a name="l00771"></a>00771 strlcpy(n,name.c_str(),MAXBUF); +<a name="l00772"></a>00772 <span class="keywordtype">int</span> res = Config-><a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val); +<a name="l00773"></a>00773 <span class="keywordflow">if</span> (!res) +<a name="l00774"></a>00774 { +<a name="l00775"></a>00775 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>; +<a name="l00776"></a>00776 <span class="keywordflow">return</span> <span class="stringliteral">""</span>; +<a name="l00777"></a>00777 } +<a name="l00778"></a>00778 <span class="keywordflow">return</span> val; +<a name="l00779"></a>00779 } +<a name="l00780"></a>00780 +<a name="l00781"></a><a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">00781</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader::ReadFlag</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index) +<a name="l00782"></a>00782 { +<a name="l00783"></a>00783 <span class="keywordtype">char</span> val[MAXBUF]; +<a name="l00784"></a>00784 <span class="keywordtype">char</span> t[MAXBUF]; +<a name="l00785"></a>00785 <span class="keywordtype">char</span> n[MAXBUF]; +<a name="l00786"></a>00786 strlcpy(t,tag.c_str(),MAXBUF); +<a name="l00787"></a>00787 strlcpy(n,name.c_str(),MAXBUF); +<a name="l00788"></a>00788 <span class="keywordtype">int</span> res = Config-><a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val); +<a name="l00789"></a>00789 <span class="keywordflow">if</span> (!res) +<a name="l00790"></a>00790 { +<a name="l00791"></a>00791 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>; +<a name="l00792"></a>00792 <span class="keywordflow">return</span> <span class="keyword">false</span>; +<a name="l00793"></a>00793 } +<a name="l00794"></a>00794 <a class="code" href="namespaceirc.html#string">std::string</a> s = val; +<a name="l00795"></a>00795 <span class="keywordflow">return</span> ((s == <span class="stringliteral">"yes"</span>) || (s == <span class="stringliteral">"YES"</span>) || (s == <span class="stringliteral">"true"</span>) || (s == <span class="stringliteral">"TRUE"</span>) || (s == <span class="stringliteral">"1"</span>)); +<a name="l00796"></a>00796 } +<a name="l00797"></a>00797 +<a name="l00798"></a><a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">00798</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ConfigReader::ReadInteger</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned) +<a name="l00799"></a>00799 { +<a name="l00800"></a>00800 <span class="keywordtype">char</span> val[MAXBUF]; +<a name="l00801"></a>00801 <span class="keywordtype">char</span> t[MAXBUF]; +<a name="l00802"></a>00802 <span class="keywordtype">char</span> n[MAXBUF]; +<a name="l00803"></a>00803 strlcpy(t,tag.c_str(),MAXBUF); +<a name="l00804"></a>00804 strlcpy(n,name.c_str(),MAXBUF); +<a name="l00805"></a>00805 <span class="keywordtype">int</span> res = Config-><a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val); +<a name="l00806"></a>00806 <span class="keywordflow">if</span> (!res) +<a name="l00807"></a>00807 { +<a name="l00808"></a>00808 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>; +<a name="l00809"></a>00809 <span class="keywordflow">return</span> 0; +<a name="l00810"></a>00810 } +<a name="l00811"></a>00811 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < strlen(val); i++) +<a name="l00812"></a>00812 { +<a name="l00813"></a>00813 <span class="keywordflow">if</span> (!isdigit(val[i])) +<a name="l00814"></a>00814 { +<a name="l00815"></a>00815 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">CONF_NOT_A_NUMBER</a>; +<a name="l00816"></a>00816 <span class="keywordflow">return</span> 0; +<a name="l00817"></a>00817 } +<a name="l00818"></a>00818 } +<a name="l00819"></a>00819 <span class="keywordflow">if</span> ((needs_unsigned) && (atoi(val)<0)) +<a name="l00820"></a>00820 { +<a name="l00821"></a>00821 this-><a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">CONF_NOT_UNSIGNED</a>; +<a name="l00822"></a>00822 <span class="keywordflow">return</span> 0; +<a name="l00823"></a>00823 } +<a name="l00824"></a>00824 <span class="keywordflow">return</span> atoi(val); +<a name="l00825"></a>00825 } +<a name="l00826"></a>00826 +<a name="l00827"></a><a class="code" href="classConfigReader.html#GetError_28_29">00827</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">ConfigReader::GetError</a>() +<a name="l00828"></a>00828 { +<a name="l00829"></a>00829 <span class="keywordtype">long</span> olderr = this-><a class="code" href="classConfigReader.html#error">error</a>; +<a name="l00830"></a>00830 this-><a class="code" href="classConfigReader.html#error">error</a> = 0; +<a name="l00831"></a>00831 <span class="keywordflow">return</span> olderr; +<a name="l00832"></a>00832 } +<a name="l00833"></a>00833 +<a name="l00834"></a><a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">00834</a> <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">ConfigReader::DumpErrors</a>(<span class="keywordtype">bool</span> bail, <a class="code" href="classuserrec.html">userrec</a>* user) +<a name="l00835"></a>00835 { +<a name="l00836"></a>00836 <span class="keywordflow">if</span> (bail) +<a name="l00837"></a>00837 { +<a name="l00838"></a>00838 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#errorlog">errorlog</a>->str().c_str()); +<a name="l00839"></a>00839 exit(0); +<a name="l00840"></a>00840 } +<a name="l00841"></a>00841 <span class="keywordflow">else</span> +<a name="l00842"></a>00842 { +<a name="l00843"></a>00843 <span class="keywordtype">char</span> dataline[1024]; +<a name="l00844"></a>00844 <span class="keywordflow">if</span> (user) +<a name="l00845"></a>00845 { +<a name="l00846"></a>00846 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>); +<a name="l00847"></a>00847 <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>->eof()) +<a name="l00848"></a>00848 { +<a name="l00849"></a>00849 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>->getline(dataline,1024); +<a name="l00850"></a>00850 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-><a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,dataline); +<a name="l00851"></a>00851 } +<a name="l00852"></a>00852 } +<a name="l00853"></a>00853 <span class="keywordflow">else</span> +<a name="l00854"></a>00854 { +<a name="l00855"></a>00855 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>); +<a name="l00856"></a>00856 <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>->eof()) +<a name="l00857"></a>00857 { +<a name="l00858"></a>00858 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>->getline(dataline,1024); +<a name="l00859"></a>00859 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(dataline); +<a name="l00860"></a>00860 } +<a name="l00861"></a>00861 } +<a name="l00862"></a>00862 <span class="keywordflow">return</span>; +<a name="l00863"></a>00863 } +<a name="l00864"></a>00864 } +<a name="l00865"></a>00865 <a name="l00866"></a>00866 -<a name="l00867"></a>00867 -<a name="l00868"></a><a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">00868</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">ConfigReader::Enumerate</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag) -<a name="l00869"></a>00869 { -<a name="l00870"></a>00870 <span class="keywordflow">return</span> Config-><a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,tag.c_str()); -<a name="l00871"></a>00871 } -<a name="l00872"></a>00872 -<a name="l00873"></a><a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">00873</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">ConfigReader::EnumerateValues</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <span class="keywordtype">int</span> index) -<a name="l00874"></a>00874 { -<a name="l00875"></a>00875 <span class="keywordflow">return</span> Config-><a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(<a class="code" href="classConfigReader.html#cache">cache</a>, tag.c_str(), index); -<a name="l00876"></a>00876 } -<a name="l00877"></a>00877 -<a name="l00878"></a><a class="code" href="classConfigReader.html#Verify_28_29">00878</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">ConfigReader::Verify</a>() -<a name="l00879"></a>00879 { -<a name="l00880"></a>00880 <span class="keywordflow">return</span> this-><a class="code" href="classConfigReader.html#readerror">readerror</a>; -<a name="l00881"></a>00881 } +<a name="l00867"></a><a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">00867</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">ConfigReader::Enumerate</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag) +<a name="l00868"></a>00868 { +<a name="l00869"></a>00869 <span class="keywordflow">return</span> Config-><a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,tag.c_str()); +<a name="l00870"></a>00870 } +<a name="l00871"></a>00871 +<a name="l00872"></a><a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">00872</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">ConfigReader::EnumerateValues</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <span class="keywordtype">int</span> index) +<a name="l00873"></a>00873 { +<a name="l00874"></a>00874 <span class="keywordflow">return</span> Config-><a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(<a class="code" href="classConfigReader.html#cache">cache</a>, tag.c_str(), index); +<a name="l00875"></a>00875 } +<a name="l00876"></a>00876 +<a name="l00877"></a><a class="code" href="classConfigReader.html#Verify_28_29">00877</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">ConfigReader::Verify</a>() +<a name="l00878"></a>00878 { +<a name="l00879"></a>00879 <span class="keywordflow">return</span> this-><a class="code" href="classConfigReader.html#readerror">readerror</a>; +<a name="l00880"></a>00880 } +<a name="l00881"></a>00881 <a name="l00882"></a>00882 -<a name="l00883"></a>00883 -<a name="l00884"></a><a class="code" href="classFileReader.html#FileReader_28std_3A_3Astring_20filename_29">00884</a> <a class="code" href="classFileReader.html#FileReader_28_29">FileReader::FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename) -<a name="l00885"></a>00885 { -<a name="l00886"></a>00886 <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> c; -<a name="l00887"></a>00887 <a class="code" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile</a>(c,filename.c_str()); -<a name="l00888"></a>00888 this-><a class="code" href="classFileReader.html#fc">fc</a> = c; -<a name="l00889"></a>00889 } -<a name="l00890"></a>00890 -<a name="l00891"></a><a class="code" href="classFileReader.html#FileReader_28_29">00891</a> <a class="code" href="classFileReader.html#FileReader_28_29">FileReader::FileReader</a>() -<a name="l00892"></a>00892 { -<a name="l00893"></a>00893 } -<a name="l00894"></a>00894 -<a name="l00895"></a><a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">00895</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">FileReader::LoadFile</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename) -<a name="l00896"></a>00896 { -<a name="l00897"></a>00897 <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> c; -<a name="l00898"></a>00898 <a class="code" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile</a>(c,filename.c_str()); -<a name="l00899"></a>00899 this-><a class="code" href="classFileReader.html#fc">fc</a> = c; -<a name="l00900"></a>00900 } +<a name="l00883"></a><a class="code" href="classFileReader.html#FileReader_28std_3A_3Astring_20filename_29">00883</a> <a class="code" href="classFileReader.html#FileReader_28_29">FileReader::FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename) +<a name="l00884"></a>00884 { +<a name="l00885"></a>00885 <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> c; +<a name="l00886"></a>00886 <a class="code" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile</a>(c,filename.c_str()); +<a name="l00887"></a>00887 this-><a class="code" href="classFileReader.html#fc">fc</a> = c; +<a name="l00888"></a>00888 } +<a name="l00889"></a>00889 +<a name="l00890"></a><a class="code" href="classFileReader.html#FileReader_28_29">00890</a> <a class="code" href="classFileReader.html#FileReader_28_29">FileReader::FileReader</a>() +<a name="l00891"></a>00891 { +<a name="l00892"></a>00892 } +<a name="l00893"></a>00893 +<a name="l00894"></a><a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">00894</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">FileReader::LoadFile</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename) +<a name="l00895"></a>00895 { +<a name="l00896"></a>00896 <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> c; +<a name="l00897"></a>00897 <a class="code" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile</a>(c,filename.c_str()); +<a name="l00898"></a>00898 this-><a class="code" href="classFileReader.html#fc">fc</a> = c; +<a name="l00899"></a>00899 } +<a name="l00900"></a>00900 <a name="l00901"></a>00901 -<a name="l00902"></a>00902 -<a name="l00903"></a><a class="code" href="classFileReader.html#_7EFileReader_28_29">00903</a> <a class="code" href="classFileReader.html#_7EFileReader_28_29">FileReader::~FileReader</a>() -<a name="l00904"></a>00904 { -<a name="l00905"></a>00905 } -<a name="l00906"></a>00906 -<a name="l00907"></a><a class="code" href="classFileReader.html#Exists_28_29">00907</a> <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">FileReader::Exists</a>() -<a name="l00908"></a>00908 { -<a name="l00909"></a>00909 <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#fc">fc</a>.size() == 0) -<a name="l00910"></a>00910 { -<a name="l00911"></a>00911 <span class="keywordflow">return</span>(<span class="keyword">false</span>); -<a name="l00912"></a>00912 } -<a name="l00913"></a>00913 <span class="keywordflow">else</span> -<a name="l00914"></a>00914 { -<a name="l00915"></a>00915 <span class="keywordflow">return</span>(<span class="keyword">true</span>); -<a name="l00916"></a>00916 } -<a name="l00917"></a>00917 } -<a name="l00918"></a>00918 -<a name="l00919"></a><a class="code" href="classFileReader.html#GetLine_28int_20x_29">00919</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classFileReader.html#GetLine_28int_20x_29">FileReader::GetLine</a>(<span class="keywordtype">int</span> x) -<a name="l00920"></a>00920 { -<a name="l00921"></a>00921 <span class="keywordflow">if</span> ((x<0) || ((<span class="keywordtype">unsigned</span>)x><a class="code" href="classFileReader.html#fc">fc</a>.size())) -<a name="l00922"></a>00922 <span class="keywordflow">return</span> <span class="stringliteral">""</span>; -<a name="l00923"></a>00923 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>[x]; -<a name="l00924"></a>00924 } -<a name="l00925"></a>00925 -<a name="l00926"></a><a class="code" href="classFileReader.html#FileSize_28_29">00926</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileReader::FileSize</a>() -<a name="l00927"></a>00927 { -<a name="l00928"></a>00928 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>.size(); -<a name="l00929"></a>00929 } +<a name="l00902"></a><a class="code" href="classFileReader.html#_7EFileReader_28_29">00902</a> <a class="code" href="classFileReader.html#_7EFileReader_28_29">FileReader::~FileReader</a>() +<a name="l00903"></a>00903 { +<a name="l00904"></a>00904 } +<a name="l00905"></a>00905 +<a name="l00906"></a><a class="code" href="classFileReader.html#Exists_28_29">00906</a> <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">FileReader::Exists</a>() +<a name="l00907"></a>00907 { +<a name="l00908"></a>00908 <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#fc">fc</a>.size() == 0) +<a name="l00909"></a>00909 { +<a name="l00910"></a>00910 <span class="keywordflow">return</span>(<span class="keyword">false</span>); +<a name="l00911"></a>00911 } +<a name="l00912"></a>00912 <span class="keywordflow">else</span> +<a name="l00913"></a>00913 { +<a name="l00914"></a>00914 <span class="keywordflow">return</span>(<span class="keyword">true</span>); +<a name="l00915"></a>00915 } +<a name="l00916"></a>00916 } +<a name="l00917"></a>00917 +<a name="l00918"></a><a class="code" href="classFileReader.html#GetLine_28int_20x_29">00918</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classFileReader.html#GetLine_28int_20x_29">FileReader::GetLine</a>(<span class="keywordtype">int</span> x) +<a name="l00919"></a>00919 { +<a name="l00920"></a>00920 <span class="keywordflow">if</span> ((x<0) || ((<span class="keywordtype">unsigned</span>)x><a class="code" href="classFileReader.html#fc">fc</a>.size())) +<a name="l00921"></a>00921 <span class="keywordflow">return</span> <span class="stringliteral">""</span>; +<a name="l00922"></a>00922 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>[x]; +<a name="l00923"></a>00923 } +<a name="l00924"></a>00924 +<a name="l00925"></a><a class="code" href="classFileReader.html#FileSize_28_29">00925</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileReader::FileSize</a>() +<a name="l00926"></a>00926 { +<a name="l00927"></a>00927 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>.size(); +<a name="l00928"></a>00928 } +<a name="l00929"></a>00929 <a name="l00930"></a>00930 -<a name="l00931"></a>00931 -<a name="l00932"></a>00932 std::vector<Module*> <a class="code" href="channels_8cpp.html#modules">modules</a>(255); -<a name="l00933"></a>00933 std::vector<ircd_module*> <a class="code" href="channels_8cpp.html#factory">factory</a>(255); -<a name="l00934"></a>00934 -<a name="l00935"></a><a class="code" href="modules_8cpp.html#MODCOUNT">00935</a> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a> = -1; +<a name="l00931"></a>00931 std::vector<Module*> <a class="code" href="channels_8cpp.html#modules">modules</a>(255); +<a name="l00932"></a>00932 std::vector<ircd_module*> <a class="code" href="channels_8cpp.html#factory">factory</a>(255); +<a name="l00933"></a>00933 +<a name="l00934"></a><a class="code" href="modules_8cpp.html#MODCOUNT">00934</a> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a> = -1; +<a name="l00935"></a>00935 <a name="l00936"></a>00936 -<a name="l00937"></a>00937 -</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by +</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address> </body> |