lwres_noop.html revision 794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375
4d237bbe075b1d2c19428cd954d721d65b31f67cwrowe<!--
ec79b29695b183f794264bbb578c51e93d1f9b1emartin - Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC")
1a5f954324f2584984fc9cee7a7a8ebe8ef39aeajim - Copyright (C) 2000, 2001 Internet Software Consortium.
ed0d39878e79220baaa50c15b79b1fdf877cb919niq -
65cb7f00eca6689c8a89dc809359991ade1285bcwrowe - Permission to use, copy, modify, and/or distribute this software for any
65cb7f00eca6689c8a89dc809359991ade1285bcwrowe - purpose with or without fee is hereby granted, provided that the above
65cb7f00eca6689c8a89dc809359991ade1285bcwrowe - copyright notice and this permission notice appear in all copies.
65cb7f00eca6689c8a89dc809359991ade1285bcwrowe -
65cb7f00eca6689c8a89dc809359991ade1285bcwrowe - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
475311484e1d0f01d41e0f48bfecf1f4bca2ff07rpluem - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
475311484e1d0f01d41e0f48bfecf1f4bca2ff07rpluem - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
475311484e1d0f01d41e0f48bfecf1f4bca2ff07rpluem - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
e2bb6b0c7c3677acdf102b743a2218aa37725c81rpluem - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
e2bb6b0c7c3677acdf102b743a2218aa37725c81rpluem - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
e2bb6b0c7c3677acdf102b743a2218aa37725c81rpluem - PERFORMANCE OF THIS SOFTWARE.
e2bb6b0c7c3677acdf102b743a2218aa37725c81rpluem-->
4cb2a91bff46cc80d156f5654c922b0243f928cfmturk<!-- $Id$ -->
4cb2a91bff46cc80d156f5654c922b0243f928cfmturk<html>
4cb2a91bff46cc80d156f5654c922b0243f928cfmturk<head>
4cb2a91bff46cc80d156f5654c922b0243f928cfmturk<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
b9138a18a2e9312afaa87cb323e5b845a64ef0a2rpluem<title>lwres_noop</title>
b9138a18a2e9312afaa87cb323e5b845a64ef0a2rpluem<meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
b9138a18a2e9312afaa87cb323e5b845a64ef0a2rpluem</head>
b9138a18a2e9312afaa87cb323e5b845a64ef0a2rpluem<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
ef79eba84348e4f8c99402de06afa2237a856049rpluem<a name="id2476274"></a><div class="titlepage"></div>
ef79eba84348e4f8c99402de06afa2237a856049rpluem<div class="refnamediv">
ef79eba84348e4f8c99402de06afa2237a856049rpluem<h2>Name</h2>
0d529159d06aec095a1e0612e2d629c98dc75512rpluem<p>lwres_nooprequest_render, lwres_noopresponse_render, lwres_nooprequest_parse, lwres_noopresponse_parse, lwres_noopresponse_free, lwres_nooprequest_free &#8212; lightweight resolver no-op message handling</p>
0d529159d06aec095a1e0612e2d629c98dc75512rpluem</div>
0d529159d06aec095a1e0612e2d629c98dc75512rpluem<div class="refsynopsisdiv">
39c7699ec0799d394d3f67145d4a12ed82f587b8jorton<h2>Synopsis</h2>
39c7699ec0799d394d3f67145d4a12ed82f587b8jorton<div class="funcsynopsis">
39c7699ec0799d394d3f67145d4a12ed82f587b8jorton<pre class="funcsynopsisinfo">
3511969853863eeb6e80018afe63831e5bf81447rpluem#include &lt;lwres/lwres.h&gt;</pre>
3511969853863eeb6e80018afe63831e5bf81447rpluem<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
3511969853863eeb6e80018afe63831e5bf81447rpluem<tr>
c6d33447e28403a90ad817dba4df75fae785be28pquerna<td><code class="funcdef">
c6d33447e28403a90ad817dba4df75fae785be28pquernalwres_result_t
439ccf2a084e1da566548931c585cbcc3a9e7f4cminfrin<b class="fsfunc">lwres_nooprequest_render</b>(</code></td>
439ccf2a084e1da566548931c585cbcc3a9e7f4cminfrin<td>lwres_context_t *�</td>
439ccf2a084e1da566548931c585cbcc3a9e7f4cminfrin<td>
439ccf2a084e1da566548931c585cbcc3a9e7f4cminfrin<var class="pdparam">ctx</var>, </td>
439ccf2a084e1da566548931c585cbcc3a9e7f4cminfrin</tr>
439ccf2a084e1da566548931c585cbcc3a9e7f4cminfrin<tr>
4ede070ca63bd4c48045e35a7192582769770290jorton<td>�</td>
4ede070ca63bd4c48045e35a7192582769770290jorton<td>lwres_nooprequest_t *�</td>
795c9499a77c25695bcb9710ed67bbe51492e181rpluem<td>
795c9499a77c25695bcb9710ed67bbe51492e181rpluem<var class="pdparam">req</var>, </td>
795c9499a77c25695bcb9710ed67bbe51492e181rpluem</tr>
a72ba68ecbbc61e4b513e50d6000245c33f753dcwrowe<tr>
a72ba68ecbbc61e4b513e50d6000245c33f753dcwrowe<td>�</td>
7a079e0cd696baca90ac43e325f64582e2945c68wrowe<td>lwres_lwpacket_t *�</td>
a72ba68ecbbc61e4b513e50d6000245c33f753dcwrowe<td>
62c53a0dab4c85bfc6a5ab9abfb1b269d9f7458dniq<var class="pdparam">pkt</var>, </td>
62c53a0dab4c85bfc6a5ab9abfb1b269d9f7458dniq</tr>
62c53a0dab4c85bfc6a5ab9abfb1b269d9f7458dniq<tr>
c6f2d0c33368d0ff719e176c3bef9c2ea5177d43niq<td>�</td>
c6f2d0c33368d0ff719e176c3bef9c2ea5177d43niq<td>lwres_buffer_t *�</td>
c6f2d0c33368d0ff719e176c3bef9c2ea5177d43niq<td>
c6f2d0c33368d0ff719e176c3bef9c2ea5177d43niq<var class="pdparam">b</var><code>)</code>;</td>
c6f2d0c33368d0ff719e176c3bef9c2ea5177d43niq</tr>
f09bf2676d29e43c211b663f5c9423815d83395fniq</table>
f09bf2676d29e43c211b663f5c9423815d83395fniq<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
f09bf2676d29e43c211b663f5c9423815d83395fniq<tr>
f09bf2676d29e43c211b663f5c9423815d83395fniq<td><code class="funcdef">
11a0edf478ca9c59d80bf73491d89cf019259feeniqlwres_result_t
11a0edf478ca9c59d80bf73491d89cf019259feeniq<b class="fsfunc">lwres_noopresponse_render</b>(</code></td>
11a0edf478ca9c59d80bf73491d89cf019259feeniq<td>lwres_context_t *�</td>
06446302a0a3e40cd8807bb25467c8f776cf2fbatrawick<td>
06446302a0a3e40cd8807bb25467c8f776cf2fbatrawick<var class="pdparam">ctx</var>, </td>
06446302a0a3e40cd8807bb25467c8f776cf2fbatrawick</tr>
06446302a0a3e40cd8807bb25467c8f776cf2fbatrawick<tr>
9c97e6302f7624855e1909b35d448a5a2d5a4378minfrin<td>�</td>
9c97e6302f7624855e1909b35d448a5a2d5a4378minfrin<td>lwres_noopresponse_t *�</td>
9c97e6302f7624855e1909b35d448a5a2d5a4378minfrin<td>
9c97e6302f7624855e1909b35d448a5a2d5a4378minfrin<var class="pdparam">req</var>, </td>
9c97e6302f7624855e1909b35d448a5a2d5a4378minfrin</tr>
ecc1538af1c08282fc2773d2eb3f1a54251862f9minfrin<tr>
ecc1538af1c08282fc2773d2eb3f1a54251862f9minfrin<td>�</td>
ecc1538af1c08282fc2773d2eb3f1a54251862f9minfrin<td>lwres_lwpacket_t *�</td>
ecc1538af1c08282fc2773d2eb3f1a54251862f9minfrin<td>
3f5585f7f4a7d74f2f94ec729ea8c1879d419e35rederpj<var class="pdparam">pkt</var>, </td>
3f5585f7f4a7d74f2f94ec729ea8c1879d419e35rederpj</tr>
3f5585f7f4a7d74f2f94ec729ea8c1879d419e35rederpj<tr>
3f5585f7f4a7d74f2f94ec729ea8c1879d419e35rederpj<td>�</td>
3f5585f7f4a7d74f2f94ec729ea8c1879d419e35rederpj<td>lwres_buffer_t *�</td>
e4b96ba15dc8b2b27d251d53e29b86da32cd5066pquerna<td>
e4b96ba15dc8b2b27d251d53e29b86da32cd5066pquerna<var class="pdparam">b</var><code>)</code>;</td>
81bd9331da3bd0f53255d52b1475480ff3a4b395trawick</tr>
81bd9331da3bd0f53255d52b1475480ff3a4b395trawick</table>
81bd9331da3bd0f53255d52b1475480ff3a4b395trawick<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
cd3bbd6d2df78d6c75e5d159a81ef8bdd5f70df9trawick<tr>
cd3bbd6d2df78d6c75e5d159a81ef8bdd5f70df9trawick<td><code class="funcdef">
cd3bbd6d2df78d6c75e5d159a81ef8bdd5f70df9trawicklwres_result_t
cd3bbd6d2df78d6c75e5d159a81ef8bdd5f70df9trawick<b class="fsfunc">lwres_nooprequest_parse</b>(</code></td>
c7c8dd19c90c5ee7205ccdf443585d14da3daecechrisd<td>lwres_context_t *�</td>
c7c8dd19c90c5ee7205ccdf443585d14da3daecechrisd<td>
c7c8dd19c90c5ee7205ccdf443585d14da3daecechrisd<var class="pdparam">ctx</var>, </td>
c7c8dd19c90c5ee7205ccdf443585d14da3daecechrisd</tr>
13ce20bba632871d7ceb413f39dc73c718ddec7dchrisd<tr>
c7c8dd19c90c5ee7205ccdf443585d14da3daecechrisd<td>�</td>
108ebbb87b2a46f4416ec507824471a483c39fe1sctemme<td>lwres_buffer_t *�</td>
108ebbb87b2a46f4416ec507824471a483c39fe1sctemme<td>
108ebbb87b2a46f4416ec507824471a483c39fe1sctemme<var class="pdparam">b</var>, </td>
108ebbb87b2a46f4416ec507824471a483c39fe1sctemme</tr>
7abe34dd5a20fc8fde09dca9116b88e6ddfd55ddjorton<tr>
7abe34dd5a20fc8fde09dca9116b88e6ddfd55ddjorton<td>�</td>
7abe34dd5a20fc8fde09dca9116b88e6ddfd55ddjorton<td>lwres_lwpacket_t *�</td>
10d486b9267800c5e376c22f6c0d45dc2ae86f67chrisd<td>
10d486b9267800c5e376c22f6c0d45dc2ae86f67chrisd<var class="pdparam">pkt</var>, </td>
10d486b9267800c5e376c22f6c0d45dc2ae86f67chrisd</tr>
10d486b9267800c5e376c22f6c0d45dc2ae86f67chrisd<tr>
3e155218733389e7b1ea3a9ffd0aea533fd929cechrisd<td>�</td>
3e155218733389e7b1ea3a9ffd0aea533fd929cechrisd<td>lwres_nooprequest_t **�</td>
3e155218733389e7b1ea3a9ffd0aea533fd929cechrisd<td>
3e155218733389e7b1ea3a9ffd0aea533fd929cechrisd<var class="pdparam">structp</var><code>)</code>;</td>
dd6199828976e6c7850ca6abd7a1ceba99e9ed16chrisd</tr>
dd6199828976e6c7850ca6abd7a1ceba99e9ed16chrisd</table>
dd6199828976e6c7850ca6abd7a1ceba99e9ed16chrisd<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
dd6199828976e6c7850ca6abd7a1ceba99e9ed16chrisd<tr>
ab43b4a17b2ac31ccb1cf280be8c42a8a314cecbjorton<td><code class="funcdef">
ab43b4a17b2ac31ccb1cf280be8c42a8a314cecbjortonlwres_result_t
ab43b4a17b2ac31ccb1cf280be8c42a8a314cecbjorton<b class="fsfunc">lwres_noopresponse_parse</b>(</code></td>
67139e2d50d1e11558d87f7042f61cb04bb0d1d2jim<td>lwres_context_t *�</td>
f3a5934ca0fb0f0f813bd9d9d06af8937e3f401fjim<td>
67139e2d50d1e11558d87f7042f61cb04bb0d1d2jim<var class="pdparam">ctx</var>, </td>
67139e2d50d1e11558d87f7042f61cb04bb0d1d2jim</tr>
67139e2d50d1e11558d87f7042f61cb04bb0d1d2jim<tr>
a4ab95921be8ce5de50913cd6505d41b672eb375minfrin<td>�</td>
a4ab95921be8ce5de50913cd6505d41b672eb375minfrin<td>lwres_buffer_t *�</td>
a4ab95921be8ce5de50913cd6505d41b672eb375minfrin<td>
a4ab95921be8ce5de50913cd6505d41b672eb375minfrin<var class="pdparam">b</var>, </td>
e605dd6afa940f799c873ffeaa5e25fa4ea9a2c8minfrin</tr>
e605dd6afa940f799c873ffeaa5e25fa4ea9a2c8minfrin<tr>
e605dd6afa940f799c873ffeaa5e25fa4ea9a2c8minfrin<td>�</td>
e605dd6afa940f799c873ffeaa5e25fa4ea9a2c8minfrin<td>lwres_lwpacket_t *�</td>
e605dd6afa940f799c873ffeaa5e25fa4ea9a2c8minfrin<td>
50c06405bc48121db2913925549407fd3e79bcedmturk<var class="pdparam">pkt</var>, </td>
50c06405bc48121db2913925549407fd3e79bcedmturk</tr>
dec02391360e503cd3437d16bed765dc653b9de5minfrin<tr>
dec02391360e503cd3437d16bed765dc653b9de5minfrin<td>�</td>
dec02391360e503cd3437d16bed765dc653b9de5minfrin<td>lwres_noopresponse_t **�</td>
dec02391360e503cd3437d16bed765dc653b9de5minfrin<td>
dec02391360e503cd3437d16bed765dc653b9de5minfrin<var class="pdparam">structp</var><code>)</code>;</td>
1b27a3a26f18191db7ecb4d536cb121ba9520a8eniq</tr>
1b27a3a26f18191db7ecb4d536cb121ba9520a8eniq</table>
686ce4eade942e515b1725d0c9751da36b759a6ctrawick<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
686ce4eade942e515b1725d0c9751da36b759a6ctrawick<tr>
686ce4eade942e515b1725d0c9751da36b759a6ctrawick<td><code class="funcdef">
1ce78cf71b5baaf2c1ab48e818cb1f2397df5010trawickvoid
4bd465052c4a0c8d41e573ee7a90c312d980355fchrisd<b class="fsfunc">lwres_noopresponse_free</b>(</code></td>
4bd465052c4a0c8d41e573ee7a90c312d980355fchrisd<td>lwres_context_t *�</td>
4bd465052c4a0c8d41e573ee7a90c312d980355fchrisd<td>
4bd465052c4a0c8d41e573ee7a90c312d980355fchrisd<var class="pdparam">ctx</var>, </td>
4bd465052c4a0c8d41e573ee7a90c312d980355fchrisd</tr>
4bd465052c4a0c8d41e573ee7a90c312d980355fchrisd<tr>
4bd465052c4a0c8d41e573ee7a90c312d980355fchrisd<td>�</td>
27b38d4191d5f638165e2a77ec6e6f567bd7784dniq<td>lwres_noopresponse_t **�</td>
27b38d4191d5f638165e2a77ec6e6f567bd7784dniq<td>
27b38d4191d5f638165e2a77ec6e6f567bd7784dniq<var class="pdparam">structp</var><code>)</code>;</td>
a87e2a23083aa62229307482afbb3b802a0c2105mturk</tr>
a87e2a23083aa62229307482afbb3b802a0c2105mturk</table>
a87e2a23083aa62229307482afbb3b802a0c2105mturk<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
a87e2a23083aa62229307482afbb3b802a0c2105mturk<tr>
a87e2a23083aa62229307482afbb3b802a0c2105mturk<td><code class="funcdef">
a87e2a23083aa62229307482afbb3b802a0c2105mturkvoid
8fd638698262130d00458b2c95548f6f94875847rpluem<b class="fsfunc">lwres_nooprequest_free</b>(</code></td>
534611d341a1a48b93c7a1fd5e333dbd261527d3rpluem<td>lwres_context_t *�</td>
534611d341a1a48b93c7a1fd5e333dbd261527d3rpluem<td>
534611d341a1a48b93c7a1fd5e333dbd261527d3rpluem<var class="pdparam">ctx</var>, </td>
e99dfd55d29a7b4209b814efc7270d0b74ccee74niq</tr>
c3c8103039e36494987aff50451896459826a361rpluem<tr>
e99dfd55d29a7b4209b814efc7270d0b74ccee74niq<td>�</td>
127aef4ce9f7b6b32a95c5ed9a93b796d18755e6rpluem<td>lwres_nooprequest_t **�</td>
127aef4ce9f7b6b32a95c5ed9a93b796d18755e6rpluem<td>
127aef4ce9f7b6b32a95c5ed9a93b796d18755e6rpluem<var class="pdparam">structp</var><code>)</code>;</td>
127aef4ce9f7b6b32a95c5ed9a93b796d18755e6rpluem</tr>
79d4b708d021714647aab8b138ae671ed24765cewrowe</table>
79d4b708d021714647aab8b138ae671ed24765cewrowe</div>
79d4b708d021714647aab8b138ae671ed24765cewrowe</div>
79d4b708d021714647aab8b138ae671ed24765cewrowe<div class="refsect1" lang="en">
79d4b708d021714647aab8b138ae671ed24765cewrowe<a name="id2543525"></a><h2>DESCRIPTION</h2>
88d0e50f16b21d4d0af0a48da7ad28fb5991834crpluem<p>
88d0e50f16b21d4d0af0a48da7ad28fb5991834crpluem These are low-level routines for creating and parsing
88d0e50f16b21d4d0af0a48da7ad28fb5991834crpluem lightweight resolver no-op request and response messages.
88d0e50f16b21d4d0af0a48da7ad28fb5991834crpluem </p>
15264721069299ec26493e21d56bf8ff7faf6f0drpluem<p>
15264721069299ec26493e21d56bf8ff7faf6f0drpluem The no-op message is analogous to a <span><strong class="command">ping</strong></span>
15264721069299ec26493e21d56bf8ff7faf6f0drpluem packet:
11e1b16b907afb7de0678e28fe4849d9029e2df8rpluem a packet is sent to the resolver daemon and is simply echoed back.
25a81ea1bca1c89cda713c4d23660e487b1488a0rpluem The opcode is intended to allow a client to determine if the server is
25a81ea1bca1c89cda713c4d23660e487b1488a0rpluem operational or not.
25a81ea1bca1c89cda713c4d23660e487b1488a0rpluem </p>
48fa058fe468025347930610ac2473094fa0f4e4chrisd<p>
48fa058fe468025347930610ac2473094fa0f4e4chrisd There are four main functions for the no-op opcode.
48fa058fe468025347930610ac2473094fa0f4e4chrisd One render function converts a no-op request structure &#8212;
3ec4328f079d8867cc323155e59678ad9437914frooneg <span class="type">lwres_nooprequest_t</span> &#8212;
3ec4328f079d8867cc323155e59678ad9437914frooneg to the lighweight resolver's canonical format.
3ec4328f079d8867cc323155e59678ad9437914frooneg It is complemented by a parse function that converts a packet in this
de0d0b50c96fae59c28e09fed61b0d15cfa4147bchrisd canonical format to a no-op request structure.
de0d0b50c96fae59c28e09fed61b0d15cfa4147bchrisd Another render function converts the no-op response structure &#8212;
de0d0b50c96fae59c28e09fed61b0d15cfa4147bchrisd <span class="type">lwres_noopresponse_t</span>
de0d0b50c96fae59c28e09fed61b0d15cfa4147bchrisd to the canonical format.
de0d0b50c96fae59c28e09fed61b0d15cfa4147bchrisd This is complemented by a parse function which converts a packet in
de0d0b50c96fae59c28e09fed61b0d15cfa4147bchrisd canonical format to a no-op response structure.
de0d0b50c96fae59c28e09fed61b0d15cfa4147bchrisd </p>
cd59ac5e8f739afbdcd523c649550f7dce1709ceniq<p>
db78659055df54243bca678c35bd2ce7e31a9237rooneg These structures are defined in
edf6757df85878dc8ce11fb3840ee4cde6de5b2frooneg <code class="filename">lwres/lwres.h</code>.
db78659055df54243bca678c35bd2ce7e31a9237rooneg
95817edd05387a5276f51fcd5db79fc21b89b55brooneg They are shown below.
95817edd05387a5276f51fcd5db79fc21b89b55brooneg </p>
95817edd05387a5276f51fcd5db79fc21b89b55brooneg<pre class="programlisting">
63689d77e084e36b8194fb6df5adfc0344965e01trawick#define LWRES_OPCODE_NOOP 0x00000000U
63689d77e084e36b8194fb6df5adfc0344965e01trawick</pre>
63689d77e084e36b8194fb6df5adfc0344965e01trawick<p>
63689d77e084e36b8194fb6df5adfc0344965e01trawick </p>
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes<pre class="programlisting">
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholestypedef struct {
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes lwres_uint16_t datalength;
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes unsigned char *data;
a1a615ca49b162d71d88089210395c9a9cfeb539rpluem} lwres_nooprequest_t;
8b67b9d3ce40755d1b58971198a02b2749d8e13dbnicholes</pre>
8b67b9d3ce40755d1b58971198a02b2749d8e13dbnicholes<p>
8b67b9d3ce40755d1b58971198a02b2749d8e13dbnicholes </p>
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes<pre class="programlisting">
a1a615ca49b162d71d88089210395c9a9cfeb539rpluemtypedef struct {
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes lwres_uint16_t datalength;
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes unsigned char *data;
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes} lwres_noopresponse_t;
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes</pre>
a1a615ca49b162d71d88089210395c9a9cfeb539rpluem<p>
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes </p>
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes<p>
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes Although the structures have different types, they are identical.
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes This is because the no-op opcode simply echos whatever data was sent:
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes the response is therefore identical to the request.
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes </p>
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes<p><code class="function">lwres_nooprequest_render()</code>
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes uses resolver context <em class="parameter"><code>ctx</code></em> to convert
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes no-op request structure <em class="parameter"><code>req</code></em> to canonical
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes format. The packet header structure <em class="parameter"><code>pkt</code></em>
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes is initialised and transferred to buffer
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes <em class="parameter"><code>b</code></em>. The contents of
69c36bbae91de0e99a682aaae9d6fa61fceb2771bnicholes <em class="parameter"><code>*req</code></em> are then appended to the buffer in
a1a615ca49b162d71d88089210395c9a9cfeb539rpluem canonical format.
1b0dce86d7fc8a5aa4c89b05255be26e508c615crpluem <code class="function">lwres_noopresponse_render()</code> performs the
1b0dce86d7fc8a5aa4c89b05255be26e508c615crpluem same task, except it converts a no-op response structure
1b0dce86d7fc8a5aa4c89b05255be26e508c615crpluem <span class="type">lwres_noopresponse_t</span> to the lightweight resolver's
1b0dce86d7fc8a5aa4c89b05255be26e508c615crpluem canonical format.
edc5389f50ce4153e6192740f3c7a188c8cf8d67niq </p>
edc5389f50ce4153e6192740f3c7a188c8cf8d67niq<p><code class="function">lwres_nooprequest_parse()</code>
6c05afd314b4ddd545d63b4ff5de822cc30eec79trawick uses context <em class="parameter"><code>ctx</code></em> to convert the contents
6c05afd314b4ddd545d63b4ff5de822cc30eec79trawick of packet <em class="parameter"><code>pkt</code></em> to a
6c05afd314b4ddd545d63b4ff5de822cc30eec79trawick <span class="type">lwres_nooprequest_t</span> structure. Buffer
13cd67e9c1dacbd6b9f040bda337c725cedd98f3brianp <em class="parameter"><code>b</code></em> provides space to be used for storing
13cd67e9c1dacbd6b9f040bda337c725cedd98f3brianp this structure. When the function succeeds, the resulting
a623efbff95aab78da9e030524b0fa69b054f6d0brianp <span class="type">lwres_nooprequest_t</span> is made available through
a623efbff95aab78da9e030524b0fa69b054f6d0brianp <em class="parameter"><code>*structp</code></em>.
a623efbff95aab78da9e030524b0fa69b054f6d0brianp <code class="function">lwres_noopresponse_parse()</code> offers the same
a623efbff95aab78da9e030524b0fa69b054f6d0brianp semantics as <code class="function">lwres_nooprequest_parse()</code>
a623efbff95aab78da9e030524b0fa69b054f6d0brianp except it yields a <span class="type">lwres_noopresponse_t</span> structure.
a623efbff95aab78da9e030524b0fa69b054f6d0brianp </p>
0b4b04d8621478ba59f0a6ba2950ddc02ab92b58colm<p><code class="function">lwres_noopresponse_free()</code>
0b4b04d8621478ba59f0a6ba2950ddc02ab92b58colm and <code class="function">lwres_nooprequest_free()</code> release the
0b4b04d8621478ba59f0a6ba2950ddc02ab92b58colm memory in resolver context <em class="parameter"><code>ctx</code></em> that was
2f1bb5376c5c4022383bb729679ca751dd75a2eabrianp allocated to the <span class="type">lwres_noopresponse_t</span> or
2f1bb5376c5c4022383bb729679ca751dd75a2eabrianp <span class="type">lwres_nooprequest_t</span> structures referenced via
ad862ab5716726a2d72a292ba1dfb29566c86153brianp <em class="parameter"><code>structp</code></em>.
ad862ab5716726a2d72a292ba1dfb29566c86153brianp </p>
ad862ab5716726a2d72a292ba1dfb29566c86153brianp</div>
17d53ea32c4968e47733f1c2c063ae07d280efd6jerenkrantz<div class="refsect1" lang="en">
17d53ea32c4968e47733f1c2c063ae07d280efd6jerenkrantz<a name="id2543675"></a><h2>RETURN VALUES</h2>
17d53ea32c4968e47733f1c2c063ae07d280efd6jerenkrantz<p>
2d5532b13110a8d85653da92e97795b09cc25cc2trawick The no-op opcode functions
b38565306421ff53e9f7499bc728d6df5cec294dpquerna <code class="function">lwres_nooprequest_render()</code>,
b38565306421ff53e9f7499bc728d6df5cec294dpquerna
b38565306421ff53e9f7499bc728d6df5cec294dpquerna <code class="function">lwres_noopresponse_render()</code>
b38565306421ff53e9f7499bc728d6df5cec294dpquerna <code class="function">lwres_nooprequest_parse()</code>
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim and
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim <code class="function">lwres_noopresponse_parse()</code>
cfa64348224b66dd1c9979b809406c4d15b1c137fielding all return
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim <span class="errorcode">LWRES_R_SUCCESS</span>
cfa64348224b66dd1c9979b809406c4d15b1c137fielding on success.
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim They return
cfa64348224b66dd1c9979b809406c4d15b1c137fielding <span class="errorcode">LWRES_R_NOMEMORY</span>
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim if memory allocation fails.
cfa64348224b66dd1c9979b809406c4d15b1c137fielding <span class="errorcode">LWRES_R_UNEXPECTEDEND</span>
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim is returned if the available space in the buffer
cfa64348224b66dd1c9979b809406c4d15b1c137fielding <em class="parameter"><code>b</code></em>
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim is too small to accommodate the packet header or the
cfa64348224b66dd1c9979b809406c4d15b1c137fielding <span class="type">lwres_nooprequest_t</span>
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim and
<span class="type">lwres_noopresponse_t</span>
structures.
<code class="function">lwres_nooprequest_parse()</code>
and
<code class="function">lwres_noopresponse_parse()</code>
will return
<span class="errorcode">LWRES_R_UNEXPECTEDEND</span>
if the buffer is not empty after decoding the received packet.
These functions will return
<span class="errorcode">LWRES_R_FAILURE</span>
if
<code class="constant">pktflags</code>
in the packet header structure
<span class="type">lwres_lwpacket_t</span>
indicate that the packet is not a response to an earlier query.
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2543741"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">lwres_packet</span>(3)</span>
</p>
</div>
</div></body>
</html>