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_packet.docbook | 283 +++++++++++++++++++++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 lib/lwres/man/lwres_packet.docbook (limited to 'lib/lwres/man/lwres_packet.docbook') diff --git a/lib/lwres/man/lwres_packet.docbook b/lib/lwres/man/lwres_packet.docbook new file mode 100644 index 0000000..8b43750 --- /dev/null +++ b/lib/lwres/man/lwres_packet.docbook @@ -0,0 +1,283 @@ + + + + + + 2007-06-18 + + + ISC + Internet Systems Consortium, Inc. + + + + lwres_packet + 3 + BIND9 + + + + + 2000 + 2001 + 2004 + 2005 + 2007 + 2014 + 2015 + 2016 + 2018 + 2019 + Internet Systems Consortium, Inc. ("ISC") + + + + + lwres_lwpacket_renderheader + lwres_lwpacket_parseheader + lightweight resolver packet handling functions + + + +#include <lwres/lwpacket.h> + + +lwres_result_t +lwres_lwpacket_renderheader + lwres_buffer_t *b + lwres_lwpacket_t *pkt + + + +lwres_result_t +lwres_lwpacket_parseheader + lwres_buffer_t *b + lwres_lwpacket_t *pkt + + + + DESCRIPTION + + + These functions rely on a + struct lwres_lwpacket + which is defined in + lwres/lwpacket.h. + + + +typedef struct lwres_lwpacket lwres_lwpacket_t; + + + +struct lwres_lwpacket { + uint32_t length; + uint16_t version; + uint16_t pktflags; + uint32_t serial; + uint32_t opcode; + uint32_t result; + uint32_t recvlength; + uint16_t authtype; + uint16_t authlength; +}; + + + + + The elements of this structure are: + + + length + + + the overall packet length, including the entire packet header. + This field is filled in by the lwres_gabn_*() and lwres_gnba_*() + calls. + + + + + version + + + the header format. There is currently only one format, + LWRES_LWPACKETVERSION_0. + + This field is filled in by the lwres_gabn_*() and lwres_gnba_*() + calls. + + + + + pktflags + + + library-defined flags for this packet: for instance whether the + packet + is a request or a reply. Flag values can be set, but not defined + by + the caller. + This field is filled in by the application wit the exception of + the + LWRES_LWPACKETFLAG_RESPONSE bit, which is set by the library in + the + lwres_gabn_*() and lwres_gnba_*() calls. + + + + + serial + + + is set by the requestor and is returned in all replies. If two + or more + packets from the same source have the same serial number and are + from + the same source, they are assumed to be duplicates and the + latter ones + may be dropped. + This field must be set by the application. + + + + + opcode + + + indicates the operation. + Opcodes between 0x00000000 and 0x03ffffff are + reserved for use by the lightweight resolver library. Opcodes + between + 0x04000000 and 0xffffffff are application defined. + This field is filled in by the lwres_gabn_*() and lwres_gnba_*() + calls. + + + + + result + + + is only valid for replies. + Results between 0x04000000 and 0xffffffff are application + defined. + Results between 0x00000000 and 0x03ffffff are reserved for + library use. + This field is filled in by the lwres_gabn_*() and lwres_gnba_*() + calls. + + + + + recvlength + + + is the maximum buffer size that the receiver can handle on + requests + and the size of the buffer needed to satisfy a request when the + buffer + is too large for replies. + This field is supplied by the application. + + + + + authtype + + + defines the packet level authentication that is used. + Authorisation types between 0x1000 and 0xffff are application + defined + and types between 0x0000 and 0x0fff are reserved for library + use. + Currently these are not used and must be zero. + + + + + authlen + + + gives the length of the authentication data. + Since packet authentication is currently not used, this must be + zero. + + + + + + + The following opcodes are currently defined: + + + NOOP + + + Success is always returned and the packet contents are echoed. + The lwres_noop_*() functions should be used for this type. + + + + + GETADDRSBYNAME + + + returns all known addresses for a given name. + The lwres_gabn_*() functions should be used for this type. + + + + + GETNAMEBYADDR + + + return the hostname for the given address. + The lwres_gnba_*() functions should be used for this type. + + + + + + + lwres_lwpacket_renderheader() + transfers the contents of lightweight resolver packet structure + lwres_lwpacket_t *pkt in + network byte order to the lightweight resolver buffer, + *b. + + + lwres_lwpacket_parseheader() + performs the converse operation. It transfers data in network + byte order from buffer *b to resolver + packet *pkt. The contents of the buffer + b should correspond to a + lwres_lwpacket_t. + + + + + RETURN VALUES + + + Successful calls to + lwres_lwpacket_renderheader() and + lwres_lwpacket_parseheader() return + LWRES_R_SUCCESS. If there is insufficient + space to copy data between the buffer *b and + lightweight resolver packet *pkt both + functions + return LWRES_R_UNEXPECTEDEND. + + + + -- cgit v1.2.3