mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 14:07:59 +00:00
initial draft of lwres manpages
This commit is contained in:
291
doc/man/lwres/lwres.3
Normal file
291
doc/man/lwres/lwres.3
Normal file
@@ -0,0 +1,291 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:52:57 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres
|
||||
.Nd introduction to the lightweight resolver
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwres.h>
|
||||
.Sh DESCRIPTION
|
||||
The lightweight resolver provides a simple way for clients to perform
|
||||
forward and reverse lookups.
|
||||
Instead of looking up the names or addresses directly, clients can send
|
||||
requests to the lightweight resolver daemon
|
||||
.Nm lwresd
|
||||
which does hard work of performing the lookups for them.
|
||||
Clients can just use the lightweight resolver library to format a
|
||||
request to get a hostname for an IP address or vice versa, send it to
|
||||
.Nm lwresd
|
||||
and wait for a response.
|
||||
.Pp
|
||||
The lightweight resolver in BIND 9 consists of three components:
|
||||
a client, a server and a protocol.
|
||||
Clients use the functions provided by the lightweight resolver library
|
||||
to encode requests and decode responses.
|
||||
The server for the lightweight resolver is
|
||||
.Nm lwresd .
|
||||
In reality this is implemented by the name server,
|
||||
.Nm named ,
|
||||
though when operating as the lightweight resolver server,
|
||||
.Nm lwresd
|
||||
is functionally and logically distinct from the actual name server.
|
||||
The protocol consists of a number of opcodes, each of which has a
|
||||
request and response structure associated with it.
|
||||
The lightweight resolver library contains functions to convert these
|
||||
structures to and from the canonical format whenver they are sent to
|
||||
.Nm lwresd .
|
||||
.Sh RATIONALE
|
||||
.Pp
|
||||
Conventional DNS lookups of hostnames and IPv4 addresses are usually
|
||||
simple and straightforward.
|
||||
A client can issue queries to map a hostname to an IPv4 address or
|
||||
from an IPv4 address to a hostname.
|
||||
Many DNS queries can be needed to lookup IPv6 addresses.
|
||||
It may be necessary to resolve potentially variable-length partial
|
||||
IPv6 addresses: aggregation and site-level identifiers for instance.
|
||||
Keeping track of all of these queries and assembling the answers to
|
||||
return the hostname or IPv6 address is very hard work and error-prone.
|
||||
Further complexity can be caused by DNAME chains.
|
||||
If the answers are signed using DNSSEC, additional queries may be needed
|
||||
to verify the signatures.
|
||||
The consequence of this is that clients can be overwhelmed with the
|
||||
amount of work needed to resolve IPv6 addresses.
|
||||
BIND9 provides a lightweight resolver to eliminate these problems if
|
||||
applications had to resolve IPv6 addresses for themselves.
|
||||
.Pp
|
||||
Instead of looking up the hostnames or IPv6 addresses directly, clients
|
||||
can use the lightweight resolver to get the name server to do the work.
|
||||
Clients construct simple questions like \*qwhat is the hostname for
|
||||
the following address?\*q or \*qwhat are the addresses of hostname
|
||||
.Dv host.example.com?\*q
|
||||
The lightweight resolver functions take these questions and format
|
||||
them into queries which are sent to
|
||||
.Nm lwresd .
|
||||
Replies from the lightweight resolver server are then decoded to return
|
||||
an answer to the client which made the original request.
|
||||
.Sh CANONICAL FORMAT
|
||||
.Pp
|
||||
The lightweight resolver's canonical data format has been arranged for
|
||||
efficiency.
|
||||
All integer values are in network byte order.
|
||||
Addresses are also in network byte order.
|
||||
This means that, at least for IPv4 and IPv6 addresses, they can be
|
||||
used directly in network system calls without needing to be byte
|
||||
swapped.
|
||||
Character strings get prefixed by a length and are always terminated
|
||||
with a
|
||||
.Dv NUL
|
||||
character.
|
||||
This simplifies structure handling and parsing for both the server
|
||||
receiving a request and the client receiving a reply.
|
||||
It also eliminates data copying by enabling a mapping structure to
|
||||
directly point at data in the actual receive buffer.
|
||||
.Sh OPCODES
|
||||
.Pp
|
||||
Every lightweight resolver operation uses a unique opcode.
|
||||
Each opcode is assigned a number.
|
||||
Opcodes in the range 0x00000000 and 0x03ffffff are reserved for use by
|
||||
the lightweight resolver library.
|
||||
Opcodes between 0x04000000 and 0xffffffff have been set aside for use by
|
||||
applications.
|
||||
.Pp
|
||||
Three opcodes are currently defined:
|
||||
.Bl -tag -width LWRES_OPCODE_GETADDRSBYNAME
|
||||
.It Li LWRES_OPCODE_NOOP
|
||||
The no-op opcode is essentially an echo operation, comparable to
|
||||
.Xr ping 1 .
|
||||
The server simply returns the entire data region that had been sent by
|
||||
the client.
|
||||
Therefore clients can use this opcode to determine if the server is
|
||||
operational or not.
|
||||
It can also be used by clients to check the version number and any
|
||||
parameters of the lightweight resolver protocol that are supported by the
|
||||
server.
|
||||
.It Li LWRES_OPCODE_GETADDRSBYNAME
|
||||
This opcode is used to get all the known addresses for a hostname.
|
||||
In principle, this could also return information from NIS/YP or
|
||||
.Pa /etc/hosts ,
|
||||
though this is not implemented yet.
|
||||
Flags can be set in the request structure that is used for this opcode
|
||||
to indicate whether IPv4 or IPv6 addresses or both should be returned.
|
||||
.It Li LWRES_OPCODE_GETNAMEBYADDR
|
||||
This provides the complementary operation to
|
||||
.Dv LWRES_OPCODE_GETADDRSBYNAME .
|
||||
It returns the hostname for the address that was supplied in the
|
||||
request structure.
|
||||
.El
|
||||
.\"
|
||||
.\" XXXJR
|
||||
.\" We don't need this section, at least not yet. 23/6/00
|
||||
.\"
|
||||
.\" .Sh OPCODE REPLIES
|
||||
.\" .Pp
|
||||
.\" Replies to lightweight resolver operations contain return codes.
|
||||
.\" Results between 0x04000000 and 0xffffffff are application defined.
|
||||
.\" The lightweight resolver library reserves result codes between
|
||||
.\" 0x00000000 and 0x03ffffff.
|
||||
.\" These occupy the same reserved range used for ISC return values that
|
||||
.\" are defined in
|
||||
.\" .Pa isc/resultclass.h .
|
||||
.\" This means that, if appropriate, it would be trivial to map those ISC
|
||||
.\" return values to lightweight resolver packet result codes.
|
||||
.Sh STRUCTURE AND PACKET ENCODING/DECODING
|
||||
Each opcode has two structures: one for the request and one for the
|
||||
response.
|
||||
Clients use the lightweight resolver functions to construct the
|
||||
request structure and send it to the name server.
|
||||
The name server decodes the request, carries out the operation and
|
||||
fills in an opcode-specific response structure which is returned to
|
||||
the client.
|
||||
.Pp
|
||||
For every opcode, three functions operate on these structures.
|
||||
A
|
||||
.Ar render
|
||||
function converts the structure to canonical form and a
|
||||
.Ar parse
|
||||
function translates from the canonical form to the op-code specific
|
||||
structure.
|
||||
Memory allocated to the opcode's request or reply structures is
|
||||
discarded using the
|
||||
.Ar free
|
||||
function.
|
||||
Clients will typically use the op-code specific
|
||||
.Ar xxx_request_render ,
|
||||
.Ar xxx_response_parse
|
||||
and
|
||||
.Ar xxx_response_free
|
||||
functions.
|
||||
The name server will use the
|
||||
.Ar xxx_request_parse ,
|
||||
.Ar xxx_response_render
|
||||
and
|
||||
.Ar xxx_request_free
|
||||
functions.
|
||||
.Pp
|
||||
For example, the no-op opcode -
|
||||
.Dv LWRES_OPCODE_NOOP
|
||||
- uses
|
||||
.Dv lwres_nooprequest_t
|
||||
and
|
||||
.Dv lwres_noopresponse_t
|
||||
structures for the requests and responses used in the no-op operation.
|
||||
.Fn lwres_nooprequest_render
|
||||
takes a
|
||||
.Dv lwres_nooprequest_t
|
||||
structure and converts into a packet in lightweight resolver canonical
|
||||
format.
|
||||
Similarly
|
||||
.Fn lwres_noopresponse_render
|
||||
converts a
|
||||
.Dv lwres_noopresponse_t
|
||||
structure into a packet in lightweight resolver canonical format.
|
||||
.Fn lwres_nooprequest_parse
|
||||
takes a packet in canonical format and fills in a corresponding
|
||||
.Dv lwres_nooprequest_t
|
||||
structure.
|
||||
A
|
||||
.Dv lwres_noopresponse_t
|
||||
structure is set up by\p
|
||||
passing a response packet in canonical format to
|
||||
.Fn lwres_noopresponse_render .
|
||||
.Fn lwres_nooprequest_free
|
||||
and
|
||||
.Fn lwres_noopresponse_free
|
||||
releases the memory allocated to the
|
||||
.Dv lwres_nooprequest_t
|
||||
and
|
||||
.Dv lwres_noopresponse_t
|
||||
structures respectively.
|
||||
.\"
|
||||
.\" XXXJR
|
||||
.\" NOT YET.
|
||||
.\" This is just a placeholder to indicate where the section on the
|
||||
.\" lwres security API should be documented once this is implemented.
|
||||
.\" There's no point in documenting vapourware, especially if the
|
||||
.\" API is likely to change between now and then. 23/6/00
|
||||
.\" .Sh SECURITY
|
||||
.\" The lightweight resolver provides hooks for requesting the use of
|
||||
.\" DNSSEC for authenticating requests and responses.
|
||||
.\" This interface is not currently implemented and is likely to
|
||||
.\" change.
|
||||
.\" It is mentioned here to indicate the capabilities that can be expected
|
||||
.\" in future releases of the lightweight resolver.
|
||||
.\" .Pp
|
||||
.\" The following flag bits have been allocated.
|
||||
.\" .Bl -tag -width LWRES_FLAG_TRUSTNOTREQUIRED
|
||||
.\" .It Li LWRES_FLAG_TRUSTDEFAULT
|
||||
.\" Let the server decide whether to use DNSSEC or not.
|
||||
.\" .It Li LWRES_FLAG_TRUSTNOTREQUIRED
|
||||
.\" DNSSEC authentication of the DNS queries and replies is not required
|
||||
.\" .It Li LWRES_FLAG_TRUSTREQUIRED
|
||||
.\" Any DNSSEC data found when resolving the query must validate and the
|
||||
.\" server must be DNSSEC-aware.
|
||||
.\" .It Li LWRES_FLAG_TRUSTRESERVED
|
||||
.\" Reserved for future use.
|
||||
.\" .El
|
||||
.Sh CLIENT SETUP
|
||||
Every client that uses the lightweight resolver needs to create and
|
||||
maintain its own state.
|
||||
Library calls are provided to manage that data structure, a resolver
|
||||
context.
|
||||
If the client uses threads, it either has to provide its own locking
|
||||
primitives on that context structure or else create a context for each
|
||||
thread.
|
||||
See
|
||||
.Xr lwres_context 3 .
|
||||
Once the context has been created,
|
||||
.Fn lwres_conf_init
|
||||
is called to read
|
||||
.Pa /etc/resolv.conf
|
||||
so that various options such as sort lists, search lists and so on can
|
||||
be applied.
|
||||
.Sh CLIENT INTERFACE
|
||||
The simplest interface to the lightweight resolver is provided by
|
||||
.Fn lwres_getaddrsbyname
|
||||
and
|
||||
.Fn lwres_getnamebyaddr .
|
||||
These functions are blocking calls.
|
||||
A client will wait after sending a request until either a response is
|
||||
returned or else a timeout interval occurs.
|
||||
If non-blocking operations are required, the client will need to
|
||||
call the opcode-specific
|
||||
.Ar request_render
|
||||
and
|
||||
.Ar response_parse
|
||||
directly.
|
||||
.Sh SERVER INTERFACE
|
||||
Service for the lightweight resolver is provided by the lightweight
|
||||
resolver daemon,
|
||||
.Nm lwresd .
|
||||
It listens on port number 921 of the loopback interface and expects to
|
||||
receive packets in the lightweight resolver's canonical format
|
||||
described above.
|
||||
.Sh SEE ALSO
|
||||
.Xr lwres_noop 3 ,
|
||||
.Xr lwres_gabn 3 ,
|
||||
.Xr lwres_gnba 3 ,
|
||||
.Xr lwres_context 3 ,
|
||||
.Xr lwres_config 3 ,
|
||||
.Xr resolver 5 ,
|
||||
.Xr lwres_getipnode 3
|
||||
.Xr lwresd 8 ,
|
||||
.Xr named 8 .
|
19
doc/man/lwres/lwres_addr_parse.3
Normal file
19
doc/man/lwres/lwres_addr_parse.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_addr_parse.3,v 1.1 2000/06/27 21:52:57 jim Exp $
|
||||
.\"
|
||||
.so lwres_resutil.3
|
324
doc/man/lwres/lwres_buffer.3
Normal file
324
doc/man/lwres/lwres_buffer.3
Normal file
@@ -0,0 +1,324 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:52:57 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_BUFFER 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_buffer_init ,
|
||||
.Nm lwres_buffer_invalidate ,
|
||||
.Nm lwres_buffer_add ,
|
||||
.Nm lwres_buffer_subtract ,
|
||||
.Nm lwres_buffer_clear ,
|
||||
.Nm lwres_buffer_first ,
|
||||
.Nm lwres_buffer_forward ,
|
||||
.Nm lwres_buffer_back ,
|
||||
.Nm lwres_buffer_getuint8 ,
|
||||
.Nm lwres_buffer_putuint8 ,
|
||||
.Nm lwres_buffer_getuint16 ,
|
||||
.Nm lwres_buffer_putuint16 ,
|
||||
.Nm lwres_buffer_getuint32 ,
|
||||
.Nm lwres_buffer_putuint32 ,
|
||||
.Nm lwres_buffer_putmem ,
|
||||
.Nm lwres_buffer_getmem
|
||||
.Nd lightweight resolver buffer management
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwbuffer.h>
|
||||
.Fd
|
||||
.Ft void
|
||||
.Fo lwres_buffer_init
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "void *base"
|
||||
.Fa "unsigned int length"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_invalidate
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_add
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "unsigned int n"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_subtract
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "unsigned int n"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_clear
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_first
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_forward
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "unsigned int n"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_back
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "unsigned int n"
|
||||
.Fc
|
||||
.Ft lwres_uint8_t
|
||||
.Fo lwres_buffer_getuint8
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_putuint8
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_uint8_t val"
|
||||
.Fc
|
||||
.Ft lwres_uint16_t
|
||||
.Fo lwres_buffer_getuint16
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_putuint16
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_uint16_t val"
|
||||
.Fc
|
||||
.Ft lwres_uint32_t
|
||||
.Fo lwres_buffer_getuint32
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_putuint32
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_uint32_t val"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_putmem
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "const unsigned char *base"
|
||||
.Fa "unsigned int length"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_getmem
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "unsigned char *base"
|
||||
.Fa "unsigned int length"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
These functions use the following structure as a buffer descriptor to
|
||||
manage the actual storage:
|
||||
.Bd -literal -offset indent
|
||||
typedef struct lwres_buffer lwres_buffer_t;
|
||||
struct lwres_buffer {
|
||||
unsigned int magic;
|
||||
unsigned char *base;
|
||||
/* The following integers are byte offsets from 'base'. */
|
||||
unsigned int length;
|
||||
unsigned int used;
|
||||
unsigned int current;
|
||||
unsigned int active;
|
||||
};
|
||||
.Ed
|
||||
The main reason for making the buffer structure public is so that
|
||||
buffer operations can be implemented using macros.
|
||||
Applications should not manipulate this structure directly.
|
||||
They should use the functions listed below.
|
||||
.Pp
|
||||
A buffer is a region of memory, together with a set of related
|
||||
subregions.
|
||||
The \*qused region\*q and the \*qavailable\*q 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
|
||||
\*qconsumed region\*q and the \*qremaining region\*q.
|
||||
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 \*qcurrent\*q offset (if any).
|
||||
The \*qremaining\*q 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 \*qactive region\*q 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
|
||||
Except for
|
||||
.Fn lwres_buffer_init ,
|
||||
all of the buffer managements functions contain an assertion check
|
||||
that
|
||||
.Fa b
|
||||
is a pointer to a valid lightweight resolver buffer.
|
||||
.Pp
|
||||
.Fn lwres_buffer_init
|
||||
makes the
|
||||
.Dv "struct lwres_buffer"
|
||||
referenced by
|
||||
.Fa *b
|
||||
to be associated with a memory region of size
|
||||
.Fa length
|
||||
bytes starting at location
|
||||
.Fa base.
|
||||
The function checks that
|
||||
.Fa *b is not
|
||||
.Dv NULL .
|
||||
.Pp
|
||||
The
|
||||
.Dv lwres_buffer_t
|
||||
.Fa *b
|
||||
is invalidated by
|
||||
.Fn lwres_buffer_invalidate .
|
||||
.Fa *b
|
||||
must be a valid lightweight resolver buffer.
|
||||
.Pp
|
||||
The functions
|
||||
.Fn lwres_buffer_add
|
||||
and
|
||||
.Fn lwres_buffer_subtract
|
||||
respectively increase and decrease the used space in
|
||||
buffer
|
||||
.Fa *b
|
||||
by
|
||||
.Fa n
|
||||
bytes.
|
||||
.Fa *b
|
||||
.Fn lwres_buffer_add
|
||||
checks for buffer overflow and
|
||||
.Fn lwres_buffer_subtract
|
||||
checks for underflow.
|
||||
These functions do not allocate or deallocate memory.
|
||||
They just change the value of
|
||||
.Li b->used .
|
||||
.Pp
|
||||
A lightweight resolver buffer is re-initialised by
|
||||
.Fn lwres_buffer_clear .
|
||||
The function sets
|
||||
.Li b->used ,
|
||||
.Li b->current
|
||||
and
|
||||
.Li b->active
|
||||
to zero.
|
||||
.Pp
|
||||
.Fn lwres_buffer_first
|
||||
makes the consumed region of buffer
|
||||
.Fa *p
|
||||
empty by setting
|
||||
.Li b->current
|
||||
to zero: the start of the buffer.
|
||||
.Pp
|
||||
The consumed region of buffer
|
||||
.Fa *b
|
||||
is increased by
|
||||
.Fa n
|
||||
bytes
|
||||
using
|
||||
.Fn lwres_buffer_forward .
|
||||
The function checks for buffer overflow.
|
||||
Similarly,
|
||||
.Fn lwres_buffer_back
|
||||
decreases buffer
|
||||
.Fa b 's
|
||||
consumed region by
|
||||
.Fa n
|
||||
bytes and checks for buffer underflow.
|
||||
.Pp
|
||||
.Fn lwres_buffer_getuint8
|
||||
reads an unsigned 8-bit integer from
|
||||
.Fa *b
|
||||
and returns it.
|
||||
The function checks that it does not read past the end of the buffer's
|
||||
consumed region.
|
||||
.Fn lwres_buffer_putuint8
|
||||
writes the unsigned 8-bit integer
|
||||
.Fa val
|
||||
to buffer
|
||||
.Fa *b .
|
||||
It checks that the buffer has available space for
|
||||
.Fa val .
|
||||
.Pp
|
||||
.Fn lwres_buffer_getuint16
|
||||
and
|
||||
.Fn lwres_buffer_getuint32
|
||||
are identical to
|
||||
.Fn lwres_buffer_putuint8
|
||||
except that they respectively read an unsigned 16-bit or 32-bit integer from
|
||||
.Fa b
|
||||
converting it from network byte order to host byte order before
|
||||
returning its value.
|
||||
Similarly,
|
||||
.Fn lwres_buffer_putuint16
|
||||
and
|
||||
.Fn lwres_buffer_putuint32
|
||||
writes the unsigned 16-bit or 32-bit integer
|
||||
.Fa val
|
||||
to buffer
|
||||
.Fa b ,
|
||||
converting it from host byte order to network byte order.
|
||||
.Pp
|
||||
Arbitrary amounts of data are read or written from a lightweight
|
||||
resolver buffer with
|
||||
.Fn lwres_buffer_getmem
|
||||
and
|
||||
.Fn lwres_buffer_putmem
|
||||
respectively.
|
||||
.Fn lwres_buffer_putmem
|
||||
copies
|
||||
.Fa length
|
||||
bytes of memory at
|
||||
.Fa base
|
||||
to
|
||||
.Fa b.
|
||||
Conversely,
|
||||
.Fn lwres_buffer_getmem
|
||||
copies
|
||||
.Fa length
|
||||
bytes of memory from
|
||||
.Fa b
|
||||
to
|
||||
.Fa base .
|
||||
For both functions,
|
||||
.Fa base
|
||||
should point to at least
|
||||
.Fa length
|
||||
bytes of valid memory.
|
||||
.Fa base
|
||||
.Sh RETURN VALUES
|
||||
.Fn lwres_buffer_getuint8 ,
|
||||
.Fn lwres_buffer_getuint16
|
||||
and
|
||||
.Fn lwres_buffer_getuint32
|
||||
return an 8-, 16- or 32-bit unsigned integer respectively from the
|
||||
current offset in buffer
|
||||
.Fa b .
|
||||
The 16- and 32-bit quantities are presented in host byte order even
|
||||
though they are stored in network byte order inside the buffer.
|
||||
.Sh SEE ALSO
|
||||
.Sh BUGS
|
||||
Buffers have no synchronization.
|
||||
Clients must ensure exclusive access for thread-safe operations.
|
19
doc/man/lwres/lwres_buffer_add.3
Normal file
19
doc/man/lwres/lwres_buffer_add.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_add.3,v 1.1 2000/06/27 21:52:57 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_back.3
Normal file
19
doc/man/lwres/lwres_buffer_back.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_back.3,v 1.1 2000/06/27 21:52:57 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_clear.3
Normal file
19
doc/man/lwres/lwres_buffer_clear.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_clear.3,v 1.1 2000/06/27 21:52:57 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_first.3
Normal file
19
doc/man/lwres/lwres_buffer_first.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_first.3,v 1.1 2000/06/27 21:52:58 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_forward.3
Normal file
19
doc/man/lwres/lwres_buffer_forward.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_forward.3,v 1.1 2000/06/27 21:52:58 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_getmem.3
Normal file
19
doc/man/lwres/lwres_buffer_getmem.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_getmem.3,v 1.1 2000/06/27 21:52:58 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_getuint16.3
Normal file
19
doc/man/lwres/lwres_buffer_getuint16.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_getuint16.3,v 1.1 2000/06/27 21:52:59 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_getuint32.3
Normal file
19
doc/man/lwres/lwres_buffer_getuint32.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_getuint32.3,v 1.1 2000/06/27 21:52:59 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_getuint8.3
Normal file
19
doc/man/lwres/lwres_buffer_getuint8.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_getuint8.3,v 1.1 2000/06/27 21:52:59 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_init.3
Normal file
19
doc/man/lwres/lwres_buffer_init.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_init.3,v 1.1 2000/06/27 21:52:59 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_invalidate.3
Normal file
19
doc/man/lwres/lwres_buffer_invalidate.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_invalidate.3,v 1.1 2000/06/27 21:52:59 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_putmem.3
Normal file
19
doc/man/lwres/lwres_buffer_putmem.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_putmem.3,v 1.1 2000/06/27 21:52:59 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_putuint16.3
Normal file
19
doc/man/lwres/lwres_buffer_putuint16.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_putuint16.3,v 1.1 2000/06/27 21:52:59 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_putuint32.3
Normal file
19
doc/man/lwres/lwres_buffer_putuint32.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_putuint32.3,v 1.1 2000/06/27 21:52:59 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_putuint8.3
Normal file
19
doc/man/lwres/lwres_buffer_putuint8.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_putuint8.3,v 1.1 2000/06/27 21:52:59 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_buffer_subtract.3
Normal file
19
doc/man/lwres/lwres_buffer_subtract.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_subtract.3,v 1.1 2000/06/27 21:53:00 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
doc/man/lwres/lwres_conf_clear.3
Normal file
19
doc/man/lwres/lwres_conf_clear.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_conf_clear.3,v 1.1 2000/06/27 21:53:00 jim Exp $
|
||||
.\"
|
||||
.so lwres_config.3
|
19
doc/man/lwres/lwres_conf_get.3
Normal file
19
doc/man/lwres/lwres_conf_get.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_conf_get.3,v 1.1 2000/06/27 21:53:00 jim Exp $
|
||||
.\"
|
||||
.so lwres_config.3
|
19
doc/man/lwres/lwres_conf_init.3
Normal file
19
doc/man/lwres/lwres_conf_init.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_conf_init.3,v 1.1 2000/06/27 21:53:00 jim Exp $
|
||||
.\"
|
||||
.so lwres_config.3
|
19
doc/man/lwres/lwres_conf_parse.3
Normal file
19
doc/man/lwres/lwres_conf_parse.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_conf_parse.3,v 1.1 2000/06/27 21:53:00 jim Exp $
|
||||
.\"
|
||||
.so lwres_config.3
|
19
doc/man/lwres/lwres_conf_print.3
Normal file
19
doc/man/lwres/lwres_conf_print.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_conf_print.3,v 1.1 2000/06/27 21:53:00 jim Exp $
|
||||
.\"
|
||||
.so lwres_config.3
|
109
doc/man/lwres/lwres_config.3
Normal file
109
doc/man/lwres/lwres_config.3
Normal file
@@ -0,0 +1,109 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:00 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_CONFIG 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_conf_init ,
|
||||
.Nm lwres_conf_clear ,
|
||||
.Nm lwres_conf_parse ,
|
||||
.Nm lwres_conf_print ,
|
||||
.Nm lwres_conf_get
|
||||
.Nd lightweight resolver configuration
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwres.h>
|
||||
.Fd
|
||||
.Ft void
|
||||
.Fo lwres_conf_init
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_conf_clear
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_conf_parse
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "const char *filename"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_conf_print
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "FILE *fp"
|
||||
.Fc
|
||||
.Ft lwres_conf_t *
|
||||
.Fo lwres_conf_get
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
.Fn lwres_conf_init
|
||||
creates an empty
|
||||
.Dv lwres_conf_t
|
||||
structure for lightweight resolver context
|
||||
.Fa ctx .
|
||||
.Pp
|
||||
.Fn lwres_conf_clear
|
||||
frees up all the internal memory used by
|
||||
that
|
||||
.Dv lwres_conf_t
|
||||
structure in resolver context
|
||||
.Fa ctx .
|
||||
.Pp
|
||||
.Fn lwres_conf_parse
|
||||
opens the file
|
||||
.Fa filename
|
||||
and parses it to initialise the resolver context
|
||||
.Fa ctx 's
|
||||
.Dv lwres_conf_t
|
||||
structure.
|
||||
.Pp
|
||||
.Fn lwres_conf_print
|
||||
prints the
|
||||
.Dv lwres_conf_t
|
||||
structure for resolver context
|
||||
.Fa ctx
|
||||
to the
|
||||
.Dv FILE
|
||||
.Fa fp.
|
||||
.Sh RETURN VALUES
|
||||
.Fn lwres_conf_parse
|
||||
returns
|
||||
.Er LWRES_R_SUCCESS
|
||||
if it successfully read and parsed
|
||||
.Fa filename .
|
||||
It returns
|
||||
.Er LWRES_R_FAILURE
|
||||
if
|
||||
.Fa filename
|
||||
could not be opened or contained incorrect
|
||||
resolver statements.
|
||||
.Pp
|
||||
.Fn lwres_conf_print
|
||||
returns
|
||||
.Er LWRES_R_SUCCESS
|
||||
unless an error occurred when converting the network addresses to a
|
||||
numeric host address string.
|
||||
If this happens, the function returns
|
||||
.Er LWRES_R_FAILURE .
|
||||
.Sh SEE ALSO
|
||||
.Xr stdio 3,
|
||||
.Xr resolver 5 .
|
||||
.Sh FILES
|
||||
.Pa /etc/resolv.conf
|
257
doc/man/lwres/lwres_context.3
Normal file
257
doc/man/lwres/lwres_context.3
Normal file
@@ -0,0 +1,257 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:00 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_CONTEXT 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_context_create ,
|
||||
.Nm lwres_context_destroy ,
|
||||
.Nm lwres_context_nextserial ,
|
||||
.Nm lwres_context_initserial ,
|
||||
.Nm lwres_context_freemem ,
|
||||
.Nm lwres_context_allocmem ,
|
||||
.Nm lwres_context_sendrecv
|
||||
.Nd lightweight resolver memory allocation routines
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwres.h>
|
||||
.Fd
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_context_create
|
||||
.Fa "lwres_context_t **contextp"
|
||||
.Fa "void *arg"
|
||||
.Fa "lwres_malloc_t malloc_function"
|
||||
.Fa "lwres_free_t free_function"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_context_destroy
|
||||
.Fa "lwres_context_t **contextp"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_context_nextserial
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fc
|
||||
.Ft lwres_uint32_t
|
||||
.Fo lwres_context_initserial
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_uint32_t serial"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_context_freemem
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "void *mem"
|
||||
.Fa "size_t len"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_context_allocmem
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "size_t len"
|
||||
.Fc
|
||||
.Ft void *
|
||||
.Fo lwres_context_sendrecv
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "void *sendbase"
|
||||
.Fa "int sendlen"
|
||||
.Fa "void *recvbase"
|
||||
.Fa "int recvlen"
|
||||
.Fa "int *recvd_len"
|
||||
.Fc
|
||||
.Bd -literal -offset indent
|
||||
struct lwres_context {
|
||||
unsigned int timeout; /* time to wait for reply */
|
||||
lwres_uint32_t serial; /* serial number state */
|
||||
/*
|
||||
* For network I/O.
|
||||
*/
|
||||
int sock; /* socket to send on */
|
||||
/*
|
||||
* Function pointers for allocating memory.
|
||||
*/
|
||||
lwres_malloc_t malloc;
|
||||
lwres_free_t free;
|
||||
void *arg;
|
||||
/*
|
||||
* resolv.conf-like data
|
||||
*/
|
||||
lwres_conf_t confdata;
|
||||
};
|
||||
|
||||
typedef struct lwres_context lwres_context_t;
|
||||
.Ed
|
||||
.Sh DESCRIPTION
|
||||
.Fn lwres_context_create
|
||||
is used to create a
|
||||
.Dv lwres_context_t
|
||||
structure for use in lightweight resolver operations and associate
|
||||
general purpose memory allocation functions with that structure.
|
||||
.Fa *contextp
|
||||
is a pointer to a
|
||||
.Dv "struct lwres_context" .
|
||||
It must be non-NULL, which in turn implies that
|
||||
.Fa **contextp
|
||||
is also non-NULL.
|
||||
.Fa malloc_function
|
||||
and
|
||||
.Fa free_function
|
||||
are pointers to the functions the context should use for allocating
|
||||
and freeing memory respectively.
|
||||
Both function pointers must either be non-NULL or NULL.
|
||||
It is not permitted to use a custom allocator - i.e
|
||||
.Fa malloc_function
|
||||
is non-NULL -
|
||||
with a NULL
|
||||
.Fa free_function
|
||||
or vice versa.
|
||||
If both function pointers are NULL, the lightweight resolver's
|
||||
internal allocation routines which call
|
||||
.Xr malloc 3
|
||||
and
|
||||
.Xr free 3
|
||||
are used.
|
||||
.Fa arg
|
||||
is passed as the initial parameter to the memory
|
||||
allocation functions.
|
||||
The argument is passed but not used in the internal allocation
|
||||
and deallocation routines.
|
||||
Once memory for the structure has been allocated,
|
||||
.Xr lwres_conf_init 3
|
||||
is called to initialise it.
|
||||
The structure is then returned via
|
||||
.Fa *contextp .
|
||||
.Pp
|
||||
A
|
||||
.Dv "struct lwres_context"
|
||||
is destroyed by
|
||||
.Fn lwres_context_destroy.
|
||||
.Fa **contextp
|
||||
is a pointer to a pointer to the context that is to be destroyed.
|
||||
It must be non-NULL, as should
|
||||
.Fa *contextp .
|
||||
If the context has an open socket, it is closed before the structure
|
||||
is discarded.
|
||||
.Pp
|
||||
The context's serial number is controlled with
|
||||
.Fn lwres_context_initserial
|
||||
and
|
||||
.Fn lwres_context_nextserial .
|
||||
Both require that
|
||||
.Fa ctx
|
||||
is not NULL.
|
||||
.Fn lwres_context_initserial
|
||||
sets the serial number for context
|
||||
.Fa *ctx
|
||||
to
|
||||
.Fa serial .
|
||||
.Fn lwres_context_nextserial
|
||||
returns the current serial number for the context and increments
|
||||
.Dv ctx->serial .
|
||||
.Pp
|
||||
Memory for a lightweight resolver context is allocated and freed using
|
||||
.Fn lwres_context_allocmem
|
||||
and
|
||||
.Fn lwres_context_freemem .
|
||||
These use whatever allocations were defined when the context was
|
||||
created with
|
||||
.Fn lwres_context_create .
|
||||
.Fn lwres_context_allocmem
|
||||
allocates
|
||||
.Fa len
|
||||
bytes of memory and if successful returns a pointer to the allocated
|
||||
storage.
|
||||
.Fn lwres_context_allocmem
|
||||
checks that
|
||||
.Fa len
|
||||
must be greater than 0.
|
||||
.Fn lwres_context_freemem
|
||||
frees
|
||||
.Fa len
|
||||
bytes of space starting at location
|
||||
.Fa mem .
|
||||
It has assertion checks to ensure that
|
||||
.Fa mem
|
||||
is not null and
|
||||
.Fa len
|
||||
is not zero.
|
||||
.Pp
|
||||
If the lightweight resolver's memory allocation functions are used,
|
||||
.Fa len
|
||||
bytes in the allocated buffer will be set to '0xe5' on allocation
|
||||
or '0xa9' when they are freed.
|
||||
.Pp
|
||||
.Fn lwres_context_sendrecv
|
||||
performs I/O for the context
|
||||
.Fa ctx .
|
||||
Data are read and written from the context's socket
|
||||
.Dv ctx->sock .
|
||||
It writes data from
|
||||
.Fa sendbase
|
||||
- typically a DNS query -
|
||||
and waits for a reply which is copied to the receive buffer at
|
||||
.Fa recvbase .
|
||||
.Fa sendbase
|
||||
is a pointer to the
|
||||
.Fa sendlen
|
||||
bytes of data that are to be sent using
|
||||
.Xr sendto 2.
|
||||
Up to
|
||||
.Fn recvlen
|
||||
bytes of data that are returned by a call to
|
||||
.Xr recvfrom 2
|
||||
on the socket are copied to
|
||||
.Fa recvbase .
|
||||
The number of bytes that were written to this receive buffer is
|
||||
returned in
|
||||
.Fa *recvd_len .
|
||||
.Sh RETURN VALUES
|
||||
.Fn lwres_context_create
|
||||
returns
|
||||
.Er LWRES_R_NOMEMORY
|
||||
if memory for the
|
||||
.Dv "struct lwres_context"
|
||||
could not be allocated, otherwise
|
||||
.Er LWRES_R_SUCCESS
|
||||
is returned.
|
||||
.Pp
|
||||
Successful calls to the memory allocator
|
||||
.Fn lwres_context_allocmem
|
||||
return a pointer to the start of the allocated space.
|
||||
It returns NULL if memory could not be allocated.
|
||||
.Pp
|
||||
.Er LWRES_R_SUCCESS
|
||||
is returned when
|
||||
.Fn lwres_context_sendrecv
|
||||
completes successfully.
|
||||
.Er LWRES_R_IOERROR
|
||||
is returned if an I/O error occurs and
|
||||
.Er LWRES_R_TIMEOUT
|
||||
is returned if the
|
||||
.Xr recvfrom 2
|
||||
call times out.
|
||||
.Sh SEE ALSO
|
||||
.Xr lwres_conf_init 3 ,
|
||||
.Xr malloc 3 ,
|
||||
.Xr free 3 ,
|
||||
.Xr close 2 ,
|
||||
.Xr memset 3 ,
|
||||
.Xr sendto 2 ,
|
||||
.Xr recvfrom 2 .
|
||||
.Sh BUGS
|
||||
The
|
||||
.Dv lwres_context_t
|
||||
structures and the functions which operate on them are not thread-safe.
|
19
doc/man/lwres/lwres_context_allocmem.3
Normal file
19
doc/man/lwres/lwres_context_allocmem.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_allocmem.3,v 1.1 2000/06/27 21:53:01 jim Exp $
|
||||
.\"
|
||||
.so lwres_context.3
|
19
doc/man/lwres/lwres_context_create.3
Normal file
19
doc/man/lwres/lwres_context_create.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_create.3,v 1.1 2000/06/27 21:53:01 jim Exp $
|
||||
.\"
|
||||
.so lwres_context.3
|
19
doc/man/lwres/lwres_context_destroy.3
Normal file
19
doc/man/lwres/lwres_context_destroy.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_destroy.3,v 1.1 2000/06/27 21:53:01 jim Exp $
|
||||
.\"
|
||||
.so lwres_context.3
|
19
doc/man/lwres/lwres_context_freemem.3
Normal file
19
doc/man/lwres/lwres_context_freemem.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_freemem.3,v 1.1 2000/06/27 21:53:01 jim Exp $
|
||||
.\"
|
||||
.so lwres_context.3
|
19
doc/man/lwres/lwres_context_initserial.3
Normal file
19
doc/man/lwres/lwres_context_initserial.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_initserial.3,v 1.1 2000/06/27 21:53:02 jim Exp $
|
||||
.\"
|
||||
.so lwres_context.3
|
19
doc/man/lwres/lwres_context_nextserial.3
Normal file
19
doc/man/lwres/lwres_context_nextserial.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_nextserial.3,v 1.1 2000/06/27 21:53:02 jim Exp $
|
||||
.\"
|
||||
.so lwres_context.3
|
19
doc/man/lwres/lwres_context_sendrecv.3
Normal file
19
doc/man/lwres/lwres_context_sendrecv.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_sendrecv.3,v 1.1 2000/06/27 21:53:02 jim Exp $
|
||||
.\"
|
||||
.so lwres_context.3
|
19
doc/man/lwres/lwres_endhostent.3
Normal file
19
doc/man/lwres/lwres_endhostent.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_endhostent.3,v 1.1 2000/06/27 21:53:02 jim Exp $
|
||||
.\"
|
||||
.so lwres_gethostent.3
|
19
doc/man/lwres/lwres_endhostent_r.3
Normal file
19
doc/man/lwres/lwres_endhostent_r.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_endhostent_r.3,v 1.1 2000/06/27 21:53:02 jim Exp $
|
||||
.\"
|
||||
.so lwres_gethostent.3
|
19
doc/man/lwres/lwres_freeaddrinfo.3
Normal file
19
doc/man/lwres/lwres_freeaddrinfo.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_freeaddrinfo.3,v 1.1 2000/06/27 21:53:03 jim Exp $
|
||||
.\"
|
||||
.so lwres_getaddrinfo.3
|
19
doc/man/lwres/lwres_freehostent.3
Normal file
19
doc/man/lwres/lwres_freehostent.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_freehostent.3,v 1.1 2000/06/27 21:53:03 jim Exp $
|
||||
.\"
|
||||
.so lwres_getipnode.3
|
208
doc/man/lwres/lwres_gabn.3
Normal file
208
doc/man/lwres/lwres_gabn.3
Normal file
@@ -0,0 +1,208 @@
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:03 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_GABN 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_gabnrequest_render ,
|
||||
.Nm lwres_gabnresponse_render ,
|
||||
.Nm lwres_gabnrequest_parse ,
|
||||
.Nm lwres_gabnresponse_parse ,
|
||||
.Nm lwres_gabnresponse_free ,
|
||||
.Nm lwres_gabnrequest_free
|
||||
.Nd lightweight resolver getaddrbyname functions
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwres.h>
|
||||
.Fd
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_gabnrequest_render
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_gabnrequest_t *req"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_gabnresponse_render
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_gabnresponse_t *req"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_gabnrequest_parse
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fa "lwres_gabnrequest_t **structp"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_gabnresponse_parse
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fa "lwres_gabnresponse_t **structp"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_gabnresponse_free
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_gabnresponse_t **structp"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_gabnrequest_free
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_gabnrequest_t **structp"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
These functions implement the lightweight resolver's getaddrbyname opcode
|
||||
.Dv LWRES_OPCODE_GETADDRSBYNAME .
|
||||
They provide a forward lookup mechanism, mapping a hostname to its
|
||||
address or addresses.
|
||||
.Pp
|
||||
There are four main functions for the getaddrbyname opcode.
|
||||
One render function converts a getaddrbyname request structure -
|
||||
.Dv 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 -
|
||||
.Dv 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.
|
||||
.Pp
|
||||
These structures are defined in
|
||||
.Pa lwres/lwres.h .
|
||||
They are shown below.
|
||||
.Bd -literal -offset indent
|
||||
#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;
|
||||
.Ed
|
||||
.Pp
|
||||
.Fn lwres_gabnrequest_render
|
||||
uses resolver context
|
||||
.Fa ctx
|
||||
to convert getaddrbyname request structure
|
||||
.Fa req
|
||||
to canonical format.
|
||||
The packet header structure
|
||||
.Fa pkt
|
||||
is initialised and transferred to
|
||||
buffer
|
||||
.Fa b .
|
||||
The contents of
|
||||
.Fa *req
|
||||
are then appended to the buffer in canonical format.
|
||||
.Fn lwres_gabnresponse_render
|
||||
performs the same task, except it converts a getaddrbyname response structure
|
||||
.Dv lwres_gabnresponse_t
|
||||
to the lightweight resolver's canonical format.
|
||||
.Pp
|
||||
.Fn lwres_gabnrequest_parse
|
||||
uses context
|
||||
.Fa ctx
|
||||
to convert the contents of packet
|
||||
.Fa pkt
|
||||
to a
|
||||
.Dv lwres_gabnrequest_t
|
||||
structure.
|
||||
Buffer
|
||||
.Fa b
|
||||
provides space to be used for storing this structure.
|
||||
When the function succeeds, the resulting
|
||||
.Dv lwres_gabnrequest_t
|
||||
is made available through
|
||||
.Fa *structp .
|
||||
.Fn lwres_gabnresponse_parse
|
||||
offers the same semantics as
|
||||
.Fn lwres_gabnrequest_parse
|
||||
except it yields a
|
||||
.Dv lwres_gabnresponse_t
|
||||
structure.
|
||||
.Pp
|
||||
.Fn lwres_gabnresponse_free
|
||||
and
|
||||
.Fn lwres_gabnrequest_free
|
||||
release the memory in resolver context
|
||||
.Fa ctx
|
||||
that was allocated to the
|
||||
.Dv lwres_gabnresponse_t
|
||||
or
|
||||
.Dv lwres_gabnrequest_t
|
||||
structures referenced via
|
||||
.Fa structp .
|
||||
Any memory associated with ancillary buffers and strings for those
|
||||
structures is also discarded.
|
||||
.Sh RETURN VALUES
|
||||
The getaddrbyname opcode functions
|
||||
.Fn lwres_gabnrequest_render ,
|
||||
.Fn lwres_gabnresponse_render
|
||||
.Fn lwres_gabnrequest_parse
|
||||
and
|
||||
.Fn lwres_gabnresponse_parse
|
||||
all return
|
||||
.Er LWRES_R_SUCCESS
|
||||
on success.
|
||||
They return
|
||||
.Er LWRES_R_NOMEMORY
|
||||
if memory allocation fails.
|
||||
.Er LWRES_R_UNEXPECTEDEND
|
||||
is returned if the available space in the buffer
|
||||
.Fa b
|
||||
is too small to accommodate the packet header or the
|
||||
.Dv lwres_gabnrequest_t
|
||||
and
|
||||
.Dv lwres_gabnresponse_t
|
||||
structures.
|
||||
.Fn lwres_gabnrequest_parse
|
||||
and
|
||||
.Fn lwres_gabnresponse_parse
|
||||
will return
|
||||
.Er LWRES_R_UNEXPECTEDEND
|
||||
if the buffer is not empty after decoding the received packet.
|
||||
These functions will return
|
||||
.Er LWRES_R_FAILURE
|
||||
if
|
||||
.Li pktflags
|
||||
in the packet header structure
|
||||
.Dv lwres_lwpacket_t
|
||||
indicate that the packet is not a response to an earlier query.
|
||||
.Sh SEE ALSO
|
||||
.Xr lwres_packet 3
|
19
doc/man/lwres/lwres_gabnrequest_free.3
Normal file
19
doc/man/lwres/lwres_gabnrequest_free.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gabnrequest_free.3,v 1.1 2000/06/27 21:53:03 jim Exp $
|
||||
.\"
|
||||
.so lwres_gabn.3
|
19
doc/man/lwres/lwres_gabnrequest_parse.3
Normal file
19
doc/man/lwres/lwres_gabnrequest_parse.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gabnrequest_parse.3,v 1.1 2000/06/27 21:53:03 jim Exp $
|
||||
.\"
|
||||
.so lwres_gabn.3
|
19
doc/man/lwres/lwres_gabnrequest_render.3
Normal file
19
doc/man/lwres/lwres_gabnrequest_render.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gabnrequest_render.3,v 1.1 2000/06/27 21:53:03 jim Exp $
|
||||
.\"
|
||||
.so lwres_gabn.3
|
19
doc/man/lwres/lwres_gabnresponse_free.3
Normal file
19
doc/man/lwres/lwres_gabnresponse_free.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gabnresponse_free.3,v 1.1 2000/06/27 21:53:03 jim Exp $
|
||||
.\"
|
||||
.so lwres_gabn.3
|
19
doc/man/lwres/lwres_gabnresponse_parse.3
Normal file
19
doc/man/lwres/lwres_gabnresponse_parse.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gabnresponse_parse.3,v 1.1 2000/06/27 21:53:03 jim Exp $
|
||||
.\"
|
||||
.so lwres_gabn.3
|
19
doc/man/lwres/lwres_gabnresponse_render.3
Normal file
19
doc/man/lwres/lwres_gabnresponse_render.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gabnresponse_render.3,v 1.1 2000/06/27 21:53:04 jim Exp $
|
||||
.\"
|
||||
.so lwres_gabn.3
|
85
doc/man/lwres/lwres_gai_strerror.3
Normal file
85
doc/man/lwres/lwres_gai_strerror.3
Normal file
@@ -0,0 +1,85 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:04 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_GAI_STRERROR 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm gai_strerror
|
||||
.Nd print suitable error string
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/netdb.h>
|
||||
.Fd
|
||||
.Ft char *
|
||||
.Fo gai_strerror
|
||||
.Fa "int ecode"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
.Fn gai_strerror
|
||||
returns a suitable error message for the error code
|
||||
.Fa ecode .
|
||||
The message \*qinvalid error code\*q is returned if
|
||||
.Fa ecode
|
||||
is out of range.
|
||||
The following error codes and their meaning are defined in
|
||||
.Aq Pa include/lwres/netdb.h .
|
||||
They can be returned by
|
||||
.Fn getaddrinfo .
|
||||
.Bl -tag -width EAI_ADDRFAMILY -offset indent -compact
|
||||
.It Dv EAI_ADDRFAMILY
|
||||
address family for hostname not supported
|
||||
.It Dv EAI_AGAIN
|
||||
temporary failure in name resolution
|
||||
.It Dv EAI_BADFLAGS
|
||||
invalid value for
|
||||
.Li ai_flags
|
||||
.It Dv EAI_FAIL
|
||||
non-recoverable failure in name resolution
|
||||
.It Dv EAI_FAMILY
|
||||
.Li ai_family
|
||||
not supported
|
||||
.It Dv EAI_MEMORY
|
||||
memory allocation failure
|
||||
.It Dv EAI_NODATA
|
||||
no address associated with hostname
|
||||
.It Dv EAI_NONAME
|
||||
hostname or servname not provided, or not known
|
||||
.It Dv EAI_SERVICE
|
||||
servname not supported for
|
||||
.Li ai_socktype
|
||||
.It Dv EAI_SOCKTYPE
|
||||
.Li ai_socktype
|
||||
not supported
|
||||
.It Dv EAI_SYSTEM
|
||||
system error returned in errno
|
||||
.El
|
||||
.Pp
|
||||
.Li ai_flags ,
|
||||
.Li ai_family
|
||||
and
|
||||
.Li ai_socktype
|
||||
are elements of the
|
||||
.Dv "struct addrinfo" used by
|
||||
.Fn lwres_getaddrinfo .
|
||||
.Sh SEE ALSO
|
||||
.Xr errno 2 ,
|
||||
.Xr perror 3 ,
|
||||
.Xr lwres_getaddrinfo 3 ,
|
||||
.Xr getaddrinfo 3 ,
|
||||
.Xr RFC2133 .
|
261
doc/man/lwres/lwres_getaddrinfo.3
Normal file
261
doc/man/lwres/lwres_getaddrinfo.3
Normal file
@@ -0,0 +1,261 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:04 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_GETADDRINFO 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_getaddrinfo ,
|
||||
.Nm lwres_freeaddrinfo
|
||||
.Nd socket address structure to host and service name
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwres.h>
|
||||
.Fd
|
||||
.Ft int
|
||||
.Fo lwres_getaddrinfo
|
||||
.Fa "const char *hostname"
|
||||
.Fa "const char *servname"
|
||||
.Fa "const struct addrinfo *hints"
|
||||
.Fa "struct addrinfo **res"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_freeaddrinfo
|
||||
.Fa "struct addrinfo *ai"
|
||||
.Fc
|
||||
.Pp
|
||||
If the operating system does not provide a
|
||||
.Dv "struct addrinfo" ,
|
||||
the following structure is used
|
||||
.Bd -literal -offset indent
|
||||
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 */
|
||||
};
|
||||
.Ed
|
||||
.Sh DESCRIPTION
|
||||
.Pp
|
||||
.Fn lwres_getaddrinfo
|
||||
is used to get a list of IP addresses and port numbers for host
|
||||
.Fa hostname
|
||||
and
|
||||
.Fa servname .
|
||||
The function is the lightweight resolver's implementation of
|
||||
.Fn getaddrinfo
|
||||
as defined in RFC2133.
|
||||
.Fa hostname
|
||||
and
|
||||
.Fa servname
|
||||
arguments are pointers to null-terminated
|
||||
strings or
|
||||
.Dv NULL .
|
||||
.Fa hostname
|
||||
either a host name or a numeric host address string: a dotted decimal
|
||||
IPv4 address or an IPv6 hex address.
|
||||
.Fa servname
|
||||
is either a decimal port number or a service name as listed in
|
||||
.Pa /etc/services .
|
||||
.Pp
|
||||
.Fa hints
|
||||
is an optional pointer to a
|
||||
.Dv "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
|
||||
.Fa *hints :
|
||||
.Bl -tag -width ai_socktyp -offset indent -compact
|
||||
.It Li ai_family
|
||||
the protocol family that should be used.
|
||||
When
|
||||
.Li ai_family
|
||||
is set to
|
||||
.Dv PF_UNSPEC ,
|
||||
it means the caller will accept any protocol family supported by the
|
||||
operating system.
|
||||
.It Dv ai_socktype
|
||||
denotes the type of socket -
|
||||
.Dv SOCK_STREAM ,
|
||||
.Dv SOCK_DGRAM
|
||||
or
|
||||
.Dv SOCK_RAW
|
||||
- that is wanted.
|
||||
When
|
||||
.Li ai_socktype
|
||||
is zero the caller will accept any socket type.
|
||||
.It Li ai_protocol
|
||||
indicates which transport protocol is wanted: UDP or TCP.
|
||||
If
|
||||
.Li ai_protocol
|
||||
is zero the caller will accept any protocol.
|
||||
.It Li ai_flags
|
||||
sets some flag bits.
|
||||
If the
|
||||
.Dv AI_CANONNAME
|
||||
bit is set, a successful call to
|
||||
.Fn lwres_getaddrinfo
|
||||
will return a a null-terminated string containing the canonical name
|
||||
of the specified hostname in
|
||||
.Li ai_canonname
|
||||
of the first
|
||||
.Dv addrinfo
|
||||
structure returned.
|
||||
Setting the
|
||||
.Dv AI_PASSIVE
|
||||
bit indicates that the returned socket address structure is intended
|
||||
for used in a call to
|
||||
.Xr bind 2 .
|
||||
In this case, if the hostname argument is a
|
||||
.Dv NULL
|
||||
pointer, then the IP address portion of the socket
|
||||
address structure will be set to
|
||||
.Dv INADDR_ANY
|
||||
for an IPv4 address or
|
||||
.Dv IN6ADDR_ANY_INIT
|
||||
for an IPv6 address.
|
||||
.Pp
|
||||
When
|
||||
.Li ai_flags
|
||||
does not set the
|
||||
.Dv AI_PASSIVE
|
||||
bit, the returned socket address structure will be ready
|
||||
for use in a call to
|
||||
.Xr connect 2
|
||||
for a connection-oriented protocol or
|
||||
.Xr connect 2 ,
|
||||
.Xr sendto 2 ,
|
||||
or
|
||||
.Xr 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
|
||||
.Fa hostname
|
||||
is a
|
||||
.Dv NULL
|
||||
pointer and
|
||||
.Dv AI_PASSIVE
|
||||
is not set in
|
||||
.Li ai_flags .
|
||||
.Pp
|
||||
If
|
||||
.Li ai_flags
|
||||
is set to
|
||||
.Dv AI_NUMERICHOST
|
||||
it indicates that
|
||||
the
|
||||
.Dv non-NuLL
|
||||
.Fa hostname
|
||||
should be treated as a numeric string defining an IPv4 or IPv6 address.
|
||||
This will prevent a numeric IPv4 address from being considered as a domain
|
||||
name when
|
||||
.Fn lwres_getaddrinfo
|
||||
is looking for IPv6 addresses or vice versa.
|
||||
.El
|
||||
.Pp
|
||||
All other elements of the
|
||||
.Dv "struct addrinfo"
|
||||
passed via
|
||||
.Fa arg
|
||||
must be zero.
|
||||
.Pp
|
||||
If
|
||||
.Fa arg
|
||||
is not supplied, a
|
||||
.Dv NULL
|
||||
pointer should be given for this argument.
|
||||
It will be treated as if the caller provided an
|
||||
.Dv "struct addrinfo"
|
||||
structure initialized to zero with
|
||||
.Li ai_family set to
|
||||
.Li PF_UNSPEC .
|
||||
.Pp
|
||||
After a successful call to
|
||||
.Fn lwres_getaddrinfo ,
|
||||
.Fa *res
|
||||
is a pointer to a linked list of one or more
|
||||
.Dv addrinfo
|
||||
structures.
|
||||
Each
|
||||
.Dv "struct addrinfo" in this list cn be processed by following
|
||||
the
|
||||
.Li ai_next
|
||||
pointer, until a
|
||||
.Dv NULL
|
||||
pointer is encountered.
|
||||
The three members
|
||||
.Li ai_family ,
|
||||
ai_socktype,
|
||||
and
|
||||
.Li ai_protocol
|
||||
in each
|
||||
returned
|
||||
.Dv addrinfo
|
||||
structure contain the corresponding arguments for a call to
|
||||
.Xr socket 2 .
|
||||
For each
|
||||
.Dv addrinfo
|
||||
structure in the list, the
|
||||
.Li ai_addr
|
||||
member points to a filled-in socket address structure of length
|
||||
.Li ai_addrlen .
|
||||
.Pp
|
||||
All of the information returned by
|
||||
.Fn lwres_getaddrinfo
|
||||
is dynamically allocated: the addrinfo structures, and the socket
|
||||
address structures and canonical host name strings pointed to by the
|
||||
.Li addrinfo structures.
|
||||
Memory allocated for the dynamically allocated structures created by
|
||||
a successful call to
|
||||
.Fn lwres_getaddrinfo
|
||||
is released by
|
||||
.Fn lwres_freeaddrinfo .
|
||||
.Fa ai
|
||||
is a pointer to a
|
||||
.Dv "struct addrinfo" created by a call to
|
||||
.Fn lwres_getaddrinfo .
|
||||
.Sh RETURN VALUES
|
||||
.Fn lwres_getaddrinfo
|
||||
returns zero on success or one of the error codes listed in
|
||||
.Xr gai_strerror 3
|
||||
if an error occurs.
|
||||
If both
|
||||
.Fa hostname
|
||||
and
|
||||
.Fa servname
|
||||
are
|
||||
.Dv NULL
|
||||
.Fn lwres_getaddrinfo
|
||||
returns
|
||||
.Er EAI_NONAME .
|
||||
.Sh SEE ALSO
|
||||
.Xr lwres_getaddrinfo 3 ,
|
||||
.Xr lwres_freeaddrinfo 3 ,
|
||||
.Xr lwres_gai_strerror 3 ,
|
||||
.Xr RFC2133 ,
|
||||
.Xr getservbyname 3 ,
|
||||
.Xr bind 2
|
||||
.Xr connect 2
|
||||
.Xr connect 2 ,
|
||||
.Xr sendto 2 ,
|
||||
.Xr sendmsg 2 ,
|
||||
.Xr socket 2 .
|
19
doc/man/lwres/lwres_getaddrsbyname.3
Normal file
19
doc/man/lwres/lwres_getaddrsbyname.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_getaddrsbyname.3,v 1.1 2000/06/27 21:53:04 jim Exp $
|
||||
.\"
|
||||
.so lwres_resutil.3
|
19
doc/man/lwres/lwres_gethostbyaddr.3
Normal file
19
doc/man/lwres/lwres_gethostbyaddr.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gethostbyaddr.3,v 1.1 2000/06/27 21:53:04 jim Exp $
|
||||
.\"
|
||||
.so lwres_gethostent.3
|
19
doc/man/lwres/lwres_gethostbyaddr_r.3
Normal file
19
doc/man/lwres/lwres_gethostbyaddr_r.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gethostbyaddr_r.3,v 1.1 2000/06/27 21:53:04 jim Exp $
|
||||
.\"
|
||||
.so lwres_gethostent.3
|
19
doc/man/lwres/lwres_gethostbyname.3
Normal file
19
doc/man/lwres/lwres_gethostbyname.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gethostbyname.3,v 1.1 2000/06/27 21:53:04 jim Exp $
|
||||
.\"
|
||||
.so lwres_gethostent.3
|
19
doc/man/lwres/lwres_gethostbyname2.3
Normal file
19
doc/man/lwres/lwres_gethostbyname2.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gethostbyname2.3,v 1.1 2000/06/27 21:53:05 jim Exp $
|
||||
.\"
|
||||
.so lwres_gethostent.3
|
19
doc/man/lwres/lwres_gethostbyname_r.3
Normal file
19
doc/man/lwres/lwres_gethostbyname_r.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gethostbyname_r.3,v 1.1 2000/06/27 21:53:05 jim Exp $
|
||||
.\"
|
||||
.so lwres_gethostent.3
|
406
doc/man/lwres/lwres_gethostent.3
Normal file
406
doc/man/lwres/lwres_gethostent.3
Normal file
@@ -0,0 +1,406 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:05 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_GETHOSTENT 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_gethostbyname ,
|
||||
.Nm lwres_gethostbyname2 ,
|
||||
.Nm lwres_gethostbyaddr ,
|
||||
.Nm lwres_gethostent ,
|
||||
.Nm lwres_sethostent ,
|
||||
.Nm lwres_endhostent ,
|
||||
.Nm lwres_gethostbyname_r ,
|
||||
.Nm lwres_gethostbyaddr_r ,
|
||||
.Nm lwres_gethostent_r ,
|
||||
.Nm lwres_sethostent_r ,
|
||||
.Nm lwres_endhostent_r
|
||||
.Nd lightweight resolver get network host entry
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/netdb.h>
|
||||
.Fd
|
||||
.Ft struct hostent *
|
||||
.Fo lwres_gethostbyname
|
||||
.Fa "const char *name"
|
||||
.Fc
|
||||
.Ft struct hostent *
|
||||
.Fo lwres_gethostbyname2
|
||||
.Fa "const char *name"
|
||||
.Fa "int af"
|
||||
.Fc
|
||||
.Ft struct hostent *
|
||||
.Fo lwres_gethostbyaddr
|
||||
.Fa "const char *addr"
|
||||
.Fa "int len"
|
||||
.Fa "int type"
|
||||
.Fc
|
||||
.Ft struct hostent *
|
||||
.Fo lwres_gethostent
|
||||
.Fa "void"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_sethostent
|
||||
.Fa "int stayopen"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_endhostent
|
||||
.Fa "void"
|
||||
.Fc
|
||||
.Ft struct hostent *
|
||||
.Fo lwres_gethostbyname_r
|
||||
.Fa "const char *name"
|
||||
.Fa "struct hostent *resbuf"
|
||||
.Fa "char *buf"
|
||||
.Fa "int buflen"
|
||||
.Fa "int *error"
|
||||
.Fc
|
||||
.Ft struct hostent *
|
||||
.Fo lwres_gethostbyaddr_r
|
||||
.Fa "const char *addr"
|
||||
.Fa "int len"
|
||||
.Fa "int type"
|
||||
.Fa "struct hostent *resbuf"
|
||||
.Fa "char *buf"
|
||||
.Fa "int buflen"
|
||||
.Fa "int *error"
|
||||
.Fc
|
||||
.Ft struct hostent *
|
||||
.Fo lwres_gethostent_r
|
||||
.Fa "struct hostent *resbuf"
|
||||
.Fa "char *buf"
|
||||
.Fa "int buflen"
|
||||
.Fa "int *error"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_sethostent_r
|
||||
.Fa "int stayopen"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_endhostent_r
|
||||
.Fa "void"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
These functions define the interface to the lightweight resolver
|
||||
daemon \fPNOT IF IT IS GOING AWAY\fP
|
||||
for looking up hostnames and addresses. They are similar to the
|
||||
standard
|
||||
.Xr gethostent 3
|
||||
functions provided by as part of the standard system software.
|
||||
They use a
|
||||
.Dv "struct hostent"
|
||||
which is usually defined in
|
||||
.Pa namedb.h .
|
||||
.Bd -literal
|
||||
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 */
|
||||
.Ed
|
||||
.Pp
|
||||
The members of this structure are:
|
||||
.Bl -tag -width h_addr_list
|
||||
.It Li h_name
|
||||
The official (canonical) name of the host.
|
||||
.It Li h_aliases
|
||||
A NULL-terminated array of alternate names (nicknames) for the host.
|
||||
.It Li h_addrtype
|
||||
The type of address being returned -
|
||||
.Dv PF_INET
|
||||
or
|
||||
.Dv PF_INET6 .
|
||||
.It Li h_length
|
||||
The length of the address in bytes.
|
||||
.It Li h_addr_list
|
||||
A
|
||||
.Dv NULL
|
||||
terminated array of network addresses for the host.
|
||||
Host addresses are returned in network byte order.
|
||||
.El
|
||||
.Pp
|
||||
For backward compatibility with very old software,
|
||||
.Li h_addr
|
||||
is the first address in
|
||||
.Li h_addr_list.
|
||||
.Pp
|
||||
.Fn lwres_gethostent ,
|
||||
.Fn lwres_sethostent ,
|
||||
.Fn lwres_endhostent ,
|
||||
.Fn lwres_gethostent_r ,
|
||||
.Fn lwres_sethostent_r
|
||||
and
|
||||
.Fn lwres_endhostent_r
|
||||
are empty stub functions which do nothing.
|
||||
They are provided as placeholders so that calls to the system's
|
||||
.Xr gethostent 3
|
||||
functions can simply be #defined to their
|
||||
.Xr lwres_res_gethost
|
||||
equivalents.
|
||||
See
|
||||
.Pa lwres/netdb.h .
|
||||
.Pp
|
||||
.Fn lwres_gethostbyname
|
||||
and
|
||||
.Fn lwres_gethostbyname2
|
||||
lookup the hostname
|
||||
.Fa name .
|
||||
.Fn lwres_gethostbyname
|
||||
always looks for an IPv4 address while
|
||||
.Fn lwres_gethostbyname2
|
||||
looks for an address of protocol family
|
||||
.Fa af :
|
||||
either
|
||||
.Dv PF_INET
|
||||
or
|
||||
.Dv PF_INET6
|
||||
- IPv4 or IPV6 addresses respectively.
|
||||
Both functions call
|
||||
.Fn lwres_getipnodebyname
|
||||
to look up the hostname.
|
||||
Successful calls of the functions return a
|
||||
.Dv "struct hostent" for
|
||||
the name that was looked up.
|
||||
.Dv NULL
|
||||
is returned if the lookups by
|
||||
.Fn lwres_gethostbyname
|
||||
or
|
||||
.Fn lwres_gethostbyname2
|
||||
fail.
|
||||
.Pp
|
||||
Reverse lookups of addresses are performed by
|
||||
.Fn lwres_gethostbyaddr .
|
||||
.Fa addr
|
||||
is an address of length
|
||||
.Fa len
|
||||
bytes and protocol family
|
||||
.Fa type -
|
||||
.Dv PF_INET
|
||||
or
|
||||
.Dv PF_INET6 .
|
||||
It calls
|
||||
.Fn lwres_getipnodebyaddr
|
||||
to do the reverse lookup.
|
||||
.Pp
|
||||
.Fn lwres_gethostbyname_r
|
||||
is a thread-safe function for forward lookups.
|
||||
It also calls
|
||||
.Fn lwres_getipnodebyname
|
||||
to lookup the hostname
|
||||
.Fa name .
|
||||
If
|
||||
.Fn lwres_getipnodebyname
|
||||
encounters an error, the error code is returned in
|
||||
.Fa *error .
|
||||
.Fa resbuf
|
||||
is a pointer to a
|
||||
.Dv "struct hostent"
|
||||
which is initialised by a successful call to
|
||||
.Fn lwres_gethostbyname_r .
|
||||
.Fa buf
|
||||
is a buffer of length
|
||||
.Fa len
|
||||
bytes which is used to store the
|
||||
.Li h_name ,
|
||||
.Li h_aliases ,
|
||||
and
|
||||
.Li h_addr_list
|
||||
elements of the
|
||||
.Dv "struct hostent"
|
||||
returned in
|
||||
.Fa resbuf .
|
||||
Successful calls to
|
||||
.Fn lwres_gethostbyname_r
|
||||
return
|
||||
.Fa resbuf ,
|
||||
which is a pointer to the
|
||||
.Fn "struct hostent"
|
||||
it created.
|
||||
.Pp
|
||||
.Fn lwres_gethostbyaddr_r
|
||||
is a thread-safe function that performs a reverse lookup of address
|
||||
.Fa addr
|
||||
which is
|
||||
.Fa len
|
||||
bytes long
|
||||
and is of protocol family
|
||||
.Fa type -
|
||||
.Dv PF_INET
|
||||
or
|
||||
.Dv PF_INET6 .
|
||||
.Fn lwres_gethostbyaddr_r
|
||||
calls
|
||||
.Fn lwres_getipnodebyaddr
|
||||
to do the work.
|
||||
If this function encounters an error, the error code is returned in
|
||||
.Fa *error .
|
||||
Like
|
||||
The other function parameters are identical to those in
|
||||
.Fn lwres_gethostbyname_r .
|
||||
.Fa resbuf
|
||||
is a pointer to a
|
||||
.Dv "struct hostent"
|
||||
which is initialised by a successful call to
|
||||
.Fn lwres_gethostbyaddr_r .
|
||||
.Fa buf
|
||||
is a buffer of length
|
||||
.Fa len
|
||||
bytes which is used to store the
|
||||
.Li h_name ,
|
||||
.Li h_aliases ,
|
||||
and
|
||||
.Li h_addr_list
|
||||
elements of the
|
||||
.Dv "struct hostent"
|
||||
returned in
|
||||
.Fa resbuf .
|
||||
Successful calls to
|
||||
.Fn lwres_gethostbyaddr_r
|
||||
return
|
||||
.Fa resbuf ,
|
||||
which is a pointer to the
|
||||
.Fn "struct hostent"
|
||||
it created.
|
||||
.Sh RETURN VALUES
|
||||
.Pp
|
||||
The functions
|
||||
.Fn lwres_gethostbyname ,
|
||||
.Fn lwres_gethostbyname2 ,
|
||||
.Fn lwres_gethostbyaddr ,
|
||||
and
|
||||
.Fn lwres_gethostent
|
||||
are not thread-safe because they free any memory that had been allocated
|
||||
in a previous call to those functions before they perform a lookup.
|
||||
They also set the global variable
|
||||
.Dv lwres_h_errno
|
||||
when they return.
|
||||
The values of this variable are defined in
|
||||
.Pa lwres/netdb.h .
|
||||
The values and their meaning are defined as follows:
|
||||
.Bl -tag -width HOST_NOT_FOUND
|
||||
.It Li NETDB_INTERNAL
|
||||
Internal Error - see
|
||||
.Li errno
|
||||
.It Li NETDB_SUCCESS
|
||||
no problem
|
||||
.It Li HOST_NOT_FOUND
|
||||
Authoritative Answer Host not found
|
||||
.It Li TRY_AGAIN
|
||||
Non-Authoritive Answer Host not found, or
|
||||
.Dv SERVERFAIL
|
||||
.It Li NO_RECOVERY
|
||||
Non recoverable errors,
|
||||
.Dv FORMERR ,
|
||||
.Dv REFUSED ,
|
||||
or
|
||||
.Dv NOTIMP
|
||||
.It Li NO_DATA
|
||||
Valid name, but no data record of requested type
|
||||
.It Li NO_ADDRESS
|
||||
no address, so look for MX record
|
||||
.El
|
||||
.Xr lwres_hstrerror 3
|
||||
translates these error codes to suitable error messages.
|
||||
.Pp
|
||||
.Fn lwres_gethostent
|
||||
and
|
||||
.Fn lwres_gethostent_r
|
||||
always return
|
||||
.Dv NULL .
|
||||
.Pp
|
||||
Successful calls to
|
||||
.Fn lwres_gethostbyname_r
|
||||
and
|
||||
.Fn lwres_gethostbyaddr_r
|
||||
return
|
||||
.Fa resbuf ,
|
||||
a pointer to the
|
||||
.Dv "struct hostent"
|
||||
that was initialised by these functions.
|
||||
They return
|
||||
.Dv NULL
|
||||
if the lookups fail
|
||||
or if
|
||||
.Fa buf
|
||||
was too small to hold the list of addresses and names referenced by
|
||||
the
|
||||
.Li h_name ,
|
||||
.Li h_aliases ,
|
||||
and
|
||||
.Li h_addr_list
|
||||
elements of the
|
||||
.Dv "struct hostent" .
|
||||
If
|
||||
.Fa buf
|
||||
was too small, both
|
||||
.Fn lwres_gethostbyname_r
|
||||
and
|
||||
.Fn lwres_gethostbyaddr_r
|
||||
set the global variable
|
||||
.DV errno
|
||||
to
|
||||
.Er ERANGE .
|
||||
.Sh SEE ALSO
|
||||
.Xr gethostent 3 ,
|
||||
.Xr lwres_getipnode 3 ,
|
||||
.Xr lwres_hstrerror 3
|
||||
.Sh BUGS
|
||||
Although
|
||||
.Fn lwres_gethostbyname ,
|
||||
.Fn lwres_gethostbyname2 ,
|
||||
.Fn lwres_gethostbyaddr
|
||||
and
|
||||
.Fn lwres_endhostent
|
||||
call thread-safe functions to perform lookups, these 3 functions
|
||||
are not thread-safe because they set the global variable
|
||||
.Dv lwres_h_errno
|
||||
which could
|
||||
overwritten if two or more threads called these functions
|
||||
simultaneously.
|
||||
They also release any memory that had been allocated in a previous call
|
||||
to these functions.
|
||||
This emulates the semantics of their equivalent functions in the
|
||||
system's
|
||||
.Xr gethostent 3
|
||||
functions which use a static buffer that gets overwritten in subsequent
|
||||
calls to those routines.
|
||||
.Pp
|
||||
Thread-safe versions for name and address lookup are provided by
|
||||
.Fn lwres_gethostbyname_r ,
|
||||
and
|
||||
.Fn lwres_gethostbyaddr_r
|
||||
respectively.
|
||||
.Pp
|
||||
Although the above functions can be considered as drop-in replacements
|
||||
for their equivalents in the system software, there are limitations.
|
||||
The functions that are documented here only use the BIND9 lighweight
|
||||
resolver daemon
|
||||
That implies that they only use the DNS for host and address lookups.
|
||||
Therefore these functions do not perform lookups in
|
||||
.Pa /etc/hosts
|
||||
or in
|
||||
.Dv NIS/YP
|
||||
or
|
||||
.Dv NIS+
|
||||
maps which could be supported by the operating system's
|
||||
.Xr gethostent 3
|
||||
functions.
|
19
doc/man/lwres/lwres_gethostent_r.3
Normal file
19
doc/man/lwres/lwres_gethostent_r.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_r.3,v 1.1 2000/06/27 21:53:05 jim Exp $
|
||||
.\"
|
||||
.so lwres_gethostent.3
|
231
doc/man/lwres/lwres_getipnode.3
Normal file
231
doc/man/lwres/lwres_getipnode.3
Normal file
@@ -0,0 +1,231 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:05 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_GETIPNODE 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_getipnodebyname ,
|
||||
.Nm lwres_getipnodebyaddr ,
|
||||
.Nm lwres_freehostent
|
||||
.Nd lookup functions for the lightweight resolver
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwres.h>
|
||||
.Fd
|
||||
.Ft struct hostent *
|
||||
.Fo lwres_getipnodebyname
|
||||
.Fa "const char *name"
|
||||
.Fa "int af"
|
||||
.Fa "int flags"
|
||||
.Fa "int *error_num"
|
||||
.Fc
|
||||
.Ft struct hostent *
|
||||
.Fo lwres_getipnodebyaddr
|
||||
.Fa "const void *src"
|
||||
.Fa "size_t len"
|
||||
.Fa "int af"
|
||||
.Fa "int *error_num"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_freehostent
|
||||
.Fa "struct hostent *he"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
These functions use a
|
||||
.Dv "struct hostent"
|
||||
which is usually defined in
|
||||
.Pa namedb.h .
|
||||
.Bd -literal
|
||||
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 */
|
||||
.Ed
|
||||
.Pp
|
||||
The members of this structure are:
|
||||
.Bl -tag -width h_addr_list
|
||||
.It Li h_name
|
||||
The official (canonical) name of the host.
|
||||
.It Li h_aliases
|
||||
A NULL-terminated array of alternate names (nicknames) for the host.
|
||||
.It Li h_addrtype
|
||||
The type of address being returned -
|
||||
.Dv PF_INET
|
||||
or
|
||||
.Dv PF_INET6 .
|
||||
.It Li h_length
|
||||
The length of the address in bytes.
|
||||
.It Li h_addr_list
|
||||
A
|
||||
.Dv NULL
|
||||
terminated array of network addresses for the host.
|
||||
Host addresses are returned in network byte order.
|
||||
.El
|
||||
.Pp
|
||||
For backward compatibility with very old software,
|
||||
.Li h_addr
|
||||
is the first address in
|
||||
.Li h_addr_list.
|
||||
.Pp
|
||||
.Fn lwres_getipnodebyname
|
||||
looks up the hostname
|
||||
.Fa name
|
||||
of protocol family
|
||||
.Fa af .
|
||||
The
|
||||
.Fa flags
|
||||
parameter sets bits that indicate how IPv6 and IPv4 addresses
|
||||
should presented.
|
||||
The value of those flags are:
|
||||
.Bl -tag -width AI_ADDRCONFIG
|
||||
.It Li AI_V4MAPPED
|
||||
return an IPv4 address mapped to an IPv6 address
|
||||
.It Li AI_ALL
|
||||
return all possible addresses
|
||||
.It Li AI_ADDRCONFIG
|
||||
only return an IPv6 or IPv4 address if here is an active network
|
||||
interface of that type.
|
||||
.It Li AI_DEFAULT
|
||||
this default sets the
|
||||
.Li AI_V4MAPPED
|
||||
and
|
||||
.Li AI_ADDRCONFIG
|
||||
flag bits.
|
||||
.El
|
||||
.Pp
|
||||
The value of
|
||||
.Dv AF_INET6
|
||||
is sometimes added to
|
||||
.Fa flags .
|
||||
When
|
||||
.Fa flags
|
||||
is set to
|
||||
.Li "AI_V4MAPPED + AF_INET6"
|
||||
.Fn lwres_getipnodebyname
|
||||
will look for an IPv6 address and if this is not found it will look
|
||||
for an IPv4 address and map it to an IPv6 address.
|
||||
When
|
||||
.Fa flags
|
||||
is
|
||||
.Li "AI_ALL + AI_V4MAPPED + AF_INET6" ,
|
||||
.Fn lwres_getipnodebyname
|
||||
returns mapped IPv4 addresses and IPv6 addresses.
|
||||
.Fn lwres_getipnodebyname
|
||||
calls
|
||||
.Fn lwres_context_create
|
||||
to create a resolver context for the lookup and
|
||||
then calls
|
||||
.Fn lwres_getaddrsbyname
|
||||
to lookup the name using that resolver context.
|
||||
.Pp
|
||||
.Fn lwres_getipnodebyaddr
|
||||
performs a thread-safe reverse lookup
|
||||
of address
|
||||
.Fa src
|
||||
which is
|
||||
.Fa len
|
||||
bytes long.
|
||||
.Fa af
|
||||
denotes the protocol family:
|
||||
.Dv PF_INET
|
||||
or
|
||||
.Dv PF_INET6 .
|
||||
.Fn lwres_getipnodebyaddr
|
||||
also sets up a resolver context by calling
|
||||
.Fn lwres_context_create.
|
||||
It then calls
|
||||
.Fn lwres_getnamebyaddr
|
||||
to make the query.
|
||||
.Pp
|
||||
Both
|
||||
.Fn lwres_getipnodebyname
|
||||
and
|
||||
.Fn lwres_getipnodebyaddr
|
||||
will free any memory that was allocated during intermediate stages of the
|
||||
lookup by calling
|
||||
.Fn lwres_gnbaresponse_free .
|
||||
Both functions call
|
||||
.Fn lwres_getipnodebyaddr
|
||||
immediately before they return so that the created resolver context
|
||||
gets discarded.
|
||||
.Pp
|
||||
.Fn lwres_freehostent
|
||||
releases all the memory associated with
|
||||
the
|
||||
.Dv "struct hostent"
|
||||
pointer
|
||||
.Fa he .
|
||||
Any memory allocated for the
|
||||
.Li h_name ,
|
||||
.Li h_addr_list
|
||||
and
|
||||
.Li h_aliases
|
||||
is freed, as is the memory for the
|
||||
.Dv hostent
|
||||
structure itself.
|
||||
.Sh RETURN VALUES
|
||||
If an error occurs,
|
||||
.Fn lwres_getipnodebyname
|
||||
and
|
||||
.Fn lwres_getipnodebyaddr
|
||||
set
|
||||
.Fa *error_num
|
||||
to an approriate error code and the function returns a
|
||||
.Dv NULL
|
||||
pointer.
|
||||
The error codes and their meanings are defined in
|
||||
.Pa lwres/netdb.h .
|
||||
.Bl -tag -width HOST_NOT_FOUND
|
||||
.It Li NETDB_INTERNAL
|
||||
Internal Error - see
|
||||
.Li errno
|
||||
.It Li NETDB_SUCCESS
|
||||
no problem
|
||||
.It Li HOST_NOT_FOUND
|
||||
Authoritative Answer Host not found
|
||||
.It Li TRY_AGAIN
|
||||
Non-Authoritive Answer Host not found, or
|
||||
.Dv SERVERFAIL
|
||||
.It Li NO_RECOVERY
|
||||
Non recoverable errors,
|
||||
.Dv FORMERR ,
|
||||
.Dv REFUSED ,
|
||||
or
|
||||
.Dv NOTIMP
|
||||
.It Li NO_DATA
|
||||
Valid name, but no data record of requested type
|
||||
.It Li NO_ADDRESS
|
||||
no address, so look for MX record
|
||||
.El
|
||||
.Pp
|
||||
.Xr lwres_hstrerror 3
|
||||
translates these error codes to suitable error messages.
|
||||
.Sh SEE ALSO
|
||||
.Xr lwres_res_getaddrsbyname 3 ,
|
||||
.Xr lwres_res_context_create 3 ,
|
||||
.Xr lwres_res_context_destroy 3 ,
|
||||
.Xr lwres_res_gnbaresponse_free 3 ,
|
||||
.Xr lwres_res_getaddrsbyaddr 3 ,
|
||||
.Xr free 3 ,
|
||||
.Xr lwres_hstrerror 3 .
|
||||
|
19
doc/man/lwres/lwres_getipnodebyaddr.3
Normal file
19
doc/man/lwres/lwres_getipnodebyaddr.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_getipnodebyaddr.3,v 1.1 2000/06/27 21:53:05 jim Exp $
|
||||
.\"
|
||||
.so lwres_getipnode.3
|
19
doc/man/lwres/lwres_getipnodebyname.3
Normal file
19
doc/man/lwres/lwres_getipnodebyname.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_getipnodebyname.3,v 1.1 2000/06/27 21:53:05 jim Exp $
|
||||
.\"
|
||||
.so lwres_getipnode.3
|
19
doc/man/lwres/lwres_getnamebyaddr.3
Normal file
19
doc/man/lwres/lwres_getnamebyaddr.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_getnamebyaddr.3,v 1.1 2000/06/27 21:53:05 jim Exp $
|
||||
.\"
|
||||
.so lwres_resutil.3
|
145
doc/man/lwres/lwres_getnameinfo.3
Normal file
145
doc/man/lwres/lwres_getnameinfo.3
Normal file
@@ -0,0 +1,145 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:06 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_GETNAMEINFO 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_getnameinfo
|
||||
.Nd lightweight resolver socket address structure to hostname and service name
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwres.h>
|
||||
.Fd
|
||||
.Ft int
|
||||
.Fo lwres_getnameinfo
|
||||
.Fa "const struct sockaddr *sa"
|
||||
.Fa "size_t salen"
|
||||
.Fa "char *host"
|
||||
.Fa "size_t hostlen"
|
||||
.Fa "char *serv"
|
||||
.Fa "size_t servlen"
|
||||
.Fa "int flags"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
.Pp
|
||||
This function is equivalent to the
|
||||
.Xr getnameinfo 3
|
||||
function defined in RFC2133.
|
||||
.Fn lwres_getnameinfo
|
||||
returns the hostname for the
|
||||
.Dv "struct sockaddr"
|
||||
.Fa sa
|
||||
which is
|
||||
.Fa salen
|
||||
bytes long.
|
||||
The hostname is of length
|
||||
.Fa hostlen
|
||||
and is returned via
|
||||
.Fa *host.
|
||||
The maximum length of the hostname is
|
||||
1025 bytes:
|
||||
.Li NI_MAXHOST .
|
||||
.Pp
|
||||
The name of the service associated with the port number in
|
||||
.Fa sa
|
||||
is returned in
|
||||
.Fa *serv.
|
||||
It is
|
||||
.Fa servlen
|
||||
bytes long.
|
||||
The maximum length of the service name is
|
||||
.Li NI_MAXSERV
|
||||
- 32 - bytes.
|
||||
.Pp
|
||||
The
|
||||
.Fa flags
|
||||
argument sets the following bits:
|
||||
.Bl -tag -width NI_NUMERICSERV
|
||||
.It Li 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.
|
||||
.It Li NI_NUMERICHOST
|
||||
the address in the
|
||||
.Dv sockaddr
|
||||
structure is presented as a dotted-decimal string for an IPv4
|
||||
address or an IPv6 hex address if the hostname is not found in the
|
||||
DNS.
|
||||
.It Li NI_NAMEREQ
|
||||
a name is required. If the hostname cannot be found in the DNS and
|
||||
this flag is set, an error -
|
||||
.Er ENI_NOHOSTNAME
|
||||
- is returned.
|
||||
.It Li NI_NUMERICSERV
|
||||
service name is returned as a digit string representing the port number.
|
||||
.It Li NI_DGRAM
|
||||
the service uses a datagram transport protocol
|
||||
.El
|
||||
.Pp
|
||||
When a numeric host address string is needed,
|
||||
.Fn lwres_getnameinfo
|
||||
calls
|
||||
.Fn lwres_net_ntop
|
||||
to generate an IPv6 hex address or a dotted decimal IPv4 address.
|
||||
If required,
|
||||
.Fn lwres_getnameinfo
|
||||
will create a resolver context by calling
|
||||
.Fn lwres_context_create
|
||||
and then using
|
||||
.Fn lwres_getnamebyaddr
|
||||
to perform the reverse lookup.
|
||||
Any memory allocated during that reverse lookup will be
|
||||
freed by calling
|
||||
.Fn lwres_gnbaresponse_free .
|
||||
.Fn lwres_context_destroy
|
||||
is called immediately before
|
||||
.Fn lwres_getnameinfo
|
||||
returns so that the created resolver context gets discarded.
|
||||
.Sh RETURN VALUES
|
||||
.Fn wres_getnameinfo
|
||||
returns 0 on success or a non-zero error code if an error occurs.
|
||||
The error codes are:
|
||||
.Bl -tag -width ENI_NOSERVNAME
|
||||
.It Li ENI_NOSOCKET
|
||||
there was no socket in
|
||||
.Fa sa
|
||||
\fBBUT ENI_NOSOCKET IS ZERO!!!!\fP
|
||||
.It Li ENI_NOSERVNAME
|
||||
no service name was found
|
||||
.It Li ENI_NOHOSTNAME
|
||||
no hostname was found
|
||||
.It Li ENI_MEMORY
|
||||
memory could not be allocated
|
||||
.It Li ENI_SYSTEM
|
||||
a system error occurred
|
||||
.It Li ENI_FAMILY
|
||||
an unsupported protocol family was requested
|
||||
.It Li ENI_SALEN
|
||||
.Fa salen
|
||||
is the wrong number of bytes for the address in
|
||||
.Fa sa .
|
||||
.Sh SEE ALSO
|
||||
.Xr getnameinfo 3 ,
|
||||
.Xr RFC2133 ,
|
||||
.Xr getservbyport 3 ,
|
||||
.Xr lwres_res_net_ntop 3 ,
|
||||
.Xr lwres_res_context_create 3,
|
||||
.Xr lwres_res_getnamebyaddr 3,
|
||||
.Xr lwres_res_gnbaresponse_free 3 ,
|
||||
.Xr lwres_res_context_destroy 3 ,
|
||||
.Xr lwres_res_net_ntop 3 .
|
201
doc/man/lwres/lwres_gnba.3
Normal file
201
doc/man/lwres/lwres_gnba.3
Normal file
@@ -0,0 +1,201 @@
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:06 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_GNBA 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_gnbarequest_render ,
|
||||
.Nm lwres_gnbaresponse_render ,
|
||||
.Nm lwres_gnbarequest_parse ,
|
||||
.Nm lwres_gnbaresponse_parse ,
|
||||
.Nm lwres_gnbaresponse_free ,
|
||||
.Nm lwres_gnbarequest_free
|
||||
.Nd lightweight resolver getnamebyaddress functions
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwres.h>
|
||||
.Fd
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_gnbarequest_render
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_gnbarequest_t *req"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_gnbaresponse_render
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_gnbaresponse_t *req"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_gnbarequest_parse
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fa "lwres_gnbarequest_t **structp"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_gnbaresponse_parse
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fa "lwres_gnbaresponse_t **structp"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_gnbaresponse_free
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_gnbaresponse_t **structp"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_gnbarequest_free
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_gnbarequest_t **structp"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
These functions implement the lightweight resolver's getnamebyaddr opcode
|
||||
.Dv LWRES_OPCODE_GETNAMEBYADDR .
|
||||
They provide a reverse lookup mechanism, mapping an address to its
|
||||
hostname.
|
||||
.Pp
|
||||
There are four main functions for the getnamebyaddr opcode.
|
||||
One render function converts a getnamebyaddr request structure -
|
||||
.Dv lwres_gnbarequest_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 getnamebyaddr request structure.
|
||||
Another render function converts the getnamebyaddr response structure -
|
||||
.Dv 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.
|
||||
.Pp
|
||||
These structures are defined in
|
||||
.Pa lwres/lwres.h .
|
||||
They are shown below.
|
||||
.Bd -literal -offset indent
|
||||
#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;
|
||||
.Ed
|
||||
.Pp
|
||||
.Fn lwres_gnbarequest_render
|
||||
uses resolver context
|
||||
.Fa ctx
|
||||
to convert getnamebyaddr request structure
|
||||
.Fa req
|
||||
to canonical format.
|
||||
The packet header structure
|
||||
.Fa pkt
|
||||
is initialised and transferred to
|
||||
buffer
|
||||
.Fa b .
|
||||
The contents of
|
||||
.Fa *req
|
||||
are then appended to the buffer in canonical format.
|
||||
.Fn lwres_gnbaresponse_render
|
||||
performs the same task, except it converts a getnamebyaddr response structure
|
||||
.Dv lwres_gnbaresponse_t
|
||||
to the lightweight resolver's canonical format.
|
||||
.Pp
|
||||
.Fn lwres_gnbarequest_parse
|
||||
uses context
|
||||
.Fa ctx
|
||||
to convert the contents of packet
|
||||
.Fa pkt
|
||||
to a
|
||||
.Dv lwres_gnbarequest_t
|
||||
structure.
|
||||
Buffer
|
||||
.Fa b
|
||||
provides space to be used for storing this structure.
|
||||
When the function succeeds, the resulting
|
||||
.Dv lwres_gnbarequest_t
|
||||
is made available through
|
||||
.Fa *structp .
|
||||
.Fn lwres_gnbaresponse_parse
|
||||
offers the same semantics as
|
||||
.Fn lwres_gnbarequest_parse
|
||||
except it yields a
|
||||
.Dv lwres_gnbaresponse_t
|
||||
structure.
|
||||
.Pp
|
||||
.Fn lwres_gnbaresponse_free
|
||||
and
|
||||
.Fn lwres_gnbarequest_free
|
||||
release the memory in resolver context
|
||||
.Fa ctx
|
||||
that was allocated to the
|
||||
.Dv lwres_gnbaresponse_t
|
||||
or
|
||||
.Dv lwres_gnbarequest_t
|
||||
structures referenced via
|
||||
.Fa structp .
|
||||
Any memory associated with ancillary buffers and strings for those
|
||||
structures is also discarded.
|
||||
.Sh RETURN VALUES
|
||||
The getnamebyaddr opcode functions
|
||||
.Fn lwres_gnbarequest_render ,
|
||||
.Fn lwres_gnbaresponse_render
|
||||
.Fn lwres_gnbarequest_parse
|
||||
and
|
||||
.Fn lwres_gnbaresponse_parse
|
||||
all return
|
||||
.Er LWRES_R_SUCCESS
|
||||
on success.
|
||||
They return
|
||||
.Er LWRES_R_NOMEMORY
|
||||
if memory allocation fails.
|
||||
.Er LWRES_R_UNEXPECTEDEND
|
||||
is returned if the available space in the buffer
|
||||
.Fa b
|
||||
is too small to accommodate the packet header or the
|
||||
.Dv lwres_gnbarequest_t
|
||||
and
|
||||
.Dv lwres_gnbaresponse_t
|
||||
structures.
|
||||
.Fn lwres_gnbarequest_parse
|
||||
and
|
||||
.Fn lwres_gnbaresponse_parse
|
||||
will return
|
||||
.Er LWRES_R_UNEXPECTEDEND
|
||||
if the buffer is not empty after decoding the received packet.
|
||||
These functions will return
|
||||
.Er LWRES_R_FAILURE
|
||||
if
|
||||
.Li pktflags
|
||||
in the packet header structure
|
||||
.Dv lwres_lwpacket_t
|
||||
indicate that the packet is not a response to an earlier query.
|
||||
.Sh SEE ALSO
|
||||
.Xr lwres_packet 3
|
19
doc/man/lwres/lwres_gnbarequest_free.3
Normal file
19
doc/man/lwres/lwres_gnbarequest_free.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gnbarequest_free.3,v 1.1 2000/06/27 21:53:06 jim Exp $
|
||||
.\"
|
||||
.so lwres_gnba.3
|
19
doc/man/lwres/lwres_gnbarequest_parse.3
Normal file
19
doc/man/lwres/lwres_gnbarequest_parse.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gnbarequest_parse.3,v 1.1 2000/06/27 21:53:06 jim Exp $
|
||||
.\"
|
||||
.so lwres_gnba.3
|
19
doc/man/lwres/lwres_gnbarequest_render.3
Normal file
19
doc/man/lwres/lwres_gnbarequest_render.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gnbarequest_render.3,v 1.1 2000/06/27 21:53:06 jim Exp $
|
||||
.\"
|
||||
.so lwres_gnba.3
|
19
doc/man/lwres/lwres_gnbaresponse_free.3
Normal file
19
doc/man/lwres/lwres_gnbaresponse_free.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gnbaresponse_free.3,v 1.1 2000/06/27 21:53:06 jim Exp $
|
||||
.\"
|
||||
.so lwres_gnba.3
|
19
doc/man/lwres/lwres_gnbaresponse_parse.3
Normal file
19
doc/man/lwres/lwres_gnbaresponse_parse.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gnbaresponse_parse.3,v 1.1 2000/06/27 21:53:07 jim Exp $
|
||||
.\"
|
||||
.so lwres_gnba.3
|
19
doc/man/lwres/lwres_gnbaresponse_render.3
Normal file
19
doc/man/lwres/lwres_gnbaresponse_render.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_gnbaresponse_render.3,v 1.1 2000/06/27 21:53:07 jim Exp $
|
||||
.\"
|
||||
.so lwres_gnba.3
|
19
doc/man/lwres/lwres_herror.3
Normal file
19
doc/man/lwres/lwres_herror.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_herror.3,v 1.1 2000/06/27 21:53:07 jim Exp $
|
||||
.\"
|
||||
.so lwres_hstrerror.3
|
72
doc/man/lwres/lwres_hstrerror.3
Normal file
72
doc/man/lwres/lwres_hstrerror.3
Normal file
@@ -0,0 +1,72 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:07 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_ERROR 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_herror ,
|
||||
.Nm lwres_hstrerror
|
||||
.Nd lightweight resolver error message generation
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/netdb.h>
|
||||
.Fd
|
||||
.Ft void
|
||||
.Fo lwres_herror
|
||||
.Fa "const char *s"
|
||||
.Fc
|
||||
.Ft const char *
|
||||
.Fo lwres_hstrerror
|
||||
.Fa "int err"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
.Fn lwres_herror
|
||||
prints the string
|
||||
.Fa s
|
||||
on
|
||||
.Dv stderr
|
||||
followed by the string generated by
|
||||
.Fn lwres_hstrerror
|
||||
for the error code stored in the global variable
|
||||
.Li lwres_h_errno .
|
||||
.Pp
|
||||
.Fn lwres_hstrerror
|
||||
returns an appropriate string for the error code gievn by
|
||||
.Fa err .
|
||||
The values of the error codes and messages are as follows:
|
||||
.Bl -tag -width HOST_NOT_FOUND
|
||||
.It Li NETDB_SUCCESS
|
||||
\*qResolver Error 0 (no error)\*q
|
||||
.It Li HOST_NOT_FOUND
|
||||
\*qUnknown host\*q
|
||||
.It Li TRY_AGAIN
|
||||
\*qHost name lookup failure\*q
|
||||
.It Li NO_RECOVERY
|
||||
\*qUnknown server error\*q
|
||||
.It Li NO_DATA
|
||||
\*qNo address associated with name\*q
|
||||
.Sh RETURN VALUES
|
||||
The string \*qUnknown resolver error\*q is returned by
|
||||
.Fn lwres_hstrerror
|
||||
when the value of
|
||||
.Li lwres_h_errno
|
||||
is not a valid error code.
|
||||
.Sh SEE ALSO
|
||||
.Xr herror 3 ,
|
||||
.Xr lwres_hstrerror 3 .
|
97
doc/man/lwres/lwres_inetaton.3
Normal file
97
doc/man/lwres/lwres_inetaton.3
Normal file
@@ -0,0 +1,97 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_inetaton.3,v 1.1 2000/06/27 21:53:07 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_INETATON 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_net_aton
|
||||
.Nd lightweight resolver IPv4 address manipulation
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/int.h>
|
||||
.Fd #include <lwres/net.h>
|
||||
.Fd
|
||||
.Ft int
|
||||
.Fo lwres_net_aton
|
||||
.Fa "const char *cp"
|
||||
.Fa "struct in_addr *addr"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
.Fn lwres_net_aton
|
||||
checks that
|
||||
.Fa cp
|
||||
is a valid ASCII representation of an IPv4 address and optionally converts
|
||||
it to a binary address in network byte order.
|
||||
If
|
||||
.Fa addr
|
||||
is not
|
||||
.Dv NULL,
|
||||
.Li addr->s_addr
|
||||
is set to the binary representation of address given by
|
||||
.Fa cp
|
||||
if it was a valid string.
|
||||
This function supersedes
|
||||
.Fn inet_addr
|
||||
whose return value cannot distinguish between failure and a local
|
||||
broadcast address.
|
||||
.Pp
|
||||
.Fa cp
|
||||
should be a string in conventional dot notation of the form:
|
||||
.Bd -literal -offset indent
|
||||
a
|
||||
a.b
|
||||
a.b.c
|
||||
a.b.c.d
|
||||
.Ed
|
||||
.Pp
|
||||
Each part of the address can be represented in octal, decimal or
|
||||
hexadeximal using the standard C notation: a leading 0 implies octal;
|
||||
a leading 0x or 0X implies hex; a decimal number is assumed otherwise.
|
||||
.Pp
|
||||
If a one-part address is given, its value is placed in the network
|
||||
address without any byte rearrangement.
|
||||
When a two-part address -
|
||||
.Li a.b -
|
||||
is supplied, the last part is considered a 24-bit quantity and placed
|
||||
in the bottom 3 bytes of
|
||||
.Li addr->s_addr .
|
||||
The first part is placed in the top byte of the address.
|
||||
A three-part address -
|
||||
.Li a.b.c -
|
||||
is treated as if the last part was a 16-bit quantity.
|
||||
The first two parts -
|
||||
.Li a.b -
|
||||
is put in the top 2 bytes and the last part in the low-end 2 bytes of
|
||||
.Li addr->s_addr .
|
||||
When a four-part address is supplied in
|
||||
.Fa cp ,
|
||||
each part is treated as a byte of data and assigned to the four bytes
|
||||
of an Internet address.
|
||||
In all four cases, the internet address in
|
||||
.Li addr->s_addr
|
||||
is stored in network byte order (big-endian) where the bytes are
|
||||
ordered from left to right: i.e. 0, 1, 2, 3.
|
||||
.Sh RETURN VALUES
|
||||
The function returns 1 if
|
||||
.Fa cp
|
||||
was successfully interpreted as an IPv4 address or 0
|
||||
if it was an invalid string.
|
||||
.Sh SEE ALSO
|
||||
.Xr inet_aton 3 ,
|
||||
.Xr inet_addr 3 .
|
72
doc/man/lwres/lwres_inetntop.3
Normal file
72
doc/man/lwres/lwres_inetntop.3
Normal file
@@ -0,0 +1,72 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:07 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_INETNTOP 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_net_ntop
|
||||
.Nd lightweight resolver IP address presentation
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/net.h>
|
||||
.Fd
|
||||
.Ft const char *
|
||||
.Fo lwres_net_ntop
|
||||
.Fa "int af"
|
||||
.Fa "const void *src"
|
||||
.Fa "char *dst"
|
||||
.Fa "size_t size"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
.Fn lwres_net_ntop
|
||||
converts an IP address of protocol family
|
||||
.Fa af
|
||||
- IPv4 or IPv6 - at location
|
||||
.Fa 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.
|
||||
.Pp
|
||||
The generated string is copied to
|
||||
.Fa dst
|
||||
provided
|
||||
.Fa size
|
||||
indicates it is long enough to store the ASCII representation
|
||||
of the address.
|
||||
.Sh RETURN VALUES
|
||||
.Pp
|
||||
If successful, the function returns
|
||||
.Fa dst :
|
||||
a pointer to a string containing
|
||||
the presentation format of the address.
|
||||
.Fn lwres_net_ntop
|
||||
returns
|
||||
.Dv NULL
|
||||
and sets the global variable
|
||||
.Li errno
|
||||
to
|
||||
.Er EAFNOSUPPORT
|
||||
if the protocol family given in
|
||||
.Fa af
|
||||
is not supported.
|
||||
.Sh SEE ALSO
|
||||
.Xr RFC1884 ,
|
||||
.Xr inet_ntop 3 ,
|
||||
.Xr errno 3 .
|
64
doc/man/lwres/lwres_inetpton.3
Normal file
64
doc/man/lwres/lwres_inetpton.3
Normal file
@@ -0,0 +1,64 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_inetpton.3,v 1.1 2000/06/27 21:53:08 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_INETPTON 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_net_pton
|
||||
.Nd lightweight resolver IP address conversion
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/net.h>
|
||||
.Fd
|
||||
.Ft int
|
||||
.Fo lwres_net_pton
|
||||
.Fa "int af"
|
||||
.Fa "const char *src"
|
||||
.Fa "void *dst"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
.Fn lwres_net_pton
|
||||
converts the presentation format of an IP address
|
||||
.Fa src
|
||||
to its representation in network format.
|
||||
.Fa af
|
||||
indicates the protocol family for the address
|
||||
.Dv PF_INET
|
||||
or
|
||||
.Dv PF_INET6
|
||||
and
|
||||
.Fa src
|
||||
is either a dotted decimal string for an IPv4 address or
|
||||
a string in colon notation if it represents an IPv6 address.
|
||||
RFC1884 defines the text notation to represent IPv6 addresses.
|
||||
.Sh RETURN VALUES
|
||||
.Fn lwres_net_pton
|
||||
returns 1 if address
|
||||
.Fa src
|
||||
was valid for protocol family
|
||||
.Fa af .
|
||||
The network representation of the address is returned in
|
||||
.Fa *dst .
|
||||
Zero is returned if the address was invalid and -1 is returned if some
|
||||
other error occurred.
|
||||
.Fa *dst
|
||||
is not altered for either of these errors.
|
||||
.Sh SEE ALSO
|
||||
.Xr inet_pton 3 ,
|
||||
.Xr RFC1884 .
|
19
doc/man/lwres/lwres_lwpacket_parseheader.3
Normal file
19
doc/man/lwres/lwres_lwpacket_parseheader.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_lwpacket_parseheader.3,v 1.1 2000/06/27 21:53:08 jim Exp $
|
||||
.\"
|
||||
.so lwres_packet.3
|
19
doc/man/lwres/lwres_lwpacket_renderheader.3
Normal file
19
doc/man/lwres/lwres_lwpacket_renderheader.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_lwpacket_renderheader.3,v 1.1 2000/06/27 21:53:08 jim Exp $
|
||||
.\"
|
||||
.so lwres_packet.3
|
19
doc/man/lwres/lwres_net_aton.3
Normal file
19
doc/man/lwres/lwres_net_aton.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_net_aton.3,v 1.1 2000/06/27 21:53:08 jim Exp $
|
||||
.\"
|
||||
.so lwres_inetaton.3
|
19
doc/man/lwres/lwres_net_ntop.3
Normal file
19
doc/man/lwres/lwres_net_ntop.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_net_ntop.3,v 1.1 2000/06/27 21:53:08 jim Exp $
|
||||
.\"
|
||||
.so lwres_inetntop.3
|
19
doc/man/lwres/lwres_net_pton.3
Normal file
19
doc/man/lwres/lwres_net_pton.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_net_pton.3,v 1.1 2000/06/27 21:53:08 jim Exp $
|
||||
.\"
|
||||
.so lwres_inetpton.3
|
199
doc/man/lwres/lwres_noop.3
Normal file
199
doc/man/lwres/lwres_noop.3
Normal file
@@ -0,0 +1,199 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:08 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_NOOP 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_nooprequest_render ,
|
||||
.Nm lwres_noopresponse_render ,
|
||||
.Nm lwres_nooprequest_parse ,
|
||||
.Nm lwres_noopresponse_parse ,
|
||||
.Nm lwres_noopresponse_free ,
|
||||
.Nm lwres_nooprequest_free
|
||||
.Nd lightweight resolver no-op functions
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwres.h>
|
||||
.Fd
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_nooprequest_render
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_nooprequest_t *req"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_noopresponse_render
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_noopresponse_t *req"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_nooprequest_parse
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fa "lwres_nooprequest_t **structp"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_noopresponse_parse
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fa "lwres_noopresponse_t **structp"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_noopresponse_free
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_noopresponse_t **structp"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_nooprequest_free
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_nooprequest_t **structp"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
These functions implement the lightweight resolver's no-op opcode
|
||||
.Dv LWRES_OPCODE_NOOP .
|
||||
This is analogous to a \*qping\*q test: a packet is sent to the
|
||||
lightweight 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 -
|
||||
.Dv 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 -
|
||||
.Dv 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.
|
||||
.Pp
|
||||
These structures are defined in
|
||||
.Pa lwres/lwres.h .
|
||||
They are shown below.
|
||||
.Bd -literal -offset indent
|
||||
#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;
|
||||
.Ed
|
||||
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
|
||||
.Fn lwres_nooprequest_render
|
||||
uses resolver context
|
||||
.Fa ctx
|
||||
to convert no-op request structure
|
||||
.Fa req
|
||||
to canonical format.
|
||||
The packet header structure
|
||||
.Fa pkt
|
||||
is initialised and transferred to
|
||||
buffer
|
||||
.Fa b .
|
||||
The contents of
|
||||
.Fa *req
|
||||
are then appended to the buffer in canonical format.
|
||||
.Fn lwres_noopresponse_render
|
||||
performs the same task, except it converts a no-op response structure
|
||||
.Dv lwres_noopresponse_t
|
||||
to the lightweight resolver's canonical format.
|
||||
.Pp
|
||||
.Fn lwres_nooprequest_parse
|
||||
uses context
|
||||
.Fa ctx
|
||||
to convert the contents of packet
|
||||
.Fa pkt
|
||||
to a
|
||||
.Dv lwres_nooprequest_t
|
||||
structure.
|
||||
Buffer
|
||||
.Fa b
|
||||
provides space to be used for storing this structure.
|
||||
When the function succeeds, the resulting
|
||||
.Dv lwres_nooprequest_t
|
||||
is made available through
|
||||
.Fa *structp .
|
||||
.Fn lwres_noopresponse_parse
|
||||
offers the same semantics as
|
||||
.Fn lwres_nooprequest_parse
|
||||
except it yields a
|
||||
.Dv lwres_noopresponse_t
|
||||
structure.
|
||||
.Pp
|
||||
.Fn lwres_noopresponse_free
|
||||
and
|
||||
.Fn lwres_nooprequest_free
|
||||
release the memory in resolver context
|
||||
.Fa ctx
|
||||
that was allocated to the
|
||||
.Dv lwres_noopresponse_t
|
||||
or
|
||||
.Dv lwres_nooprequest_t
|
||||
structures referenced via
|
||||
.Fa structp .
|
||||
.Sh RETURN VALUES
|
||||
The no-op opcode functions
|
||||
.Fn lwres_nooprequest_render ,
|
||||
.Fn lwres_noopresponse_render
|
||||
.Fn lwres_nooprequest_parse
|
||||
and
|
||||
.Fn lwres_noopresponse_parse
|
||||
all return
|
||||
.Er LWRES_R_SUCCESS
|
||||
on success.
|
||||
They return
|
||||
.Er LWRES_R_NOMEMORY
|
||||
if memory allocation fails.
|
||||
.Er LWRES_R_UNEXPECTEDEND
|
||||
is returned if the available space in the buffer
|
||||
.Fa b
|
||||
is too small to accommodate the packet header or the
|
||||
.Dv lwres_nooprequest_t
|
||||
and
|
||||
.Dv lwres_noopresponse_t
|
||||
structures.
|
||||
.Fn lwres_nooprequest_parse
|
||||
and
|
||||
.Fn lwres_noopresponse_parse
|
||||
will return
|
||||
.Er LWRES_R_UNEXPECTEDEND
|
||||
if the buffer is not empty after decoding the received packet.
|
||||
These functions will return
|
||||
.Er LWRES_R_FAILURE
|
||||
if
|
||||
.Li pktflags
|
||||
in the packet header structure
|
||||
.Dv lwres_lwpacket_t
|
||||
indicate that the packet is not a response to an earlier query.
|
||||
.Sh SEE ALSO
|
||||
.Xr lwres_packet 3
|
19
doc/man/lwres/lwres_nooprequest_free.3
Normal file
19
doc/man/lwres/lwres_nooprequest_free.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_nooprequest_free.3,v 1.1 2000/06/27 21:53:08 jim Exp $
|
||||
.\"
|
||||
.so lwres_noop.3
|
19
doc/man/lwres/lwres_nooprequest_parse.3
Normal file
19
doc/man/lwres/lwres_nooprequest_parse.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_nooprequest_parse.3,v 1.1 2000/06/27 21:53:09 jim Exp $
|
||||
.\"
|
||||
.so lwres_noop.3
|
19
doc/man/lwres/lwres_nooprequest_render.3
Normal file
19
doc/man/lwres/lwres_nooprequest_render.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_nooprequest_render.3,v 1.1 2000/06/27 21:53:09 jim Exp $
|
||||
.\"
|
||||
.so lwres_noop.3
|
19
doc/man/lwres/lwres_noopresponse_free.3
Normal file
19
doc/man/lwres/lwres_noopresponse_free.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_noopresponse_free.3,v 1.1 2000/06/27 21:53:09 jim Exp $
|
||||
.\"
|
||||
.so lwres_noop.3
|
19
doc/man/lwres/lwres_noopresponse_parse.3
Normal file
19
doc/man/lwres/lwres_noopresponse_parse.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_noopresponse_parse.3,v 1.1 2000/06/27 21:53:09 jim Exp $
|
||||
.\"
|
||||
.so lwres_noop.3
|
19
doc/man/lwres/lwres_noopresponse_render.3
Normal file
19
doc/man/lwres/lwres_noopresponse_render.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_noopresponse_render.3,v 1.1 2000/06/27 21:53:09 jim Exp $
|
||||
.\"
|
||||
.so lwres_noop.3
|
146
doc/man/lwres/lwres_packet.3
Normal file
146
doc/man/lwres/lwres_packet.3
Normal file
@@ -0,0 +1,146 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:09 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_PACKET 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_lwpacket_renderheader ,
|
||||
.Nm lwres_lwpacket_parseheader
|
||||
.Nd lightweight resolver packet handling functions
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwbuffer.h>
|
||||
.Fd #include <lwres/lwpacket.h>
|
||||
.Fd #include <lwres/result.h>
|
||||
.Fd
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_lwpacket_renderheader
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_lwpacket_parseheader
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_lwpacket_t *pkt"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
These functions rely on a
|
||||
.Dv "struct lwres_lwpacket"
|
||||
which is defined in
|
||||
.Pa lwres/lwpacket.h .
|
||||
.Bd -literal -offset indent
|
||||
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;
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
The elements of this structure are:
|
||||
.Bl -tag -width recvlength
|
||||
.It Li length
|
||||
the overall packet length, including the entire packet header
|
||||
.It Li version
|
||||
the header format. There is currently only one format,
|
||||
.Dv LWRES_LWPACKETVERSION_0 .
|
||||
.It Li 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.
|
||||
.It Li 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.
|
||||
.It Li 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.
|
||||
.It Li result
|
||||
is only valid for replies.
|
||||
Results between 0x04000000 and 0xffffffff are application defined.
|
||||
Results between 0x00000000 and 0x03ffffff are reserved for library use.
|
||||
.It Li 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
|
||||
.It Li 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.
|
||||
.It Li authlen
|
||||
gives the length of the authentication data.
|
||||
Since packet authentication is currently not used, this must be zero.
|
||||
.El
|
||||
The following opcodes are currently defined:
|
||||
.Bl -tag -width GETADDRSBYNAME
|
||||
.It Li NOOP
|
||||
Success is always returned and the packet contents are echoed.
|
||||
.It Li GETADDRSBYNAME
|
||||
returns all known addresses for a given name
|
||||
.It Li GETNAMEBYADDR
|
||||
return the hostname for the given address
|
||||
.El
|
||||
.Pp
|
||||
.Fn lwres_lwpacket_renderheader
|
||||
transfers the contents of lightweight resolver packet structure
|
||||
.Dv lwres_lwpacket_t
|
||||
.Fa *pkt
|
||||
in network byte order to the lightweight resolver buffer,
|
||||
.Fa *b .
|
||||
.Pp
|
||||
.Fn lwres_lwpacket_parseheader
|
||||
performs the converse operation.
|
||||
It transfers data in network byte order from buffer
|
||||
.Fa *b
|
||||
to resolver packet
|
||||
.Fa *pkt .
|
||||
The contents of the buffer
|
||||
.Fa b
|
||||
should correspond to a
|
||||
.Dv "struct lwres_lwpacket" .
|
||||
.Pp
|
||||
Both functions have assertion checks to ensure that
|
||||
.Fa b
|
||||
and
|
||||
.Fa pkt
|
||||
are not
|
||||
.Dv NULL .
|
||||
.Sh RETURN VALUES
|
||||
Successful calls to
|
||||
.Fn lwres_lwpacket_renderheader
|
||||
and
|
||||
.Fn lwres_lwpacket_parseheader
|
||||
return
|
||||
.Er LWRES_R_SUCCESS .
|
||||
If there is insufficient space to copy data between the buffer
|
||||
.Fa *b
|
||||
and lightweight resolver packet
|
||||
.Fa *pkt
|
||||
both functions return
|
||||
.Er LWRES_R_UNEXPECTEDEND .
|
216
doc/man/lwres/lwres_resutil.3
Normal file
216
doc/man/lwres/lwres_resutil.3
Normal file
@@ -0,0 +1,216 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:53:10 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_RESUTIL 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_string_parse ,
|
||||
.Nm lwres_addr_parse ,
|
||||
.Nm lwres_getaddrsbyname ,
|
||||
.Nm lwres_getnamebyaddr
|
||||
.Nd lightweight resolver utility functions
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwres.h>
|
||||
.Fd
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_string_parse
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "char **c"
|
||||
.Fa "lwres_uint16_t *len"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_addr_parse
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_addr_t *addr"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_getaddrsbyname
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "const char *name"
|
||||
.Fa "lwres_uint32_t addrtypes"
|
||||
.Fa "lwres_gabnresponse_t **structp"
|
||||
.Fc
|
||||
.Ft lwres_result_t
|
||||
.Fo lwres_getnamebyaddr
|
||||
.Fa "lwres_context_t *ctx"
|
||||
.Fa "lwres_uint32_t addrtype"
|
||||
.Fa "lwres_uint16_t addrlen"
|
||||
.Fa "const unsigned char *addr"
|
||||
.Fa "lwres_gnbaresponse_t **structp"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
.Fn lwres_string_parse
|
||||
retrieves a DNS-encoded string starting the current pointer of
|
||||
lightweight resolver buffer
|
||||
.Fa b :
|
||||
i.e.
|
||||
.Li b->current .
|
||||
When the function returns, the address of the first byte of the
|
||||
encoded string is returned via
|
||||
.Fa *c
|
||||
and the length of that string is given by
|
||||
.Fa *len .
|
||||
The buffer's current pointer is advanced to point at the character
|
||||
following the string length, the encoded string, and the trailing
|
||||
.Dv NULL
|
||||
character.
|
||||
.Fn lwres_string_parse
|
||||
has an assertion check that
|
||||
.Fa b
|
||||
is not
|
||||
.Dv NULL .
|
||||
.Pp
|
||||
.Fn lwres_addr_parse
|
||||
extracts an address from the buffer
|
||||
.Fa b .
|
||||
It checks that
|
||||
.Fa addr
|
||||
is not null.
|
||||
The buffer's current pointer
|
||||
.Li 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
|
||||
.Li addr->address
|
||||
and
|
||||
.Li addr->length
|
||||
indicates the size in bytes of the address that was copied.
|
||||
.Li b->current
|
||||
is advanced to point at the next byte of available data in the buffer
|
||||
following the encoded address.
|
||||
.Pp
|
||||
.Fn lwres_getaddrsbyname
|
||||
and
|
||||
.Fn lwres_getnamebyaddr
|
||||
use the
|
||||
.Dv "lwres_gnbaresponse_t"
|
||||
structure defined below:
|
||||
.Bd -literal -offset indent
|
||||
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;
|
||||
.Ed
|
||||
The contents of this structure are not manipulated directly but
|
||||
they are controlled through the
|
||||
.Xr lwres_gabn 3
|
||||
functions.
|
||||
.Pp
|
||||
The lightweight resolver uses
|
||||
.Fn lwres_getaddrsbyname
|
||||
to perform foward lookups.
|
||||
Hostname
|
||||
.Fa name
|
||||
is looked up using the resolver context
|
||||
.Fa ctx
|
||||
for memory allocation.
|
||||
.Fa addrtypes
|
||||
is a bitmask indicating which type of addresses are to be looked up.
|
||||
Current values for this bitmask are
|
||||
.Dv LWRES_ADDRTYPE_V4
|
||||
for IPv4 addresses and
|
||||
.Dv LWRES_ADDRTYPE_V6
|
||||
for IPv6 addresses.
|
||||
Results of the lookup are returned in
|
||||
.Fa *structp .
|
||||
.Fn lwres_getaddrsbyname
|
||||
checks that its pointer arguments are not
|
||||
.Dv NULL
|
||||
and that
|
||||
.Fa addrtypes
|
||||
is non-zero.
|
||||
.Pp
|
||||
.Fn lwres_getnamebyaddr
|
||||
performs reverse lookups.
|
||||
Resolver context
|
||||
.Fa ctx
|
||||
is used for memory allocation.
|
||||
The address type is indicated by
|
||||
.Fa addrtype :
|
||||
.Dv LWRES_ADDRTYPE_V4
|
||||
or
|
||||
.Dv LWRES_ADDRTYPE_V6 .
|
||||
The address to be looked up is given by
|
||||
.Fa addr
|
||||
and its length is
|
||||
.Fa addrlen
|
||||
bytes.
|
||||
The result of the function call is made available through
|
||||
.Fa *structp .
|
||||
Like
|
||||
.Fn lwres_getaddrsbyname ,
|
||||
.Fn lwres_getnamebyaddr
|
||||
uses assertion checking to ensure its pointer arguments are not
|
||||
.Dv NULL
|
||||
and
|
||||
.Fa addrtype
|
||||
is not zero.
|
||||
.Fn lwres_getaddrsbyname
|
||||
also checks that
|
||||
.Fa addrlen
|
||||
is non-zero.
|
||||
.Sh RETURN VALUES
|
||||
Successful calls to
|
||||
.Fn lwres_string_parse
|
||||
and
|
||||
.Fn lwres_addr_parse
|
||||
return
|
||||
.Er LWRES_R_SUCCESS.
|
||||
Both functions return
|
||||
.Er LWRES_R_FAILURE
|
||||
if the buffer is corrupt or
|
||||
.Er LWRES_R_UNEXPECTEDEND
|
||||
if the buffer has less space than expected for the components of the
|
||||
encoded string or address.
|
||||
.Pp
|
||||
.Fn lwres_getaddrsbyname
|
||||
returns
|
||||
.Er LWRES_R_SUCCESS
|
||||
on success and it returns
|
||||
.Er LWRES_R_NOTFOUND
|
||||
if the hostname
|
||||
.Fa name
|
||||
could not be found.
|
||||
.Pp
|
||||
.Er LWRES_R_SUCCESS
|
||||
is returned by a successful call to
|
||||
.Fn lwres_getnamebyaddr .
|
||||
.Pp
|
||||
Both
|
||||
.Fn lwres_getaddrsbyname
|
||||
and
|
||||
.Fn lwres_getnamebyaddr
|
||||
return
|
||||
.Er LWRES_R_NOMEMORY
|
||||
when memory allocation requests fail and
|
||||
.Er LWRES_R_UNEXPECTEDEND
|
||||
if the buffers used for sending queries and receiving replies are too
|
||||
small.
|
||||
.Sh SEE ALSO
|
||||
.Xr lwres_buffer 3 ,
|
||||
.Xr lwres_gabn 3 .
|
19
doc/man/lwres/lwres_sethostent.3
Normal file
19
doc/man/lwres/lwres_sethostent.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_sethostent.3,v 1.1 2000/06/27 21:53:10 jim Exp $
|
||||
.\"
|
||||
.so lwres_gethostent.3
|
19
doc/man/lwres/lwres_sethostent_r.3
Normal file
19
doc/man/lwres/lwres_sethostent_r.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_sethostent_r.3,v 1.1 2000/06/27 21:53:10 jim Exp $
|
||||
.\"
|
||||
.so lwres_gethostent.3
|
19
doc/man/lwres/lwres_string_parse.3
Normal file
19
doc/man/lwres/lwres_string_parse.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_string_parse.3,v 1.1 2000/06/27 21:53:10 jim Exp $
|
||||
.\"
|
||||
.so lwres_resutil.3
|
291
lib/lwres/man/lwres.3
Normal file
291
lib/lwres/man/lwres.3
Normal file
@@ -0,0 +1,291 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:52:57 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres
|
||||
.Nd introduction to the lightweight resolver
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwres.h>
|
||||
.Sh DESCRIPTION
|
||||
The lightweight resolver provides a simple way for clients to perform
|
||||
forward and reverse lookups.
|
||||
Instead of looking up the names or addresses directly, clients can send
|
||||
requests to the lightweight resolver daemon
|
||||
.Nm lwresd
|
||||
which does hard work of performing the lookups for them.
|
||||
Clients can just use the lightweight resolver library to format a
|
||||
request to get a hostname for an IP address or vice versa, send it to
|
||||
.Nm lwresd
|
||||
and wait for a response.
|
||||
.Pp
|
||||
The lightweight resolver in BIND 9 consists of three components:
|
||||
a client, a server and a protocol.
|
||||
Clients use the functions provided by the lightweight resolver library
|
||||
to encode requests and decode responses.
|
||||
The server for the lightweight resolver is
|
||||
.Nm lwresd .
|
||||
In reality this is implemented by the name server,
|
||||
.Nm named ,
|
||||
though when operating as the lightweight resolver server,
|
||||
.Nm lwresd
|
||||
is functionally and logically distinct from the actual name server.
|
||||
The protocol consists of a number of opcodes, each of which has a
|
||||
request and response structure associated with it.
|
||||
The lightweight resolver library contains functions to convert these
|
||||
structures to and from the canonical format whenver they are sent to
|
||||
.Nm lwresd .
|
||||
.Sh RATIONALE
|
||||
.Pp
|
||||
Conventional DNS lookups of hostnames and IPv4 addresses are usually
|
||||
simple and straightforward.
|
||||
A client can issue queries to map a hostname to an IPv4 address or
|
||||
from an IPv4 address to a hostname.
|
||||
Many DNS queries can be needed to lookup IPv6 addresses.
|
||||
It may be necessary to resolve potentially variable-length partial
|
||||
IPv6 addresses: aggregation and site-level identifiers for instance.
|
||||
Keeping track of all of these queries and assembling the answers to
|
||||
return the hostname or IPv6 address is very hard work and error-prone.
|
||||
Further complexity can be caused by DNAME chains.
|
||||
If the answers are signed using DNSSEC, additional queries may be needed
|
||||
to verify the signatures.
|
||||
The consequence of this is that clients can be overwhelmed with the
|
||||
amount of work needed to resolve IPv6 addresses.
|
||||
BIND9 provides a lightweight resolver to eliminate these problems if
|
||||
applications had to resolve IPv6 addresses for themselves.
|
||||
.Pp
|
||||
Instead of looking up the hostnames or IPv6 addresses directly, clients
|
||||
can use the lightweight resolver to get the name server to do the work.
|
||||
Clients construct simple questions like \*qwhat is the hostname for
|
||||
the following address?\*q or \*qwhat are the addresses of hostname
|
||||
.Dv host.example.com?\*q
|
||||
The lightweight resolver functions take these questions and format
|
||||
them into queries which are sent to
|
||||
.Nm lwresd .
|
||||
Replies from the lightweight resolver server are then decoded to return
|
||||
an answer to the client which made the original request.
|
||||
.Sh CANONICAL FORMAT
|
||||
.Pp
|
||||
The lightweight resolver's canonical data format has been arranged for
|
||||
efficiency.
|
||||
All integer values are in network byte order.
|
||||
Addresses are also in network byte order.
|
||||
This means that, at least for IPv4 and IPv6 addresses, they can be
|
||||
used directly in network system calls without needing to be byte
|
||||
swapped.
|
||||
Character strings get prefixed by a length and are always terminated
|
||||
with a
|
||||
.Dv NUL
|
||||
character.
|
||||
This simplifies structure handling and parsing for both the server
|
||||
receiving a request and the client receiving a reply.
|
||||
It also eliminates data copying by enabling a mapping structure to
|
||||
directly point at data in the actual receive buffer.
|
||||
.Sh OPCODES
|
||||
.Pp
|
||||
Every lightweight resolver operation uses a unique opcode.
|
||||
Each opcode is assigned a number.
|
||||
Opcodes in the range 0x00000000 and 0x03ffffff are reserved for use by
|
||||
the lightweight resolver library.
|
||||
Opcodes between 0x04000000 and 0xffffffff have been set aside for use by
|
||||
applications.
|
||||
.Pp
|
||||
Three opcodes are currently defined:
|
||||
.Bl -tag -width LWRES_OPCODE_GETADDRSBYNAME
|
||||
.It Li LWRES_OPCODE_NOOP
|
||||
The no-op opcode is essentially an echo operation, comparable to
|
||||
.Xr ping 1 .
|
||||
The server simply returns the entire data region that had been sent by
|
||||
the client.
|
||||
Therefore clients can use this opcode to determine if the server is
|
||||
operational or not.
|
||||
It can also be used by clients to check the version number and any
|
||||
parameters of the lightweight resolver protocol that are supported by the
|
||||
server.
|
||||
.It Li LWRES_OPCODE_GETADDRSBYNAME
|
||||
This opcode is used to get all the known addresses for a hostname.
|
||||
In principle, this could also return information from NIS/YP or
|
||||
.Pa /etc/hosts ,
|
||||
though this is not implemented yet.
|
||||
Flags can be set in the request structure that is used for this opcode
|
||||
to indicate whether IPv4 or IPv6 addresses or both should be returned.
|
||||
.It Li LWRES_OPCODE_GETNAMEBYADDR
|
||||
This provides the complementary operation to
|
||||
.Dv LWRES_OPCODE_GETADDRSBYNAME .
|
||||
It returns the hostname for the address that was supplied in the
|
||||
request structure.
|
||||
.El
|
||||
.\"
|
||||
.\" XXXJR
|
||||
.\" We don't need this section, at least not yet. 23/6/00
|
||||
.\"
|
||||
.\" .Sh OPCODE REPLIES
|
||||
.\" .Pp
|
||||
.\" Replies to lightweight resolver operations contain return codes.
|
||||
.\" Results between 0x04000000 and 0xffffffff are application defined.
|
||||
.\" The lightweight resolver library reserves result codes between
|
||||
.\" 0x00000000 and 0x03ffffff.
|
||||
.\" These occupy the same reserved range used for ISC return values that
|
||||
.\" are defined in
|
||||
.\" .Pa isc/resultclass.h .
|
||||
.\" This means that, if appropriate, it would be trivial to map those ISC
|
||||
.\" return values to lightweight resolver packet result codes.
|
||||
.Sh STRUCTURE AND PACKET ENCODING/DECODING
|
||||
Each opcode has two structures: one for the request and one for the
|
||||
response.
|
||||
Clients use the lightweight resolver functions to construct the
|
||||
request structure and send it to the name server.
|
||||
The name server decodes the request, carries out the operation and
|
||||
fills in an opcode-specific response structure which is returned to
|
||||
the client.
|
||||
.Pp
|
||||
For every opcode, three functions operate on these structures.
|
||||
A
|
||||
.Ar render
|
||||
function converts the structure to canonical form and a
|
||||
.Ar parse
|
||||
function translates from the canonical form to the op-code specific
|
||||
structure.
|
||||
Memory allocated to the opcode's request or reply structures is
|
||||
discarded using the
|
||||
.Ar free
|
||||
function.
|
||||
Clients will typically use the op-code specific
|
||||
.Ar xxx_request_render ,
|
||||
.Ar xxx_response_parse
|
||||
and
|
||||
.Ar xxx_response_free
|
||||
functions.
|
||||
The name server will use the
|
||||
.Ar xxx_request_parse ,
|
||||
.Ar xxx_response_render
|
||||
and
|
||||
.Ar xxx_request_free
|
||||
functions.
|
||||
.Pp
|
||||
For example, the no-op opcode -
|
||||
.Dv LWRES_OPCODE_NOOP
|
||||
- uses
|
||||
.Dv lwres_nooprequest_t
|
||||
and
|
||||
.Dv lwres_noopresponse_t
|
||||
structures for the requests and responses used in the no-op operation.
|
||||
.Fn lwres_nooprequest_render
|
||||
takes a
|
||||
.Dv lwres_nooprequest_t
|
||||
structure and converts into a packet in lightweight resolver canonical
|
||||
format.
|
||||
Similarly
|
||||
.Fn lwres_noopresponse_render
|
||||
converts a
|
||||
.Dv lwres_noopresponse_t
|
||||
structure into a packet in lightweight resolver canonical format.
|
||||
.Fn lwres_nooprequest_parse
|
||||
takes a packet in canonical format and fills in a corresponding
|
||||
.Dv lwres_nooprequest_t
|
||||
structure.
|
||||
A
|
||||
.Dv lwres_noopresponse_t
|
||||
structure is set up by\p
|
||||
passing a response packet in canonical format to
|
||||
.Fn lwres_noopresponse_render .
|
||||
.Fn lwres_nooprequest_free
|
||||
and
|
||||
.Fn lwres_noopresponse_free
|
||||
releases the memory allocated to the
|
||||
.Dv lwres_nooprequest_t
|
||||
and
|
||||
.Dv lwres_noopresponse_t
|
||||
structures respectively.
|
||||
.\"
|
||||
.\" XXXJR
|
||||
.\" NOT YET.
|
||||
.\" This is just a placeholder to indicate where the section on the
|
||||
.\" lwres security API should be documented once this is implemented.
|
||||
.\" There's no point in documenting vapourware, especially if the
|
||||
.\" API is likely to change between now and then. 23/6/00
|
||||
.\" .Sh SECURITY
|
||||
.\" The lightweight resolver provides hooks for requesting the use of
|
||||
.\" DNSSEC for authenticating requests and responses.
|
||||
.\" This interface is not currently implemented and is likely to
|
||||
.\" change.
|
||||
.\" It is mentioned here to indicate the capabilities that can be expected
|
||||
.\" in future releases of the lightweight resolver.
|
||||
.\" .Pp
|
||||
.\" The following flag bits have been allocated.
|
||||
.\" .Bl -tag -width LWRES_FLAG_TRUSTNOTREQUIRED
|
||||
.\" .It Li LWRES_FLAG_TRUSTDEFAULT
|
||||
.\" Let the server decide whether to use DNSSEC or not.
|
||||
.\" .It Li LWRES_FLAG_TRUSTNOTREQUIRED
|
||||
.\" DNSSEC authentication of the DNS queries and replies is not required
|
||||
.\" .It Li LWRES_FLAG_TRUSTREQUIRED
|
||||
.\" Any DNSSEC data found when resolving the query must validate and the
|
||||
.\" server must be DNSSEC-aware.
|
||||
.\" .It Li LWRES_FLAG_TRUSTRESERVED
|
||||
.\" Reserved for future use.
|
||||
.\" .El
|
||||
.Sh CLIENT SETUP
|
||||
Every client that uses the lightweight resolver needs to create and
|
||||
maintain its own state.
|
||||
Library calls are provided to manage that data structure, a resolver
|
||||
context.
|
||||
If the client uses threads, it either has to provide its own locking
|
||||
primitives on that context structure or else create a context for each
|
||||
thread.
|
||||
See
|
||||
.Xr lwres_context 3 .
|
||||
Once the context has been created,
|
||||
.Fn lwres_conf_init
|
||||
is called to read
|
||||
.Pa /etc/resolv.conf
|
||||
so that various options such as sort lists, search lists and so on can
|
||||
be applied.
|
||||
.Sh CLIENT INTERFACE
|
||||
The simplest interface to the lightweight resolver is provided by
|
||||
.Fn lwres_getaddrsbyname
|
||||
and
|
||||
.Fn lwres_getnamebyaddr .
|
||||
These functions are blocking calls.
|
||||
A client will wait after sending a request until either a response is
|
||||
returned or else a timeout interval occurs.
|
||||
If non-blocking operations are required, the client will need to
|
||||
call the opcode-specific
|
||||
.Ar request_render
|
||||
and
|
||||
.Ar response_parse
|
||||
directly.
|
||||
.Sh SERVER INTERFACE
|
||||
Service for the lightweight resolver is provided by the lightweight
|
||||
resolver daemon,
|
||||
.Nm lwresd .
|
||||
It listens on port number 921 of the loopback interface and expects to
|
||||
receive packets in the lightweight resolver's canonical format
|
||||
described above.
|
||||
.Sh SEE ALSO
|
||||
.Xr lwres_noop 3 ,
|
||||
.Xr lwres_gabn 3 ,
|
||||
.Xr lwres_gnba 3 ,
|
||||
.Xr lwres_context 3 ,
|
||||
.Xr lwres_config 3 ,
|
||||
.Xr resolver 5 ,
|
||||
.Xr lwres_getipnode 3
|
||||
.Xr lwresd 8 ,
|
||||
.Xr named 8 .
|
19
lib/lwres/man/lwres_addr_parse.3
Normal file
19
lib/lwres/man/lwres_addr_parse.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_addr_parse.3,v 1.1 2000/06/27 21:52:57 jim Exp $
|
||||
.\"
|
||||
.so lwres_resutil.3
|
324
lib/lwres/man/lwres_buffer.3
Normal file
324
lib/lwres/man/lwres_buffer.3
Normal file
@@ -0,0 +1,324 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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.1 2000/06/27 21:52:57 jim Exp $
|
||||
.\"
|
||||
.Dd Jun 30, 2000
|
||||
.Dt LWRES_BUFFER 3
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm lwres_buffer_init ,
|
||||
.Nm lwres_buffer_invalidate ,
|
||||
.Nm lwres_buffer_add ,
|
||||
.Nm lwres_buffer_subtract ,
|
||||
.Nm lwres_buffer_clear ,
|
||||
.Nm lwres_buffer_first ,
|
||||
.Nm lwres_buffer_forward ,
|
||||
.Nm lwres_buffer_back ,
|
||||
.Nm lwres_buffer_getuint8 ,
|
||||
.Nm lwres_buffer_putuint8 ,
|
||||
.Nm lwres_buffer_getuint16 ,
|
||||
.Nm lwres_buffer_putuint16 ,
|
||||
.Nm lwres_buffer_getuint32 ,
|
||||
.Nm lwres_buffer_putuint32 ,
|
||||
.Nm lwres_buffer_putmem ,
|
||||
.Nm lwres_buffer_getmem
|
||||
.Nd lightweight resolver buffer management
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <lwres/lwbuffer.h>
|
||||
.Fd
|
||||
.Ft void
|
||||
.Fo lwres_buffer_init
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "void *base"
|
||||
.Fa "unsigned int length"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_invalidate
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_add
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "unsigned int n"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_subtract
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "unsigned int n"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_clear
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_first
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_forward
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "unsigned int n"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_back
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "unsigned int n"
|
||||
.Fc
|
||||
.Ft lwres_uint8_t
|
||||
.Fo lwres_buffer_getuint8
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_putuint8
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_uint8_t val"
|
||||
.Fc
|
||||
.Ft lwres_uint16_t
|
||||
.Fo lwres_buffer_getuint16
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_putuint16
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_uint16_t val"
|
||||
.Fc
|
||||
.Ft lwres_uint32_t
|
||||
.Fo lwres_buffer_getuint32
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_putuint32
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "lwres_uint32_t val"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_putmem
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "const unsigned char *base"
|
||||
.Fa "unsigned int length"
|
||||
.Fc
|
||||
.Ft void
|
||||
.Fo lwres_buffer_getmem
|
||||
.Fa "lwres_buffer_t *b"
|
||||
.Fa "unsigned char *base"
|
||||
.Fa "unsigned int length"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
These functions use the following structure as a buffer descriptor to
|
||||
manage the actual storage:
|
||||
.Bd -literal -offset indent
|
||||
typedef struct lwres_buffer lwres_buffer_t;
|
||||
struct lwres_buffer {
|
||||
unsigned int magic;
|
||||
unsigned char *base;
|
||||
/* The following integers are byte offsets from 'base'. */
|
||||
unsigned int length;
|
||||
unsigned int used;
|
||||
unsigned int current;
|
||||
unsigned int active;
|
||||
};
|
||||
.Ed
|
||||
The main reason for making the buffer structure public is so that
|
||||
buffer operations can be implemented using macros.
|
||||
Applications should not manipulate this structure directly.
|
||||
They should use the functions listed below.
|
||||
.Pp
|
||||
A buffer is a region of memory, together with a set of related
|
||||
subregions.
|
||||
The \*qused region\*q and the \*qavailable\*q 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
|
||||
\*qconsumed region\*q and the \*qremaining region\*q.
|
||||
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 \*qcurrent\*q offset (if any).
|
||||
The \*qremaining\*q 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 \*qactive region\*q 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
|
||||
Except for
|
||||
.Fn lwres_buffer_init ,
|
||||
all of the buffer managements functions contain an assertion check
|
||||
that
|
||||
.Fa b
|
||||
is a pointer to a valid lightweight resolver buffer.
|
||||
.Pp
|
||||
.Fn lwres_buffer_init
|
||||
makes the
|
||||
.Dv "struct lwres_buffer"
|
||||
referenced by
|
||||
.Fa *b
|
||||
to be associated with a memory region of size
|
||||
.Fa length
|
||||
bytes starting at location
|
||||
.Fa base.
|
||||
The function checks that
|
||||
.Fa *b is not
|
||||
.Dv NULL .
|
||||
.Pp
|
||||
The
|
||||
.Dv lwres_buffer_t
|
||||
.Fa *b
|
||||
is invalidated by
|
||||
.Fn lwres_buffer_invalidate .
|
||||
.Fa *b
|
||||
must be a valid lightweight resolver buffer.
|
||||
.Pp
|
||||
The functions
|
||||
.Fn lwres_buffer_add
|
||||
and
|
||||
.Fn lwres_buffer_subtract
|
||||
respectively increase and decrease the used space in
|
||||
buffer
|
||||
.Fa *b
|
||||
by
|
||||
.Fa n
|
||||
bytes.
|
||||
.Fa *b
|
||||
.Fn lwres_buffer_add
|
||||
checks for buffer overflow and
|
||||
.Fn lwres_buffer_subtract
|
||||
checks for underflow.
|
||||
These functions do not allocate or deallocate memory.
|
||||
They just change the value of
|
||||
.Li b->used .
|
||||
.Pp
|
||||
A lightweight resolver buffer is re-initialised by
|
||||
.Fn lwres_buffer_clear .
|
||||
The function sets
|
||||
.Li b->used ,
|
||||
.Li b->current
|
||||
and
|
||||
.Li b->active
|
||||
to zero.
|
||||
.Pp
|
||||
.Fn lwres_buffer_first
|
||||
makes the consumed region of buffer
|
||||
.Fa *p
|
||||
empty by setting
|
||||
.Li b->current
|
||||
to zero: the start of the buffer.
|
||||
.Pp
|
||||
The consumed region of buffer
|
||||
.Fa *b
|
||||
is increased by
|
||||
.Fa n
|
||||
bytes
|
||||
using
|
||||
.Fn lwres_buffer_forward .
|
||||
The function checks for buffer overflow.
|
||||
Similarly,
|
||||
.Fn lwres_buffer_back
|
||||
decreases buffer
|
||||
.Fa b 's
|
||||
consumed region by
|
||||
.Fa n
|
||||
bytes and checks for buffer underflow.
|
||||
.Pp
|
||||
.Fn lwres_buffer_getuint8
|
||||
reads an unsigned 8-bit integer from
|
||||
.Fa *b
|
||||
and returns it.
|
||||
The function checks that it does not read past the end of the buffer's
|
||||
consumed region.
|
||||
.Fn lwres_buffer_putuint8
|
||||
writes the unsigned 8-bit integer
|
||||
.Fa val
|
||||
to buffer
|
||||
.Fa *b .
|
||||
It checks that the buffer has available space for
|
||||
.Fa val .
|
||||
.Pp
|
||||
.Fn lwres_buffer_getuint16
|
||||
and
|
||||
.Fn lwres_buffer_getuint32
|
||||
are identical to
|
||||
.Fn lwres_buffer_putuint8
|
||||
except that they respectively read an unsigned 16-bit or 32-bit integer from
|
||||
.Fa b
|
||||
converting it from network byte order to host byte order before
|
||||
returning its value.
|
||||
Similarly,
|
||||
.Fn lwres_buffer_putuint16
|
||||
and
|
||||
.Fn lwres_buffer_putuint32
|
||||
writes the unsigned 16-bit or 32-bit integer
|
||||
.Fa val
|
||||
to buffer
|
||||
.Fa b ,
|
||||
converting it from host byte order to network byte order.
|
||||
.Pp
|
||||
Arbitrary amounts of data are read or written from a lightweight
|
||||
resolver buffer with
|
||||
.Fn lwres_buffer_getmem
|
||||
and
|
||||
.Fn lwres_buffer_putmem
|
||||
respectively.
|
||||
.Fn lwres_buffer_putmem
|
||||
copies
|
||||
.Fa length
|
||||
bytes of memory at
|
||||
.Fa base
|
||||
to
|
||||
.Fa b.
|
||||
Conversely,
|
||||
.Fn lwres_buffer_getmem
|
||||
copies
|
||||
.Fa length
|
||||
bytes of memory from
|
||||
.Fa b
|
||||
to
|
||||
.Fa base .
|
||||
For both functions,
|
||||
.Fa base
|
||||
should point to at least
|
||||
.Fa length
|
||||
bytes of valid memory.
|
||||
.Fa base
|
||||
.Sh RETURN VALUES
|
||||
.Fn lwres_buffer_getuint8 ,
|
||||
.Fn lwres_buffer_getuint16
|
||||
and
|
||||
.Fn lwres_buffer_getuint32
|
||||
return an 8-, 16- or 32-bit unsigned integer respectively from the
|
||||
current offset in buffer
|
||||
.Fa b .
|
||||
The 16- and 32-bit quantities are presented in host byte order even
|
||||
though they are stored in network byte order inside the buffer.
|
||||
.Sh SEE ALSO
|
||||
.Sh BUGS
|
||||
Buffers have no synchronization.
|
||||
Clients must ensure exclusive access for thread-safe operations.
|
19
lib/lwres/man/lwres_buffer_add.3
Normal file
19
lib/lwres/man/lwres_buffer_add.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_add.3,v 1.1 2000/06/27 21:52:57 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
lib/lwres/man/lwres_buffer_back.3
Normal file
19
lib/lwres/man/lwres_buffer_back.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_back.3,v 1.1 2000/06/27 21:52:57 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
lib/lwres/man/lwres_buffer_clear.3
Normal file
19
lib/lwres/man/lwres_buffer_clear.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_clear.3,v 1.1 2000/06/27 21:52:57 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
lib/lwres/man/lwres_buffer_first.3
Normal file
19
lib/lwres/man/lwres_buffer_first.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_first.3,v 1.1 2000/06/27 21:52:58 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
lib/lwres/man/lwres_buffer_forward.3
Normal file
19
lib/lwres/man/lwres_buffer_forward.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_forward.3,v 1.1 2000/06/27 21:52:58 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
lib/lwres/man/lwres_buffer_getmem.3
Normal file
19
lib/lwres/man/lwres_buffer_getmem.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_getmem.3,v 1.1 2000/06/27 21:52:58 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
lib/lwres/man/lwres_buffer_getuint16.3
Normal file
19
lib/lwres/man/lwres_buffer_getuint16.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_getuint16.3,v 1.1 2000/06/27 21:52:59 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
lib/lwres/man/lwres_buffer_getuint32.3
Normal file
19
lib/lwres/man/lwres_buffer_getuint32.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_getuint32.3,v 1.1 2000/06/27 21:52:59 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
19
lib/lwres/man/lwres_buffer_getuint8.3
Normal file
19
lib/lwres/man/lwres_buffer_getuint8.3
Normal file
@@ -0,0 +1,19 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this document 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 INTERNET SOFTWARE CONSORTIUM
|
||||
.\" DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
.\" INTERNET SOFTWARE CONSORTIUM 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_getuint8.3,v 1.1 2000/06/27 21:52:59 jim Exp $
|
||||
.\"
|
||||
.so lwres_buffer.3
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user