From b1e4bd53e00e9694dd378a884abd3f2dd790190d Mon Sep 17 00:00:00 2001 From: Tom Rhodes Date: Sun, 19 Sep 2004 01:30:24 +0000 Subject: Vender import of BIND 9.3.0rc4. --- contrib/bind9/lib/lwres/man/Makefile.in | 232 ++++++ contrib/bind9/lib/lwres/man/lwres.3 | 159 +++++ contrib/bind9/lib/lwres/man/lwres.docbook | 244 +++++++ contrib/bind9/lib/lwres/man/lwres.html | 433 ++++++++++++ contrib/bind9/lib/lwres/man/lwres_buffer.3 | 279 ++++++++ contrib/bind9/lib/lwres/man/lwres_buffer.docbook | 378 ++++++++++ contrib/bind9/lib/lwres/man/lwres_buffer.html | 576 +++++++++++++++ contrib/bind9/lib/lwres/man/lwres_config.3 | 107 +++ contrib/bind9/lib/lwres/man/lwres_config.docbook | 159 +++++ contrib/bind9/lib/lwres/man/lwres_config.html | 282 ++++++++ contrib/bind9/lib/lwres/man/lwres_context.3 | 196 ++++++ contrib/bind9/lib/lwres/man/lwres_context.docbook | 283 ++++++++ contrib/bind9/lib/lwres/man/lwres_context.html | 478 +++++++++++++ contrib/bind9/lib/lwres/man/lwres_gabn.3 | 195 +++++ contrib/bind9/lib/lwres/man/lwres_gabn.docbook | 255 +++++++ contrib/bind9/lib/lwres/man/lwres_gabn.html | 419 +++++++++++ contrib/bind9/lib/lwres/man/lwres_gai_strerror.3 | 88 +++ .../bind9/lib/lwres/man/lwres_gai_strerror.docbook | 161 +++++ .../bind9/lib/lwres/man/lwres_gai_strerror.html | 295 ++++++++ contrib/bind9/lib/lwres/man/lwres_getaddrinfo.3 | 249 +++++++ .../bind9/lib/lwres/man/lwres_getaddrinfo.docbook | 372 ++++++++++ contrib/bind9/lib/lwres/man/lwres_getaddrinfo.html | 693 ++++++++++++++++++ contrib/bind9/lib/lwres/man/lwres_gethostent.3 | 272 +++++++ .../bind9/lib/lwres/man/lwres_gethostent.docbook | 407 +++++++++++ contrib/bind9/lib/lwres/man/lwres_gethostent.html | 784 +++++++++++++++++++++ contrib/bind9/lib/lwres/man/lwres_getipnode.3 | 189 +++++ .../bind9/lib/lwres/man/lwres_getipnode.docbook | 307 ++++++++ contrib/bind9/lib/lwres/man/lwres_getipnode.html | 512 ++++++++++++++ contrib/bind9/lib/lwres/man/lwres_getnameinfo.3 | 86 +++ .../bind9/lib/lwres/man/lwres_getnameinfo.docbook | 154 ++++ contrib/bind9/lib/lwres/man/lwres_getnameinfo.html | 290 ++++++++ contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.3 | 144 ++++ .../lib/lwres/man/lwres_getrrsetbyname.docbook | 208 ++++++ .../bind9/lib/lwres/man/lwres_getrrsetbyname.html | 360 ++++++++++ contrib/bind9/lib/lwres/man/lwres_gnba.3 | 188 +++++ contrib/bind9/lib/lwres/man/lwres_gnba.docbook | 259 +++++++ contrib/bind9/lib/lwres/man/lwres_gnba.html | 409 +++++++++++ contrib/bind9/lib/lwres/man/lwres_hstrerror.3 | 69 ++ .../bind9/lib/lwres/man/lwres_hstrerror.docbook | 124 ++++ contrib/bind9/lib/lwres/man/lwres_hstrerror.html | 241 +++++++ contrib/bind9/lib/lwres/man/lwres_inetntop.3 | 54 ++ contrib/bind9/lib/lwres/man/lwres_inetntop.docbook | 99 +++ contrib/bind9/lib/lwres/man/lwres_inetntop.html | 177 +++++ contrib/bind9/lib/lwres/man/lwres_noop.3 | 162 +++++ contrib/bind9/lib/lwres/man/lwres_noop.docbook | 229 ++++++ contrib/bind9/lib/lwres/man/lwres_noop.html | 388 ++++++++++ contrib/bind9/lib/lwres/man/lwres_packet.3 | 151 ++++ contrib/bind9/lib/lwres/man/lwres_packet.docbook | 218 ++++++ contrib/bind9/lib/lwres/man/lwres_packet.html | 362 ++++++++++ contrib/bind9/lib/lwres/man/lwres_resutil.3 | 153 ++++ contrib/bind9/lib/lwres/man/lwres_resutil.docbook | 221 ++++++ contrib/bind9/lib/lwres/man/lwres_resutil.html | 387 ++++++++++ 52 files changed, 14137 insertions(+) create mode 100644 contrib/bind9/lib/lwres/man/Makefile.in create mode 100644 contrib/bind9/lib/lwres/man/lwres.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_buffer.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_buffer.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_buffer.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_config.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_config.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_config.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_context.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_context.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_context.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_gabn.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_gabn.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_gabn.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_gai_strerror.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_gai_strerror.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_gai_strerror.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_getaddrinfo.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_getaddrinfo.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_getaddrinfo.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_gethostent.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_gethostent.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_gethostent.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_getipnode.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_getipnode.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_getipnode.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_getnameinfo.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_getnameinfo.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_getnameinfo.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_gnba.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_gnba.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_gnba.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_hstrerror.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_hstrerror.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_hstrerror.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_inetntop.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_inetntop.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_inetntop.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_noop.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_noop.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_noop.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_packet.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_packet.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_packet.html create mode 100644 contrib/bind9/lib/lwres/man/lwres_resutil.3 create mode 100644 contrib/bind9/lib/lwres/man/lwres_resutil.docbook create mode 100644 contrib/bind9/lib/lwres/man/lwres_resutil.html (limited to 'contrib/bind9/lib/lwres/man') diff --git a/contrib/bind9/lib/lwres/man/Makefile.in b/contrib/bind9/lib/lwres/man/Makefile.in new file mode 100644 index 000000000000..a591a2a24a3a --- /dev/null +++ b/contrib/bind9/lib/lwres/man/Makefile.in @@ -0,0 +1,232 @@ +# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2001 Internet Software Consortium. +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +# $Id: Makefile.in,v 1.6.206.1 2004/03/06 08:15:36 marka Exp $ + +srcdir = @srcdir@ +VPATH = @srcdir@ +top_srcdir = @top_srcdir@ + +@BIND9_VERSION@ + +@BIND9_MAKE_RULES@ + +# Alphabetically +#MANPAGES = lwres.3 lwres_addr_parse.3 lwres_buffer.3 \ +# lwres_buffer_add.3 lwres_buffer_back.3 lwres_buffer_clear.3 \ +# lwres_buffer_first.3 lwres_buffer_forward.3 \ +# lwres_buffer_getmem.3 lwres_buffer_getuint16.3 \ +# lwres_buffer_getuint32.3 lwres_buffer_getuint8.3 \ +# lwres_buffer_init.3 lwres_buffer_invalidate.3 \ +# lwres_buffer_putmem.3 lwres_buffer_putuint16.3 \ +# lwres_buffer_putuint32.3 lwres_buffer_putuint8.3 \ +# lwres_buffer_subtract.3 lwres_conf_clear.3 \ +# lwres_conf_get.3 lwres_conf_init.3 \ +# lwres_conf_parse.3 lwres_conf_print.3 \ +# lwres_config.3 lwres_context.3 \ +# lwres_context_allocmem.3 lwres_context_create.3 \ +# lwres_context_destroy.3 lwres_context_freemem.3 \ +# lwres_context_initserial.3 lwres_context_nextserial.3 \ +# lwres_context_sendrecv.3 lwres_endhostent.3 \ +# lwres_endhostent_r.3 lwres_freeaddrinfo.3 \ +# lwres_freehostent.3 lwres_gabn.3 \ +# lwres_gabnrequest_free.3 lwres_gabnrequest_parse.3 \ +# lwres_gabnrequest_render.3 lwres_gabnresponse_free.3 \ +# lwres_gabnresponse_parse.3 lwres_gabnresponse_render.3 \ +# lwres_gai_strerror.3 lwres_getaddrinfo.3 \ +# lwres_getaddrsbyname.3 lwres_gethostbyaddr.3 \ +# lwres_gethostbyaddr_r.3 lwres_gethostbyname.3 \ +# lwres_gethostbyname2.3 lwres_gethostbyname_r.3 \ +# lwres_gethostent.3 lwres_gethostent_r.3 \ +# lwres_getipnode.3 lwres_getipnodebyaddr.3 \ +# lwres_getipnodebyname.3 lwres_getnamebyaddr.3 \ +# lwres_getnameinfo.3 lwres_getrrsetbyname.3 \ +# lwres_gnba.3 lwres_gnbarequest_free.3 \ +# lwres_gnbarequest_parse.3 lwres_gnbarequest_render.3 \ +# lwres_gnbaresponse_free.3 lwres_gnbaresponse_parse.3 \ +# lwres_gnbaresponse_render.3 lwres_herror.3 \ +# lwres_hstrerror.3 lwres_inetntop.3 \ +# lwres_lwpacket_parseheader.3 lwres_lwpacket_renderheader.3 \ +# lwres_net_ntop.3 lwres_noop.3 \ +# lwres_nooprequest_free.3 lwres_nooprequest_parse.3 \ +# lwres_nooprequest_render.3 lwres_noopresponse_free.3 \ +# lwres_noopresponse_parse.3 lwres_noopresponse_render.3 \ +# lwres_packet.3 lwres_resutil.3 \ +# lwres_sethostent.3 lwres_sethostent_r.3 \ +# lwres_string_parse.3 + + +MANPAGES = lwres.3 lwres_buffer.3 lwres_config.3 lwres_context.3 \ + lwres_gabn.3 lwres_gai_strerror.3 lwres_getaddrinfo.3 \ + lwres_gethostent.3 lwres_getipnode.3 lwres_getnameinfo.3 \ + lwres_getrrsetbyname.3 lwres_gnba.3 lwres_hstrerror.3 lwres_inetntop.3 \ + lwres_noop.3 lwres_packet.3 lwres_resutil.3 + +HTMLPAGES = lwres.html lwres_buffer.html lwres_config.html lwres_context.html \ + lwres_gabn.html lwres_gai_strerror.html lwres_getaddrinfo.html \ + lwres_gethostent.html lwres_getipnode.html lwres_getnameinfo.html \ + lwres_getrrsetbyname.html lwres_gnba.html lwres_hstrerror.html lwres_inetntop.html \ + lwres_noop.html lwres_packet.html lwres_resutil.html + +MANOBJS = ${MANPAGES} ${HTMLPAGES} + +doc man:: ${MANOBJS} + +docclean manclean maintainer-clean:: + rm -f ${MANOBJS} + +installdirs: + $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man3 + +man3 = ${DESTDIR}${mandir}/man3 + +install:: installdirs + for m in ${MANPAGES}; do ${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man3; done + rm -f ${man3}/lwres_addr_parse.3 + @LN@ ${man3}/lwres_resutil.3 ${man3}/lwres_addr_parse.3 + rm -f ${man3}/lwres_buffer_add.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_add.3 + rm -f ${man3}/lwres_buffer_back.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_back.3 + rm -f ${man3}/lwres_buffer_clear.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_clear.3 + rm -f ${man3}/lwres_buffer_first.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_first.3 + rm -f ${man3}/lwres_buffer_forward.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_forward.3 + rm -f ${man3}/lwres_buffer_getmem.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_getmem.3 + rm -f ${man3}/lwres_buffer_getuint16.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_getuint16.3 + rm -f ${man3}/lwres_buffer_getuint32.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_getuint32.3 + rm -f ${man3}/lwres_buffer_getuint8.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_getuint8.3 + rm -f ${man3}/lwres_buffer_init.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_init.3 + rm -f ${man3}/lwres_buffer_invalidate.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_invalidate.3 + rm -f ${man3}/lwres_buffer_putmem.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_putmem.3 + rm -f ${man3}/lwres_buffer_putuint16.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_putuint16.3 + rm -f ${man3}/lwres_buffer_putuint32.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_putuint32.3 + rm -f ${man3}/lwres_buffer_putuint8.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_putuint8.3 + rm -f ${man3}/lwres_buffer_subtract.3 + @LN@ ${man3}/lwres_buffer.3 ${man3}/lwres_buffer_subtract.3 + rm -f ${man3}/lwres_conf_clear.3 + @LN@ ${man3}/lwres_config.3 ${man3}/lwres_conf_clear.3 + rm -f ${man3}/lwres_conf_get.3 + @LN@ ${man3}/lwres_config.3 ${man3}/lwres_conf_get.3 + rm -f ${man3}/lwres_conf_init.3 + @LN@ ${man3}/lwres_config.3 ${man3}/lwres_conf_init.3 + rm -f ${man3}/lwres_conf_parse.3 + @LN@ ${man3}/lwres_config.3 ${man3}/lwres_conf_parse.3 + rm -f ${man3}/lwres_conf_print.3 + @LN@ ${man3}/lwres_config.3 ${man3}/lwres_conf_print.3 + rm -f ${man3}/lwres_context_allocmem.3 + @LN@ ${man3}/lwres_context.3 ${man3}/lwres_context_allocmem.3 + rm -f ${man3}/lwres_context_create.3 + @LN@ ${man3}/lwres_context.3 ${man3}/lwres_context_create.3 + rm -f ${man3}/lwres_context_destroy.3 + @LN@ ${man3}/lwres_context.3 ${man3}/lwres_context_destroy.3 + rm -f ${man3}/lwres_context_freemem.3 + @LN@ ${man3}/lwres_context.3 ${man3}/lwres_context_freemem.3 + rm -f ${man3}/lwres_context_initserial.3 + @LN@ ${man3}/lwres_context.3 ${man3}/lwres_context_initserial.3 + rm -f ${man3}/lwres_context_nextserial.3 + @LN@ ${man3}/lwres_context.3 ${man3}/lwres_context_nextserial.3 + rm -f ${man3}/lwres_context_sendrecv.3 + @LN@ ${man3}/lwres_context.3 ${man3}/lwres_context_sendrecv.3 + rm -f ${man3}/lwres_endhostent.3 + @LN@ ${man3}/lwres_gethostent.3 ${man3}/lwres_endhostent.3 + rm -f ${man3}/lwres_endhostent_r.3 + @LN@ ${man3}/lwres_gethostent.3 ${man3}/lwres_endhostent_r.3 + rm -f ${man3}/lwres_freeaddrinfo.3 + @LN@ ${man3}/lwres_getaddrinfo.3 ${man3}/lwres_freeaddrinfo.3 + rm -f ${man3}/lwres_freehostent.3 + @LN@ ${man3}/lwres_getipnode.3 ${man3}/lwres_freehostent.3 + rm -f ${man3}/lwres_gabnrequest_free.3 + @LN@ ${man3}/lwres_gabn.3 ${man3}/lwres_gabnrequest_free.3 + rm -f ${man3}/lwres_gabnrequest_parse.3 + @LN@ ${man3}/lwres_gabn.3 ${man3}/lwres_gabnrequest_parse.3 + rm -f ${man3}/lwres_gabnrequest_render.3 + @LN@ ${man3}/lwres_gabn.3 ${man3}/lwres_gabnrequest_render.3 + rm -f ${man3}/lwres_gabnresponse_free.3 + @LN@ ${man3}/lwres_gabn.3 ${man3}/lwres_gabnresponse_free.3 + rm -f ${man3}/lwres_gabnresponse_parse.3 + @LN@ ${man3}/lwres_gabn.3 ${man3}/lwres_gabnresponse_parse.3 + rm -f ${man3}/lwres_gabnresponse_render.3 + @LN@ ${man3}/lwres_gabn.3 ${man3}/lwres_gabnresponse_render.3 + rm -f ${man3}/lwres_getaddrsbyname.3 + @LN@ ${man3}/lwres_resutil.3 ${man3}/lwres_getaddrsbyname.3 + rm -f ${man3}/lwres_gethostbyaddr.3 + @LN@ ${man3}/lwres_gethostent.3 ${man3}/lwres_gethostbyaddr.3 + rm -f ${man3}/lwres_gethostbyaddr_r.3 + @LN@ ${man3}/lwres_gethostent.3 ${man3}/lwres_gethostbyaddr_r.3 + rm -f ${man3}/lwres_gethostbyname.3 + @LN@ ${man3}/lwres_gethostent.3 ${man3}/lwres_gethostbyname.3 + rm -f ${man3}/lwres_gethostbyname2.3 + @LN@ ${man3}/lwres_gethostent.3 ${man3}/lwres_gethostbyname2.3 + rm -f ${man3}/lwres_gethostbyname_r.3 + @LN@ ${man3}/lwres_gethostent.3 ${man3}/lwres_gethostbyname_r.3 + rm -f ${man3}/lwres_gethostent_r.3 + @LN@ ${man3}/lwres_gethostent.3 ${man3}/lwres_gethostent_r.3 + rm -f ${man3}/lwres_getipnodebyaddr.3 + @LN@ ${man3}/lwres_getipnode.3 ${man3}/lwres_getipnodebyaddr.3 + rm -f ${man3}/lwres_getipnodebyname.3 + @LN@ ${man3}/lwres_getipnode.3 ${man3}/lwres_getipnodebyname.3 + rm -f ${man3}/lwres_getnamebyaddr.3 + @LN@ ${man3}/lwres_resutil.3 ${man3}/lwres_getnamebyaddr.3 + rm -f ${man3}/lwres_gnbarequest_free.3 + @LN@ ${man3}/lwres_gnba.3 ${man3}/lwres_gnbarequest_free.3 + rm -f ${man3}/lwres_gnbarequest_parse.3 + @LN@ ${man3}/lwres_gnba.3 ${man3}/lwres_gnbarequest_parse.3 + rm -f ${man3}/lwres_gnbarequest_render.3 + @LN@ ${man3}/lwres_gnba.3 ${man3}/lwres_gnbarequest_render.3 + rm -f ${man3}/lwres_gnbaresponse_free.3 + @LN@ ${man3}/lwres_gnba.3 ${man3}/lwres_gnbaresponse_free.3 + rm -f ${man3}/lwres_gnbaresponse_parse.3 + @LN@ ${man3}/lwres_gnba.3 ${man3}/lwres_gnbaresponse_parse.3 + rm -f ${man3}/lwres_gnbaresponse_render.3 + @LN@ ${man3}/lwres_gnba.3 ${man3}/lwres_gnbaresponse_render.3 + rm -f ${man3}/lwres_herror.3 + @LN@ ${man3}/lwres_hstrerror.3 ${man3}/lwres_herror.3 + rm -f ${man3}/lwres_lwpacket_parseheader.3 + @LN@ ${man3}/lwres_packet.3 ${man3}/lwres_lwpacket_parseheader.3 + rm -f ${man3}/lwres_lwpacket_renderheader.3 + @LN@ ${man3}/lwres_packet.3 ${man3}/lwres_lwpacket_renderheader.3 + rm -f ${man3}/lwres_net_ntop.3 + @LN@ ${man3}/lwres_inetntop.3 ${man3}/lwres_net_ntop.3 + rm -f ${man3}/lwres_nooprequest_free.3 + @LN@ ${man3}/lwres_noop.3 ${man3}/lwres_nooprequest_free.3 + rm -f ${man3}/lwres_nooprequest_parse.3 + @LN@ ${man3}/lwres_noop.3 ${man3}/lwres_nooprequest_parse.3 + rm -f ${man3}/lwres_nooprequest_render.3 + @LN@ ${man3}/lwres_noop.3 ${man3}/lwres_nooprequest_render.3 + rm -f ${man3}/lwres_noopresponse_free.3 + @LN@ ${man3}/lwres_noop.3 ${man3}/lwres_noopresponse_free.3 + rm -f ${man3}/lwres_noopresponse_parse.3 + @LN@ ${man3}/lwres_noop.3 ${man3}/lwres_noopresponse_parse.3 + rm -f ${man3}/lwres_noopresponse_render.3 + @LN@ ${man3}/lwres_noop.3 ${man3}/lwres_noopresponse_render.3 + rm -f ${man3}/lwres_sethostent.3 + @LN@ ${man3}/lwres_gethostent.3 ${man3}/lwres_sethostent.3 + rm -f ${man3}/lwres_sethostent_r.3 + @LN@ ${man3}/lwres_gethostent.3 ${man3}/lwres_sethostent_r.3 + rm -f ${man3}/lwres_string_parse.3 + @LN@ ${man3}/lwres_resutil.3 ${man3}/lwres_string_parse.3 diff --git a/contrib/bind9/lib/lwres/man/lwres.3 b/contrib/bind9/lib/lwres/man/lwres.3 new file mode 100644 index 000000000000..ad125d26d017 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres.3 @@ -0,0 +1,159 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres.3,v 1.15.206.1 2004/03/06 07:41:42 marka Exp $ +.\" +.TH "LWRES" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres \- introduction to the lightweight resolver library +.SH SYNOPSIS +\fB#include \fR +.SH "DESCRIPTION" +.PP +The BIND 9 lightweight resolver library is a simple, name service +independent stub resolver library. It provides hostname-to-address +and address-to-hostname lookup services to applications by +transmitting lookup requests to a resolver daemon +\fBlwresd\fR +running on the local host. The resover daemon performs the +lookup using the DNS or possibly other name service protocols, +and returns the results to the application through the library. +The library and resolver daemon communicate using a simple +UDP-based protocol. +.SH "OVERVIEW" +.PP +The lwresd library implements multiple name service APIs. +The standard +\fBgethostbyname()\fR, +\fBgethostbyaddr()\fR, +\fBgethostbyname_r()\fR, +\fBgethostbyaddr_r()\fR, +\fBgetaddrinfo()\fR, +\fBgetipnodebyname()\fR, +and +\fBgetipnodebyaddr()\fR +functions are all supported. To allow the lwres library to coexist +with system libraries that define functions of the same name, +the library defines these functions with names prefixed by +lwres_. +To define the standard names, applications must include the +header file +\fI\fR +which contains macro definitions mapping the standard function names +into +lwres_ +prefixed ones. Operating system vendors who integrate the lwres +library into their base distributions should rename the functions +in the library proper so that the renaming macros are not needed. +.PP +The library also provides a native API consisting of the functions +\fBlwres_getaddrsbyname()\fR +and +\fBlwres_getnamebyaddr()\fR. +These may be called by applications that require more detailed +control over the lookup process than the standard functions +provide. +.PP +In addition to these name service independent address lookup +functions, the library implements a new, experimental API +for looking up arbitrary DNS resource records, using the +\fBlwres_getaddrsbyname()\fR +function. +.PP +Finally, there is a low-level API for converting lookup +requests and responses to and from raw lwres protocol packets. +This API can be used by clients requiring nonblocking operation, +and is also used when implementing the server side of the lwres +protocol, for example in the +\fBlwresd\fR +resolver daemon. The use of this low-level API in clients +and servers is outlined in the following sections. +.SH "CLIENT-SIDE LOW-LEVEL API CALL FLOW" +.PP +When a client program wishes to make an lwres request using the +native low-level API, it typically performs the following +sequence of actions. +.PP +(1) Allocate or use an existing \fBlwres_packet_t\fR, +called pkt below. +.PP +(2) Set \fBpkt.recvlength\fR to the maximum length we will accept. +This is done so the receiver of our packets knows how large our receive +buffer is. The "default" is a constant in +\fIlwres.h\fR: LWRES_RECVLENGTH = 4096. +.PP +(3) Set \fBpkt.serial\fR +to a unique serial number. This value is echoed +back to the application by the remote server. +.PP +(4) Set \fBpkt.pktflags\fR. Usually this is set to 0. +.PP +(5) Set \fBpkt.result\fR to 0. +.PP +(6) Call \fBlwres_*request_render()\fR, +or marshall in the data using the primitives +such as \fBlwres_packet_render()\fR +and storing the packet data. +.PP +(7) Transmit the resulting buffer. +.PP +(8) Call \fBlwres_*response_parse()\fR +to parse any packets received. +.PP +(9) Verify that the opcode and serial match a request, and process the +packet specific information contained in the body. +.SH "SERVER-SIDE LOW-LEVEL API CALL FLOW" +.PP +When implementing the server side of the lightweight resolver +protocol using the lwres library, a sequence of actions like the +following is typically involved in processing each request packet. +.PP +Note that the same \fBlwres_packet_t\fR is used +in both the \fB_parse()\fR and \fB_render()\fR calls, +with only a few modifications made +to the packet header's contents between uses. This method is recommended +as it keeps the serial, opcode, and other fields correct. +.PP +(1) When a packet is received, call \fBlwres_*request_parse()\fR to +unmarshall it. This returns a \fBlwres_packet_t\fR (also called pkt, below) +as well as a data specific type, such as \fBlwres_gabnrequest_t\fR. +.PP +(2) Process the request in the data specific type. +.PP +(3) Set the \fBpkt.result\fR, +\fBpkt.recvlength\fR as above. All other fields can +be left untouched since they were filled in by the \fB*_parse()\fR call +above. If using \fBlwres_*response_render()\fR, +\fBpkt.pktflags\fR will be set up +properly. Otherwise, the LWRES_LWPACKETFLAG_RESPONSE bit should be +set. +.PP +(4) Call the data specific rendering function, such as +\fBlwres_gabnresponse_render()\fR. +.PP +(5) Send the resulting packet to the client. +.PP +.SH "SEE ALSO" +.PP +\fBlwres_gethostent\fR(3), +\fBlwres_getipnode\fR(3), +\fBlwres_getnameinfo\fR(3), +\fBlwres_noop\fR(3), +\fBlwres_gabn\fR(3), +\fBlwres_gnba\fR(3), +\fBlwres_context\fR(3), +\fBlwres_config\fR(3), +\fBresolver\fR(5), +\fBlwresd\fR(8). diff --git a/contrib/bind9/lib/lwres/man/lwres.docbook b/contrib/bind9/lib/lwres/man/lwres.docbook new file mode 100644 index 000000000000..511d82e91ea9 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres.docbook @@ -0,0 +1,244 @@ + + + + + + + + +Jun 30, 2000 + + +lwres +3 +BIND9 + + +lwres +introduction to the lightweight resolver library + + + + +#include <lwres/lwres.h> + + + + +DESCRIPTION + +The BIND 9 lightweight resolver library is a simple, name service +independent stub resolver library. It provides hostname-to-address +and address-to-hostname lookup services to applications by +transmitting lookup requests to a resolver daemon +lwresd +running on the local host. The resover daemon performs the +lookup using the DNS or possibly other name service protocols, +and returns the results to the application through the library. +The library and resolver daemon communicate using a simple +UDP-based protocol. + + + + +OVERVIEW + +The lwresd library implements multiple name service APIs. +The standard +gethostbyname(), +gethostbyaddr(), +gethostbyname_r(), +gethostbyaddr_r(), +getaddrinfo(), +getipnodebyname(), +and +getipnodebyaddr() +functions are all supported. To allow the lwres library to coexist +with system libraries that define functions of the same name, +the library defines these functions with names prefixed by +lwres_. +To define the standard names, applications must include the +header file +<lwres/netdb.h> +which contains macro definitions mapping the standard function names +into +lwres_ +prefixed ones. Operating system vendors who integrate the lwres +library into their base distributions should rename the functions +in the library proper so that the renaming macros are not needed. + + +The library also provides a native API consisting of the functions +lwres_getaddrsbyname() +and +lwres_getnamebyaddr(). +These may be called by applications that require more detailed +control over the lookup process than the standard functions +provide. + + +In addition to these name service independent address lookup +functions, the library implements a new, experimental API +for looking up arbitrary DNS resource records, using the +lwres_getaddrsbyname() +function. + + +Finally, there is a low-level API for converting lookup +requests and responses to and from raw lwres protocol packets. +This API can be used by clients requiring nonblocking operation, +and is also used when implementing the server side of the lwres +protocol, for example in the +lwresd +resolver daemon. The use of this low-level API in clients +and servers is outlined in the following sections. + + + +CLIENT-SIDE LOW-LEVEL API CALL FLOW + +When a client program wishes to make an lwres request using the +native low-level API, it typically performs the following +sequence of actions. + + +(1) Allocate or use an existing lwres_packet_t, +called pkt below. + + +(2) Set pkt.recvlength to the maximum length we will accept. +This is done so the receiver of our packets knows how large our receive +buffer is. The "default" is a constant in +lwres.h: LWRES_RECVLENGTH = 4096. + + +(3) Set pkt.serial +to a unique serial number. This value is echoed +back to the application by the remote server. + + +(4) Set pkt.pktflags. Usually this is set to 0. + + +(5) Set pkt.result to 0. + + +(6) Call lwres_*request_render(), +or marshall in the data using the primitives +such as lwres_packet_render() +and storing the packet data. + + +(7) Transmit the resulting buffer. + + +(8) Call lwres_*response_parse() +to parse any packets received. + + +(9) Verify that the opcode and serial match a request, and process the +packet specific information contained in the body. + + + +SERVER-SIDE LOW-LEVEL API CALL FLOW + +When implementing the server side of the lightweight resolver +protocol using the lwres library, a sequence of actions like the +following is typically involved in processing each request packet. + + +Note that the same lwres_packet_t is used +in both the _parse() and _render() calls, +with only a few modifications made +to the packet header's contents between uses. This method is recommended +as it keeps the serial, opcode, and other fields correct. + + +(1) When a packet is received, call lwres_*request_parse() to +unmarshall it. This returns a lwres_packet_t (also called pkt, below) +as well as a data specific type, such as lwres_gabnrequest_t. + + +(2) Process the request in the data specific type. + + +(3) Set the pkt.result, +pkt.recvlength as above. All other fields can +be left untouched since they were filled in by the *_parse() call +above. If using lwres_*response_render(), +pkt.pktflags will be set up +properly. Otherwise, the LWRES_LWPACKETFLAG_RESPONSE bit should be +set. + + +(4) Call the data specific rendering function, such as +lwres_gabnresponse_render(). + + +(5) Send the resulting packet to the client. + + + + + +SEE ALSO + + +lwres_gethostent3 +, + + +lwres_getipnode3 +, + + +lwres_getnameinfo3 +, + + +lwres_noop3 +, + + +lwres_gabn3 +, + + +lwres_gnba3 +, + + +lwres_context3 +, + + +lwres_config3 +, + + +resolver5 +, + + +lwresd8 +. + + + + diff --git a/contrib/bind9/lib/lwres/man/lwres.html b/contrib/bind9/lib/lwres/man/lwres.html new file mode 100644 index 000000000000..793ab72a526e --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres.html @@ -0,0 +1,433 @@ + + + + + +lwres

