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">
6 <!-- Generated by Doxygen 1.4.4-20050815 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File 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>
11 <code>#include <<a class="el" href="dns_8h-source.html">dns.h</a>></code>
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">
16 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
17 <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#DNS_28_29">DNS</a> ()</td></tr>
19 <tr><td class="mdescLeft"> </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"> </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>
22 <tr><td class="mdescLeft"> </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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#_7EDNS_28_29">~DNS</a> ()</td></tr>
25 <tr><td class="mdescLeft"> </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 </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>
28 <tr><td class="mdescLeft"> </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 </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>
31 <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#HasResult_28_29">HasResult</a> ()</td></tr>
34 <tr><td class="mdescLeft"> </td><td class="mdescRight">This method will return true when the lookup is completed. <a href="#HasResult_28_29"></a><br></td></tr>
35 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#GetResult_28_29">GetResult</a> ()</td></tr>
37 <tr><td class="mdescLeft"> </td><td class="mdescRight">This method returns the result of your query as a string, depending upon wether you called <a class="el" href="classDNS.html#ReverseLookup_28std_3A_3Astring_20ip_29">DNS::ReverseLookup()</a> or <a class="el" href="classDNS.html#ForwardLookup_28std_3A_3Astring_20host_29">DNS::ForwardLookup</a>. <a href="#GetResult_28_29"></a><br></td></tr>
38 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#GetFD_28_29">GetFD</a> ()</td></tr>
40 <tr><td class="mdescLeft"> </td><td class="mdescRight">This method returns the file handle used by the dns query socket or zero if the query is invalid for some reason, e.g. <a href="#GetFD_28_29"></a><br></td></tr>
41 <tr><td class="memItemLeft" nowrap align="right" valign="top">void </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>
43 <tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
44 <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Finit_28_29">dns_init</a> ()</td></tr>
46 <tr><td class="memItemLeft" nowrap align="right" valign="top">void </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>
48 <tr><td class="memItemLeft" nowrap align="right" valign="top">in_addr * </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>
50 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </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>
52 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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>
54 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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>
56 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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>
58 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Fgetresult_28const_20int_20fd_29">dns_getresult</a> (const int <a class="el" href="classDNS.html#fd">fd</a>)</td></tr>
60 <tr><td class="memItemLeft" nowrap align="right" valign="top">in_addr * </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>
62 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </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>
64 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Fgetresult_5Fs_28const_20int_20fd_2C_20char_20_2Aconst_20result_29">dns_getresult_s</a> (const int <a class="el" href="classDNS.html#fd">fd</a>, char *const <a class="el" href="classDNS.html#result">result</a>)</td></tr>
66 <tr><td class="memItemLeft" nowrap align="right" valign="top">in_addr * </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>
68 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </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>
70 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#dns_5Fgetresult_5Fr_28const_20int_20fd_29">dns_getresult_r</a> (const int <a class="el" href="classDNS.html#fd">fd</a>)</td></tr>
72 <tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
73 <tr><td class="memItemLeft" nowrap align="right" valign="top">in_addr * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#binip">binip</a></td></tr>
75 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#result">result</a></td></tr>
77 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#t">t</a></td></tr>
79 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html#fd">fd</a></td></tr>
82 <hr><a name="_details"></a><h2>Detailed Description</h2>
83 The DNS class allows fast nonblocking resolution of hostnames and ip addresses.
85 It is based heavily upon firedns by Ian Gulliver.
89 Definition at line <a class="el" href="dns_8h-source.html#l00035">35</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>.<hr><h2>Constructor & Destructor Documentation</h2>
90 <a class="anchor" name="DNS_28_29"></a><!-- doxytag: member="DNS::DNS" ref="DNS_28_29" args="()" --><p>
91 <table class="mdTable" cellpadding="2" cellspacing="0">
94 <table cellpadding="0" cellspacing="0" border="0">
96 <td class="md" nowrap valign="top">DNS::DNS </td>
97 <td class="md" valign="top">( </td>
98 <td class="mdname1" valign="top" nowrap> </td>
99 <td class="md" valign="top"> ) </td>
100 <td class="md" nowrap></td>
106 <table cellspacing="5" cellpadding="0" border="0">
114 The default constructor uses dns addresses read from /etc/resolv.conf.
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>
119 <a class="anchor" name="DNS_28std_3A_3Astring_20dnsserver_29"></a><!-- doxytag: member="DNS::DNS" ref="DNS_28std_3A_3Astring_20dnsserver_29" args="(std::string dnsserver)" --><p>
120 <table class="mdTable" cellpadding="2" cellspacing="0">
123 <table cellpadding="0" cellspacing="0" border="0">
125 <td class="md" nowrap valign="top">DNS::DNS </td>
126 <td class="md" valign="top">( </td>
127 <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> </td>
128 <td class="mdname1" valign="top" nowrap> <em>dnsserver</em> </td>
129 <td class="md" valign="top"> ) </td>
130 <td class="md" nowrap></td>
136 <table cellspacing="5" cellpadding="0" border="0">
144 This constructor accepts a dns server address.
146 The address must be in dotted decimal form, e.g. 1.2.3.4. </td>
149 <a class="anchor" name="_7EDNS_28_29"></a><!-- doxytag: member="DNS::~DNS" ref="_7EDNS_28_29" args="()" --><p>
150 <table class="mdTable" cellpadding="2" cellspacing="0">
153 <table cellpadding="0" cellspacing="0" border="0">
155 <td class="md" nowrap valign="top">DNS::~DNS </td>
156 <td class="md" valign="top">( </td>
157 <td class="mdname1" valign="top" nowrap> </td>
158 <td class="md" valign="top"> ) </td>
159 <td class="md" nowrap></td>
165 <table cellspacing="5" cellpadding="0" border="0">
173 The destructor frees all used structures.
178 <hr><h2>Member Function Documentation</h2>
179 <a class="anchor" name="dns_5Faton_34_28const_20char_20_2Aconst_20ipstring_29"></a><!-- doxytag: member="DNS::dns_aton4" ref="dns_5Faton_34_28const_20char_20_2Aconst_20ipstring_29" args="(const char *const ipstring)" --><p>
180 <table class="mdTable" cellpadding="2" cellspacing="0">
183 <table cellpadding="0" cellspacing="0" border="0">
185 <td class="md" nowrap valign="top">in_addr* DNS::dns_aton4 </td>
186 <td class="md" valign="top">( </td>
187 <td class="md" nowrap valign="top">const char *const </td>
188 <td class="mdname1" valign="top" nowrap> <em>ipstring</em> </td>
189 <td class="md" valign="top"> ) </td>
190 <td class="md" nowrap><code> [private]</code></td>
196 <table cellspacing="5" cellpadding="0" border="0">
207 <a class="anchor" name="dns_5Faton_34_5Fr_28const_20char_20_2Aconst_20ipstring_29"></a><!-- doxytag: member="DNS::dns_aton4_r" ref="dns_5Faton_34_5Fr_28const_20char_20_2Aconst_20ipstring_29" args="(const char *const ipstring)" --><p>
208 <table class="mdTable" cellpadding="2" cellspacing="0">
211 <table cellpadding="0" cellspacing="0" border="0">
213 <td class="md" nowrap valign="top">in_addr* DNS::dns_aton4_r </td>
214 <td class="md" valign="top">( </td>
215 <td class="md" nowrap valign="top">const char *const </td>
216 <td class="mdname1" valign="top" nowrap> <em>ipstring</em> </td>
217 <td class="md" valign="top"> ) </td>
218 <td class="md" nowrap><code> [private]</code></td>
224 <table cellspacing="5" cellpadding="0" border="0">
235 <a class="anchor" name="dns_5Faton_34_5Fs_28const_20char_20_2Aconst_20ipstring_2C_20in_5Faddr_20_2Aconst_20ip_29"></a><!-- doxytag: member="DNS::dns_aton4_s" ref="dns_5Faton_34_5Fs_28const_20char_20_2Aconst_20ipstring_2C_20in_5Faddr_20_2Aconst_20ip_29" args="(const char *const ipstring, in_addr *const ip)" --><p>
236 <table class="mdTable" cellpadding="2" cellspacing="0">
239 <table cellpadding="0" cellspacing="0" border="0">
241 <td class="md" nowrap valign="top">in_addr* DNS::dns_aton4_s </td>
242 <td class="md" valign="top">( </td>
243 <td class="md" nowrap valign="top">const char *const </td>
244 <td class="mdname" nowrap> <em>ipstring</em>, </td>
247 <td class="md" nowrap align="right"></td>
249 <td class="md" nowrap>in_addr *const </td>
250 <td class="mdname" nowrap> <em>ip</em></td>
254 <td class="md">) </td>
255 <td class="md" colspan="2"><code> [private]</code></td>
261 <table cellspacing="5" cellpadding="0" border="0">
272 <a class="anchor" name="dns_5Fgetip_34_28const_20char_20_2Aconst_20name_29"></a><!-- doxytag: member="DNS::dns_getip4" ref="dns_5Fgetip_34_28const_20char_20_2Aconst_20name_29" args="(const char *const name)" --><p>
273 <table class="mdTable" cellpadding="2" cellspacing="0">
276 <table cellpadding="0" cellspacing="0" border="0">
278 <td class="md" nowrap valign="top">int DNS::dns_getip4 </td>
279 <td class="md" valign="top">( </td>
280 <td class="md" nowrap valign="top">const char *const </td>
281 <td class="mdname1" valign="top" nowrap> <em>name</em> </td>
282 <td class="md" valign="top"> ) </td>
283 <td class="md" nowrap><code> [private]</code></td>
289 <table cellspacing="5" cellpadding="0" border="0">
300 <a class="anchor" name="dns_5Fgetip_34list_28const_20char_20_2Aconst_20name_29"></a><!-- doxytag: member="DNS::dns_getip4list" ref="dns_5Fgetip_34list_28const_20char_20_2Aconst_20name_29" args="(const char *const name)" --><p>
301 <table class="mdTable" cellpadding="2" cellspacing="0">
304 <table cellpadding="0" cellspacing="0" border="0">
306 <td class="md" nowrap valign="top">int DNS::dns_getip4list </td>
307 <td class="md" valign="top">( </td>
308 <td class="md" nowrap valign="top">const char *const </td>
309 <td class="mdname1" valign="top" nowrap> <em>name</em> </td>
310 <td class="md" valign="top"> ) </td>
311 <td class="md" nowrap><code> [private]</code></td>
317 <table cellspacing="5" cellpadding="0" border="0">
328 <a class="anchor" name="dns_5Fgetname_34_28const_20in_5Faddr_20_2Aconst_20ip_29"></a><!-- doxytag: member="DNS::dns_getname4" ref="dns_5Fgetname_34_28const_20in_5Faddr_20_2Aconst_20ip_29" args="(const in_addr *const ip)" --><p>
329 <table class="mdTable" cellpadding="2" cellspacing="0">
332 <table cellpadding="0" cellspacing="0" border="0">
334 <td class="md" nowrap valign="top">int DNS::dns_getname4 </td>
335 <td class="md" valign="top">( </td>
336 <td class="md" nowrap valign="top">const in_addr *const </td>
337 <td class="mdname1" valign="top" nowrap> <em>ip</em> </td>
338 <td class="md" valign="top"> ) </td>
339 <td class="md" nowrap><code> [private]</code></td>
345 <table cellspacing="5" cellpadding="0" border="0">
356 <a class="anchor" name="dns_5Fgetresult_28const_20int_20fd_29"></a><!-- doxytag: member="DNS::dns_getresult" ref="dns_5Fgetresult_28const_20int_20fd_29" args="(const int fd)" --><p>
357 <table class="mdTable" cellpadding="2" cellspacing="0">
360 <table cellpadding="0" cellspacing="0" border="0">
362 <td class="md" nowrap valign="top">char* DNS::dns_getresult </td>
363 <td class="md" valign="top">( </td>
364 <td class="md" nowrap valign="top">const int </td>
365 <td class="mdname1" valign="top" nowrap> <em>fd</em> </td>
366 <td class="md" valign="top"> ) </td>
367 <td class="md" nowrap><code> [private]</code></td>
373 <table cellspacing="5" cellpadding="0" border="0">
384 <a class="anchor" name="dns_5Fgetresult_5Fr_28const_20int_20fd_29"></a><!-- doxytag: member="DNS::dns_getresult_r" ref="dns_5Fgetresult_5Fr_28const_20int_20fd_29" args="(const int fd)" --><p>
385 <table class="mdTable" cellpadding="2" cellspacing="0">
388 <table cellpadding="0" cellspacing="0" border="0">
390 <td class="md" nowrap valign="top">char* DNS::dns_getresult_r </td>
391 <td class="md" valign="top">( </td>
392 <td class="md" nowrap valign="top">const int </td>
393 <td class="mdname1" valign="top" nowrap> <em>fd</em> </td>
394 <td class="md" valign="top"> ) </td>
395 <td class="md" nowrap><code> [private]</code></td>
401 <table cellspacing="5" cellpadding="0" border="0">
412 <a class="anchor" name="dns_5Fgetresult_5Fs_28const_20int_20fd_2C_20char_20_2Aconst_20result_29"></a><!-- doxytag: member="DNS::dns_getresult_s" ref="dns_5Fgetresult_5Fs_28const_20int_20fd_2C_20char_20_2Aconst_20result_29" args="(const int fd, char *const result)" --><p>
413 <table class="mdTable" cellpadding="2" cellspacing="0">
416 <table cellpadding="0" cellspacing="0" border="0">
418 <td class="md" nowrap valign="top">char* DNS::dns_getresult_s </td>
419 <td class="md" valign="top">( </td>
420 <td class="md" nowrap valign="top">const int </td>
421 <td class="mdname" nowrap> <em>fd</em>, </td>
424 <td class="md" nowrap align="right"></td>
426 <td class="md" nowrap>char *const </td>
427 <td class="mdname" nowrap> <em>result</em></td>
431 <td class="md">) </td>
432 <td class="md" colspan="2"><code> [private]</code></td>
438 <table cellspacing="5" cellpadding="0" border="0">
449 <a class="anchor" name="dns_5Finit_28_29"></a><!-- doxytag: member="DNS::dns_init" ref="dns_5Finit_28_29" args="()" --><p>
450 <table class="mdTable" cellpadding="2" cellspacing="0">
453 <table cellpadding="0" cellspacing="0" border="0">
455 <td class="md" nowrap valign="top">void DNS::dns_init </td>
456 <td class="md" valign="top">( </td>
457 <td class="mdname1" valign="top" nowrap> </td>
458 <td class="md" valign="top"> ) </td>
459 <td class="md" nowrap><code> [private]</code></td>
465 <table cellspacing="5" cellpadding="0" border="0">
476 <a class="anchor" name="dns_5Finit_5F_32_28const_20char_20_2Adnsserver_29"></a><!-- doxytag: member="DNS::dns_init_2" ref="dns_5Finit_5F_32_28const_20char_20_2Adnsserver_29" args="(const char *dnsserver)" --><p>
477 <table class="mdTable" cellpadding="2" cellspacing="0">
480 <table cellpadding="0" cellspacing="0" border="0">
482 <td class="md" nowrap valign="top">void DNS::dns_init_2 </td>
483 <td class="md" valign="top">( </td>
484 <td class="md" nowrap valign="top">const char * </td>
485 <td class="mdname1" valign="top" nowrap> <em>dnsserver</em> </td>
486 <td class="md" valign="top"> ) </td>
487 <td class="md" nowrap><code> [private]</code></td>
493 <table cellspacing="5" cellpadding="0" border="0">
504 <a class="anchor" name="dns_5Fntoa_34_28const_20in_5Faddr_20_2Aconst_20ip_29"></a><!-- doxytag: member="DNS::dns_ntoa4" ref="dns_5Fntoa_34_28const_20in_5Faddr_20_2Aconst_20ip_29" args="(const in_addr *const ip)" --><p>
505 <table class="mdTable" cellpadding="2" cellspacing="0">
508 <table cellpadding="0" cellspacing="0" border="0">
510 <td class="md" nowrap valign="top">char* DNS::dns_ntoa4 </td>
511 <td class="md" valign="top">( </td>
512 <td class="md" nowrap valign="top">const in_addr *const </td>
513 <td class="mdname1" valign="top" nowrap> <em>ip</em> </td>
514 <td class="md" valign="top"> ) </td>
515 <td class="md" nowrap><code> [private]</code></td>
521 <table cellspacing="5" cellpadding="0" border="0">
532 <a class="anchor" name="dns_5Fntoa_34_5Fr_28const_20in_5Faddr_20_2Aconst_20ip_29"></a><!-- doxytag: member="DNS::dns_ntoa4_r" ref="dns_5Fntoa_34_5Fr_28const_20in_5Faddr_20_2Aconst_20ip_29" args="(const in_addr *const ip)" --><p>
533 <table class="mdTable" cellpadding="2" cellspacing="0">
536 <table cellpadding="0" cellspacing="0" border="0">
538 <td class="md" nowrap valign="top">char* DNS::dns_ntoa4_r </td>
539 <td class="md" valign="top">( </td>
540 <td class="md" nowrap valign="top">const in_addr *const </td>
541 <td class="mdname1" valign="top" nowrap> <em>ip</em> </td>
542 <td class="md" valign="top"> ) </td>
543 <td class="md" nowrap><code> [private]</code></td>
549 <table cellspacing="5" cellpadding="0" border="0">
560 <a class="anchor" name="dns_5Fntoa_34_5Fs_28const_20in_5Faddr_20_2Aconst_20ip_2C_20char_20_2Aconst_20result_29"></a><!-- doxytag: member="DNS::dns_ntoa4_s" ref="dns_5Fntoa_34_5Fs_28const_20in_5Faddr_20_2Aconst_20ip_2C_20char_20_2Aconst_20result_29" args="(const in_addr *const ip, char *const result)" --><p>
561 <table class="mdTable" cellpadding="2" cellspacing="0">
564 <table cellpadding="0" cellspacing="0" border="0">
566 <td class="md" nowrap valign="top">char* DNS::dns_ntoa4_s </td>
567 <td class="md" valign="top">( </td>
568 <td class="md" nowrap valign="top">const in_addr *const </td>
569 <td class="mdname" nowrap> <em>ip</em>, </td>
572 <td class="md" nowrap align="right"></td>
574 <td class="md" nowrap>char *const </td>
575 <td class="mdname" nowrap> <em>result</em></td>
579 <td class="md">) </td>
580 <td class="md" colspan="2"><code> [private]</code></td>
586 <table cellspacing="5" cellpadding="0" border="0">
597 <a class="anchor" name="ForwardLookup_28std_3A_3Astring_20host_29"></a><!-- doxytag: member="DNS::ForwardLookup" ref="ForwardLookup_28std_3A_3Astring_20host_29" args="(std::string host)" --><p>
598 <table class="mdTable" cellpadding="2" cellspacing="0">
601 <table cellpadding="0" cellspacing="0" border="0">
603 <td class="md" nowrap valign="top">bool DNS::ForwardLookup </td>
604 <td class="md" valign="top">( </td>
605 <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> </td>
606 <td class="mdname1" valign="top" nowrap> <em>host</em> </td>
607 <td class="md" valign="top"> ) </td>
608 <td class="md" nowrap></td>
614 <table cellspacing="5" cellpadding="0" border="0">
622 This method will start the forward lookup of a hostname, e.g.
624 www.inspircd.org, and returns true if the lookup was successfully initiated. </td>
627 <a class="anchor" name="GetFD_28_29"></a><!-- doxytag: member="DNS::GetFD" ref="GetFD_28_29" args="()" --><p>
628 <table class="mdTable" cellpadding="2" cellspacing="0">
631 <table cellpadding="0" cellspacing="0" border="0">
633 <td class="md" nowrap valign="top">int DNS::GetFD </td>
634 <td class="md" valign="top">( </td>
635 <td class="mdname1" valign="top" nowrap> </td>
636 <td class="md" valign="top"> ) </td>
637 <td class="md" nowrap></td>
643 <table cellspacing="5" cellpadding="0" border="0">
651 This method returns the file handle used by the dns query socket or zero if the query is invalid for some reason, e.g.
653 the dns server not responding. </td>
656 <a class="anchor" name="GetResult_28_29"></a><!-- doxytag: member="DNS::GetResult" ref="GetResult_28_29" args="()" --><p>
657 <table class="mdTable" cellpadding="2" cellspacing="0">
660 <table cellpadding="0" cellspacing="0" border="0">
662 <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> DNS::GetResult </td>
663 <td class="md" valign="top">( </td>
664 <td class="mdname1" valign="top" nowrap> </td>
665 <td class="md" valign="top"> ) </td>
666 <td class="md" nowrap></td>
672 <table cellspacing="5" cellpadding="0" border="0">
680 This method returns the result of your query as a string, depending upon wether you called <a class="el" href="classDNS.html#ReverseLookup_28std_3A_3Astring_20ip_29">DNS::ReverseLookup()</a> or <a class="el" href="classDNS.html#ForwardLookup_28std_3A_3Astring_20host_29">DNS::ForwardLookup</a>.
685 <a class="anchor" name="HasResult_28_29"></a><!-- doxytag: member="DNS::HasResult" ref="HasResult_28_29" args="()" --><p>
686 <table class="mdTable" cellpadding="2" cellspacing="0">
689 <table cellpadding="0" cellspacing="0" border="0">
691 <td class="md" nowrap valign="top">bool DNS::HasResult </td>
692 <td class="md" valign="top">( </td>
693 <td class="mdname1" valign="top" nowrap> </td>
694 <td class="md" valign="top"> ) </td>
695 <td class="md" nowrap></td>
701 <table cellspacing="5" cellpadding="0" border="0">
709 This method will return true when the lookup is completed.
711 It uses poll internally to determine the status of the socket. </td>
714 <a class="anchor" name="ReverseLookup_28std_3A_3Astring_20ip_29"></a><!-- doxytag: member="DNS::ReverseLookup" ref="ReverseLookup_28std_3A_3Astring_20ip_29" args="(std::string ip)" --><p>
715 <table class="mdTable" cellpadding="2" cellspacing="0">
718 <table cellpadding="0" cellspacing="0" border="0">
720 <td class="md" nowrap valign="top">bool DNS::ReverseLookup </td>
721 <td class="md" valign="top">( </td>
722 <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> </td>
723 <td class="mdname1" valign="top" nowrap> <em>ip</em> </td>
724 <td class="md" valign="top"> ) </td>
725 <td class="md" nowrap></td>
731 <table cellspacing="5" cellpadding="0" border="0">
739 This method will start the reverse lookup of an ip given in dotted decimal format, e.g.
741 1.2.3.4, and returns true if the lookup was successfully initiated. </td>
744 <a class="anchor" name="SetNS_28std_3A_3Astring_20dnsserver_29"></a><!-- doxytag: member="DNS::SetNS" ref="SetNS_28std_3A_3Astring_20dnsserver_29" args="(std::string dnsserver)" --><p>
745 <table class="mdTable" cellpadding="2" cellspacing="0">
748 <table cellpadding="0" cellspacing="0" border="0">
750 <td class="md" nowrap valign="top">void DNS::SetNS </td>
751 <td class="md" valign="top">( </td>
752 <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> </td>
753 <td class="mdname1" valign="top" nowrap> <em>dnsserver</em> </td>
754 <td class="md" valign="top"> ) </td>
755 <td class="md" nowrap></td>
761 <table cellspacing="5" cellpadding="0" border="0">
772 <hr><h2>Member Data Documentation</h2>
773 <a class="anchor" name="binip"></a><!-- doxytag: member="DNS::binip" ref="binip" args="" --><p>
774 <table class="mdTable" cellpadding="2" cellspacing="0">
777 <table cellpadding="0" cellspacing="0" border="0">
779 <td class="md" nowrap valign="top">in_addr* <a class="el" href="classDNS.html#binip">DNS::binip</a><code> [private]</code> </td>
785 <table cellspacing="5" cellpadding="0" border="0">
795 Definition at line <a class="el" href="dns_8h-source.html#l00038">38</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>. </td>
798 <a class="anchor" name="fd"></a><!-- doxytag: member="DNS::fd" ref="fd" args="" --><p>
799 <table class="mdTable" cellpadding="2" cellspacing="0">
802 <table cellpadding="0" cellspacing="0" border="0">
804 <td class="md" nowrap valign="top">int <a class="el" href="classDNS.html#fd">DNS::fd</a><code> [private]</code> </td>
810 <table cellspacing="5" cellpadding="0" border="0">
820 Definition at line <a class="el" href="dns_8h-source.html#l00042">42</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>. </td>
823 <a class="anchor" name="result"></a><!-- doxytag: member="DNS::result" ref="result" args="" --><p>
824 <table class="mdTable" cellpadding="2" cellspacing="0">
827 <table cellpadding="0" cellspacing="0" border="0">
829 <td class="md" nowrap valign="top">char* <a class="el" href="classDNS.html#result">DNS::result</a><code> [private]</code> </td>
835 <table cellspacing="5" cellpadding="0" border="0">
845 Definition at line <a class="el" href="dns_8h-source.html#l00039">39</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>. </td>
848 <a class="anchor" name="t"></a><!-- doxytag: member="DNS::t" ref="t" args="" --><p>
849 <table class="mdTable" cellpadding="2" cellspacing="0">
852 <table cellpadding="0" cellspacing="0" border="0">
854 <td class="md" nowrap valign="top">int <a class="el" href="classDNS.html#t">DNS::t</a><code> [private]</code> </td>
860 <table cellspacing="5" cellpadding="0" border="0">
870 Definition at line <a class="el" href="dns_8h-source.html#l00040">40</a> of file <a class="el" href="dns_8h-source.html">dns.h</a>. </td>
873 <hr>The documentation for this class was generated from the following file:<ul>
874 <li><a class="el" href="dns_8h-source.html">dns.h</a></ul>
875 <hr size="1"><address style="align: right;"><small>Generated on Sun Nov 27 01:43:25 2005 for InspIRCd by
876 <a href="http://www.doxygen.org/index.html">
877 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>