SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG
DONATE


YUM REPOSITORY

 
 

MAN page from Trustix bind-light-devel-9.2.2-9tr.i586.rpm

LWRES_RESUTIL

Section: (3)
Updated: Jun 30, 2000
Index 

NAME

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

SYNOPSIS

#include <lwres/lwres.h>

lwres_result_tlwres_string_parse(lwres_buffer_t *b, char **c, lwres_uint16_t *len);

lwres_result_tlwres_addr_parse(lwres_buffer_t *b, lwres_addr_t *addr);

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

lwres_result_tlwres_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-encodedstring starting the current pointer of lightweight resolver bufferb: i.e. b->current.When the function returns, the address of the first byte of theencoded string is returned via *c and thelength of that string is given by *len. Thebuffer's current pointer is advanced to point at the characterfollowing the string length, the encoded string, and the trailingNULL character.

lwres_addr_parse() extracts an address from thebuffer b. The buffer's current pointerb->current is presumed to point at an encodedaddress: the address preceded by a 32-bit protocol family identifierand a 16-bit length field. The encoded address is copied toaddr->address andaddr->length indicates the size in bytes ofthe address that was copied. b->current isadvanced to point at the next byte of available data in the bufferfollowing the encoded address.

lwres_getaddrsbyname()andlwres_getnamebyaddr()use thelwres_gnbaresponse_tstructure 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 butthey are controlled through thelwres_gabn(3)functions.

The lightweight resolver useslwres_getaddrsbyname() to perform foward lookups.Hostname name is looked up using the resolvercontext ctx for memory allocation.addrtypes is a bitmask indicating which type ofaddresses are to be looked up. Current values for this bitmask areLWRES_ADDRTYPE_V4 for IPv4 addresses andLWRES_ADDRTYPE_V6 for IPv6 addresses. Results of thelookup are returned in *structp.

lwres_getnamebyaddr() performs reverse lookups.Resolver context ctx is used for memoryallocation. The address type is indicated byaddrtype: LWRES_ADDRTYPE_V4 orLWRES_ADDRTYPE_V6. The address to be looked up is givenby addr and its length isaddrlen bytes. The result of the function callis made available through *structp. 

RETURN VALUES

Successful calls tolwres_string_parse()andlwres_addr_parse()returnLWRES_R_SUCCESS.Both functions returnLWRES_R_FAILUREif the buffer is corrupt orLWRES_R_UNEXPECTEDENDif the buffer has less space than expected for the components of theencoded string or address.

lwres_getaddrsbyname()returnsLWRES_R_SUCCESSon success and it returnsLWRES_R_NOTFOUNDif the hostnamenamecould not be found.

LWRES_R_SUCCESSis returned by a successful call tolwres_getnamebyaddr().

Bothlwres_getaddrsbyname()andlwres_getnamebyaddr()returnLWRES_R_NOMEMORYwhen memory allocation requests fail andLWRES_R_UNEXPECTEDENDif the buffers used for sending queries and receiving replies are toosmall. 

SEE ALSO

lwres_buffer(3),lwres_gabn(3).


 

Index

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
SEE ALSO

This document was created byman2html,using the manual pages.