lwres

Name

lwres -- introduction to the lightweight resolver library

Synopsis

#include <lwres/lwres.h>

DESCRIPTION

The BIND 9 lightweight resolver library is a simple, name service +independent stub resolver library. It provides hostname-to-address +and address-to-hostname lookup services to applications by +transmitting lookup requests to a resolver daemon +lwresd +running on the local host. The resover daemon performs the +lookup using the DNS or possibly other name service protocols, +and returns the results to the application through the library. +The library and resolver daemon communicate using a simple +UDP-based protocol.

OVERVIEW

The lwresd library implements multiple name service APIs. +The standard +gethostbyname(), +gethostbyaddr(), +gethostbyname_r(), +gethostbyaddr_r(), +getaddrinfo(), +getipnodebyname(), +and +getipnodebyaddr() +functions are all supported. To allow the lwres library to coexist +with system libraries that define functions of the same name, +the library defines these functions with names prefixed by +lwres_. +To define the standard names, applications must include the +header file +<lwres/netdb.h> +which contains macro definitions mapping the standard function names +into +lwres_ +prefixed ones. Operating system vendors who integrate the lwres +library into their base distributions should rename the functions +in the library proper so that the renaming macros are not needed.

The library also provides a native API consisting of the functions +lwres_getaddrsbyname() +and +lwres_getnamebyaddr(). +These may be called by applications that require more detailed +control over the lookup process than the standard functions +provide.

In addition to these name service independent address lookup +functions, the library implements a new, experimental API +for looking up arbitrary DNS resource records, using the +lwres_getaddrsbyname() +function.

Finally, there is a low-level API for converting lookup +requests and responses to and from raw lwres protocol packets. +This API can be used by clients requiring nonblocking operation, +and is also used when implementing the server side of the lwres +protocol, for example in the +lwresd +resolver daemon. The use of this low-level API in clients +and servers is outlined in the following sections.

CLIENT-SIDE LOW-LEVEL API CALL FLOW

When a client program wishes to make an lwres request using the +native low-level API, it typically performs the following +sequence of actions.

(1) Allocate or use an existing lwres_packet_t, +called pkt below.

(2) Set pkt.recvlength to the maximum length we will accept. +This is done so the receiver of our packets knows how large our receive +buffer is. The "default" is a constant in +lwres.h: LWRES_RECVLENGTH = 4096.

(3) Set pkt.serial +to a unique serial number. This value is echoed +back to the application by the remote server.

(4) Set pkt.pktflags. Usually this is set to 0.

(5) Set pkt.result to 0.

(6) Call lwres_*request_render(), +or marshall in the data using the primitives +such as lwres_packet_render() +and storing the packet data.

(7) Transmit the resulting buffer.

(8) Call lwres_*response_parse() +to parse any packets received.

(9) Verify that the opcode and serial match a request, and process the +packet specific information contained in the body.

SERVER-SIDE LOW-LEVEL API CALL FLOW

When implementing the server side of the lightweight resolver +protocol using the lwres library, a sequence of actions like the +following is typically involved in processing each request packet.

Note that the same lwres_packet_t is used +in both the _parse() and _render() calls, +with only a few modifications made +to the packet header's contents between uses. This method is recommended +as it keeps the serial, opcode, and other fields correct.

(1) When a packet is received, call lwres_*request_parse() to +unmarshall it. This returns a lwres_packet_t (also called pkt, below) +as well as a data specific type, such as lwres_gabnrequest_t.

(2) Process the request in the data specific type.

(3) Set the pkt.result, +pkt.recvlength as above. All other fields can +be left untouched since they were filled in by the *_parse() call +above. If using lwres_*response_render(), +pkt.pktflags will be set up +properly. Otherwise, the LWRES_LWPACKETFLAG_RESPONSE bit should be +set.

(4) Call the data specific rendering function, such as +lwres_gabnresponse_render().

(5) Send the resulting packet to the client.

SEE ALSO

lwres_gethostent(3), + +lwres_getipnode(3), + +lwres_getnameinfo(3), + +lwres_noop(3), + +lwres_gabn(3), + +lwres_gnba(3), + +lwres_context(3), + +lwres_config(3), + +resolver(5), + +lwresd(8).

diff --git a/contrib/bind9/lib/lwres/man/lwres_buffer.3 b/contrib/bind9/lib/lwres/man/lwres_buffer.3 new file mode 100644 index 000000000000..232742aa0700 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_buffer.3 @@ -0,0 +1,279 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_buffer.3,v 1.12.2.1.8.1 2004/03/06 07:41:42 marka Exp $ +.\" +.TH "LWRES_BUFFER" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_buffer_init, lwres_buffer_invalidate, lwres_buffer_add, lwres_buffer_subtract, lwres_buffer_clear, lwres_buffer_first, lwres_buffer_forward, lwres_buffer_back, lwres_buffer_getuint8, lwres_buffer_putuint8, lwres_buffer_getuint16, lwres_buffer_putuint16, lwres_buffer_getuint32, lwres_buffer_putuint32, lwres_buffer_putmem, lwres_buffer_getmem \- lightweight resolver buffer management +.SH SYNOPSIS +\fB#include +.sp +.na +void +lwres_buffer_init(lwres_buffer_t *b, void *base, unsigned int length); +.ad +.sp +.na +void +lwres_buffer_invalidate(lwres_buffer_t *b); +.ad +.sp +.na +void +lwres_buffer_add(lwres_buffer_t *b, unsigned int n); +.ad +.sp +.na +void +lwres_buffer_subtract(lwres_buffer_t *b, unsigned int n); +.ad +.sp +.na +void +lwres_buffer_clear(lwres_buffer_t *b); +.ad +.sp +.na +void +lwres_buffer_first(lwres_buffer_t *b); +.ad +.sp +.na +void +lwres_buffer_forward(lwres_buffer_t *b, unsigned int n); +.ad +.sp +.na +void +lwres_buffer_back(lwres_buffer_t *b, unsigned int n); +.ad +.sp +.na +lwres_uint8_t +lwres_buffer_getuint8(lwres_buffer_t *b); +.ad +.sp +.na +void +lwres_buffer_putuint8(lwres_buffer_t *b, lwres_uint8_t val); +.ad +.sp +.na +lwres_uint16_t +lwres_buffer_getuint16(lwres_buffer_t *b); +.ad +.sp +.na +void +lwres_buffer_putuint16(lwres_buffer_t *b, lwres_uint16_t val); +.ad +.sp +.na +lwres_uint32_t +lwres_buffer_getuint32(lwres_buffer_t *b); +.ad +.sp +.na +void +lwres_buffer_putuint32(lwres_buffer_t *b, lwres_uint32_t val); +.ad +.sp +.na +void +lwres_buffer_putmem(lwres_buffer_t *b, const unsigned char *base, unsigned int length); +.ad +.sp +.na +void +lwres_buffer_getmem(lwres_buffer_t *b, unsigned char *base, unsigned int length); +.ad +\fR +.SH "DESCRIPTION" +.PP +These functions provide bounds checked access to a region of memory +where data is being read or written. +They are based on, and similar to, the +isc_buffer_ +functions in the ISC library. +.PP +A buffer is a region of memory, together with a set of related +subregions. +The \fBused region\fR and the +\fBavailable\fR region are disjoint, and +their union is the buffer's region. +The used region extends from the beginning of the buffer region to the +last used byte. +The available region extends from one byte greater than the last used +byte to the end of the buffer's region. +The size of the used region can be changed using various +buffer commands. +Initially, the used region is empty. +.PP +The used region is further subdivided into two disjoint regions: the +\fBconsumed region\fR and the \fBremaining region\fR. +The union of these two regions is the used region. +The consumed region extends from the beginning of the used region to +the byte before the \fBcurrent\fR offset (if any). +The \fBremaining\fR region the current pointer to the end of the used +region. +The size of the consumed region can be changed using various +buffer commands. +Initially, the consumed region is empty. +.PP +The \fBactive region\fR is an (optional) subregion of the remaining +region. +It extends from the current offset to an offset in the +remaining region. +Initially, the active region is empty. +If the current offset advances beyond the chosen offset, +the active region will also be empty. +.PP +.sp +.nf + + /------------entire length---------------\\\\ + /----- used region -----\\\\/-- available --\\\\ + +----------------------------------------+ + | consumed | remaining | | + +----------------------------------------+ + a b c d e + + a == base of buffer. + b == current pointer. Can be anywhere between a and d. + c == active pointer. Meaningful between b and d. + d == used pointer. + e == length of buffer. + + a-e == entire length of buffer. + a-d == used region. + a-b == consumed region. + b-d == remaining region. + b-c == optional active region. +.sp +.fi +.PP +\fBlwres_buffer_init()\fR +initializes the +\fBlwres_buffer_t\fR +\fI*b\fR +and assocates it with the memory region of size +\fIlength\fR +bytes starting at location +\fIbase.\fR +.PP +\fBlwres_buffer_invalidate()\fR +marks the buffer +\fI*b\fR +as invalid. Invalidating a buffer after use is not required, +but makes it possible to catch its possible accidental use. +.PP +The functions +\fBlwres_buffer_add()\fR +and +\fBlwres_buffer_subtract()\fR +respectively increase and decrease the used space in +buffer +\fI*b\fR +by +\fIn\fR +bytes. +\fBlwres_buffer_add()\fR +checks for buffer overflow and +\fBlwres_buffer_subtract()\fR +checks for underflow. +These functions do not allocate or deallocate memory. +They just change the value of +\fBused\fR. +.PP +A buffer is re-initialised by +\fBlwres_buffer_clear()\fR. +The function sets +\fBused\fR , +\fBcurrent\fR +and +\fBactive\fR +to zero. +.PP +\fBlwres_buffer_first\fR +makes the consumed region of buffer +\fI*p\fR +empty by setting +\fBcurrent\fR +to zero (the start of the buffer). +.PP +\fBlwres_buffer_forward()\fR +increases the consumed region of buffer +\fI*b\fR +by +\fIn\fR +bytes, checking for overflow. +Similarly, +\fBlwres_buffer_back()\fR +decreases buffer +\fIb\fR's +consumed region by +\fIn\fR +bytes and checks for underflow. +.PP +\fBlwres_buffer_getuint8()\fR +reads an unsigned 8-bit integer from +\fI*b\fR +and returns it. +\fBlwres_buffer_putuint8()\fR +writes the unsigned 8-bit integer +\fIval\fR +to buffer +\fI*b\fR. +.PP +\fBlwres_buffer_getuint16()\fR +and +\fBlwres_buffer_getuint32()\fR +are identical to +\fBlwres_buffer_putuint8()\fR +except that they respectively read an unsigned 16-bit or 32-bit integer +in network byte order from +\fIb\fR. +Similarly, +\fBlwres_buffer_putuint16()\fR +and +\fBlwres_buffer_putuint32()\fR +writes the unsigned 16-bit or 32-bit integer +\fIval\fR +to buffer +\fIb\fR, +in network byte order. +.PP +Arbitrary amounts of data are read or written from a lightweight +resolver buffer with +\fBlwres_buffer_getmem()\fR +and +\fBlwres_buffer_putmem()\fR +respectively. +\fBlwres_buffer_putmem()\fR +copies +\fIlength\fR +bytes of memory at +\fIbase\fR +to +\fIb\fR. +Conversely, +\fBlwres_buffer_getmem()\fR +copies +\fIlength\fR +bytes of memory from +\fIb\fR +to +\fIbase\fR. diff --git a/contrib/bind9/lib/lwres/man/lwres_buffer.docbook b/contrib/bind9/lib/lwres/man/lwres_buffer.docbook new file mode 100644 index 000000000000..4db9fd3acdb4 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_buffer.docbook @@ -0,0 +1,378 @@ + + + + + + + +Jun 30, 2000 + + + +lwres_buffer +3 +BIND9 + + + +lwres_buffer_init +lwres_buffer_invalidate +lwres_buffer_add +lwres_buffer_subtract +lwres_buffer_clear +lwres_buffer_first +lwres_buffer_forward +lwres_buffer_back +lwres_buffer_getuint8 +lwres_buffer_putuint8 +lwres_buffer_getuint16 +lwres_buffer_putuint16 +lwres_buffer_getuint32 +lwres_buffer_putuint32 +lwres_buffer_putmem +lwres_buffer_getmem +lightweight resolver buffer management + + + + + + +#include <lwres/lwbuffer.h> + + + + + +void +lwres_buffer_init +lwres_buffer_t *b +void *base +unsigned int length + + + + +void +lwres_buffer_invalidate +lwres_buffer_t *b + + + +void +lwres_buffer_add +lwres_buffer_t *b +unsigned int n + + + + +void +lwres_buffer_subtract +lwres_buffer_t *b +unsigned int n + + + + +void +lwres_buffer_clear +lwres_buffer_t *b + + + + +void +lwres_buffer_first +lwres_buffer_t *b + + + + +void +lwres_buffer_forward +lwres_buffer_t *b +unsigned int n + + + + +void +lwres_buffer_back +lwres_buffer_t *b +unsigned int n + + + + +lwres_uint8_t +lwres_buffer_getuint8 +lwres_buffer_t *b + + + + +void +lwres_buffer_putuint8 +lwres_buffer_t *b +lwres_uint8_t val + + + + +lwres_uint16_t +lwres_buffer_getuint16 +lwres_buffer_t *b + + + + +void +lwres_buffer_putuint16 +lwres_buffer_t *b +lwres_uint16_t val + + + + +lwres_uint32_t +lwres_buffer_getuint32 +lwres_buffer_t *b + + + + +void +lwres_buffer_putuint32 +lwres_buffer_t *b +lwres_uint32_t val + + + + +void +lwres_buffer_putmem +lwres_buffer_t *b +const unsigned char *base +unsigned int length + + + + +void +lwres_buffer_getmem +lwres_buffer_t *b +unsigned char *base +unsigned int length + + + + + + + +DESCRIPTION + +These functions provide bounds checked access to a region of memory +where data is being read or written. +They are based on, and similar to, the +isc_buffer_ +functions in the ISC library. + + +A buffer is a region of memory, together with a set of related +subregions. +The used region and the +available region are disjoint, and +their union is the buffer's region. +The used region extends from the beginning of the buffer region to the +last used byte. +The available region extends from one byte greater than the last used +byte to the end of the buffer's region. +The size of the used region can be changed using various +buffer commands. +Initially, the used region is empty. + + +The used region is further subdivided into two disjoint regions: the +consumed region and the remaining region. +The union of these two regions is the used region. +The consumed region extends from the beginning of the used region to +the byte before the current offset (if any). +The remaining region the current pointer to the end of the used +region. +The size of the consumed region can be changed using various +buffer commands. +Initially, the consumed region is empty. + + +The active region is an (optional) subregion of the remaining +region. +It extends from the current offset to an offset in the +remaining region. +Initially, the active region is empty. +If the current offset advances beyond the chosen offset, +the active region will also be empty. + + + + + /------------entire length---------------\\ + /----- used region -----\\/-- available --\\ + +----------------------------------------+ + | consumed | remaining | | + +----------------------------------------+ + a b c d e + + a == base of buffer. + b == current pointer. Can be anywhere between a and d. + c == active pointer. Meaningful between b and d. + d == used pointer. + e == length of buffer. + + a-e == entire length of buffer. + a-d == used region. + a-b == consumed region. + b-d == remaining region. + b-c == optional active region. + + + +lwres_buffer_init() +initializes the +lwres_buffer_t +*b +and assocates it with the memory region of size +length +bytes starting at location +base. + + +lwres_buffer_invalidate() +marks the buffer +*b +as invalid. Invalidating a buffer after use is not required, +but makes it possible to catch its possible accidental use. + + +The functions +lwres_buffer_add() +and +lwres_buffer_subtract() +respectively increase and decrease the used space in +buffer +*b +by +n +bytes. +lwres_buffer_add() +checks for buffer overflow and +lwres_buffer_subtract() +checks for underflow. +These functions do not allocate or deallocate memory. +They just change the value of +used. + + +A buffer is re-initialised by +lwres_buffer_clear(). +The function sets +used , +current +and +active +to zero. + + +lwres_buffer_first +makes the consumed region of buffer +*p +empty by setting +current +to zero (the start of the buffer). + + +lwres_buffer_forward() +increases the consumed region of buffer +*b +by +n +bytes, checking for overflow. +Similarly, +lwres_buffer_back() +decreases buffer +b's +consumed region by +n +bytes and checks for underflow. + + +lwres_buffer_getuint8() +reads an unsigned 8-bit integer from +*b +and returns it. +lwres_buffer_putuint8() +writes the unsigned 8-bit integer +val +to buffer +*b. + + +lwres_buffer_getuint16() +and +lwres_buffer_getuint32() +are identical to +lwres_buffer_putuint8() +except that they respectively read an unsigned 16-bit or 32-bit integer +in network byte order from +b. +Similarly, +lwres_buffer_putuint16() +and +lwres_buffer_putuint32() +writes the unsigned 16-bit or 32-bit integer +val +to buffer +b, +in network byte order. + + +Arbitrary amounts of data are read or written from a lightweight +resolver buffer with +lwres_buffer_getmem() +and +lwres_buffer_putmem() +respectively. +lwres_buffer_putmem() +copies +length +bytes of memory at +base +to +b. +Conversely, +lwres_buffer_getmem() +copies +length +bytes of memory from +b +to +base. + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_buffer.html b/contrib/bind9/lib/lwres/man/lwres_buffer.html new file mode 100644 index 000000000000..79354fc05591 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_buffer.html @@ -0,0 +1,576 @@ + + + + + +lwres_buffer

lwres_buffer

Name

lwres_buffer_init, lwres_buffer_invalidate, lwres_buffer_add, lwres_buffer_subtract, lwres_buffer_clear, lwres_buffer_first, lwres_buffer_forward, lwres_buffer_back, lwres_buffer_getuint8, lwres_buffer_putuint8, lwres_buffer_getuint16, lwres_buffer_putuint16, lwres_buffer_getuint32, lwres_buffer_putuint32, lwres_buffer_putmem, lwres_buffer_getmem -- lightweight resolver buffer management

Synopsis

#include <lwres/lwbuffer.h>

void +lwres_buffer_init(lwres_buffer_t *b, void *base, unsigned int length);

void +lwres_buffer_invalidate(lwres_buffer_t *b);

void +lwres_buffer_add(lwres_buffer_t *b, unsigned int n);

void +lwres_buffer_subtract(lwres_buffer_t *b, unsigned int n);

void +lwres_buffer_clear(lwres_buffer_t *b);

void +lwres_buffer_first(lwres_buffer_t *b);

void +lwres_buffer_forward(lwres_buffer_t *b, unsigned int n);

void +lwres_buffer_back(lwres_buffer_t *b, unsigned int n);

lwres_uint8_t +lwres_buffer_getuint8(lwres_buffer_t *b);

void +lwres_buffer_putuint8(lwres_buffer_t *b, lwres_uint8_t val);

lwres_uint16_t +lwres_buffer_getuint16(lwres_buffer_t *b);

void +lwres_buffer_putuint16(lwres_buffer_t *b, lwres_uint16_t val);

lwres_uint32_t +lwres_buffer_getuint32(lwres_buffer_t *b);

void +lwres_buffer_putuint32(lwres_buffer_t *b, lwres_uint32_t val);

void +lwres_buffer_putmem(lwres_buffer_t *b, const unsigned char *base, unsigned int length);

void +lwres_buffer_getmem(lwres_buffer_t *b, unsigned char *base, unsigned int length);

DESCRIPTION

These functions provide bounds checked access to a region of memory +where data is being read or written. +They are based on, and similar to, the +isc_buffer_ +functions in the ISC library.

A buffer is a region of memory, together with a set of related +subregions. +The used region and the +available region are disjoint, and +their union is the buffer's region. +The used region extends from the beginning of the buffer region to the +last used byte. +The available region extends from one byte greater than the last used +byte to the end of the buffer's region. +The size of the used region can be changed using various +buffer commands. +Initially, the used region is empty.

The used region is further subdivided into two disjoint regions: the +consumed region and the remaining region. +The union of these two regions is the used region. +The consumed region extends from the beginning of the used region to +the byte before the current offset (if any). +The remaining region the current pointer to the end of the used +region. +The size of the consumed region can be changed using various +buffer commands. +Initially, the consumed region is empty.

The active region is an (optional) subregion of the remaining +region. +It extends from the current offset to an offset in the +remaining region. +Initially, the active region is empty. +If the current offset advances beyond the chosen offset, +the active region will also be empty.

 
+   /------------entire length---------------\\
+   /----- used region -----\\/-- available --\\
+   +----------------------------------------+
+   | consumed  | remaining |                |
+   +----------------------------------------+
+   a           b     c     d                e
+ 
+  a == base of buffer.
+  b == current pointer.  Can be anywhere between a and d.
+  c == active pointer.  Meaningful between b and d.
+  d == used pointer.
+  e == length of buffer.
+ 
+  a-e == entire length of buffer.
+  a-d == used region.
+  a-b == consumed region.
+  b-d == remaining region.
+  b-c == optional active region.

lwres_buffer_init() +initializes the +lwres_buffer_t +*b +and assocates it with the memory region of size +length +bytes starting at location +base.

lwres_buffer_invalidate() +marks the buffer +*b +as invalid. Invalidating a buffer after use is not required, +but makes it possible to catch its possible accidental use.

The functions +lwres_buffer_add() +and +lwres_buffer_subtract() +respectively increase and decrease the used space in +buffer +*b +by +n +bytes. +lwres_buffer_add() +checks for buffer overflow and +lwres_buffer_subtract() +checks for underflow. +These functions do not allocate or deallocate memory. +They just change the value of +used.

A buffer is re-initialised by +lwres_buffer_clear(). +The function sets +used , +current +and +active +to zero.

lwres_buffer_first +makes the consumed region of buffer +*p +empty by setting +current +to zero (the start of the buffer).

lwres_buffer_forward() +increases the consumed region of buffer +*b +by +n +bytes, checking for overflow. +Similarly, +lwres_buffer_back() +decreases buffer +b's +consumed region by +n +bytes and checks for underflow.

lwres_buffer_getuint8() +reads an unsigned 8-bit integer from +*b +and returns it. +lwres_buffer_putuint8() +writes the unsigned 8-bit integer +val +to buffer +*b.

lwres_buffer_getuint16() +and +lwres_buffer_getuint32() +are identical to +lwres_buffer_putuint8() +except that they respectively read an unsigned 16-bit or 32-bit integer +in network byte order from +b. +Similarly, +lwres_buffer_putuint16() +and +lwres_buffer_putuint32() +writes the unsigned 16-bit or 32-bit integer +val +to buffer +b, +in network byte order.

Arbitrary amounts of data are read or written from a lightweight +resolver buffer with +lwres_buffer_getmem() +and +lwres_buffer_putmem() +respectively. +lwres_buffer_putmem() +copies +length +bytes of memory at +base +to +b. +Conversely, +lwres_buffer_getmem() +copies +length +bytes of memory from +b +to +base.

diff --git a/contrib/bind9/lib/lwres/man/lwres_config.3 b/contrib/bind9/lib/lwres/man/lwres_config.3 new file mode 100644 index 000000000000..0c345efa9791 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_config.3 @@ -0,0 +1,107 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_config.3,v 1.12.2.1.8.1 2004/03/06 07:41:42 marka Exp $ +.\" +.TH "LWRES_CONFIG" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_conf_init, lwres_conf_clear, lwres_conf_parse, lwres_conf_print, lwres_conf_get \- lightweight resolver configuration +.SH SYNOPSIS +\fB#include +.sp +.na +void +lwres_conf_init(lwres_context_t *ctx); +.ad +.sp +.na +void +lwres_conf_clear(lwres_context_t *ctx); +.ad +.sp +.na +lwres_result_t +lwres_conf_parse(lwres_context_t *ctx, const char *filename); +.ad +.sp +.na +lwres_result_t +lwres_conf_print(lwres_context_t *ctx, FILE *fp); +.ad +.sp +.na +lwres_conf_t * +lwres_conf_get(lwres_context_t *ctx); +.ad +\fR +.SH "DESCRIPTION" +.PP +\fBlwres_conf_init()\fR +creates an empty +\fBlwres_conf_t\fR +structure for lightweight resolver context +\fIctx\fR. +.PP +\fBlwres_conf_clear()\fR +frees up all the internal memory used by +that +\fBlwres_conf_t\fR +structure in resolver context +\fIctx\fR. +.PP +\fBlwres_conf_parse()\fR +opens the file +\fIfilename\fR +and parses it to initialise the resolver context +\fIctx\fR's +\fBlwres_conf_t\fR +structure. +.PP +\fBlwres_conf_print()\fR +prints the +\fBlwres_conf_t\fR +structure for resolver context +\fIctx\fR +to the +\fBFILE\fR +\fIfp\fR. +.SH "RETURN VALUES" +.PP +\fBlwres_conf_parse()\fR +returns +LWRES_R_SUCCESS +if it successfully read and parsed +\fIfilename\fR. +It returns +LWRES_R_FAILURE +if +\fIfilename\fR +could not be opened or contained incorrect +resolver statements. +.PP +\fBlwres_conf_print()\fR +returns +LWRES_R_SUCCESS +unless an error occurred when converting the network addresses to a +numeric host address string. +If this happens, the function returns +LWRES_R_FAILURE. +.SH "SEE ALSO" +.PP +\fBstdio\fR(3), +\fBresolver\fR(5). +.SH "FILES" +.PP +\fI/etc/resolv.conf\fR diff --git a/contrib/bind9/lib/lwres/man/lwres_config.docbook b/contrib/bind9/lib/lwres/man/lwres_config.docbook new file mode 100644 index 000000000000..eeb244ed40d7 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_config.docbook @@ -0,0 +1,159 @@ + + + + + + + + +Jun 30, 2000 + + + +lwres_config +3 +BIND9 + + + +lwres_conf_init +lwres_conf_clear +lwres_conf_parse +lwres_conf_print +lwres_conf_get +lightweight resolver configuration + + + + +#include <lwres/lwres.h> + + +void +lwres_conf_init +lwres_context_t *ctx + + + +void +lwres_conf_clear +lwres_context_t *ctx + + + +lwres_result_t +lwres_conf_parse +lwres_context_t *ctx +const char *filename + + + +lwres_result_t +lwres_conf_print +lwres_context_t *ctx +FILE *fp + + + +lwres_conf_t * +lwres_conf_get +lwres_context_t *ctx + + + + + +DESCRIPTION + +lwres_conf_init() +creates an empty +lwres_conf_t +structure for lightweight resolver context +ctx. + + +lwres_conf_clear() +frees up all the internal memory used by +that +lwres_conf_t +structure in resolver context +ctx. + + +lwres_conf_parse() +opens the file +filename +and parses it to initialise the resolver context +ctx's +lwres_conf_t +structure. + + +lwres_conf_print() +prints the +lwres_conf_t +structure for resolver context +ctx +to the +FILE +fp. + + + + +RETURN VALUES + +lwres_conf_parse() +returns +LWRES_R_SUCCESS +if it successfully read and parsed +filename. +It returns +LWRES_R_FAILURE +if +filename +could not be opened or contained incorrect +resolver statements. + + +lwres_conf_print() +returns +LWRES_R_SUCCESS +unless an error occurred when converting the network addresses to a +numeric host address string. +If this happens, the function returns +LWRES_R_FAILURE. + + + +SEE ALSO + + +stdio3 +, + +resolver5 +. + + +FILES + +/etc/resolv.conf + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_config.html b/contrib/bind9/lib/lwres/man/lwres_config.html new file mode 100644 index 000000000000..cd7c63bee8a3 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_config.html @@ -0,0 +1,282 @@ + + + + + +lwres_config

