]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - docs/module-doc/classDNS.html
Re-added the dot graphs again
[user/henk/code/inspircd.git] / docs / module-doc / classDNS.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>InspIRCd: DNS class Reference</title>
4 <link href="inspircd.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.3.3 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
8 <h1>DNS Class Reference</h1>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#a0">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. </em> <a href="#a0"></a><em><br><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#a1">DNS</a> (std::string dnsserver)</td></tr>
21
22 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This constructor accepts a dns server address. </em> <a href="#a1"></a><em><br><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#a2">~DNS</a> ()</td></tr>
24
25 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The destructor frees all used structures. </em> <a href="#a2"></a><em><br><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#a3">ReverseLookup</a> (std::string 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. </em> <a href="#a3"></a><em><br><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#a4">ForwardLookup</a> (std::string 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. </em> <a href="#a4"></a><em><br><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#a5">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. </em> <a href="#a5"></a><em><br><br></td></tr>
35 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#a6">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#a3">DNS::ReverseLookup()</a> or <a class="el" href="classDNS.html#a4">DNS::ForwardLookup</a>. </em> <a href="#a6"></a><em><br><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#a7">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. </em> <a href="#a7"></a><em><br><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#a8">SetNS</a> (std::string 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#d0">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#d1">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#d2">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#d3">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#d4">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#d5">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#d6">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#d7">dns_getresult</a> (const int <a class="el" href="classDNS.html#r3">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#d8">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#d9">dns_ntoa4_s</a> (const in_addr *const ip, char *const <a class="el" href="classDNS.html#r1">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#d10">dns_getresult_s</a> (const int <a class="el" href="classDNS.html#r3">fd</a>, char *const <a class="el" href="classDNS.html#r1">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#d11">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#d12">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#d13">dns_getresult_r</a> (const int <a class="el" href="classDNS.html#r3">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#r0">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#r1">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#r2">t</a></td></tr>
78
79 <tr><td class="memItemLeft" nowrap align=right valign=top>unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classDNS.html#r3">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 name="a0" doxytag="DNS::DNS"></a><p>
91 <table class="mdTable" width="100%" 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
103       </table>
104     </td>
105   </tr>
106 </table>
107 <table cellspacing=5 cellpadding=0 border=0>
108   <tr>
109     <td>
110       &nbsp;
111     </td>
112     <td>
113
114 <p>
115 The default constructor uses dns addresses read from /etc/resolv.conf. 
116 <p>
117 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>
118   </tr>
119 </table>
120 <a name="a1" doxytag="DNS::DNS"></a><p>
121 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
122   <tr>
123     <td class="mdRow">
124       <table cellpadding="0" cellspacing="0" border="0">
125         <tr>
126           <td class="md" nowrap valign="top"> DNS::DNS </td>
127           <td class="md" valign="top">(&nbsp;</td>
128           <td class="md" nowrap valign="top">std::string&nbsp;</td>
129           <td class="mdname1" valign="top" nowrap> <em>dnsserver</em>          </td>
130           <td class="md" valign="top">&nbsp;)&nbsp;</td>
131           <td class="md" nowrap></td>
132         </tr>
133
134       </table>
135     </td>
136   </tr>
137 </table>
138 <table cellspacing=5 cellpadding=0 border=0>
139   <tr>
140     <td>
141       &nbsp;
142     </td>
143     <td>
144
145 <p>
146 This constructor accepts a dns server address. 
147 <p>
148 The address must be in dotted decimal form, e.g. 1.2.3.4.    </td>
149   </tr>
150 </table>
151 <a name="a2" doxytag="DNS::~DNS"></a><p>
152 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
153   <tr>
154     <td class="mdRow">
155       <table cellpadding="0" cellspacing="0" border="0">
156         <tr>
157           <td class="md" nowrap valign="top"> DNS::~<a class="el" href="classDNS.html">DNS</a> </td>
158           <td class="md" valign="top">(&nbsp;</td>
159           <td class="mdname1" valign="top" nowrap>          </td>
160           <td class="md" valign="top">&nbsp;)&nbsp;</td>
161           <td class="md" nowrap></td>
162         </tr>
163
164       </table>
165     </td>
166   </tr>
167 </table>
168 <table cellspacing=5 cellpadding=0 border=0>
169   <tr>
170     <td>
171       &nbsp;
172     </td>
173     <td>
174
175 <p>
176 The destructor frees all used structures. 
177 <p>
178     </td>
179   </tr>
180 </table>
181 <hr><h2>Member Function Documentation</h2>
182 <a name="d2" doxytag="DNS::dns_aton4"></a><p>
183 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
184   <tr>
185     <td class="mdRow">
186       <table cellpadding="0" cellspacing="0" border="0">
187         <tr>
188           <td class="md" nowrap valign="top"> in_addr* DNS::dns_aton4 </td>
189           <td class="md" valign="top">(&nbsp;</td>
190           <td class="md" nowrap valign="top">const char *const&nbsp;</td>
191           <td class="mdname1" valign="top" nowrap> <em>ipstring</em>          </td>
192           <td class="md" valign="top">&nbsp;)&nbsp;</td>
193           <td class="md" nowrap><code> [private]</code></td>
194         </tr>
195
196       </table>
197     </td>
198   </tr>
199 </table>
200 <table cellspacing=5 cellpadding=0 border=0>
201   <tr>
202     <td>
203       &nbsp;
204     </td>
205     <td>
206
207 <p>
208     </td>
209   </tr>
210 </table>
211 <a name="d11" doxytag="DNS::dns_aton4_r"></a><p>
212 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
213   <tr>
214     <td class="mdRow">
215       <table cellpadding="0" cellspacing="0" border="0">
216         <tr>
217           <td class="md" nowrap valign="top"> in_addr* DNS::dns_aton4_r </td>
218           <td class="md" valign="top">(&nbsp;</td>
219           <td class="md" nowrap valign="top">const char *const&nbsp;</td>
220           <td class="mdname1" valign="top" nowrap> <em>ipstring</em>          </td>
221           <td class="md" valign="top">&nbsp;)&nbsp;</td>
222           <td class="md" nowrap><code> [private]</code></td>
223         </tr>
224
225       </table>
226     </td>
227   </tr>
228 </table>
229 <table cellspacing=5 cellpadding=0 border=0>
230   <tr>
231     <td>
232       &nbsp;
233     </td>
234     <td>
235
236 <p>
237     </td>
238   </tr>
239 </table>
240 <a name="d8" doxytag="DNS::dns_aton4_s"></a><p>
241 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
242   <tr>
243     <td class="mdRow">
244       <table cellpadding="0" cellspacing="0" border="0">
245         <tr>
246           <td class="md" nowrap valign="top"> in_addr* DNS::dns_aton4_s </td>
247           <td class="md" valign="top">(&nbsp;</td>
248           <td class="md" nowrap valign="top">const char *const&nbsp;</td>
249           <td class="mdname" nowrap> <em>ipstring</em>, </td>
250         </tr>
251         <tr>
252           <td></td>
253           <td></td>
254           <td class="md" nowrap>in_addr *const&nbsp;</td>
255           <td class="mdname" nowrap> <em>ip</em></td>
256         </tr>
257         <tr>
258           <td></td>
259           <td class="md">)&nbsp;</td>
260           <td class="md" colspan="2"><code> [private]</code></td>
261         </tr>
262
263       </table>
264     </td>
265   </tr>
266 </table>
267 <table cellspacing=5 cellpadding=0 border=0>
268   <tr>
269     <td>
270       &nbsp;
271     </td>
272     <td>
273
274 <p>
275     </td>
276   </tr>
277 </table>
278 <a name="d4" doxytag="DNS::dns_getip4"></a><p>
279 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
280   <tr>
281     <td class="mdRow">
282       <table cellpadding="0" cellspacing="0" border="0">
283         <tr>
284           <td class="md" nowrap valign="top"> int DNS::dns_getip4 </td>
285           <td class="md" valign="top">(&nbsp;</td>
286           <td class="md" nowrap valign="top">const char *const&nbsp;</td>
287           <td class="mdname1" valign="top" nowrap> <em>name</em>          </td>
288           <td class="md" valign="top">&nbsp;)&nbsp;</td>
289           <td class="md" nowrap><code> [private]</code></td>
290         </tr>
291
292       </table>
293     </td>
294   </tr>
295 </table>
296 <table cellspacing=5 cellpadding=0 border=0>
297   <tr>
298     <td>
299       &nbsp;
300     </td>
301     <td>
302
303 <p>
304     </td>
305   </tr>
306 </table>
307 <a name="d5" doxytag="DNS::dns_getip4list"></a><p>
308 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
309   <tr>
310     <td class="mdRow">
311       <table cellpadding="0" cellspacing="0" border="0">
312         <tr>
313           <td class="md" nowrap valign="top"> int DNS::dns_getip4list </td>
314           <td class="md" valign="top">(&nbsp;</td>
315           <td class="md" nowrap valign="top">const char *const&nbsp;</td>
316           <td class="mdname1" valign="top" nowrap> <em>name</em>          </td>
317           <td class="md" valign="top">&nbsp;)&nbsp;</td>
318           <td class="md" nowrap><code> [private]</code></td>
319         </tr>
320
321       </table>
322     </td>
323   </tr>
324 </table>
325 <table cellspacing=5 cellpadding=0 border=0>
326   <tr>
327     <td>
328       &nbsp;
329     </td>
330     <td>
331
332 <p>
333     </td>
334   </tr>
335 </table>
336 <a name="d6" doxytag="DNS::dns_getname4"></a><p>
337 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
338   <tr>
339     <td class="mdRow">
340       <table cellpadding="0" cellspacing="0" border="0">
341         <tr>
342           <td class="md" nowrap valign="top"> int DNS::dns_getname4 </td>
343           <td class="md" valign="top">(&nbsp;</td>
344           <td class="md" nowrap valign="top">const in_addr *const&nbsp;</td>
345           <td class="mdname1" valign="top" nowrap> <em>ip</em>          </td>
346           <td class="md" valign="top">&nbsp;)&nbsp;</td>
347           <td class="md" nowrap><code> [private]</code></td>
348         </tr>
349
350       </table>
351     </td>
352   </tr>
353 </table>
354 <table cellspacing=5 cellpadding=0 border=0>
355   <tr>
356     <td>
357       &nbsp;
358     </td>
359     <td>
360
361 <p>
362     </td>
363   </tr>
364 </table>
365 <a name="d7" doxytag="DNS::dns_getresult"></a><p>
366 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
367   <tr>
368     <td class="mdRow">
369       <table cellpadding="0" cellspacing="0" border="0">
370         <tr>
371           <td class="md" nowrap valign="top"> char* DNS::dns_getresult </td>
372           <td class="md" valign="top">(&nbsp;</td>
373           <td class="md" nowrap valign="top">const int&nbsp;</td>
374           <td class="mdname1" valign="top" nowrap> <em>fd</em>          </td>
375           <td class="md" valign="top">&nbsp;)&nbsp;</td>
376           <td class="md" nowrap><code> [private]</code></td>
377         </tr>
378
379       </table>
380     </td>
381   </tr>
382 </table>
383 <table cellspacing=5 cellpadding=0 border=0>
384   <tr>
385     <td>
386       &nbsp;
387     </td>
388     <td>
389
390 <p>
391     </td>
392   </tr>
393 </table>
394 <a name="d13" doxytag="DNS::dns_getresult_r"></a><p>
395 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
396   <tr>
397     <td class="mdRow">
398       <table cellpadding="0" cellspacing="0" border="0">
399         <tr>
400           <td class="md" nowrap valign="top"> char* DNS::dns_getresult_r </td>
401           <td class="md" valign="top">(&nbsp;</td>
402           <td class="md" nowrap valign="top">const int&nbsp;</td>
403           <td class="mdname1" valign="top" nowrap> <em>fd</em>          </td>
404           <td class="md" valign="top">&nbsp;)&nbsp;</td>
405           <td class="md" nowrap><code> [private]</code></td>
406         </tr>
407
408       </table>
409     </td>
410   </tr>
411 </table>
412 <table cellspacing=5 cellpadding=0 border=0>
413   <tr>
414     <td>
415       &nbsp;
416     </td>
417     <td>
418
419 <p>
420     </td>
421   </tr>
422 </table>
423 <a name="d10" doxytag="DNS::dns_getresult_s"></a><p>
424 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
425   <tr>
426     <td class="mdRow">
427       <table cellpadding="0" cellspacing="0" border="0">
428         <tr>
429           <td class="md" nowrap valign="top"> char* DNS::dns_getresult_s </td>
430           <td class="md" valign="top">(&nbsp;</td>
431           <td class="md" nowrap valign="top">const int&nbsp;</td>
432           <td class="mdname" nowrap> <em>fd</em>, </td>
433         </tr>
434         <tr>
435           <td></td>
436           <td></td>
437           <td class="md" nowrap>char *const&nbsp;</td>
438           <td class="mdname" nowrap> <em>result</em></td>
439         </tr>
440         <tr>
441           <td></td>
442           <td class="md">)&nbsp;</td>
443           <td class="md" colspan="2"><code> [private]</code></td>
444         </tr>
445
446       </table>
447     </td>
448   </tr>
449 </table>
450 <table cellspacing=5 cellpadding=0 border=0>
451   <tr>
452     <td>
453       &nbsp;
454     </td>
455     <td>
456
457 <p>
458     </td>
459   </tr>
460 </table>
461 <a name="d0" doxytag="DNS::dns_init"></a><p>
462 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
463   <tr>
464     <td class="mdRow">
465       <table cellpadding="0" cellspacing="0" border="0">
466         <tr>
467           <td class="md" nowrap valign="top"> void DNS::dns_init </td>
468           <td class="md" valign="top">(&nbsp;</td>
469           <td class="mdname1" valign="top" nowrap>          </td>
470           <td class="md" valign="top">&nbsp;)&nbsp;</td>
471           <td class="md" nowrap><code> [private]</code></td>
472         </tr>
473
474       </table>
475     </td>
476   </tr>
477 </table>
478 <table cellspacing=5 cellpadding=0 border=0>
479   <tr>
480     <td>
481       &nbsp;
482     </td>
483     <td>
484
485 <p>
486     </td>
487   </tr>
488 </table>
489 <a name="d1" doxytag="DNS::dns_init_2"></a><p>
490 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
491   <tr>
492     <td class="mdRow">
493       <table cellpadding="0" cellspacing="0" border="0">
494         <tr>
495           <td class="md" nowrap valign="top"> void DNS::dns_init_2 </td>
496           <td class="md" valign="top">(&nbsp;</td>
497           <td class="md" nowrap valign="top">const char *&nbsp;</td>
498           <td class="mdname1" valign="top" nowrap> <em>dnsserver</em>          </td>
499           <td class="md" valign="top">&nbsp;)&nbsp;</td>
500           <td class="md" nowrap><code> [private]</code></td>
501         </tr>
502
503       </table>
504     </td>
505   </tr>
506 </table>
507 <table cellspacing=5 cellpadding=0 border=0>
508   <tr>
509     <td>
510       &nbsp;
511     </td>
512     <td>
513
514 <p>
515     </td>
516   </tr>
517 </table>
518 <a name="d3" doxytag="DNS::dns_ntoa4"></a><p>
519 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
520   <tr>
521     <td class="mdRow">
522       <table cellpadding="0" cellspacing="0" border="0">
523         <tr>
524           <td class="md" nowrap valign="top"> char* DNS::dns_ntoa4 </td>
525           <td class="md" valign="top">(&nbsp;</td>
526           <td class="md" nowrap valign="top">const in_addr *const&nbsp;</td>
527           <td class="mdname1" valign="top" nowrap> <em>ip</em>          </td>
528           <td class="md" valign="top">&nbsp;)&nbsp;</td>
529           <td class="md" nowrap><code> [private]</code></td>
530         </tr>
531
532       </table>
533     </td>
534   </tr>
535 </table>
536 <table cellspacing=5 cellpadding=0 border=0>
537   <tr>
538     <td>
539       &nbsp;
540     </td>
541     <td>
542
543 <p>
544     </td>
545   </tr>
546 </table>
547 <a name="d12" doxytag="DNS::dns_ntoa4_r"></a><p>
548 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
549   <tr>
550     <td class="mdRow">
551       <table cellpadding="0" cellspacing="0" border="0">
552         <tr>
553           <td class="md" nowrap valign="top"> char* DNS::dns_ntoa4_r </td>
554           <td class="md" valign="top">(&nbsp;</td>
555           <td class="md" nowrap valign="top">const in_addr *const&nbsp;</td>
556           <td class="mdname1" valign="top" nowrap> <em>ip</em>          </td>
557           <td class="md" valign="top">&nbsp;)&nbsp;</td>
558           <td class="md" nowrap><code> [private]</code></td>
559         </tr>
560
561       </table>
562     </td>
563   </tr>
564 </table>
565 <table cellspacing=5 cellpadding=0 border=0>
566   <tr>
567     <td>
568       &nbsp;
569     </td>
570     <td>
571
572 <p>
573     </td>
574   </tr>
575 </table>
576 <a name="d9" doxytag="DNS::dns_ntoa4_s"></a><p>
577 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
578   <tr>
579     <td class="mdRow">
580       <table cellpadding="0" cellspacing="0" border="0">
581         <tr>
582           <td class="md" nowrap valign="top"> char* DNS::dns_ntoa4_s </td>
583           <td class="md" valign="top">(&nbsp;</td>
584           <td class="md" nowrap valign="top">const in_addr *const&nbsp;</td>
585           <td class="mdname" nowrap> <em>ip</em>, </td>
586         </tr>
587         <tr>
588           <td></td>
589           <td></td>
590           <td class="md" nowrap>char *const&nbsp;</td>
591           <td class="mdname" nowrap> <em>result</em></td>
592         </tr>
593         <tr>
594           <td></td>
595           <td class="md">)&nbsp;</td>
596           <td class="md" colspan="2"><code> [private]</code></td>
597         </tr>
598
599       </table>
600     </td>
601   </tr>
602 </table>
603 <table cellspacing=5 cellpadding=0 border=0>
604   <tr>
605     <td>
606       &nbsp;
607     </td>
608     <td>
609
610 <p>
611     </td>
612   </tr>
613 </table>
614 <a name="a4" doxytag="DNS::ForwardLookup"></a><p>
615 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
616   <tr>
617     <td class="mdRow">
618       <table cellpadding="0" cellspacing="0" border="0">
619         <tr>
620           <td class="md" nowrap valign="top"> bool DNS::ForwardLookup </td>
621           <td class="md" valign="top">(&nbsp;</td>
622           <td class="md" nowrap valign="top">std::string&nbsp;</td>
623           <td class="mdname1" valign="top" nowrap> <em>host</em>          </td>
624           <td class="md" valign="top">&nbsp;)&nbsp;</td>
625           <td class="md" nowrap></td>
626         </tr>
627
628       </table>
629     </td>
630   </tr>
631 </table>
632 <table cellspacing=5 cellpadding=0 border=0>
633   <tr>
634     <td>
635       &nbsp;
636     </td>
637     <td>
638
639 <p>
640 This method will start the forward lookup of a hostname, e.g. 
641 <p>
642 www.inspircd.org, and returns true if the lookup was successfully initiated.    </td>
643   </tr>
644 </table>
645 <a name="a7" doxytag="DNS::GetFD"></a><p>
646 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
647   <tr>
648     <td class="mdRow">
649       <table cellpadding="0" cellspacing="0" border="0">
650         <tr>
651           <td class="md" nowrap valign="top"> int DNS::GetFD </td>
652           <td class="md" valign="top">(&nbsp;</td>
653           <td class="mdname1" valign="top" nowrap>          </td>
654           <td class="md" valign="top">&nbsp;)&nbsp;</td>
655           <td class="md" nowrap></td>
656         </tr>
657
658       </table>
659     </td>
660   </tr>
661 </table>
662 <table cellspacing=5 cellpadding=0 border=0>
663   <tr>
664     <td>
665       &nbsp;
666     </td>
667     <td>
668
669 <p>
670 This method returns the file handle used by the dns query socket or zero if the query is invalid for some reason, e.g. 
671 <p>
672 the dns server not responding.    </td>
673   </tr>
674 </table>
675 <a name="a6" doxytag="DNS::GetResult"></a><p>
676 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
677   <tr>
678     <td class="mdRow">
679       <table cellpadding="0" cellspacing="0" border="0">
680         <tr>
681           <td class="md" nowrap valign="top"> std::string DNS::GetResult </td>
682           <td class="md" valign="top">(&nbsp;</td>
683           <td class="mdname1" valign="top" nowrap>          </td>
684           <td class="md" valign="top">&nbsp;)&nbsp;</td>
685           <td class="md" nowrap></td>
686         </tr>
687
688       </table>
689     </td>
690   </tr>
691 </table>
692 <table cellspacing=5 cellpadding=0 border=0>
693   <tr>
694     <td>
695       &nbsp;
696     </td>
697     <td>
698
699 <p>
700 This method returns the result of your query as a string, depending upon wether you called <a class="el" href="classDNS.html#a3">DNS::ReverseLookup()</a> or <a class="el" href="classDNS.html#a4">DNS::ForwardLookup</a>. 
701 <p>
702     </td>
703   </tr>
704 </table>
705 <a name="a5" doxytag="DNS::HasResult"></a><p>
706 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
707   <tr>
708     <td class="mdRow">
709       <table cellpadding="0" cellspacing="0" border="0">
710         <tr>
711           <td class="md" nowrap valign="top"> bool DNS::HasResult </td>
712           <td class="md" valign="top">(&nbsp;</td>
713           <td class="mdname1" valign="top" nowrap>          </td>
714           <td class="md" valign="top">&nbsp;)&nbsp;</td>
715           <td class="md" nowrap></td>
716         </tr>
717
718       </table>
719     </td>
720   </tr>
721 </table>
722 <table cellspacing=5 cellpadding=0 border=0>
723   <tr>
724     <td>
725       &nbsp;
726     </td>
727     <td>
728
729 <p>
730 This method will return true when the lookup is completed. 
731 <p>
732 It uses poll internally to determine the status of the socket.    </td>
733   </tr>
734 </table>
735 <a name="a3" doxytag="DNS::ReverseLookup"></a><p>
736 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
737   <tr>
738     <td class="mdRow">
739       <table cellpadding="0" cellspacing="0" border="0">
740         <tr>
741           <td class="md" nowrap valign="top"> bool DNS::ReverseLookup </td>
742           <td class="md" valign="top">(&nbsp;</td>
743           <td class="md" nowrap valign="top">std::string&nbsp;</td>
744           <td class="mdname1" valign="top" nowrap> <em>ip</em>          </td>
745           <td class="md" valign="top">&nbsp;)&nbsp;</td>
746           <td class="md" nowrap></td>
747         </tr>
748
749       </table>
750     </td>
751   </tr>
752 </table>
753 <table cellspacing=5 cellpadding=0 border=0>
754   <tr>
755     <td>
756       &nbsp;
757     </td>
758     <td>
759
760 <p>
761 This method will start the reverse lookup of an ip given in dotted decimal format, e.g. 
762 <p>
763 1.2.3.4, and returns true if the lookup was successfully initiated.    </td>
764   </tr>
765 </table>
766 <a name="a8" doxytag="DNS::SetNS"></a><p>
767 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
768   <tr>
769     <td class="mdRow">
770       <table cellpadding="0" cellspacing="0" border="0">
771         <tr>
772           <td class="md" nowrap valign="top"> void DNS::SetNS </td>
773           <td class="md" valign="top">(&nbsp;</td>
774           <td class="md" nowrap valign="top">std::string&nbsp;</td>
775           <td class="mdname1" valign="top" nowrap> <em>dnsserver</em>          </td>
776           <td class="md" valign="top">&nbsp;)&nbsp;</td>
777           <td class="md" nowrap></td>
778         </tr>
779
780       </table>
781     </td>
782   </tr>
783 </table>
784 <table cellspacing=5 cellpadding=0 border=0>
785   <tr>
786     <td>
787       &nbsp;
788     </td>
789     <td>
790
791 <p>
792     </td>
793   </tr>
794 </table>
795 <hr><h2>Member Data Documentation</h2>
796 <a name="r0" doxytag="DNS::binip"></a><p>
797 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
798   <tr>
799     <td class="mdRow">
800       <table cellpadding="0" cellspacing="0" border="0">
801         <tr>
802           <td class="md" nowrap valign="top"> in_addr* <a class="el" href="classDNS.html#r0">DNS::binip</a><code> [private]</code>
803       </table>
804     </td>
805   </tr>
806 </table>
807 <table cellspacing=5 cellpadding=0 border=0>
808   <tr>
809     <td>
810       &nbsp;
811     </td>
812     <td>
813
814 <p>
815
816 <p>
817 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>
818   </tr>
819 </table>
820 <a name="r3" doxytag="DNS::fd"></a><p>
821 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
822   <tr>
823     <td class="mdRow">
824       <table cellpadding="0" cellspacing="0" border="0">
825         <tr>
826           <td class="md" nowrap valign="top"> unsigned int <a class="el" href="classDNS.html#r3">DNS::fd</a><code> [private]</code>
827       </table>
828     </td>
829   </tr>
830 </table>
831 <table cellspacing=5 cellpadding=0 border=0>
832   <tr>
833     <td>
834       &nbsp;
835     </td>
836     <td>
837
838 <p>
839
840 <p>
841 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>
842   </tr>
843 </table>
844 <a name="r1" doxytag="DNS::result"></a><p>
845 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
846   <tr>
847     <td class="mdRow">
848       <table cellpadding="0" cellspacing="0" border="0">
849         <tr>
850           <td class="md" nowrap valign="top"> char* <a class="el" href="classDNS.html#r1">DNS::result</a><code> [private]</code>
851       </table>
852     </td>
853   </tr>
854 </table>
855 <table cellspacing=5 cellpadding=0 border=0>
856   <tr>
857     <td>
858       &nbsp;
859     </td>
860     <td>
861
862 <p>
863
864 <p>
865 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>
866   </tr>
867 </table>
868 <a name="r2" doxytag="DNS::t"></a><p>
869 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
870   <tr>
871     <td class="mdRow">
872       <table cellpadding="0" cellspacing="0" border="0">
873         <tr>
874           <td class="md" nowrap valign="top"> int <a class="el" href="classDNS.html#r2">DNS::t</a><code> [private]</code>
875       </table>
876     </td>
877   </tr>
878 </table>
879 <table cellspacing=5 cellpadding=0 border=0>
880   <tr>
881     <td>
882       &nbsp;
883     </td>
884     <td>
885
886 <p>
887
888 <p>
889 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>
890   </tr>
891 </table>
892 <hr>The documentation for this class was generated from the following file:<ul>
893 <li><a class="el" href="dns_8h-source.html">dns.h</a></ul>
894 <hr size="1"><address style="align: right;"><small>Generated on Fri May 13 01:59:35 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>
898 </body>
899 </html>