From ea648e70a989cca190cd7403fe892fd2dcc290b4 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 5 May 2024 20:37:14 +0200 Subject: Adding upstream version 1:9.11.5.P4+dfsg. Signed-off-by: Daniel Baumann --- lib/lwres/man/lwres_context.html | 294 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 294 insertions(+) create mode 100644 lib/lwres/man/lwres_context.html (limited to 'lib/lwres/man/lwres_context.html') diff --git a/lib/lwres/man/lwres_context.html b/lib/lwres/man/lwres_context.html new file mode 100644 index 0000000..84fcf28 --- /dev/null +++ b/lib/lwres/man/lwres_context.html @@ -0,0 +1,294 @@ + + + + + +lwres_context + + +
+
+ + + + + + + +
+

Name

+

+ lwres_context_create, + lwres_context_destroy, + lwres_context_nextserial, + lwres_context_initserial, + lwres_context_freemem, + lwres_context_allocmem, + lwres_context_sendrecv + — lightweight resolver context management +

+
+
+

Synopsis

+
+
#include <lwres/lwres.h>
+ + + + + + + + + + + + + + + + + +
+lwres_result_t +lwres_context_create(lwres_context_t **contextp,
 void *arg,
 lwres_malloc_t malloc_function,
 lwres_free_t free_function);
+
 
+ + + +
+lwres_result_t +lwres_context_destroy(lwres_context_t **contextp);
+
 
+ + + + + + + + + +
+void +lwres_context_initserial(lwres_context_t *ctx,
 uint32_t serial);
+
 
+ + + +
+uint32_t +lwres_context_nextserial(lwres_context_t *ctx);
+
 
+ + + + + + + + + + + + + +
+void +lwres_context_freemem(lwres_context_t *ctx,
 void *mem,
 size_t len);
+
 
+ + + + + + + + + +
+void +lwres_context_allocmem(lwres_context_t *ctx,
 size_t len);
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+void * +lwres_context_sendrecv(lwres_context_t *ctx,
 void *sendbase,
 int sendlen,
 void *recvbase,
 int recvlen,
 int *recvd_len);
+
 
+
+
+
+

DESCRIPTION

+ + +

lwres_context_create() + creates a lwres_context_t structure for use in + lightweight resolver operations. It holds a socket and other + data needed for communicating with a resolver daemon. The new + lwres_context_t is returned through + contextp, a pointer to a + lwres_context_t pointer. This + lwres_context_t pointer must initially be NULL, and + is modified to point to the newly created + lwres_context_t. +

+

+ When the lightweight resolver needs to perform dynamic memory + allocation, it will call + malloc_function + to allocate memory and + free_function + to free it. If + malloc_function + and + free_function + are NULL, memory is allocated using + + malloc(3) + . + and + + free(3) + . + + It is not permitted to have a NULL + malloc_function and a non-NULL + free_function or vice versa. + arg is passed as the first parameter to + the memory allocation functions. If + malloc_function and + free_function are NULL, + arg is unused and should be passed as + NULL. +

+ +

+ Once memory for the structure has been allocated, + it is initialized using + + lwres_conf_init(3) + + and returned via *contextp. +

+ +

lwres_context_destroy() + destroys a lwres_context_t, closing its socket. + contextp is a pointer to a pointer to the + context that is to be destroyed. The pointer will be set to + NULL when the context has been destroyed. +

+ +

+ The context holds a serial number that is used to identify + resolver request packets and associate responses with the + corresponding requests. This serial number is controlled using + lwres_context_initserial() and + lwres_context_nextserial(). + lwres_context_initserial() sets the serial + number for context *ctx to + serial. + lwres_context_nextserial() increments the + serial number and returns the previous value. +

+ +

+ Memory for a lightweight resolver context is allocated and freed + using lwres_context_allocmem() and + lwres_context_freemem(). These use + whatever allocations were defined when the context was created + with lwres_context_create(). + lwres_context_allocmem() allocates + len bytes of memory and if successful + returns a pointer to the allocated storage. + lwres_context_freemem() frees + len bytes of space starting at location + mem. +

+ +

lwres_context_sendrecv() + performs I/O for the context ctx. Data + are read and written from the context's socket. It writes data + from sendbase — typically a + lightweight resolver query packet — and waits for a reply + which is copied to the receive buffer at + recvbase. The number of bytes that were + written to this receive buffer is returned in + *recvd_len. +

+
+ +
+

RETURN VALUES

+ + +

lwres_context_create() + returns LWRES_R_NOMEMORY if memory for + the struct lwres_context could not be allocated, + LWRES_R_SUCCESS otherwise. +

+

+ Successful calls to the memory allocator + lwres_context_allocmem() + return a pointer to the start of the allocated space. + It returns NULL if memory could not be allocated. +

+

LWRES_R_SUCCESS + is returned when + lwres_context_sendrecv() + completes successfully. + LWRES_R_IOERROR + is returned if an I/O error occurs and + LWRES_R_TIMEOUT + is returned if + lwres_context_sendrecv() + times out waiting for a response. +

+
+
+

SEE ALSO

+ +

+ lwres_conf_init(3) + , + + + malloc(3) + , + + + free(3) + . +

+
+
+ -- cgit v1.2.3