]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - docs/module-doc/classDNS.html
Fixed 'fake direction' messages being put out by user->registered = 7 being set too...
[user/henk/code/inspircd.git] / docs / module-doc / classDNS.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>InspIRCd: DNS Class Reference</title>
4 <link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.4.4-20050815 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
8 <h1>DNS Class Reference</h1><!-- doxytag: class="DNS" -->The DNS class allows fast nonblocking resolution of hostnames and ip addresses.  
9 <a href="#_details">More...</a>
10 <p>
11 <code>#include &lt;<a class="el" href="dns_8h-source.html">dns.h</a>&gt;</code>
12 <p>
13 Collaboration diagram for DNS:<p><center><img src="classDNS__coll__graph.gif" border="0" usemap="#DNS__coll__map" alt="Collaboration graph"></center>
14 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classDNS-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
15 <tr><td></td></tr>
16 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
17 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#DNS_28_29">DNS</a> ()</td></tr>
18
19 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The default constructor uses dns addresses read from /etc/resolv.conf.  <a href="#DNS_28_29"></a><br></td></tr>
20 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#DNS_28std_3A_3Astring_20dnsserver_29">DNS</a> (<a class="el" href="namespaceirc.html#string">std::string</a> dnsserver)</td></tr>
21
22 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This constructor accepts a dns server address.  <a href="#DNS_28std_3A_3Astring_20dnsserver_29"></a><br></td></tr>
23 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#_7EDNS_28_29">~DNS</a> ()</td></tr>
24
25 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The destructor frees all used structures.  <a href="#_7EDNS_28_29"></a><br></td></tr>
26 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#ReverseLookup_28std_3A_3Astring_20ip_29">ReverseLookup</a> (<a class="el" href="namespaceirc.html#string">std::string</a> ip)</td></tr>
27
28 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method will start the reverse lookup of an ip given in dotted decimal format, e.g.  <a href="#ReverseLookup_28std_3A_3Astring_20ip_29"></a><br></td></tr>
29 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#ForwardLookup_28std_3A_3Astring_20host_29">ForwardLookup</a> (<a class="el" href="namespaceirc.html#string">std::string</a> host)</td></tr>
30
31 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method will start the forward lookup of a hostname, e.g.  <a href="#ForwardLookup_28std_3A_3Astring_20host_29"></a><br></td></tr>
32 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#HasResult_28_29">HasResult</a> ()</td></tr>
33
34 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method will return true when the lookup is completed.  <a href="#HasResult_28_29"></a><br></td></tr>
35 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#GetResult_28_29">GetResult</a> ()</td></tr>
36
37 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method returns the result of your query as a string, depending upon wether you called <a class="el" href="classDNS.html#ReverseLookup_28std_3A_3Astring_20ip_29">DNS::ReverseLookup()</a> or <a class="el" href="classDNS.html#ForwardLookup_28std_3A_3Astring_20host_29">DNS::ForwardLookup</a>.  <a href="#GetResult_28_29"></a><br></td></tr>
38 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#GetFD_28_29">GetFD</a> ()</td></tr>
39
40 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method returns the file handle used by the dns query socket or zero if the query is invalid for some reason, e.g.  <a href="#GetFD_28_29"></a><br></td></tr>
41 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#SetNS_28std_3A_3Astring_20dnsserver_29">SetNS</a> (<a class="el" href="namespaceirc.html#string">std::string</a> dnsserver)</td></tr>
42
43 <tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
44 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Finit_28_29">dns_init</a> ()</td></tr>
45
46 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Finit_5F_32_28const_20char_20_2Adnsserver_29">dns_init_2</a> (const char *dnsserver)</td></tr>
47
48 <tr><td class="memItemLeft" nowrap align="right" valign="top">in_addr *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Faton_34_28const_20char_20_2Aconst_20ipstring_29">dns_aton4</a> (const char *const ipstring)</td></tr>
49
50 <tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Fntoa_34_28const_20in_5Faddr_20_2Aconst_20ip_29">dns_ntoa4</a> (const in_addr *const ip)</td></tr>
51
52 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Fgetip_34_28const_20char_20_2Aconst_20name_29">dns_getip4</a> (const char *const name)</td></tr>
53
54 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Fgetip_34list_28const_20char_20_2Aconst_20name_29">dns_getip4list</a> (const char *const name)</td></tr>
55
56 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Fgetname_34_28const_20in_5Faddr_20_2Aconst_20ip_29">dns_getname4</a> (const in_addr *const ip)</td></tr>
57
58 <tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Fgetresult_28const_20int_20fd_29">dns_getresult</a> (const int <a class="el" href="classDNS.html#fd">fd</a>)</td></tr>
59
60 <tr><td class="memItemLeft" nowrap align="right" valign="top">in_addr *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Faton_34_5Fs_28const_20char_20_2Aconst_20ipstring_2C_20in_5Faddr_20_2Aconst_20ip_29">dns_aton4_s</a> (const char *const ipstring, in_addr *const ip)</td></tr>
61
62 <tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Fntoa_34_5Fs_28const_20in_5Faddr_20_2Aconst_20ip_2C_20char_20_2Aconst_20result_29">dns_ntoa4_s</a> (const in_addr *const ip, char *const <a class="el" href="classDNS.html#result">result</a>)</td></tr>
63
64 <tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Fgetresult_5Fs_28const_20int_20fd_2C_20char_20_2Aconst_20result_29">dns_getresult_s</a> (const int <a class="el" href="classDNS.html#fd">fd</a>, char *const <a class="el" href="classDNS.html#result">result</a>)</td></tr>
65
66 <tr><td class="memItemLeft" nowrap align="right" valign="top">in_addr *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Faton_34_5Fr_28const_20char_20_2Aconst_20ipstring_29">dns_aton4_r</a> (const char *const ipstring)</td></tr>
67
68 <tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Fntoa_34_5Fr_28const_20in_5Faddr_20_2Aconst_20ip_29">dns_ntoa4_r</a> (const in_addr *const ip)</td></tr>
69
70 <tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Fgetresult_5Fr_28const_20int_20fd_29">dns_getresult_r</a> (const int <a class="el" href="classDNS.html#fd">fd</a>)</td></tr>
71
72 <tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
73 <tr><td class="memItemLeft" nowrap align="right" valign="top">in_addr *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#binip">binip</a></td></tr>
74
75 <tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#result">result</a></td></tr>
76
77 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#t">t</a></td></tr>
78
79 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#fd">fd</a></td></tr>
80
81 </table>
82 <hr><a name="_details"></a><h2>Detailed Description</h2>
83 The DNS class allows fast nonblocking resolution of hostnames and ip addresses. 
84 <p>
85 It is based heavily upon firedns by Ian Gulliver.
86 <p>
87
88 <p>
89 Definition at line <a class="el" href="dns_8h-source.html#l00035">35</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
90 <a class="anchor" name="DNS_28_29"></a><!-- doxytag: member="DNS::DNS" ref="DNS_28_29" args="()" --><p>
91 <table class="mdTable" cellpadding="2" cellspacing="0">
92   <tr>
93     <td class="mdRow">
94       <table cellpadding="0" cellspacing="0" border="0">
95         <tr>
96           <td class="md" nowrap valign="top">DNS::DNS           </td>
97           <td class="md" valign="top">(&nbsp;</td>
98           <td class="mdname1" valign="top" nowrap>          </td>
99           <td class="md" valign="top">&nbsp;)&nbsp;</td>
100           <td class="md" nowrap></td>
101         </tr>
102       </table>
103     </td>
104   </tr>
105 </table>
106 <table cellspacing="5" cellpadding="0" border="0">
107   <tr>
108     <td>
109       &nbsp;
110     </td>
111     <td>
112
113 <p>
114 The default constructor uses dns addresses read from /etc/resolv.conf. 
115 <p>
116 Please note that it will re-read /etc/resolv.conf for each copy of the class you instantiate, causing disk access and slow lookups if you create a lot of them. Consider passing the constructor a server address as a parameter instead.    </td>
117   </tr>
118 </table>
119 <a class="anchor" name="DNS_28std_3A_3Astring_20dnsserver_29"></a><!-- doxytag: member="DNS::DNS" ref="DNS_28std_3A_3Astring_20dnsserver_29" args="(std::string dnsserver)" --><p>
120 <table class="mdTable" cellpadding="2" cellspacing="0">
121   <tr>
122     <td class="mdRow">
123       <table cellpadding="0" cellspacing="0" border="0">
124         <tr>
125           <td class="md" nowrap valign="top">DNS::DNS           </td>
126           <td class="md" valign="top">(&nbsp;</td>
127           <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
128           <td class="mdname1" valign="top" nowrap> <em>dnsserver</em>          </td>
129           <td class="md" valign="top">&nbsp;)&nbsp;</td>
130           <td class="md" nowrap></td>
131         </tr>
132       </table>
133     </td>
134   </tr>
135 </table>
136 <table cellspacing="5" cellpadding="0" border="0">
137   <tr>
138     <td>
139       &nbsp;
140     </td>
141     <td>
142
143 <p>
144 This constructor accepts a dns server address. 
145 <p>
146 The address must be in dotted decimal form, e.g. 1.2.3.4.    </td>
147   </tr>
148 </table>
149 <a class="anchor" name="_7EDNS_28_29"></a><!-- doxytag: member="DNS::~DNS" ref="_7EDNS_28_29" args="()" --><p>
150 <table class="mdTable" cellpadding="2" cellspacing="0">
151   <tr>
152     <td class="mdRow">
153       <table cellpadding="0" cellspacing="0" border="0">
154         <tr>
155           <td class="md" nowrap valign="top">DNS::~DNS           </td>
156           <td class="md" valign="top">(&nbsp;</td>
157           <td class="mdname1" valign="top" nowrap>          </td>
158           <td class="md" valign="top">&nbsp;)&nbsp;</td>
159           <td class="md" nowrap></td>
160         </tr>
161       </table>
162     </td>
163   </tr>
164 </table>
165 <table cellspacing="5" cellpadding="0" border="0">
166   <tr>
167     <td>
168       &nbsp;
169     </td>
170     <td>
171
172 <p>
173 The destructor frees all used structures. 
174 <p>
175     </td>
176   </tr>
177 </table>
178 <hr><h2>Member Function Documentation</h2>
179 <a class="anchor" name="dns_5Faton_34_28const_20char_20_2Aconst_20ipstring_29"></a><!-- doxytag: member="DNS::dns_aton4" ref="dns_5Faton_34_28const_20char_20_2Aconst_20ipstring_29" args="(const char *const ipstring)" --><p>
180 <table class="mdTable" cellpadding="2" cellspacing="0">
181   <tr>
182     <td class="mdRow">
183       <table cellpadding="0" cellspacing="0" border="0">
184         <tr>
185           <td class="md" nowrap valign="top">in_addr* DNS::dns_aton4           </td>
186           <td class="md" valign="top">(&nbsp;</td>
187           <td class="md" nowrap valign="top">const char *const &nbsp;</td>
188           <td class="mdname1" valign="top" nowrap> <em>ipstring</em>          </td>
189           <td class="md" valign="top">&nbsp;)&nbsp;</td>
190           <td class="md" nowrap><code> [private]</code></td>
191         </tr>
192       </table>
193     </td>
194   </tr>
195 </table>
196 <table cellspacing="5" cellpadding="0" border="0">
197   <tr>
198     <td>
199       &nbsp;
200     </td>
201     <td>
202
203 <p>
204     </td>
205   </tr>
206 </table>
207 <a class="anchor" name="dns_5Faton_34_5Fr_28const_20char_20_2Aconst_20ipstring_29"></a><!-- doxytag: member="DNS::dns_aton4_r" ref="dns_5Faton_34_5Fr_28const_20char_20_2Aconst_20ipstring_29" args="(const char *const ipstring)" --><p>
208 <table class="mdTable" cellpadding="2" cellspacing="0">
209   <tr>
210     <td class="mdRow">
211       <table cellpadding="0" cellspacing="0" border="0">
212         <tr>
213           <td class="md" nowrap valign="top">in_addr* DNS::dns_aton4_r           </td>
214           <td class="md" valign="top">(&nbsp;</td>
215           <td class="md" nowrap valign="top">const char *const &nbsp;</td>
216           <td class="mdname1" valign="top" nowrap> <em>ipstring</em>          </td>
217           <td class="md" valign="top">&nbsp;)&nbsp;</td>
218           <td class="md" nowrap><code> [private]</code></td>
219         </tr>
220       </table>
221     </td>
222   </tr>
223 </table>
224 <table cellspacing="5" cellpadding="0" border="0">
225   <tr>
226     <td>
227       &nbsp;
228     </td>
229     <td>
230
231 <p>
232     </td>
233   </tr>
234 </table>
235 <a class="anchor" name="dns_5Faton_34_5Fs_28const_20char_20_2Aconst_20ipstring_2C_20in_5Faddr_20_2Aconst_20ip_29"></a><!-- doxytag: member="DNS::dns_aton4_s" ref="dns_5Faton_34_5Fs_28const_20char_20_2Aconst_20ipstring_2C_20in_5Faddr_20_2Aconst_20ip_29" args="(const char *const ipstring, in_addr *const ip)" --><p>
236 <table class="mdTable" cellpadding="2" cellspacing="0">
237   <tr>
238     <td class="mdRow">
239       <table cellpadding="0" cellspacing="0" border="0">
240         <tr>
241           <td class="md" nowrap valign="top">in_addr* DNS::dns_aton4_s           </td>
242           <td class="md" valign="top">(&nbsp;</td>
243           <td class="md" nowrap valign="top">const char *const &nbsp;</td>
244           <td class="mdname" nowrap> <em>ipstring</em>, </td>
245         </tr>
246         <tr>
247           <td class="md" nowrap align="right"></td>
248           <td class="md"></td>
249           <td class="md" nowrap>in_addr *const &nbsp;</td>
250           <td class="mdname" nowrap> <em>ip</em></td>
251         </tr>
252         <tr>
253           <td class="md"></td>
254           <td class="md">)&nbsp;</td>
255           <td class="md" colspan="2"><code> [private]</code></td>
256         </tr>
257       </table>
258     </td>
259   </tr>
260 </table>
261 <table cellspacing="5" cellpadding="0" border="0">
262   <tr>
263     <td>
264       &nbsp;
265     </td>
266     <td>
267
268 <p>
269     </td>
270   </tr>
271 </table>
272 <a class="anchor" name="dns_5Fgetip_34_28const_20char_20_2Aconst_20name_29"></a><!-- doxytag: member="DNS::dns_getip4" ref="dns_5Fgetip_34_28const_20char_20_2Aconst_20name_29" args="(const char *const name)" --><p>
273 <table class="mdTable" cellpadding="2" cellspacing="0">
274   <tr>
275     <td class="mdRow">
276       <table cellpadding="0" cellspacing="0" border="0">
277         <tr>
278           <td class="md" nowrap valign="top">int DNS::dns_getip4           </td>
279           <td class="md" valign="top">(&nbsp;</td>
280           <td class="md" nowrap valign="top">const char *const &nbsp;</td>
281           <td class="mdname1" valign="top" nowrap> <em>name</em>          </td>
282           <td class="md" valign="top">&nbsp;)&nbsp;</td>
283           <td class="md" nowrap><code> [private]</code></td>
284         </tr>
285       </table>
286     </td>
287   </tr>
288 </table>
289 <table cellspacing="5" cellpadding="0" border="0">
290   <tr>
291     <td>
292       &nbsp;
293     </td>
294     <td>
295
296 <p>
297     </td>
298   </tr>
299 </table>
300 <a class="anchor" name="dns_5Fgetip_34list_28const_20char_20_2Aconst_20name_29"></a><!-- doxytag: member="DNS::dns_getip4list" ref="dns_5Fgetip_34list_28const_20char_20_2Aconst_20name_29" args="(const char *const name)" --><p>
301 <table class="mdTable" cellpadding="2" cellspacing="0">
302   <tr>
303     <td class="mdRow">
304       <table cellpadding="0" cellspacing="0" border="0">
305         <tr>
306           <td class="md" nowrap valign="top">int DNS::dns_getip4list           </td>
307           <td class="md" valign="top">(&nbsp;</td>
308           <td class="md" nowrap valign="top">const char *const &nbsp;</td>
309           <td class="mdname1" valign="top" nowrap> <em>name</em>          </td>
310           <td class="md" valign="top">&nbsp;)&nbsp;</td>
311           <td class="md" nowrap><code> [private]</code></td>
312         </tr>
313       </table>
314     </td>
315   </tr>
316 </table>
317 <table cellspacing="5" cellpadding="0" border="0">
318   <tr>
319     <td>
320       &nbsp;
321     </td>
322     <td>
323
324 <p>
325     </td>
326   </tr>
327 </table>
328 <a class="anchor" name="dns_5Fgetname_34_28const_20in_5Faddr_20_2Aconst_20ip_29"></a><!-- doxytag: member="DNS::dns_getname4" ref="dns_5Fgetname_34_28const_20in_5Faddr_20_2Aconst_20ip_29" args="(const in_addr *const ip)" --><p>
329 <table class="mdTable" cellpadding="2" cellspacing="0">
330   <tr>
331     <td class="mdRow">
332       <table cellpadding="0" cellspacing="0" border="0">
333         <tr>
334           <td class="md" nowrap valign="top">int DNS::dns_getname4           </td>
335           <td class="md" valign="top">(&nbsp;</td>
336           <td class="md" nowrap valign="top">const in_addr *const &nbsp;</td>
337           <td class="mdname1" valign="top" nowrap> <em>ip</em>          </td>
338           <td class="md" valign="top">&nbsp;)&nbsp;</td>
339           <td class="md" nowrap><code> [private]</code></td>
340         </tr>
341       </table>
342     </td>
343   </tr>
344 </table>
345 <table cellspacing="5" cellpadding="0" border="0">
346   <tr>
347     <td>
348       &nbsp;
349     </td>
350     <td>
351
352 <p>
353     </td>
354   </tr>
355 </table>
356 <a class="anchor" name="dns_5Fgetresult_28const_20int_20fd_29"></a><!-- doxytag: member="DNS::dns_getresult" ref="dns_5Fgetresult_28const_20int_20fd_29" args="(const int fd)" --><p>
357 <table class="mdTable" cellpadding="2" cellspacing="0">
358   <tr>
359     <td class="mdRow">
360       <table cellpadding="0" cellspacing="0" border="0">
361         <tr>
362           <td class="md" nowrap valign="top">char* DNS::dns_getresult           </td>
363           <td class="md" valign="top">(&nbsp;</td>
364           <td class="md" nowrap valign="top">const int&nbsp;</td>
365           <td class="mdname1" valign="top" nowrap> <em>fd</em>          </td>
366           <td class="md" valign="top">&nbsp;)&nbsp;</td>
367           <td class="md" nowrap><code> [private]</code></td>
368         </tr>
369       </table>
370     </td>
371   </tr>
372 </table>
373 <table cellspacing="5" cellpadding="0" border="0">
374   <tr>
375     <td>
376       &nbsp;
377     </td>
378     <td>
379
380 <p>
381     </td>
382   </tr>
383 </table>
384 <a class="anchor" name="dns_5Fgetresult_5Fr_28const_20int_20fd_29"></a><!-- doxytag: member="DNS::dns_getresult_r" ref="dns_5Fgetresult_5Fr_28const_20int_20fd_29" args="(const int fd)" --><p>
385 <table class="mdTable" cellpadding="2" cellspacing="0">
386   <tr>
387     <td class="mdRow">
388       <table cellpadding="0" cellspacing="0" border="0">
389         <tr>
390           <td class="md" nowrap valign="top">char* DNS::dns_getresult_r           </td>
391           <td class="md" valign="top">(&nbsp;</td>
392           <td class="md" nowrap valign="top">const int&nbsp;</td>
393           <td class="mdname1" valign="top" nowrap> <em>fd</em>          </td>
394           <td class="md" valign="top">&nbsp;)&nbsp;</td>
395           <td class="md" nowrap><code> [private]</code></td>
396         </tr>
397       </table>
398     </td>
399   </tr>
400 </table>
401 <table cellspacing="5" cellpadding="0" border="0">
402   <tr>
403     <td>
404       &nbsp;
405     </td>
406     <td>
407
408 <p>
409     </td>
410   </tr>
411 </table>
412 <a class="anchor" name="dns_5Fgetresult_5Fs_28const_20int_20fd_2C_20char_20_2Aconst_20result_29"></a><!-- doxytag: member="DNS::dns_getresult_s" ref="dns_5Fgetresult_5Fs_28const_20int_20fd_2C_20char_20_2Aconst_20result_29" args="(const int fd, char *const result)" --><p>
413 <table class="mdTable" cellpadding="2" cellspacing="0">
414   <tr>
415     <td class="mdRow">
416       <table cellpadding="0" cellspacing="0" border="0">
417         <tr>
418           <td class="md" nowrap valign="top">char* DNS::dns_getresult_s           </td>
419           <td class="md" valign="top">(&nbsp;</td>
420           <td class="md" nowrap valign="top">const int&nbsp;</td>
421           <td class="mdname" nowrap> <em>fd</em>, </td>
422         </tr>
423         <tr>
424           <td class="md" nowrap align="right"></td>
425           <td class="md"></td>
426           <td class="md" nowrap>char *const &nbsp;</td>
427           <td class="mdname" nowrap> <em>result</em></td>
428         </tr>
429         <tr>
430           <td class="md"></td>
431           <td class="md">)&nbsp;</td>
432           <td class="md" colspan="2"><code> [private]</code></td>
433         </tr>
434       </table>
435     </td>
436   </tr>
437 </table>
438 <table cellspacing="5" cellpadding="0" border="0">
439   <tr>
440     <td>
441       &nbsp;
442     </td>
443     <td>
444
445 <p>
446     </td>
447   </tr>
448 </table>
449 <a class="anchor" name="dns_5Finit_28_29"></a><!-- doxytag: member="DNS::dns_init" ref="dns_5Finit_28_29" args="()" --><p>
450 <table class="mdTable" cellpadding="2" cellspacing="0">
451   <tr>
452     <td class="mdRow">
453       <table cellpadding="0" cellspacing="0" border="0">
454         <tr>
455           <td class="md" nowrap valign="top">void DNS::dns_init           </td>
456           <td class="md" valign="top">(&nbsp;</td>
457           <td class="mdname1" valign="top" nowrap>          </td>
458           <td class="md" valign="top">&nbsp;)&nbsp;</td>
459           <td class="md" nowrap><code> [private]</code></td>
460         </tr>
461       </table>
462     </td>
463   </tr>
464 </table>
465 <table cellspacing="5" cellpadding="0" border="0">
466   <tr>
467     <td>
468       &nbsp;
469     </td>
470     <td>
471
472 <p>
473     </td>
474   </tr>
475 </table>
476 <a class="anchor" name="dns_5Finit_5F_32_28const_20char_20_2Adnsserver_29"></a><!-- doxytag: member="DNS::dns_init_2" ref="dns_5Finit_5F_32_28const_20char_20_2Adnsserver_29" args="(const char *dnsserver)" --><p>
477 <table class="mdTable" cellpadding="2" cellspacing="0">
478   <tr>
479     <td class="mdRow">
480       <table cellpadding="0" cellspacing="0" border="0">
481         <tr>
482           <td class="md" nowrap valign="top">void DNS::dns_init_2           </td>
483           <td class="md" valign="top">(&nbsp;</td>
484           <td class="md" nowrap valign="top">const char *&nbsp;</td>
485           <td class="mdname1" valign="top" nowrap> <em>dnsserver</em>          </td>
486           <td class="md" valign="top">&nbsp;)&nbsp;</td>
487           <td class="md" nowrap><code> [private]</code></td>
488         </tr>
489       </table>
490     </td>
491   </tr>
492 </table>
493 <table cellspacing="5" cellpadding="0" border="0">
494   <tr>
495     <td>
496       &nbsp;
497     </td>
498     <td>
499
500 <p>
501     </td>
502   </tr>
503 </table>
504 <a class="anchor" name="dns_5Fntoa_34_28const_20in_5Faddr_20_2Aconst_20ip_29"></a><!-- doxytag: member="DNS::dns_ntoa4" ref="dns_5Fntoa_34_28const_20in_5Faddr_20_2Aconst_20ip_29" args="(const in_addr *const ip)" --><p>
505 <table class="mdTable" cellpadding="2" cellspacing="0">
506   <tr>
507     <td class="mdRow">
508       <table cellpadding="0" cellspacing="0" border="0">
509         <tr>
510           <td class="md" nowrap valign="top">char* DNS::dns_ntoa4           </td>
511           <td class="md" valign="top">(&nbsp;</td>
512           <td class="md" nowrap valign="top">const in_addr *const &nbsp;</td>
513           <td class="mdname1" valign="top" nowrap> <em>ip</em>          </td>
514           <td class="md" valign="top">&nbsp;)&nbsp;</td>
515           <td class="md" nowrap><code> [private]</code></td>
516         </tr>
517       </table>
518     </td>
519   </tr>
520 </table>
521 <table cellspacing="5" cellpadding="0" border="0">
522   <tr>
523     <td>
524       &nbsp;
525     </td>
526     <td>
527
528 <p>
529     </td>
530   </tr>
531 </table>
532 <a class="anchor" name="dns_5Fntoa_34_5Fr_28const_20in_5Faddr_20_2Aconst_20ip_29"></a><!-- doxytag: member="DNS::dns_ntoa4_r" ref="dns_5Fntoa_34_5Fr_28const_20in_5Faddr_20_2Aconst_20ip_29" args="(const in_addr *const ip)" --><p>
533 <table class="mdTable" cellpadding="2" cellspacing="0">
534   <tr>
535     <td class="mdRow">
536       <table cellpadding="0" cellspacing="0" border="0">
537         <tr>
538           <td class="md" nowrap valign="top">char* DNS::dns_ntoa4_r           </td>
539           <td class="md" valign="top">(&nbsp;</td>
540           <td class="md" nowrap valign="top">const in_addr *const &nbsp;</td>
541           <td class="mdname1" valign="top" nowrap> <em>ip</em>          </td>
542           <td class="md" valign="top">&nbsp;)&nbsp;</td>
543           <td class="md" nowrap><code> [private]</code></td>
544         </tr>
545       </table>
546     </td>
547   </tr>
548 </table>
549 <table cellspacing="5" cellpadding="0" border="0">
550   <tr>
551     <td>
552       &nbsp;
553     </td>
554     <td>
555
556 <p>
557     </td>
558   </tr>
559 </table>
560 <a class="anchor" name="dns_5Fntoa_34_5Fs_28const_20in_5Faddr_20_2Aconst_20ip_2C_20char_20_2Aconst_20result_29"></a><!-- doxytag: member="DNS::dns_ntoa4_s" ref="dns_5Fntoa_34_5Fs_28const_20in_5Faddr_20_2Aconst_20ip_2C_20char_20_2Aconst_20result_29" args="(const in_addr *const ip, char *const result)" --><p>
561 <table class="mdTable" cellpadding="2" cellspacing="0">
562   <tr>
563     <td class="mdRow">
564       <table cellpadding="0" cellspacing="0" border="0">
565         <tr>
566           <td class="md" nowrap valign="top">char* DNS::dns_ntoa4_s           </td>
567           <td class="md" valign="top">(&nbsp;</td>
568           <td class="md" nowrap valign="top">const in_addr *const &nbsp;</td>
569           <td class="mdname" nowrap> <em>ip</em>, </td>
570         </tr>
571         <tr>
572           <td class="md" nowrap align="right"></td>
573           <td class="md"></td>
574           <td class="md" nowrap>char *const &nbsp;</td>
575           <td class="mdname" nowrap> <em>result</em></td>
576         </tr>
577         <tr>
578           <td class="md"></td>
579           <td class="md">)&nbsp;</td>
580           <td class="md" colspan="2"><code> [private]</code></td>
581         </tr>
582       </table>
583     </td>
584   </tr>
585 </table>
586 <table cellspacing="5" cellpadding="0" border="0">
587   <tr>
588     <td>
589       &nbsp;
590     </td>
591     <td>
592
593 <p>
594     </td>
595   </tr>
596 </table>
597 <a class="anchor" name="ForwardLookup_28std_3A_3Astring_20host_29"></a><!-- doxytag: member="DNS::ForwardLookup" ref="ForwardLookup_28std_3A_3Astring_20host_29" args="(std::string host)" --><p>
598 <table class="mdTable" cellpadding="2" cellspacing="0">
599   <tr>
600     <td class="mdRow">
601       <table cellpadding="0" cellspacing="0" border="0">
602         <tr>
603           <td class="md" nowrap valign="top">bool DNS::ForwardLookup           </td>
604           <td class="md" valign="top">(&nbsp;</td>
605           <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
606           <td class="mdname1" valign="top" nowrap> <em>host</em>          </td>
607           <td class="md" valign="top">&nbsp;)&nbsp;</td>
608           <td class="md" nowrap></td>
609         </tr>
610       </table>
611     </td>
612   </tr>
613 </table>
614 <table cellspacing="5" cellpadding="0" border="0">
615   <tr>
616     <td>
617       &nbsp;
618     </td>
619     <td>
620
621 <p>
622 This method will start the forward lookup of a hostname, e.g. 
623 <p>
624 www.inspircd.org, and returns true if the lookup was successfully initiated.    </td>
625   </tr>
626 </table>
627 <a class="anchor" name="GetFD_28_29"></a><!-- doxytag: member="DNS::GetFD" ref="GetFD_28_29" args="()" --><p>
628 <table class="mdTable" cellpadding="2" cellspacing="0">
629   <tr>
630     <td class="mdRow">
631       <table cellpadding="0" cellspacing="0" border="0">
632         <tr>
633           <td class="md" nowrap valign="top">int DNS::GetFD           </td>
634           <td class="md" valign="top">(&nbsp;</td>
635           <td class="mdname1" valign="top" nowrap>          </td>
636           <td class="md" valign="top">&nbsp;)&nbsp;</td>
637           <td class="md" nowrap></td>
638         </tr>
639       </table>
640     </td>
641   </tr>
642 </table>
643 <table cellspacing="5" cellpadding="0" border="0">
644   <tr>
645     <td>
646       &nbsp;
647     </td>
648     <td>
649
650 <p>
651 This method returns the file handle used by the dns query socket or zero if the query is invalid for some reason, e.g. 
652 <p>
653 the dns server not responding.    </td>
654   </tr>
655 </table>
656 <a class="anchor" name="GetResult_28_29"></a><!-- doxytag: member="DNS::GetResult" ref="GetResult_28_29" args="()" --><p>
657 <table class="mdTable" cellpadding="2" cellspacing="0">
658   <tr>
659     <td class="mdRow">
660       <table cellpadding="0" cellspacing="0" border="0">
661         <tr>
662           <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> DNS::GetResult           </td>
663           <td class="md" valign="top">(&nbsp;</td>
664           <td class="mdname1" valign="top" nowrap>          </td>
665           <td class="md" valign="top">&nbsp;)&nbsp;</td>
666           <td class="md" nowrap></td>
667         </tr>
668       </table>
669     </td>
670   </tr>
671 </table>
672 <table cellspacing="5" cellpadding="0" border="0">
673   <tr>
674     <td>
675       &nbsp;
676     </td>
677     <td>
678
679 <p>
680 This method returns the result of your query as a string, depending upon wether you called <a class="el" href="classDNS.html#ReverseLookup_28std_3A_3Astring_20ip_29">DNS::ReverseLookup()</a> or <a class="el" href="classDNS.html#ForwardLookup_28std_3A_3Astring_20host_29">DNS::ForwardLookup</a>. 
681 <p>
682     </td>
683   </tr>
684 </table>
685 <a class="anchor" name="HasResult_28_29"></a><!-- doxytag: member="DNS::HasResult" ref="HasResult_28_29" args="()" --><p>
686 <table class="mdTable" cellpadding="2" cellspacing="0">
687   <tr>
688     <td class="mdRow">
689       <table cellpadding="0" cellspacing="0" border="0">
690         <tr>
691           <td class="md" nowrap valign="top">bool DNS::HasResult           </td>
692           <td class="md" valign="top">(&nbsp;</td>
693           <td class="mdname1" valign="top" nowrap>          </td>
694           <td class="md" valign="top">&nbsp;)&nbsp;</td>
695           <td class="md" nowrap></td>
696         </tr>
697       </table>
698     </td>
699   </tr>
700 </table>
701 <table cellspacing="5" cellpadding="0" border="0">
702   <tr>
703     <td>
704       &nbsp;
705     </td>
706     <td>
707
708 <p>
709 This method will return true when the lookup is completed. 
710 <p>
711 It uses poll internally to determine the status of the socket.    </td>
712   </tr>
713 </table>
714 <a class="anchor" name="ReverseLookup_28std_3A_3Astring_20ip_29"></a><!-- doxytag: member="DNS::ReverseLookup" ref="ReverseLookup_28std_3A_3Astring_20ip_29" args="(std::string ip)" --><p>
715 <table class="mdTable" cellpadding="2" cellspacing="0">
716   <tr>
717     <td class="mdRow">
718       <table cellpadding="0" cellspacing="0" border="0">
719         <tr>
720           <td class="md" nowrap valign="top">bool DNS::ReverseLookup           </td>
721           <td class="md" valign="top">(&nbsp;</td>
722           <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
723           <td class="mdname1" valign="top" nowrap> <em>ip</em>          </td>
724           <td class="md" valign="top">&nbsp;)&nbsp;</td>
725           <td class="md" nowrap></td>
726         </tr>
727       </table>
728     </td>
729   </tr>
730 </table>
731 <table cellspacing="5" cellpadding="0" border="0">
732   <tr>
733     <td>
734       &nbsp;
735     </td>
736     <td>
737
738 <p>
739 This method will start the reverse lookup of an ip given in dotted decimal format, e.g. 
740 <p>
741 1.2.3.4, and returns true if the lookup was successfully initiated.    </td>
742   </tr>
743 </table>
744 <a class="anchor" name="SetNS_28std_3A_3Astring_20dnsserver_29"></a><!-- doxytag: member="DNS::SetNS" ref="SetNS_28std_3A_3Astring_20dnsserver_29" args="(std::string dnsserver)" --><p>
745 <table class="mdTable" cellpadding="2" cellspacing="0">
746   <tr>
747     <td class="mdRow">
748       <table cellpadding="0" cellspacing="0" border="0">
749         <tr>
750           <td class="md" nowrap valign="top">void DNS::SetNS           </td>
751           <td class="md" valign="top">(&nbsp;</td>
752           <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
753           <td class="mdname1" valign="top" nowrap> <em>dnsserver</em>          </td>
754           <td class="md" valign="top">&nbsp;)&nbsp;</td>
755           <td class="md" nowrap></td>
756         </tr>
757       </table>
758     </td>
759   </tr>
760 </table>
761 <table cellspacing="5" cellpadding="0" border="0">
762   <tr>
763     <td>
764       &nbsp;
765     </td>
766     <td>
767
768 <p>
769     </td>
770   </tr>
771 </table>
772 <hr><h2>Member Data Documentation</h2>
773 <a class="anchor" name="binip"></a><!-- doxytag: member="DNS::binip" ref="binip" args="" --><p>
774 <table class="mdTable" cellpadding="2" cellspacing="0">
775   <tr>
776     <td class="mdRow">
777       <table cellpadding="0" cellspacing="0" border="0">
778         <tr>
779           <td class="md" nowrap valign="top">in_addr* <a class="el" href="classDNS.html#binip">DNS::binip</a><code> [private]</code>          </td>
780         </tr>
781       </table>
782     </td>
783   </tr>
784 </table>
785 <table cellspacing="5" cellpadding="0" border="0">
786   <tr>
787     <td>
788       &nbsp;
789     </td>
790     <td>
791
792 <p>
793
794 <p>
795 Definition at line <a class="el" href="dns_8h-source.html#l00038">38</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>.    </td>
796   </tr>
797 </table>
798 <a class="anchor" name="fd"></a><!-- doxytag: member="DNS::fd" ref="fd" args="" --><p>
799 <table class="mdTable" cellpadding="2" cellspacing="0">
800   <tr>
801     <td class="mdRow">
802       <table cellpadding="0" cellspacing="0" border="0">
803         <tr>
804           <td class="md" nowrap valign="top">int <a class="el" href="classDNS.html#fd">DNS::fd</a><code> [private]</code>          </td>
805         </tr>
806       </table>
807     </td>
808   </tr>
809 </table>
810 <table cellspacing="5" cellpadding="0" border="0">
811   <tr>
812     <td>
813       &nbsp;
814     </td>
815     <td>
816
817 <p>
818
819 <p>
820 Definition at line <a class="el" href="dns_8h-source.html#l00042">42</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>.    </td>
821   </tr>
822 </table>
823 <a class="anchor" name="result"></a><!-- doxytag: member="DNS::result" ref="result" args="" --><p>
824 <table class="mdTable" cellpadding="2" cellspacing="0">
825   <tr>
826     <td class="mdRow">
827       <table cellpadding="0" cellspacing="0" border="0">
828         <tr>
829           <td class="md" nowrap valign="top">char* <a class="el" href="classDNS.html#result">DNS::result</a><code> [private]</code>          </td>
830         </tr>
831       </table>
832     </td>
833   </tr>
834 </table>
835 <table cellspacing="5" cellpadding="0" border="0">
836   <tr>
837     <td>
838       &nbsp;
839     </td>
840     <td>
841
842 <p>
843
844 <p>
845 Definition at line <a class="el" href="dns_8h-source.html#l00039">39</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>.    </td>
846   </tr>
847 </table>
848 <a class="anchor" name="t"></a><!-- doxytag: member="DNS::t" ref="t" args="" --><p>
849 <table class="mdTable" cellpadding="2" cellspacing="0">
850   <tr>
851     <td class="mdRow">
852       <table cellpadding="0" cellspacing="0" border="0">
853         <tr>
854           <td class="md" nowrap valign="top">int <a class="el" href="classDNS.html#t">DNS::t</a><code> [private]</code>          </td>
855         </tr>
856       </table>
857     </td>
858   </tr>
859 </table>
860 <table cellspacing="5" cellpadding="0" border="0">
861   <tr>
862     <td>
863       &nbsp;
864     </td>
865     <td>
866
867 <p>
868
869 <p>
870 Definition at line <a class="el" href="dns_8h-source.html#l00040">40</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>.    </td>
871   </tr>
872 </table>
873 <hr>The documentation for this class was generated from the following file:<ul>
874 <li><a class="el" href="dns_8h-source.html">dns.h</a></ul>
875 <hr size="1"><address style="align: right;"><small>Generated on Sun Nov 27 01:43:25 2005 for InspIRCd by&nbsp;
876 <a href="http://www.doxygen.org/index.html">
877 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
878 </body>
879 </html>