aboutsummaryrefslogtreecommitdiff
path: root/src/or/eventdns.h
blob: 43f474e3f7f1aeece0e5a68c8ed5b35c61ed16d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/* This software is Public Domain. To view a copy of the public domain dedication,
 * visit http://creativecommons.org/licenses/publicdomain/ or send a letter to
 * Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
 *
 * I ask and expect, but do not require, that all derivative works contain an
 * attribution similar to:
 * 	Parts developed by Adam Langley <agl@imperialviolet.org>
 *
 * You may wish to replace the word "Parts" with something else depending on
 * the amount of original code.
 *
 * (Derivative works does not include programs which link against, run or include
 * the source verbatim in their source distributions)
 */

#ifndef EVENTDNS_H
#define EVENTDNS_H

#define DNS_ERR_NONE 0
#define DNS_ERR_FORMAT 1
#define DNS_ERR_SERVERFAILED 2
#define DNS_ERR_NOTEXIST 3
#define DNS_ERR_NOTIMPL 4
#define DNS_ERR_REFUSED 5
#define DNS_ERR_TRUNCATED 65
#define DNS_ERR_UNKNOWN 66
#define DNS_ERR_TIMEOUT 67

#define DNS_IPv4_A 1

#define DNS_QUERY_NO_SEARCH 1

#define DNS_OPTION_SEARCH 1
#define DNS_OPTION_NAMESERVERS 2
#define DNS_OPTION_MISC 4
#define DNS_OPTIONS_ALL 7

typedef void (*eventdns_callback_type) (int result, char type, int count, int ttl, void *addresses, void *arg);

int eventdns_nameserver_add(unsigned long int address);
int eventdns_nameserver_ip_add(const char *ip_as_string);
int eventdns_resolve(const char *name, int flags, eventdns_callback_type callback, void *ptr);
int eventdns_resolv_conf_parse(int flags, const char *);
void eventdns_search_clear(void);
void eventdns_search_add(const char *domain);
void eventdns_search_ndots_set(const int ndots);

#define DNS_NO_SEARCH 1

#endif  // !EVENTDNS_H