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.docbook | 254 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 254 insertions(+) create mode 100644 lib/lwres/man/lwres_gabn.docbook (limited to 'lib/lwres/man/lwres_gabn.docbook') diff --git a/lib/lwres/man/lwres_gabn.docbook b/lib/lwres/man/lwres_gabn.docbook new file mode 100644 index 0000000..4cff953 --- /dev/null +++ b/lib/lwres/man/lwres_gabn.docbook @@ -0,0 +1,254 @@ +]> + + + + + + 2007-06-18 + + + ISC + Internet Systems Consortium, Inc. + + + + lwres_gabn + 3 + BIND9 + + + + + 2000 + 2001 + 2004 + 2005 + 2007 + 2014 + 2015 + 2016 + 2018 + 2019 + Internet Systems Consortium, Inc. ("ISC") + + + + + lwres_gabnrequest_render + lwres_gabnresponse_render + lwres_gabnrequest_parse + lwres_gabnresponse_parse + lwres_gabnresponse_free + lwres_gabnrequest_free + lightweight resolver getaddrbyname message handling + + + +#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_packet3 + + + + -- cgit v1.2.3