lwres_config

Name

lwres_conf_init, lwres_conf_clear, lwres_conf_parse, lwres_conf_print, lwres_conf_get -- lightweight resolver configuration

Synopsis

#include <lwres/lwres.h>

void +lwres_conf_init(lwres_context_t *ctx);

void +lwres_conf_clear(lwres_context_t *ctx);

lwres_result_t +lwres_conf_parse(lwres_context_t *ctx, const char *filename);

lwres_result_t +lwres_conf_print(lwres_context_t *ctx, FILE *fp);

lwres_conf_t * +lwres_conf_get(lwres_context_t *ctx);

DESCRIPTION

lwres_conf_init() +creates an empty +lwres_conf_t +structure for lightweight resolver context +ctx.

lwres_conf_clear() +frees up all the internal memory used by +that +lwres_conf_t +structure in resolver context +ctx.

lwres_conf_parse() +opens the file +filename +and parses it to initialise the resolver context +ctx's +lwres_conf_t +structure.

lwres_conf_print() +prints the +lwres_conf_t +structure for resolver context +ctx +to the +FILE +fp.

RETURN VALUES

lwres_conf_parse() +returns +LWRES_R_SUCCESS +if it successfully read and parsed +filename. +It returns +LWRES_R_FAILURE +if +filename +could not be opened or contained incorrect +resolver statements.

lwres_conf_print() +returns +LWRES_R_SUCCESS +unless an error occurred when converting the network addresses to a +numeric host address string. +If this happens, the function returns +LWRES_R_FAILURE.

SEE ALSO

stdio(3), +resolver(5).

FILES

/etc/resolv.conf

diff --git a/contrib/bind9/lib/lwres/man/lwres_context.3 b/contrib/bind9/lib/lwres/man/lwres_context.3 new file mode 100644 index 000000000000..d19b18a21a04 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_context.3 @@ -0,0 +1,196 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_context.3,v 1.13.2.2.2.2 2004/03/08 09:05:12 marka Exp $ +.\" +.TH "LWRES_CONTEXT" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_context_create, lwres_context_destroy, lwres_context_nextserial, lwres_context_initserial, lwres_context_freemem, lwres_context_allocmem, lwres_context_sendrecv \- lightweight resolver context management +.SH SYNOPSIS +\fB#include +.sp +.na +lwres_result_t +lwres_context_create(lwres_context_t **contextp, void *arg, lwres_malloc_t malloc_function, lwres_free_t free_function); +.ad +.sp +.na +lwres_result_t +lwres_context_destroy(lwres_context_t **contextp); +.ad +.sp +.na +void +lwres_context_initserial(lwres_context_t *ctx, lwres_uint32_t serial); +.ad +.sp +.na +lwres_uint32_t +lwres_context_nextserial(lwres_context_t *ctx); +.ad +.sp +.na +void +lwres_context_freemem(lwres_context_t *ctx, void *mem, size_t len); +.ad +.sp +.na +void +lwres_context_allocmem(lwres_context_t *ctx, size_t len); +.ad +.sp +.na +void * +lwres_context_sendrecv(lwres_context_t *ctx, void *sendbase, int sendlen, void *recvbase, int recvlen, int *recvd_len); +.ad +\fR +.SH "DESCRIPTION" +.PP +\fBlwres_context_create()\fR +creates a +\fBlwres_context_t\fR +structure for use in lightweight resolver operations. +It holds a socket and other data needed for communicating +with a resolver daemon. +The new +\fBlwres_context_t\fR +is returned through +\fIcontextp\fR, +a pointer to a +\fBlwres_context_t\fR +pointer. This +\fBlwres_context_t\fR +pointer must initially be NULL, and is modified +to point to the newly created +\fBlwres_context_t\fR. +.PP +When the lightweight resolver needs to perform dynamic memory +allocation, it will call +\fImalloc_function\fR +to allocate memory and +\fIfree_function\fR +to free it. If +\fImalloc_function\fR +and +\fIfree_function\fR +are NULL, memory is allocated using +\&.Xr malloc 3 +and +\fBfree\fR(3). +It is not permitted to have a NULL +\fImalloc_function\fR +and a non-NULL +\fIfree_function\fR +or vice versa. +\fIarg\fR +is passed as the first parameter to the memory +allocation functions. +If +\fImalloc_function\fR +and +\fIfree_function\fR +are NULL, +\fIarg\fR +is unused and should be passed as NULL. +.PP +Once memory for the structure has been allocated, +it is initialized using +\fBlwres_conf_init\fR(3) +and returned via +\fI*contextp\fR. +.PP +\fBlwres_context_destroy()\fR +destroys a +\fBlwres_context_t\fR, +closing its socket. +\fIcontextp\fR +is a pointer to a pointer to the context that is to be destroyed. +The pointer will be set to NULL when the context has been destroyed. +.PP +The context holds a serial number that is used to identify resolver +request packets and associate responses with the corresponding requests. +This serial number is controlled using +\fBlwres_context_initserial()\fR +and +\fBlwres_context_nextserial()\fR. +\fBlwres_context_initserial()\fR +sets the serial number for context +\fI*ctx\fR +to +\fIserial\fR. +\fBlwres_context_nextserial()\fR +increments the serial number and returns the previous value. +.PP +Memory for a lightweight resolver context is allocated and freed using +\fBlwres_context_allocmem()\fR +and +\fBlwres_context_freemem()\fR. +These use whatever allocations were defined when the context was +created with +\fBlwres_context_create()\fR. +\fBlwres_context_allocmem()\fR +allocates +\fIlen\fR +bytes of memory and if successful returns a pointer to the allocated +storage. +\fBlwres_context_freemem()\fR +frees +\fIlen\fR +bytes of space starting at location +\fImem\fR. +.PP +\fBlwres_context_sendrecv()\fR +performs I/O for the context +\fIctx\fR. +Data are read and written from the context's socket. +It writes data from +\fIsendbase\fR +\(em typically a lightweight resolver query packet \(em +and waits for a reply which is copied to the receive buffer at +\fIrecvbase\fR. +The number of bytes that were written to this receive buffer is +returned in +\fI*recvd_len\fR. +.SH "RETURN VALUES" +.PP +\fBlwres_context_create()\fR +returns +LWRES_R_NOMEMORY +if memory for the +\fBstruct lwres_context\fR +could not be allocated, +LWRES_R_SUCCESS +otherwise. +.PP +Successful calls to the memory allocator +\fBlwres_context_allocmem()\fR +return a pointer to the start of the allocated space. +It returns NULL if memory could not be allocated. +.PP +LWRES_R_SUCCESS +is returned when +\fBlwres_context_sendrecv()\fR +completes successfully. +LWRES_R_IOERROR +is returned if an I/O error occurs and +LWRES_R_TIMEOUT +is returned if +\fBlwres_context_sendrecv()\fR +times out waiting for a response. +.SH "SEE ALSO" +.PP +\fBlwres_conf_init\fR(3), +\fBmalloc\fR(3), +\fBfree\fR(3). diff --git a/contrib/bind9/lib/lwres/man/lwres_context.docbook b/contrib/bind9/lib/lwres/man/lwres_context.docbook new file mode 100644 index 000000000000..137e4bc209bb --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_context.docbook @@ -0,0 +1,283 @@ + + + + + + + + + +Jun 30, 2000 + + +lwres_context +3 +BIND9 + + +lwres_context_create +lwres_context_destroy +lwres_context_nextserial +lwres_context_initserial +lwres_context_freemem +lwres_context_allocmem +lwres_context_sendrecv +lightweight resolver context management + + + +#include <lwres/lwres.h> + + +lwres_result_t +lwres_context_create +lwres_context_t **contextp +void *arg +lwres_malloc_t malloc_function +lwres_free_t free_function + + + +lwres_result_t +lwres_context_destroy +lwres_context_t **contextp + + + +void +lwres_context_initserial +lwres_context_t *ctx +lwres_uint32_t serial + + + +lwres_uint32_t +lwres_context_nextserial +lwres_context_t *ctx + + + +void +lwres_context_freemem +lwres_context_t *ctx +void *mem +size_t len + + + +void +lwres_context_allocmem +lwres_context_t *ctx +size_t len + + + +void * +lwres_context_sendrecv +lwres_context_t *ctx +void *sendbase +int sendlen +void *recvbase +int recvlen +int *recvd_len + + + + +DESCRIPTION + +lwres_context_create() +creates a +lwres_context_t +structure for use in lightweight resolver operations. +It holds a socket and other data needed for communicating +with a resolver daemon. +The new +lwres_context_t +is returned through +contextp, + +a pointer to a +lwres_context_t +pointer. This +lwres_context_t +pointer must initially be NULL, and is modified +to point to the newly created +lwres_context_t. + + + +When the lightweight resolver needs to perform dynamic memory +allocation, it will call +malloc_function +to allocate memory and +free_function + +to free it. If +malloc_function +and +free_function + +are NULL, memory is allocated using +.Xr malloc 3 +and + +free3 +. + +It is not permitted to have a NULL +malloc_function +and a non-NULL +free_function +or vice versa. +arg +is passed as the first parameter to the memory +allocation functions. +If +malloc_function +and +free_function +are NULL, +arg + +is unused and should be passed as NULL. + + +Once memory for the structure has been allocated, +it is initialized using + +lwres_conf_init3 + + +and returned via +*contextp. + + + +lwres_context_destroy() +destroys a +lwres_context_t, + +closing its socket. +contextp +is a pointer to a pointer to the context that is to be destroyed. +The pointer will be set to NULL when the context has been destroyed. + + +The context holds a serial number that is used to identify resolver +request packets and associate responses with the corresponding requests. +This serial number is controlled using +lwres_context_initserial() +and +lwres_context_nextserial(). +lwres_context_initserial() +sets the serial number for context +*ctx +to +serial. + +lwres_context_nextserial() +increments the serial number and returns the previous value. + + +Memory for a lightweight resolver context is allocated and freed using +lwres_context_allocmem() +and +lwres_context_freemem(). +These use whatever allocations were defined when the context was +created with +lwres_context_create(). +lwres_context_allocmem() +allocates +len +bytes of memory and if successful returns a pointer to the allocated +storage. +lwres_context_freemem() +frees +len +bytes of space starting at location +mem. + + + +lwres_context_sendrecv() +performs I/O for the context +ctx. + +Data are read and written from the context's socket. +It writes data from +sendbase +— typically a lightweight resolver query packet — +and waits for a reply which is copied to the receive buffer at +recvbase. + +The number of bytes that were written to this receive buffer is +returned in +*recvd_len. + + + + +RETURN VALUES + +lwres_context_create() +returns +LWRES_R_NOMEMORY +if memory for the +struct lwres_context +could not be allocated, +LWRES_R_SUCCESS +otherwise. + + +Successful calls to the memory allocator +lwres_context_allocmem() +return a pointer to the start of the allocated space. +It returns NULL if memory could not be allocated. + + +LWRES_R_SUCCESS +is returned when +lwres_context_sendrecv() +completes successfully. +LWRES_R_IOERROR +is returned if an I/O error occurs and +LWRES_R_TIMEOUT +is returned if +lwres_context_sendrecv() +times out waiting for a response. + + + +SEE ALSO + + +lwres_conf_init3 +, + + +malloc3 +, + + +free3 + +. + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_context.html b/contrib/bind9/lib/lwres/man/lwres_context.html new file mode 100644 index 000000000000..cca12d7d31ea --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_context.html @@ -0,0 +1,478 @@ + + + + + +lwres_context

lwres_context

Name

lwres_context_create, lwres_context_destroy, lwres_context_nextserial, lwres_context_initserial, lwres_context_freemem, lwres_context_allocmem, lwres_context_sendrecv -- lightweight resolver context management

Synopsis

#include <lwres/lwres.h>

lwres_result_t +lwres_context_create(lwres_context_t **contextp, void *arg, lwres_malloc_t malloc_function, lwres_free_t free_function);

lwres_result_t +lwres_context_destroy(lwres_context_t **contextp);

void +lwres_context_initserial(lwres_context_t *ctx, lwres_uint32_t serial);

lwres_uint32_t +lwres_context_nextserial(lwres_context_t *ctx);

void +lwres_context_freemem(lwres_context_t *ctx, void *mem, size_t len);

void +lwres_context_allocmem(lwres_context_t *ctx, size_t len);

void * +lwres_context_sendrecv(lwres_context_t *ctx, void *sendbase, int sendlen, void *recvbase, int recvlen, int *recvd_len);

DESCRIPTION

lwres_context_create() +creates a +lwres_context_t +structure for use in lightweight resolver operations. +It holds a socket and other data needed for communicating +with a resolver daemon. +The new +lwres_context_t +is returned through +contextp, + +a pointer to a +lwres_context_t +pointer. This +lwres_context_t +pointer must initially be NULL, and is modified +to point to the newly created +lwres_context_t.

When the lightweight resolver needs to perform dynamic memory +allocation, it will call +malloc_function +to allocate memory and +free_function + +to free it. If +malloc_function +and +free_function + +are NULL, memory is allocated using +.Xr malloc 3 +and +free(3). + +It is not permitted to have a NULL +malloc_function +and a non-NULL +free_function +or vice versa. +arg +is passed as the first parameter to the memory +allocation functions. +If +malloc_function +and +free_function +are NULL, +arg + +is unused and should be passed as NULL.

Once memory for the structure has been allocated, +it is initialized using +lwres_conf_init(3) + +and returned via +*contextp.

lwres_context_destroy() +destroys a +lwres_context_t, + +closing its socket. +contextp +is a pointer to a pointer to the context that is to be destroyed. +The pointer will be set to NULL when the context has been destroyed.

The context holds a serial number that is used to identify resolver +request packets and associate responses with the corresponding requests. +This serial number is controlled using +lwres_context_initserial() +and +lwres_context_nextserial(). +lwres_context_initserial() +sets the serial number for context +*ctx +to +serial. + +lwres_context_nextserial() +increments the serial number and returns the previous value.

Memory for a lightweight resolver context is allocated and freed using +lwres_context_allocmem() +and +lwres_context_freemem(). +These use whatever allocations were defined when the context was +created with +lwres_context_create(). +lwres_context_allocmem() +allocates +len +bytes of memory and if successful returns a pointer to the allocated +storage. +lwres_context_freemem() +frees +len +bytes of space starting at location +mem.

lwres_context_sendrecv() +performs I/O for the context +ctx. + +Data are read and written from the context's socket. +It writes data from +sendbase +— typically a lightweight resolver query packet — +and waits for a reply which is copied to the receive buffer at +recvbase. + +The number of bytes that were written to this receive buffer is +returned in +*recvd_len.

RETURN VALUES

lwres_context_create() +returns +LWRES_R_NOMEMORY +if memory for the +struct lwres_context +could not be allocated, +LWRES_R_SUCCESS +otherwise.

Successful calls to the memory allocator +lwres_context_allocmem() +return a pointer to the start of the allocated space. +It returns NULL if memory could not be allocated.

LWRES_R_SUCCESS +is returned when +lwres_context_sendrecv() +completes successfully. +LWRES_R_IOERROR +is returned if an I/O error occurs and +LWRES_R_TIMEOUT +is returned if +lwres_context_sendrecv() +times out waiting for a response.

SEE ALSO

lwres_conf_init(3), + +malloc(3), + +free(3).

diff --git a/contrib/bind9/lib/lwres/man/lwres_gabn.3 b/contrib/bind9/lib/lwres/man/lwres_gabn.3 new file mode 100644 index 000000000000..a309f3e62390 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_gabn.3 @@ -0,0 +1,195 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_gabn.3,v 1.13.2.1.8.1 2004/03/06 07:41:42 marka Exp $ +.\" +.TH "LWRES_GABN" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_gabnrequest_render, lwres_gabnresponse_render, lwres_gabnrequest_parse, lwres_gabnresponse_parse, lwres_gabnresponse_free, lwres_gabnrequest_free \- lightweight resolver getaddrbyname message handling +.SH SYNOPSIS +\fB#include +.sp +.na +lwres_result_t +lwres_gabnrequest_render(lwres_context_t *ctx, lwres_gabnrequest_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b); +.ad +.sp +.na +lwres_result_t +lwres_gabnresponse_render(lwres_context_t *ctx, lwres_gabnresponse_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b); +.ad +.sp +.na +lwres_result_t +lwres_gabnrequest_parse(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_gabnrequest_t **structp); +.ad +.sp +.na +lwres_result_t +lwres_gabnresponse_parse(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_gabnresponse_t **structp); +.ad +.sp +.na +void +lwres_gabnresponse_free(lwres_context_t *ctx, lwres_gabnresponse_t **structp); +.ad +.sp +.na +void +lwres_gabnrequest_free(lwres_context_t *ctx, lwres_gabnrequest_t **structp); +.ad +\fR +.SH "DESCRIPTION" +.PP +These are low-level routines for creating and parsing +lightweight resolver name-to-address lookup request and +response messages. +.PP +There are four main functions for the getaddrbyname opcode. +One render function converts a getaddrbyname request structure \(em +\fBlwres_gabnrequest_t\fR \(em +to the lighweight resolver's canonical format. +It is complemented by a parse function that converts a packet in this +canonical format to a getaddrbyname request structure. +Another render function converts the getaddrbyname response structure \(em +\fBlwres_gabnresponse_t\fR \(em +to the canonical format. +This is complemented by a parse function which converts a packet in +canonical format to a getaddrbyname response structure. +.PP +These structures are defined in +\fI\fR. +They are shown below. +.sp +.nf +#define LWRES_OPCODE_GETADDRSBYNAME 0x00010001U + +typedef struct lwres_addr lwres_addr_t; +typedef LWRES_LIST(lwres_addr_t) lwres_addrlist_t; + +typedef struct { + lwres_uint32_t flags; + lwres_uint32_t addrtypes; + lwres_uint16_t namelen; + char *name; +} lwres_gabnrequest_t; + +typedef struct { + lwres_uint32_t flags; + lwres_uint16_t naliases; + lwres_uint16_t naddrs; + char *realname; + char **aliases; + lwres_uint16_t realnamelen; + lwres_uint16_t *aliaslen; + lwres_addrlist_t addrs; + void *base; + size_t baselen; +} lwres_gabnresponse_t; +.sp +.fi +.PP +\fBlwres_gabnrequest_render()\fR +uses resolver context +\fIctx\fR +to convert getaddrbyname request structure +\fIreq\fR +to canonical format. +The packet header structure +\fIpkt\fR +is initialised and transferred to +buffer +\fIb\fR. +The contents of +\fI*req\fR +are then appended to the buffer in canonical format. +\fBlwres_gabnresponse_render()\fR +performs the same task, except it converts a getaddrbyname response structure +\fBlwres_gabnresponse_t\fR +to the lightweight resolver's canonical format. +.PP +\fBlwres_gabnrequest_parse()\fR +uses context +\fIctx\fR +to convert the contents of packet +\fIpkt\fR +to a +\fBlwres_gabnrequest_t\fR +structure. +Buffer +\fIb\fR +provides space to be used for storing this structure. +When the function succeeds, the resulting +\fBlwres_gabnrequest_t\fR +is made available through +\fI*structp\fR. +\fBlwres_gabnresponse_parse()\fR +offers the same semantics as +\fBlwres_gabnrequest_parse()\fR +except it yields a +\fBlwres_gabnresponse_t\fR +structure. +.PP +\fBlwres_gabnresponse_free()\fR +and +\fBlwres_gabnrequest_free()\fR +release the memory in resolver context +\fIctx\fR +that was allocated to the +\fBlwres_gabnresponse_t\fR +or +\fBlwres_gabnrequest_t\fR +structures referenced via +\fIstructp\fR. +Any memory associated with ancillary buffers and strings for those +structures is also discarded. +.SH "RETURN VALUES" +.PP +The getaddrbyname opcode functions +\fBlwres_gabnrequest_render()\fR, +\fBlwres_gabnresponse_render()\fR +\fBlwres_gabnrequest_parse()\fR +and +\fBlwres_gabnresponse_parse()\fR +all return +LWRES_R_SUCCESS +on success. +They return +LWRES_R_NOMEMORY +if memory allocation fails. +LWRES_R_UNEXPECTEDEND +is returned if the available space in the buffer +\fIb\fR +is too small to accommodate the packet header or the +\fBlwres_gabnrequest_t\fR +and +\fBlwres_gabnresponse_t\fR +structures. +\fBlwres_gabnrequest_parse()\fR +and +\fBlwres_gabnresponse_parse()\fR +will return +LWRES_R_UNEXPECTEDEND +if the buffer is not empty after decoding the received packet. +These functions will return +LWRES_R_FAILURE +if +\fBpktflags\fR +in the packet header structure +\fBlwres_lwpacket_t\fR +indicate that the packet is not a response to an earlier query. +.SH "SEE ALSO" +.PP +\fBlwres_packet\fR(3) diff --git a/contrib/bind9/lib/lwres/man/lwres_gabn.docbook b/contrib/bind9/lib/lwres/man/lwres_gabn.docbook new file mode 100644 index 000000000000..cb9481f4aa84 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_gabn.docbook @@ -0,0 +1,255 @@ + + + + + + + + + +Jun 30, 2000 + + +lwres_gabn +3 +BIND9 + + +lwres_gabnrequest_render +lwres_gabnresponse_render +lwres_gabnrequest_parse +lwres_gabnresponse_parse +lwres_gabnresponse_free +lwres_gabnrequest_free +lightweight resolver getaddrbyname message handling + + + +#include <lwres/lwres.h> + + +lwres_result_t +lwres_gabnrequest_render +lwres_context_t *ctx +lwres_gabnrequest_t *req +lwres_lwpacket_t *pkt +lwres_buffer_t *b + + + +lwres_result_t +lwres_gabnresponse_render +lwres_context_t *ctx +lwres_gabnresponse_t *req +lwres_lwpacket_t *pkt +lwres_buffer_t *b + + + +lwres_result_t +lwres_gabnrequest_parse +lwres_context_t *ctx +lwres_buffer_t *b +lwres_lwpacket_t *pkt +lwres_gabnrequest_t **structp + + + +lwres_result_t +lwres_gabnresponse_parse +lwres_context_t *ctx +lwres_buffer_t *b +lwres_lwpacket_t *pkt +lwres_gabnresponse_t **structp + + + +void +lwres_gabnresponse_free +lwres_context_t *ctx +lwres_gabnresponse_t **structp + + + +void +lwres_gabnrequest_free +lwres_context_t *ctx +lwres_gabnrequest_t **structp + + + + +DESCRIPTION + +These are low-level routines for creating and parsing +lightweight resolver name-to-address lookup request and +response messages. + +There are four main functions for the getaddrbyname opcode. +One render function converts a getaddrbyname request structure — +lwres_gabnrequest_t — +to the lighweight resolver's canonical format. +It is complemented by a parse function that converts a packet in this +canonical format to a getaddrbyname request structure. +Another render function converts the getaddrbyname response structure — +lwres_gabnresponse_t — +to the canonical format. +This is complemented by a parse function which converts a packet in +canonical format to a getaddrbyname response structure. + + +These structures are defined in +<lwres/lwres.h>. +They are shown below. + +#define LWRES_OPCODE_GETADDRSBYNAME 0x00010001U + +typedef struct lwres_addr lwres_addr_t; +typedef LWRES_LIST(lwres_addr_t) lwres_addrlist_t; + +typedef struct { + lwres_uint32_t flags; + lwres_uint32_t addrtypes; + lwres_uint16_t namelen; + char *name; +} lwres_gabnrequest_t; + +typedef struct { + lwres_uint32_t flags; + lwres_uint16_t naliases; + lwres_uint16_t naddrs; + char *realname; + char **aliases; + lwres_uint16_t realnamelen; + lwres_uint16_t *aliaslen; + lwres_addrlist_t addrs; + void *base; + size_t baselen; +} lwres_gabnresponse_t; + + + +lwres_gabnrequest_render() +uses resolver context +ctx +to convert getaddrbyname request structure +req +to canonical format. +The packet header structure +pkt +is initialised and transferred to +buffer +b. + +The contents of +*req +are then appended to the buffer in canonical format. +lwres_gabnresponse_render() +performs the same task, except it converts a getaddrbyname response structure +lwres_gabnresponse_t +to the lightweight resolver's canonical format. + + +lwres_gabnrequest_parse() +uses context +ctx +to convert the contents of packet +pkt +to a +lwres_gabnrequest_t +structure. +Buffer +b +provides space to be used for storing this structure. +When the function succeeds, the resulting +lwres_gabnrequest_t +is made available through +*structp. + +lwres_gabnresponse_parse() +offers the same semantics as +lwres_gabnrequest_parse() +except it yields a +lwres_gabnresponse_t +structure. + + +lwres_gabnresponse_free() +and +lwres_gabnrequest_free() +release the memory in resolver context +ctx +that was allocated to the +lwres_gabnresponse_t +or +lwres_gabnrequest_t +structures referenced via +structp. + +Any memory associated with ancillary buffers and strings for those +structures is also discarded. + + + +RETURN VALUES + +The getaddrbyname opcode functions +lwres_gabnrequest_render(), +lwres_gabnresponse_render() +lwres_gabnrequest_parse() +and +lwres_gabnresponse_parse() +all return +LWRES_R_SUCCESS +on success. +They return +LWRES_R_NOMEMORY +if memory allocation fails. +LWRES_R_UNEXPECTEDEND +is returned if the available space in the buffer +b +is too small to accommodate the packet header or the +lwres_gabnrequest_t +and +lwres_gabnresponse_t +structures. +lwres_gabnrequest_parse() +and +lwres_gabnresponse_parse() +will return +LWRES_R_UNEXPECTEDEND +if the buffer is not empty after decoding the received packet. +These functions will return +LWRES_R_FAILURE +if +pktflags +in the packet header structure +lwres_lwpacket_t +indicate that the packet is not a response to an earlier query. + + + +SEE ALSO + + +lwres_packet3 + + + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_gabn.html b/contrib/bind9/lib/lwres/man/lwres_gabn.html new file mode 100644 index 000000000000..6cb6614cbd55 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_gabn.html @@ -0,0 +1,419 @@ + + + + + +lwres_gabn

lwres_gabn

Name

lwres_gabnrequest_render, lwres_gabnresponse_render, lwres_gabnrequest_parse, lwres_gabnresponse_parse, lwres_gabnresponse_free, lwres_gabnrequest_free -- lightweight resolver getaddrbyname message handling

Synopsis

#include <lwres/lwres.h>

lwres_result_t +lwres_gabnrequest_render(lwres_context_t *ctx, lwres_gabnrequest_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b);

