The netresolv suite provides functions and documentation for communicating with domain name servers, retrieving network host entries from /etc/hosts or via DNS, converting CIDR network addresses, performing Hesiod information lookups, retrieving network entries from /etc/networks, implementing TSIG transaction/request security of DNS messages, performing name-to-address and address-to-name translations, and utilizing /etc/resolv.conf for resolver configuration.

Historically, much of the code is derived from the CSRG BSD distributions, such as the old BSD gethostbyname() standard API. It was previously also maintained by ISC and distributed with BIND and libbind. The handoff of the maintainership from ISC to NetBSD happened in July 2013. The libbind-6.0 version from March 2009 is available via ISC at http://ftp.isc.org/isc/libbind/6.0/.

Bug fixes and development discussion for this code can be discussed on the tech-userlevel mailing list.

Patches of NetBSD (June 2013 head) against libbind-6.0 are available at: http://ftp.netbsd.org/pub/NetBSD/misc/reed/netresolv/

The src/external/bsd/libbind http://cvsweb.netbsd.org/bsdweb.cgi/src/external/bsd/libbind/ will be removed, and src/external/bsd/netresolv will be created, ISC's latest version (from ISC's CVS) imported on a vendor branch, and then NetBSD's changes merged.


libbind provides portability headers: port_before.h and port_after.h

port

port directory provides portability headers for many operating systems make directory provides common Makefile rules and mkdep

bsd

bsd directory contains compatibility code, such as: daemon(), __ftruncate(), isc__gettimeofday(), gettimeofday(), mkstemp(), mktemp(), gettemp(), putenv(), __readv(), setenv(), unsetenv(), findenv(), __setitimer(), strcasecmp(), strncasecmp(), strdup(), isc_strerror(), strpbrk(), strsep(), strtoul(), __utimes(), __writev(), __writev()

dst

dst directory contains the Digital Signature Toolkit code for the DST API and crypto API. The dst code is not included in NetBSD's src. Probably the code in src/lib/libc using it actually is not used.

inet

src/common/lib/libc/inet/inet_addr.c

NetBSD adds _inet_aton.c and _inet_pton.c

libbind has (and NetBSD does not have) inet_data in inet.

irs

irs is the Information Retrieval System; it provides getaddrinfo, gethostbyname, and related. NetBSD doesn't include irs directory as is. But is comparable to some of what we have in src/lib/libc/net/

NetBSD doesn't have dns.c top-level accessor function for the dns, dns_gr.c for hesiod, gai_strerror.c, and more.

isc

isc directory provides many portability functions primarily used for ISC software.

NetBSD only ships with: src/lib/libc/include/isc/assertions.h src/lib/libc/include/isc/dst.h src/lib/libc/include/isc/list.h src/lib/libc/include/isc/memcluster.h src/lib/libc/include/isc/eventlib.h src/lib/libc/include/isc/heap.h src/lib/libc/isc/assertions.c src/lib/libc/isc/ev_streams.c src/lib/libc/isc/ev_timers.c src/lib/libc/isc/eventlib_p.h

nameser

nameser provides the name resolver routines to parse DNS responses

libbind has (and NetBSD does not have) in nameser: ns_date.c which provides ns_datetosecs(), isleap(), and datepart(); ns_newmsg.c for building DNS message packets; ns_rdata.c for unpacking or comparing rdata; and ns_sign.c and for ns_verify.c for tsig.

resolv

NetBSD adds __dn_comp.c, __res_close.c, __res_send.c, h_errno.c, res_compat.c, and res_state.c.

libbind has (and NetBSD does not have) in resolv (even though NetBSD manual documents them): res_findzonecut.c, res_mkupdate.c, res_sendsigned.c, and res_update.c.

tests

tests directory contains dig tool from bind8

Add a comment