lwres_gabn.docbook revision d4ef65050feac78554addf6e16a06c6e2e0bd331
803b50652fd6ad81d04d18fc04332c8a94f8fe9aAndreas Gustafsson<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox User<!--
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews - Copyright (C) 2001 Internet Software Consortium.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein -
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater - Permission to use, copy, modify, and distribute this software for any
803b50652fd6ad81d04d18fc04332c8a94f8fe9aAndreas Gustafsson - purpose with or without fee is hereby granted, provided that the above
803b50652fd6ad81d04d18fc04332c8a94f8fe9aAndreas Gustafsson - copyright notice and this permission notice appear in all copies.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein -
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
803b50652fd6ad81d04d18fc04332c8a94f8fe9aAndreas Gustafsson - WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User-->
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<!-- $Id: lwres_gabn.docbook,v 1.2 2001/04/10 21:51:29 bwelling Exp $ -->
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<refentry>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater<refentryinfo>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater<date>Jun 30, 2000</date>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</refentryinfo>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<refmeta>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater<refentrytitle>lwres_gabn</refentrytitle>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<manvolnum>3</manvolnum>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<refmiscinfo>BIND9</refmiscinfo>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</refmeta>
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User<refnamediv>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<refname>lwres_gabnrequest_render</refname>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<refname>lwres_gabnresponse_render</refname>
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User<refname>lwres_gabnrequest_parse</refname>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<refname>lwres_gabnresponse_parse</refname>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater<refname>lwres_gabnresponse_free</refname>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<refname>lwres_gabnrequest_free</refname>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<refpurpose>lightweight resolver getaddrbyname message handling</refpurpose>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</refnamediv>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<refsynopsisdiv>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<funcsynopsis>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<funcsynopsisinfo>#include &lt;lwres/lwres.h&gt;</funcsynopsisinfo>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<funcprototype>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<funcdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlwres_result_t
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<function>lwres_gabnrequest_render</function></funcdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<paramdef>lwres_context_t *ctx</paramdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<paramdef>lwres_gabnrequest_t *req</paramdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<paramdef>lwres_lwpacket_t *pkt</paramdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<paramdef>lwres_buffer_t *b</paramdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</funcprototype>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<funcprototype>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<funcdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlwres_result_t
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<function>lwres_gabnresponse_render</function></funcdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<paramdef>lwres_context_t *ctx</paramdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<paramdef>lwres_gabnresponse_t *req</paramdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<paramdef>lwres_lwpacket_t *pkt</paramdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<paramdef>lwres_buffer_t *b</paramdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</funcprototype>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<funcprototype>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<funcdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlwres_result_t
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<function>lwres_gabnrequest_parse</function></funcdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<paramdef>lwres_context_t *ctx</paramdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<paramdef>lwres_buffer_t *b</paramdef>
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater<paramdef>lwres_lwpacket_t *pkt</paramdef>
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater<paramdef>lwres_gabnrequest_t **structp</paramdef>
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater</funcprototype>
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater<funcprototype>
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt<funcdef>
351b62535d4c4f89883bfdba025999dd32490266Evan Huntlwres_result_t
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt<function>lwres_gabnresponse_parse</function></funcdef>
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt<paramdef>lwres_context_t *ctx</paramdef>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<paramdef>lwres_buffer_t *b</paramdef>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<paramdef>lwres_lwpacket_t *pkt</paramdef>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<paramdef>lwres_gabnresponse_t **structp</paramdef>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater</funcprototype>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater<funcprototype>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<funcdef>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updatervoid
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<function>lwres_gabnresponse_free</function></funcdef>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<paramdef>lwres_context_t *ctx</paramdef>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<paramdef>lwres_gabnresponse_t **structp</paramdef>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater</funcprototype>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<funcprototype>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<funcdef>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updatervoid
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<function>lwres_gabnrequest_free</function></funcdef>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<paramdef>lwres_context_t *ctx</paramdef>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<paramdef>lwres_gabnrequest_t **structp</paramdef>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater</funcprototype>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater</funcsynopsis>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater</refsynopsisdiv>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<refsect1>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater<title>DESCRIPTION</title>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater<para>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic UpdaterThese are low-level routines for creating and parsing
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updaterlightweight resolver name-to-address lookup request and
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updaterresponse messages.
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater</para><para>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinThere are four main functions for the getaddrbyname opcode.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinOne render function converts a getaddrbyname request structure &mdash;
7329012471d165cd3dc4180ad2a0a43de91e7f01Mark Andrews<type>lwres_gabnrequest_t</type> &mdash;
7329012471d165cd3dc4180ad2a0a43de91e7f01Mark Andrewsto the lighweight resolver's canonical format.
7329012471d165cd3dc4180ad2a0a43de91e7f01Mark AndrewsIt is complemented by a parse function that converts a packet in this
351b62535d4c4f89883bfdba025999dd32490266Evan Huntcanonical format to a getaddrbyname request structure.
351b62535d4c4f89883bfdba025999dd32490266Evan HuntAnother render function converts the getaddrbyname response structure &mdash;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt<type>lwres_gabnresponse_t</type> &mdash;
351b62535d4c4f89883bfdba025999dd32490266Evan Huntto the canonical format.
351b62535d4c4f89883bfdba025999dd32490266Evan HuntThis is complemented by a parse function which converts a packet in
7329012471d165cd3dc4180ad2a0a43de91e7f01Mark Andrewscanonical format to a getaddrbyname response structure.
7329012471d165cd3dc4180ad2a0a43de91e7f01Mark Andrews</para>
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt<para>
351b62535d4c4f89883bfdba025999dd32490266Evan HuntThese structures are defined in
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt<filename>&lt;lwres/lwres.h&gt;</filename>.
351b62535d4c4f89883bfdba025999dd32490266Evan HuntThey are shown below.
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt<programlisting>
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt#define LWRES_OPCODE_GETADDRSBYNAME 0x00010001U
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeintypedef struct lwres_addr lwres_addr_t;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunttypedef LWRES_LIST(lwres_addr_t) lwres_addrlist_t;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt
351b62535d4c4f89883bfdba025999dd32490266Evan Hunttypedef struct {
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt lwres_uint32_t flags;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt lwres_uint32_t addrtypes;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt lwres_uint16_t namelen;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt char *name;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt} lwres_gabnrequest_t;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt
351b62535d4c4f89883bfdba025999dd32490266Evan Hunttypedef struct {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein lwres_uint32_t flags;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein lwres_uint16_t naliases;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein lwres_uint16_t naddrs;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein char *realname;
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater char **aliases;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt lwres_uint16_t realnamelen;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt lwres_uint16_t *aliaslen;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt lwres_addrlist_t addrs;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt void *base;
90c38ab4e6904126bec2f2f57f60cd834ce759cbAutomatic Updater size_t baselen;
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt} lwres_gabnresponse_t;
3cddb2c552ee6582e8db0849c28747f6b6ca57feAutomatic Updater</programlisting>
3cddb2c552ee6582e8db0849c28747f6b6ca57feAutomatic Updater</para>
3cddb2c552ee6582e8db0849c28747f6b6ca57feAutomatic Updater<para>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<function>lwres_gabnrequest_render()</function>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinuses resolver context
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt<parameter>ctx</parameter>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinto convert getaddrbyname request structure
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<parameter>req</parameter>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinto canonical format.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinThe packet header structure
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<parameter>pkt</parameter>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinis initialised and transferred to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinbuffer
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<parameter>b</parameter>.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
351b62535d4c4f89883bfdba025999dd32490266Evan HuntThe contents of
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt<parameter>*req</parameter>
351b62535d4c4f89883bfdba025999dd32490266Evan Huntare then appended to the buffer in canonical format.
351b62535d4c4f89883bfdba025999dd32490266Evan Hunt<function>lwres_gabnresponse_render()</function>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinperforms the same task, except it converts a getaddrbyname response structure
d71e2e0c61df16ff37c9934c371a4a60c08974f7Mark Andrews<type>lwres_gabnresponse_t</type>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinto the lightweight resolver's canonical format.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</para>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<para>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<function>lwres_gabnrequest_parse()</function>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinuses context
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<parameter>ctx</parameter>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinto convert the contents of packet
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<parameter>pkt</parameter>
d71e2e0c61df16ff37c9934c371a4a60c08974f7Mark Andrewsto a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<type>lwres_gabnrequest_t</type>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinstructure.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinBuffer
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<parameter>b</parameter>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinprovides space to be used for storing this structure.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinWhen the function succeeds, the resulting
d71e2e0c61df16ff37c9934c371a4a60c08974f7Mark Andrews<type>lwres_gabnrequest_t</type>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinis made available through
f02216f5b390ff0a589fa080f29350fd7794bf5cMark Andrews<parameter>*structp</parameter>.
f02216f5b390ff0a589fa080f29350fd7794bf5cMark Andrews
f02216f5b390ff0a589fa080f29350fd7794bf5cMark Andrews<function>lwres_gabnresponse_parse()</function>
f02216f5b390ff0a589fa080f29350fd7794bf5cMark Andrewsoffers the same semantics as
f02216f5b390ff0a589fa080f29350fd7794bf5cMark Andrews<function>lwres_gabnrequest_parse()</function>
f02216f5b390ff0a589fa080f29350fd7794bf5cMark Andrewsexcept it yields a
f02216f5b390ff0a589fa080f29350fd7794bf5cMark Andrews<type>lwres_gabnresponse_t</type>
f02216f5b390ff0a589fa080f29350fd7794bf5cMark Andrewsstructure.
f02216f5b390ff0a589fa080f29350fd7794bf5cMark Andrews</para>
f02216f5b390ff0a589fa080f29350fd7794bf5cMark Andrews<para>
f02216f5b390ff0a589fa080f29350fd7794bf5cMark Andrews<function>lwres_gabnresponse_free()</function>
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox Userand
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User<function>lwres_gabnrequest_free()</function>
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox Userrelease the memory in resolver context
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User<parameter>ctx</parameter>
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox Userthat was allocated to the
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User<type>lwres_gabnresponse_t</type>
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox Useror
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User<type>lwres_gabnrequest_t</type>
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox Userstructures referenced via
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User<parameter>structp</parameter>.
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox UserAny memory associated with ancillary buffers and strings for those
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox Userstructures is also discarded.
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User</para>
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User</refsect1>
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User<refsect1>
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User<title>RETURN VALUES</title>
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User<para>
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox UserThe getaddrbyname opcode functions
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User<function>lwres_gabnrequest_render()</function>,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<function>lwres_gabnresponse_render()</function>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<function>lwres_gabnrequest_parse()</function>
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox Userand
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<function>lwres_gabnresponse_parse()</function>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinall return
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<errorcode>LWRES_R_SUCCESS</errorcode>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinon success.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinThey return
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<errorcode>LWRES_R_NOMEMORY</errorcode>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinif memory allocation fails.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<errorcode>LWRES_R_UNEXPECTEDEND</errorcode>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinis returned if the available space in the buffer
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<parameter>b</parameter>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinis too small to accommodate the packet header or the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<type>lwres_gabnrequest_t</type>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinand
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<type>lwres_gabnresponse_t</type>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinstructures.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<function>lwres_gabnrequest_parse()</function>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinand
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<function>lwres_gabnresponse_parse()</function>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinwill return
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<errorcode>LWRES_R_UNEXPECTEDEND</errorcode>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinif the buffer is not empty after decoding the received packet.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinThese functions will return
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<errorcode>LWRES_R_FAILURE</errorcode>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<structfield>pktflags</structfield>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinin the packet header structure
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<type>lwres_lwpacket_t</type>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinindicate that the packet is not a response to an earlier query.
69f175fc57a578dd85c1548ed3f34284321f9d3aMark Andrews</para>
69f175fc57a578dd85c1548ed3f34284321f9d3aMark Andrews</refsect1>
69f175fc57a578dd85c1548ed3f34284321f9d3aMark Andrews<refsect1>
69f175fc57a578dd85c1548ed3f34284321f9d3aMark Andrews<title>SEE ALSO</title>
69f175fc57a578dd85c1548ed3f34284321f9d3aMark Andrews<para>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<citerefentry>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<refentrytitle>lwres_packet</refentrytitle><manvolnum>3
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</manvolnum>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</citerefentry>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</para>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</refsect1>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</refentry>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein