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 colspan=2><br><h2>Public Attributes</h2></td></tr>
41 <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>
43 <tr><td class="mdescLeft"> </td><td class="mdescRight">The users nickname. </em> <a href="#o0"></a><em><br><br></td></tr>
44 <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>
46 <tr><td class="mdescLeft"> </td><td class="mdescRight">The users ident reply. </em> <a href="#o1"></a><em><br><br></td></tr>
47 <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>
49 <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>
50 <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>
52 <tr><td class="mdescLeft"> </td><td class="mdescRight">The users full name. </em> <a href="#o3"></a><em><br><br></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#o4">modes</a> [MAXBUF]</td></tr>
55 <tr><td class="mdescLeft"> </td><td class="mdescRight">The user's mode string. </em> <a href="#o4"></a><em><br><br></td></tr>
56 <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>
58 <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>
60 <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>
61 <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>
63 <tr><td class="mdescLeft"> </td><td class="mdescRight">The user's away message. </em> <a href="#o7"></a><em><br><br></td></tr>
64 <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>
66 <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>
67 <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>
69 <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>
70 <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>
72 <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>
73 <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>
75 <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>
76 <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>
78 <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>
79 <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>
81 <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>
82 <tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
83 <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>
85 <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>
87 <hr><a name="_details"></a><h2>Detailed Description</h2>
88 Holds all information about a user This class stores all information about a user connected to the irc server.
90 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.
94 Definition at line <a class="el" href="users_8h-source.html#l00093">93</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Constructor & Destructor Documentation</h2>
95 <a name="a0" doxytag="userrec::userrec"></a><p>
96 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
99 <table cellpadding="0" cellspacing="0" border="0">
101 <td class="md" nowrap valign="top"> userrec::userrec </td>
102 <td class="md" valign="top">( </td>
103 <td class="mdname1" valign="top" nowrap> </td>
104 <td class="md" valign="top"> ) </td>
105 <td class="md" nowrap></td>
112 <table cellspacing=5 cellpadding=0 border=0>
122 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>.
124 References <a class="el" href="users_8h-source.html#l00136">awaymsg</a>, <a class="el" href="connection_8h-source.html#l00187">connection::bytes_in</a>, <a class="el" href="connection_8h-source.html#l00191">connection::bytes_out</a>, <a class="el" href="channels_8h-source.html#l00213">ucrec::channel</a>, <a class="el" href="users_8h-source.html#l00127">chans</a>, <a class="el" href="connection_8h-source.html#l00195">connection::cmds_in</a>, <a class="el" href="connection_8h-source.html#l00199">connection::cmds_out</a>, <a class="el" href="users_8h-source.html#l00115">dhost</a>, <a class="el" href="users_8h-source.html#l00164">dns_done</a>, <a class="el" href="connection_8h-source.html#l00171">connection::fd</a>, <a class="el" href="users_8h-source.html#l00147">flood</a>, <a class="el" href="users_8h-source.html#l00119">fullname</a>, <a class="el" href="connection_8h-source.html#l00203">connection::haspassed</a>, <a class="el" href="connection_8h-source.html#l00175">connection::host</a>, <a class="el" href="users_8h-source.html#l00110">ident</a>, <a class="el" href="connection_8h-source.html#l00229">connection::idle_lastmsg</a>, <a class="el" href="connection_8h-source.html#l00183">connection::inbuf</a>, <a class="el" href="users_8h-source.html#l00099">invites</a>, <a class="el" href="connection_8h-source.html#l00179">connection::ip</a>, <a class="el" href="connection_8h-source.html#l00221">connection::lastping</a>, <a class="el" href="users_8h-source.html#l00125">modes</a>, <a class="el" href="users_8h-source.html#l00106">nick</a>, <a class="el" href="connection_8h-source.html#l00233">connection::nping</a>, <a class="el" href="users_8h-source.html#l00160">oper</a>, <a class="el" href="connection_8h-source.html#l00209">connection::port</a>, <a class="el" href="connection_8h-source.html#l00213">connection::registered</a>, <a class="el" href="users_8h-source.html#l00141">result</a>, <a class="el" href="users_8h-source.html#l00131">server</a>, <a class="el" href="connection_8h-source.html#l00225">connection::signon</a>, <a class="el" href="users_8h-source.html#l00153">timeout</a>, and <a class="el" href="channels_8h-source.html#l00208">ucrec::uc_modes</a>.
126 <div class="fragment"><pre>00029 {
127 00030 <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
128 00031 strcpy(nick,<span class="stringliteral">""</span>);
129 00032 strcpy(ip,<span class="stringliteral">"127.0.0.1"</span>);
130 00033 <a class="code" href="classuserrec.html#o10">timeout</a> = 0;
131 00034 strcpy(ident,<span class="stringliteral">""</span>);
132 00035 strcpy(host,<span class="stringliteral">""</span>);
133 00036 strcpy(dhost,<span class="stringliteral">""</span>);
134 00037 strcpy(fullname,<span class="stringliteral">""</span>);
135 00038 strcpy(modes,<span class="stringliteral">""</span>);
136 00039 strcpy(inbuf,<span class="stringliteral">""</span>);
137 00040 strcpy(server,<span class="stringliteral">""</span>);
138 00041 strcpy(awaymsg,<span class="stringliteral">""</span>);
139 00042 strcpy(oper,<span class="stringliteral">""</span>);
140 00043 <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;
141 00044 <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;
142 00045 <a class="code" href="classconnection.html#o8">haspassed</a> = <span class="keyword">false</span>;
143 00046 <a class="code" href="classuserrec.html#o12">dns_done</a> = <span class="keyword">false</span>;
144 00047 strcpy(result,<span class="stringliteral">""</span>);
145 00048 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < MAXCHANS; i++)
147 00050 this-><a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a> = NULL;
148 00051 this-><a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o0">uc_modes</a> = 0;
150 00053 <a class="code" href="classuserrec.html#r0">invites</a>.clear();
155 <a name="a1" doxytag="userrec::~userrec"></a><p>
156 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
159 <table cellpadding="0" cellspacing="0" border="0">
161 <td class="md" nowrap valign="top"> virtual userrec::~<a class="el" href="classuserrec.html">userrec</a> </td>
162 <td class="md" valign="top">( </td>
163 <td class="mdname1" valign="top" nowrap> </td>
164 <td class="md" valign="top"> ) </td>
165 <td class="md" nowrap><code> [inline, virtual]</code></td>
172 <table cellspacing=5 cellpadding=0 border=0>
182 Definition at line <a class="el" href="users_8h-source.html#l00172">172</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
184 <div class="fragment"><pre>00172 { }
188 <hr><h2>Member Function Documentation</h2>
189 <a name="a2" doxytag="userrec::GetFullHost"></a><p>
190 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
193 <table cellpadding="0" cellspacing="0" border="0">
195 <td class="md" nowrap valign="top"> char * userrec::GetFullHost </td>
196 <td class="md" valign="top">( </td>
197 <td class="mdname1" valign="top" nowrap> </td>
198 <td class="md" valign="top"> ) </td>
199 <td class="md" nowrap><code> [virtual]</code></td>
206 <table cellspacing=5 cellpadding=0 border=0>
214 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.
218 Definition at line <a class="el" href="users_8cpp-source.html#l00058">58</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
220 References <a class="el" href="users_8h-source.html#l00115">dhost</a>, <a class="el" href="users_8h-source.html#l00110">ident</a>, <a class="el" href="users_8h-source.html#l00106">nick</a>, and <a class="el" href="users_8h-source.html#l00141">result</a>.
222 <div class="fragment"><pre>00059 {
223 00060 snprintf(result,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,dhost);
224 00061 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#o8">result</a>;
229 <a name="a3" doxytag="userrec::GetFullRealHost"></a><p>
230 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
233 <table cellpadding="0" cellspacing="0" border="0">
235 <td class="md" nowrap valign="top"> char * userrec::GetFullRealHost </td>
236 <td class="md" valign="top">( </td>
237 <td class="mdname1" valign="top" nowrap> </td>
238 <td class="md" valign="top"> ) </td>
239 <td class="md" nowrap><code> [virtual]</code></td>
246 <table cellspacing=5 cellpadding=0 border=0>
254 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.
256 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.
258 Definition at line <a class="el" href="users_8cpp-source.html#l00065">65</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
260 References <a class="el" href="connection_8h-source.html#l00175">connection::host</a>, <a class="el" href="users_8h-source.html#l00110">ident</a>, <a class="el" href="users_8h-source.html#l00106">nick</a>, and <a class="el" href="users_8h-source.html#l00141">result</a>.
262 <div class="fragment"><pre>00066 {
263 00067 snprintf(result,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,host);
264 00068 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#o8">result</a>;
269 <a name="a7" doxytag="userrec::HasPermission"></a><p>
270 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
273 <table cellpadding="0" cellspacing="0" border="0">
275 <td class="md" nowrap valign="top"> bool userrec::HasPermission </td>
276 <td class="md" valign="top">( </td>
277 <td class="md" nowrap valign="top">char * </td>
278 <td class="mdname1" valign="top" nowrap> <em>command</em> </td>
279 <td class="md" valign="top"> ) </td>
280 <td class="md" nowrap></td>
287 <table cellspacing=5 cellpadding=0 border=0>
295 Returns true or false for if a user can execute a privilaged oper command.
297 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.
299 Definition at line <a class="el" href="users_8cpp-source.html#l00114">114</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
301 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>.
303 <div class="fragment"><pre>00115 {
304 00116 <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
305 00117 <span class="keywordtype">char</span>* myclass;
306 00118 <span class="keywordtype">char</span>* mycmd;
307 00119 <span class="keywordtype">char</span>* savept;
308 00120 <span class="keywordtype">char</span>* savept2;
310 00122 <span class="comment">// are they even an oper at all?</span>
311 00123 <span class="keywordflow">if</span> (strchr(this->modes,<span class="charliteral">'o'</span>))
313 00125 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper"</span>,this->nick);
314 00126 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j < ConfValueEnum(<span class="stringliteral">"type"</span>,&config_f); j++)
316 00128 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&config_f);
317 00129 <span class="keywordflow">if</span> (!strcmp(TypeName,this->oper))
319 00131 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this->nick,this->oper);
320 00132 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&config_f);
321 00133 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&savept);
322 00134 <span class="keywordflow">while</span> (myclass)
324 00136 log(DEBUG,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
325 00137 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k < ConfValueEnum(<span class="stringliteral">"class"</span>,&config_f); k++)
327 00139 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&config_f);
328 00140 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
330 00142 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&config_f);
331 00143 log(DEBUG,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
334 00146 mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&savept2);
335 00147 <span class="keywordflow">while</span> (mycmd)
337 00149 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
339 00151 log(DEBUG,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
340 00152 <span class="keywordflow">return</span> <span class="keyword">true</span>;
342 00154 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept2);
346 00158 myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept);
351 00163 <span class="keywordflow">return</span> <span class="keyword">false</span>;
356 <a name="a5" doxytag="userrec::InviteTo"></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"> void userrec::InviteTo </td>
363 <td class="md" valign="top">( </td>
364 <td class="md" nowrap valign="top">char * </td>
365 <td class="mdname1" valign="top" nowrap> <em>channel</em> </td>
366 <td class="md" valign="top"> ) </td>
367 <td class="md" nowrap><code> [virtual]</code></td>
374 <table cellspacing=5 cellpadding=0 border=0>
382 Adds a channel to a users invite list (invites them to a channel).
386 Definition at line <a class="el" href="users_8cpp-source.html#l00085">85</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
388 References <a class="el" href="users_8h-source.html#l00039">Invited::channel</a>, and <a class="el" href="users_8h-source.html#l00099">invites</a>.
390 <div class="fragment"><pre>00086 {
391 00087 <a class="code" href="classInvited.html">Invited</a> i;
392 00088 strlcpy(i.<a class="code" href="classInvited.html#o0">channel</a>,channel,CHANMAX);
393 00089 <a class="code" href="classuserrec.html#r0">invites</a>.push_back(i);
398 <a name="a4" doxytag="userrec::IsInvited"></a><p>
399 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
402 <table cellpadding="0" cellspacing="0" border="0">
404 <td class="md" nowrap valign="top"> bool userrec::IsInvited </td>
405 <td class="md" valign="top">( </td>
406 <td class="md" nowrap valign="top">char * </td>
407 <td class="mdname1" valign="top" nowrap> <em>channel</em> </td>
408 <td class="md" valign="top"> ) </td>
409 <td class="md" nowrap><code> [virtual]</code></td>
416 <table cellspacing=5 cellpadding=0 border=0>
424 Returns true if a user is invited to a channel.
428 Definition at line <a class="el" href="users_8cpp-source.html#l00071">71</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
430 References <a class="el" href="users_8h-source.html#l00099">invites</a>.
432 <div class="fragment"><pre>00072 {
433 00073 <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++)
435 00075 <span class="keywordflow">if</span> (i->channel) {
436 00076 <span class="keywordflow">if</span> (!strcasecmp(i->channel,channel))
438 00078 <span class="keywordflow">return</span> <span class="keyword">true</span>;
442 00082 <span class="keywordflow">return</span> <span class="keyword">false</span>;
447 <a name="a6" doxytag="userrec::RemoveInvite"></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"> void userrec::RemoveInvite </td>
454 <td class="md" valign="top">( </td>
455 <td class="md" nowrap valign="top">char * </td>
456 <td class="mdname1" valign="top" nowrap> <em>channel</em> </td>
457 <td class="md" valign="top"> ) </td>
458 <td class="md" nowrap><code> [virtual]</code></td>
465 <table cellspacing=5 cellpadding=0 border=0>
473 Removes a channel from a users invite list.
475 This member function is called on successfully joining an invite only channel to which the user has previously been invited, to clear the invitation.
477 Definition at line <a class="el" href="users_8cpp-source.html#l00092">92</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
479 References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, and <a class="el" href="users_8h-source.html#l00099">invites</a>.
481 <div class="fragment"><pre>00093 {
482 00094 log(DEBUG,<span class="stringliteral">"Removing invites"</span>);
483 00095 <span class="keywordflow">if</span> (channel)
485 00097 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#r0">invites</a>.size())
487 00099 <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++)
489 00101 <span class="keywordflow">if</span> (i->channel)
491 00103 <span class="keywordflow">if</span> (!strcasecmp(i->channel,channel))
493 00105 <a class="code" href="classuserrec.html#r0">invites</a>.erase(i);
494 00106 <span class="keywordflow">return</span>;
504 <hr><h2>Member Data Documentation</h2>
505 <a name="o7" doxytag="userrec::awaymsg"></a><p>
506 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
509 <table cellpadding="0" cellspacing="0" border="0">
511 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o7">userrec::awaymsg</a>[512]
516 <table cellspacing=5 cellpadding=0 border=0>
524 The user's away message.
526 If this string is empty, the user is not marked as away.
528 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>.
530 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
533 <a name="o5" doxytag="userrec::chans"></a><p>
534 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
537 <table cellpadding="0" cellspacing="0" border="0">
539 <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]
544 <table cellspacing=5 cellpadding=0 border=0>
554 Definition at line <a class="el" href="users_8h-source.html#l00127">127</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
556 Referenced by <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
559 <a name="o2" doxytag="userrec::dhost"></a><p>
560 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
563 <table cellpadding="0" cellspacing="0" border="0">
565 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o2">userrec::dhost</a>[256]
570 <table cellspacing=5 cellpadding=0 border=0>
578 The host displayed to non-opers (used for cloaking etc).
580 This usually matches the value of <a class="el" href="classconnection.html#o1">userrec::host</a>.
582 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>.
584 Referenced by <a class="el" href="users_8cpp-source.html#l00058">GetFullHost()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
587 <a name="o12" doxytag="userrec::dns_done"></a><p>
588 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
591 <table cellpadding="0" cellspacing="0" border="0">
593 <td class="md" nowrap valign="top"> bool <a class="el" href="classuserrec.html#o12">userrec::dns_done</a>
598 <table cellspacing=5 cellpadding=0 border=0>
606 True when <a class="el" href="classDNS.html">DNS</a> lookups are completed.
610 Definition at line <a class="el" href="users_8h-source.html#l00164">164</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
612 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
615 <a name="o9" doxytag="userrec::flood"></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"> int <a class="el" href="classuserrec.html#o9">userrec::flood</a>
626 <table cellspacing=5 cellpadding=0 border=0>
634 Number of lines the user can place into the buffer (up to the global NetBufferSize bytes) before they are disconnected for excess flood.
638 Definition at line <a class="el" href="users_8h-source.html#l00147">147</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
640 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
643 <a name="o3" doxytag="userrec::fullname"></a><p>
644 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
647 <table cellpadding="0" cellspacing="0" border="0">
649 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o3">userrec::fullname</a>[128]
654 <table cellspacing=5 cellpadding=0 border=0>
666 Definition at line <a class="el" href="users_8h-source.html#l00119">119</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
668 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
671 <a name="o1" doxytag="userrec::ident"></a><p>
672 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
675 <table cellpadding="0" cellspacing="0" border="0">
677 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o1">userrec::ident</a>[64]
682 <table cellspacing=5 cellpadding=0 border=0>
690 The users ident reply.
694 Definition at line <a class="el" href="users_8h-source.html#l00110">110</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
696 Referenced by <a class="el" href="users_8cpp-source.html#l00058">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00065">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00654">Server::UserToPseudo()</a>. </td>
699 <a name="r0" doxytag="userrec::invites"></a><p>
700 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
703 <table cellpadding="0" cellspacing="0" border="0">
705 <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>
710 <table cellspacing=5 cellpadding=0 border=0>
718 A list of channels the user has a pending invite to.
722 Definition at line <a class="el" href="users_8h-source.html#l00099">99</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
724 Referenced by <a class="el" href="users_8cpp-source.html#l00085">InviteTo()</a>, <a class="el" href="users_8cpp-source.html#l00071">IsInvited()</a>, <a class="el" href="users_8cpp-source.html#l00092">RemoveInvite()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
727 <a name="o4" doxytag="userrec::modes"></a><p>
728 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
731 <table cellpadding="0" cellspacing="0" border="0">
733 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o4">userrec::modes</a>[MAXBUF]
738 <table cellspacing=5 cellpadding=0 border=0>
746 The user's mode string.
748 This may contain any of the following RFC characters: o, w, s, i Your module may define other mode characters as it sees fit.
750 Definition at line <a class="el" href="users_8h-source.html#l00125">125</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
752 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
755 <a name="o0" doxytag="userrec::nick"></a><p>
756 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
759 <table cellpadding="0" cellspacing="0" border="0">
761 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o0">userrec::nick</a>[NICKMAX]
766 <table cellspacing=5 cellpadding=0 border=0>
776 An invalid nickname indicates an unregistered connection prior to the NICK command.
778 Definition at line <a class="el" href="users_8h-source.html#l00106">106</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
780 Referenced by <a class="el" href="modules_8cpp-source.html#l00930">ConfigReader::DumpErrors()</a>, <a class="el" href="users_8cpp-source.html#l00058">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00065">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00663">Server::PseudoToUser()</a>, <a class="el" href="modules_8cpp-source.html#l00474">Server::QuitUser()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
783 <a name="o11" doxytag="userrec::oper"></a><p>
784 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
787 <table cellpadding="0" cellspacing="0" border="0">
789 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o11">userrec::oper</a>[NICKMAX]
794 <table cellspacing=5 cellpadding=0 border=0>
802 The oper type they logged in as, if they are an oper.
804 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.
806 Definition at line <a class="el" href="users_8h-source.html#l00160">160</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
808 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
811 <a name="o13" doxytag="userrec::pingmax"></a><p>
812 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
815 <table cellpadding="0" cellspacing="0" border="0">
817 <td class="md" nowrap valign="top"> unsigned long <a class="el" href="classuserrec.html#o13">userrec::pingmax</a>
822 <table cellspacing=5 cellpadding=0 border=0>
830 Number of seconds between PINGs for this user (set from <connect:allow> tag.
834 Definition at line <a class="el" href="users_8h-source.html#l00168">168</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
837 <a name="o8" doxytag="userrec::result"></a><p>
838 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
841 <table cellpadding="0" cellspacing="0" border="0">
843 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o8">userrec::result</a>[256]
848 <table cellspacing=5 cellpadding=0 border=0>
856 Stores the result of the last GetFullHost or GetRealHost call.
858 You may use this to increase the speed of use of this class.
860 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>.
862 Referenced by <a class="el" href="users_8cpp-source.html#l00058">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00065">GetFullRealHost()</a>, and <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
865 <a name="o6" doxytag="userrec::server"></a><p>
866 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
869 <table cellpadding="0" cellspacing="0" border="0">
871 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o6">userrec::server</a>[256]
876 <table cellspacing=5 cellpadding=0 border=0>
884 The server the user is connected to.
888 Definition at line <a class="el" href="users_8h-source.html#l00131">131</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
890 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
893 <a name="o10" doxytag="userrec::timeout"></a><p>
894 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
897 <table cellpadding="0" cellspacing="0" border="0">
899 <td class="md" nowrap valign="top"> unsigned long <a class="el" href="classuserrec.html#o10">userrec::timeout</a>
904 <table cellspacing=5 cellpadding=0 border=0>
912 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.
916 Definition at line <a class="el" href="users_8h-source.html#l00153">153</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
918 Referenced by <a class="el" href="users_8cpp-source.html#l00028">userrec()</a>. </td>
921 <hr>The documentation for this class was generated from the following files:<ul>
922 <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>
923 <hr size="1"><address style="align: right;"><small>Generated on Wed Apr 20 15:47:12 2005 for InspIRCd by
924 <a href="http://www.doxygen.org/index.html">
925 <img src="doxygen.png" alt="doxygen" align="middle" border=0 >
926 </a>1.3.3 </small></address>