lwres_resutil.docbook revision 83a28ca274521e15086fc39febde507bcc4e145e
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont<!--
52c1cac19a87d591152634a1de44a0311383b359Automatic Updater - Copyright (C) 2000, 2001, 2004, 2005, 2007, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont -
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater - This Source Code Form is subject to the terms of the Mozilla Public
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont - License, v. 2.0. If a copy of the MPL was not distributed with this
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont - file, You can obtain one at http://mozilla.org/MPL/2.0/.
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont-->
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont<!-- Converted by db4-upgrade version 1.0 -->
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0">
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <info>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <date>2007-06-18</date>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </info>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <refentryinfo>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <corpname>ISC</corpname>
8e821eea5f57ac47a94305aa7ab0c3570d92a311Automatic Updater <corpauthor>Internet Systems Consortium, Inc.</corpauthor>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </refentryinfo>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <refmeta>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <refentrytitle>lwres_resutil</refentrytitle>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <manvolnum>3</manvolnum>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <refmiscinfo>BIND9</refmiscinfo>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </refmeta>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <docinfo>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <copyright>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <year>2000</year>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <year>2001</year>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <year>2004</year>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <year>2005</year>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater <year>2007</year>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <year>2014</year>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <year>2015</year>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater <year>2016</year>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </copyright>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </docinfo>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <refnamediv>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <refname>lwres_string_parse</refname>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <refname>lwres_addr_parse</refname>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <refname>lwres_getaddrsbyname</refname>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <refname>lwres_getnamebyaddr</refname>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <refpurpose>lightweight resolver utility functions</refpurpose>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </refnamediv>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <refsynopsisdiv>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater <funcsynopsis>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont<funcsynopsisinfo>#include &lt;lwres/lwres.h&gt;</funcsynopsisinfo>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont<funcprototype>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <funcdef>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupontlwres_result_t
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont<function>lwres_string_parse</function></funcdef>
8e821eea5f57ac47a94305aa7ab0c3570d92a311Automatic Updater <paramdef>lwres_buffer_t *<parameter>b</parameter></paramdef>
8e821eea5f57ac47a94305aa7ab0c3570d92a311Automatic Updater <paramdef>char **<parameter>c</parameter></paramdef>
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater <paramdef>lwres_uint16_t *<parameter>len</parameter></paramdef>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </funcprototype>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater<funcprototype>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater <funcdef>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updaterlwres_result_t
8e821eea5f57ac47a94305aa7ab0c3570d92a311Automatic Updater<function>lwres_addr_parse</function></funcdef>
8e821eea5f57ac47a94305aa7ab0c3570d92a311Automatic Updater <paramdef>lwres_buffer_t *<parameter>b</parameter></paramdef>
8e821eea5f57ac47a94305aa7ab0c3570d92a311Automatic Updater <paramdef>lwres_addr_t *<parameter>addr</parameter></paramdef>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater </funcprototype>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont<funcprototype>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <funcdef>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupontlwres_result_t
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont<function>lwres_getaddrsbyname</function></funcdef>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <paramdef>lwres_context_t *<parameter>ctx</parameter></paramdef>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <paramdef>const char *<parameter>name</parameter></paramdef>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <paramdef>lwres_uint32_t <parameter>addrtypes</parameter></paramdef>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <paramdef>lwres_gabnresponse_t **<parameter>structp</parameter></paramdef>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater </funcprototype>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater<funcprototype>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater <funcdef>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updaterlwres_result_t
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater<function>lwres_getnamebyaddr</function></funcdef>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater <paramdef>lwres_context_t *<parameter>ctx</parameter></paramdef>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater <paramdef>lwres_uint32_t <parameter>addrtype</parameter></paramdef>
8ec3c085233cedb22b05da36e2773c8f357a7e45Automatic Updater <paramdef>lwres_uint16_t <parameter>addrlen</parameter></paramdef>
8ec3c085233cedb22b05da36e2773c8f357a7e45Automatic Updater <paramdef>const unsigned char *<parameter>addr</parameter></paramdef>
8ec3c085233cedb22b05da36e2773c8f357a7e45Automatic Updater <paramdef>lwres_gnbaresponse_t **<parameter>structp</parameter></paramdef>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater </funcprototype>
8ec3c085233cedb22b05da36e2773c8f357a7e45Automatic Updater</funcsynopsis>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </refsynopsisdiv>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater <refsection><info><title>DESCRIPTION</title></info>
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updater
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <para><function>lwres_string_parse()</function>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont retrieves a DNS-encoded string starting the current pointer of
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont lightweight resolver buffer <parameter>b</parameter>: i.e.
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <constant>b-&gt;current</constant>. When the function returns,
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont the address of the first byte of the encoded string is returned
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont via <parameter>*c</parameter> and the length of that string is
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont given by <parameter>*len</parameter>. The buffer's current
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont pointer is advanced to point at the character following the
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater string length, the encoded string, and the trailing
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <type>NULL</type> character.
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater </para>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <para><function>lwres_addr_parse()</function>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater extracts an address from the buffer <parameter>b</parameter>.
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater The buffer's current pointer <constant>b-&gt;current</constant>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater is presumed to point at an encoded address: the address preceded
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater by a 32-bit protocol family identifier and a 16-bit length
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater field. The encoded address is copied to
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <constant>addr-&gt;address</constant> and
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <constant>addr-&gt;length</constant> indicates the size in bytes
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont of the address that was copied.
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <constant>b-&gt;current</constant> is advanced to point at the
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont next byte of available data in the buffer following the encoded
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont address.
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </para>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <para><function>lwres_getaddrsbyname()</function>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont and <function>lwres_getnamebyaddr()</function> use the
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <type>lwres_gnbaresponse_t</type> structure defined below:
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </para>
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater<para><programlisting>
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updatertypedef struct {
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater lwres_uint32_t flags;
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater lwres_uint16_t naliases;
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont lwres_uint16_t naddrs;
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont char *realname;
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont char **aliases;
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater lwres_uint16_t realnamelen;
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont lwres_uint16_t *aliaslen;
0a7ed88633a680bb881868b75ded4d09a7bbbc50Automatic Updater lwres_addrlist_t addrs;
0a7ed88633a680bb881868b75ded4d09a7bbbc50Automatic Updater void *base;
0a7ed88633a680bb881868b75ded4d09a7bbbc50Automatic Updater size_t baselen;
0a7ed88633a680bb881868b75ded4d09a7bbbc50Automatic Updater} lwres_gabnresponse_t;
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont</programlisting></para>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <para>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont The contents of this structure are not manipulated directly but
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont they are controlled through the
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <citerefentry>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <refentrytitle>lwres_gabn</refentrytitle><manvolnum>3</manvolnum>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </citerefentry>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont functions.
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </para>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <para>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont The lightweight resolver uses
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <function>lwres_getaddrsbyname()</function> to perform
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont forward lookups.
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont Hostname <parameter>name</parameter> is looked up using the
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont resolver
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont context <parameter>ctx</parameter> for memory allocation.
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <parameter>addrtypes</parameter> is a bitmask indicating
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont which type of
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont addresses are to be looked up. Current values for this bitmask are
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <type>LWRES_ADDRTYPE_V4</type> for IPv4 addresses and
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <type>LWRES_ADDRTYPE_V6</type> for IPv6 addresses. Results of the
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont lookup are returned in <parameter>*structp</parameter>.
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </para>
8e821eea5f57ac47a94305aa7ab0c3570d92a311Automatic Updater
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <para><function>lwres_getnamebyaddr()</function>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater performs reverse lookups. Resolver context
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <parameter>ctx</parameter> is used for memory allocation. The
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater address type is indicated by <parameter>addrtype</parameter>:
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <type>LWRES_ADDRTYPE_V4</type> or
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <type>LWRES_ADDRTYPE_V6</type>. The address to be looked up is
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater given by <parameter>addr</parameter> and its length is
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <parameter>addrlen</parameter> bytes. The result of the
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater function call is made available through
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <parameter>*structp</parameter>.
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater </para>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater </refsection>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <refsection><info><title>RETURN VALUES</title></info>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater <para>
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater Successful calls to
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <function>lwres_string_parse()</function>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater and
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <function>lwres_addr_parse()</function>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater return
5a24d24c8fba3480d707c0c902379ddb36501e12Automatic Updater <errorcode>LWRES_R_SUCCESS.</errorcode>
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater Both functions return
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater <errorcode>LWRES_R_FAILURE</errorcode>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater if the buffer is corrupt or
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <errorcode>LWRES_R_UNEXPECTEDEND</errorcode>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater if the buffer has less space than expected for the components of the
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater encoded string or address.
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater </para>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <para><function>lwres_getaddrsbyname()</function>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater returns <errorcode>LWRES_R_SUCCESS</errorcode> on success and it
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater returns <errorcode>LWRES_R_NOTFOUND</errorcode> if the hostname
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater <parameter>name</parameter> could not be found.
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater </para>
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater <para><errorcode>LWRES_R_SUCCESS</errorcode>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater is returned by a successful call to
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <function>lwres_getnamebyaddr()</function>.
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater </para>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater <para>
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updater Both
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <function>lwres_getaddrsbyname()</function>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater and
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater <function>lwres_getnamebyaddr()</function>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater return
8e821eea5f57ac47a94305aa7ab0c3570d92a311Automatic Updater <errorcode>LWRES_R_NOMEMORY</errorcode>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont when memory allocation requests fail and
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <errorcode>LWRES_R_UNEXPECTEDEND</errorcode>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont if the buffers used for sending queries and receiving replies are too
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont small.
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </para>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </refsection>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <refsection><info><title>SEE ALSO</title></info>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <para><citerefentry>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <refentrytitle>lwres_buffer</refentrytitle><manvolnum>3</manvolnum>
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater </citerefentry>,
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <citerefentry>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont <refentrytitle>lwres_gabn</refentrytitle><manvolnum>3</manvolnum>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </citerefentry>.
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </para>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont </refsection>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont</refentry>
90f35c2f2a1c660f3b96eec413036d238df395f6Francis Dupont