glibc/resolv
Ulrich Drepper 2f54c82dac Update.
* elf/Makefile (tests): Add nodlopen.  Add rules to generate nodlopen.
	* include/dlfcn.h: Define __RTLD_DLOPEN.
	* elf/dl-load.c (_dl_map_object_from_fd): If DF_1_NOOPEN is set
	and this is a dlopen() call, do not load the binary.
	* dlfcn/dlopen.c: Add __RTLD_DLOPEN to mode passed down to _dl_open.
	* dlfcn/dlopenold.c: Likewise.
	* configure.in: Add test for -z nodelete option.
	* config.make.in: Define have-z-nodelete with libc_cv_z_nodelete.

2000-07-20  Mark Kettenis  <kettenis@gnu.org>

	Make Hesiod NSS module thread-safe.

	* hesiod/README.hesiod: Update.

	* hesiod/Versions [GLIBC_2.2]: Add _nss_hesiod_getservbyport_r,
	_nss_hesiod_setprotoent, _nss_hesiod_endprotoent,
	_nss_hesiod_getprotobyname_r, and _nss_hesiod_getprotobynumber_r.
	* hesiod/Makefile (libnss_hesiod-routines): Add hesiod-init and
	hesiod-proto.
	* hesiod/nss_hesiod/hesiod-init.c: New file.
	* hesiod/nss_hesiod/hesiod-pwd.c: Rewritten for thread-safeness.
	* hesiod/nss_hesiod/hesiod-grp.c: Likewise.
	* hesiod/nss_hesiod/nss_hesiod.h: New file.
	* hesiod/nss_hesiod/hesiod-service.c
	(_nss_hesiod_getservbyport_r): New function.  Provide support for
	looking up services by port number.
	* hesiod/nss_hesiod/hesiod-proto.c: New file.

	* hesiod/hesiod.c: Update from BIND 8.2.3-T5B.
	* hesiod/hesiod.h: Likewise.
	* hesiod/hesiod_p.h: Likewise.

