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 colspan=2><br><h2>Private Attributes</h2></td></tr>
80 <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>
82 <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>
84 <hr><a name="_details"></a><h2>Detailed Description</h2>
85 Holds all information about a user This class stores all information about a user connected to the irc server.
87 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.
91 Definition at line <a class="el" href="users_8h-source.html#l00089">89</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Constructor & Destructor Documentation</h2>
92 <a name="a0" doxytag="userrec::userrec"></a><p>
93 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
96 <table cellpadding="0" cellspacing="0" border="0">
98 <td class="md" nowrap valign="top"> userrec::userrec </td>
99 <td class="md" valign="top">( </td>
100 <td class="mdname1" valign="top" nowrap> </td>
101 <td class="md" valign="top"> ) </td>
102 <td class="md" nowrap></td>
109 <table cellspacing=5 cellpadding=0 border=0>
119 Definition at line <a class="el" href="users_8cpp-source.html#l00026">26</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
121 References <a class="el" href="users_8h-source.html#l00132">awaymsg</a>, <a class="el" href="connection_8h-source.html#l00194">connection::bytes_in</a>, <a class="el" href="connection_8h-source.html#l00198">connection::bytes_out</a>, <a class="el" href="channels_8h-source.html#l00213">ucrec::channel</a>, <a class="el" href="users_8h-source.html#l00123">chans</a>, <a class="el" href="connection_8h-source.html#l00202">connection::cmds_in</a>, <a class="el" href="connection_8h-source.html#l00206">connection::cmds_out</a>, <a class="el" href="users_8h-source.html#l00111">dhost</a>, <a class="el" href="users_8h-source.html#l00160">dns_done</a>, <a class="el" href="connection_8h-source.html#l00178">connection::fd</a>, <a class="el" href="users_8h-source.html#l00143">flood</a>, <a class="el" href="users_8h-source.html#l00115">fullname</a>, <a class="el" href="connection_8h-source.html#l00210">connection::haspassed</a>, <a class="el" href="connection_8h-source.html#l00182">connection::host</a>, <a class="el" href="users_8h-source.html#l00106">ident</a>, <a class="el" href="connection_8h-source.html#l00236">connection::idle_lastmsg</a>, <a class="el" href="connection_8h-source.html#l00190">connection::inbuf</a>, <a class="el" href="users_8h-source.html#l00095">invites</a>, <a class="el" href="connection_8h-source.html#l00186">connection::ip</a>, <a class="el" href="connection_8h-source.html#l00228">connection::lastping</a>, <a class="el" href="users_8h-source.html#l00121">modes</a>, <a class="el" href="users_8h-source.html#l00102">nick</a>, <a class="el" href="connection_8h-source.html#l00240">connection::nping</a>, <a class="el" href="users_8h-source.html#l00156">oper</a>, <a class="el" href="connection_8h-source.html#l00216">connection::port</a>, <a class="el" href="connection_8h-source.html#l00220">connection::registered</a>, <a class="el" href="users_8h-source.html#l00137">result</a>, <a class="el" href="users_8h-source.html#l00127">server</a>, <a class="el" href="connection_8h-source.html#l00232">connection::signon</a>, <a class="el" href="users_8h-source.html#l00149">timeout</a>, and <a class="el" href="channels_8h-source.html#l00208">ucrec::uc_modes</a>.
123 <div class="fragment"><pre>00027 {
124 00028 <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
125 00029 strcpy(nick,<span class="stringliteral">""</span>);
126 00030 strcpy(ip,<span class="stringliteral">"127.0.0.1"</span>);
127 00031 <a class="code" href="classuserrec.html#o10">timeout</a> = 0;
128 00032 strcpy(ident,<span class="stringliteral">""</span>);
129 00033 strcpy(host,<span class="stringliteral">""</span>);
130 00034 strcpy(dhost,<span class="stringliteral">""</span>);
131 00035 strcpy(fullname,<span class="stringliteral">""</span>);
132 00036 strcpy(modes,<span class="stringliteral">""</span>);
133 00037 strcpy(inbuf,<span class="stringliteral">""</span>);
134 00038 strcpy(server,<span class="stringliteral">""</span>);
135 00039 strcpy(awaymsg,<span class="stringliteral">""</span>);
136 00040 strcpy(oper,<span class="stringliteral">""</span>);
137 00041 <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;
138 00042 <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;
139 00043 <a class="code" href="classconnection.html#o8">haspassed</a> = <span class="keyword">false</span>;
140 00044 <a class="code" href="classuserrec.html#o12">dns_done</a> = <span class="keyword">false</span>;
141 00045 strcpy(result,<span class="stringliteral">""</span>);
142 00046 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < MAXCHANS; i++)
144 00048 this-><a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a> = NULL;
145 00049 this-><a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o0">uc_modes</a> = 0;
147 00051 <a class="code" href="classuserrec.html#r0">invites</a>.clear();
152 <a name="a1" doxytag="userrec::~userrec"></a><p>
153 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
156 <table cellpadding="0" cellspacing="0" border="0">
158 <td class="md" nowrap valign="top"> virtual userrec::~<a class="el" href="classuserrec.html">userrec</a> </td>
159 <td class="md" valign="top">( </td>
160 <td class="mdname1" valign="top" nowrap> </td>
161 <td class="md" valign="top"> ) </td>
162 <td class="md" nowrap><code> [inline, virtual]</code></td>
169 <table cellspacing=5 cellpadding=0 border=0>
179 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>.
181 <div class="fragment"><pre>00164 { }
185 <hr><h2>Member Function Documentation</h2>
186 <a name="a2" doxytag="userrec::GetFullHost"></a><p>
187 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
190 <table cellpadding="0" cellspacing="0" border="0">
192 <td class="md" nowrap valign="top"> char * userrec::GetFullHost </td>
193 <td class="md" valign="top">( </td>
194 <td class="mdname1" valign="top" nowrap> </td>
195 <td class="md" valign="top"> ) </td>
196 <td class="md" nowrap><code> [virtual]</code></td>
203 <table cellspacing=5 cellpadding=0 border=0>
211 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.
215 Definition at line <a class="el" href="users_8cpp-source.html#l00056">56</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
217 References <a class="el" href="users_8h-source.html#l00111">dhost</a>, <a class="el" href="users_8h-source.html#l00106">ident</a>, <a class="el" href="users_8h-source.html#l00102">nick</a>, and <a class="el" href="users_8h-source.html#l00137">result</a>.
219 <div class="fragment"><pre>00057 {
220 00058 snprintf(result,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,dhost);
221 00059 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#o8">result</a>;
226 <a name="a3" doxytag="userrec::GetFullRealHost"></a><p>
227 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
230 <table cellpadding="0" cellspacing="0" border="0">
232 <td class="md" nowrap valign="top"> char * userrec::GetFullRealHost </td>
233 <td class="md" valign="top">( </td>
234 <td class="mdname1" valign="top" nowrap> </td>
235 <td class="md" valign="top"> ) </td>
236 <td class="md" nowrap><code> [virtual]</code></td>
243 <table cellspacing=5 cellpadding=0 border=0>
251 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.
253 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.
255 Definition at line <a class="el" href="users_8cpp-source.html#l00063">63</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
257 References <a class="el" href="connection_8h-source.html#l00182">connection::host</a>, <a class="el" href="users_8h-source.html#l00106">ident</a>, <a class="el" href="users_8h-source.html#l00102">nick</a>, and <a class="el" href="users_8h-source.html#l00137">result</a>.
259 <div class="fragment"><pre>00064 {
260 00065 snprintf(result,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,host);
261 00066 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#o8">result</a>;
266 <a name="a7" doxytag="userrec::HasPermission"></a><p>
267 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
270 <table cellpadding="0" cellspacing="0" border="0">
272 <td class="md" nowrap valign="top"> bool userrec::HasPermission </td>
273 <td class="md" valign="top">( </td>
274 <td class="md" nowrap valign="top">char * </td>
275 <td class="mdname1" valign="top" nowrap> <em>command</em> </td>
276 <td class="md" valign="top"> ) </td>
277 <td class="md" nowrap></td>
284 <table cellspacing=5 cellpadding=0 border=0>
292 Returns true or false for if a user can execute a privilaged oper command.
294 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.
296 Definition at line <a class="el" href="users_8cpp-source.html#l00112">112</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
298 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>.
300 <div class="fragment"><pre>00113 {
301 00114 <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
302 00115 <span class="keywordtype">char</span>* myclass;
303 00116 <span class="keywordtype">char</span>* mycmd;
304 00117 <span class="keywordtype">char</span>* savept;
305 00118 <span class="keywordtype">char</span>* savept2;
307 00120 <span class="comment">// are they even an oper at all?</span>
308 00121 <span class="keywordflow">if</span> (strchr(this->modes,<span class="charliteral">'o'</span>))
310 00123 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper"</span>,this->nick);
311 00124 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j < ConfValueEnum(<span class="stringliteral">"type"</span>,&config_f); j++)
313 00126 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&config_f);
314 00127 <span class="keywordflow">if</span> (!strcmp(TypeName,this->oper))
316 00129 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this->nick,this->oper);
317 00130 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&config_f);
318 00131 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&savept);
319 00132 <span class="keywordflow">while</span> (myclass)
321 00134 log(DEBUG,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
322 00135 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k < ConfValueEnum(<span class="stringliteral">"class"</span>,&config_f); k++)
324 00137 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&config_f);
325 00138 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
327 00140 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&config_f);
328 00141 log(DEBUG,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
331 00144 mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&savept2);
332 00145 <span class="keywordflow">while</span> (mycmd)
334 00147 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
336 00149 log(DEBUG,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
337 00150 <span class="keywordflow">return</span> <span class="keyword">true</span>;
339 00152 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept2);
343 00156 myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept);
348 00161 <span class="keywordflow">return</span> <span class="keyword">false</span>;
353 <a name="a5" doxytag="userrec::InviteTo"></a><p>
354 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
357 <table cellpadding="0" cellspacing="0" border="0">
359 <td class="md" nowrap valign="top"> void userrec::InviteTo </td>
360 <td class="md" valign="top">( </td>
361 <td class="md" nowrap valign="top">char * </td>
362 <td class="mdname1" valign="top" nowrap> <em>channel</em> </td>
363 <td class="md" valign="top"> ) </td>
364 <td class="md" nowrap><code> [virtual]</code></td>
371 <table cellspacing=5 cellpadding=0 border=0>
379 Adds a channel to a users invite list (invites them to a channel).
383 Definition at line <a class="el" href="users_8cpp-source.html#l00083">83</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
385 References <a class="el" href="users_8h-source.html#l00039">Invited::channel</a>, and <a class="el" href="users_8h-source.html#l00095">invites</a>.
387 <div class="fragment"><pre>00084 {
388 00085 <a class="code" href="classInvited.html">Invited</a> i;
389 00086 strlcpy(i.<a class="code" href="classInvited.html#o0">channel</a>,channel,CHANMAX);
390 00087 <a class="code" href="classuserrec.html#r0">invites</a>.push_back(i);
395 <a name="a4" doxytag="userrec::IsInvited"></a><p>
396 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
399 <table cellpadding="0" cellspacing="0" border="0">
401 <td class="md" nowrap valign="top"> bool userrec::IsInvited </td>
402 <td class="md" valign="top">( </td>
403 <td class="md" nowrap valign="top">char * </td>
404 <td class="mdname1" valign="top" nowrap> <em>channel</em> </td>
405 <td class="md" valign="top"> ) </td>
406 <td class="md" nowrap><code> [virtual]</code></td>
413 <table cellspacing=5 cellpadding=0 border=0>
421 Returns true if a user is invited to a channel.
425 Definition at line <a class="el" href="users_8cpp-source.html#l00069">69</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
427 References <a class="el" href="users_8h-source.html#l00095">invites</a>.
429 <div class="fragment"><pre>00070 {
430 00071 <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++)
432 00073 <span class="keywordflow">if</span> (i->channel) {
433 00074 <span class="keywordflow">if</span> (!strcasecmp(i->channel,channel))
435 00076 <span class="keywordflow">return</span> <span class="keyword">true</span>;
439 00080 <span class="keywordflow">return</span> <span class="keyword">false</span>;
444 <a name="a6" doxytag="userrec::RemoveInvite"></a><p>
445 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
448 <table cellpadding="0" cellspacing="0" border="0">
450 <td class="md" nowrap valign="top"> void userrec::RemoveInvite </td>
451 <td class="md" valign="top">( </td>
452 <td class="md" nowrap valign="top">char * </td>
453 <td class="mdname1" valign="top" nowrap> <em>channel</em> </td>
454 <td class="md" valign="top"> ) </td>
455 <td class="md" nowrap><code> [virtual]</code></td>
462 <table cellspacing=5 cellpadding=0 border=0>
470 Removes a channel from a users invite list.
472 This member function is called on successfully joining an invite only channel to which the user has previously been invited, to clear the invitation.
474 Definition at line <a class="el" href="users_8cpp-source.html#l00090">90</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
476 References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, and <a class="el" href="users_8h-source.html#l00095">invites</a>.
478 <div class="fragment"><pre>00091 {
479 00092 log(DEBUG,<span class="stringliteral">"Removing invites"</span>);
480 00093 <span class="keywordflow">if</span> (channel)
482 00095 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#r0">invites</a>.size())
484 00097 <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++)
486 00099 <span class="keywordflow">if</span> (i->channel)
488 00101 <span class="keywordflow">if</span> (!strcasecmp(i->channel,channel))
490 00103 <a class="code" href="classuserrec.html#r0">invites</a>.erase(i);
491 00104 <span class="keywordflow">return</span>;
501 <hr><h2>Member Data Documentation</h2>
502 <a name="o7" doxytag="userrec::awaymsg"></a><p>
503 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
506 <table cellpadding="0" cellspacing="0" border="0">
508 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o7">userrec::awaymsg</a>[512]
513 <table cellspacing=5 cellpadding=0 border=0>
521 The user's away message.
523 If this string is empty, the user is not marked as away.
525 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>.
527 Referenced by <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
530 <a name="o5" doxytag="userrec::chans"></a><p>
531 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
534 <table cellpadding="0" cellspacing="0" border="0">
536 <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]
541 <table cellspacing=5 cellpadding=0 border=0>
551 Definition at line <a class="el" href="users_8h-source.html#l00123">123</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
553 Referenced by <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
556 <a name="o2" doxytag="userrec::dhost"></a><p>
557 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
560 <table cellpadding="0" cellspacing="0" border="0">
562 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o2">userrec::dhost</a>[256]
567 <table cellspacing=5 cellpadding=0 border=0>
575 The host displayed to non-opers (used for cloaking etc).
577 This usually matches the value of <a class="el" href="classconnection.html#o1">userrec::host</a>.
579 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>.
581 Referenced by <a class="el" href="users_8cpp-source.html#l00056">GetFullHost()</a>, and <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
584 <a name="o12" doxytag="userrec::dns_done"></a><p>
585 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
588 <table cellpadding="0" cellspacing="0" border="0">
590 <td class="md" nowrap valign="top"> bool <a class="el" href="classuserrec.html#o12">userrec::dns_done</a>
595 <table cellspacing=5 cellpadding=0 border=0>
603 True when <a class="el" href="classDNS.html">DNS</a> lookups are completed.
607 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>.
609 Referenced by <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
612 <a name="o9" doxytag="userrec::flood"></a><p>
613 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
616 <table cellpadding="0" cellspacing="0" border="0">
618 <td class="md" nowrap valign="top"> int <a class="el" href="classuserrec.html#o9">userrec::flood</a>
623 <table cellspacing=5 cellpadding=0 border=0>
631 Number of lines the user can place into the buffer (up to the global NetBufferSize bytes) before they are disconnected for excess flood.
635 Definition at line <a class="el" href="users_8h-source.html#l00143">143</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
637 Referenced by <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
640 <a name="o3" doxytag="userrec::fullname"></a><p>
641 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
644 <table cellpadding="0" cellspacing="0" border="0">
646 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o3">userrec::fullname</a>[128]
651 <table cellspacing=5 cellpadding=0 border=0>
663 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>.
665 Referenced by <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
668 <a name="o1" doxytag="userrec::ident"></a><p>
669 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
672 <table cellpadding="0" cellspacing="0" border="0">
674 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o1">userrec::ident</a>[64]
679 <table cellspacing=5 cellpadding=0 border=0>
687 The users ident reply.
691 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>.
693 Referenced by <a class="el" href="users_8cpp-source.html#l00056">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00063">GetFullRealHost()</a>, and <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
696 <a name="r0" doxytag="userrec::invites"></a><p>
697 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
700 <table cellpadding="0" cellspacing="0" border="0">
702 <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>
707 <table cellspacing=5 cellpadding=0 border=0>
715 A list of channels the user has a pending invite to.
719 Definition at line <a class="el" href="users_8h-source.html#l00095">95</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
721 Referenced by <a class="el" href="users_8cpp-source.html#l00083">InviteTo()</a>, <a class="el" href="users_8cpp-source.html#l00069">IsInvited()</a>, <a class="el" href="users_8cpp-source.html#l00090">RemoveInvite()</a>, and <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
724 <a name="o4" doxytag="userrec::modes"></a><p>
725 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
728 <table cellpadding="0" cellspacing="0" border="0">
730 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o4">userrec::modes</a>[MAXBUF]
735 <table cellspacing=5 cellpadding=0 border=0>
743 The user's mode string.
745 This may contain any of the following RFC characters: o, w, s, i Your module may define other mode characters as it sees fit.
747 Definition at line <a class="el" href="users_8h-source.html#l00121">121</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
749 Referenced by <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
752 <a name="o0" doxytag="userrec::nick"></a><p>
753 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
756 <table cellpadding="0" cellspacing="0" border="0">
758 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o0">userrec::nick</a>[NICKMAX]
763 <table cellspacing=5 cellpadding=0 border=0>
773 An invalid nickname indicates an unregistered connection prior to the NICK command.
775 Definition at line <a class="el" href="users_8h-source.html#l00102">102</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
777 Referenced by <a class="el" href="modules_8cpp-source.html#l00673">ConfigReader::DumpErrors()</a>, <a class="el" href="users_8cpp-source.html#l00056">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00063">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00396">Server::QuitUser()</a>, and <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
780 <a name="o11" doxytag="userrec::oper"></a><p>
781 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
784 <table cellpadding="0" cellspacing="0" border="0">
786 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o11">userrec::oper</a>[NICKMAX]
791 <table cellspacing=5 cellpadding=0 border=0>
799 The oper type they logged in as, if they are an oper.
801 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.
803 Definition at line <a class="el" href="users_8h-source.html#l00156">156</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
805 Referenced by <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
808 <a name="o8" doxytag="userrec::result"></a><p>
809 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
812 <table cellpadding="0" cellspacing="0" border="0">
814 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o8">userrec::result</a>[256]
819 <table cellspacing=5 cellpadding=0 border=0>
827 Stores the result of the last GetFullHost or GetRealHost call.
829 You may use this to increase the speed of use of this class.
831 Definition at line <a class="el" href="users_8h-source.html#l00137">137</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
833 Referenced by <a class="el" href="users_8cpp-source.html#l00056">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00063">GetFullRealHost()</a>, and <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
836 <a name="o6" doxytag="userrec::server"></a><p>
837 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
840 <table cellpadding="0" cellspacing="0" border="0">
842 <td class="md" nowrap valign="top"> char <a class="el" href="classuserrec.html#o6">userrec::server</a>[256]
847 <table cellspacing=5 cellpadding=0 border=0>
855 The server the user is connected to.
859 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>.
861 Referenced by <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
864 <a name="o10" doxytag="userrec::timeout"></a><p>
865 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
868 <table cellpadding="0" cellspacing="0" border="0">
870 <td class="md" nowrap valign="top"> unsigned long <a class="el" href="classuserrec.html#o10">userrec::timeout</a>
875 <table cellspacing=5 cellpadding=0 border=0>
883 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.
887 Definition at line <a class="el" href="users_8h-source.html#l00149">149</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
889 Referenced by <a class="el" href="users_8cpp-source.html#l00026">userrec()</a>. </td>
892 <hr>The documentation for this class was generated from the following files:<ul>
893 <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>
894 <hr size="1"><address style="align: right;"><small>Generated on Sat Apr 2 19:27:07 2005 for InspIRCd by
895 <a href="http://www.doxygen.org/index.html">
896 <img src="doxygen.png" alt="doxygen" align="middle" border=0 >
897 </a>1.3.3 </small></address>