<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>InspIRCd: users.h Source File</title> <link href="inspircd.doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.4.4-20050815 --> <div class="qindex"><a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div> <div class="nav"> <a class="el" href="dir_000000.html">home</a> » <a class="el" href="dir_000001.html">brain</a> » <a class="el" href="dir_000002.html">inspircd-cvs</a> » <a class="el" href="dir_000003.html">inspircd</a> » <a class="el" href="dir_000004.html">include</a></div> <h1>users.h</h1><a href="users_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* +------------------------------------+</span> <a name="l00002"></a>00002 <span class="comment"> * | Inspire Internet Relay Chat Daemon |</span> <a name="l00003"></a>00003 <span class="comment"> * +------------------------------------+</span> <a name="l00004"></a>00004 <span class="comment"> *</span> <a name="l00005"></a>00005 <span class="comment"> * Inspire is copyright (C) 2002-2004 ChatSpike-Dev.</span> <a name="l00006"></a>00006 <span class="comment"> * E-mail:</span> <a name="l00007"></a>00007 <span class="comment"> * <brain@chatspike.net></span> <a name="l00008"></a>00008 <span class="comment"> * <Craig@chatspike.net></span> <a name="l00009"></a>00009 <span class="comment"> * </span> <a name="l00010"></a>00010 <span class="comment"> * Written by Craig Edwards, Craig McLure, and others.</span> <a name="l00011"></a>00011 <span class="comment"> * This program is free but copyrighted software; see</span> <a name="l00012"></a>00012 <span class="comment"> * the file COPYING for details.</span> <a name="l00013"></a>00013 <span class="comment"> *</span> <a name="l00014"></a>00014 <span class="comment"> * ---------------------------------------------------</span> <a name="l00015"></a>00015 <span class="comment"> */</span> <a name="l00016"></a>00016 <a name="l00017"></a>00017 <span class="preprocessor">#include "inspircd_config.h"</span> <a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="channels_8h.html">channels.h</a>"</span> <a name="l00019"></a>00019 <span class="preprocessor">#include "inspstring.h"</span> <a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="connection_8h.html">connection.h</a>"</span> <a name="l00021"></a>00021 <span class="preprocessor">#include <string></span> <a name="l00022"></a>00022 <a name="l00023"></a>00023 <span class="preprocessor">#ifndef __USERS_H__ </span> <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define __USERS_H__ </span> <a name="l00025"></a>00025 <span class="preprocessor"></span> <a name="l00026"></a><a class="code" href="users_8h.html#STATUS_5FOP">00026</a> <span class="preprocessor">#define STATUS_OP 4</span> <a name="l00027"></a><a class="code" href="users_8h.html#STATUS_5FHOP">00027</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_HOP 2</span> <a name="l00028"></a><a class="code" href="users_8h.html#STATUS_5FVOICE">00028</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_VOICE 1</span> <a name="l00029"></a><a class="code" href="users_8h.html#STATUS_5FNORMAL">00029</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_NORMAL 0</span> <a name="l00030"></a>00030 <span class="preprocessor"></span> <a name="l00031"></a><a class="code" href="users_8h.html#CC_5FALLOW">00031</a> <span class="preprocessor">#define CC_ALLOW 0</span> <a name="l00032"></a><a class="code" href="users_8h.html#CC_5FDENY">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define CC_DENY 1</span> <a name="l00033"></a>00033 <span class="preprocessor"></span> <a name="l00036"></a><a class="code" href="classInvited.html">00036</a> <span class="keyword">class </span><a class="code" href="classInvited.html">Invited</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> <a name="l00037"></a>00037 { <a name="l00038"></a>00038 <span class="keyword">public</span>: <a name="l00039"></a><a class="code" href="classInvited.html#channel_5BCHANMAX_5D">00039</a> <span class="keywordtype">char</span> <a class="code" href="classInvited.html#channel_5BCHANMAX_5D">channel</a>[CHANMAX]; <a name="l00040"></a>00040 }; <a name="l00041"></a>00041 <a name="l00042"></a>00042 <a name="l00045"></a><a class="code" href="classConnectClass.html">00045</a> <span class="keyword">class </span><a class="code" href="classConnectClass.html">ConnectClass</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> <a name="l00046"></a>00046 { <a name="l00047"></a>00047 <span class="keyword">public</span>: <a name="l00050"></a><a class="code" href="classConnectClass.html#type">00050</a> <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#type">type</a>; <a name="l00053"></a><a class="code" href="classConnectClass.html#registration_5Ftimeout">00053</a> <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#registration_5Ftimeout">registration_timeout</a>; <a name="l00056"></a><a class="code" href="classConnectClass.html#flood">00056</a> <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#flood">flood</a>; <a name="l00059"></a><a class="code" href="classConnectClass.html#host_5BMAXBUF_5D">00059</a> <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#host_5BMAXBUF_5D">host</a>[MAXBUF]; <a name="l00062"></a><a class="code" href="classConnectClass.html#pingtime">00062</a> <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#pingtime">pingtime</a>; <a name="l00065"></a><a class="code" href="classConnectClass.html#pass_5BMAXBUF_5D">00065</a> <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#pass_5BMAXBUF_5D">pass</a>[MAXBUF]; <a name="l00066"></a>00066 <a name="l00069"></a><a class="code" href="classConnectClass.html#threshold">00069</a> <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#threshold">threshold</a>; <a name="l00070"></a>00070 <a name="l00073"></a><a class="code" href="classConnectClass.html#sendqmax">00073</a> <span class="keywordtype">long</span> <a class="code" href="classConnectClass.html#sendqmax">sendqmax</a>; <a name="l00074"></a>00074 <a name="l00077"></a><a class="code" href="classConnectClass.html#recvqmax">00077</a> <span class="keywordtype">long</span> <a class="code" href="classConnectClass.html#recvqmax">recvqmax</a>; <a name="l00078"></a>00078 <a name="l00079"></a><a class="code" href="classConnectClass.html#ConnectClass_28_29">00079</a> <a class="code" href="classConnectClass.html#ConnectClass_28_29">ConnectClass</a>() <a name="l00080"></a>00080 { <a name="l00081"></a>00081 <a class="code" href="classConnectClass.html#registration_5Ftimeout">registration_timeout</a> = 0; <a name="l00082"></a>00082 <a class="code" href="classConnectClass.html#flood">flood</a> = 0; <a name="l00083"></a>00083 <a class="code" href="classConnectClass.html#pingtime">pingtime</a> = 0; <a name="l00084"></a>00084 <a class="code" href="classConnectClass.html#threshold">threshold</a> = 0; <a name="l00085"></a>00085 <a class="code" href="classConnectClass.html#sendqmax">sendqmax</a> = 0; <a name="l00086"></a>00086 <a class="code" href="classConnectClass.html#recvqmax">recvqmax</a> = 0; <a name="l00087"></a>00087 strlcpy(<a class="code" href="classConnectClass.html#host_5BMAXBUF_5D">host</a>,<span class="stringliteral">""</span>,MAXBUF); <a name="l00088"></a>00088 strlcpy(<a class="code" href="classConnectClass.html#pass_5BMAXBUF_5D">pass</a>,<span class="stringliteral">""</span>,MAXBUF); <a name="l00089"></a>00089 } <a name="l00090"></a>00090 }; <a name="l00091"></a>00091 <a name="l00094"></a><a class="code" href="users_8h.html#InvitedList">00094</a> <span class="keyword">typedef</span> std::vector<Invited> <a class="code" href="users_8h.html#InvitedList">InvitedList</a>; <a name="l00095"></a>00095 <a name="l00096"></a>00096 <a name="l00097"></a>00097 <a name="l00100"></a><a class="code" href="users_8h.html#ClassVector">00100</a> <span class="keyword">typedef</span> std::vector<ConnectClass> <a class="code" href="users_8h.html#ClassVector">ClassVector</a>; <a name="l00101"></a>00101 <a name="l00108"></a><a class="code" href="classuserrec.html">00108</a> <span class="keyword">class </span><a class="code" href="classuserrec.html">userrec</a> : <span class="keyword">public</span> <a class="code" href="classconnection.html">connection</a> <a name="l00109"></a>00109 { <a name="l00110"></a>00110 <span class="keyword">private</span>: <a name="l00111"></a>00111 <a name="l00114"></a><a class="code" href="classuserrec.html#invites">00114</a> <a class="code" href="users_8h.html#InvitedList">InvitedList</a> <a class="code" href="classuserrec.html#invites">invites</a>; <a name="l00115"></a>00115 <span class="keyword">public</span>: <a name="l00116"></a>00116 <a name="l00121"></a><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">00121</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>[NICKMAX]; <a name="l00122"></a>00122 <a name="l00126"></a><a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">00126</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>[IDENTMAX+2]; <a name="l00127"></a>00127 <a name="l00131"></a><a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">00131</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>[160]; <a name="l00132"></a>00132 <a name="l00135"></a><a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">00135</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>[MAXGECOS+1]; <a name="l00136"></a>00136 <a name="l00144"></a><a class="code" href="classuserrec.html#modes_5B_35_34_5D">00144</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#modes_5B_35_34_5D">modes</a>[54]; <a name="l00145"></a>00145 <a name="l00146"></a><a class="code" href="classuserrec.html#chans_5BMAXCHANS_5D">00146</a> <a class="code" href="classucrec.html">ucrec</a> <a class="code" href="classuserrec.html#chans_5BMAXCHANS_5D">chans</a>[MAXCHANS]; <a name="l00147"></a>00147 <a name="l00150"></a><a class="code" href="classuserrec.html#server">00150</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#server">server</a>; <a name="l00151"></a>00151 <a name="l00155"></a><a class="code" href="classuserrec.html#awaymsg_5BMAXAWAY_2B_31_5D">00155</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#awaymsg_5BMAXAWAY_2B_31_5D">awaymsg</a>[MAXAWAY+1]; <a name="l00156"></a>00156 <a name="l00161"></a><a class="code" href="classuserrec.html#flood">00161</a> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#flood">flood</a>; <a name="l00162"></a>00162 <a name="l00167"></a><a class="code" href="classuserrec.html#timeout">00167</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#timeout">timeout</a>; <a name="l00168"></a>00168 <a name="l00174"></a><a class="code" href="classuserrec.html#oper_5BNICKMAX_5D">00174</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#oper_5BNICKMAX_5D">oper</a>[NICKMAX]; <a name="l00175"></a>00175 <a name="l00178"></a><a class="code" href="classuserrec.html#dns_5Fdone">00178</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#dns_5Fdone">dns_done</a>; <a name="l00179"></a>00179 <a name="l00182"></a><a class="code" href="classuserrec.html#pingmax">00182</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#pingmax">pingmax</a>; <a name="l00183"></a>00183 <a name="l00188"></a><a class="code" href="classuserrec.html#password_5BMAXBUF_5D">00188</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#password_5BMAXBUF_5D">password</a>[MAXBUF]; <a name="l00189"></a>00189 <a name="l00194"></a><a class="code" href="classuserrec.html#recvq">00194</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#recvq">recvq</a>; <a name="l00195"></a>00195 <a name="l00199"></a><a class="code" href="classuserrec.html#sendq">00199</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#sendq">sendq</a>; <a name="l00200"></a>00200 <a name="l00203"></a><a class="code" href="classuserrec.html#lines_5Fin">00203</a> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#lines_5Fin">lines_in</a>; <a name="l00204"></a><a class="code" href="classuserrec.html#reset_5Fdue">00204</a> time_t <a class="code" href="classuserrec.html#reset_5Fdue">reset_due</a>; <a name="l00205"></a><a class="code" href="classuserrec.html#threshold">00205</a> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#threshold">threshold</a>; <a name="l00206"></a>00206 <a name="l00207"></a>00207 <span class="comment">/* Write error string</span> <a name="l00208"></a>00208 <span class="comment"> */</span> <a name="l00209"></a><a class="code" href="classuserrec.html#WriteError">00209</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#WriteError">WriteError</a>; <a name="l00210"></a>00210 <a name="l00213"></a><a class="code" href="classuserrec.html#sendqmax">00213</a> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#sendqmax">sendqmax</a>; <a name="l00214"></a>00214 <a name="l00217"></a><a class="code" href="classuserrec.html#recvqmax">00217</a> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#recvqmax">recvqmax</a>; <a name="l00218"></a>00218 <a name="l00219"></a>00219 <a class="code" href="classuserrec.html#userrec_28_29">userrec</a>(); <a name="l00220"></a>00220 <a name="l00221"></a><a class="code" href="classuserrec.html#_7Euserrec_28_29">00221</a> <span class="keyword">virtual</span> <a class="code" href="classuserrec.html#_7Euserrec_28_29">~userrec</a>() { } <a name="l00222"></a>00222 <a name="l00227"></a>00227 <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#GetFullHost_28_29">GetFullHost</a>(); <a name="l00228"></a>00228 <a name="l00234"></a>00234 <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#GetFullRealHost_28_29">GetFullRealHost</a>(); <a name="l00235"></a>00235 <a name="l00238"></a>00238 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#IsInvited_28char_20_2Achannel_29">IsInvited</a>(<span class="keywordtype">char</span>* channel); <a name="l00239"></a>00239 <a name="l00242"></a>00242 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#InviteTo_28char_20_2Achannel_29">InviteTo</a>(<span class="keywordtype">char</span>* channel); <a name="l00243"></a>00243 <a name="l00248"></a>00248 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#RemoveInvite_28char_20_2Achannel_29">RemoveInvite</a>(<span class="keywordtype">char</span>* channel); <a name="l00249"></a>00249 <a name="l00254"></a>00254 <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#HasPermission_28char_20_2Acommand_29">HasPermission</a>(<span class="keywordtype">char</span>* command); <a name="l00255"></a>00255 <a name="l00258"></a>00258 <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#ReadData_28void_20_2Abuffer_2C_20size_5Ft_20size_29">ReadData</a>(<span class="keywordtype">void</span>* buffer, size_t size); <a name="l00259"></a>00259 <a name="l00267"></a>00267 <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#AddBuffer_28std_3A_3Astring_20a_29">AddBuffer</a>(<a class="code" href="namespaceirc.html#string">std::string</a> a); <a name="l00268"></a>00268 <a name="l00272"></a>00272 <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#BufferIsReady_28_29">BufferIsReady</a>(); <a name="l00273"></a>00273 <a name="l00276"></a>00276 <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>(); <a name="l00277"></a>00277 <a name="l00285"></a>00285 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#GetBuffer_28_29">GetBuffer</a>(); <a name="l00286"></a>00286 <a name="l00292"></a>00292 <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(<a class="code" href="namespaceirc.html#string">std::string</a> error); <a name="l00293"></a>00293 <a name="l00297"></a>00297 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#GetWriteError_28_29">GetWriteError</a>(); <a name="l00298"></a>00298 <a name="l00304"></a>00304 <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#AddWriteBuf_28std_3A_3Astring_20data_29">AddWriteBuf</a>(<a class="code" href="namespaceirc.html#string">std::string</a> data); <a name="l00305"></a>00305 <a name="l00312"></a>00312 <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#FlushWriteBuf_28_29">FlushWriteBuf</a>(); <a name="l00313"></a>00313 <a name="l00316"></a>00316 <a class="code" href="users_8h.html#InvitedList">InvitedList</a>* <a class="code" href="classuserrec.html#GetInviteList_28_29">GetInviteList</a>(); <a name="l00317"></a>00317 <a name="l00320"></a>00320 <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#CloseSocket_28_29">CloseSocket</a>(); <a name="l00321"></a>00321 }; <a name="l00322"></a>00322 <a name="l00325"></a><a class="code" href="classWhoWasUser.html">00325</a> <span class="keyword">class </span><a class="code" href="classWhoWasUser.html">WhoWasUser</a> <a name="l00326"></a>00326 { <a name="l00327"></a>00327 <span class="keyword">public</span>: <a name="l00328"></a><a class="code" href="classWhoWasUser.html#nick_5BNICKMAX_5D">00328</a> <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#nick_5BNICKMAX_5D">nick</a>[NICKMAX]; <a name="l00329"></a><a class="code" href="classWhoWasUser.html#ident_5BIDENTMAX_2B_31_5D">00329</a> <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#ident_5BIDENTMAX_2B_31_5D">ident</a>[IDENTMAX+1]; <a name="l00330"></a><a class="code" href="classWhoWasUser.html#dhost_5B_31_36_30_5D">00330</a> <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#dhost_5B_31_36_30_5D">dhost</a>[160]; <a name="l00331"></a><a class="code" href="classWhoWasUser.html#host_5B_31_36_30_5D">00331</a> <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#host_5B_31_36_30_5D">host</a>[160]; <a name="l00332"></a><a class="code" href="classWhoWasUser.html#fullname_5BMAXGECOS_2B_31_5D">00332</a> <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>[MAXGECOS+1]; <a name="l00333"></a><a class="code" href="classWhoWasUser.html#server_5B_32_35_36_5D">00333</a> <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#server_5B_32_35_36_5D">server</a>[256]; <a name="l00334"></a><a class="code" href="classWhoWasUser.html#signon">00334</a> time_t <a class="code" href="classWhoWasUser.html#signon">signon</a>; <a name="l00335"></a>00335 }; <a name="l00336"></a>00336 <a name="l00337"></a>00337 <span class="preprocessor">#endif</span> </pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Nov 27 01:43:24 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> </html>