lwres_result_t +lwres_gabnresponse_render(lwres_context_t *ctx, lwres_gabnresponse_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b);

lwres_result_t +lwres_gabnrequest_parse(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_gabnrequest_t **structp);

lwres_result_t +lwres_gabnresponse_parse(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_gabnresponse_t **structp);

void +lwres_gabnresponse_free(lwres_context_t *ctx, lwres_gabnresponse_t **structp);

void +lwres_gabnrequest_free(lwres_context_t *ctx, lwres_gabnrequest_t **structp);

DESCRIPTION

These are low-level routines for creating and parsing +lightweight resolver name-to-address lookup request and +response messages.

There are four main functions for the getaddrbyname opcode. +One render function converts a getaddrbyname request structure — +lwres_gabnrequest_t — +to the lighweight resolver's canonical format. +It is complemented by a parse function that converts a packet in this +canonical format to a getaddrbyname request structure. +Another render function converts the getaddrbyname response structure — +lwres_gabnresponse_t — +to the canonical format. +This is complemented by a parse function which converts a packet in +canonical format to a getaddrbyname response structure.

These structures are defined in +<lwres/lwres.h>. +They are shown below. +

#define LWRES_OPCODE_GETADDRSBYNAME     0x00010001U
+
+typedef struct lwres_addr lwres_addr_t;
+typedef LWRES_LIST(lwres_addr_t) lwres_addrlist_t;
+
+typedef struct {
+        lwres_uint32_t  flags;
+        lwres_uint32_t  addrtypes;
+        lwres_uint16_t  namelen;
+        char           *name;
+} lwres_gabnrequest_t;
+
+typedef struct {
+        lwres_uint32_t          flags;
+        lwres_uint16_t          naliases;
+        lwres_uint16_t          naddrs;
+        char                   *realname;
+        char                  **aliases;
+        lwres_uint16_t          realnamelen;
+        lwres_uint16_t         *aliaslen;
+        lwres_addrlist_t        addrs;
+        void                   *base;
+        size_t                  baselen;
+} lwres_gabnresponse_t;

lwres_gabnrequest_render() +uses resolver context +ctx +to convert getaddrbyname request structure +req +to canonical format. +The packet header structure +pkt +is initialised and transferred to +buffer +b. + +The contents of +*req +are then appended to the buffer in canonical format. +lwres_gabnresponse_render() +performs the same task, except it converts a getaddrbyname response structure +lwres_gabnresponse_t +to the lightweight resolver's canonical format.

lwres_gabnrequest_parse() +uses context +ctx +to convert the contents of packet +pkt +to a +lwres_gabnrequest_t +structure. +Buffer +b +provides space to be used for storing this structure. +When the function succeeds, the resulting +lwres_gabnrequest_t +is made available through +*structp. + +lwres_gabnresponse_parse() +offers the same semantics as +lwres_gabnrequest_parse() +except it yields a +lwres_gabnresponse_t +structure.

lwres_gabnresponse_free() +and +lwres_gabnrequest_free() +release the memory in resolver context +ctx +that was allocated to the +lwres_gabnresponse_t +or +lwres_gabnrequest_t +structures referenced via +structp. + +Any memory associated with ancillary buffers and strings for those +structures is also discarded.

RETURN VALUES

The getaddrbyname opcode functions +lwres_gabnrequest_render(), +lwres_gabnresponse_render() +lwres_gabnrequest_parse() +and +lwres_gabnresponse_parse() +all return +LWRES_R_SUCCESS +on success. +They return +LWRES_R_NOMEMORY +if memory allocation fails. +LWRES_R_UNEXPECTEDEND +is returned if the available space in the buffer +b +is too small to accommodate the packet header or the +lwres_gabnrequest_t +and +lwres_gabnresponse_t +structures. +lwres_gabnrequest_parse() +and +lwres_gabnresponse_parse() +will return +LWRES_R_UNEXPECTEDEND +if the buffer is not empty after decoding the received packet. +These functions will return +LWRES_R_FAILURE +if +pktflags +in the packet header structure +lwres_lwpacket_t +indicate that the packet is not a response to an earlier query.

SEE ALSO

lwres_packet(3)

diff --git a/contrib/bind9/lib/lwres/man/lwres_gai_strerror.3 b/contrib/bind9/lib/lwres/man/lwres_gai_strerror.3 new file mode 100644 index 000000000000..ea75066f8aec --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_gai_strerror.3 @@ -0,0 +1,88 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_gai_strerror.3,v 1.13.2.1.8.1 2004/03/06 07:41:43 marka Exp $ +.\" +.TH "LWRES_GAI_STRERROR" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +gai_strerror \- print suitable error string +.SH SYNOPSIS +\fB#include +.sp +.na +char * +gai_strerror(int ecode); +.ad +\fR +.SH "DESCRIPTION" +.PP +\fBlwres_gai_strerror()\fR +returns an error message corresponding to an error code returned by +\fBgetaddrinfo()\fR. +The following error codes and their meaning are defined in +\fIinclude/lwres/netdb.h\fR. +.TP +\fBEAI_ADDRFAMILY\fR +address family for hostname not supported +.TP +\fBEAI_AGAIN\fR +temporary failure in name resolution +.TP +\fBEAI_BADFLAGS\fR +invalid value for +ai_flags +.TP +\fBEAI_FAIL\fR +non-recoverable failure in name resolution +.TP +\fBEAI_FAMILY\fR +ai_family not supported +.TP +\fBEAI_MEMORY\fR +memory allocation failure +.TP +\fBEAI_NODATA\fR +no address associated with hostname +.TP +\fBEAI_NONAME\fR +hostname or servname not provided, or not known +.TP +\fBEAI_SERVICE\fR +servname not supported for ai_socktype +.TP +\fBEAI_SOCKTYPE\fR +ai_socktype not supported +.TP +\fBEAI_SYSTEM\fR +system error returned in errno +.PP +The message \fBinvalid error code\fR is returned if +\fIecode\fR +is out of range. +.PP +ai_flags, +ai_family +and +ai_socktype +are elements of the +\fBstruct addrinfo\fR +used by +\fBlwres_getaddrinfo()\fR. +.SH "SEE ALSO" +.PP +\fBstrerror\fR(3), +\fBlwres_getaddrinfo\fR(3), +\fBgetaddrinfo\fR(3), +\fBRFC2133\fR. diff --git a/contrib/bind9/lib/lwres/man/lwres_gai_strerror.docbook b/contrib/bind9/lib/lwres/man/lwres_gai_strerror.docbook new file mode 100644 index 000000000000..475d4441d0cb --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_gai_strerror.docbook @@ -0,0 +1,161 @@ + + + + + + + + + +Jun 30, 2000 + + +lwres_gai_strerror +3 +BIND9 + + +gai_strerror +print suitable error string + + + +#include <lwres/netdb.h> + + +char * +gai_strerror +int ecode + + + + + +DESCRIPTION + +lwres_gai_strerror() +returns an error message corresponding to an error code returned by +getaddrinfo(). +The following error codes and their meaning are defined in +include/lwres/netdb.h. + +EAI_ADDRFAMILY + + +address family for hostname not supported + + +EAI_AGAIN + + +temporary failure in name resolution + + +EAI_BADFLAGS + + +invalid value for +ai_flags + + +EAI_FAIL + + +non-recoverable failure in name resolution + + +EAI_FAMILY + + +ai_family not supported + + +EAI_MEMORY + + +memory allocation failure + + +EAI_NODATA + + +no address associated with hostname + + +EAI_NONAME + + +hostname or servname not provided, or not known + + +EAI_SERVICE + + +servname not supported for ai_socktype + + +EAI_SOCKTYPE + + +ai_socktype not supported + + +EAI_SYSTEM + + +system error returned in errno + + + +The message invalid error code is returned if +ecode +is out of range. + + +ai_flags, +ai_family +and +ai_socktype +are elements of the +struct addrinfo +used by +lwres_getaddrinfo(). + + + + +SEE ALSO + + +strerror3 +, + + +lwres_getaddrinfo3 +, + + +getaddrinfo3 +, + + +RFC2133 +. + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_gai_strerror.html b/contrib/bind9/lib/lwres/man/lwres_gai_strerror.html new file mode 100644 index 000000000000..45dc5cb3d027 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_gai_strerror.html @@ -0,0 +1,295 @@ + + + + + +lwres_gai_strerror

lwres_gai_strerror

Name

gai_strerror -- print suitable error string

Synopsis

#include <lwres/netdb.h>

char * +gai_strerror(int ecode);

DESCRIPTION

lwres_gai_strerror() +returns an error message corresponding to an error code returned by +getaddrinfo(). +The following error codes and their meaning are defined in +include/lwres/netdb.h. +

EAI_ADDRFAMILY

address family for hostname not supported

EAI_AGAIN

temporary failure in name resolution

EAI_BADFLAGS

invalid value for +ai_flags

EAI_FAIL

non-recoverable failure in name resolution

EAI_FAMILY

ai_family not supported

EAI_MEMORY

memory allocation failure

EAI_NODATA

no address associated with hostname

EAI_NONAME

hostname or servname not provided, or not known

EAI_SERVICE

servname not supported for ai_socktype

EAI_SOCKTYPE

ai_socktype not supported

EAI_SYSTEM

system error returned in errno

+The message invalid error code is returned if +ecode +is out of range.

ai_flags, +ai_family +and +ai_socktype +are elements of the +struct addrinfo +used by +lwres_getaddrinfo().

SEE ALSO

strerror(3), + +lwres_getaddrinfo(3), + +getaddrinfo(3), + +RFC2133.

diff --git a/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.3 b/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.3 new file mode 100644 index 000000000000..d360b3e807a6 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.3 @@ -0,0 +1,249 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_getaddrinfo.3,v 1.16.2.1.8.2 2004/03/06 07:41:43 marka Exp $ +.\" +.TH "LWRES_GETADDRINFO" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_getaddrinfo, lwres_freeaddrinfo \- socket address structure to host and service name +.SH SYNOPSIS +\fB#include +.sp +.na +int +lwres_getaddrinfo(const char *hostname, const char *servname, const struct addrinfo *hints, struct addrinfo **res); +.ad +.sp +.na +void +lwres_freeaddrinfo(struct addrinfo *ai); +.ad +\fR +.PP +If the operating system does not provide a +\fBstruct addrinfo\fR, +the following structure is used: +.sp +.nf +struct addrinfo { + int ai_flags; /* AI_PASSIVE, AI_CANONNAME */ + int ai_family; /* PF_xxx */ + int ai_socktype; /* SOCK_xxx */ + int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ + size_t ai_addrlen; /* length of ai_addr */ + char *ai_canonname; /* canonical name for hostname */ + struct sockaddr *ai_addr; /* binary address */ + struct addrinfo *ai_next; /* next structure in linked list */ +}; +.sp +.fi +.SH "DESCRIPTION" +.PP +\fBlwres_getaddrinfo()\fR +is used to get a list of IP addresses and port numbers for host +\fIhostname\fR +and service +\fIservname\fR. +The function is the lightweight resolver's implementation of +\fBgetaddrinfo()\fR +as defined in RFC2133. +\fIhostname\fR +and +\fIservname\fR +are pointers to null-terminated +strings or +\fBNULL\fR. +\fIhostname\fR +is either a host name or a numeric host address string: a dotted decimal +IPv4 address or an IPv6 address. +\fIservname\fR +is either a decimal port number or a service name as listed in +\fI/etc/services\fR. +.PP +\fIhints\fR +is an optional pointer to a +\fBstruct addrinfo\fR. +This structure can be used to provide hints concerning the type of socket +that the caller supports or wishes to use. +The caller can supply the following structure elements in +\fI*hints\fR: +.TP +\fBai_family\fR +The protocol family that should be used. +When +ai_family +is set to +\fBPF_UNSPEC\fR, +it means the caller will accept any protocol family supported by the +operating system. +.TP +\fBai_socktype\fR +denotes the type of socket \(em +\fBSOCK_STREAM\fR, +\fBSOCK_DGRAM\fR +or +\fBSOCK_RAW\fR +\(em that is wanted. +When +ai_socktype +is zero the caller will accept any socket type. +.TP +\fBai_protocol\fR +indicates which transport protocol is wanted: IPPROTO_UDP or +IPPROTO_TCP. +If +ai_protocol +is zero the caller will accept any protocol. +.TP +\fBai_flags\fR +Flag bits. +If the +\fBAI_CANONNAME\fR +bit is set, a successful call to +\fBlwres_getaddrinfo()\fR +will return a null-terminated string containing the canonical name +of the specified hostname in +ai_canonname +of the first +\fBaddrinfo\fR +structure returned. +Setting the +\fBAI_PASSIVE\fR +bit indicates that the returned socket address structure is intended +for used in a call to +\fBbind\fR(2). +In this case, if the hostname argument is a +\fBNULL\fR +pointer, then the IP address portion of the socket +address structure will be set to +\fBINADDR_ANY\fR +for an IPv4 address or +\fBIN6ADDR_ANY_INIT\fR +for an IPv6 address. + +When +ai_flags +does not set the +\fBAI_PASSIVE\fR +bit, the returned socket address structure will be ready +for use in a call to +\fBconnect\fR(2) +for a connection-oriented protocol or +\fBconnect\fR(2), +\fBsendto\fR(2), +or +\fBsendmsg\fR(2) +if a connectionless protocol was chosen. +The IP address portion of the socket address structure will be +set to the loopback address if +\fIhostname\fR +is a +\fBNULL\fR +pointer and +\fBAI_PASSIVE\fR +is not set in +ai_flags. + +If +ai_flags +is set to +\fBAI_NUMERICHOST\fR +it indicates that +\fIhostname\fR +should be treated as a numeric string defining an IPv4 or IPv6 address +and no name resolution should be attempted. +.PP +All other elements of the \fBstruct addrinfo\fR passed +via \fIhints\fR must be zero. +.PP +A \fIhints\fR of \fBNULL\fR is treated as if +the caller provided a \fBstruct addrinfo\fR initialized to zero +with ai_familyset to +PF_UNSPEC. +.PP +After a successful call to +\fBlwres_getaddrinfo()\fR, +\fI*res\fR +is a pointer to a linked list of one or more +\fBaddrinfo\fR +structures. +Each +\fBstruct addrinfo\fR +in this list cn be processed by following +the +ai_next +pointer, until a +\fBNULL\fR +pointer is encountered. +The three members +ai_family, +ai_socktype, +and +ai_protocol +in each +returned +\fBaddrinfo\fR +structure contain the corresponding arguments for a call to +\fBsocket\fR(2). +For each +\fBaddrinfo\fR +structure in the list, the +ai_addr +member points to a filled-in socket address structure of length +ai_addrlen. +.PP +All of the information returned by +\fBlwres_getaddrinfo()\fR +is dynamically allocated: the addrinfo structures, and the socket +address structures and canonical host name strings pointed to by the +addrinfostructures. +Memory allocated for the dynamically allocated structures created by +a successful call to +\fBlwres_getaddrinfo()\fR +is released by +\fBlwres_freeaddrinfo()\fR. +\fIai\fR +is a pointer to a +\fBstruct addrinfo\fR +created by a call to +\fBlwres_getaddrinfo()\fR. +.SH "RETURN VALUES" +.PP +\fBlwres_getaddrinfo()\fR +returns zero on success or one of the error codes listed in +\fBgai_strerror\fR(3) +if an error occurs. +If both +\fIhostname\fR +and +\fIservname\fR +are +\fBNULL\fR +\fBlwres_getaddrinfo()\fR +returns +EAI_NONAME. +.SH "SEE ALSO" +.PP +\fBlwres\fR(3), +\fBlwres_getaddrinfo\fR(3), +\fBlwres_freeaddrinfo\fR(3), +\fBlwres_gai_strerror\fR(3), +\fBRFC2133\fR, +\fBgetservbyname\fR(3), +\fBbind\fR(2), +\fBconnect\fR(2), +\fBsendto\fR(2), +\fBsendmsg\fR(2), +\fBsocket\fR(2). diff --git a/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.docbook b/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.docbook new file mode 100644 index 000000000000..2f2fc829f8fa --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.docbook @@ -0,0 +1,372 @@ + + + + + + + + +Jun 30, 2000 + + + +lwres_getaddrinfo +3 +BIND9 + + + +lwres_getaddrinfo +lwres_freeaddrinfo +socket address structure to host and service name + + + +#include <lwres/netdb.h> + + +int +lwres_getaddrinfo +const char *hostname +const char *servname +const struct addrinfo *hints +struct addrinfo **res + + + +void +lwres_freeaddrinfo +struct addrinfo *ai + + + + +If the operating system does not provide a +struct addrinfo, +the following structure is used: + + +struct addrinfo { + int ai_flags; /* AI_PASSIVE, AI_CANONNAME */ + int ai_family; /* PF_xxx */ + int ai_socktype; /* SOCK_xxx */ + int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ + size_t ai_addrlen; /* length of ai_addr */ + char *ai_canonname; /* canonical name for hostname */ + struct sockaddr *ai_addr; /* binary address */ + struct addrinfo *ai_next; /* next structure in linked list */ +}; + + + + + + +DESCRIPTION + +lwres_getaddrinfo() +is used to get a list of IP addresses and port numbers for host +hostname +and service +servname. + +The function is the lightweight resolver's implementation of +getaddrinfo() +as defined in RFC2133. +hostname +and +servname +are pointers to null-terminated +strings or +NULL. + +hostname +is either a host name or a numeric host address string: a dotted decimal +IPv4 address or an IPv6 address. +servname +is either a decimal port number or a service name as listed in +/etc/services. + + + +hints +is an optional pointer to a +struct addrinfo. +This structure can be used to provide hints concerning the type of socket +that the caller supports or wishes to use. +The caller can supply the following structure elements in +*hints: + + +ai_family + +The protocol family that should be used. +When +ai_family +is set to +PF_UNSPEC, +it means the caller will accept any protocol family supported by the +operating system. + +ai_socktype + + +denotes the type of socket — +SOCK_STREAM, +SOCK_DGRAM +or +SOCK_RAW +— that is wanted. +When +ai_socktype +is zero the caller will accept any socket type. + + + +ai_protocol + + +indicates which transport protocol is wanted: IPPROTO_UDP or +IPPROTO_TCP. +If +ai_protocol +is zero the caller will accept any protocol. + + + +ai_flags + + +Flag bits. +If the +AI_CANONNAME +bit is set, a successful call to +lwres_getaddrinfo() +will return a null-terminated string containing the canonical name +of the specified hostname in +ai_canonname +of the first +addrinfo +structure returned. +Setting the +AI_PASSIVE +bit indicates that the returned socket address structure is intended +for used in a call to + +bind2 +. + +In this case, if the hostname argument is a +NULL +pointer, then the IP address portion of the socket +address structure will be set to +INADDR_ANY +for an IPv4 address or +IN6ADDR_ANY_INIT +for an IPv6 address. + + +When +ai_flags +does not set the +AI_PASSIVE +bit, the returned socket address structure will be ready +for use in a call to + +connect2 + + +for a connection-oriented protocol or + +connect2 +, + + +sendto2 +, + +or + +sendmsg2 + + +if a connectionless protocol was chosen. +The IP address portion of the socket address structure will be +set to the loopback address if +hostname +is a +NULL +pointer and +AI_PASSIVE +is not set in +ai_flags. + + +If +ai_flags +is set to +AI_NUMERICHOST +it indicates that +hostname +should be treated as a numeric string defining an IPv4 or IPv6 address +and no name resolution should be attempted. + + + + + + + +All other elements of the struct addrinfo passed +via hints must be zero. + + + +A hints of NULL is treated as if +the caller provided a struct addrinfo initialized to zero +with ai_familyset to +PF_UNSPEC. + + + +After a successful call to +lwres_getaddrinfo(), +*res +is a pointer to a linked list of one or more +addrinfo +structures. +Each +struct addrinfo +in this list cn be processed by following +the +ai_next +pointer, until a +NULL +pointer is encountered. +The three members +ai_family, +ai_socktype, +and +ai_protocol +in each +returned +addrinfo +structure contain the corresponding arguments for a call to + +socket2 +. +For each +addrinfo +structure in the list, the +ai_addr +member points to a filled-in socket address structure of length +ai_addrlen. + + + +All of the information returned by +lwres_getaddrinfo() +is dynamically allocated: the addrinfo structures, and the socket +address structures and canonical host name strings pointed to by the +addrinfostructures. +Memory allocated for the dynamically allocated structures created by +a successful call to +lwres_getaddrinfo() +is released by +lwres_freeaddrinfo(). +ai +is a pointer to a +struct addrinfo +created by a call to +lwres_getaddrinfo(). + + + + + +RETURN VALUES + +lwres_getaddrinfo() +returns zero on success or one of the error codes listed in + +gai_strerror3 + + +if an error occurs. +If both +hostname +and +servname +are +NULL +lwres_getaddrinfo() +returns +EAI_NONAME. + + + + +SEE ALSO + + +lwres3 +, + + +lwres_getaddrinfo3 +, + + +lwres_freeaddrinfo3 +, + + +lwres_gai_strerror3 +, + + +RFC2133 +, + + +getservbyname3 +, + + +bind2 +, + + +connect2 +, + + +sendto2 +, + + +sendmsg2 +, + + +socket2 +. + + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.html b/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.html new file mode 100644 index 000000000000..b568e5915ade --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.html @@ -0,0 +1,693 @@ + + + + + +lwres_getaddrinfo

lwres_getaddrinfo

Name

lwres_getaddrinfo, lwres_freeaddrinfo -- socket address structure to host and service name

Synopsis

#include <lwres/netdb.h>

int +lwres_getaddrinfo(const char *hostname, const char *servname, const struct addrinfo *hints, struct addrinfo **res);

void +lwres_freeaddrinfo(struct addrinfo *ai);

If the operating system does not provide a +struct addrinfo, +the following structure is used: + +

struct  addrinfo {
+        int             ai_flags;       /* AI_PASSIVE, AI_CANONNAME */
+        int             ai_family;      /* PF_xxx */
+        int             ai_socktype;    /* SOCK_xxx */
+        int             ai_protocol;    /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
+        size_t          ai_addrlen;     /* length of ai_addr */
+        char            *ai_canonname;  /* canonical name for hostname */
+        struct sockaddr *ai_addr;       /* binary address */
+        struct addrinfo *ai_next;       /* next structure in linked list */
+};

DESCRIPTION

lwres_getaddrinfo() +is used to get a list of IP addresses and port numbers for host +hostname +and service +servname. + +The function is the lightweight resolver's implementation of +getaddrinfo() +as defined in RFC2133. +hostname +and +servname +are pointers to null-terminated +strings or +NULL. + +hostname +is either a host name or a numeric host address string: a dotted decimal +IPv4 address or an IPv6 address. +servname +is either a decimal port number or a service name as listed in +/etc/services.

hints +is an optional pointer to a +struct addrinfo. +This structure can be used to provide hints concerning the type of socket +that the caller supports or wishes to use. +The caller can supply the following structure elements in +*hints: + +

ai_family

The protocol family that should be used. +When +ai_family +is set to +PF_UNSPEC, +it means the caller will accept any protocol family supported by the +operating system.

ai_socktype

denotes the type of socket — +SOCK_STREAM, +SOCK_DGRAM +or +SOCK_RAW +— that is wanted. +When +ai_socktype +is zero the caller will accept any socket type.

ai_protocol

indicates which transport protocol is wanted: IPPROTO_UDP or +IPPROTO_TCP. +If +ai_protocol +is zero the caller will accept any protocol.

ai_flags

Flag bits. +If the +AI_CANONNAME +bit is set, a successful call to +lwres_getaddrinfo() +will return a null-terminated string containing the canonical name +of the specified hostname in +ai_canonname +of the first +addrinfo +structure returned. +Setting the +AI_PASSIVE +bit indicates that the returned socket address structure is intended +for used in a call to +bind(2). + +In this case, if the hostname argument is a +NULL +pointer, then the IP address portion of the socket +address structure will be set to +INADDR_ANY +for an IPv4 address or +IN6ADDR_ANY_INIT +for an IPv6 address.

When +ai_flags +does not set the +AI_PASSIVE +bit, the returned socket address structure will be ready +for use in a call to +connect(2) +for a connection-oriented protocol or +connect(2), + +sendto(2), + +or +sendmsg(2) +if a connectionless protocol was chosen. +The IP address portion of the socket address structure will be +set to the loopback address if +hostname +is a +NULL +pointer and +AI_PASSIVE +is not set in +ai_flags.

If +ai_flags +is set to +AI_NUMERICHOST +it indicates that +hostname +should be treated as a numeric string defining an IPv4 or IPv6 address +and no name resolution should be attempted.

All other elements of the struct addrinfo passed +via hints must be zero.

A hints of NULL is treated as if +the caller provided a struct addrinfo initialized to zero +with ai_familyset to +PF_UNSPEC.

After a successful call to +lwres_getaddrinfo(), +*res +is a pointer to a linked list of one or more +addrinfo +structures. +Each +struct addrinfo +in this list cn be processed by following +the +ai_next +pointer, until a +NULL +pointer is encountered. +The three members +ai_family, +ai_socktype, +and +ai_protocol +in each +returned +addrinfo +structure contain the corresponding arguments for a call to +socket(2). +For each +addrinfo +structure in the list, the +ai_addr +member points to a filled-in socket address structure of length +ai_addrlen.

All of the information returned by +lwres_getaddrinfo() +is dynamically allocated: the addrinfo structures, and the socket +address structures and canonical host name strings pointed to by the +addrinfostructures. +Memory allocated for the dynamically allocated structures created by +a successful call to +lwres_getaddrinfo() +is released by +lwres_freeaddrinfo(). +ai +is a pointer to a +struct addrinfo +created by a call to +lwres_getaddrinfo().

RETURN VALUES

lwres_getaddrinfo() +returns zero on success or one of the error codes listed in +gai_strerror(3) +if an error occurs. +If both +hostname +and +servname +are +NULL +lwres_getaddrinfo() +returns +EAI_NONAME.

SEE ALSO

lwres(3), + +lwres_getaddrinfo(3), + +lwres_freeaddrinfo(3), + +lwres_gai_strerror(3), + +RFC2133, + +getservbyname(3), + +bind(2), + +connect(2), + +sendto(2), + +sendmsg(2), + +socket(2).

