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 the
lwres_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.