2000-07-20  Mark Kettenis  <kettenis@gnu.org>

	Fix problems with `struct __res_state' getting too big.
	* resolv/resolv.h (struct __sockaddr_in): New definition.
	(struct __res_state): Use __sockaddr_in instead of sockaddr_in in
	the private parts of the structure to save some space.
	* resolv/res_send.c (res_nsend): Cast &EXT(statp).nsaddrs[ns] to
	(struct sockaddr_in *) in call to sock_eq.
	Use memcpy to copy statp->nsaddr_list[ns] to &EXT(statp).nsaddrs[ns].

2000-07-20  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/mach/hurd/dl-sysdep.c: Likewise.
2000-07-21 04:12:25 +00:00
..
arpa Update. 2000-07-19 22:03:58 +00:00
nss_dns Update. 2000-07-10 20:43:35 +00:00
sys initial import 1995-02-18 01:27:10 +00:00
.cvsignore Tue May 14 14:07:10 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 1996-05-14 20:30:25 +00:00
Banner Update. 2000-07-19 22:03:58 +00:00
base64.c Update. 2000-07-19 22:03:58 +00:00
gethnamaddr.c Update. 2000-04-30 04:17:35 +00:00
herror.c Update. 2000-07-19 22:03:58 +00:00
inet_addr.c Update. 2000-07-19 22:03:58 +00:00
inet_net_ntop.c Update. 2000-07-19 22:03:58 +00:00
inet_net_pton.c Update. 2000-07-19 22:03:58 +00:00
inet_neta.c Update. 2000-07-19 22:03:58 +00:00
inet_ntop.c Update. 2000-07-19 22:03:58 +00:00
inet_pton.c Update. 2000-07-19 22:03:58 +00:00
Makefile Update. 2000-07-19 22:13:03 +00:00
mapv4v6addr.h Update. 1999-06-08 21:20:07 +00:00
mapv4v6hostent.h Update. 1999-06-08 21:20:07 +00:00
netdb.h Update. 2000-07-17 22:09:30 +00:00
ns_name.c Update. 2000-07-19 22:03:58 +00:00
ns_netint.c Update. 2000-07-19 22:03:58 +00:00
ns_parse.c Update. 2000-07-19 22:03:58 +00:00
ns_print.c Update. 2000-07-19 22:03:58 +00:00
ns_samedomain.c Update. 2000-07-19 22:03:58 +00:00
ns_ttl.c Update. 2000-07-19 22:03:58 +00:00
nsap_addr.c Update. 2000-07-19 22:03:58 +00:00
README Update. 2000-07-19 22:13:03 +00:00
res_comp.c Update. 2000-07-19 22:03:58 +00:00
res_data.c Update. 2000-07-19 22:03:58 +00:00
res_debug.c Update. 2000-07-19 22:03:58 +00:00
res_debug.h Update. 1999-12-04 18:05:55 +00:00
res_hconf.c Update. 1999-10-29 21:40:21 +00:00
res_hconf.h Update. 1998-11-20 17:27:07 +00:00
res_init.c Update. 2000-07-19 22:03:58 +00:00
res_libc.c Update. 2000-07-19 22:03:58 +00:00
res_mkquery.c Update. 2000-07-19 22:03:58 +00:00
res_query.c Update. 2000-07-19 22:03:58 +00:00
res_send.c Update. 2000-07-21 04:12:25 +00:00
resolv.h Update. 2000-07-21 04:12:25 +00:00
tst-aton.c Update. 1999-10-02 16:34:45 +00:00
Versions Update. 2000-07-19 22:03:58 +00:00

Starting with version 2.2, the resolver in the GNU C Library comes
from BIND 8.  Only a subset of the src/lib/resolv part of libbind is
included here; basically the parts that are needed to provide the
functionality present in the resolver from BIND 4.9.7 that was
included in the previous release of the GNU C Library, augmented by
the parts needed to provide thread-safety.  This means that support
for things as dynamic DNS updates and TSIG keys isn't included.  If
you need those facilities, please take a look at the full BIND
distribution.


Differences
===========

The resolver in the GNU C Library still differs from what's in BIND
8.2.3-T5B:

* The resolver in glibc strictly adheres to the recommendations in RFC
  1535.  BIND 8.2.3-T5B seems to relax those rules a bit (see the code
  that's wrapped in `#ifndef RFC1535').

* The RES_DEBUG option (`options debug' in /etc/resolv.conf) has been
  disabled.

* The resolver in glibc allows underscores in domain names.

* The <resolv.h> header in glibc includes <netinet/in.h> and
  <arpa/nameser.h> to make it self-contained.

* The `res_close' function in glibc only tries to close open files
  referenced through `_res' if the RES_INIT bit is set in
  `_res.options'.  This fixes a potential security bug with programs
  that bogusly call `res_close' without initializing the resolver
  state first.  Note that the thread-safe `res_nclose' still doesn't
  check the RES_INIT bit.  By the way, you're not really supposed to
  call `res_close/res_nclose' directly.


Source code
===========

The following files come from the BIND distribution (currently version
8.2.3-T5B):

src/include/
  arpa/nameser.h
  arpa/nameser_compat.h
  resolv.h

src/lib/resolv/
  herror.c
  res_comp.c
  res_data.c
  res_debug.c
  res_debug.h
  res_init.c
  res_mkquery.c
  res_query.c
  res_send.c

src/lib/nameser/
  ns_name.c
  ns_netint.c
  ns_parse.c
  ns_print.c
  ns_samedomain.c
  ns_ttl.c

src/lib/inet/
  inet_addr.c
  inet_net_ntop.c
  inet_net_pton.c
  inet_neta.c
  inet_ntop.c
  inet_pton.c
  nsap_addr.c

src/lib/isc/
  base64.c

Some of these files have been optimized a bit, and adaptations have
been made to make them fit in with the rest of glibc.  The more
non-obvious changes are wrapped in something like `#ifdef _LIBC'.

res_libc.c is home-brewn, although parts of it are taken from res_data.c.

res_hconf.c and res_hconf.h were contributed by David Mosberger, and
do not come from BIND.

The files gethnamaddr.c, mapv4v6addr.h and mapv4v6hostent.h are
leftovers from BIND 4.9.7.