diff --git a/contrib/bind9/lib/lwres/man/lwres_gethostent.3 b/contrib/bind9/lib/lwres/man/lwres_gethostent.3 new file mode 100644 index 000000000000..5a4234797d08 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_gethostent.3 @@ -0,0 +1,272 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_gethostent.3,v 1.16.2.1.8.1 2004/03/06 07:41:43 marka Exp $ +.\" +.TH "LWRES_GETHOSTENT" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_gethostbyname, lwres_gethostbyname2, lwres_gethostbyaddr, lwres_gethostent, lwres_sethostent, lwres_endhostent, lwres_gethostbyname_r, lwres_gethostbyaddr_r, lwres_gethostent_r, lwres_sethostent_r, lwres_endhostent_r \- lightweight resolver get network host entry +.SH SYNOPSIS +\fB#include +.sp +.na +struct hostent * +lwres_gethostbyname(const char *name); +.ad +.sp +.na +struct hostent * +lwres_gethostbyname2(const char *name, int af); +.ad +.sp +.na +struct hostent * +lwres_gethostbyaddr(const char *addr, int len, int type); +.ad +.sp +.na +struct hostent * +lwres_gethostent(void); +.ad +.sp +.na +void +lwres_sethostent(int stayopen); +.ad +.sp +.na +void +lwres_endhostent(void); +.ad +.sp +.na +struct hostent * +lwres_gethostbyname_r(const char *name, struct hostent *resbuf, char *buf, int buflen, int *error); +.ad +.sp +.na +struct hostent * +lwres_gethostbyaddr_r(const char *addr, int len, int type, struct hostent *resbuf, char *buf, int buflen, int *error); +.ad +.sp +.na +struct hostent * +lwres_gethostent_r(struct hostent *resbuf, char *buf, int buflen, int *error); +.ad +.sp +.na +void +lwres_sethostent_r(int stayopen); +.ad +.sp +.na +void +lwres_endhostent_r(void); +.ad +\fR +.SH "DESCRIPTION" +.PP +These functions provide hostname-to-address and +address-to-hostname lookups by means of the lightweight resolver. +They are similar to the standard +\fBgethostent\fR(3) +functions provided by most operating systems. +They use a +\fBstruct hostent\fR +which is usually defined in +\fI\fR. +.sp +.nf +struct hostent { + char *h_name; /* official name of host */ + char **h_aliases; /* alias list */ + int h_addrtype; /* host address type */ + int h_length; /* length of address */ + char **h_addr_list; /* list of addresses from name server */ +}; +#define h_addr h_addr_list[0] /* address, for backward compatibility */ +.sp +.fi +.PP +The members of this structure are: +.TP +\fBh_name\fR +The official (canonical) name of the host. +.TP +\fBh_aliases\fR +A NULL-terminated array of alternate names (nicknames) for the host. +.TP +\fBh_addrtype\fR +The type of address being returned \(em +\fBPF_INET\fR +or +\fBPF_INET6\fR. +.TP +\fBh_length\fR +The length of the address in bytes. +.TP +\fBh_addr_list\fR +A \fBNULL\fR +terminated array of network addresses for the host. +Host addresses are returned in network byte order. +.PP +For backward compatibility with very old software, +h_addr +is the first address in +h_addr_list. +.PP +\fBlwres_gethostent()\fR, +\fBlwres_sethostent()\fR, +\fBlwres_endhostent()\fR, +\fBlwres_gethostent_r()\fR, +\fBlwres_sethostent_r()\fR +and +\fBlwres_endhostent_r()\fR +provide iteration over the known host entries on systems that +provide such functionality through facilities like +\fI/etc/hosts\fR +or NIS. The lightweight resolver does not currently implement +these functions; it only provides them as stub functions that always +return failure. +.PP +\fBlwres_gethostbyname()\fR and +\fBlwres_gethostbyname2()\fR look up the hostname +\fIname\fR. +\fBlwres_gethostbyname()\fR always looks for an IPv4 +address while \fBlwres_gethostbyname2()\fR looks for an +address of protocol family \fIaf\fR: either +\fBPF_INET\fR or \fBPF_INET6\fR \(em IPv4 or IPV6 +addresses respectively. Successful calls of the functions return a +\fBstruct hostent\fRfor the name that was looked up. +\fBNULL\fR is returned if the lookups by +\fBlwres_gethostbyname()\fR or +\fBlwres_gethostbyname2()\fR fail. +.PP +Reverse lookups of addresses are performed by +\fBlwres_gethostbyaddr()\fR. +\fIaddr\fR is an address of length +\fIlen\fR bytes and protocol family +\fItype\fR \(em \fBPF_INET\fR or +\fBPF_INET6\fR. +\fBlwres_gethostbyname_r()\fR is a thread-safe function +for forward lookups. If an error occurs, an error code is returned in +\fI*error\fR. +\fIresbuf\fR is a pointer to a \fBstruct +hostent\fR which is initialised by a successful call to +\fBlwres_gethostbyname_r()\fR . +\fIbuf\fR is a buffer of length +\fIlen\fR bytes which is used to store the +h_name, h_aliases, and +h_addr_list elements of the \fBstruct +hostent\fR returned in \fIresbuf\fR. +Successful calls to \fBlwres_gethostbyname_r()\fR +return \fIresbuf\fR, +which is a pointer to the \fBstruct hostent\fR it created. +.PP +\fBlwres_gethostbyaddr_r()\fR is a thread-safe function +that performs a reverse lookup of address \fIaddr\fR +which is \fIlen\fR bytes long and is of protocol +family \fItype\fR \(em \fBPF_INET\fR or +\fBPF_INET6\fR. If an error occurs, the error code is returned +in \fI*error\fR. The other function parameters are +identical to those in \fBlwres_gethostbyname_r()\fR. +\fIresbuf\fR is a pointer to a \fBstruct +hostent\fR which is initialised by a successful call to +\fBlwres_gethostbyaddr_r()\fR. +\fIbuf\fR is a buffer of length +\fIlen\fR bytes which is used to store the +h_name, h_aliases, and +h_addr_list elements of the \fBstruct +hostent\fR returned in \fIresbuf\fR. Successful +calls to \fBlwres_gethostbyaddr_r()\fR return +\fIresbuf\fR, which is a pointer to the +\fBstruct hostent()\fR it created. +.SH "RETURN VALUES" +.PP +The functions +\fBlwres_gethostbyname()\fR, +\fBlwres_gethostbyname2()\fR, +\fBlwres_gethostbyaddr()\fR, +and +\fBlwres_gethostent()\fR +return NULL to indicate an error. In this case the global variable +\fBlwres_h_errno\fR +will contain one of the following error codes defined in +\fI\fR: +.TP +\fBHOST_NOT_FOUND\fR +The host or address was not found. +.TP +\fBTRY_AGAIN\fR +A recoverable error occurred, e.g., a timeout. +Retrying the lookup may succeed. +.TP +\fBNO_RECOVERY\fR +A non-recoverable error occurred. +.TP +\fBNO_DATA\fR +The name exists, but has no address information +associated with it (or vice versa in the case +of a reverse lookup). The code NO_ADDRESS +is accepted as a synonym for NO_DATA for backwards +compatibility. +.PP +\fBlwres_hstrerror\fR(3) +translates these error codes to suitable error messages. +.PP +\fBlwres_gethostent()\fR +and +\fBlwres_gethostent_r()\fR +always return +\fBNULL\fR. +.PP +Successful calls to \fBlwres_gethostbyname_r()\fR and +\fBlwres_gethostbyaddr_r()\fR return +\fIresbuf\fR, a pointer to the \fBstruct +hostent\fR that was initialised by these functions. They return +\fBNULL\fR if the lookups fail or if \fIbuf\fR +was too small to hold the list of addresses and names referenced by +the h_name, h_aliases, and +h_addr_list elements of the \fBstruct +hostent\fR. If \fIbuf\fR was too small, both +\fBlwres_gethostbyname_r()\fR and +\fBlwres_gethostbyaddr_r()\fR set the global variable +\fBerrno\fR to ERANGE. +.SH "SEE ALSO" +.PP +\fBgethostent\fR(3), +\fBlwres_getipnode\fR(3), +\fBlwres_hstrerror\fR(3) +.SH "BUGS" +.PP +\fBlwres_gethostbyname()\fR, +\fBlwres_gethostbyname2()\fR, +\fBlwres_gethostbyaddr()\fR +and +\fBlwres_endhostent()\fR +are not thread safe; they return pointers to static data and +provide error codes through a global variable. +Thread-safe versions for name and address lookup are provided by +\fBlwres_gethostbyname_r()\fR, +and +\fBlwres_gethostbyaddr_r()\fR +respectively. +.PP +The resolver daemon does not currently support any non-DNS +name services such as +\fI/etc/hosts\fR +or +\fBNIS\fR, +consequently the above functions don't, either. diff --git a/contrib/bind9/lib/lwres/man/lwres_gethostent.docbook b/contrib/bind9/lib/lwres/man/lwres_gethostent.docbook new file mode 100644 index 000000000000..10324c31b94d --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_gethostent.docbook @@ -0,0 +1,407 @@ + + + + + + + + +Jun 30, 2000 + + + +lwres_gethostent +3 +BIND9 + + + +lwres_gethostbyname +lwres_gethostbyname2 +lwres_gethostbyaddr +lwres_gethostent +lwres_sethostent +lwres_endhostent +lwres_gethostbyname_r +lwres_gethostbyaddr_r +lwres_gethostent_r +lwres_sethostent_r +lwres_endhostent_r +lightweight resolver get network host entry + + + +#include <lwres/netdb.h> + + +struct hostent * +lwres_gethostbyname +const char *name + + + +struct hostent * +lwres_gethostbyname2 +const char *name +int af + + + +struct hostent * +lwres_gethostbyaddr +const char *addr +int len +int type + + + +struct hostent * +lwres_gethostent +void + + + +void +lwres_sethostent +int stayopen + + + +void +lwres_endhostent +void + + + +struct hostent * +lwres_gethostbyname_r +const char *name +struct hostent *resbuf +char *buf +int buflen +int *error + + + +struct hostent * +lwres_gethostbyaddr_r +const char *addr +int len +int type +struct hostent *resbuf +char *buf +int buflen +int *error + + + +struct hostent * +lwres_gethostent_r +struct hostent *resbuf +char *buf +int buflen +int *error + + + +void +lwres_sethostent_r +int stayopen + + + +void +lwres_endhostent_r +void + + + + + +DESCRIPTION + +These functions provide hostname-to-address and +address-to-hostname lookups by means of the lightweight resolver. +They are similar to the standard + +gethostent3 + + +functions provided by most operating systems. +They use a +struct hostent +which is usually defined in +<namedb.h>. + + +struct hostent { + char *h_name; /* official name of host */ + char **h_aliases; /* alias list */ + int h_addrtype; /* host address type */ + int h_length; /* length of address */ + char **h_addr_list; /* list of addresses from name server */ +}; +#define h_addr h_addr_list[0] /* address, for backward compatibility */ + + + +The members of this structure are: + +h_name + + +The official (canonical) name of the host. + + +h_aliases + + +A NULL-terminated array of alternate names (nicknames) for the host. + + +h_addrtype + + +The type of address being returned — +PF_INET +or +PF_INET6. + + +h_length + + +The length of the address in bytes. + + +h_addr_list + + +A NULL +terminated array of network addresses for the host. +Host addresses are returned in network byte order. + + + + + +For backward compatibility with very old software, +h_addr +is the first address in +h_addr_list. + + +lwres_gethostent(), +lwres_sethostent(), +lwres_endhostent(), +lwres_gethostent_r(), +lwres_sethostent_r() +and +lwres_endhostent_r() +provide iteration over the known host entries on systems that +provide such functionality through facilities like +/etc/hosts +or NIS. The lightweight resolver does not currently implement +these functions; it only provides them as stub functions that always +return failure. + + + +lwres_gethostbyname() and +lwres_gethostbyname2() look up the hostname +name. +lwres_gethostbyname() always looks for an IPv4 +address while lwres_gethostbyname2() looks for an +address of protocol family af: either +PF_INET or PF_INET6 — IPv4 or IPV6 +addresses respectively. Successful calls of the functions return a +struct hostentfor the name that was looked up. +NULL is returned if the lookups by +lwres_gethostbyname() or +lwres_gethostbyname2() fail. + + + +Reverse lookups of addresses are performed by +lwres_gethostbyaddr(). +addr is an address of length +len bytes and protocol family +typePF_INET or +PF_INET6. +lwres_gethostbyname_r() is a thread-safe function +for forward lookups. If an error occurs, an error code is returned in +*error. +resbuf is a pointer to a struct +hostent which is initialised by a successful call to +lwres_gethostbyname_r() . +buf is a buffer of length +len bytes which is used to store the +h_name, h_aliases, and +h_addr_list elements of the struct +hostent returned in resbuf. +Successful calls to lwres_gethostbyname_r() +return resbuf, +which is a pointer to the struct hostent it created. + + + +lwres_gethostbyaddr_r() is a thread-safe function +that performs a reverse lookup of address addr +which is len bytes long and is of protocol +family typePF_INET or +PF_INET6. If an error occurs, the error code is returned +in *error. The other function parameters are +identical to those in lwres_gethostbyname_r(). +resbuf is a pointer to a struct +hostent which is initialised by a successful call to +lwres_gethostbyaddr_r(). +buf is a buffer of length +len bytes which is used to store the +h_name, h_aliases, and +h_addr_list elements of the struct +hostent returned in resbuf. Successful +calls to lwres_gethostbyaddr_r() return +resbuf, which is a pointer to the +struct hostent() it created. + + + + + +RETURN VALUES + +The functions +lwres_gethostbyname(), +lwres_gethostbyname2(), +lwres_gethostbyaddr(), +and +lwres_gethostent() +return NULL to indicate an error. In this case the global variable +lwres_h_errno +will contain one of the following error codes defined in +<lwres/netdb.h>: + + +HOST_NOT_FOUND + + +The host or address was not found. + + +TRY_AGAIN + + +A recoverable error occurred, e.g., a timeout. +Retrying the lookup may succeed. + + +NO_RECOVERY + + +A non-recoverable error occurred. + + +NO_DATA + + +The name exists, but has no address information +associated with it (or vice versa in the case +of a reverse lookup). The code NO_ADDRESS +is accepted as a synonym for NO_DATA for backwards +compatibility. + + + + + + + +lwres_hstrerror3 + + +translates these error codes to suitable error messages. + + + +lwres_gethostent() +and +lwres_gethostent_r() +always return +NULL. + + + +Successful calls to lwres_gethostbyname_r() and +lwres_gethostbyaddr_r() return +resbuf, a pointer to the struct +hostent that was initialised by these functions. They return +NULL if the lookups fail or if buf +was too small to hold the list of addresses and names referenced by +the h_name, h_aliases, and +h_addr_list elements of the struct +hostent. If buf was too small, both +lwres_gethostbyname_r() and +lwres_gethostbyaddr_r() set the global variable +errno to ERANGE. + + + + +SEE ALSO + + +gethostent3 +, + + +lwres_getipnode3 +, + + +lwres_hstrerror3 + + + + + + +BUGS + +lwres_gethostbyname(), +lwres_gethostbyname2(), +lwres_gethostbyaddr() +and +lwres_endhostent() +are not thread safe; they return pointers to static data and +provide error codes through a global variable. +Thread-safe versions for name and address lookup are provided by +lwres_gethostbyname_r(), +and +lwres_gethostbyaddr_r() +respectively. + + +The resolver daemon does not currently support any non-DNS +name services such as +/etc/hosts +or +NIS, +consequently the above functions don't, either. + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_gethostent.html b/contrib/bind9/lib/lwres/man/lwres_gethostent.html new file mode 100644 index 000000000000..00b285db2061 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_gethostent.html @@ -0,0 +1,784 @@ + + + + + +lwres_gethostent

lwres_gethostent

Name

lwres_gethostbyname, lwres_gethostbyname2, lwres_gethostbyaddr, lwres_gethostent, lwres_sethostent, lwres_endhostent, lwres_gethostbyname_r, lwres_gethostbyaddr_r, lwres_gethostent_r, lwres_sethostent_r, lwres_endhostent_r -- lightweight resolver get network host entry

Synopsis

#include <lwres/netdb.h>

struct hostent * +lwres_gethostbyname(const char *name);

struct hostent * +lwres_gethostbyname2(const char *name, int af);

struct hostent * +lwres_gethostbyaddr(const char *addr, int len, int type);

struct hostent * +lwres_gethostent(void);

void +lwres_sethostent(int stayopen);

void +lwres_endhostent(void);

struct hostent * +lwres_gethostbyname_r(const char *name, struct hostent *resbuf, char *buf, int buflen, int *error);

struct hostent * +lwres_gethostbyaddr_r(const char *addr, int len, int type, struct hostent *resbuf, char *buf, int buflen, int *error);

struct hostent * +lwres_gethostent_r(struct hostent *resbuf, char *buf, int buflen, int *error);

void +lwres_sethostent_r(int stayopen);

void +lwres_endhostent_r(void);

DESCRIPTION

These functions provide hostname-to-address and +address-to-hostname lookups by means of the lightweight resolver. +They are similar to the standard +gethostent(3) +functions provided by most operating systems. +They use a +struct hostent +which is usually defined in +<namedb.h>. + +

struct  hostent {
+        char    *h_name;        /* official name of host */
+        char    **h_aliases;    /* alias list */
+        int     h_addrtype;     /* host address type */
+        int     h_length;       /* length of address */
+        char    **h_addr_list;  /* list of addresses from name server */
+};
+#define h_addr  h_addr_list[0]  /* address, for backward compatibility */

The members of this structure are: +

h_name

The official (canonical) name of the host.

h_aliases

A NULL-terminated array of alternate names (nicknames) for the host.

h_addrtype

The type of address being returned — +PF_INET +or +PF_INET6.

h_length

The length of the address in bytes.

h_addr_list

A NULL +terminated array of network addresses for the host. +Host addresses are returned in network byte order.

For backward compatibility with very old software, +h_addr +is the first address in +h_addr_list.

lwres_gethostent(), +lwres_sethostent(), +lwres_endhostent(), +lwres_gethostent_r(), +lwres_sethostent_r() +and +lwres_endhostent_r() +provide iteration over the known host entries on systems that +provide such functionality through facilities like +/etc/hosts +or NIS. The lightweight resolver does not currently implement +these functions; it only provides them as stub functions that always +return failure.

lwres_gethostbyname() and +lwres_gethostbyname2() look up the hostname +name. +lwres_gethostbyname() always looks for an IPv4 +address while lwres_gethostbyname2() looks for an +address of protocol family af: either +PF_INET or PF_INET6 — IPv4 or IPV6 +addresses respectively. Successful calls of the functions return a +struct hostentfor the name that was looked up. +NULL is returned if the lookups by +lwres_gethostbyname() or +lwres_gethostbyname2() fail.

Reverse lookups of addresses are performed by +lwres_gethostbyaddr(). +addr is an address of length +len bytes and protocol family +typePF_INET or +PF_INET6. +lwres_gethostbyname_r() is a thread-safe function +for forward lookups. If an error occurs, an error code is returned in +*error. +resbuf is a pointer to a struct +hostent which is initialised by a successful call to +lwres_gethostbyname_r() . +buf is a buffer of length +len bytes which is used to store the +h_name, h_aliases, and +h_addr_list elements of the struct +hostent returned in resbuf. +Successful calls to lwres_gethostbyname_r() +return resbuf, +which is a pointer to the struct hostent it created.

lwres_gethostbyaddr_r() is a thread-safe function +that performs a reverse lookup of address addr +which is len bytes long and is of protocol +family typePF_INET or +PF_INET6. If an error occurs, the error code is returned +in *error. The other function parameters are +identical to those in lwres_gethostbyname_r(). +resbuf is a pointer to a struct +hostent which is initialised by a successful call to +lwres_gethostbyaddr_r(). +buf is a buffer of length +len bytes which is used to store the +h_name, h_aliases, and +h_addr_list elements of the struct +hostent returned in resbuf. Successful +calls to lwres_gethostbyaddr_r() return +resbuf, which is a pointer to the +struct hostent() it created.

RETURN VALUES

The functions +lwres_gethostbyname(), +lwres_gethostbyname2(), +lwres_gethostbyaddr(), +and +lwres_gethostent() +return NULL to indicate an error. In this case the global variable +lwres_h_errno +will contain one of the following error codes defined in +<lwres/netdb.h>: + +

HOST_NOT_FOUND

The host or address was not found.

TRY_AGAIN

A recoverable error occurred, e.g., a timeout. +Retrying the lookup may succeed.

NO_RECOVERY

A non-recoverable error occurred.

NO_DATA

The name exists, but has no address information +associated with it (or vice versa in the case +of a reverse lookup). The code NO_ADDRESS +is accepted as a synonym for NO_DATA for backwards +compatibility.

lwres_hstrerror(3) +translates these error codes to suitable error messages.

lwres_gethostent() +and +lwres_gethostent_r() +always return +NULL.

Successful calls to lwres_gethostbyname_r() and +lwres_gethostbyaddr_r() return +resbuf, a pointer to the struct +hostent that was initialised by these functions. They return +NULL if the lookups fail or if buf +was too small to hold the list of addresses and names referenced by +the h_name, h_aliases, and +h_addr_list elements of the struct +hostent. If buf was too small, both +lwres_gethostbyname_r() and +lwres_gethostbyaddr_r() set the global variable +errno to ERANGE.

SEE ALSO

gethostent(3), + +lwres_getipnode(3), + +lwres_hstrerror(3)

BUGS

lwres_gethostbyname(), +lwres_gethostbyname2(), +lwres_gethostbyaddr() +and +lwres_endhostent() +are not thread safe; they return pointers to static data and +provide error codes through a global variable. +Thread-safe versions for name and address lookup are provided by +lwres_gethostbyname_r(), +and +lwres_gethostbyaddr_r() +respectively.

The resolver daemon does not currently support any non-DNS +name services such as +/etc/hosts +or +NIS, +consequently the above functions don't, either.

diff --git a/contrib/bind9/lib/lwres/man/lwres_getipnode.3 b/contrib/bind9/lib/lwres/man/lwres_getipnode.3 new file mode 100644 index 000000000000..815a841512cb --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_getipnode.3 @@ -0,0 +1,189 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_getipnode.3,v 1.13.2.2.4.2 2004/03/09 05:21:10 marka Exp $ +.\" +.TH "LWRES_GETIPNODE" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_getipnodebyname, lwres_getipnodebyaddr, lwres_freehostent \- lightweight resolver nodename / address translation API +.SH SYNOPSIS +\fB#include +.sp +.na +struct hostent * +lwres_getipnodebyname(const char *name, int af, int flags, int *error_num); +.ad +.sp +.na +struct hostent * +lwres_getipnodebyaddr(const void *src, size_t len, int af, int *error_num); +.ad +.sp +.na +void +lwres_freehostent(struct hostent *he); +.ad +\fR +.SH "DESCRIPTION" +.PP +These functions perform thread safe, protocol independent +nodename-to-address and address-to-nodename +translation as defined in RFC2553. +.PP +They use a +\fBstruct hostent\fR +which is defined in +\fInamedb.h\fR: +.sp +.nf +struct hostent { + char *h_name; /* official name of host */ + char **h_aliases; /* alias list */ + int h_addrtype; /* host address type */ + int h_length; /* length of address */ + char **h_addr_list; /* list of addresses from name server */ +}; +#define h_addr h_addr_list[0] /* address, for backward compatibility */ +.sp +.fi +.PP +The members of this structure are: +.TP +\fBh_name\fR +The official (canonical) name of the host. +.TP +\fBh_aliases\fR +A NULL-terminated array of alternate names (nicknames) for the host. +.TP +\fBh_addrtype\fR +The type of address being returned - usually +\fBPF_INET\fR +or +\fBPF_INET6\fR. +.TP +\fBh_length\fR +The length of the address in bytes. +.TP +\fBh_addr_list\fR +A +\fBNULL\fR +terminated array of network addresses for the host. +Host addresses are returned in network byte order. +.PP +\fBlwres_getipnodebyname()\fR +looks up addresses of protocol family +\fIaf\fR +for the hostname +\fIname\fR. +The +\fIflags\fR +parameter contains ORed flag bits to +specify the types of addresses that are searched +for, and the types of addresses that are returned. +The flag bits are: +.TP +\fBAI_V4MAPPED\fR +This is used with an +\fIaf\fR +of AF_INET6, and causes IPv4 addresses to be returned as IPv4-mapped +IPv6 addresses. +.TP +\fBAI_ALL\fR +This is used with an +\fIaf\fR +of AF_INET6, and causes all known addresses (IPv6 and IPv4) to be returned. +If AI_V4MAPPED is also set, the IPv4 addresses are return as mapped +IPv6 addresses. +.TP +\fBAI_ADDRCONFIG\fR +Only return an IPv6 or IPv4 address if here is an active network +interface of that type. This is not currently implemented +in the BIND 9 lightweight resolver, and the flag is ignored. +.TP +\fBAI_DEFAULT\fR +This default sets the +AI_V4MAPPED +and +AI_ADDRCONFIG +flag bits. +.PP +\fBlwres_getipnodebyaddr()\fR +performs a reverse lookup +of address +\fIsrc\fR +which is +\fIlen\fR +bytes long. +\fIaf\fR +denotes the protocol family, typically +\fBPF_INET\fR +or +\fBPF_INET6\fR. +.PP +\fBlwres_freehostent()\fR +releases all the memory associated with +the +\fBstruct hostent\fR +pointer +\fIhe\fR. +Any memory allocated for the +h_name, +h_addr_list +and +h_aliases +is freed, as is the memory for the +\fBhostent\fR +structure itself. +.SH "RETURN VALUES" +.PP +If an error occurs, +\fBlwres_getipnodebyname()\fR +and +\fBlwres_getipnodebyaddr()\fR +set +\fI*error_num\fR +to an appropriate error code and the function returns a +\fBNULL\fR +pointer. +The error codes and their meanings are defined in +\fI\fR: +.TP +\fBHOST_NOT_FOUND\fR +No such host is known. +.TP +\fBNO_ADDRESS\fR +The server recognised the request and the name but no address is +available. Another type of request to the name server for the +domain might return an answer. +.TP +\fBTRY_AGAIN\fR +A temporary and possibly transient error occurred, such as a +failure of a server to respond. The request may succeed if +retried. +.TP +\fBNO_RECOVERY\fR +An unexpected failure occurred, and retrying the request +is pointless. +.PP +\fBlwres_hstrerror\fR(3) +translates these error codes to suitable error messages. +.SH "SEE ALSO" +.PP +\fBRFC2553\fR, +\fBlwres\fR(3), +\fBlwres_gethostent\fR(3), +\fBlwres_getaddrinfo\fR(3), +\fBlwres_getnameinfo\fR(3), +\fBlwres_hstrerror\fR(3). diff --git a/contrib/bind9/lib/lwres/man/lwres_getipnode.docbook b/contrib/bind9/lib/lwres/man/lwres_getipnode.docbook new file mode 100644 index 000000000000..30c04a355502 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_getipnode.docbook @@ -0,0 +1,307 @@ + + + + + + + + +Jun 30, 2000 + + + +lwres_getipnode +3 +BIND9 + + + +lwres_getipnodebyname +lwres_getipnodebyaddr +lwres_freehostent +lightweight resolver nodename / address translation API + + + +#include <lwres/netdb.h> + + +struct hostent * +lwres_getipnodebyname +const char *name +int af +int flags +int *error_num + + + +struct hostent * +lwres_getipnodebyaddr +const void *src +size_t len +int af +int *error_num + + + +void +lwres_freehostent +struct hostent *he + + + + + +DESCRIPTION + + +These functions perform thread safe, protocol independent +nodename-to-address and address-to-nodename +translation as defined in RFC2553. + + + +They use a +struct hostent +which is defined in +namedb.h: + +struct hostent { + char *h_name; /* official name of host */ + char **h_aliases; /* alias list */ + int h_addrtype; /* host address type */ + int h_length; /* length of address */ + char **h_addr_list; /* list of addresses from name server */ +}; +#define h_addr h_addr_list[0] /* address, for backward compatibility */ + + + + +The members of this structure are: + +h_name + + +The official (canonical) name of the host. + + +h_aliases + + +A NULL-terminated array of alternate names (nicknames) for the host. + + +h_addrtype + + +The type of address being returned - usually +PF_INET +or +PF_INET6. + + + +h_length + + +The length of the address in bytes. + + +h_addr_list + + +A +NULL +terminated array of network addresses for the host. +Host addresses are returned in network byte order. + + + + + +lwres_getipnodebyname() +looks up addresses of protocol family +af + +for the hostname +name. + +The +flags +parameter contains ORed flag bits to +specify the types of addresses that are searched +for, and the types of addresses that are returned. +The flag bits are: + +AI_V4MAPPED + + +This is used with an +af +of AF_INET6, and causes IPv4 addresses to be returned as IPv4-mapped +IPv6 addresses. + + +AI_ALL + + +This is used with an +af +of AF_INET6, and causes all known addresses (IPv6 and IPv4) to be returned. +If AI_V4MAPPED is also set, the IPv4 addresses are return as mapped +IPv6 addresses. + + +AI_ADDRCONFIG + + +Only return an IPv6 or IPv4 address if here is an active network +interface of that type. This is not currently implemented +in the BIND 9 lightweight resolver, and the flag is ignored. + + +AI_DEFAULT + + +This default sets the +AI_V4MAPPED +and +AI_ADDRCONFIG +flag bits. + + + + + +lwres_getipnodebyaddr() +performs a reverse lookup +of address +src +which is +len +bytes long. +af +denotes the protocol family, typically +PF_INET +or +PF_INET6. + + + +lwres_freehostent() +releases all the memory associated with +the +struct hostent +pointer +he. + +Any memory allocated for the +h_name, + +h_addr_list +and +h_aliases +is freed, as is the memory for the +hostent +structure itself. + + + +RETURN VALUES + +If an error occurs, +lwres_getipnodebyname() +and +lwres_getipnodebyaddr() +set +*error_num +to an appropriate error code and the function returns a +NULL +pointer. +The error codes and their meanings are defined in +<lwres/netdb.h>: + +HOST_NOT_FOUND + + +No such host is known. + + +NO_ADDRESS + + +The server recognised the request and the name but no address is +available. Another type of request to the name server for the +domain might return an answer. + + +TRY_AGAIN + + +A temporary and possibly transient error occurred, such as a +failure of a server to respond. The request may succeed if +retried. + + +NO_RECOVERY + + +An unexpected failure occurred, and retrying the request +is pointless. + + + + + + +lwres_hstrerror3 + + +translates these error codes to suitable error messages. + + + +SEE ALSO + + +RFC2553 +, + + +lwres3 +, + + +lwres_gethostent3 +, + + +lwres_getaddrinfo3 +, + + +lwres_getnameinfo3 +, + + +lwres_hstrerror3 +. + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_getipnode.html b/contrib/bind9/lib/lwres/man/lwres_getipnode.html new file mode 100644 index 000000000000..3063d440582b --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_getipnode.html @@ -0,0 +1,512 @@ + + + + + +lwres_getipnode

