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