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