lwres_getipnode

Name

lwres_getipnodebyname, lwres_getipnodebyaddr, lwres_freehostent -- lightweight resolver nodename / address translation API

Synopsis

#include <lwres/netdb.h>

struct hostent * +lwres_getipnodebyname(const char *name, int af, int flags, int *error_num);

struct hostent * +lwres_getipnodebyaddr(const void *src, size_t len, int af, int *error_num);

void +lwres_freehostent(struct hostent *he);

DESCRIPTION

These functions perform thread safe, protocol independent +nodename-to-address and address-to-nodename +translation as defined in RFC2553.

They use a +struct hostent +which is defined in +namedb.h: +

struct  hostent {
+        char    *h_name;        /* official name of host */
+        char    **h_aliases;    /* alias list */
+        int     h_addrtype;     /* host address type */
+        int     h_length;       /* length of address */
+        char    **h_addr_list;  /* list of addresses from name server */
+};
+#define h_addr  h_addr_list[0]  /* address, for backward compatibility */

The members of this structure are: +

h_name

The official (canonical) name of the host.

h_aliases

A NULL-terminated array of alternate names (nicknames) for the host.

h_addrtype

The type of address being returned - usually +PF_INET +or +PF_INET6.

h_length

The length of the address in bytes.

h_addr_list

A +NULL +terminated array of network addresses for the host. +Host addresses are returned in network byte order.

lwres_getipnodebyname() +looks up addresses of protocol family +af + +for the hostname +name. + +The +flags +parameter contains ORed flag bits to +specify the types of addresses that are searched +for, and the types of addresses that are returned. +The flag bits are: +

AI_V4MAPPED

This is used with an +af +of AF_INET6, and causes IPv4 addresses to be returned as IPv4-mapped +IPv6 addresses.

AI_ALL

This is used with an +af +of AF_INET6, and causes all known addresses (IPv6 and IPv4) to be returned. +If AI_V4MAPPED is also set, the IPv4 addresses are return as mapped +IPv6 addresses.

AI_ADDRCONFIG

Only return an IPv6 or IPv4 address if here is an active network +interface of that type. This is not currently implemented +in the BIND 9 lightweight resolver, and the flag is ignored.

AI_DEFAULT

This default sets the +AI_V4MAPPED +and +AI_ADDRCONFIG +flag bits.

lwres_getipnodebyaddr() +performs a reverse lookup +of address +src +which is +len +bytes long. +af +denotes the protocol family, typically +PF_INET +or +PF_INET6.

lwres_freehostent() +releases all the memory associated with +the +struct hostent +pointer +he. + +Any memory allocated for the +h_name, + +h_addr_list +and +h_aliases +is freed, as is the memory for the +hostent +structure itself.

RETURN VALUES

If an error occurs, +lwres_getipnodebyname() +and +lwres_getipnodebyaddr() +set +*error_num +to an appropriate error code and the function returns a +NULL +pointer. +The error codes and their meanings are defined in +<lwres/netdb.h>: +

HOST_NOT_FOUND

No such host is known.

NO_ADDRESS

The server recognised the request and the name but no address is +available. Another type of request to the name server for the +domain might return an answer.

TRY_AGAIN

A temporary and possibly transient error occurred, such as a +failure of a server to respond. The request may succeed if +retried.

NO_RECOVERY

An unexpected failure occurred, and retrying the request +is pointless.

lwres_hstrerror(3) +translates these error codes to suitable error messages.

SEE ALSO

RFC2553, + +lwres(3), + +lwres_gethostent(3), + +lwres_getaddrinfo(3), + +lwres_getnameinfo(3), + +lwres_hstrerror(3).

diff --git a/contrib/bind9/lib/lwres/man/lwres_getnameinfo.3 b/contrib/bind9/lib/lwres/man/lwres_getnameinfo.3 new file mode 100644 index 000000000000..a512270673b6 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_getnameinfo.3 @@ -0,0 +1,86 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_getnameinfo.3,v 1.15.2.1.8.1 2004/03/06 07:41:43 marka Exp $ +.\" +.TH "LWRES_GETNAMEINFO" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_getnameinfo \- lightweight resolver socket address structure to hostname and service name +.SH SYNOPSIS +\fB#include +.sp +.na +int +lwres_getnameinfo(const struct sockaddr *sa, size_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags); +.ad +\fR +.SH "DESCRIPTION" +.PP +This function is equivalent to the \fBgetnameinfo\fR(3) function defined in RFC2133. +\fBlwres_getnameinfo()\fR returns the hostname for the +\fBstruct sockaddr\fR \fIsa\fR which is +\fIsalen\fR bytes long. The hostname is of length +\fIhostlen\fR and is returned via +\fI*host.\fR The maximum length of the hostname is +1025 bytes: NI_MAXHOST. +.PP +The name of the service associated with the port number in +\fIsa\fR is returned in \fI*serv.\fR +It is \fIservlen\fR bytes long. The maximum length +of the service name is NI_MAXSERV - 32 bytes. +.PP +The \fIflags\fR argument sets the following +bits: +.TP +\fBNI_NOFQDN\fR +A fully qualified domain name is not required for local hosts. +The local part of the fully qualified domain name is returned instead. +.TP +\fBNI_NUMERICHOST\fR +Return the address in numeric form, as if calling inet_ntop(), +instead of a host name. +.TP +\fBNI_NAMEREQD\fR +A name is required. If the hostname cannot be found in the DNS and +this flag is set, a non-zero error code is returned. +If the hostname is not found and the flag is not set, the +address is returned in numeric form. +.TP +\fBNI_NUMERICSERV\fR +The service name is returned as a digit string representing the port number. +.TP +\fBNI_DGRAM\fR +Specifies that the service being looked up is a datagram +service, and causes getservbyport() to be called with a second +argument of "udp" instead of its default of "tcp". This is required +for the few ports (512-514) that have different services for UDP and +TCP. +.SH "RETURN VALUES" +.PP +\fBlwres_getnameinfo()\fR +returns 0 on success or a non-zero error code if an error occurs. +.SH "SEE ALSO" +.PP +\fBRFC2133\fR, +\fBgetservbyport\fR(3), +\fBlwres\fR(3), +\fBlwres_getnameinfo\fR(3), +\fBlwres_getnamebyaddr\fR(3). +\fBlwres_net_ntop\fR(3). +.SH "BUGS" +.PP +RFC2133 fails to define what the nonzero return values of +\fBgetnameinfo\fR(3) +are. diff --git a/contrib/bind9/lib/lwres/man/lwres_getnameinfo.docbook b/contrib/bind9/lib/lwres/man/lwres_getnameinfo.docbook new file mode 100644 index 000000000000..ff2eaad0e965 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_getnameinfo.docbook @@ -0,0 +1,154 @@ + + + + + + + + +Jun 30, 2000 + + + +lwres_getnameinfo +3 +BIND9 + + + +lwres_getnameinfo +lightweight resolver socket address structure to hostname and service name + + + +#include <lwres/netdb.h> + + +int +lwres_getnameinfo +const struct sockaddr *sa +size_t salen +char *host +size_t hostlen +char *serv +size_t servlen +int flags + + + + + +DESCRIPTION + + This function is equivalent to the +getnameinfo3 + function defined in RFC2133. +lwres_getnameinfo() returns the hostname for the +struct sockaddr sa which is +salen bytes long. The hostname is of length +hostlen and is returned via +*host. The maximum length of the hostname is +1025 bytes: NI_MAXHOST. + + The name of the service associated with the port number in +sa is returned in *serv. +It is servlen bytes long. The maximum length +of the service name is NI_MAXSERV - 32 bytes. + + + The flags argument sets the following +bits: + +NI_NOFQDN + + +A fully qualified domain name is not required for local hosts. +The local part of the fully qualified domain name is returned instead. + +NI_NUMERICHOST + + +Return the address in numeric form, as if calling inet_ntop(), +instead of a host name. + +NI_NAMEREQD + + +A name is required. If the hostname cannot be found in the DNS and +this flag is set, a non-zero error code is returned. +If the hostname is not found and the flag is not set, the +address is returned in numeric form. + +NI_NUMERICSERV + + +The service name is returned as a digit string representing the port number. + +NI_DGRAM + + +Specifies that the service being looked up is a datagram +service, and causes getservbyport() to be called with a second +argument of "udp" instead of its default of "tcp". This is required +for the few ports (512-514) that have different services for UDP and +TCP. + + + + + + +RETURN VALUES + +lwres_getnameinfo() +returns 0 on success or a non-zero error code if an error occurs. + + + +SEE ALSO + + +RFC2133 +, + +getservbyport3 +, + +lwres3 +, + +lwres_getnameinfo3 +, + +lwres_getnamebyaddr3 +. + +lwres_net_ntop3 +. + + +BUGS + +RFC2133 fails to define what the nonzero return values of + +getnameinfo3 + +are. + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_getnameinfo.html b/contrib/bind9/lib/lwres/man/lwres_getnameinfo.html new file mode 100644 index 000000000000..8130fe832117 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_getnameinfo.html @@ -0,0 +1,290 @@ + + + + + +lwres_getnameinfo

lwres_getnameinfo

Name

lwres_getnameinfo -- lightweight resolver socket address structure to hostname and service name

Synopsis

#include <lwres/netdb.h>

int +lwres_getnameinfo(const struct sockaddr *sa, size_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);

DESCRIPTION

This function is equivalent to the getnameinfo(3) function defined in RFC2133. +lwres_getnameinfo() returns the hostname for the +struct sockaddr sa which is +salen bytes long. The hostname is of length +hostlen and is returned via +*host. The maximum length of the hostname is +1025 bytes: NI_MAXHOST.

The name of the service associated with the port number in +sa is returned in *serv. +It is servlen bytes long. The maximum length +of the service name is NI_MAXSERV - 32 bytes.

The flags argument sets the following +bits: +

NI_NOFQDN

A fully qualified domain name is not required for local hosts. +The local part of the fully qualified domain name is returned instead.

NI_NUMERICHOST

Return the address in numeric form, as if calling inet_ntop(), +instead of a host name.

NI_NAMEREQD

A name is required. If the hostname cannot be found in the DNS and +this flag is set, a non-zero error code is returned. +If the hostname is not found and the flag is not set, the +address is returned in numeric form.

NI_NUMERICSERV

The service name is returned as a digit string representing the port number.

NI_DGRAM

Specifies that the service being looked up is a datagram +service, and causes getservbyport() to be called with a second +argument of "udp" instead of its default of "tcp". This is required +for the few ports (512-514) that have different services for UDP and +TCP.

RETURN VALUES

lwres_getnameinfo() +returns 0 on success or a non-zero error code if an error occurs.

SEE ALSO

RFC2133, +getservbyport(3), +lwres(3), +lwres_getnameinfo(3), +lwres_getnamebyaddr(3). +lwres_net_ntop(3).

BUGS

RFC2133 fails to define what the nonzero return values of +getnameinfo(3) +are.

diff --git a/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.3 b/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.3 new file mode 100644 index 000000000000..1558f6d5b08a --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.3 @@ -0,0 +1,144 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_getrrsetbyname.3,v 1.11.2.1.8.1 2004/03/06 07:41:43 marka Exp $ +.\" +.TH "LWRES_GETRRSETBYNAME" "3" "Oct 18, 2000" "BIND9" "" +.SH NAME +lwres_getrrsetbyname, lwres_freerrset \- retrieve DNS records +.SH SYNOPSIS +\fB#include +.sp +.na +int +lwres_getrrsetbyname(const char *hostname, unsigned int rdclass, unsigned int rdtype, unsigned int flags, struct rrsetinfo **res); +.ad +.sp +.na +void +lwres_freerrset(struct rrsetinfo *rrset); +.ad +\fR +.PP +The following structures are used: +.sp +.nf +struct rdatainfo { + unsigned int rdi_length; /* length of data */ + unsigned char *rdi_data; /* record data */ +}; + +struct rrsetinfo { + unsigned int rri_flags; /* RRSET_VALIDATED... */ + unsigned int rri_rdclass; /* class number */ + unsigned int rri_rdtype; /* RR type number */ + unsigned int rri_ttl; /* time to live */ + unsigned int rri_nrdatas; /* size of rdatas array */ + unsigned int rri_nsigs; /* size of sigs array */ + char *rri_name; /* canonical name */ + struct rdatainfo *rri_rdatas; /* individual records */ + struct rdatainfo *rri_sigs; /* individual signatures */ +}; +.sp +.fi +.SH "DESCRIPTION" +.PP +\fBlwres_getrrsetbyname()\fR +gets a set of resource records associated with a +\fIhostname\fR, +\fIclass\fR, +and +\fItype\fR. +\fIhostname\fR +is +a pointer a to null-terminated string. The +\fIflags\fR +field is currently unused and must be zero. +.PP +After a successful call to +\fBlwres_getrrsetbyname()\fR, +\fI*res\fR +is a pointer to an +\fBrrsetinfo\fR +structure, containing a list of one or more +\fBrdatainfo\fR +structures containing resource records and potentially another list of +\fBrdatainfo\fR +structures containing SIG resource records +associated with those records. +The members +rri_rdclass +and +rri_rdtype +are copied from the parameters. +rri_ttl +and +rri_name +are properties of the obtained rrset. +The resource records contained in +rri_rdatas +and +rri_sigs +are in uncompressed DNS wire format. +Properties of the rdataset are represented in the +rri_flags +bitfield. If the RRSET_VALIDATED bit is set, the data has been DNSSEC +validated and the signatures verified. +.PP +All of the information returned by +\fBlwres_getrrsetbyname()\fR +is dynamically allocated: the +rrsetinfo +and +rdatainfo +structures, +and the canonical host name strings pointed to by the +rrsetinfostructure. +Memory allocated for the dynamically allocated structures created by +a successful call to +\fBlwres_getrrsetbyname()\fR +is released by +\fBlwres_freerrset()\fR. +\fIrrset\fR +is a pointer to a +\fBstruct rrset\fR +created by a call to +\fBlwres_getrrsetbyname()\fR. +.PP +.SH "RETURN VALUES" +.PP +\fBlwres_getrrsetbyname()\fR +returns zero on success, and one of the following error +codes if an error occurred: +.TP +\fBERRSET_NONAME\fR +the name does not exist +.TP +\fBERRSET_NODATA\fR +the name exists, but does not have data of the desired type +.TP +\fBERRSET_NOMEMORY\fR +memory could not be allocated +.TP +\fBERRSET_INVAL\fR +a parameter is invalid +.TP +\fBERRSET_FAIL\fR +other failure +.TP +\fB\fR +.SH "SEE ALSO" +.PP +\fBlwres\fR(3). diff --git a/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.docbook b/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.docbook new file mode 100644 index 000000000000..5ec7884b360c --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.docbook @@ -0,0 +1,208 @@ + + + + + + + + + +Oct 18, 2000 + + +lwres_getrrsetbyname +3 +BIND9 + + +lwres_getrrsetbyname +lwres_freerrset +retrieve DNS records + + + +#include <lwres/netdb.h> + + +int +lwres_getrrsetbyname +const char *hostname +unsigned int rdclass +unsigned int rdtype +unsigned int flags +struct rrsetinfo **res + + + +void +lwres_freerrset +struct rrsetinfo *rrset + + + + +The following structures are used: + +struct rdatainfo { + unsigned int rdi_length; /* length of data */ + unsigned char *rdi_data; /* record data */ +}; + +struct rrsetinfo { + unsigned int rri_flags; /* RRSET_VALIDATED... */ + unsigned int rri_rdclass; /* class number */ + unsigned int rri_rdtype; /* RR type number */ + unsigned int rri_ttl; /* time to live */ + unsigned int rri_nrdatas; /* size of rdatas array */ + unsigned int rri_nsigs; /* size of sigs array */ + char *rri_name; /* canonical name */ + struct rdatainfo *rri_rdatas; /* individual records */ + struct rdatainfo *rri_sigs; /* individual signatures */ +}; + + + + + +DESCRIPTION + +lwres_getrrsetbyname() +gets a set of resource records associated with a +hostname, + +class, + +and +type. + +hostname +is +a pointer a to null-terminated string. The +flags +field is currently unused and must be zero. + + +After a successful call to +lwres_getrrsetbyname(), + +*res +is a pointer to an +rrsetinfo +structure, containing a list of one or more +rdatainfo +structures containing resource records and potentially another list of +rdatainfo +structures containing SIG resource records +associated with those records. +The members +rri_rdclass +and +rri_rdtype +are copied from the parameters. +rri_ttl +and +rri_name +are properties of the obtained rrset. +The resource records contained in +rri_rdatas +and +rri_sigs +are in uncompressed DNS wire format. +Properties of the rdataset are represented in the +rri_flags +bitfield. If the RRSET_VALIDATED bit is set, the data has been DNSSEC +validated and the signatures verified. + + +All of the information returned by +lwres_getrrsetbyname() +is dynamically allocated: the +rrsetinfo +and +rdatainfo +structures, +and the canonical host name strings pointed to by the +rrsetinfostructure. + +Memory allocated for the dynamically allocated structures created by +a successful call to +lwres_getrrsetbyname() +is released by +lwres_freerrset(). + +rrset +is a pointer to a +struct rrset +created by a call to +lwres_getrrsetbyname(). + + + + + + +RETURN VALUES + +lwres_getrrsetbyname() +returns zero on success, and one of the following error +codes if an error occurred: + + +ERRSET_NONAME + +the name does not exist + + +ERRSET_NODATA + +the name exists, but does not have data of the desired type + + +ERRSET_NOMEMORY + +memory could not be allocated + + +ERRSET_INVAL + +a parameter is invalid + + +ERRSET_FAIL + +other failure + + + + + + + + + + + +SEE ALSO + + +lwres3 +. + + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.html b/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.html new file mode 100644 index 000000000000..8a688e9b2b44 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.html @@ -0,0 +1,360 @@ + + + + + +lwres_getrrsetbyname

lwres_getrrsetbyname

Name

lwres_getrrsetbyname, lwres_freerrset -- retrieve DNS records

Synopsis

#include <lwres/netdb.h>

int +lwres_getrrsetbyname(const char *hostname, unsigned int rdclass, unsigned int rdtype, unsigned int flags, struct rrsetinfo **res);

void +lwres_freerrset(struct rrsetinfo *rrset);

The following structures are used: +

struct  rdatainfo {
+        unsigned int            rdi_length;     /* length of data */
+        unsigned char           *rdi_data;      /* record data */
+};
+
+struct  rrsetinfo {
+        unsigned int            rri_flags;      /* RRSET_VALIDATED... */
+        unsigned int            rri_rdclass;    /* class number */
+        unsigned int            rri_rdtype;     /* RR type number */
+        unsigned int            rri_ttl;        /* time to live */
+        unsigned int            rri_nrdatas;    /* size of rdatas array */
+        unsigned int            rri_nsigs;      /* size of sigs array */
+        char                    *rri_name;      /* canonical name */
+        struct rdatainfo        *rri_rdatas;    /* individual records */
+        struct rdatainfo        *rri_sigs;      /* individual signatures */
+};

DESCRIPTION

lwres_getrrsetbyname() +gets a set of resource records associated with a +hostname, + +class, + +and +type. + +hostname +is +a pointer a to null-terminated string. The +flags +field is currently unused and must be zero.

After a successful call to +lwres_getrrsetbyname(), + +*res +is a pointer to an +rrsetinfo +structure, containing a list of one or more +rdatainfo +structures containing resource records and potentially another list of +rdatainfo +structures containing SIG resource records +associated with those records. +The members +rri_rdclass +and +rri_rdtype +are copied from the parameters. +rri_ttl +and +rri_name +are properties of the obtained rrset. +The resource records contained in +rri_rdatas +and +rri_sigs +are in uncompressed DNS wire format. +Properties of the rdataset are represented in the +rri_flags +bitfield. If the RRSET_VALIDATED bit is set, the data has been DNSSEC +validated and the signatures verified.

All of the information returned by +lwres_getrrsetbyname() +is dynamically allocated: the +rrsetinfo +and +rdatainfo +structures, +and the canonical host name strings pointed to by the +rrsetinfostructure. + +Memory allocated for the dynamically allocated structures created by +a successful call to +lwres_getrrsetbyname() +is released by +lwres_freerrset(). + +rrset +is a pointer to a +struct rrset +created by a call to +lwres_getrrsetbyname().

RETURN VALUES

lwres_getrrsetbyname() +returns zero on success, and one of the following error +codes if an error occurred: +

ERRSET_NONAME

the name does not exist

ERRSET_NODATA

the name exists, but does not have data of the desired type

ERRSET_NOMEMORY

memory could not be allocated

ERRSET_INVAL

a parameter is invalid

ERRSET_FAIL

other failure

SEE ALSO

lwres(3).

diff --git a/contrib/bind9/lib/lwres/man/lwres_gnba.3 b/contrib/bind9/lib/lwres/man/lwres_gnba.3 new file mode 100644 index 000000000000..404ae4141b02 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_gnba.3 @@ -0,0 +1,188 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_gnba.3,v 1.13.2.1.8.1 2004/03/06 07:41:43 marka Exp $ +.\" +.TH "LWRES_GNBA" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_gnbarequest_render, lwres_gnbaresponse_render, lwres_gnbarequest_parse, lwres_gnbaresponse_parse, lwres_gnbaresponse_free, lwres_gnbarequest_free \- lightweight resolver getnamebyaddress message handling +.SH SYNOPSIS +\fB#include +.sp +.na +lwres_result_t +lwres_gnbarequest_render(lwres_context_t *\fIctx\fB, lwres_gnbarequest_t *\fIreq\fB, lwres_lwpacket_t *\fIpkt\fB, lwres_buffer_t *\fIb\fB); +.ad +.sp +.na +lwres_result_t +lwres_gnbaresponse_render(lwres_context_t *ctx, lwres_gnbaresponse_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b); +.ad +.sp +.na +lwres_result_t +lwres_gnbarequest_parse(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_gnbarequest_t **structp); +.ad +.sp +.na +lwres_result_t +lwres_gnbaresponse_parse(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_gnbaresponse_t **structp); +.ad +.sp +.na +void +lwres_gnbaresponse_free(lwres_context_t *ctx, lwres_gnbaresponse_t **structp); +.ad +.sp +.na +void +lwres_gnbarequest_free(lwres_context_t *ctx, lwres_gnbarequest_t **structp); +.ad +\fR +.SH "DESCRIPTION" +.PP +These are low-level routines for creating and parsing +lightweight resolver address-to-name lookup request and +response messages. +.PP +There are four main functions for the getnamebyaddr opcode. +One render function converts a getnamebyaddr request structure \(em +\fBlwres_gnbarequest_t\fR \(em +to the lightweight resolver's canonical format. +It is complemented by a parse function that converts a packet in this +canonical format to a getnamebyaddr request structure. +Another render function converts the getnamebyaddr response structure \(em +\fBlwres_gnbaresponse_t\fR +to the canonical format. +This is complemented by a parse function which converts a packet in +canonical format to a getnamebyaddr response structure. +.PP +These structures are defined in +\fIlwres/lwres.h\fR. +They are shown below. +.sp +.nf +#define LWRES_OPCODE_GETNAMEBYADDR 0x00010002U + +typedef struct { + lwres_uint32_t flags; + lwres_addr_t addr; +} lwres_gnbarequest_t; + +typedef struct { + lwres_uint32_t flags; + lwres_uint16_t naliases; + char *realname; + char **aliases; + lwres_uint16_t realnamelen; + lwres_uint16_t *aliaslen; + void *base; + size_t baselen; +} lwres_gnbaresponse_t; +.sp +.fi +.PP +\fBlwres_gnbarequest_render()\fR +uses resolver context +ctx +to convert getnamebyaddr request structure +req +to canonical format. +The packet header structure +pkt +is initialised and transferred to +buffer +b. +The contents of +*req +are then appended to the buffer in canonical format. +\fBlwres_gnbaresponse_render()\fR +performs the same task, except it converts a getnamebyaddr response structure +\fBlwres_gnbaresponse_t\fR +to the lightweight resolver's canonical format. +.PP +\fBlwres_gnbarequest_parse()\fR +uses context +ctx +to convert the contents of packet +pkt +to a +\fBlwres_gnbarequest_t\fR +structure. +Buffer +b +provides space to be used for storing this structure. +When the function succeeds, the resulting +\fBlwres_gnbarequest_t\fR +is made available through +*structp. +\fBlwres_gnbaresponse_parse()\fR +offers the same semantics as +\fBlwres_gnbarequest_parse()\fR +except it yields a +\fBlwres_gnbaresponse_t\fR +structure. +.PP +\fBlwres_gnbaresponse_free()\fR +and +\fBlwres_gnbarequest_free()\fR +release the memory in resolver context +ctx +that was allocated to the +\fBlwres_gnbaresponse_t\fR +or +\fBlwres_gnbarequest_t\fR +structures referenced via +structp. +Any memory associated with ancillary buffers and strings for those +structures is also discarded. +.SH "RETURN VALUES" +.PP +The getnamebyaddr opcode functions +\fBlwres_gnbarequest_render()\fR, +\fBlwres_gnbaresponse_render()\fR +\fBlwres_gnbarequest_parse()\fR +and +\fBlwres_gnbaresponse_parse()\fR +all return +LWRES_R_SUCCESS +on success. +They return +LWRES_R_NOMEMORY +if memory allocation fails. +LWRES_R_UNEXPECTEDEND +is returned if the available space in the buffer +b +is too small to accommodate the packet header or the +\fBlwres_gnbarequest_t\fR +and +\fBlwres_gnbaresponse_t\fR +structures. +\fBlwres_gnbarequest_parse()\fR +and +\fBlwres_gnbaresponse_parse()\fR +will return +LWRES_R_UNEXPECTEDEND +if the buffer is not empty after decoding the received packet. +These functions will return +LWRES_R_FAILURE +if +\fBpktflags\fR +in the packet header structure +\fBlwres_lwpacket_t\fR +indicate that the packet is not a response to an earlier query. +.SH "SEE ALSO" +.PP +\fBlwres_packet\fR(3). diff --git a/contrib/bind9/lib/lwres/man/lwres_gnba.docbook b/contrib/bind9/lib/lwres/man/lwres_gnba.docbook new file mode 100644 index 000000000000..5bd4172495a8 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_gnba.docbook @@ -0,0 +1,259 @@ + + + + + + + + +Jun 30, 2000 + + + +lwres_gnba +3 +BIND9 + + + +lwres_gnbarequest_render +lwres_gnbaresponse_render +lwres_gnbarequest_parse +lwres_gnbaresponse_parse +lwres_gnbaresponse_free +lwres_gnbarequest_free +lightweight resolver getnamebyaddress message handling + + + + + + +#include <lwres/lwres.h> + + + + +lwres_result_t +lwres_gnbarequest_render + +lwres_context_t *ctx +lwres_gnbarequest_t *req +lwres_lwpacket_t *pkt +lwres_buffer_t *b + + + + +lwres_result_t +lwres_gnbaresponse_render + +lwres_context_t *ctx +lwres_gnbaresponse_t *req +lwres_lwpacket_t *pkt +lwres_buffer_t *b + + + +lwres_result_t +lwres_gnbarequest_parse +lwres_context_t *ctx +lwres_buffer_t *b +lwres_lwpacket_t *pkt +lwres_gnbarequest_t **structp + + + +lwres_result_t +lwres_gnbaresponse_parse +lwres_context_t *ctx +lwres_buffer_t *b +lwres_lwpacket_t *pkt +lwres_gnbaresponse_t **structp + + + + +void +lwres_gnbaresponse_free + +lwres_context_t *ctx +lwres_gnbaresponse_t **structp + + + +void +lwres_gnbarequest_free +lwres_context_t *ctx +lwres_gnbarequest_t **structp + + + + + + +DESCRIPTION + +These are low-level routines for creating and parsing +lightweight resolver address-to-name lookup request and +response messages. + + +There are four main functions for the getnamebyaddr opcode. +One render function converts a getnamebyaddr request structure — +lwres_gnbarequest_t — +to the lightweight resolver's canonical format. +It is complemented by a parse function that converts a packet in this +canonical format to a getnamebyaddr request structure. +Another render function converts the getnamebyaddr response structure — +lwres_gnbaresponse_t +to the canonical format. +This is complemented by a parse function which converts a packet in +canonical format to a getnamebyaddr response structure. + + +These structures are defined in +lwres/lwres.h. +They are shown below. + +#define LWRES_OPCODE_GETNAMEBYADDR 0x00010002U + +typedef struct { + lwres_uint32_t flags; + lwres_addr_t addr; +} lwres_gnbarequest_t; + +typedef struct { + lwres_uint32_t flags; + lwres_uint16_t naliases; + char *realname; + char **aliases; + lwres_uint16_t realnamelen; + lwres_uint16_t *aliaslen; + void *base; + size_t baselen; +} lwres_gnbaresponse_t; + + + +lwres_gnbarequest_render() +uses resolver context +ctx +to convert getnamebyaddr request structure +req +to canonical format. +The packet header structure +pkt +is initialised and transferred to +buffer +b. +The contents of +*req +are then appended to the buffer in canonical format. +lwres_gnbaresponse_render() +performs the same task, except it converts a getnamebyaddr response structure +lwres_gnbaresponse_t +to the lightweight resolver's canonical format. + + +lwres_gnbarequest_parse() +uses context +ctx +to convert the contents of packet +pkt +to a +lwres_gnbarequest_t +structure. +Buffer +b +provides space to be used for storing this structure. +When the function succeeds, the resulting +lwres_gnbarequest_t +is made available through +*structp. +lwres_gnbaresponse_parse() +offers the same semantics as +lwres_gnbarequest_parse() +except it yields a +lwres_gnbaresponse_t +structure. + + +lwres_gnbaresponse_free() +and +lwres_gnbarequest_free() +release the memory in resolver context +ctx +that was allocated to the +lwres_gnbaresponse_t +or +lwres_gnbarequest_t +structures referenced via +structp. +Any memory associated with ancillary buffers and strings for those +structures is also discarded. + + + +RETURN VALUES + +The getnamebyaddr opcode functions +lwres_gnbarequest_render(), +lwres_gnbaresponse_render() +lwres_gnbarequest_parse() +and +lwres_gnbaresponse_parse() +all return +LWRES_R_SUCCESS +on success. +They return +LWRES_R_NOMEMORY +if memory allocation fails. +LWRES_R_UNEXPECTEDEND +is returned if the available space in the buffer +b +is too small to accommodate the packet header or the +lwres_gnbarequest_t +and +lwres_gnbaresponse_t +structures. +lwres_gnbarequest_parse() +and +lwres_gnbaresponse_parse() +will return +LWRES_R_UNEXPECTEDEND +if the buffer is not empty after decoding the received packet. +These functions will return +LWRES_R_FAILURE +if +pktflags +in the packet header structure +lwres_lwpacket_t +indicate that the packet is not a response to an earlier query. + + + +SEE ALSO + + +lwres_packet +3 +. + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_gnba.html b/contrib/bind9/lib/lwres/man/lwres_gnba.html new file mode 100644 index 000000000000..537b259377dc --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_gnba.html @@ -0,0 +1,409 @@ + + + + + +lwres_gnba

