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_gabn.html | 304 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 lib/lwres/man/lwres_gabn.html (limited to 'lib/lwres/man/lwres_gabn.html') diff --git a/lib/lwres/man/lwres_gabn.html b/lib/lwres/man/lwres_gabn.html new file mode 100644 index 0000000..612045e --- /dev/null +++ b/lib/lwres/man/lwres_gabn.html @@ -0,0 +1,304 @@ + + + + + +lwres_gabn + + +
+
+ + + + + + + +
+

Name

+

+ lwres_gabnrequest_render, + lwres_gabnresponse_render, + lwres_gabnrequest_parse, + lwres_gabnresponse_parse, + lwres_gabnresponse_free, + lwres_gabnrequest_free + — lightweight resolver getaddrbyname message handling +

+
+
+

Synopsis

+
+
#include <lwres/lwres.h>
+ + + + + + + + + + + + + + + + + +
+lwres_result_t +lwres_gabnrequest_render(lwres_context_t *ctx,
 lwres_gabnrequest_t *req,
 lwres_lwpacket_t *pkt,
 lwres_buffer_t *b);
+
 
+ + + + + + + + + + + + + + + + + +
+lwres_result_t +lwres_gabnresponse_render(lwres_context_t *ctx,
 lwres_gabnresponse_t *req,
 lwres_lwpacket_t *pkt,
 lwres_buffer_t *b);
+
 
+ + + + + + + + + + + + + + + + + +
+lwres_result_t +lwres_gabnrequest_parse(lwres_context_t *ctx,
 lwres_buffer_t *b,
 lwres_lwpacket_t *pkt,
 lwres_gabnrequest_t **structp);
+
 
+ + + + + + + + + + + + + + + + + +
+lwres_result_t +lwres_gabnresponse_parse(lwres_context_t *ctx,
 lwres_buffer_t *b,
 lwres_lwpacket_t *pkt,
 lwres_gabnresponse_t **structp);
+
 
+ + + + + + + + + +
+void +lwres_gabnresponse_free(lwres_context_t *ctx,
 lwres_gabnresponse_t **structp);
+
 
+ + + + + + + + + +
+void +lwres_gabnrequest_free(lwres_context_t *ctx,
 lwres_gabnrequest_t **structp);
+
 
+
+
+
+

DESCRIPTION

+ +

+ These are low-level routines for creating and parsing + lightweight resolver name-to-address lookup request and + response messages. +

+

+ There are four main functions for the getaddrbyname opcode. + One render function converts a getaddrbyname request structure — + lwres_gabnrequest_t — + to the lightweight resolver's canonical format. + It is complemented by a parse function that converts a packet in this + canonical format to a getaddrbyname request structure. + Another render function converts the getaddrbyname response structure + — lwres_gabnresponse_t — + to the canonical format. + This is complemented by a parse function which converts a packet in + canonical format to a getaddrbyname response structure. +

+

+ These structures are defined in + <lwres/lwres.h>. + They are shown below. +

+
+#define LWRES_OPCODE_GETADDRSBYNAME     0x00010001U
+
+

+

+
+typedef struct lwres_addr lwres_addr_t;
+typedef LWRES_LIST(lwres_addr_t) lwres_addrlist_t;
+
+

+

+
+typedef struct {
+        uint32_t  flags;
+        uint32_t  addrtypes;
+        uint16_t  namelen;
+        char           *name;
+} lwres_gabnrequest_t;
+
+

+

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

+

+ +

lwres_gabnrequest_render() + uses resolver context ctx to convert + getaddrbyname request structure req to + canonical format. The packet header structure + pkt is initialised and transferred to + buffer b. + + The contents of *req are then appended to + the buffer in canonical format. + lwres_gabnresponse_render() performs the + same task, except it converts a getaddrbyname response structure + lwres_gabnresponse_t to the lightweight resolver's + canonical format. +

+ +

lwres_gabnrequest_parse() + uses context ctx to convert the contents + of packet pkt to a + lwres_gabnrequest_t structure. Buffer + b provides space to be used for storing + this structure. When the function succeeds, the resulting + lwres_gabnrequest_t is made available through + *structp. + + lwres_gabnresponse_parse() offers the same + semantics as lwres_gabnrequest_parse() + except it yields a lwres_gabnresponse_t structure. +

+ +

lwres_gabnresponse_free() + and lwres_gabnrequest_free() release the + memory in resolver context ctx that was + allocated to the lwres_gabnresponse_t or + lwres_gabnrequest_t structures referenced via + structp. + + Any memory associated with ancillary buffers and strings for + those structures is also discarded. +

+
+
+

RETURN VALUES

+ +

+ The getaddrbyname opcode functions + lwres_gabnrequest_render(), + lwres_gabnresponse_render() + lwres_gabnrequest_parse() + and + lwres_gabnresponse_parse() + all return + LWRES_R_SUCCESS + on success. + They return + LWRES_R_NOMEMORY + if memory allocation fails. + LWRES_R_UNEXPECTEDEND + is returned if the available space in the buffer + b + is too small to accommodate the packet header or the + lwres_gabnrequest_t + and + lwres_gabnresponse_t + structures. + lwres_gabnrequest_parse() + and + lwres_gabnresponse_parse() + will return + LWRES_R_UNEXPECTEDEND + if the buffer is not empty after decoding the received packet. + These functions will return + LWRES_R_FAILURE + if + pktflags + in the packet header structure + lwres_lwpacket_t + indicate that the packet is not a response to an earlier query. +

+
+
+

SEE ALSO

+ +

+ lwres_packet(3) + +

+
+
+ -- cgit v1.2.3