From f50ae72ec3417cae55dd4e085991c01af9fdc5f1 Mon Sep 17 00:00:00 2001 From: Martin Nagy Date: Wed, 11 Feb 2009 20:37:59 +0100 Subject: Initial commit --- lib/lwres/man/lwres_resutil.html | 258 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 lib/lwres/man/lwres_resutil.html (limited to 'lib/lwres/man/lwres_resutil.html') diff --git a/lib/lwres/man/lwres_resutil.html b/lib/lwres/man/lwres_resutil.html new file mode 100644 index 0000000..7bc3e6e --- /dev/null +++ b/lib/lwres/man/lwres_resutil.html @@ -0,0 +1,258 @@ + + + + + +lwres_resutil + + +
+
+
+

Name

+

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

+
+
+

Synopsis

+
+
#include <lwres/lwres.h>
+ + + + + + + + + + + + + + + + +
+lwres_result_t +lwres_string_parse(lwres_buffer_t *  +b,
 char **  +c,
 lwres_uint16_t *  +len);
+ + + + + + + + + + + +
+lwres_result_t +lwres_addr_parse(lwres_buffer_t *  +b,
 lwres_addr_t *  +addr);
+ + + + + + + + + + + + + + + + + + + + + +
+lwres_result_t +lwres_getaddrsbyname(lwres_context_t *  +ctx,
 const char *  +name,
 lwres_uint32_t   +addrtypes,
 lwres_gabnresponse_t **  +structp);
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+lwres_result_t +lwres_getnamebyaddr(lwres_context_t *  +ctx,
 lwres_uint32_t   +addrtype,
 lwres_uint16_t   +addrlen,
 const unsigned char *  +addr,
 lwres_gnbaresponse_t **  +structp);
+
+
+
+

DESCRIPTION

+

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

+

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

+

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

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

+ The contents of this structure are not manipulated directly but + they are controlled through the + lwres_gabn(3) + functions. +

+

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

+

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

+
+
+

RETURN VALUES

+

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

+

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

+

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

+

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

+
+
+

SEE ALSO

+

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

+
+
+ -- cgit