lwres_gnba

Name

lwres_gnbarequest_render, lwres_gnbaresponse_render, lwres_gnbarequest_parse, lwres_gnbaresponse_parse, lwres_gnbaresponse_free, lwres_gnbarequest_free -- lightweight resolver getnamebyaddress message handling

Synopsis

#include <lwres/lwres.h>

lwres_result_t +lwres_gnbarequest_render(lwres_context_t *ctx, lwres_gnbarequest_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b);

lwres_result_t +lwres_gnbaresponse_render(lwres_context_t *ctx, lwres_gnbaresponse_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b);

lwres_result_t +lwres_gnbarequest_parse(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_gnbarequest_t **structp);

lwres_result_t +lwres_gnbaresponse_parse(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_gnbaresponse_t **structp);

void +lwres_gnbaresponse_free(lwres_context_t *ctx, lwres_gnbaresponse_t **structp);

void +lwres_gnbarequest_free(lwres_context_t *ctx, lwres_gnbarequest_t **structp);

DESCRIPTION

These are low-level routines for creating and parsing +lightweight resolver address-to-name lookup request and +response messages.

There are four main functions for the getnamebyaddr opcode. +One render function converts a getnamebyaddr request structure — +lwres_gnbarequest_t — +to the lightweight resolver's canonical format. +It is complemented by a parse function that converts a packet in this +canonical format to a getnamebyaddr request structure. +Another render function converts the getnamebyaddr response structure — +lwres_gnbaresponse_t +to the canonical format. +This is complemented by a parse function which converts a packet in +canonical format to a getnamebyaddr response structure.

These structures are defined in +lwres/lwres.h. +They are shown below. +

#define LWRES_OPCODE_GETNAMEBYADDR      0x00010002U
+
+typedef struct {
+        lwres_uint32_t  flags;
+        lwres_addr_t    addr;
+} lwres_gnbarequest_t;
+
+typedef struct {
+        lwres_uint32_t  flags;
+        lwres_uint16_t  naliases;
+        char           *realname;
+        char          **aliases;
+        lwres_uint16_t  realnamelen;
+        lwres_uint16_t *aliaslen;
+        void           *base;
+        size_t          baselen;
+} lwres_gnbaresponse_t;

lwres_gnbarequest_render() +uses resolver context +ctx +to convert getnamebyaddr request structure +req +to canonical format. +The packet header structure +pkt +is initialised and transferred to +buffer +b. +The contents of +*req +are then appended to the buffer in canonical format. +lwres_gnbaresponse_render() +performs the same task, except it converts a getnamebyaddr response structure +lwres_gnbaresponse_t +to the lightweight resolver's canonical format.

lwres_gnbarequest_parse() +uses context +ctx +to convert the contents of packet +pkt +to a +lwres_gnbarequest_t +structure. +Buffer +b +provides space to be used for storing this structure. +When the function succeeds, the resulting +lwres_gnbarequest_t +is made available through +*structp. +lwres_gnbaresponse_parse() +offers the same semantics as +lwres_gnbarequest_parse() +except it yields a +lwres_gnbaresponse_t +structure.

lwres_gnbaresponse_free() +and +lwres_gnbarequest_free() +release the memory in resolver context +ctx +that was allocated to the +lwres_gnbaresponse_t +or +lwres_gnbarequest_t +structures referenced via +structp. +Any memory associated with ancillary buffers and strings for those +structures is also discarded.

RETURN VALUES

The getnamebyaddr opcode functions +lwres_gnbarequest_render(), +lwres_gnbaresponse_render() +lwres_gnbarequest_parse() +and +lwres_gnbaresponse_parse() +all return +LWRES_R_SUCCESS +on success. +They return +LWRES_R_NOMEMORY +if memory allocation fails. +LWRES_R_UNEXPECTEDEND +is returned if the available space in the buffer +b +is too small to accommodate the packet header or the +lwres_gnbarequest_t +and +lwres_gnbaresponse_t +structures. +lwres_gnbarequest_parse() +and +lwres_gnbaresponse_parse() +will return +LWRES_R_UNEXPECTEDEND +if the buffer is not empty after decoding the received packet. +These functions will return +LWRES_R_FAILURE +if +pktflags +in the packet header structure +lwres_lwpacket_t +indicate that the packet is not a response to an earlier query.

SEE ALSO

lwres_packet(3).

diff --git a/contrib/bind9/lib/lwres/man/lwres_hstrerror.3 b/contrib/bind9/lib/lwres/man/lwres_hstrerror.3 new file mode 100644 index 000000000000..2260088e7750 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_hstrerror.3 @@ -0,0 +1,69 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_hstrerror.3,v 1.13.2.1.8.1 2004/03/06 07:41:43 marka Exp $ +.\" +.TH "LWRES_HSTRERROR" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_herror, lwres_hstrerror \- lightweight resolver error message generation +.SH SYNOPSIS +\fB#include +.sp +.na +void +lwres_herror(const char *s); +.ad +.sp +.na +const char * +lwres_hstrerror(int err); +.ad +\fR +.SH "DESCRIPTION" +.PP +\fBlwres_herror()\fR prints the string +\fIs\fR on \fBstderr\fR followed by the string +generated by \fBlwres_hstrerror()\fR for the error code +stored in the global variable lwres_h_errno. +.PP +\fBlwres_hstrerror()\fR returns an appropriate string +for the error code gievn by \fIerr\fR. The values of +the error codes and messages are as follows: +.TP +\fBNETDB_SUCCESS\fR +\fBResolver Error 0 (no error)\fR +.TP +\fBHOST_NOT_FOUND\fR +\fBUnknown host\fR +.TP +\fBTRY_AGAIN\fR +\fBHost name lookup failure\fR +.TP +\fBNO_RECOVERY\fR +\fBUnknown server error\fR +.TP +\fBNO_DATA\fR +\fBNo address associated with name\fR +.SH "RETURN VALUES" +.PP +The string \fBUnknown resolver error\fR is returned by +\fBlwres_hstrerror()\fR +when the value of +lwres_h_errno +is not a valid error code. +.SH "SEE ALSO" +.PP +\fBherror\fR(3), +\fBlwres_hstrerror\fR(3). diff --git a/contrib/bind9/lib/lwres/man/lwres_hstrerror.docbook b/contrib/bind9/lib/lwres/man/lwres_hstrerror.docbook new file mode 100644 index 000000000000..2ad4c498e7e7 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_hstrerror.docbook @@ -0,0 +1,124 @@ + + + + + + + + +Jun 30, 2000 + + + +lwres_hstrerror +3 +BIND9 + + + +lwres_herror +lwres_hstrerror +lightweight resolver error message generation + + + +#include <lwres/netdb.h> + + +void +lwres_herror +const char *s + + + +const char * +lwres_hstrerror +int err + + + + + +DESCRIPTION + + +lwres_herror() prints the string +s on stderr followed by the string +generated by lwres_hstrerror() for the error code +stored in the global variable lwres_h_errno. + + + +lwres_hstrerror() returns an appropriate string +for the error code gievn by err. The values of +the error codes and messages are as follows: + + +NETDB_SUCCESS + + +Resolver Error 0 (no error) + +HOST_NOT_FOUND + + +Unknown host + +TRY_AGAIN + + +Host name lookup failure + +NO_RECOVERY + + +Unknown server error + +NO_DATA + + +No address associated with name + + + + + + +RETURN VALUES + +The string Unknown resolver error is returned by +lwres_hstrerror() +when the value of +lwres_h_errno +is not a valid error code. + + + +SEE ALSO + + +herror3 +, + + +lwres_hstrerror3 +. + + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_hstrerror.html b/contrib/bind9/lib/lwres/man/lwres_hstrerror.html new file mode 100644 index 000000000000..0c264af1ca01 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_hstrerror.html @@ -0,0 +1,241 @@ + + + + + +lwres_hstrerror

lwres_hstrerror

Name

lwres_herror, lwres_hstrerror -- lightweight resolver error message generation

Synopsis

#include <lwres/netdb.h>

void +lwres_herror(const char *s);

const char * +lwres_hstrerror(int err);

DESCRIPTION

lwres_herror() prints the string +s on stderr followed by the string +generated by lwres_hstrerror() for the error code +stored in the global variable lwres_h_errno.

lwres_hstrerror() returns an appropriate string +for the error code gievn by err. The values of +the error codes and messages are as follows: + +

NETDB_SUCCESS

Resolver Error 0 (no error)

HOST_NOT_FOUND

Unknown host

TRY_AGAIN

Host name lookup failure

NO_RECOVERY

Unknown server error

NO_DATA

No address associated with name

RETURN VALUES

The string Unknown resolver error is returned by +lwres_hstrerror() +when the value of +lwres_h_errno +is not a valid error code.

SEE ALSO

herror(3), + +lwres_hstrerror(3).

diff --git a/contrib/bind9/lib/lwres/man/lwres_inetntop.3 b/contrib/bind9/lib/lwres/man/lwres_inetntop.3 new file mode 100644 index 000000000000..a4603c604b47 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_inetntop.3 @@ -0,0 +1,54 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_inetntop.3,v 1.12.2.1.8.1 2004/03/06 07:41:44 marka Exp $ +.\" +.TH "LWRES_INETNTOP" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_net_ntop \- lightweight resolver IP address presentation +.SH SYNOPSIS +\fB#include +.sp +.na +const char * +lwres_net_ntop(int af, const void *src, char *dst, size_t size); +.ad +\fR +.SH "DESCRIPTION" +.PP +\fBlwres_net_ntop()\fR converts an IP address of +protocol family \fIaf\fR \(em IPv4 or IPv6 \(em +at location \fIsrc\fR from network format to its +conventional representation as a string. For IPv4 addresses, that +string would be a dotted-decimal. An IPv6 address would be +represented in colon notation as described in RFC1884. +.PP +The generated string is copied to \fIdst\fR provided +\fIsize\fR indicates it is long enough to store the +ASCII representation of the address. +.SH "RETURN VALUES" +.PP +If successful, the function returns \fIdst\fR: +a pointer to a string containing the presentation format of the +address. \fBlwres_net_ntop()\fR returns +\fBNULL\fR and sets the global variable +errno to EAFNOSUPPORT if +the protocol family given in \fIaf\fR is not +supported. +.SH "SEE ALSO" +.PP +\fBRFC1884\fR, +\fBinet_ntop\fR(3), +\fBerrno\fR(3). diff --git a/contrib/bind9/lib/lwres/man/lwres_inetntop.docbook b/contrib/bind9/lib/lwres/man/lwres_inetntop.docbook new file mode 100644 index 000000000000..e771478bf5d1 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_inetntop.docbook @@ -0,0 +1,99 @@ + + + + + + + + +Jun 30, 2000 + + + +lwres_inetntop +3 +BIND9 + + + +lwres_net_ntop +lightweight resolver IP address presentation + + + +#include <lwres/net.h> + + +const char * +lwres_net_ntop +int af +const void *src +char *dst +size_t size + + + + + +DESCRIPTION + + +lwres_net_ntop() converts an IP address of +protocol family af — IPv4 or IPv6 — +at location src from network format to its +conventional representation as a string. For IPv4 addresses, that +string would be a dotted-decimal. An IPv6 address would be +represented in colon notation as described in RFC1884. + + + +The generated string is copied to dst provided +size indicates it is long enough to store the +ASCII representation of the address. + + + + +RETURN VALUES + + +If successful, the function returns dst: +a pointer to a string containing the presentation format of the +address. lwres_net_ntop() returns +NULL and sets the global variable +errno to EAFNOSUPPORT if +the protocol family given in af is not +supported. + + + + +SEE ALSO + + +RFC1884 +, + +inet_ntop3 +, + +errno3 +. + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_inetntop.html b/contrib/bind9/lib/lwres/man/lwres_inetntop.html new file mode 100644 index 000000000000..345334547969 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_inetntop.html @@ -0,0 +1,177 @@ + + + + + +lwres_inetntop

lwres_inetntop

Name

lwres_net_ntop -- lightweight resolver IP address presentation

Synopsis

#include <lwres/net.h>

const char * +lwres_net_ntop(int af, const void *src, char *dst, size_t size);

DESCRIPTION

lwres_net_ntop() converts an IP address of +protocol family af — IPv4 or IPv6 — +at location src from network format to its +conventional representation as a string. For IPv4 addresses, that +string would be a dotted-decimal. An IPv6 address would be +represented in colon notation as described in RFC1884.

The generated string is copied to dst provided +size indicates it is long enough to store the +ASCII representation of the address.

RETURN VALUES

If successful, the function returns dst: +a pointer to a string containing the presentation format of the +address. lwres_net_ntop() returns +NULL and sets the global variable +errno to EAFNOSUPPORT if +the protocol family given in af is not +supported.

SEE ALSO

RFC1884, +inet_ntop(3), +errno(3).

diff --git a/contrib/bind9/lib/lwres/man/lwres_noop.3 b/contrib/bind9/lib/lwres/man/lwres_noop.3 new file mode 100644 index 000000000000..36bb90423d75 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_noop.3 @@ -0,0 +1,162 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_noop.3,v 1.14.2.1.8.1 2004/03/06 07:41:44 marka Exp $ +.\" +.TH "LWRES_NOOP" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_nooprequest_render, lwres_noopresponse_render, lwres_nooprequest_parse, lwres_noopresponse_parse, lwres_noopresponse_free, lwres_nooprequest_free \- lightweight resolver no-op message handling +.SH SYNOPSIS +\fB#include +.sp +.na +lwres_result_t +lwres_nooprequest_render(lwres_context_t *ctx, lwres_nooprequest_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b); +.ad +.sp +.na +lwres_result_t +lwres_noopresponse_render(lwres_context_t *ctx, lwres_noopresponse_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b); +.ad +.sp +.na +lwres_result_t +lwres_nooprequest_parse(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_nooprequest_t **structp); +.ad +.sp +.na +lwres_result_t +lwres_noopresponse_parse(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_noopresponse_t **structp); +.ad +.sp +.na +void +lwres_noopresponse_free(lwres_context_t *ctx, lwres_noopresponse_t **structp); +.ad +.sp +.na +void +lwres_nooprequest_free(lwres_context_t *ctx, lwres_nooprequest_t **structp); +.ad +\fR +.SH "DESCRIPTION" +.PP +These are low-level routines for creating and parsing +lightweight resolver no-op request and response messages. +.PP +The no-op message is analogous to a \fBping\fR packet: +a packet is sent to the resolver daemon and is simply echoed back. +The opcode is intended to allow a client to determine if the server is +operational or not. +.PP +There are four main functions for the no-op opcode. +One render function converts a no-op request structure \(em +\fBlwres_nooprequest_t\fR \(em +to the lighweight resolver's canonical format. +It is complemented by a parse function that converts a packet in this +canonical format to a no-op request structure. +Another render function converts the no-op response structure \(em +\fBlwres_noopresponse_t\fR +to the canonical format. +This is complemented by a parse function which converts a packet in +canonical format to a no-op response structure. +.PP +These structures are defined in +\fIlwres/lwres.h\fR. +They are shown below. +.sp +.nf +#define LWRES_OPCODE_NOOP 0x00000000U + +typedef struct { + lwres_uint16_t datalength; + unsigned char *data; +} lwres_nooprequest_t; + +typedef struct { + lwres_uint16_t datalength; + unsigned char *data; +} lwres_noopresponse_t; +.sp +.fi +Although the structures have different types, they are identical. +This is because the no-op opcode simply echos whatever data was sent: +the response is therefore identical to the request. +.PP +\fBlwres_nooprequest_render()\fR uses resolver +context \fIctx\fR to convert no-op request structure +\fIreq\fR to canonical format. The packet header +structure \fIpkt\fR is initialised and transferred to +buffer \fIb\fR. The contents of +\fI*req\fR are then appended to the buffer in +canonical format. \fBlwres_noopresponse_render()\fR +performs the same task, except it converts a no-op response structure +\fBlwres_noopresponse_t\fR to the lightweight resolver's +canonical format. +.PP +\fBlwres_nooprequest_parse()\fR uses context +\fIctx\fR to convert the contents of packet +\fIpkt\fR to a \fBlwres_nooprequest_t\fR +structure. Buffer \fIb\fR provides space to be used +for storing this structure. When the function succeeds, the resulting +\fBlwres_nooprequest_t\fR is made available through +\fI*structp\fR. +\fBlwres_noopresponse_parse()\fR offers the same +semantics as \fBlwres_nooprequest_parse()\fR except it +yields a \fBlwres_noopresponse_t\fR structure. +.PP +\fBlwres_noopresponse_free()\fR and +\fBlwres_nooprequest_free()\fR release the memory in +resolver context \fIctx\fR that was allocated to the +\fBlwres_noopresponse_t\fR or \fBlwres_nooprequest_t\fR +structures referenced via \fIstructp\fR. +.SH "RETURN VALUES" +.PP +The no-op opcode functions +\fBlwres_nooprequest_render()\fR, +\fBlwres_noopresponse_render()\fR +\fBlwres_nooprequest_parse()\fR +and +\fBlwres_noopresponse_parse()\fR +all return +LWRES_R_SUCCESS +on success. +They return +LWRES_R_NOMEMORY +if memory allocation fails. +LWRES_R_UNEXPECTEDEND +is returned if the available space in the buffer +\fIb\fR +is too small to accommodate the packet header or the +\fBlwres_nooprequest_t\fR +and +\fBlwres_noopresponse_t\fR +structures. +\fBlwres_nooprequest_parse()\fR +and +\fBlwres_noopresponse_parse()\fR +will return +LWRES_R_UNEXPECTEDEND +if the buffer is not empty after decoding the received packet. +These functions will return +LWRES_R_FAILURE +if +pktflags +in the packet header structure +\fBlwres_lwpacket_t\fR +indicate that the packet is not a response to an earlier query. +.SH "SEE ALSO" +.PP +\fBlwres_packet\fR(3) diff --git a/contrib/bind9/lib/lwres/man/lwres_noop.docbook b/contrib/bind9/lib/lwres/man/lwres_noop.docbook new file mode 100644 index 000000000000..dde2795c82d7 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_noop.docbook @@ -0,0 +1,229 @@ + + + + + + + + +Jun 30, 2000 + + + +lwres_noop +3 +BIND9 + + + +lwres_nooprequest_render +lwres_noopresponse_render +lwres_nooprequest_parse +lwres_noopresponse_parse +lwres_noopresponse_free +lwres_nooprequest_free +lightweight resolver no-op message handling + + + + +#include <lwres/lwres.h> + + +lwres_result_t +lwres_nooprequest_render +lwres_context_t *ctx +lwres_nooprequest_t *req +lwres_lwpacket_t *pkt +lwres_buffer_t *b + + + +lwres_result_t +lwres_noopresponse_render +lwres_context_t *ctx +lwres_noopresponse_t *req +lwres_lwpacket_t *pkt +lwres_buffer_t *b + + + +lwres_result_t +lwres_nooprequest_parse +lwres_context_t *ctx +lwres_buffer_t *b +lwres_lwpacket_t *pkt +lwres_nooprequest_t **structp + + + +lwres_result_t +lwres_noopresponse_parse +lwres_context_t *ctx +lwres_buffer_t *b +lwres_lwpacket_t *pkt +lwres_noopresponse_t **structp + + + +void +lwres_noopresponse_free +lwres_context_t *ctx +lwres_noopresponse_t **structp + + + +void +lwres_nooprequest_free +lwres_context_t *ctx +lwres_nooprequest_t **structp + + + + +DESCRIPTION + +These are low-level routines for creating and parsing +lightweight resolver no-op request and response messages. + + +The no-op message is analogous to a ping packet: +a packet is sent to the resolver daemon and is simply echoed back. +The opcode is intended to allow a client to determine if the server is +operational or not. + + +There are four main functions for the no-op opcode. +One render function converts a no-op request structure — +lwres_nooprequest_t — +to the lighweight resolver's canonical format. +It is complemented by a parse function that converts a packet in this +canonical format to a no-op request structure. +Another render function converts the no-op response structure — +lwres_noopresponse_t +to the canonical format. +This is complemented by a parse function which converts a packet in +canonical format to a no-op response structure. + + +These structures are defined in +lwres/lwres.h. + +They are shown below. + +#define LWRES_OPCODE_NOOP 0x00000000U + +typedef struct { + lwres_uint16_t datalength; + unsigned char *data; +} lwres_nooprequest_t; + +typedef struct { + lwres_uint16_t datalength; + unsigned char *data; +} lwres_noopresponse_t; + +Although the structures have different types, they are identical. +This is because the no-op opcode simply echos whatever data was sent: +the response is therefore identical to the request. + + + +lwres_nooprequest_render() uses resolver +context ctx to convert no-op request structure +req to canonical format. The packet header +structure pkt is initialised and transferred to +buffer b. The contents of +*req are then appended to the buffer in +canonical format. lwres_noopresponse_render() +performs the same task, except it converts a no-op response structure +lwres_noopresponse_t to the lightweight resolver's +canonical format. + + + +lwres_nooprequest_parse() uses context +ctx to convert the contents of packet +pkt to a lwres_nooprequest_t +structure. Buffer b provides space to be used +for storing this structure. When the function succeeds, the resulting +lwres_nooprequest_t is made available through +*structp. +lwres_noopresponse_parse() offers the same +semantics as lwres_nooprequest_parse() except it +yields a lwres_noopresponse_t structure. + + + +lwres_noopresponse_free() and +lwres_nooprequest_free() release the memory in +resolver context ctx that was allocated to the +lwres_noopresponse_t or lwres_nooprequest_t +structures referenced via structp. + + + + +RETURN VALUES + +The no-op opcode functions +lwres_nooprequest_render(), + +lwres_noopresponse_render() +lwres_nooprequest_parse() +and +lwres_noopresponse_parse() +all return +LWRES_R_SUCCESS +on success. +They return +LWRES_R_NOMEMORY +if memory allocation fails. +LWRES_R_UNEXPECTEDEND +is returned if the available space in the buffer +b +is too small to accommodate the packet header or the +lwres_nooprequest_t +and +lwres_noopresponse_t +structures. +lwres_nooprequest_parse() +and +lwres_noopresponse_parse() +will return +LWRES_R_UNEXPECTEDEND +if the buffer is not empty after decoding the received packet. +These functions will return +LWRES_R_FAILURE +if +pktflags +in the packet header structure +lwres_lwpacket_t +indicate that the packet is not a response to an earlier query. + + + +SEE ALSO + + +lwres_packet3 + + + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_noop.html b/contrib/bind9/lib/lwres/man/lwres_noop.html new file mode 100644 index 000000000000..0962883d043e --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_noop.html @@ -0,0 +1,388 @@ + + + + + +lwres_noop

lwres_noop

Name

lwres_nooprequest_render, lwres_noopresponse_render, lwres_nooprequest_parse, lwres_noopresponse_parse, lwres_noopresponse_free, lwres_nooprequest_free -- lightweight resolver no-op message handling

Synopsis

#include <lwres/lwres.h>

lwres_result_t +lwres_nooprequest_render(lwres_context_t *ctx, lwres_nooprequest_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b);

lwres_result_t +lwres_noopresponse_render(lwres_context_t *ctx, lwres_noopresponse_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b);

lwres_result_t +lwres_nooprequest_parse(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_nooprequest_t **structp);

lwres_result_t +lwres_noopresponse_parse(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_noopresponse_t **structp);

void +lwres_noopresponse_free(lwres_context_t *ctx, lwres_noopresponse_t **structp);

void +lwres_nooprequest_free(lwres_context_t *ctx, lwres_nooprequest_t **structp);

DESCRIPTION

These are low-level routines for creating and parsing +lightweight resolver no-op request and response messages.

The no-op message is analogous to a ping packet: +a packet is sent to the resolver daemon and is simply echoed back. +The opcode is intended to allow a client to determine if the server is +operational or not.

There are four main functions for the no-op opcode. +One render function converts a no-op request structure — +lwres_nooprequest_t — +to the lighweight resolver's canonical format. +It is complemented by a parse function that converts a packet in this +canonical format to a no-op request structure. +Another render function converts the no-op response structure — +lwres_noopresponse_t +to the canonical format. +This is complemented by a parse function which converts a packet in +canonical format to a no-op response structure.

These structures are defined in +lwres/lwres.h. + +They are shown below. +

#define LWRES_OPCODE_NOOP       0x00000000U
+
+typedef struct {
+        lwres_uint16_t  datalength;
+        unsigned char   *data;
+} lwres_nooprequest_t;
+
+typedef struct {
+        lwres_uint16_t  datalength;
+        unsigned char   *data;
+} lwres_noopresponse_t;
+Although the structures have different types, they are identical. +This is because the no-op opcode simply echos whatever data was sent: +the response is therefore identical to the request.

lwres_nooprequest_render() uses resolver +context ctx to convert no-op request structure +req to canonical format. The packet header +structure pkt is initialised and transferred to +buffer b. The contents of +*req are then appended to the buffer in +canonical format. lwres_noopresponse_render() +performs the same task, except it converts a no-op response structure +lwres_noopresponse_t to the lightweight resolver's +canonical format.

