summaryrefslogtreecommitdiff
path: root/net/adns/DESCR
blob: 9925a8b165dc1aec869cf5518093df0dabd7dd9d (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
adns is a DNS resolver library and a collection of utilities that use the
library.  The adns library has the following features:
* It is reasonably easy to use for simple programs which just want to
  translate names to addresses, look up MX records, etc.
* It can be used in an asynchronous, non-blocking, manner. Many
  queries can be handled simultaneously.
* Responses are decoded automatically into a natural representation
  for a C program - there is no need to deal with DNS packet formats.
* Sanity checking (eg, name syntax checking, reverse/forward
  correspondence, CNAME pointing to CNAME) is performed automatically.
* Time-to-live, CNAME and other similar information is returned in an
  easy-to-use form, without getting in the way.
* There is no global state in the library; resolver state is an
  opaque data structure which the client creates explicitly. A
  program can have several instances of the resolver.
* Errors are reported to the application in a way that distinguishes
  the various causes of failure properly.
* Understands conventional resolv.conf, but this can overridden by
  environment variables.
* Flexibility. For example, the application can tell adns to: ignore
  environment variables (for setuid programs), disable hostname
  syntax sanity checks to return arbitrary data, override or ignore
  resolv.conf in favour of supplied configuration, etc.
...and more!