lwres_context.docbook revision ac299c4f5ca236370b9df2a91b18b149b1d344a7
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<!--
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder - Copyright (C) 2001 Internet Software Consortium.
83cc27e4ca7cf1a4bb5f4a8df17d3e6d44e6f1eaChristian Maeder -
4b0a4c7dea0f67a233dcc42ce9bb18d36de109aeChristian Maeder - Permission to use, copy, modify, and distribute this software for any
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder - purpose with or without fee is hereby granted, provided that the above
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder - copyright notice and this permission notice appear in all copies.
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder -
83cc27e4ca7cf1a4bb5f4a8df17d3e6d44e6f1eaChristian Maeder - THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder - DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder - INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder - FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder - NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder - WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder-->
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<!-- $Id: lwres_context.docbook,v 1.3 2001/06/18 22:56:16 gson Exp $ -->
88d16ba9fcfb786c4e953f99982e3056ad2045ecChristian Maeder
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<refentry>
23f8d286586ff38a9e73052b2c7c04c62c5c638fChristian Maeder<refentryinfo>
83cc27e4ca7cf1a4bb5f4a8df17d3e6d44e6f1eaChristian Maeder
83cc27e4ca7cf1a4bb5f4a8df17d3e6d44e6f1eaChristian Maeder
83cc27e4ca7cf1a4bb5f4a8df17d3e6d44e6f1eaChristian Maeder<date>Jun 30, 2000</date>
9379646a4fecb772e793a8875bb92723e854268cChristian Maeder</refentryinfo>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<refmeta>
b190f5c7cf3ddda73724efe5ce82b9585ed76be1Christian Maeder<refentrytitle>lwres_context</refentrytitle>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<manvolnum>3</manvolnum>
83cc27e4ca7cf1a4bb5f4a8df17d3e6d44e6f1eaChristian Maeder<refmiscinfo>BIND9</refmiscinfo>
83cc27e4ca7cf1a4bb5f4a8df17d3e6d44e6f1eaChristian Maeder</refmeta>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<refnamediv>
cf58a323fcb5c4185c3aa378713bbee3bba18c0aChristian Maeder<refname>lwres_context_create</refname>
cf58a323fcb5c4185c3aa378713bbee3bba18c0aChristian Maeder<refname>lwres_context_destroy</refname>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<refname>lwres_context_nextserial</refname>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<refname>lwres_context_initserial</refname>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<refname>lwres_context_freemem</refname>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<refname>lwres_context_allocmem</refname>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<refname>lwres_context_sendrecv</refname>
1db126da06f707b90b5be9d66a73c36ee2cd22eeChristian Maeder<refpurpose>lightweight resolver context management</refpurpose>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder</refnamediv>
1db126da06f707b90b5be9d66a73c36ee2cd22eeChristian Maeder<refsynopsisdiv>
1db126da06f707b90b5be9d66a73c36ee2cd22eeChristian Maeder<funcsynopsis>
1db126da06f707b90b5be9d66a73c36ee2cd22eeChristian Maeder<funcsynopsisinfo>#include &lt;lwres/lwres.h&gt;</funcsynopsisinfo>
1db126da06f707b90b5be9d66a73c36ee2cd22eeChristian Maeder<funcprototype>
1db126da06f707b90b5be9d66a73c36ee2cd22eeChristian Maeder<funcdef>
ca010363454de207082dfaa4b753531ce2a34551Christian Maederlwres_result_t
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<function>lwres_context_create</function></funcdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<paramdef>lwres_context_t **contextp</paramdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<paramdef>void *arg</paramdef>
d601fb0d7be0f4e8de9f01b5293df7d80673d76aChristian Maeder<paramdef>lwres_malloc_t malloc_function</paramdef>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<paramdef>lwres_free_t free_function</paramdef>
b190f5c7cf3ddda73724efe5ce82b9585ed76be1Christian Maeder</funcprototype>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<funcprototype>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<funcdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederlwres_result_t
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<function>lwres_context_destroy</function></funcdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<paramdef>lwres_context_t **contextp</paramdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder</funcprototype>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<funcprototype>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<funcdef>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maedervoid
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<function>lwres_context_initserial</function></funcdef>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<paramdef>lwres_context_t *ctx</paramdef>
801c2781e70c80f5f2069894a1f5cdfed7da8c9cChristian Maeder<paramdef>lwres_uint32_t serial</paramdef>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder</funcprototype>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<funcprototype>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<funcdef>
ca010363454de207082dfaa4b753531ce2a34551Christian Maederlwres_uint32_t
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<function>lwres_context_nextserial</function></funcdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<paramdef>lwres_context_t *ctx</paramdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder</funcprototype>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<funcprototype>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<funcdef>
83cc27e4ca7cf1a4bb5f4a8df17d3e6d44e6f1eaChristian Maedervoid
88d16ba9fcfb786c4e953f99982e3056ad2045ecChristian Maeder<function>lwres_context_freemem</function></funcdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<paramdef>lwres_context_t *ctx</paramdef>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<paramdef>void *mem</paramdef>
83cc27e4ca7cf1a4bb5f4a8df17d3e6d44e6f1eaChristian Maeder<paramdef>size_t len</paramdef>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder</funcprototype>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<funcprototype>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<funcdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maedervoid
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<function>lwres_context_allocmem</function></funcdef>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<paramdef>lwres_context_t *ctx</paramdef>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<paramdef>size_t len</paramdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder</funcprototype>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<funcprototype>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<funcdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maedervoid *
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<function>lwres_context_sendrecv</function></funcdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<paramdef>lwres_context_t *ctx</paramdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<paramdef>void *sendbase</paramdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<paramdef>int sendlen</paramdef>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<paramdef>void *recvbase</paramdef>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<paramdef>int recvlen</paramdef>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<paramdef>int *recvd_len</paramdef>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder</funcprototype>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder</funcsynopsis>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder</refsynopsisdiv>
ca010363454de207082dfaa4b753531ce2a34551Christian Maeder<refsect1>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<title>DESCRIPTION</title>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<para>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<function>lwres_context_create()</function>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maedercreates a
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<type>lwres_context_t</type>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maederstructure for use in lightweight resolver operations.
aae44eae4cd27141bea70af8d54844c3849a0711Christian MaederIt holds a socket and other data needed for communicating
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maederwith a resolver daemon.
46d766efdf8beaaadf3f34d99c305738064e9216Christian MaederThe new
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<type>lwres_context_t</type>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maederis returned throught
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<parameter>contextp</parameter>,
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maedera pointer to a
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<type>lwres_context_t</type>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maederpointer. This
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<type>lwres_context_t</type>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederpointer must initially be NULL, and is modified
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maederto point to the newly created
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<type>lwres_context_t</type>.
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder</para>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<para>
aae44eae4cd27141bea70af8d54844c3849a0711Christian MaederWhen the lightweight resolver needs to perform dynamic memory
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederallocation, it will call
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<parameter>malloc_function</parameter>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maederto allocate memory and
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<parameter>free_function</parameter>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederto free it. If
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<parameter>malloc_function</parameter>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maederand
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<parameter>free_function</parameter>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder
b190f5c7cf3ddda73724efe5ce82b9585ed76be1Christian Maederare NULL, memory is allocated using
b190f5c7cf3ddda73724efe5ce82b9585ed76be1Christian Maeder.Xr malloc 3
b190f5c7cf3ddda73724efe5ce82b9585ed76be1Christian Maederand
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<citerefentry>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<refentrytitle>free</refentrytitle><manvolnum>3</manvolnum>
1db126da06f707b90b5be9d66a73c36ee2cd22eeChristian Maeder</citerefentry>.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian MaederIt is not permitted to have a NULL
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<parameter>malloc_function</parameter>
ca010363454de207082dfaa4b753531ce2a34551Christian Maederand a non-NULL
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<parameter>free_function</parameter>
a0a2ff520a916e334d58f96e59f009aae61e98a7Christian Maederor vice versa.
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<parameter>arg</parameter>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederis passed as the first parameter to the memory
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederallocation functions.
08f8731b34de5dc1ced274594978ad8879c831bdChristian MaederIf
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<parameter>malloc_function</parameter>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederand
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<parameter>free_function</parameter>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederare NULL,
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<parameter>arg</parameter>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederis unused and should be passed as NULL.
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder</para>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<para>
08f8731b34de5dc1ced274594978ad8879c831bdChristian MaederOnce memory for the structure has been allocated,
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederit is initialized using
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<citerefentry>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<refentrytitle>lwres_conf_init</refentrytitle><manvolnum>3</manvolnum>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder</citerefentry>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederand returned via
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<parameter>*contextp</parameter>.
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder</para>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<para>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<function>lwres_context_destroy()</function>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maederdestroys a
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<type>lwres_context_t</type>,
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maederclosing its socket.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<parameter>contextp</parameter>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maederis a pointer to a pointer to the context that is to be destroyed.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian MaederThe pointer will be set to NULL when the context has been destroyed.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder</para>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<para>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian MaederThe context holds a serial number that is used to identify resolver
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maederrequest packets and associate responses with the corresponding requests.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian MaederThis serial number is controlled using
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<function>lwres_context_initserial()</function>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maederand
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<function>lwres_context_nextserial()</function>.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<function>lwres_context_initserial()</function>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maedersets the serial number for context
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<parameter>*ctx</parameter>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maederto
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<parameter>serial</parameter>.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<function>lwres_context_nextserial()</function>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maederincrements the serial number and returns the previous value.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder</para>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<para>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian MaederMemory for a lightweight resolver context is allocated and freed using
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<function>lwres_context_allocmem()</function>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maederand
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<function>lwres_context_freemem()</function>.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian MaederThese use whatever allocations were defined when the context was
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maedercreated with
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<function>lwres_context_create()</function>.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<function>lwres_context_allocmem()</function>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maederallocates
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<parameter>len</parameter>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederbytes of memory and if successful returns a pointer to the allocated
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederstorage.
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<function>lwres_context_freemem()</function>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederfrees
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<parameter>len</parameter>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maederbytes of space starting at location
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<parameter>mem</parameter>.
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder</para>
08f8731b34de5dc1ced274594978ad8879c831bdChristian Maeder<para>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<function>lwres_context_sendrecv()</function>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maederperforms I/O for the context
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<parameter>ctx</parameter>.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian MaederData are read and written from the context's socket.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian MaederIt writes data from
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<parameter>sendbase</parameter>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder&mdash; typically a lightweight resolver query packet &mdash;
b190f5c7cf3ddda73724efe5ce82b9585ed76be1Christian Maederand waits for a reply which is copied to the receive buffer at
b190f5c7cf3ddda73724efe5ce82b9585ed76be1Christian Maeder<parameter>recvbase</parameter>.
b190f5c7cf3ddda73724efe5ce82b9585ed76be1Christian Maeder
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian MaederThe number of bytes that were written to this receive buffer is
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maederreturned in
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<parameter>*recvd_len</parameter>.
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder</para>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder</refsect1>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<refsect1>
1db126da06f707b90b5be9d66a73c36ee2cd22eeChristian Maeder<title>RETURN VALUES</title>
8853be843bc3eed2ca6722efeee5174335e28b0eChristian Maeder<para>
8853be843bc3eed2ca6722efeee5174335e28b0eChristian Maeder<function>lwres_context_create()</function>
8853be843bc3eed2ca6722efeee5174335e28b0eChristian Maederreturns
8853be843bc3eed2ca6722efeee5174335e28b0eChristian Maeder<errorcode>LWRES_R_NOMEMORY</errorcode>
8853be843bc3eed2ca6722efeee5174335e28b0eChristian Maederif memory for the
8853be843bc3eed2ca6722efeee5174335e28b0eChristian Maeder<type>struct lwres_context</type>
8853be843bc3eed2ca6722efeee5174335e28b0eChristian Maedercould not be allocated,
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<errorcode>LWRES_R_SUCCESS</errorcode>
1db126da06f707b90b5be9d66a73c36ee2cd22eeChristian Maederotherwise.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder</para>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<para>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian MaederSuccessful calls to the memory allocator
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<function>lwres_context_allocmem()</function>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maederreturn a pointer to the start of the allocated space.
aae44eae4cd27141bea70af8d54844c3849a0711Christian MaederIt returns NULL if memory could not be allocated.
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder</para>
aae44eae4cd27141bea70af8d54844c3849a0711Christian Maeder<para>
1db126da06f707b90b5be9d66a73c36ee2cd22eeChristian Maeder<errorcode>LWRES_R_SUCCESS</errorcode>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maederis returned when
cf58a323fcb5c4185c3aa378713bbee3bba18c0aChristian Maeder<function>lwres_context_sendrecv()</function>
cf58a323fcb5c4185c3aa378713bbee3bba18c0aChristian Maedercompletes successfully.
cf58a323fcb5c4185c3aa378713bbee3bba18c0aChristian Maeder<errorcode>LWRES_R_IOERROR</errorcode>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maederis returned if an I/O error occurs and
cf58a323fcb5c4185c3aa378713bbee3bba18c0aChristian Maeder<errorcode>LWRES_R_TIMEOUT</errorcode>
14b47f7dabb39996a31c7286810a5897587aed3aChristian Maederis returned if
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<function>lwres_context_sendrecv()</function>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maedertimes out waiting for a response.
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder</para>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder</refsect1>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<refsect1>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder<title>SEE ALSO</title>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<para>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<citerefentry>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<refentrytitle>lwres_conf_init</refentrytitle><manvolnum>3</manvolnum>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder</citerefentry>,
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<citerefentry>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<refentrytitle>malloc</refentrytitle><manvolnum>3</manvolnum>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder</citerefentry>,
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<citerefentry>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder<refentrytitle>free</refentrytitle><manvolnum>3
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder</manvolnum>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder</citerefentry>.
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder</para>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder</refsect1>
46d766efdf8beaaadf3f34d99c305738064e9216Christian Maeder</refentry>
8b39fe4e459a2c534b55bab3bd68f929ba9a8b74Christian Maeder