lwres_gnba.docbook revision 8eea877894ea5bcf5cdd9ca124a8601ad421d753
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<!--
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington - Copyright (C) 2001 Internet Software Consortium.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson -
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson - Permission to use, copy, modify, and distribute this software for any
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson - purpose with or without fee is hereby granted, provided that the above
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson - copyright notice and this permission notice appear in all copies.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson -
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson - THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson - DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson - INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson - FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson - NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson - WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson-->
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
8eea877894ea5bcf5cdd9ca124a8601ad421d753Andreas Gustafsson<!-- $Id: lwres_gnba.docbook,v 1.4 2001/04/24 18:11:16 gson Exp $ -->
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refentry>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refentryinfo>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<date>Jun 30, 2000</date>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</refentryinfo>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<refmeta>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<refentrytitle>lwres_gnba</refentrytitle>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<manvolnum>3</manvolnum>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<refmiscinfo>BIND9</refmiscinfo>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</refmeta>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refnamediv>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refname>lwres_gnbarequest_render</refname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refname>lwres_gnbaresponse_render</refname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refname>lwres_gnbarequest_parse</refname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refname>lwres_gnbaresponse_parse</refname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refname>lwres_gnbaresponse_free</refname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refname>lwres_gnbarequest_free</refname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refpurpose>lightweight resolver getnamebyaddress message handling</refpurpose>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</refnamediv>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refsynopsisdiv>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcsynopsis>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcsynopsisinfo>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson#include &lt;lwres/lwres.h&gt;
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</funcsynopsisinfo>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcprototype>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonlwres_result_t
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbarequest_render</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</funcdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_context_t *<parameter>ctx</parameter></paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_gnbarequest_t *<parameter>req</parameter></paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_lwpacket_t *<parameter>pkt</parameter></paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_buffer_t *<parameter>b</parameter></paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</funcprototype>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcprototype>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonlwres_result_t
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbaresponse_render</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</funcdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_context_t *ctx</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_gnbaresponse_t *req</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_lwpacket_t *pkt</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_buffer_t *b</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</funcprototype>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcprototype>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonlwres_result_t
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbarequest_parse</function></funcdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_context_t *ctx</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_buffer_t *b</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_lwpacket_t *pkt</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_gnbarequest_t **structp</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</funcprototype>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcprototype>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonlwres_result_t
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbaresponse_parse</function></funcdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_context_t *ctx</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_buffer_t *b</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_lwpacket_t *pkt</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_gnbaresponse_t **structp</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</funcprototype>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcprototype>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonvoid
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbaresponse_free</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</funcdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_context_t *ctx</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_gnbaresponse_t **structp</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</funcprototype>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcprototype>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<funcdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonvoid
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbarequest_free</function></funcdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_context_t *ctx</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<paramdef>lwres_gnbarequest_t **structp</paramdef>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</funcprototype>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</funcsynopsis>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</refsynopsisdiv>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refsect1>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<title>DESCRIPTION</title>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonThese are low-level routines for creating and parsing
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonlightweight resolver address-to-name lookup request and
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonresponse messages.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonThere are four main functions for the getnamebyaddr opcode.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonOne render function converts a getnamebyaddr request structure &mdash;
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<type>lwres_gnbarequest_t</type> &mdash;
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonto the lightweight resolver's canonical format.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonIt is complemented by a parse function that converts a packet in this
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssoncanonical format to a getnamebyaddr request structure.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonAnother render function converts the getnamebyaddr response structure &mdash;
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<type>lwres_gnbaresponse_t</type>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonto the canonical format.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonThis is complemented by a parse function which converts a packet in
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssoncanonical format to a getnamebyaddr response structure.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonThese structures are defined in
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<filename>lwres/lwres.h</filename>.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonThey are shown below.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<programlisting>
8eea877894ea5bcf5cdd9ca124a8601ad421d753Andreas Gustafsson#define LWRES_OPCODE_GETNAMEBYADDR 0x00010002U
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssontypedef struct {
8eea877894ea5bcf5cdd9ca124a8601ad421d753Andreas Gustafsson lwres_uint32_t flags;
8eea877894ea5bcf5cdd9ca124a8601ad421d753Andreas Gustafsson lwres_addr_t addr;
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson} lwres_gnbarequest_t;
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssontypedef struct {
8eea877894ea5bcf5cdd9ca124a8601ad421d753Andreas Gustafsson lwres_uint32_t flags;
8eea877894ea5bcf5cdd9ca124a8601ad421d753Andreas Gustafsson lwres_uint16_t naliases;
8eea877894ea5bcf5cdd9ca124a8601ad421d753Andreas Gustafsson char *realname;
8eea877894ea5bcf5cdd9ca124a8601ad421d753Andreas Gustafsson char **aliases;
8eea877894ea5bcf5cdd9ca124a8601ad421d753Andreas Gustafsson lwres_uint16_t realnamelen;
8eea877894ea5bcf5cdd9ca124a8601ad421d753Andreas Gustafsson lwres_uint16_t *aliaslen;
8eea877894ea5bcf5cdd9ca124a8601ad421d753Andreas Gustafsson void *base;
8eea877894ea5bcf5cdd9ca124a8601ad421d753Andreas Gustafsson size_t baselen;
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson} lwres_gnbaresponse_t;
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</programlisting>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbarequest_render()</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonuses resolver context
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<varname>ctx</varname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonto convert getnamebyaddr request structure
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<varname>req</varname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonto canonical format.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonThe packet header structure
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<varname>pkt</varname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonis initialised and transferred to
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonbuffer
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<varname>b</varname>.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonThe contents of
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<varname>*req</varname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonare then appended to the buffer in canonical format.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbaresponse_render()</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonperforms the same task, except it converts a getnamebyaddr response structure
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<type>lwres_gnbaresponse_t</type>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonto the lightweight resolver's canonical format.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbarequest_parse()</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonuses context
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<varname>ctx</varname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonto convert the contents of packet
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<varname>pkt</varname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonto a
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<type>lwres_gnbarequest_t</type>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonstructure.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonBuffer
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<varname>b</varname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonprovides space to be used for storing this structure.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonWhen the function succeeds, the resulting
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<type>lwres_gnbarequest_t</type>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonis made available through
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<varname>*structp</varname>.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbaresponse_parse()</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonoffers the same semantics as
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbarequest_parse()</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonexcept it yields a
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<type>lwres_gnbaresponse_t</type>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonstructure.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbaresponse_free()</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonand
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbarequest_free()</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonrelease the memory in resolver context
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<varname>ctx</varname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonthat was allocated to the
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<type>lwres_gnbaresponse_t</type>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonor
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<type>lwres_gnbarequest_t</type>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonstructures referenced via
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<varname>structp</varname>.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonAny memory associated with ancillary buffers and strings for those
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonstructures is also discarded.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</refsect1>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refsect1>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<title>RETURN VALUES</title>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonThe getnamebyaddr opcode functions
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbarequest_render()</function>,
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbaresponse_render()</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbarequest_parse()</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonand
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbaresponse_parse()</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonall return
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<errorcode>LWRES_R_SUCCESS</errorcode>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonon success.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonThey return
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<errorcode>LWRES_R_NOMEMORY</errorcode>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonif memory allocation fails.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<errorcode>LWRES_R_UNEXPECTEDEND</errorcode>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonis returned if the available space in the buffer
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<varname>b</varname>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonis too small to accommodate the packet header or the
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<type>lwres_gnbarequest_t</type>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonand
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<type>lwres_gnbaresponse_t</type>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonstructures.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbarequest_parse()</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonand
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<function>lwres_gnbaresponse_parse()</function>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonwill return
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<errorcode>LWRES_R_UNEXPECTEDEND</errorcode>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonif the buffer is not empty after decoding the received packet.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas GustafssonThese functions will return
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<errorcode>LWRES_R_FAILURE</errorcode>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonif
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<structfield>pktflags</structfield>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonin the packet header structure
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<type>lwres_lwpacket_t</type>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafssonindicate that the packet is not a response to an earlier query.
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</refsect1>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<refsect1>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<title>SEE ALSO</title>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson<para>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<citerefentry>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<refentrytitle>lwres_packet</refentrytitle>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<manvolnum>3</manvolnum>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</citerefentry>.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</para>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</refsect1>
9ffbbce6a624b6051b3d001edcbad1e02c69bd45Andreas Gustafsson</refentry>