Update.
[glibc.git] / resolv / README
blobe862fffe57922e290aba79b6ea8f77a66a1b1d41
1 Starting with version 2.2, the resolver in the GNU C Library comes
2 from BIND 8.  Only a subset of the src/lib/resolv part of libbind is
3 included here; basically the parts that are needed to provide the
4 functionality present in the resolver from BIND 4.9.7 that was
5 included in the previous release of the GNU C Library, augmented by
6 the parts needed to provide thread-safety.  This means that support
7 for things as dynamic DNS updates and TSIG keys isn't included.  If
8 you need those facilities, please take a look at the full BIND
9 distribution.
12 Differences
13 ===========
15 The resolver in the GNU C Library still differs from what's in BIND
16 8.2.3-T5B:
18 * The resolver in glibc strictly adheres to the recommendations in RFC
19   1535.  BIND 8.2.3-T5B seems to relax those rules a bit (see the code
20   that's wrapped in `#ifndef RFC1535').
22 * The RES_DEBUG option (`options debug' in /etc/resolv.conf) has been
23   disabled.
25 * The resolver in glibc allows underscores in domain names.
27 * The <resolv.h> header in glibc includes <netinet/in.h> and
28   <arpa/nameser.h> to make it self-contained.
30 * The `res_close' function in glibc only tries to close open files
31   referenced through `_res' if the RES_INIT bit is set in
32   `_res.options'.  This fixes a potential security bug with programs
33   that bogusly call `res_close' without initializing the resolver
34   state first.  Note that the thread-safe `res_nclose' still doesn't
35   check the RES_INIT bit.  By the way, you're not really supposed to
36   call `res_close/res_nclose' directly.
39 Source code
40 ===========
42 The following files come from the BIND distribution (currently version
43 8.2.3-T5B):
45 src/include/
46   arpa/nameser.h
47   arpa/nameser_compat.h
48   resolv.h
50 src/lib/resolv/
51   herror.c
52   res_comp.c
53   res_data.c
54   res_debug.c
55   res_debug.h
56   res_init.c
57   res_mkquery.c
58   res_query.c
59   res_send.c
61 src/lib/nameser/
62   ns_name.c
63   ns_netint.c
64   ns_parse.c
65   ns_print.c
66   ns_samedomain.c
67   ns_ttl.c
69 src/lib/inet/
70   inet_addr.c
71   inet_net_ntop.c
72   inet_net_pton.c
73   inet_neta.c
74   inet_ntop.c
75   inet_pton.c
76   nsap_addr.c
78 src/lib/isc/
79   base64.c
81 Some of these files have been optimized a bit, and adaptations have
82 been made to make them fit in with the rest of glibc.  The more
83 non-obvious changes are wrapped in something like `#ifdef _LIBC'.
85 res_libc.c is home-brewn, although parts of it are taken from res_data.c.
87 res_hconf.c and res_hconf.h were contributed by David Mosberger, and
88 do not come from BIND.
90 The files gethnamaddr.c, mapv4v6addr.h and mapv4v6hostent.h are
91 leftovers from BIND 4.9.7.