lwres_nooprequest_parse() uses context +ctx to convert the contents of packet +pkt to a lwres_nooprequest_t +structure. Buffer b provides space to be used +for storing this structure. When the function succeeds, the resulting +lwres_nooprequest_t is made available through +*structp. +lwres_noopresponse_parse() offers the same +semantics as lwres_nooprequest_parse() except it +yields a lwres_noopresponse_t structure.

lwres_noopresponse_free() and +lwres_nooprequest_free() release the memory in +resolver context ctx that was allocated to the +lwres_noopresponse_t or lwres_nooprequest_t +structures referenced via structp.

RETURN VALUES

The no-op opcode functions +lwres_nooprequest_render(), + +lwres_noopresponse_render() +lwres_nooprequest_parse() +and +lwres_noopresponse_parse() +all return +LWRES_R_SUCCESS +on success. +They return +LWRES_R_NOMEMORY +if memory allocation fails. +LWRES_R_UNEXPECTEDEND +is returned if the available space in the buffer +b +is too small to accommodate the packet header or the +lwres_nooprequest_t +and +lwres_noopresponse_t +structures. +lwres_nooprequest_parse() +and +lwres_noopresponse_parse() +will return +LWRES_R_UNEXPECTEDEND +if the buffer is not empty after decoding the received packet. +These functions will return +LWRES_R_FAILURE +if +pktflags +in the packet header structure +lwres_lwpacket_t +indicate that the packet is not a response to an earlier query.

SEE ALSO

lwres_packet(3)

diff --git a/contrib/bind9/lib/lwres/man/lwres_packet.3 b/contrib/bind9/lib/lwres/man/lwres_packet.3 new file mode 100644 index 000000000000..1fbc417e45ef --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_packet.3 @@ -0,0 +1,151 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_packet.3,v 1.15.2.1.8.1 2004/03/06 07:41:44 marka Exp $ +.\" +.TH "LWRES_PACKET" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_lwpacket_renderheader, lwres_lwpacket_parseheader \- lightweight resolver packet handling functions +.SH SYNOPSIS +\fB#include +.sp +.na +lwres_result_t +lwres_lwpacket_renderheader(lwres_buffer_t *b, lwres_lwpacket_t *pkt); +.ad +.sp +.na +lwres_result_t +lwres_lwpacket_parseheader(lwres_buffer_t *b, lwres_lwpacket_t *pkt); +.ad +\fR +.SH "DESCRIPTION" +.PP +These functions rely on a +\fBstruct lwres_lwpacket\fR +which is defined in +\fIlwres/lwpacket.h\fR. +.sp +.nf +typedef struct lwres_lwpacket lwres_lwpacket_t; + +struct lwres_lwpacket { + lwres_uint32_t length; + lwres_uint16_t version; + lwres_uint16_t pktflags; + lwres_uint32_t serial; + lwres_uint32_t opcode; + lwres_uint32_t result; + lwres_uint32_t recvlength; + lwres_uint16_t authtype; + lwres_uint16_t authlength; +}; +.sp +.fi +.PP +The elements of this structure are: +.TP +\fBlength\fR +the overall packet length, including the entire packet header. +This field is filled in by the lwres_gabn_*() and lwres_gnba_*() +calls. +.TP +\fBversion\fR +the header format. There is currently only one format, +\fBLWRES_LWPACKETVERSION_0\fR. +This field is filled in by the lwres_gabn_*() and lwres_gnba_*() +calls. +.TP +\fBpktflags\fR +library-defined flags for this packet: for instance whether the packet +is a request or a reply. Flag values can be set, but not defined by +the caller. +This field is filled in by the application wit the exception of the +LWRES_LWPACKETFLAG_RESPONSE bit, which is set by the library in the +lwres_gabn_*() and lwres_gnba_*() calls. +.TP +\fBserial\fR +is set by the requestor and is returned in all replies. If two or more +packets from the same source have the same serial number and are from +the same source, they are assumed to be duplicates and the latter ones +may be dropped. +This field must be set by the application. +.TP +\fBopcode\fR +indicates the operation. +Opcodes between 0x00000000 and 0x03ffffff are +reserved for use by the lightweight resolver library. Opcodes between +0x04000000 and 0xffffffff are application defined. +This field is filled in by the lwres_gabn_*() and lwres_gnba_*() +calls. +.TP +\fBresult\fR +is only valid for replies. +Results between 0x04000000 and 0xffffffff are application defined. +Results between 0x00000000 and 0x03ffffff are reserved for library use. +This field is filled in by the lwres_gabn_*() and lwres_gnba_*() +calls. +.TP +\fBrecvlength\fR +is the maximum buffer size that the receiver can handle on requests +and the size of the buffer needed to satisfy a request when the buffer +is too large for replies. +This field is supplied by the application. +.TP +\fBauthtype\fR +defines the packet level authentication that is used. +Authorisation types between 0x1000 and 0xffff are application defined +and types between 0x0000 and 0x0fff are reserved for library use. +Currently these are not used and must be zero. +.TP +\fBauthlen\fR +gives the length of the authentication data. +Since packet authentication is currently not used, this must be zero. +.PP +The following opcodes are currently defined: +.TP +\fBNOOP\fR +Success is always returned and the packet contents are echoed. +The lwres_noop_*() functions should be used for this type. +.TP +\fBGETADDRSBYNAME\fR +returns all known addresses for a given name. +The lwres_gabn_*() functions should be used for this type. +.TP +\fBGETNAMEBYADDR\fR +return the hostname for the given address. +The lwres_gnba_*() functions should be used for this type. +.PP +\fBlwres_lwpacket_renderheader()\fR transfers the +contents of lightweight resolver packet structure +\fBlwres_lwpacket_t\fR \fI*pkt\fR in network +byte order to the lightweight resolver buffer, +\fI*b\fR. +.PP +\fBlwres_lwpacket_parseheader()\fR performs the +converse operation. It transfers data in network byte order from +buffer \fI*b\fR to resolver packet +\fI*pkt\fR. The contents of the buffer +\fIb\fR should correspond to a +\fBlwres_lwpacket_t\fR. +.SH "RETURN VALUES" +.PP +Successful calls to +\fBlwres_lwpacket_renderheader()\fR and +\fBlwres_lwpacket_parseheader()\fR return +LWRES_R_SUCCESS. If there is insufficient +space to copy data between the buffer \fI*b\fR and +lightweight resolver packet \fI*pkt\fR both functions +return LWRES_R_UNEXPECTEDEND. diff --git a/contrib/bind9/lib/lwres/man/lwres_packet.docbook b/contrib/bind9/lib/lwres/man/lwres_packet.docbook new file mode 100644 index 000000000000..7795ebc75516 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_packet.docbook @@ -0,0 +1,218 @@ + + + + + + + + +Jun 30, 2000 + + + +lwres_packet +3 +BIND9 + + + +lwres_lwpacket_renderheader +lwres_lwpacket_parseheader +lightweight resolver packet handling functions + + + +#include <lwres/lwpacket.h> + + +lwres_result_t +lwres_lwpacket_renderheader +lwres_buffer_t *b +lwres_lwpacket_t *pkt + + + +lwres_result_t +lwres_lwpacket_parseheader +lwres_buffer_t *b +lwres_lwpacket_t *pkt + + + + +DESCRIPTION + +These functions rely on a +struct lwres_lwpacket +which is defined in +lwres/lwpacket.h. + + +typedef struct lwres_lwpacket lwres_lwpacket_t; + +struct lwres_lwpacket { + lwres_uint32_t length; + lwres_uint16_t version; + lwres_uint16_t pktflags; + lwres_uint32_t serial; + lwres_uint32_t opcode; + lwres_uint32_t result; + lwres_uint32_t recvlength; + lwres_uint16_t authtype; + lwres_uint16_t authlength; +}; + + + + +The elements of this structure are: + +length + + +the overall packet length, including the entire packet header. +This field is filled in by the lwres_gabn_*() and lwres_gnba_*() +calls. + +version + + +the header format. There is currently only one format, +LWRES_LWPACKETVERSION_0. + +This field is filled in by the lwres_gabn_*() and lwres_gnba_*() +calls. + +pktflags + + +library-defined flags for this packet: for instance whether the packet +is a request or a reply. Flag values can be set, but not defined by +the caller. +This field is filled in by the application wit the exception of the +LWRES_LWPACKETFLAG_RESPONSE bit, which is set by the library in the +lwres_gabn_*() and lwres_gnba_*() calls. + +serial + + +is set by the requestor and is returned in all replies. If two or more +packets from the same source have the same serial number and are from +the same source, they are assumed to be duplicates and the latter ones +may be dropped. +This field must be set by the application. + +opcode + + +indicates the operation. +Opcodes between 0x00000000 and 0x03ffffff are +reserved for use by the lightweight resolver library. Opcodes between +0x04000000 and 0xffffffff are application defined. +This field is filled in by the lwres_gabn_*() and lwres_gnba_*() +calls. + +result + + +is only valid for replies. +Results between 0x04000000 and 0xffffffff are application defined. +Results between 0x00000000 and 0x03ffffff are reserved for library use. +This field is filled in by the lwres_gabn_*() and lwres_gnba_*() +calls. + +recvlength + + +is the maximum buffer size that the receiver can handle on requests +and the size of the buffer needed to satisfy a request when the buffer +is too large for replies. +This field is supplied by the application. + +authtype + + +defines the packet level authentication that is used. +Authorisation types between 0x1000 and 0xffff are application defined +and types between 0x0000 and 0x0fff are reserved for library use. +Currently these are not used and must be zero. + +authlen + + +gives the length of the authentication data. +Since packet authentication is currently not used, this must be zero. + + + + +The following opcodes are currently defined: + +NOOP + + +Success is always returned and the packet contents are echoed. +The lwres_noop_*() functions should be used for this type. + +GETADDRSBYNAME + + +returns all known addresses for a given name. +The lwres_gabn_*() functions should be used for this type. + +GETNAMEBYADDR + + +return the hostname for the given address. +The lwres_gnba_*() functions should be used for this type. + + + + + +lwres_lwpacket_renderheader() transfers the +contents of lightweight resolver packet structure +lwres_lwpacket_t *pkt in network +byte order to the lightweight resolver buffer, +*b. + + + +lwres_lwpacket_parseheader() performs the +converse operation. It transfers data in network byte order from +buffer *b to resolver packet +*pkt. The contents of the buffer +b should correspond to a +lwres_lwpacket_t. + + + + + +RETURN VALUES + Successful calls to +lwres_lwpacket_renderheader() and +lwres_lwpacket_parseheader() return +LWRES_R_SUCCESS. If there is insufficient +space to copy data between the buffer *b and +lightweight resolver packet *pkt both functions +return LWRES_R_UNEXPECTEDEND. + + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_packet.html b/contrib/bind9/lib/lwres/man/lwres_packet.html new file mode 100644 index 000000000000..cb61e0a48318 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_packet.html @@ -0,0 +1,362 @@ + + + + + +lwres_packet

lwres_packet

Name

lwres_lwpacket_renderheader, lwres_lwpacket_parseheader -- lightweight resolver packet handling functions

Synopsis

#include <lwres/lwpacket.h>

lwres_result_t +lwres_lwpacket_renderheader(lwres_buffer_t *b, lwres_lwpacket_t *pkt);

lwres_result_t +lwres_lwpacket_parseheader(lwres_buffer_t *b, lwres_lwpacket_t *pkt);

DESCRIPTION

These functions rely on a +struct lwres_lwpacket +which is defined in +lwres/lwpacket.h. + +

typedef struct lwres_lwpacket lwres_lwpacket_t;
+
+struct lwres_lwpacket {
+        lwres_uint32_t          length;
+        lwres_uint16_t          version;
+        lwres_uint16_t          pktflags;
+        lwres_uint32_t          serial;
+        lwres_uint32_t          opcode;
+        lwres_uint32_t          result;
+        lwres_uint32_t          recvlength;
+        lwres_uint16_t          authtype;
+        lwres_uint16_t          authlength;
+};

The elements of this structure are: +

length

the overall packet length, including the entire packet header. +This field is filled in by the lwres_gabn_*() and lwres_gnba_*() +calls.

version

the header format. There is currently only one format, +LWRES_LWPACKETVERSION_0. + +This field is filled in by the lwres_gabn_*() and lwres_gnba_*() +calls.

pktflags

library-defined flags for this packet: for instance whether the packet +is a request or a reply. Flag values can be set, but not defined by +the caller. +This field is filled in by the application wit the exception of the +LWRES_LWPACKETFLAG_RESPONSE bit, which is set by the library in the +lwres_gabn_*() and lwres_gnba_*() calls.

serial

is set by the requestor and is returned in all replies. If two or more +packets from the same source have the same serial number and are from +the same source, they are assumed to be duplicates and the latter ones +may be dropped. +This field must be set by the application.

opcode

indicates the operation. +Opcodes between 0x00000000 and 0x03ffffff are +reserved for use by the lightweight resolver library. Opcodes between +0x04000000 and 0xffffffff are application defined. +This field is filled in by the lwres_gabn_*() and lwres_gnba_*() +calls.

result

is only valid for replies. +Results between 0x04000000 and 0xffffffff are application defined. +Results between 0x00000000 and 0x03ffffff are reserved for library use. +This field is filled in by the lwres_gabn_*() and lwres_gnba_*() +calls.

recvlength

is the maximum buffer size that the receiver can handle on requests +and the size of the buffer needed to satisfy a request when the buffer +is too large for replies. +This field is supplied by the application.

authtype

defines the packet level authentication that is used. +Authorisation types between 0x1000 and 0xffff are application defined +and types between 0x0000 and 0x0fff are reserved for library use. +Currently these are not used and must be zero.

authlen

gives the length of the authentication data. +Since packet authentication is currently not used, this must be zero.

The following opcodes are currently defined: +

NOOP

Success is always returned and the packet contents are echoed. +The lwres_noop_*() functions should be used for this type.

GETADDRSBYNAME

returns all known addresses for a given name. +The lwres_gabn_*() functions should be used for this type.

GETNAMEBYADDR

return the hostname for the given address. +The lwres_gnba_*() functions should be used for this type.

lwres_lwpacket_renderheader() transfers the +contents of lightweight resolver packet structure +lwres_lwpacket_t *pkt in network +byte order to the lightweight resolver buffer, +*b.

lwres_lwpacket_parseheader() performs the +converse operation. It transfers data in network byte order from +buffer *b to resolver packet +*pkt. The contents of the buffer +b should correspond to a +lwres_lwpacket_t.

RETURN VALUES

Successful calls to +lwres_lwpacket_renderheader() and +lwres_lwpacket_parseheader() return +LWRES_R_SUCCESS. If there is insufficient +space to copy data between the buffer *b and +lightweight resolver packet *pkt both functions +return LWRES_R_UNEXPECTEDEND.

diff --git a/contrib/bind9/lib/lwres/man/lwres_resutil.3 b/contrib/bind9/lib/lwres/man/lwres_resutil.3 new file mode 100644 index 000000000000..d73122d338cf --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_resutil.3 @@ -0,0 +1,153 @@ +.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2000, 2001 Internet Software Consortium. +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +.\" PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $Id: lwres_resutil.3,v 1.14.2.1.8.1 2004/03/06 07:41:44 marka Exp $ +.\" +.TH "LWRES_RESUTIL" "3" "Jun 30, 2000" "BIND9" "" +.SH NAME +lwres_string_parse, lwres_addr_parse, lwres_getaddrsbyname, lwres_getnamebyaddr \- lightweight resolver utility functions +.SH SYNOPSIS +\fB#include +.sp +.na +lwres_result_t +lwres_string_parse(lwres_buffer_t *b, char **c, lwres_uint16_t *len); +.ad +.sp +.na +lwres_result_t +lwres_addr_parse(lwres_buffer_t *b, lwres_addr_t *addr); +.ad +.sp +.na +lwres_result_t +lwres_getaddrsbyname(lwres_context_t *ctx, const char *name, lwres_uint32_t addrtypes, lwres_gabnresponse_t **structp); +.ad +.sp +.na +lwres_result_t +lwres_getnamebyaddr(lwres_context_t *ctx, lwres_uint32_t addrtype, lwres_uint16_t addrlen, const unsigned char *addr, lwres_gnbaresponse_t **structp); +.ad +\fR +.SH "DESCRIPTION" +.PP +\fBlwres_string_parse()\fR retrieves a DNS-encoded +string starting the current pointer of lightweight resolver buffer +\fIb\fR: i.e. b->current. +When the function returns, the address of the first byte of the +encoded string is returned via \fI*c\fR and the +length of that string is given by \fI*len\fR. The +buffer's current pointer is advanced to point at the character +following the string length, the encoded string, and the trailing +\fBNULL\fR character. +.PP +\fBlwres_addr_parse()\fR extracts an address from the +buffer \fIb\fR. The buffer's current pointer +b->current is presumed to point at an encoded +address: the address preceded by a 32-bit protocol family identifier +and a 16-bit length field. The encoded address is copied to +addr->address and +addr->length indicates the size in bytes of +the address that was copied. b->current is +advanced to point at the next byte of available data in the buffer +following the encoded address. +.PP +\fBlwres_getaddrsbyname()\fR +and +\fBlwres_getnamebyaddr()\fR +use the +\fBlwres_gnbaresponse_t\fR +structure defined below: +.sp +.nf +typedef struct { + lwres_uint32_t flags; + lwres_uint16_t naliases; + lwres_uint16_t naddrs; + char *realname; + char **aliases; + lwres_uint16_t realnamelen; + lwres_uint16_t *aliaslen; + lwres_addrlist_t addrs; + void *base; + size_t baselen; +} lwres_gabnresponse_t; +.sp +.fi +The contents of this structure are not manipulated directly but +they are controlled through the +\fBlwres_gabn\fR(3) +functions. +.PP +The lightweight resolver uses +\fBlwres_getaddrsbyname()\fR to perform foward lookups. +Hostname \fIname\fR is looked up using the resolver +context \fIctx\fR for memory allocation. +\fIaddrtypes\fR is a bitmask indicating which type of +addresses are to be looked up. Current values for this bitmask are +\fBLWRES_ADDRTYPE_V4\fR for IPv4 addresses and +\fBLWRES_ADDRTYPE_V6\fR for IPv6 addresses. Results of the +lookup are returned in \fI*structp\fR. +.PP +\fBlwres_getnamebyaddr()\fR performs reverse lookups. +Resolver context \fIctx\fR is used for memory +allocation. The address type is indicated by +\fIaddrtype\fR: \fBLWRES_ADDRTYPE_V4\fR or +\fBLWRES_ADDRTYPE_V6\fR. The address to be looked up is given +by \fIaddr\fR and its length is +\fIaddrlen\fR bytes. The result of the function call +is made available through \fI*structp\fR. +.SH "RETURN VALUES" +.PP +Successful calls to +\fBlwres_string_parse()\fR +and +\fBlwres_addr_parse()\fR +return +LWRES_R_SUCCESS. +Both functions return +LWRES_R_FAILURE +if the buffer is corrupt or +LWRES_R_UNEXPECTEDEND +if the buffer has less space than expected for the components of the +encoded string or address. +.PP +\fBlwres_getaddrsbyname()\fR +returns +LWRES_R_SUCCESS +on success and it returns +LWRES_R_NOTFOUND +if the hostname +\fIname\fR +could not be found. +.PP +LWRES_R_SUCCESS +is returned by a successful call to +\fBlwres_getnamebyaddr()\fR. +.PP +Both +\fBlwres_getaddrsbyname()\fR +and +\fBlwres_getnamebyaddr()\fR +return +LWRES_R_NOMEMORY +when memory allocation requests fail and +LWRES_R_UNEXPECTEDEND +if the buffers used for sending queries and receiving replies are too +small. +.SH "SEE ALSO" +.PP +\fBlwres_buffer\fR(3), +\fBlwres_gabn\fR(3). diff --git a/contrib/bind9/lib/lwres/man/lwres_resutil.docbook b/contrib/bind9/lib/lwres/man/lwres_resutil.docbook new file mode 100644 index 000000000000..e5f891fa75f1 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_resutil.docbook @@ -0,0 +1,221 @@ + + + + + + + + +Jun 30, 2000 + + + + lwres_resutil + 3 + BIND9 + + + +lwres_string_parse +lwres_addr_parse +lwres_getaddrsbyname +lwres_getnamebyaddr +lightweight resolver utility functions + + + +#include <lwres/lwres.h> + + +lwres_result_t +lwres_string_parse +lwres_buffer_t *b +char **c +lwres_uint16_t *len + + + +lwres_result_t +lwres_addr_parse +lwres_buffer_t *b +lwres_addr_t *addr + + + +lwres_result_t +lwres_getaddrsbyname +lwres_context_t *ctx +const char *name +lwres_uint32_t addrtypes +lwres_gabnresponse_t **structp + + + +lwres_result_t +lwres_getnamebyaddr +lwres_context_t *ctx +lwres_uint32_t addrtype +lwres_uint16_t addrlen +const unsigned char *addr +lwres_gnbaresponse_t **structp + + + + + +DESCRIPTION + + +lwres_string_parse() retrieves a DNS-encoded +string starting the current pointer of lightweight resolver buffer +b: i.e. b->current. +When the function returns, the address of the first byte of the +encoded string is returned via *c and the +length of that string is given by *len. The +buffer's current pointer is advanced to point at the character +following the string length, the encoded string, and the trailing +NULL character. + + + +lwres_addr_parse() extracts an address from the +buffer b. The buffer's current pointer +b->current is presumed to point at an encoded +address: the address preceded by a 32-bit protocol family identifier +and a 16-bit length field. The encoded address is copied to +addr->address and +addr->length indicates the size in bytes of +the address that was copied. b->current is +advanced to point at the next byte of available data in the buffer +following the encoded address. + + + +lwres_getaddrsbyname() +and +lwres_getnamebyaddr() +use the +lwres_gnbaresponse_t +structure defined below: + +typedef struct { + lwres_uint32_t flags; + lwres_uint16_t naliases; + lwres_uint16_t naddrs; + char *realname; + char **aliases; + lwres_uint16_t realnamelen; + lwres_uint16_t *aliaslen; + lwres_addrlist_t addrs; + void *base; + size_t baselen; +} lwres_gabnresponse_t; + +The contents of this structure are not manipulated directly but +they are controlled through the + +lwres_gabn3 + + +functions. + + + +The lightweight resolver uses +lwres_getaddrsbyname() to perform foward lookups. +Hostname name is looked up using the resolver +context ctx for memory allocation. +addrtypes is a bitmask indicating which type of +addresses are to be looked up. Current values for this bitmask are +LWRES_ADDRTYPE_V4 for IPv4 addresses and +LWRES_ADDRTYPE_V6 for IPv6 addresses. Results of the +lookup are returned in *structp. + + + +lwres_getnamebyaddr() performs reverse lookups. +Resolver context ctx is used for memory +allocation. The address type is indicated by +addrtype: LWRES_ADDRTYPE_V4 or +LWRES_ADDRTYPE_V6. The address to be looked up is given +by addr and its length is +addrlen bytes. The result of the function call +is made available through *structp. + + + + +RETURN VALUES + +Successful calls to +lwres_string_parse() +and +lwres_addr_parse() +return +LWRES_R_SUCCESS. +Both functions return +LWRES_R_FAILURE +if the buffer is corrupt or +LWRES_R_UNEXPECTEDEND +if the buffer has less space than expected for the components of the +encoded string or address. + + +lwres_getaddrsbyname() +returns +LWRES_R_SUCCESS +on success and it returns +LWRES_R_NOTFOUND +if the hostname +name +could not be found. + + +LWRES_R_SUCCESS +is returned by a successful call to +lwres_getnamebyaddr(). + + + +Both +lwres_getaddrsbyname() +and +lwres_getnamebyaddr() +return +LWRES_R_NOMEMORY +when memory allocation requests fail and +LWRES_R_UNEXPECTEDEND +if the buffers used for sending queries and receiving replies are too +small. + + + + +SEE ALSO + + +lwres_buffer3 +, + + +lwres_gabn3 +. + + + + diff --git a/contrib/bind9/lib/lwres/man/lwres_resutil.html b/contrib/bind9/lib/lwres/man/lwres_resutil.html new file mode 100644 index 000000000000..cc45556adc44 --- /dev/null +++ b/contrib/bind9/lib/lwres/man/lwres_resutil.html @@ -0,0 +1,387 @@ + + + + + +lwres_resutil

lwres_resutil

Name

lwres_string_parse, lwres_addr_parse, lwres_getaddrsbyname, lwres_getnamebyaddr -- lightweight resolver utility functions

Synopsis

#include <lwres/lwres.h>

lwres_result_t +lwres_string_parse(lwres_buffer_t *b, char **c, lwres_uint16_t *len);

lwres_result_t +lwres_addr_parse(lwres_buffer_t *b, lwres_addr_t *addr);

lwres_result_t +lwres_getaddrsbyname(lwres_context_t *ctx, const char *name, lwres_uint32_t addrtypes, lwres_gabnresponse_t **structp);

lwres_result_t +lwres_getnamebyaddr(lwres_context_t *ctx, lwres_uint32_t addrtype, lwres_uint16_t addrlen, const unsigned char *addr, lwres_gnbaresponse_t **structp);

DESCRIPTION

lwres_string_parse() retrieves a DNS-encoded +string starting the current pointer of lightweight resolver buffer +b: i.e. b->current. +When the function returns, the address of the first byte of the +encoded string is returned via *c and the +length of that string is given by *len. The +buffer's current pointer is advanced to point at the character +following the string length, the encoded string, and the trailing +NULL character.

lwres_addr_parse() extracts an address from the +buffer b. The buffer's current pointer +b->current is presumed to point at an encoded +address: the address preceded by a 32-bit protocol family identifier +and a 16-bit length field. The encoded address is copied to +addr->address and +addr->length indicates the size in bytes of +the address that was copied. b->current is +advanced to point at the next byte of available data in the buffer +following the encoded address.

lwres_getaddrsbyname() +and +lwres_getnamebyaddr() +use the +lwres_gnbaresponse_t +structure defined below: +

typedef struct {
+        lwres_uint32_t          flags;
+        lwres_uint16_t          naliases;
+        lwres_uint16_t          naddrs;
+        char                   *realname;
+        char                  **aliases;
+        lwres_uint16_t          realnamelen;
+        lwres_uint16_t         *aliaslen;
+        lwres_addrlist_t        addrs;
+        void                   *base;
+        size_t                  baselen;
+} lwres_gabnresponse_t;
+The contents of this structure are not manipulated directly but +they are controlled through the +lwres_gabn(3) +functions.

The lightweight resolver uses +lwres_getaddrsbyname() to perform foward lookups. +Hostname name is looked up using the resolver +context ctx for memory allocation. +addrtypes is a bitmask indicating which type of +addresses are to be looked up. Current values for this bitmask are +LWRES_ADDRTYPE_V4 for IPv4 addresses and +LWRES_ADDRTYPE_V6 for IPv6 addresses. Results of the +lookup are returned in *structp.

lwres_getnamebyaddr() performs reverse lookups. +Resolver context ctx is used for memory +allocation. The address type is indicated by +addrtype: LWRES_ADDRTYPE_V4 or +LWRES_ADDRTYPE_V6. The address to be looked up is given +by addr and its length is +addrlen bytes. The result of the function call +is made available through *structp.

RETURN VALUES

Successful calls to +lwres_string_parse() +and +lwres_addr_parse() +return +LWRES_R_SUCCESS. +Both functions return +LWRES_R_FAILURE +if the buffer is corrupt or +LWRES_R_UNEXPECTEDEND +if the buffer has less space than expected for the components of the +encoded string or address.

lwres_getaddrsbyname() +returns +LWRES_R_SUCCESS +on success and it returns +LWRES_R_NOTFOUND +if the hostname +name +could not be found.

LWRES_R_SUCCESS +is returned by a successful call to +lwres_getnamebyaddr().

Both +lwres_getaddrsbyname() +and +lwres_getnamebyaddr() +return +LWRES_R_NOMEMORY +when memory allocation requests fail and +LWRES_R_UNEXPECTEDEND +if the buffers used for sending queries and receiving replies are too +small.

SEE ALSO

lwres_buffer(3), + +lwres_gabn(3).

-- cgit v1.2.3