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">
6 <!-- Generated by Doxygen 1.3.3 -->
7 <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">Compound List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Compound Members</a> | <a class="qindex" href="globals.html">File 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>
11 <code>#include <<a class="el" href="users_8h-source.html">users.h</a>></code>
13 Inherits <a class="el" href="classconnection.html">connection</a>.
15 <a href="classuserrec-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
17 <tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
18 <tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a0">userrec</a> ()</td></tr>
20 <tr><td class="memItemLeft" nowrap align=right valign=top>virtual </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a1">~userrec</a> ()</td></tr>
22 <tr><td class="memItemLeft" nowrap align=right valign=top>virtual char * </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a2">GetFullHost</a> ()</td></tr>
24 <tr><td class="mdescLeft"> </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 * </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a3">GetFullRealHost</a> ()</td></tr>
27 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a4">IsInvited</a> (char *channel)</td></tr>
30 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a5">InviteTo</a> (char *channel)</td></tr>
33 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a6">RemoveInvite</a> (char *channel)</td></tr>
36 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a7">HasPermission</a> (char *command)</td></tr>
39 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a8">AddBuffer</a> (std::string a)</td></tr>
42 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a9">BufferIsReady</a> ()</td></tr>
45 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a10">ClearBuffer</a> ()</td></tr>
48 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#a11">GetBuffer</a> ()</td></tr>
51 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o0">nick</a> [NICKMAX]</td></tr>
55 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o1">ident</a> [64]</td></tr>
58 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o2">dhost</a> [256]</td></tr>
61 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o3">fullname</a> [128]</td></tr>
64 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o4">modes</a> [MAXBUF]</td></tr>
67 <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o5">chans</a> [MAXCHANS]</td></tr>
70 <tr><td class="memItemLeft" nowrap align=right valign=top>char </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o6">server</a> [256]</td></tr>
72 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o7">awaymsg</a> [512]</td></tr>
75 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o8">result</a> [256]</td></tr>
78 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o9">flood</a></td></tr>
81 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o10">timeout</a></td></tr>
84 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o11">oper</a> [NICKMAX]</td></tr>
87 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o12">dns_done</a></td></tr>
90 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o13">pingmax</a></td></tr>
93 <tr><td class="mdescLeft"> </td><td class="mdescRight">Number of seconds between PINGs for this user (set from <connect:allow> tag. </em> <a href="#o13"></a><em><br><br></td></tr>
94 <tr><td class="memItemLeft" nowrap align=right valign=top>char </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o14">password</a> [MAXBUF]</td></tr>
96 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o15">recvq</a></td></tr>
99 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o16">lines_in</a></td></tr>
102 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o17">reset_due</a></td></tr>
105 <tr><td class="memItemLeft" nowrap align=right valign=top>long </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#o18">threshold</a></td></tr>
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> </td><td class="memItemRight" valign=bottom><a class="el" href="classuserrec.html#r0">invites</a></td></tr>
110 <tr><td class="mdescLeft"> </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>
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.
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.
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 & Destructor Documentation</h2>
120 <a name="a0" doxytag="userrec::userrec"></a><p>
121 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
124 <table cellpadding="0" cellspacing="0" border="0">
126 <td class="md" nowrap valign="top"> userrec::userrec </td>
127 <td class="md" valign="top">( </td>
128 <td class="mdname1" valign="top" nowrap> </td>
129 <td class="md" valign="top"> ) </td>
130 <td class="md" nowrap></td>
137 <table cellspacing=5 cellpadding=0 border=0>
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>.
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>.
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 < MAXCHANS; i++)
175 00053 this-><a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a> = NULL;
176 00054 this-><a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o0">uc_modes</a> = 0;
178 00056 <a class="code" href="classuserrec.html#r0">invites</a>.clear();
183 <a name="a1" doxytag="userrec::~userrec"></a><p>
184 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
187 <table cellpadding="0" cellspacing="0" border="0">
189 <td class="md" nowrap valign="top"> virtual userrec::~<a class="el" href="classuserrec.html">userrec</a> </td>
190 <td class="md" valign="top">( </td>
191 <td class="mdname1" valign="top" nowrap> </td>
192 <td class="md" valign="top"> ) </td>
193 <td class="md" nowrap><code> [inline, virtual]</code></td>
200 <table cellspacing=5 cellpadding=0 border=0>
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>.
212 <div class="fragment"><pre>00195 { }
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">
221 <table cellpadding="0" cellspacing="0" border="0">
223 <td class="md" nowrap valign="top"> bool userrec::AddBuffer </td>
224 <td class="md" valign="top">( </td>
225 <td class="md" nowrap valign="top">std::string </td>
226 <td class="mdname1" valign="top" nowrap> <em>a</em> </td>
227 <td class="md" valign="top"> ) </td>
228 <td class="md" nowrap></td>
235 <table cellspacing=5 cellpadding=0 border=0>
243 This method adds data to the buffer of the user.
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.
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>.
249 References <a class="el" href="users_8h-source.html#l00185">recvq</a>.
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 < a.length(); i++)
254 00173 <span class="keywordflow">if</span> ((a[i] != <span class="charliteral">'\r'</span>) && (a[i] != <span class="charliteral">'\0'</span>) && (a[i] != 7))
256 00175 std::stringstream stream(recvq);
257 00176 stream << 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 < <a class="code" href="classuserrec.html#o15">recvq</a>.length())
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>;
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 < 600);
273 <a name="a9" doxytag="userrec::BufferIsReady"></a><p>
274 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
277 <table cellpadding="0" cellspacing="0" border="0">
279 <td class="md" nowrap valign="top"> bool userrec::BufferIsReady </td>
280 <td class="md" valign="top">( </td>
281 <td class="mdname1" valign="top" nowrap> </td>
282 <td class="md" valign="top"> ) </td>
283 <td class="md" nowrap></td>
290 <table cellspacing=5 cellpadding=0 border=0>
298 This method returns true if the buffer contains at least one carriage return character (e.g.
300 one complete line may be read)
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>.
304 References <a class="el" href="users_8h-source.html#l00185">recvq</a>.
306 <div class="fragment"><pre>00191 {
307 00192 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < <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>;
315 <a name="a10" doxytag="userrec::ClearBuffer"></a><p>
316 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
319 <table cellpadding="0" cellspacing="0" border="0">
321 <td class="md" nowrap valign="top"> void userrec::ClearBuffer </td>
322 <td class="md" valign="top">( </td>
323 <td class="mdname1" valign="top" nowrap> </td>
324 <td class="md" valign="top"> ) </td>
325 <td class="md" nowrap></td>
332 <table cellspacing=5 cellpadding=0 border=0>
340 This function clears the entire buffer by setting it to an empty string.
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>.
346 References <a class="el" href="users_8h-source.html#l00185">recvq</a>.
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>.
350 <div class="fragment"><pre>00199 {
351 00200 <a class="code" href="classuserrec.html#o15">recvq</a> = <span class="stringliteral">""</span>;
356 <a name="a11" doxytag="userrec::GetBuffer"></a><p>
357 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
360 <table cellpadding="0" cellspacing="0" border="0">
362 <td class="md" nowrap valign="top"> std::string userrec::GetBuffer </td>
363 <td class="md" valign="top">( </td>
364 <td class="mdname1" valign="top" nowrap> </td>
365 <td class="md" valign="top"> ) </td>
366 <td class="md" nowrap></td>
373 <table cellspacing=5 cellpadding=0 border=0>
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.
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>.
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>.
387 References <a class="el" href="users_8h-source.html#l00185">recvq</a>.
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>) && (strlen(line)))
396 00211 ret = ret + *line;
399 00214 <span class="keywordflow">if</span> ((*line == <span class="charliteral">'\n'</span>) || (*line == <span class="charliteral">'\r'</span>))
401 00216 <a class="code" href="classuserrec.html#o15">recvq</a> = line;
402 00217 <span class="keywordflow">return</span> ret;
407 <a name="a2" doxytag="userrec::GetFullHost"></a><p>
408 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
411 <table cellpadding="0" cellspacing="0" border="0">
413 <td class="md" nowrap valign="top"> char * userrec::GetFullHost </td>
414 <td class="md" valign="top">( </td>
415 <td class="mdname1" valign="top" nowrap> </td>
416 <td class="md" valign="top"> ) </td>
417 <td class="md" nowrap><code> [virtual]</code></td>
424 <table cellspacing=5 cellpadding=0 border=0>
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.
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>.
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>.
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>;
447 <a name="a3" doxytag="userrec::GetFullRealHost"></a><p>
448 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
451 <table cellpadding="0" cellspacing="0" border="0">
453 <td class="md" nowrap valign="top"> char * userrec::GetFullRealHost </td>
454 <td class="md" valign="top">( </td>
455 <td class="mdname1" valign="top" nowrap> </td>
456 <td class="md" valign="top"> ) </td>
457 <td class="md" nowrap><code> [virtual]</code></td>
464 <table cellspacing=5 cellpadding=0 border=0>
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.
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.
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>.
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>.
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>;
487 <a name="a7" doxytag="userrec::HasPermission"></a><p>
488 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
491 <table cellpadding="0" cellspacing="0" border="0">
493 <td class="md" nowrap valign="top"> bool userrec::HasPermission </td>
494 <td class="md" valign="top">( </td>
495 <td class="md" nowrap valign="top">char * </td>
496 <td class="mdname1" valign="top" nowrap> <em>command</em> </td>
497 <td class="md" valign="top"> ) </td>
498 <td class="md" nowrap></td>
505 <table cellspacing=5 cellpadding=0 border=0>
513 Returns true or false for if a user can execute a privilaged oper command.
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.
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>.
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>.
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;
527 00124 <span class="comment">// are they even an oper at all?</span>
528 00125 <span class="keywordflow">if</span> (strchr(this->modes,<span class="charliteral">'o'</span>))
530 00127 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper"</span>,this->nick);
531 00128 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j < ConfValueEnum(<span class="stringliteral">"type"</span>,&config_f); j++)
533 00130 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&config_f);
534 00131 <span class="keywordflow">if</span> (!strcmp(TypeName,this->oper))
536 00133 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this->nick,this->oper);
537 00134 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&config_f);
538 00135 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&savept);
539 00136 <span class="keywordflow">while</span> (myclass)
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 < ConfValueEnum(<span class="stringliteral">"class"</span>,&config_f); k++)
544 00141 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&config_f);
545 00142 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
547 00144 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&config_f);
548 00145 log(DEBUG,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
551 00148 mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&savept2);
552 00149 <span class="keywordflow">while</span> (mycmd)
554 00151 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
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>;
559 00156 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept2);
563 00160 myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept);
568 00165 <span class="keywordflow">return</span> <span class="keyword">false</span>;
573 <a name="a5" doxytag="userrec::InviteTo"></a><p>
574 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
577 <table cellpadding="0" cellspacing="0" border="0">
579 <td class="md" nowrap valign="top"> void userrec::InviteTo </td>
580 <td class="md" valign="top">( </td>
581 <td class="md" nowrap valign="top">char * </td>
582 <td class="mdname1" valign="top" nowrap> <em>channel</em> </td>
583 <td class="md" valign="top"> ) </td>
584 <td class="md" nowrap><code> [virtual]</code></td>
591 <table cellspacing=5 cellpadding=0 border=0>
599 Adds a channel to a users invite list (invites them to a channel).
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>.
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>.
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);
615 <a name="a4" doxytag="userrec::IsInvited"></a><p>
616 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
619 <table cellpadding="0" cellspacing="0" border="0">
621 <td class="md" nowrap valign="top"> bool userrec::IsInvited </td>
622 <td class="md" valign="top">( </td>
623 <td class="md" nowrap valign="top">char * </td>
624 <td class="mdname1" valign="top" nowrap> <em>channel</em> </td>
625 <td class="md" valign="top"> ) </td>
626 <td class="md" nowrap><code> [virtual]</code></td>
633 <table cellspacing=5 cellpadding=0 border=0>
641 Returns true if a user is invited to a channel.
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>.
647 References <a class="el" href="users_8h-source.html#l00104">invites</a>.
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++)
652 00078 <span class="keywordflow">if</span> (i->channel) {
653 00079 <span class="keywordflow">if</span> (!strcasecmp(i->channel,channel))
655 00081 <span class="keywordflow">return</span> <span class="keyword">true</span>;
659 00085 <span class="keywordflow">return</span> <span class="keyword">false</span>;
664 <a name="a6" doxytag="userrec::RemoveInvite"></a><p>
665 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
668 <table cellpadding="0" cellspacing="0" border="0">
670 <td class="md" nowrap valign="top"> void userrec::RemoveInvite </td>
671 <td class="md" valign="top">( </td>
672 <td class="md" nowrap valign="top">char * </td>
673 <td class="mdname1" valign="top" nowrap> <em>channel</em> </td>
674 <td class="md" valign="top"> ) </td>
675 <td class="md" nowrap><code> [virtual]</code></td>
682 <table cellspacing=5 cellpadding=0 border=0>
690 Removes a channel from a users invite list.
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.
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>.
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>.
698 <div class="fragment"><pre>00096 {
699 00097 log(DEBUG,<span class="stringliteral">"Removing invites"</span>);
700 00098 <span class="keywordflow">if</span> (channel)
702 00100 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#r0">invites</a>.size())
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++)
706 00104 <span class="keywordflow">if</span> (i->channel)
708 00106 <span class="keywordflow">if</span> (!strcasecmp(i->channel,channel))
710 00108 <a class="code" href="classuserrec.html#r0">invites</a>.erase(i);
711 00109 <span class="keywordflow">return</span>;
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">
726 <table cellpadding="0" cellspacing="0" border="0">
728 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o7">userrec::awaymsg</a>[512]
733 <table cellspacing=5 cellpadding=0 border=0>
741 The user's away message.
743 If this string is empty, the user is not marked as away.
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>.
747 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
750 <a name="o5" doxytag="userrec::chans"></a><p>
751 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
754 <table cellpadding="0" cellspacing="0" border="0">
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]
761 <table cellspacing=5 cellpadding=0 border=0>
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>.
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>
776 <a name="o2" doxytag="userrec::dhost"></a><p>
777 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
780 <table cellpadding="0" cellspacing="0" border="0">
782 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o2">userrec::dhost</a>[256]
787 <table cellspacing=5 cellpadding=0 border=0>
795 The host displayed to non-opers (used for cloaking etc).
797 This usually matches the value of <a class="el" href="classconnection.html#o1">userrec::host</a>.
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>.
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>
804 <a name="o12" doxytag="userrec::dns_done"></a><p>
805 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
808 <table cellpadding="0" cellspacing="0" border="0">
810 <td class="md" nowrap valign="top"> bool <a class="el" href="classuserrec.html#o12">userrec::dns_done</a>
815 <table cellspacing=5 cellpadding=0 border=0>
823 True when <a class="el" href="classDNS.html">DNS</a> lookups are completed.
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>.
829 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
832 <a name="o9" doxytag="userrec::flood"></a><p>
833 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
836 <table cellpadding="0" cellspacing="0" border="0">
838 <td class="md" nowrap valign="top"> int <a class="el" href="classuserrec.html#o9">userrec::flood</a>
843 <table cellspacing=5 cellpadding=0 border=0>
851 Number of lines the user can place into the buffer (up to the global NetBufferSize bytes) before they are disconnected for excess flood.
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>.
857 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
860 <a name="o3" doxytag="userrec::fullname"></a><p>
861 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
864 <table cellpadding="0" cellspacing="0" border="0">
866 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o3">userrec::fullname</a>[128]
871 <table cellspacing=5 cellpadding=0 border=0>
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>.
885 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
888 <a name="o1" doxytag="userrec::ident"></a><p>
889 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
892 <table cellpadding="0" cellspacing="0" border="0">
894 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o1">userrec::ident</a>[64]
899 <table cellspacing=5 cellpadding=0 border=0>
907 The users ident reply.
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>.
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>
916 <a name="r0" doxytag="userrec::invites"></a><p>
917 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
920 <table cellpadding="0" cellspacing="0" border="0">
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>
927 <table cellspacing=5 cellpadding=0 border=0>
935 A list of channels the user has a pending invite to.
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>.
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>
944 <a name="o16" doxytag="userrec::lines_in"></a><p>
945 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
948 <table cellpadding="0" cellspacing="0" border="0">
950 <td class="md" nowrap valign="top"> long <a class="el" href="classuserrec.html#o16">userrec::lines_in</a>
955 <table cellspacing=5 cellpadding=0 border=0>
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>.
969 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
972 <a name="o4" doxytag="userrec::modes"></a><p>
973 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
976 <table cellpadding="0" cellspacing="0" border="0">
978 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o4">userrec::modes</a>[MAXBUF]
983 <table cellspacing=5 cellpadding=0 border=0>
991 The user's mode string.
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.
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>.
997 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
1000 <a name="o0" doxytag="userrec::nick"></a><p>
1001 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1004 <table cellpadding="0" cellspacing="0" border="0">
1006 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o0">userrec::nick</a>[NICKMAX]
1011 <table cellspacing=5 cellpadding=0 border=0>
1021 An invalid nickname indicates an unregistered connection prior to the NICK command.
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>.
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>
1028 <a name="o11" doxytag="userrec::oper"></a><p>
1029 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1032 <table cellpadding="0" cellspacing="0" border="0">
1034 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o11">userrec::oper</a>[NICKMAX]
1039 <table cellspacing=5 cellpadding=0 border=0>
1047 The oper type they logged in as, if they are an oper.
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.
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>.
1053 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
1056 <a name="o14" doxytag="userrec::password"></a><p>
1057 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1060 <table cellpadding="0" cellspacing="0" border="0">
1062 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o14">userrec::password</a>[MAXBUF]
1067 <table cellspacing=5 cellpadding=0 border=0>
1075 Password specified by the user when they registered.
1077 This is stored even if the block doesnt need a password, so that modules may check it.
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>
1082 <a name="o13" doxytag="userrec::pingmax"></a><p>
1083 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1086 <table cellpadding="0" cellspacing="0" border="0">
1088 <td class="md" nowrap valign="top"> unsigned long <a class="el" href="classuserrec.html#o13">userrec::pingmax</a>
1093 <table cellspacing=5 cellpadding=0 border=0>
1101 Number of seconds between PINGs for this user (set from <connect:allow> tag.
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>
1108 <a name="o15" doxytag="userrec::recvq"></a><p>
1109 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1112 <table cellpadding="0" cellspacing="0" border="0">
1114 <td class="md" nowrap valign="top"> std::string <a class="el" href="classuserrec.html#o15">userrec::recvq</a>
1119 <table cellspacing=5 cellpadding=0 border=0>
1127 User's receive queue.
1129 Lines from the IRCd awaiting processing are stored here. Upgraded april 2005, old system a bit hairy.
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>.
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>
1136 <a name="o17" doxytag="userrec::reset_due"></a><p>
1137 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1140 <table cellpadding="0" cellspacing="0" border="0">
1142 <td class="md" nowrap valign="top"> time_t <a class="el" href="classuserrec.html#o17">userrec::reset_due</a>
1147 <table cellspacing=5 cellpadding=0 border=0>
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>.
1159 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
1162 <a name="o8" doxytag="userrec::result"></a><p>
1163 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1166 <table cellpadding="0" cellspacing="0" border="0">
1168 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o8">userrec::result</a>[256]
1173 <table cellspacing=5 cellpadding=0 border=0>
1181 Stores the result of the last GetFullHost or GetRealHost call.
1183 You may use this to increase the speed of use of this class.
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>.
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>
1190 <a name="o6" doxytag="userrec::server"></a><p>
1191 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1194 <table cellpadding="0" cellspacing="0" border="0">
1196 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o6">userrec::server</a>[256]
1201 <table cellspacing=5 cellpadding=0 border=0>
1209 The server the user is connected to.
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>.
1215 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
1218 <a name="o18" doxytag="userrec::threshold"></a><p>
1219 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1222 <table cellpadding="0" cellspacing="0" border="0">
1224 <td class="md" nowrap valign="top"> long <a class="el" href="classuserrec.html#o18">userrec::threshold</a>
1229 <table cellspacing=5 cellpadding=0 border=0>
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>
1242 <a name="o10" doxytag="userrec::timeout"></a><p>
1243 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1246 <table cellpadding="0" cellspacing="0" border="0">
1248 <td class="md" nowrap valign="top"> unsigned long <a class="el" href="classuserrec.html#o10">userrec::timeout</a>
1253 <table cellspacing=5 cellpadding=0 border=0>
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.
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>.
1267 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
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>