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