File:  [NetBSD Developer Wiki] / wikisrc / individual-software-releases / Attic / libbsdnet.mdwn
Revision 1.5: download - view: text, annotated - select for diffs
Thu Jul 11 22:07:25 2013 UTC (9 months, 1 week ago) by wiki
Branches: MAIN
CVS tags: HEAD
web commit by reed: fix markdown

The libbsdnet 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.

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/libbsdnet/>

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

### port
port directory provides portability headers for many operating sytems
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.
Parts of NetBSD's copy of libbind in src/lib/libc use
this, 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 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(), datepart()
ns_newmsg.c  for building DNS message packets
ns_rdata.c for unpacking or comparing rdata
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, 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
res_update.c

### tests
tests directory contains dig tool from bind8

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb