]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - include/dns.h
61c35b07305d5cbfb9000ef809fee28f9fc4a6c1
[user/henk/code/inspircd.git] / include / dns.h
1 /*
2 dns.h - dns library declarations based on firedns Copyright (C) 2002 Ian Gulliver
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of version 2 of the GNU General Public License as
6 published by the Free Software Foundation.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, write to the Free Software
15 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16 */
17
18 #ifndef _DNS_H
19 #define _DNS_H
20
21 #include <sys/types.h>
22 #include <sys/socket.h>
23 #include <netinet/in.h>
24 #include <string>
25
26 struct dns_ip4list {
27         in_addr ip;
28         dns_ip4list *next;
29 };
30
31 class DNS
32 {
33 private:
34         char *result;
35         in_addr *binip;
36         int t,i;
37         void dns_init();
38         unsigned int fd;
39         void dns_init_2(const char* dnsserver);
40         in_addr *dns_aton4(const char * const ipstring);
41         char *dns_ntoa4(const in_addr * const ip);
42         int dns_getip4(const char * const name);
43         int dns_getip4list(const char * const name);
44         int dns_getname4(const in_addr * const ip);
45         char *dns_getresult(const int fd);
46         in_addr *dns_aton4_s(const char * const ipstring, in_addr * const ip);
47         char *dns_ntoa4_s(const in_addr * const ip, char * const result);
48         char *dns_getresult_s(const int fd, char * const result);
49         in_addr *dns_aton4_r(const char * const ipstring);
50         char *dns_ntoa4_r(const in_addr * const ip);
51         char *dns_getresult_r(const int fd);
52 public:
53         DNS();
54         DNS(std::string dnsserver);
55         ~DNS();
56         bool ReverseLookup(std::string ip);
57         bool ForwardLookup(std::string host);
58         bool HasResult();
59         std::string GetResult();
60         int GetFD();
61 };
62
63 #endif