]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - docs/module-doc/classuserrec.html
Added final documentation for inspircd Beta 4
[user/henk/code/inspircd.git] / docs / module-doc / classuserrec.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>InspIRCd: userrec class Reference</title>
4 <link href="inspircd.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.3.3 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
8 <h1>userrec Class Reference</h1>Holds all information about a user This class stores all information about a user connected to the irc server.  
9 <a href="#_details">More...</a>
10 <p>
11 <code>#include &lt;<a class="el" href="users_8h-source.html">users.h</a>&gt;</code>
12 <p>
13 Inherits <a class="el" href="classconnection.html">connection</a>.
14 <p>
15 <a href="classuserrec-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
16 <tr><td></td></tr>
17 <tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
18 <tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a0">userrec</a> ()</td></tr>
19
20 <tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a1">~userrec</a> ()</td></tr>
21
22 <tr><td class="memItemLeft" nowrap align=right valign=top>virtual char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a2">GetFullHost</a> ()</td></tr>
23
24 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the full displayed host of the user This member function returns the hostname of the user as seen by other users on the server, in nick!identhost form. </em> <a href="#a2"></a><em><br><br></td></tr>
25 <tr><td class="memItemLeft" nowrap align=right valign=top>virtual char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a3">GetFullRealHost</a> ()</td></tr>
26
27 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the full real host of the user This member function returns the hostname of the user as seen by other users on the server, in nick!identhost form. </em> <a href="#a3"></a><em><br><br></td></tr>
28 <tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a4">IsInvited</a> (char *channel)</td></tr>
29
30 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if a user is invited to a channel. </em> <a href="#a4"></a><em><br><br></td></tr>
31 <tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a5">InviteTo</a> (char *channel)</td></tr>
32
33 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a channel to a users invite list (invites them to a channel). </em> <a href="#a5"></a><em><br><br></td></tr>
34 <tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a6">RemoveInvite</a> (char *channel)</td></tr>
35
36 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes a channel from a users invite list. </em> <a href="#a6"></a><em><br><br></td></tr>
37 <tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a7">HasPermission</a> (char *command)</td></tr>
38
39 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true or false for if a user can execute a privilaged oper command. </em> <a href="#a7"></a><em><br><br></td></tr>
40 <tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a8">AddBuffer</a> (std::string a)</td></tr>
41
42 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method adds data to the buffer of the user. </em> <a href="#a8"></a><em><br><br></td></tr>
43 <tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a9">BufferIsReady</a> ()</td></tr>
44
45 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method returns true if the buffer contains at least one carriage return character (e.g. </em> <a href="#a9"></a><em><br><br></td></tr>
46 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a10">ClearBuffer</a> ()</td></tr>
47
48 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function clears the entire buffer by setting it to an empty string. </em> <a href="#a10"></a><em><br><br></td></tr>
49 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a11">GetBuffer</a> ()</td></tr>
50
51 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method returns the first available string at the tail end of the buffer and advances the tail end of the buffer past the string. </em> <a href="#a11"></a><em><br><br></td></tr>
52 <tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
53 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o0">nick</a> [NICKMAX]</td></tr>
54
55 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The users nickname. </em> <a href="#o0"></a><em><br><br></td></tr>
56 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o1">ident</a> [64]</td></tr>
57
58 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The users ident reply. </em> <a href="#o1"></a><em><br><br></td></tr>
59 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o2">dhost</a> [256]</td></tr>
60
61 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The host displayed to non-opers (used for cloaking etc). </em> <a href="#o2"></a><em><br><br></td></tr>
62 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o3">fullname</a> [128]</td></tr>
63
64 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The users full name. </em> <a href="#o3"></a><em><br><br></td></tr>
65 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o4">modes</a> [MAXBUF]</td></tr>
66
67 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The user's mode string. </em> <a href="#o4"></a><em><br><br></td></tr>
68 <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classucrec.html">ucrec</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o5">chans</a> [MAXCHANS]</td></tr>
69
70 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o6">server</a> [256]</td></tr>
71
72 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The server the user is connected to. </em> <a href="#o6"></a><em><br><br></td></tr>
73 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o7">awaymsg</a> [512]</td></tr>
74
75 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The user's away message. </em> <a href="#o7"></a><em><br><br></td></tr>
76 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o8">result</a> [256]</td></tr>
77
78 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stores the result of the last GetFullHost or GetRealHost call. </em> <a href="#o8"></a><em><br><br></td></tr>
79 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o9">flood</a></td></tr>
80
81 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of lines the user can place into the buffer (up to the global NetBufferSize bytes) before they are disconnected for excess flood. </em> <a href="#o9"></a><em><br><br></td></tr>
82 <tr><td class="memItemLeft" nowrap align=right valign=top>unsigned long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o10">timeout</a></td></tr>
83
84 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of seconds this user is given to send USER/NICK If they do not send their details in this time limit they will be disconnected. </em> <a href="#o10"></a><em><br><br></td></tr>
85 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o11">oper</a> [NICKMAX]</td></tr>
86
87 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The oper type they logged in as, if they are an oper. </em> <a href="#o11"></a><em><br><br></td></tr>
88 <tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o12">dns_done</a></td></tr>
89
90 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True when <a class="el" href="classDNS.html">DNS</a> lookups are completed. </em> <a href="#o12"></a><em><br><br></td></tr>
91 <tr><td class="memItemLeft" nowrap align=right valign=top>unsigned long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o13">pingmax</a></td></tr>
92
93 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of seconds between PINGs for this user (set from &lt;connect:allow&gt; tag. </em> <a href="#o13"></a><em><br><br></td></tr>
94 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o14">password</a> [MAXBUF]</td></tr>
95
96 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Password specified by the user when they registered. </em> <a href="#o14"></a><em><br><br></td></tr>
97 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o15">recvq</a></td></tr>
98
99 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">User's receive queue. </em> <a href="#o15"></a><em><br><br></td></tr>
100 <tr><td class="memItemLeft" nowrap align=right valign=top>long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o16">lines_in</a></td></tr>
101
102 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flood counters. </em> <a href="#o16"></a><em><br><br></td></tr>
103 <tr><td class="memItemLeft" nowrap align=right valign=top>time_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o17">reset_due</a></td></tr>
104
105 <tr><td class="memItemLeft" nowrap align=right valign=top>long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o18">threshold</a></td></tr>
106
107 <tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
108 <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="users_8h.html#a6">InvitedList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#r0">invites</a></td></tr>
109
110 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A list of channels the user has a pending invite to. </em> <a href="#r0"></a><em><br><br></td></tr>
111 </table>
112 <hr><a name="_details"></a><h2>Detailed Description</h2>
113 Holds all information about a user This class stores all information about a user connected to the irc server. 
114 <p>
115 Everything about a connection is stored here primarily, from the user's socket ID (file descriptor) through to the user's nickname and hostname. Use the Find method of the server class to locate a specific user by nickname. 
116 <p>
117
118 <p>
119 Definition at line <a class="el" href="users_8h-source.html#l00098">98</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
120 <a name="a0" doxytag="userrec::userrec"></a><p>
121 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
122   <tr>
123     <td class="mdRow">
124       <table cellpadding="0" cellspacing="0" border="0">
125         <tr>
126           <td class="md" nowrap valign="top"> userrec::userrec </td>
127           <td class="md" valign="top">(&nbsp;</td>
128           <td class="mdname1" valign="top" nowrap>          </td>
129           <td class="md" valign="top">&nbsp;)&nbsp;</td>
130           <td class="md" nowrap></td>
131         </tr>
132
133       </table>
134     </td>
135   </tr>
136 </table>
137 <table cellspacing=5 cellpadding=0 border=0>
138   <tr>
139     <td>
140       &nbsp;
141     </td>
142     <td>
143
144 <p>
145
146 <p>
147 Definition at line <a class="el" href="users_8cpp-source.html#l00028">28</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
148 <p>
149 References <a class="el" href="users_8h-source.html#l00141">awaymsg</a>, <a class="el" href="connection_8h-source.html#l00231">connection::bytes_in</a>, <a class="el" href="connection_8h-source.html#l00235">connection::bytes_out</a>, <a class="el" href="channels_8h-source.html#l00268">ucrec::channel</a>, <a class="el" href="users_8h-source.html#l00132">chans</a>, <a class="el" href="connection_8h-source.html#l00239">connection::cmds_in</a>, <a class="el" href="connection_8h-source.html#l00243">connection::cmds_out</a>, <a class="el" href="users_8h-source.html#l00120">dhost</a>, <a class="el" href="users_8h-source.html#l00169">dns_done</a>, <a class="el" href="connection_8h-source.html#l00215">connection::fd</a>, <a class="el" href="users_8h-source.html#l00152">flood</a>, <a class="el" href="users_8h-source.html#l00124">fullname</a>, <a class="el" href="connection_8h-source.html#l00247">connection::haspassed</a>, <a class="el" href="connection_8h-source.html#l00219">connection::host</a>, <a class="el" href="users_8h-source.html#l00115">ident</a>, <a class="el" href="connection_8h-source.html#l00273">connection::idle_lastmsg</a>, <a class="el" href="connection_8h-source.html#l00227">connection::inbuf</a>, <a class="el" href="users_8h-source.html#l00104">invites</a>, <a class="el" href="connection_8h-source.html#l00223">connection::ip</a>, <a class="el" href="connection_8h-source.html#l00265">connection::lastping</a>, <a class="el" href="users_8h-source.html#l00189">lines_in</a>, <a class="el" href="users_8h-source.html#l00130">modes</a>, <a class="el" href="users_8h-source.html#l00111">nick</a>, <a class="el" href="connection_8h-source.html#l00277">connection::nping</a>, <a class="el" href="users_8h-source.html#l00165">oper</a>, <a class="el" href="connection_8h-source.html#l00253">connection::port</a>, <a class="el" href="users_8h-source.html#l00185">recvq</a>, <a class="el" href="connection_8h-source.html#l00257">connection::registered</a>, <a class="el" href="users_8h-source.html#l00190">reset_due</a>, <a class="el" href="users_8h-source.html#l00146">result</a>, <a class="el" href="users_8h-source.html#l00136">server</a>, <a class="el" href="connection_8h-source.html#l00269">connection::signon</a>, <a class="el" href="channels_8cpp-source.html#l00107">TIME</a>, <a class="el" href="users_8h-source.html#l00158">timeout</a>, and <a class="el" href="channels_8h-source.html#l00263">ucrec::uc_modes</a>.
150 <p>
151 <div class="fragment"><pre>00029 {
152 00030         <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
153 00031         strcpy(nick,<span class="stringliteral">""</span>);
154 00032         strcpy(ip,<span class="stringliteral">"127.0.0.1"</span>);
155 00033         <a class="code" href="classuserrec.html#o10">timeout</a> = 0;
156 00034         strcpy(ident,<span class="stringliteral">""</span>);
157 00035         strcpy(host,<span class="stringliteral">""</span>);
158 00036         strcpy(dhost,<span class="stringliteral">""</span>);
159 00037         strcpy(fullname,<span class="stringliteral">""</span>);
160 00038         strcpy(modes,<span class="stringliteral">""</span>);
161 00039         strcpy(inbuf,<span class="stringliteral">""</span>);
162 00040         strcpy(server,<span class="stringliteral">""</span>);
163 00041         strcpy(awaymsg,<span class="stringliteral">""</span>);
164 00042         strcpy(oper,<span class="stringliteral">""</span>);
165 00043         <a class="code" href="classuserrec.html#o17">reset_due</a> = <a class="code" href="channels_8cpp.html#a37">TIME</a>;
166 00044         <a class="code" href="classuserrec.html#o16">lines_in</a> = 0;
167 00045         <a class="code" href="classconnection.html#o0">fd</a> = <a class="code" href="classconnection.html#o12">lastping</a> = <a class="code" href="classconnection.html#o13">signon</a> = <a class="code" href="classconnection.html#o14">idle_lastmsg</a> = <a class="code" href="classconnection.html#o15">nping</a> = <a class="code" href="classconnection.html#o10">registered</a> = 0;
168 00046         <a class="code" href="classuserrec.html#o9">flood</a> = <a class="code" href="classconnection.html#o9">port</a> = <a class="code" href="classconnection.html#o4">bytes_in</a> = <a class="code" href="classconnection.html#o5">bytes_out</a> = <a class="code" href="classconnection.html#o6">cmds_in</a> = <a class="code" href="classconnection.html#o7">cmds_out</a> = 0;
169 00047         <a class="code" href="classconnection.html#o8">haspassed</a> = <span class="keyword">false</span>;
170 00048         <a class="code" href="classuserrec.html#o12">dns_done</a> = <span class="keyword">false</span>;
171 00049         <a class="code" href="classuserrec.html#o15">recvq</a> = <span class="stringliteral">""</span>;
172 00050         strcpy(result,<span class="stringliteral">""</span>);
173 00051         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; MAXCHANS; i++)
174 00052         {
175 00053                 this-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a> = NULL;
176 00054                 this-&gt;<a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o0">uc_modes</a> = 0;
177 00055         }
178 00056         <a class="code" href="classuserrec.html#r0">invites</a>.clear();
179 00057 }
180 </pre></div>    </td>
181   </tr>
182 </table>
183 <a name="a1" doxytag="userrec::~userrec"></a><p>
184 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
185   <tr>
186     <td class="mdRow">
187       <table cellpadding="0" cellspacing="0" border="0">
188         <tr>
189           <td class="md" nowrap valign="top"> virtual userrec::~<a class="el" href="classuserrec.html">userrec</a> </td>
190           <td class="md" valign="top">(&nbsp;</td>
191           <td class="mdname1" valign="top" nowrap>          </td>
192           <td class="md" valign="top">&nbsp;)&nbsp;</td>
193           <td class="md" nowrap><code> [inline, virtual]</code></td>
194         </tr>
195
196       </table>
197     </td>
198   </tr>
199 </table>
200 <table cellspacing=5 cellpadding=0 border=0>
201   <tr>
202     <td>
203       &nbsp;
204     </td>
205     <td>
206
207 <p>
208
209 <p>
210 Definition at line <a class="el" href="users_8h-source.html#l00195">195</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
211 <p>
212 <div class="fragment"><pre>00195 {  }
213 </pre></div>    </td>
214   </tr>
215 </table>
216 <hr><h2>Member Function Documentation</h2>
217 <a name="a8" doxytag="userrec::AddBuffer"></a><p>
218 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
219   <tr>
220     <td class="mdRow">
221       <table cellpadding="0" cellspacing="0" border="0">
222         <tr>
223           <td class="md" nowrap valign="top"> bool userrec::AddBuffer </td>
224           <td class="md" valign="top">(&nbsp;</td>
225           <td class="md" nowrap valign="top">std::string&nbsp;</td>
226           <td class="mdname1" valign="top" nowrap> <em>a</em>          </td>
227           <td class="md" valign="top">&nbsp;)&nbsp;</td>
228           <td class="md" nowrap></td>
229         </tr>
230
231       </table>
232     </td>
233   </tr>
234 </table>
235 <table cellspacing=5 cellpadding=0 border=0>
236   <tr>
237     <td>
238       &nbsp;
239     </td>
240     <td>
241
242 <p>
243 This method adds data to the buffer of the user. 
244 <p>
245 The buffer can grow to any size within limits of the available memory, managed by the size of a std::string, however if any individual line in the buffer grows over 600 bytes in length (which is 88 chars over the RFC-specified limit per line) then the method will return false and the text will not be inserted.
246 <p>
247 Definition at line <a class="el" href="users_8cpp-source.html#l00169">169</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
248 <p>
249 References <a class="el" href="users_8h-source.html#l00185">recvq</a>.
250 <p>
251 <div class="fragment"><pre>00170 {
252 00171         std::string b = <span class="stringliteral">""</span>;
253 00172         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; a.length(); i++)
254 00173                 <span class="keywordflow">if</span> ((a[i] != <span class="charliteral">'\r'</span>) &amp;&amp; (a[i] != <span class="charliteral">'\0'</span>) &amp;&amp; (a[i] != 7))
255 00174                         b = b + a[i];
256 00175         std::stringstream stream(recvq);
257 00176         stream &lt;&lt; b;
258 00177         <a class="code" href="classuserrec.html#o15">recvq</a> = stream.str();
259 00178         <span class="keywordtype">int</span> i = 0;
260 00179         <span class="comment">// count the size of the first line in the buffer.</span>
261 00180         <span class="keywordflow">while</span> (i &lt; <a class="code" href="classuserrec.html#o15">recvq</a>.length())
262 00181         {
263 00182                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#o15">recvq</a>[i++] == <span class="charliteral">'\n'</span>)
264 00183                         <span class="keywordflow">break</span>;
265 00184         }
266 00185         <span class="comment">// return false if we've had more than 600 characters WITHOUT</span>
267 00186         <span class="comment">// a carriage return (this is BAD, drop the socket)</span>
268 00187         <span class="keywordflow">return</span> (i &lt; 600);
269 00188 }
270 </pre></div>    </td>
271   </tr>
272 </table>
273 <a name="a9" doxytag="userrec::BufferIsReady"></a><p>
274 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
275   <tr>
276     <td class="mdRow">
277       <table cellpadding="0" cellspacing="0" border="0">
278         <tr>
279           <td class="md" nowrap valign="top"> bool userrec::BufferIsReady </td>
280           <td class="md" valign="top">(&nbsp;</td>
281           <td class="mdname1" valign="top" nowrap>          </td>
282           <td class="md" valign="top">&nbsp;)&nbsp;</td>
283           <td class="md" nowrap></td>
284         </tr>
285
286       </table>
287     </td>
288   </tr>
289 </table>
290 <table cellspacing=5 cellpadding=0 border=0>
291   <tr>
292     <td>
293       &nbsp;
294     </td>
295     <td>
296
297 <p>
298 This method returns true if the buffer contains at least one carriage return character (e.g. 
299 <p>
300 one complete line may be read)
301 <p>
302 Definition at line <a class="el" href="users_8cpp-source.html#l00190">190</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
303 <p>
304 References <a class="el" href="users_8h-source.html#l00185">recvq</a>.
305 <p>
306 <div class="fragment"><pre>00191 {
307 00192         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classuserrec.html#o15">recvq</a>.length(); i++)
308 00193                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#o15">recvq</a>[i] == <span class="charliteral">'\n'</span>)
309 00194                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
310 00195         <span class="keywordflow">return</span> <span class="keyword">false</span>;
311 00196 }
312 </pre></div>    </td>
313   </tr>
314 </table>
315 <a name="a10" doxytag="userrec::ClearBuffer"></a><p>
316 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
317   <tr>
318     <td class="mdRow">
319       <table cellpadding="0" cellspacing="0" border="0">
320         <tr>
321           <td class="md" nowrap valign="top"> void userrec::ClearBuffer </td>
322           <td class="md" valign="top">(&nbsp;</td>
323           <td class="mdname1" valign="top" nowrap>          </td>
324           <td class="md" valign="top">&nbsp;)&nbsp;</td>
325           <td class="md" nowrap></td>
326         </tr>
327
328       </table>
329     </td>
330   </tr>
331 </table>
332 <table cellspacing=5 cellpadding=0 border=0>
333   <tr>
334     <td>
335       &nbsp;
336     </td>
337     <td>
338
339 <p>
340 This function clears the entire buffer by setting it to an empty string. 
341 <p>
342
343 <p>
344 Definition at line <a class="el" href="users_8cpp-source.html#l00198">198</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
345 <p>
346 References <a class="el" href="users_8h-source.html#l00185">recvq</a>.
347 <p>
348 Referenced by <a class="el" href="modules_8cpp-source.html#l00681">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00671">Server::UserToPseudo()</a>.
349 <p>
350 <div class="fragment"><pre>00199 {
351 00200         <a class="code" href="classuserrec.html#o15">recvq</a> = <span class="stringliteral">""</span>;
352 00201 }
353 </pre></div>    </td>
354   </tr>
355 </table>
356 <a name="a11" doxytag="userrec::GetBuffer"></a><p>
357 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
358   <tr>
359     <td class="mdRow">
360       <table cellpadding="0" cellspacing="0" border="0">
361         <tr>
362           <td class="md" nowrap valign="top"> std::string userrec::GetBuffer </td>
363           <td class="md" valign="top">(&nbsp;</td>
364           <td class="mdname1" valign="top" nowrap>          </td>
365           <td class="md" valign="top">&nbsp;)&nbsp;</td>
366           <td class="md" nowrap></td>
367         </tr>
368
369       </table>
370     </td>
371   </tr>
372 </table>
373 <table cellspacing=5 cellpadding=0 border=0>
374   <tr>
375     <td>
376       &nbsp;
377     </td>
378     <td>
379
380 <p>
381 This method returns the first available string at the tail end of the buffer and advances the tail end of the buffer past the string. 
382 <p>
383 This means it is a one way operation in a similar way to strtok(), and multiple calls return multiple lines if they are available. The results of this function if there are no lines to be read are unknown, always use <a class="el" href="classuserrec.html#a9">BufferIsReady()</a> to check if it is ok to read the buffer before calling <a class="el" href="classuserrec.html#a11">GetBuffer()</a>.
384 <p>
385 Definition at line <a class="el" href="users_8cpp-source.html#l00203">203</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
386 <p>
387 References <a class="el" href="users_8h-source.html#l00185">recvq</a>.
388 <p>
389 <div class="fragment"><pre>00204 {
390 00205         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#o15">recvq</a> == <span class="stringliteral">""</span>)
391 00206                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
392 00207         <span class="keywordtype">char</span>* line = (<span class="keywordtype">char</span>*)<a class="code" href="classuserrec.html#o15">recvq</a>.c_str();
393 00208         std::string ret = <span class="stringliteral">""</span>;
394 00209         <span class="keywordflow">while</span> ((*line != <span class="charliteral">'\n'</span>) &amp;&amp; (strlen(line)))
395 00210         {
396 00211                 ret = ret + *line;
397 00212                 line++;
398 00213         }
399 00214         <span class="keywordflow">if</span> ((*line == <span class="charliteral">'\n'</span>) || (*line == <span class="charliteral">'\r'</span>))
400 00215                 line++;
401 00216         <a class="code" href="classuserrec.html#o15">recvq</a> = line;
402 00217         <span class="keywordflow">return</span> ret;
403 00218 }
404 </pre></div>    </td>
405   </tr>
406 </table>
407 <a name="a2" doxytag="userrec::GetFullHost"></a><p>
408 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
409   <tr>
410     <td class="mdRow">
411       <table cellpadding="0" cellspacing="0" border="0">
412         <tr>
413           <td class="md" nowrap valign="top"> char * userrec::GetFullHost </td>
414           <td class="md" valign="top">(&nbsp;</td>
415           <td class="mdname1" valign="top" nowrap>          </td>
416           <td class="md" valign="top">&nbsp;)&nbsp;</td>
417           <td class="md" nowrap><code> [virtual]</code></td>
418         </tr>
419
420       </table>
421     </td>
422   </tr>
423 </table>
424 <table cellspacing=5 cellpadding=0 border=0>
425   <tr>
426     <td>
427       &nbsp;
428     </td>
429     <td>
430
431 <p>
432 Returns the full displayed host of the user This member function returns the hostname of the user as seen by other users on the server, in nick!identhost form. 
433 <p>
434
435 <p>
436 Definition at line <a class="el" href="users_8cpp-source.html#l00061">61</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
437 <p>
438 References <a class="el" href="users_8h-source.html#l00120">dhost</a>, <a class="el" href="users_8h-source.html#l00115">ident</a>, <a class="el" href="users_8h-source.html#l00111">nick</a>, and <a class="el" href="users_8h-source.html#l00146">result</a>.
439 <p>
440 <div class="fragment"><pre>00062 {
441 00063         snprintf(result,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,dhost);
442 00064         <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#o8">result</a>;
443 00065 }
444 </pre></div>    </td>
445   </tr>
446 </table>
447 <a name="a3" doxytag="userrec::GetFullRealHost"></a><p>
448 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
449   <tr>
450     <td class="mdRow">
451       <table cellpadding="0" cellspacing="0" border="0">
452         <tr>
453           <td class="md" nowrap valign="top"> char * userrec::GetFullRealHost </td>
454           <td class="md" valign="top">(&nbsp;</td>
455           <td class="mdname1" valign="top" nowrap>          </td>
456           <td class="md" valign="top">&nbsp;)&nbsp;</td>
457           <td class="md" nowrap><code> [virtual]</code></td>
458         </tr>
459
460       </table>
461     </td>
462   </tr>
463 </table>
464 <table cellspacing=5 cellpadding=0 border=0>
465   <tr>
466     <td>
467       &nbsp;
468     </td>
469     <td>
470
471 <p>
472 Returns the full real host of the user This member function returns the hostname of the user as seen by other users on the server, in nick!identhost form. 
473 <p>
474 If any form of hostname cloaking is in operation, e.g. through a module, then this method will ignore it and return the true hostname.
475 <p>
476 Definition at line <a class="el" href="users_8cpp-source.html#l00068">68</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
477 <p>
478 References <a class="el" href="connection_8h-source.html#l00219">connection::host</a>, <a class="el" href="users_8h-source.html#l00115">ident</a>, <a class="el" href="users_8h-source.html#l00111">nick</a>, and <a class="el" href="users_8h-source.html#l00146">result</a>.
479 <p>
480 <div class="fragment"><pre>00069 {
481 00070         snprintf(result,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,host);
482 00071         <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#o8">result</a>;
483 00072 }
484 </pre></div>    </td>
485   </tr>
486 </table>
487 <a name="a7" doxytag="userrec::HasPermission"></a><p>
488 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
489   <tr>
490     <td class="mdRow">
491       <table cellpadding="0" cellspacing="0" border="0">
492         <tr>
493           <td class="md" nowrap valign="top"> bool userrec::HasPermission </td>
494           <td class="md" valign="top">(&nbsp;</td>
495           <td class="md" nowrap valign="top">char *&nbsp;</td>
496           <td class="mdname1" valign="top" nowrap> <em>command</em>          </td>
497           <td class="md" valign="top">&nbsp;)&nbsp;</td>
498           <td class="md" nowrap></td>
499         </tr>
500
501       </table>
502     </td>
503   </tr>
504 </table>
505 <table cellspacing=5 cellpadding=0 border=0>
506   <tr>
507     <td>
508       &nbsp;
509     </td>
510     <td>
511
512 <p>
513 Returns true or false for if a user can execute a privilaged oper command. 
514 <p>
515 This is done by looking up their oper type from <a class="el" href="classuserrec.html#o11">userrec::oper</a>, then referencing this to their oper classes and checking the commands they can execute.
516 <p>
517 Definition at line <a class="el" href="users_8cpp-source.html#l00117">117</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
518 <p>
519 References <a class="el" href="channels_8cpp-source.html#l00101">config_f</a>, and <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>.
520 <p>
521 <div class="fragment"><pre>00118 {
522 00119         <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
523 00120         <span class="keywordtype">char</span>* mycmd;
524 00121         <span class="keywordtype">char</span>* savept;
525 00122         <span class="keywordtype">char</span>* savept2;
526 00123         
527 00124         <span class="comment">// are they even an oper at all?</span>
528 00125         <span class="keywordflow">if</span> (strchr(this-&gt;modes,<span class="charliteral">'o'</span>))
529 00126         {
530 00127                 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper"</span>,this-&gt;nick);
531 00128                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j &lt; ConfValueEnum(<span class="stringliteral">"type"</span>,&amp;config_f); j++)
532 00129                 {
533 00130                         ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&amp;config_f);
534 00131                         <span class="keywordflow">if</span> (!strcmp(TypeName,this-&gt;oper))
535 00132                         {
536 00133                                 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this-&gt;nick,this-&gt;oper);
537 00134                                 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&amp;config_f);
538 00135                                 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&amp;savept);
539 00136                                 <span class="keywordflow">while</span> (myclass)
540 00137                                 {
541 00138                                         log(DEBUG,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
542 00139                                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;config_f); k++)
543 00140                                         {
544 00141                                                 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;config_f);
545 00142                                                 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
546 00143                                                 {
547 00144                                                         ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;config_f);
548 00145                                                         log(DEBUG,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
549 00146                                                         
550 00147                                                         
551 00148                                                         mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
552 00149                                                         <span class="keywordflow">while</span> (mycmd)
553 00150                                                         {
554 00151                                                                 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
555 00152                                                                 {
556 00153                                                                         log(DEBUG,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
557 00154                                                                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
558 00155                                                                 }
559 00156                                                                 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
560 00157                                                         }
561 00158                                                 }
562 00159                                         }
563 00160                                         myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
564 00161                                 }
565 00162                         }
566 00163                 }
567 00164         }
568 00165         <span class="keywordflow">return</span> <span class="keyword">false</span>;
569 00166 }
570 </pre></div>    </td>
571   </tr>
572 </table>
573 <a name="a5" doxytag="userrec::InviteTo"></a><p>
574 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
575   <tr>
576     <td class="mdRow">
577       <table cellpadding="0" cellspacing="0" border="0">
578         <tr>
579           <td class="md" nowrap valign="top"> void userrec::InviteTo </td>
580           <td class="md" valign="top">(&nbsp;</td>
581           <td class="md" nowrap valign="top">char *&nbsp;</td>
582           <td class="mdname1" valign="top" nowrap> <em>channel</em>          </td>
583           <td class="md" valign="top">&nbsp;)&nbsp;</td>
584           <td class="md" nowrap><code> [virtual]</code></td>
585         </tr>
586
587       </table>
588     </td>
589   </tr>
590 </table>
591 <table cellspacing=5 cellpadding=0 border=0>
592   <tr>
593     <td>
594       &nbsp;
595     </td>
596     <td>
597
598 <p>
599 Adds a channel to a users invite list (invites them to a channel). 
600 <p>
601
602 <p>
603 Definition at line <a class="el" href="users_8cpp-source.html#l00088">88</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
604 <p>
605 References <a class="el" href="users_8h-source.html#l00039">Invited::channel</a>, and <a class="el" href="users_8h-source.html#l00104">invites</a>.
606 <p>
607 <div class="fragment"><pre>00089 {
608 00090         <a class="code" href="classInvited.html">Invited</a> i;
609 00091         strlcpy(i.<a class="code" href="classInvited.html#o0">channel</a>,channel,CHANMAX);
610 00092         <a class="code" href="classuserrec.html#r0">invites</a>.push_back(i);
611 00093 }
612 </pre></div>    </td>
613   </tr>
614 </table>
615 <a name="a4" doxytag="userrec::IsInvited"></a><p>
616 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
617   <tr>
618     <td class="mdRow">
619       <table cellpadding="0" cellspacing="0" border="0">
620         <tr>
621           <td class="md" nowrap valign="top"> bool userrec::IsInvited </td>
622           <td class="md" valign="top">(&nbsp;</td>
623           <td class="md" nowrap valign="top">char *&nbsp;</td>
624           <td class="mdname1" valign="top" nowrap> <em>channel</em>          </td>
625           <td class="md" valign="top">&nbsp;)&nbsp;</td>
626           <td class="md" nowrap><code> [virtual]</code></td>
627         </tr>
628
629       </table>
630     </td>
631   </tr>
632 </table>
633 <table cellspacing=5 cellpadding=0 border=0>
634   <tr>
635     <td>
636       &nbsp;
637     </td>
638     <td>
639
640 <p>
641 Returns true if a user is invited to a channel. 
642 <p>
643
644 <p>
645 Definition at line <a class="el" href="users_8cpp-source.html#l00074">74</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
646 <p>
647 References <a class="el" href="users_8h-source.html#l00104">invites</a>.
648 <p>
649 <div class="fragment"><pre>00075 {
650 00076         <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#r0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#r0">invites</a>.end(); i++)
651 00077         {
652 00078                 <span class="keywordflow">if</span> (i-&gt;channel) {
653 00079                         <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
654 00080                         {
655 00081                                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
656 00082                         }
657 00083                 }
658 00084         }
659 00085         <span class="keywordflow">return</span> <span class="keyword">false</span>;
660 00086 }
661 </pre></div>    </td>
662   </tr>
663 </table>
664 <a name="a6" doxytag="userrec::RemoveInvite"></a><p>
665 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
666   <tr>
667     <td class="mdRow">
668       <table cellpadding="0" cellspacing="0" border="0">
669         <tr>
670           <td class="md" nowrap valign="top"> void userrec::RemoveInvite </td>
671           <td class="md" valign="top">(&nbsp;</td>
672           <td class="md" nowrap valign="top">char *&nbsp;</td>
673           <td class="mdname1" valign="top" nowrap> <em>channel</em>          </td>
674           <td class="md" valign="top">&nbsp;)&nbsp;</td>
675           <td class="md" nowrap><code> [virtual]</code></td>
676         </tr>
677
678       </table>
679     </td>
680   </tr>
681 </table>
682 <table cellspacing=5 cellpadding=0 border=0>
683   <tr>
684     <td>
685       &nbsp;
686     </td>
687     <td>
688
689 <p>
690 Removes a channel from a users invite list. 
691 <p>
692 This member function is called on successfully joining an invite only channel to which the user has previously been invited, to clear the invitation.
693 <p>
694 Definition at line <a class="el" href="users_8cpp-source.html#l00095">95</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
695 <p>
696 References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, and <a class="el" href="users_8h-source.html#l00104">invites</a>.
697 <p>
698 <div class="fragment"><pre>00096 {
699 00097         log(DEBUG,<span class="stringliteral">"Removing invites"</span>);
700 00098         <span class="keywordflow">if</span> (channel)
701 00099         {
702 00100                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#r0">invites</a>.size())
703 00101                 {
704 00102                         <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#r0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#r0">invites</a>.end(); i++)
705 00103                         {
706 00104                                 <span class="keywordflow">if</span> (i-&gt;channel)
707 00105                                 {
708 00106                                         <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
709 00107                                         {
710 00108                                                 <a class="code" href="classuserrec.html#r0">invites</a>.erase(i);
711 00109                                                 <span class="keywordflow">return</span>;
712 00110                                         }
713 00111                                 }
714 00112                         }
715 00113                 }
716 00114         }
717 00115 }
718 </pre></div>    </td>
719   </tr>
720 </table>
721 <hr><h2>Member Data Documentation</h2>
722 <a name="o7" doxytag="userrec::awaymsg"></a><p>
723 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
724   <tr>
725     <td class="mdRow">
726       <table cellpadding="0" cellspacing="0" border="0">
727         <tr>
728           <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o7">userrec::awaymsg</a>[512]
729       </table>
730     </td>
731   </tr>
732 </table>
733 <table cellspacing=5 cellpadding=0 border=0>
734   <tr>
735     <td>
736       &nbsp;
737     </td>
738     <td>
739
740 <p>
741 The user's away message. 
742 <p>
743 If this string is empty, the user is not marked as away.
744 <p>
745 Definition at line <a class="el" href="users_8h-source.html#l00141">141</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
746 <p>
747 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
748   </tr>
749 </table>
750 <a name="o5" doxytag="userrec::chans"></a><p>
751 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
752   <tr>
753     <td class="mdRow">
754       <table cellpadding="0" cellspacing="0" border="0">
755         <tr>
756           <td class="md" nowrap valign="top"> <a class="el" href="classucrec.html">ucrec</a> <a class="el" href="classuserrec.html#o5">userrec::chans</a>[MAXCHANS]
757       </table>
758     </td>
759   </tr>
760 </table>
761 <table cellspacing=5 cellpadding=0 border=0>
762   <tr>
763     <td>
764       &nbsp;
765     </td>
766     <td>
767
768 <p>
769
770 <p>
771 Definition at line <a class="el" href="users_8h-source.html#l00132">132</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
772 <p>
773 Referenced by <a class="el" href="modules_8cpp-source.html#l00681">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
774   </tr>
775 </table>
776 <a name="o2" doxytag="userrec::dhost"></a><p>
777 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
778   <tr>
779     <td class="mdRow">
780       <table cellpadding="0" cellspacing="0" border="0">
781         <tr>
782           <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o2">userrec::dhost</a>[256]
783       </table>
784     </td>
785   </tr>
786 </table>
787 <table cellspacing=5 cellpadding=0 border=0>
788   <tr>
789     <td>
790       &nbsp;
791     </td>
792     <td>
793
794 <p>
795 The host displayed to non-opers (used for cloaking etc). 
796 <p>
797 This usually matches the value of <a class="el" href="classconnection.html#o1">userrec::host</a>.
798 <p>
799 Definition at line <a class="el" href="users_8h-source.html#l00120">120</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
800 <p>
801 Referenced by <a class="el" href="users_8cpp-source.html#l00061">GetFullHost()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
802   </tr>
803 </table>
804 <a name="o12" doxytag="userrec::dns_done"></a><p>
805 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
806   <tr>
807     <td class="mdRow">
808       <table cellpadding="0" cellspacing="0" border="0">
809         <tr>
810           <td class="md" nowrap valign="top"> bool <a class="el" href="classuserrec.html#o12">userrec::dns_done</a>
811       </table>
812     </td>
813   </tr>
814 </table>
815 <table cellspacing=5 cellpadding=0 border=0>
816   <tr>
817     <td>
818       &nbsp;
819     </td>
820     <td>
821
822 <p>
823 True when <a class="el" href="classDNS.html">DNS</a> lookups are completed. 
824 <p>
825
826 <p>
827 Definition at line <a class="el" href="users_8h-source.html#l00169">169</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
828 <p>
829 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
830   </tr>
831 </table>
832 <a name="o9" doxytag="userrec::flood"></a><p>
833 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
834   <tr>
835     <td class="mdRow">
836       <table cellpadding="0" cellspacing="0" border="0">
837         <tr>
838           <td class="md" nowrap valign="top"> int <a class="el" href="classuserrec.html#o9">userrec::flood</a>
839       </table>
840     </td>
841   </tr>
842 </table>
843 <table cellspacing=5 cellpadding=0 border=0>
844   <tr>
845     <td>
846       &nbsp;
847     </td>
848     <td>
849
850 <p>
851 Number of lines the user can place into the buffer (up to the global NetBufferSize bytes) before they are disconnected for excess flood. 
852 <p>
853
854 <p>
855 Definition at line <a class="el" href="users_8h-source.html#l00152">152</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
856 <p>
857 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
858   </tr>
859 </table>
860 <a name="o3" doxytag="userrec::fullname"></a><p>
861 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
862   <tr>
863     <td class="mdRow">
864       <table cellpadding="0" cellspacing="0" border="0">
865         <tr>
866           <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o3">userrec::fullname</a>[128]
867       </table>
868     </td>
869   </tr>
870 </table>
871 <table cellspacing=5 cellpadding=0 border=0>
872   <tr>
873     <td>
874       &nbsp;
875     </td>
876     <td>
877
878 <p>
879 The users full name. 
880 <p>
881
882 <p>
883 Definition at line <a class="el" href="users_8h-source.html#l00124">124</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
884 <p>
885 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
886   </tr>
887 </table>
888 <a name="o1" doxytag="userrec::ident"></a><p>
889 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
890   <tr>
891     <td class="mdRow">
892       <table cellpadding="0" cellspacing="0" border="0">
893         <tr>
894           <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o1">userrec::ident</a>[64]
895       </table>
896     </td>
897   </tr>
898 </table>
899 <table cellspacing=5 cellpadding=0 border=0>
900   <tr>
901     <td>
902       &nbsp;
903     </td>
904     <td>
905
906 <p>
907 The users ident reply. 
908 <p>
909
910 <p>
911 Definition at line <a class="el" href="users_8h-source.html#l00115">115</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
912 <p>
913 Referenced by <a class="el" href="users_8cpp-source.html#l00061">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00068">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00681">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00671">Server::UserToPseudo()</a>.    </td>
914   </tr>
915 </table>
916 <a name="r0" doxytag="userrec::invites"></a><p>
917 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
918   <tr>
919     <td class="mdRow">
920       <table cellpadding="0" cellspacing="0" border="0">
921         <tr>
922           <td class="md" nowrap valign="top"> <a class="el" href="users_8h.html#a6">InvitedList</a> <a class="el" href="classuserrec.html#r0">userrec::invites</a><code> [private]</code>
923       </table>
924     </td>
925   </tr>
926 </table>
927 <table cellspacing=5 cellpadding=0 border=0>
928   <tr>
929     <td>
930       &nbsp;
931     </td>
932     <td>
933
934 <p>
935 A list of channels the user has a pending invite to. 
936 <p>
937
938 <p>
939 Definition at line <a class="el" href="users_8h-source.html#l00104">104</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
940 <p>
941 Referenced by <a class="el" href="users_8cpp-source.html#l00088">InviteTo()</a>, <a class="el" href="users_8cpp-source.html#l00074">IsInvited()</a>, <a class="el" href="users_8cpp-source.html#l00095">RemoveInvite()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
942   </tr>
943 </table>
944 <a name="o16" doxytag="userrec::lines_in"></a><p>
945 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
946   <tr>
947     <td class="mdRow">
948       <table cellpadding="0" cellspacing="0" border="0">
949         <tr>
950           <td class="md" nowrap valign="top"> long <a class="el" href="classuserrec.html#o16">userrec::lines_in</a>
951       </table>
952     </td>
953   </tr>
954 </table>
955 <table cellspacing=5 cellpadding=0 border=0>
956   <tr>
957     <td>
958       &nbsp;
959     </td>
960     <td>
961
962 <p>
963 Flood counters. 
964 <p>
965
966 <p>
967 Definition at line <a class="el" href="users_8h-source.html#l00189">189</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
968 <p>
969 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
970   </tr>
971 </table>
972 <a name="o4" doxytag="userrec::modes"></a><p>
973 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
974   <tr>
975     <td class="mdRow">
976       <table cellpadding="0" cellspacing="0" border="0">
977         <tr>
978           <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o4">userrec::modes</a>[MAXBUF]
979       </table>
980     </td>
981   </tr>
982 </table>
983 <table cellspacing=5 cellpadding=0 border=0>
984   <tr>
985     <td>
986       &nbsp;
987     </td>
988     <td>
989
990 <p>
991 The user's mode string. 
992 <p>
993 This may contain any of the following RFC characters: o, w, s, i Your module may define other mode characters as it sees fit.
994 <p>
995 Definition at line <a class="el" href="users_8h-source.html#l00130">130</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
996 <p>
997 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
998   </tr>
999 </table>
1000 <a name="o0" doxytag="userrec::nick"></a><p>
1001 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1002   <tr>
1003     <td class="mdRow">
1004       <table cellpadding="0" cellspacing="0" border="0">
1005         <tr>
1006           <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o0">userrec::nick</a>[NICKMAX]
1007       </table>
1008     </td>
1009   </tr>
1010 </table>
1011 <table cellspacing=5 cellpadding=0 border=0>
1012   <tr>
1013     <td>
1014       &nbsp;
1015     </td>
1016     <td>
1017
1018 <p>
1019 The users nickname. 
1020 <p>
1021 An invalid nickname indicates an unregistered connection prior to the NICK command.
1022 <p>
1023 Definition at line <a class="el" href="users_8h-source.html#l00111">111</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
1024 <p>
1025 Referenced by <a class="el" href="modules_8cpp-source.html#l00948">ConfigReader::DumpErrors()</a>, <a class="el" href="users_8cpp-source.html#l00061">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00068">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00681">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
1026   </tr>
1027 </table>
1028 <a name="o11" doxytag="userrec::oper"></a><p>
1029 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1030   <tr>
1031     <td class="mdRow">
1032       <table cellpadding="0" cellspacing="0" border="0">
1033         <tr>
1034           <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o11">userrec::oper</a>[NICKMAX]
1035       </table>
1036     </td>
1037   </tr>
1038 </table>
1039 <table cellspacing=5 cellpadding=0 border=0>
1040   <tr>
1041     <td>
1042       &nbsp;
1043     </td>
1044     <td>
1045
1046 <p>
1047 The oper type they logged in as, if they are an oper. 
1048 <p>
1049 This is used to check permissions in operclasses, so that we can say 'yay' or 'nay' to any commands they issue. The value of this is the value of a valid 'type name=' tag.
1050 <p>
1051 Definition at line <a class="el" href="users_8h-source.html#l00165">165</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
1052 <p>
1053 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
1054   </tr>
1055 </table>
1056 <a name="o14" doxytag="userrec::password"></a><p>
1057 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1058   <tr>
1059     <td class="mdRow">
1060       <table cellpadding="0" cellspacing="0" border="0">
1061         <tr>
1062           <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o14">userrec::password</a>[MAXBUF]
1063       </table>
1064     </td>
1065   </tr>
1066 </table>
1067 <table cellspacing=5 cellpadding=0 border=0>
1068   <tr>
1069     <td>
1070       &nbsp;
1071     </td>
1072     <td>
1073
1074 <p>
1075 Password specified by the user when they registered. 
1076 <p>
1077 This is stored even if the  block doesnt need a password, so that modules may check it.
1078 <p>
1079 Definition at line <a class="el" href="users_8h-source.html#l00179">179</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
1080   </tr>
1081 </table>
1082 <a name="o13" doxytag="userrec::pingmax"></a><p>
1083 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1084   <tr>
1085     <td class="mdRow">
1086       <table cellpadding="0" cellspacing="0" border="0">
1087         <tr>
1088           <td class="md" nowrap valign="top"> unsigned long <a class="el" href="classuserrec.html#o13">userrec::pingmax</a>
1089       </table>
1090     </td>
1091   </tr>
1092 </table>
1093 <table cellspacing=5 cellpadding=0 border=0>
1094   <tr>
1095     <td>
1096       &nbsp;
1097     </td>
1098     <td>
1099
1100 <p>
1101 Number of seconds between PINGs for this user (set from &lt;connect:allow&gt; tag. 
1102 <p>
1103
1104 <p>
1105 Definition at line <a class="el" href="users_8h-source.html#l00173">173</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
1106   </tr>
1107 </table>
1108 <a name="o15" doxytag="userrec::recvq"></a><p>
1109 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1110   <tr>
1111     <td class="mdRow">
1112       <table cellpadding="0" cellspacing="0" border="0">
1113         <tr>
1114           <td class="md" nowrap valign="top"> std::string <a class="el" href="classuserrec.html#o15">userrec::recvq</a>
1115       </table>
1116     </td>
1117   </tr>
1118 </table>
1119 <table cellspacing=5 cellpadding=0 border=0>
1120   <tr>
1121     <td>
1122       &nbsp;
1123     </td>
1124     <td>
1125
1126 <p>
1127 User's receive queue. 
1128 <p>
1129 Lines from the IRCd awaiting processing are stored here. Upgraded april 2005, old system a bit hairy.
1130 <p>
1131 Definition at line <a class="el" href="users_8h-source.html#l00185">185</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
1132 <p>
1133 Referenced by <a class="el" href="users_8cpp-source.html#l00169">AddBuffer()</a>, <a class="el" href="users_8cpp-source.html#l00190">BufferIsReady()</a>, <a class="el" href="users_8cpp-source.html#l00198">ClearBuffer()</a>, <a class="el" href="users_8cpp-source.html#l00203">GetBuffer()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
1134   </tr>
1135 </table>
1136 <a name="o17" doxytag="userrec::reset_due"></a><p>
1137 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1138   <tr>
1139     <td class="mdRow">
1140       <table cellpadding="0" cellspacing="0" border="0">
1141         <tr>
1142           <td class="md" nowrap valign="top"> time_t <a class="el" href="classuserrec.html#o17">userrec::reset_due</a>
1143       </table>
1144     </td>
1145   </tr>
1146 </table>
1147 <table cellspacing=5 cellpadding=0 border=0>
1148   <tr>
1149     <td>
1150       &nbsp;
1151     </td>
1152     <td>
1153
1154 <p>
1155
1156 <p>
1157 Definition at line <a class="el" href="users_8h-source.html#l00190">190</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
1158 <p>
1159 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
1160   </tr>
1161 </table>
1162 <a name="o8" doxytag="userrec::result"></a><p>
1163 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1164   <tr>
1165     <td class="mdRow">
1166       <table cellpadding="0" cellspacing="0" border="0">
1167         <tr>
1168           <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o8">userrec::result</a>[256]
1169       </table>
1170     </td>
1171   </tr>
1172 </table>
1173 <table cellspacing=5 cellpadding=0 border=0>
1174   <tr>
1175     <td>
1176       &nbsp;
1177     </td>
1178     <td>
1179
1180 <p>
1181 Stores the result of the last GetFullHost or GetRealHost call. 
1182 <p>
1183 You may use this to increase the speed of use of this class.
1184 <p>
1185 Definition at line <a class="el" href="users_8h-source.html#l00146">146</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
1186 <p>
1187 Referenced by <a class="el" href="users_8cpp-source.html#l00061">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00068">GetFullRealHost()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
1188   </tr>
1189 </table>
1190 <a name="o6" doxytag="userrec::server"></a><p>
1191 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1192   <tr>
1193     <td class="mdRow">
1194       <table cellpadding="0" cellspacing="0" border="0">
1195         <tr>
1196           <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o6">userrec::server</a>[256]
1197       </table>
1198     </td>
1199   </tr>
1200 </table>
1201 <table cellspacing=5 cellpadding=0 border=0>
1202   <tr>
1203     <td>
1204       &nbsp;
1205     </td>
1206     <td>
1207
1208 <p>
1209 The server the user is connected to. 
1210 <p>
1211
1212 <p>
1213 Definition at line <a class="el" href="users_8h-source.html#l00136">136</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
1214 <p>
1215 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
1216   </tr>
1217 </table>
1218 <a name="o18" doxytag="userrec::threshold"></a><p>
1219 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1220   <tr>
1221     <td class="mdRow">
1222       <table cellpadding="0" cellspacing="0" border="0">
1223         <tr>
1224           <td class="md" nowrap valign="top"> long <a class="el" href="classuserrec.html#o18">userrec::threshold</a>
1225       </table>
1226     </td>
1227   </tr>
1228 </table>
1229 <table cellspacing=5 cellpadding=0 border=0>
1230   <tr>
1231     <td>
1232       &nbsp;
1233     </td>
1234     <td>
1235
1236 <p>
1237
1238 <p>
1239 Definition at line <a class="el" href="users_8h-source.html#l00191">191</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
1240   </tr>
1241 </table>
1242 <a name="o10" doxytag="userrec::timeout"></a><p>
1243 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1244   <tr>
1245     <td class="mdRow">
1246       <table cellpadding="0" cellspacing="0" border="0">
1247         <tr>
1248           <td class="md" nowrap valign="top"> unsigned long <a class="el" href="classuserrec.html#o10">userrec::timeout</a>
1249       </table>
1250     </td>
1251   </tr>
1252 </table>
1253 <table cellspacing=5 cellpadding=0 border=0>
1254   <tr>
1255     <td>
1256       &nbsp;
1257     </td>
1258     <td>
1259
1260 <p>
1261 Number of seconds this user is given to send USER/NICK If they do not send their details in this time limit they will be disconnected. 
1262 <p>
1263
1264 <p>
1265 Definition at line <a class="el" href="users_8h-source.html#l00158">158</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
1266 <p>
1267 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>.    </td>
1268   </tr>
1269 </table>
1270 <hr>The documentation for this class was generated from the following files:<ul>
1271 <li><a class="el" href="users_8h-source.html">users.h</a><li><a class="el" href="users_8cpp-source.html">users.cpp</a></ul>
1272 <hr size="1"><address style="align: right;"><small>Generated on Sat May 7 15:34:29 2005 for InspIRCd by
1273 <a href="http://www.doxygen.org/index.html">
1274 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
1275 </a>1.3.3 </small></address>
1276 </body>
1277 </html>