IPnom Home • Manuals • FreeBSD

 FreeBSD Man Pages

Man Sections:Commands (1)System Calls (2)Library Functions (3)Device Drivers (4)File Formats (5)Miscellaneous (7)System Utilities (8)
Keyword Live Search (10 results max):
 Type in part of a command in the search box.
 


lwres_addr_parse(3)

NAME

       lwres_string_parse,  lwres_addr_parse, lwres_getaddrsbyname, lwres_get-
       namebyaddr - lightweight resolver utility functions


SYNOPSIS

       #include <lwres/lwres.h>

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

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

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

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


DESCRIPTION

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

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

       lwres_getaddrsbyname()  and lwres_getnamebyaddr() use the lwres_gnbare-
       sponse_t structure defined below:

       typedef struct {
	       lwres_uint32_t	       flags;
	       lwres_uint16_t	       naliases;
	       lwres_uint16_t	       naddrs;
	       char		      *realname;
	       char		     **aliases;
	       lwres_uint16_t	       realnamelen;
	       lwres_uint16_t	      *aliaslen;
	       lwres_addrlist_t        addrs;
	       void		      *base;
	       size_t		       baselen;
       } lwres_gabnresponse_t;

       The contents of this structure are not manipulated  directly  but  they
       are controlled through the lwres_gabn(3) functions.
       lwres_getnamebyaddr() performs reverse lookups.	Resolver  context  ctx
       is  used  for memory allocation. The address type is indicated by addr-
       type: LWRES_ADDRTYPE_V4 or LWRES_ADDRTYPE_V6. The address to be	looked
       up  is given by addr and its length is addrlen bytes. The result of the
       function call is made available through *structp.


RETURN VALUES

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

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

       LWRES_R_SUCCESS is returned by  a  successful  call  to	lwres_getname-
       byaddr().

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


SEE ALSO

       lwres_buffer(3), lwres_gabn(3).

BIND9				 Jun 30, 2000		      LWRES_RESUTIL(3)

SPONSORED LINKS




Man(1) output converted with man2html , sed , awk