lwres_noop.html revision 4abdfc917e6635a7c81d1f931a0c79227e72d025
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames<!--
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames - Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
e6cc28a5eb3371ba0c38e941855e71ff0054f50erbb - Copyright (C) 2000, 2001 Internet Software Consortium.
e6cc28a5eb3371ba0c38e941855e71ff0054f50erbb -
e6cc28a5eb3371ba0c38e941855e71ff0054f50erbb - Permission to use, copy, modify, and distribute this software for any
e6cc28a5eb3371ba0c38e941855e71ff0054f50erbb - purpose with or without fee is hereby granted, provided that the above
e6cc28a5eb3371ba0c38e941855e71ff0054f50erbb - copyright notice and this permission notice appear in all copies.
e6cc28a5eb3371ba0c38e941855e71ff0054f50erbb -
e6cc28a5eb3371ba0c38e941855e71ff0054f50erbb - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
e6cc28a5eb3371ba0c38e941855e71ff0054f50erbb - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
cf233fb4b439415a2bf7bab7e622afd994e0bebftrawick - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
cf233fb4b439415a2bf7bab7e622afd994e0bebftrawick - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
cf233fb4b439415a2bf7bab7e622afd994e0bebftrawick - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
cf233fb4b439415a2bf7bab7e622afd994e0bebftrawick - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
ae64f3e7385f21ca9d4f30cc7f8702a9ac1034b6trawick - PERFORMANCE OF THIS SOFTWARE.
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames-->
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames<!-- $Id: lwres_noop.html,v 1.24 2007/01/26 23:29:04 marka Exp $ -->
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames<html>
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames<head>
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames<title>lwres_noop</title>
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames<meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames</head>
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames<a name="id2476275"></a><div class="titlepage"></div>
2a20a2f8432a15b530e0a6b0998c32f40aef82a8gregames<div class="refnamediv">
8d49090fd56a8ce06c7f7135f19e5ff8e24b5ff3gregames<h2>Name</h2>
f99bffd6087564cf9c05cc29d1c6b38d94e0ed30gregames<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>
270609308f247c5e934b400b5f1691c2cca16c61jerenkrantz</div>
270609308f247c5e934b400b5f1691c2cca16c61jerenkrantz<div class="refsynopsisdiv">
270609308f247c5e934b400b5f1691c2cca16c61jerenkrantz<h2>Synopsis</h2>
8458877c9ba0af86acd590eea531476adde3d02dmartin<div class="funcsynopsis">
8458877c9ba0af86acd590eea531476adde3d02dmartin<pre class="funcsynopsisinfo">
8458877c9ba0af86acd590eea531476adde3d02dmartin#include &lt;lwres/lwres.h&gt;</pre>
8458877c9ba0af86acd590eea531476adde3d02dmartin<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
8458877c9ba0af86acd590eea531476adde3d02dmartin<tr>
644be6f54749d2d9950d2c4d2ac448f7af016d26martin<td><code class="funcdef">
644be6f54749d2d9950d2c4d2ac448f7af016d26martinlwres_result_t
644be6f54749d2d9950d2c4d2ac448f7af016d26martin<b class="fsfunc">lwres_nooprequest_render</b>(</code></td>
644be6f54749d2d9950d2c4d2ac448f7af016d26martin<td>lwres_context_t *�</td>
8458877c9ba0af86acd590eea531476adde3d02dmartin<td>
b30b04f639d479b96cc08c43ffa34c92ba275676ianh<var class="pdparam">ctx</var>, </td>
b30b04f639d479b96cc08c43ffa34c92ba275676ianh</tr>
b30b04f639d479b96cc08c43ffa34c92ba275676ianh<tr>
c4fbc4018fd2b6716673a38ee27eeb36cba41c5djwoolley<td>�</td>
c4fbc4018fd2b6716673a38ee27eeb36cba41c5djwoolley<td>lwres_nooprequest_t *�</td>
c4fbc4018fd2b6716673a38ee27eeb36cba41c5djwoolley<td>
c4fbc4018fd2b6716673a38ee27eeb36cba41c5djwoolley<var class="pdparam">req</var>, </td>
f4e4643c309e5b5da60e13f9a25984d54b307caawrowe</tr>
f4e4643c309e5b5da60e13f9a25984d54b307caawrowe<tr>
f4e4643c309e5b5da60e13f9a25984d54b307caawrowe<td>�</td>
2548497d480c4f3e9b3fe14711bd510aa2157434gregames<td>lwres_lwpacket_t *�</td>
2548497d480c4f3e9b3fe14711bd510aa2157434gregames<td>
2548497d480c4f3e9b3fe14711bd510aa2157434gregames<var class="pdparam">pkt</var>, </td>
ccb5c3af2d491a7cd1c246cd23f0fb083da417fagregames</tr>
0e58e92812f2f679d6bf2ff66cbcfa6c1d1e14bbjerenkrantz<tr>
da6e93dca0222159650783802e23172e3160605egregames<td>�</td>
da6e93dca0222159650783802e23172e3160605egregames<td>lwres_buffer_t *�</td>
da6e93dca0222159650783802e23172e3160605egregames<td>
c927e13f298c42251296d33cc1fa3eb8232b843daaron<var class="pdparam">b</var><code>)</code>;</td>
c927e13f298c42251296d33cc1fa3eb8232b843daaron</tr>
c927e13f298c42251296d33cc1fa3eb8232b843daaron</table>
c927e13f298c42251296d33cc1fa3eb8232b843daaron<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
c927e13f298c42251296d33cc1fa3eb8232b843daaron<tr>
9126ed10455a2a98a3a51c68ed1b356e1873e8e6aaron<td><code class="funcdef">
9126ed10455a2a98a3a51c68ed1b356e1873e8e6aaronlwres_result_t
9126ed10455a2a98a3a51c68ed1b356e1873e8e6aaron<b class="fsfunc">lwres_noopresponse_render</b>(</code></td>
9126ed10455a2a98a3a51c68ed1b356e1873e8e6aaron<td>lwres_context_t *�</td>
fa3ca21e09bac0dbc2045e9f53963ba46cfed5b1trawick<td>
fa3ca21e09bac0dbc2045e9f53963ba46cfed5b1trawick<var class="pdparam">ctx</var>, </td>
fa3ca21e09bac0dbc2045e9f53963ba46cfed5b1trawick</tr>
fa3ca21e09bac0dbc2045e9f53963ba46cfed5b1trawick<tr>
18acb2c0df442ead1d075a1a2207cbb197725b14coar<td>�</td>
18acb2c0df442ead1d075a1a2207cbb197725b14coar<td>lwres_noopresponse_t *�</td>
18acb2c0df442ead1d075a1a2207cbb197725b14coar<td>
18acb2c0df442ead1d075a1a2207cbb197725b14coar<var class="pdparam">req</var>, </td>
617f972690d850a52cd4e9ef2f32d356e0fae715aaron</tr>
617f972690d850a52cd4e9ef2f32d356e0fae715aaron<tr>
617f972690d850a52cd4e9ef2f32d356e0fae715aaron<td>�</td>
617f972690d850a52cd4e9ef2f32d356e0fae715aaron<td>lwres_lwpacket_t *�</td>
617f972690d850a52cd4e9ef2f32d356e0fae715aaron<td>
9278d5393ef084f4fc6d7ec8641af5959442c157jwoolley<var class="pdparam">pkt</var>, </td>
9278d5393ef084f4fc6d7ec8641af5959442c157jwoolley</tr>
9278d5393ef084f4fc6d7ec8641af5959442c157jwoolley<tr>
022cff78006f698453640e0a0e97cc5f8c9de59drbb<td>�</td>
022cff78006f698453640e0a0e97cc5f8c9de59drbb<td>lwres_buffer_t *�</td>
022cff78006f698453640e0a0e97cc5f8c9de59drbb<td>
022cff78006f698453640e0a0e97cc5f8c9de59drbb<var class="pdparam">b</var><code>)</code>;</td>
526a776292f420ffeea0d081c61971ed381fad20stoddard</tr>
526a776292f420ffeea0d081c61971ed381fad20stoddard</table>
526a776292f420ffeea0d081c61971ed381fad20stoddard<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
526a776292f420ffeea0d081c61971ed381fad20stoddard<tr>
526a776292f420ffeea0d081c61971ed381fad20stoddard<td><code class="funcdef">
526a776292f420ffeea0d081c61971ed381fad20stoddardlwres_result_t
526a776292f420ffeea0d081c61971ed381fad20stoddard<b class="fsfunc">lwres_nooprequest_parse</b>(</code></td>
526a776292f420ffeea0d081c61971ed381fad20stoddard<td>lwres_context_t *�</td>
526a776292f420ffeea0d081c61971ed381fad20stoddard<td>
526a776292f420ffeea0d081c61971ed381fad20stoddard<var class="pdparam">ctx</var>, </td>
526a776292f420ffeea0d081c61971ed381fad20stoddard</tr>
452d2fd15cebd2da9331d5d765558a60b488c1a9rbb<tr>
62ddc9851530478919d169ba9c34b80f60cf7718trawick<td>�</td>
62ddc9851530478919d169ba9c34b80f60cf7718trawick<td>lwres_buffer_t *�</td>
62ddc9851530478919d169ba9c34b80f60cf7718trawick<td>
62ddc9851530478919d169ba9c34b80f60cf7718trawick<var class="pdparam">b</var>, </td>
62ddc9851530478919d169ba9c34b80f60cf7718trawick</tr>
904d7bf799c6216beb34519463596b4fce630308wrowe<tr>
904d7bf799c6216beb34519463596b4fce630308wrowe<td>�</td>
904d7bf799c6216beb34519463596b4fce630308wrowe<td>lwres_lwpacket_t *�</td>
904d7bf799c6216beb34519463596b4fce630308wrowe<td>
904d7bf799c6216beb34519463596b4fce630308wrowe<var class="pdparam">pkt</var>, </td>
904d7bf799c6216beb34519463596b4fce630308wrowe</tr>
904d7bf799c6216beb34519463596b4fce630308wrowe<tr>
904d7bf799c6216beb34519463596b4fce630308wrowe<td>�</td>
904d7bf799c6216beb34519463596b4fce630308wrowe<td>lwres_nooprequest_t **�</td>
17a4c6968b2fa692ff4dde12fe305230ee6b0421aaron<td>
17a4c6968b2fa692ff4dde12fe305230ee6b0421aaron<var class="pdparam">structp</var><code>)</code>;</td>
17a4c6968b2fa692ff4dde12fe305230ee6b0421aaron</tr>
17a4c6968b2fa692ff4dde12fe305230ee6b0421aaron</table>
83b031099aa3dc8a5fd2f708e397818cbd16c9aajerenkrantz<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
83b031099aa3dc8a5fd2f708e397818cbd16c9aajerenkrantz<tr>
83b031099aa3dc8a5fd2f708e397818cbd16c9aajerenkrantz<td><code class="funcdef">
01e77cadbd9ad4962993380245bcc033dde523e4rbblwres_result_t
01e77cadbd9ad4962993380245bcc033dde523e4rbb<b class="fsfunc">lwres_noopresponse_parse</b>(</code></td>
01e77cadbd9ad4962993380245bcc033dde523e4rbb<td>lwres_context_t *�</td>
8ea9794272347cfdd92861f46295406649f01afatrawick<td>
8ea9794272347cfdd92861f46295406649f01afatrawick<var class="pdparam">ctx</var>, </td>
8ea9794272347cfdd92861f46295406649f01afatrawick</tr>
8ea9794272347cfdd92861f46295406649f01afatrawick<tr>
b900452c9c36031434d318880f023c0fb9143325rbb<td>�</td>
b900452c9c36031434d318880f023c0fb9143325rbb<td>lwres_buffer_t *�</td>
b900452c9c36031434d318880f023c0fb9143325rbb<td>
b900452c9c36031434d318880f023c0fb9143325rbb<var class="pdparam">b</var>, </td>
b900452c9c36031434d318880f023c0fb9143325rbb</tr>
b900452c9c36031434d318880f023c0fb9143325rbb<tr>
b900452c9c36031434d318880f023c0fb9143325rbb<td>�</td>
b900452c9c36031434d318880f023c0fb9143325rbb<td>lwres_lwpacket_t *�</td>
b900452c9c36031434d318880f023c0fb9143325rbb<td>
43053faf24ffe7657bb32bc06d4058dedf3ef053rbb<var class="pdparam">pkt</var>, </td>
8b666e1fb772b6fe45de3604b224f3e1f2cfd620rbb</tr>
c453a141db60a5b19649eac508f4851a8729c556rbb<tr>
c453a141db60a5b19649eac508f4851a8729c556rbb<td>�</td>
c453a141db60a5b19649eac508f4851a8729c556rbb<td>lwres_noopresponse_t **�</td>
8b91dcac0e1ef7796c72d16b0962267313cac486jerenkrantz<td>
8b91dcac0e1ef7796c72d16b0962267313cac486jerenkrantz<var class="pdparam">structp</var><code>)</code>;</td>
8b91dcac0e1ef7796c72d16b0962267313cac486jerenkrantz</tr>
6ce942b017db75b559a42bdc2d7b8ea9e869a956wrowe</table>
6ce942b017db75b559a42bdc2d7b8ea9e869a956wrowe<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
6ce942b017db75b559a42bdc2d7b8ea9e869a956wrowe<tr>
6ce942b017db75b559a42bdc2d7b8ea9e869a956wrowe<td><code class="funcdef">
6ce942b017db75b559a42bdc2d7b8ea9e869a956wrowevoid
6ce942b017db75b559a42bdc2d7b8ea9e869a956wrowe<b class="fsfunc">lwres_noopresponse_free</b>(</code></td>
6ce942b017db75b559a42bdc2d7b8ea9e869a956wrowe<td>lwres_context_t *�</td>
6ce942b017db75b559a42bdc2d7b8ea9e869a956wrowe<td>
7dfed2b71c9c4223996cbd7c5c0c85c7c8fef2a4rbb<var class="pdparam">ctx</var>, </td>
7dfed2b71c9c4223996cbd7c5c0c85c7c8fef2a4rbb</tr>
6ce942b017db75b559a42bdc2d7b8ea9e869a956wrowe<tr>
7dfed2b71c9c4223996cbd7c5c0c85c7c8fef2a4rbb<td>�</td>
574f6ff9ee80ef4f772649c5c8319b764a8abe42jerenkrantz<td>lwres_noopresponse_t **�</td>
574f6ff9ee80ef4f772649c5c8319b764a8abe42jerenkrantz<td>
574f6ff9ee80ef4f772649c5c8319b764a8abe42jerenkrantz<var class="pdparam">structp</var><code>)</code>;</td>
6d7d70dbda8e461d87f2d41e323755496ae3ebc7trawick</tr>
6d7d70dbda8e461d87f2d41e323755496ae3ebc7trawick</table>
6d7d70dbda8e461d87f2d41e323755496ae3ebc7trawick<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
22a25f3393393b781e214f4abef17950bcb8bbe3jerenkrantz<tr>
22a25f3393393b781e214f4abef17950bcb8bbe3jerenkrantz<td><code class="funcdef">
22a25f3393393b781e214f4abef17950bcb8bbe3jerenkrantzvoid
a310497ca9c5112d759871e1b7d9f6a40fb78bcfwrowe<b class="fsfunc">lwres_nooprequest_free</b>(</code></td>
a310497ca9c5112d759871e1b7d9f6a40fb78bcfwrowe<td>lwres_context_t *�</td>
a310497ca9c5112d759871e1b7d9f6a40fb78bcfwrowe<td>
a310497ca9c5112d759871e1b7d9f6a40fb78bcfwrowe<var class="pdparam">ctx</var>, </td>
a310497ca9c5112d759871e1b7d9f6a40fb78bcfwrowe</tr>
a310497ca9c5112d759871e1b7d9f6a40fb78bcfwrowe<tr>
a310497ca9c5112d759871e1b7d9f6a40fb78bcfwrowe<td>�</td>
8bda0627eb2aca9e678c1303a0423d33069388dfwrowe<td>lwres_nooprequest_t **�</td>
de63b1eeff87cd19cf42bb83cca85381026965ddjerenkrantz<td>
f00bc25ff5027f3a40e9cd0ade782641bd0bf1d0wrowe<var class="pdparam">structp</var><code>)</code>;</td>
e36ef0d081aa59867688bcbb3da65952ec16fae3rbb</tr>
e36ef0d081aa59867688bcbb3da65952ec16fae3rbb</table>
e36ef0d081aa59867688bcbb3da65952ec16fae3rbb</div>
e36ef0d081aa59867688bcbb3da65952ec16fae3rbb</div>
e36ef0d081aa59867688bcbb3da65952ec16fae3rbb<div class="refsect1" lang="en">
e36ef0d081aa59867688bcbb3da65952ec16fae3rbb<a name="id2543518"></a><h2>DESCRIPTION</h2>
e36ef0d081aa59867688bcbb3da65952ec16fae3rbb<p>
e36ef0d081aa59867688bcbb3da65952ec16fae3rbb These are low-level routines for creating and parsing
e36ef0d081aa59867688bcbb3da65952ec16fae3rbb lightweight resolver no-op request and response messages.
e36ef0d081aa59867688bcbb3da65952ec16fae3rbb </p>
e36ef0d081aa59867688bcbb3da65952ec16fae3rbb<p>
52df98b165194a0ad68885f49f81fdaf56ece568wrowe The no-op message is analogous to a <span><strong class="command">ping</strong></span>
52df98b165194a0ad68885f49f81fdaf56ece568wrowe packet:
52df98b165194a0ad68885f49f81fdaf56ece568wrowe a packet is sent to the resolver daemon and is simply echoed back.
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb The opcode is intended to allow a client to determine if the server is
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb operational or not.
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb </p>
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb<p>
7e44dd5082cd865068285e8f915bb5f045e0bb80lars There are four main functions for the no-op opcode.
7e44dd5082cd865068285e8f915bb5f045e0bb80lars One render function converts a no-op request structure &#8212;
7e44dd5082cd865068285e8f915bb5f045e0bb80lars <span class="type">lwres_nooprequest_t</span> &#8212;
7e44dd5082cd865068285e8f915bb5f045e0bb80lars to the lighweight resolver's canonical format.
44a4ee1140769173da7bc2b42d1a686e3260ad84wrowe It is complemented by a parse function that converts a packet in this
44a4ee1140769173da7bc2b42d1a686e3260ad84wrowe canonical format to a no-op request structure.
44a4ee1140769173da7bc2b42d1a686e3260ad84wrowe Another render function converts the no-op response structure &#8212;
44a4ee1140769173da7bc2b42d1a686e3260ad84wrowe <span class="type">lwres_noopresponse_t</span>
44a4ee1140769173da7bc2b42d1a686e3260ad84wrowe to the canonical format.
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz This is complemented by a parse function which converts a packet in
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz canonical format to a no-op response structure.
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz </p>
978faa9e29e0f0c42e66c07240e562325a4717b0jerenkrantz<p>
978faa9e29e0f0c42e66c07240e562325a4717b0jerenkrantz These structures are defined in
978faa9e29e0f0c42e66c07240e562325a4717b0jerenkrantz <code class="filename">lwres/lwres.h</code>.
978faa9e29e0f0c42e66c07240e562325a4717b0jerenkrantz
976501adbc040220270f7d1d77c4b8373033be69wrowe They are shown below.
976501adbc040220270f7d1d77c4b8373033be69wrowe </p>
976501adbc040220270f7d1d77c4b8373033be69wrowe<pre class="programlisting">
976501adbc040220270f7d1d77c4b8373033be69wrowe#define LWRES_OPCODE_NOOP 0x00000000U
976501adbc040220270f7d1d77c4b8373033be69wrowe</pre>
976501adbc040220270f7d1d77c4b8373033be69wrowe<p>
10a00688adcf1df367b1243810beedaabe6b1abeminfrin </p>
10a00688adcf1df367b1243810beedaabe6b1abeminfrin<pre class="programlisting">
10a00688adcf1df367b1243810beedaabe6b1abeminfrintypedef struct {
8a3a703eae0e35f674b189181609545c6fc77a09rbb lwres_uint16_t datalength;
8a3a703eae0e35f674b189181609545c6fc77a09rbb unsigned char *data;
8a3a703eae0e35f674b189181609545c6fc77a09rbb} lwres_nooprequest_t;
8a3a703eae0e35f674b189181609545c6fc77a09rbb</pre>
9af1ccb223d0669b3c3a43eed070d815afde9084mjc<p>
9af1ccb223d0669b3c3a43eed070d815afde9084mjc </p>
9af1ccb223d0669b3c3a43eed070d815afde9084mjc<pre class="programlisting">
9d41fafe32b324c197f25224207fc6ce34f085bfrbbtypedef struct {
9d41fafe32b324c197f25224207fc6ce34f085bfrbb lwres_uint16_t datalength;
9d41fafe32b324c197f25224207fc6ce34f085bfrbb unsigned char *data;
9d41fafe32b324c197f25224207fc6ce34f085bfrbb} lwres_noopresponse_t;
9d41fafe32b324c197f25224207fc6ce34f085bfrbb</pre>
889d9c84f8b1ad850f977a6d8e548696994f8f86jerenkrantz<p>
889d9c84f8b1ad850f977a6d8e548696994f8f86jerenkrantz </p>
889d9c84f8b1ad850f977a6d8e548696994f8f86jerenkrantz<p>
8c83461e53ca7d204e1d634f0c78199d60320d7bjerenkrantz Although the structures have different types, they are identical.
8c83461e53ca7d204e1d634f0c78199d60320d7bjerenkrantz This is because the no-op opcode simply echos whatever data was sent:
8c83461e53ca7d204e1d634f0c78199d60320d7bjerenkrantz the response is therefore identical to the request.
8e5842bc05146bb5c171e53b00b24063d17c666cjerenkrantz </p>
8e5842bc05146bb5c171e53b00b24063d17c666cjerenkrantz<p><code class="function">lwres_nooprequest_render()</code>
8e5842bc05146bb5c171e53b00b24063d17c666cjerenkrantz uses resolver context <em class="parameter"><code>ctx</code></em> to convert
cdb15137887e284797e9510029098dc725b4dacfjerenkrantz no-op request structure <em class="parameter"><code>req</code></em> to canonical
cdb15137887e284797e9510029098dc725b4dacfjerenkrantz format. The packet header structure <em class="parameter"><code>pkt</code></em>
798c7c11dc2fe3b08e591e9c76fc1a84857f2cd4jerenkrantz is initialised and transferred to buffer
798c7c11dc2fe3b08e591e9c76fc1a84857f2cd4jerenkrantz <em class="parameter"><code>b</code></em>. The contents of
798c7c11dc2fe3b08e591e9c76fc1a84857f2cd4jerenkrantz <em class="parameter"><code>*req</code></em> are then appended to the buffer in
798c7c11dc2fe3b08e591e9c76fc1a84857f2cd4jerenkrantz canonical format.
abaaa634d7cee882b7c4bf078ded749ebf11997erbb <code class="function">lwres_noopresponse_render()</code> performs the
abaaa634d7cee882b7c4bf078ded749ebf11997erbb same task, except it converts a no-op response structure
abaaa634d7cee882b7c4bf078ded749ebf11997erbb <span class="type">lwres_noopresponse_t</span> to the lightweight resolver's
abaaa634d7cee882b7c4bf078ded749ebf11997erbb canonical format.
0aa8e8fd5a242948518655f2296b3c76386754e5jerenkrantz </p>
0aa8e8fd5a242948518655f2296b3c76386754e5jerenkrantz<p><code class="function">lwres_nooprequest_parse()</code>
0aa8e8fd5a242948518655f2296b3c76386754e5jerenkrantz uses context <em class="parameter"><code>ctx</code></em> to convert the contents
de3abad1fe263e577bb11e99b358836bd901397crbb of packet <em class="parameter"><code>pkt</code></em> to a
de3abad1fe263e577bb11e99b358836bd901397crbb <span class="type">lwres_nooprequest_t</span> structure. Buffer
de3abad1fe263e577bb11e99b358836bd901397crbb <em class="parameter"><code>b</code></em> provides space to be used for storing
de3abad1fe263e577bb11e99b358836bd901397crbb this structure. When the function succeeds, the resulting
de3abad1fe263e577bb11e99b358836bd901397crbb <span class="type">lwres_nooprequest_t</span> is made available through
de3abad1fe263e577bb11e99b358836bd901397crbb <em class="parameter"><code>*structp</code></em>.
de3abad1fe263e577bb11e99b358836bd901397crbb <code class="function">lwres_noopresponse_parse()</code> offers the same
de3abad1fe263e577bb11e99b358836bd901397crbb semantics as <code class="function">lwres_nooprequest_parse()</code>
de3abad1fe263e577bb11e99b358836bd901397crbb except it yields a <span class="type">lwres_noopresponse_t</span> structure.
0a549489abdb309ef25483431e1e5610ed4ba7a8gstein </p>
0a549489abdb309ef25483431e1e5610ed4ba7a8gstein<p><code class="function">lwres_noopresponse_free()</code>
0a549489abdb309ef25483431e1e5610ed4ba7a8gstein and <code class="function">lwres_nooprequest_free()</code> release the
0a549489abdb309ef25483431e1e5610ed4ba7a8gstein memory in resolver context <em class="parameter"><code>ctx</code></em> that was
0a549489abdb309ef25483431e1e5610ed4ba7a8gstein allocated to the <span class="type">lwres_noopresponse_t</span> or
0a549489abdb309ef25483431e1e5610ed4ba7a8gstein <span class="type">lwres_nooprequest_t</span> structures referenced via
14c6f2e13d97a4fafac1fbc247a274a298d5b418wrowe <em class="parameter"><code>structp</code></em>.
14c6f2e13d97a4fafac1fbc247a274a298d5b418wrowe </p>
14c6f2e13d97a4fafac1fbc247a274a298d5b418wrowe</div>
14c6f2e13d97a4fafac1fbc247a274a298d5b418wrowe<div class="refsect1" lang="en">
f00d1e76bae896c2f6a520eec69b1d0d802d4108jerenkrantz<a name="id2543669"></a><h2>RETURN VALUES</h2>
f00d1e76bae896c2f6a520eec69b1d0d802d4108jerenkrantz<p>
f00d1e76bae896c2f6a520eec69b1d0d802d4108jerenkrantz The no-op opcode functions
58097d7d8d1a394092374b9f6ddf76b7993724a4rbb <code class="function">lwres_nooprequest_render()</code>,
58097d7d8d1a394092374b9f6ddf76b7993724a4rbb
58097d7d8d1a394092374b9f6ddf76b7993724a4rbb <code class="function">lwres_noopresponse_render()</code>
58097d7d8d1a394092374b9f6ddf76b7993724a4rbb <code class="function">lwres_nooprequest_parse()</code>
2f6cebd6b8bf0b044f6579d23117a4a3c364a554wrowe and
2f6cebd6b8bf0b044f6579d23117a4a3c364a554wrowe <code class="function">lwres_noopresponse_parse()</code>
2f6cebd6b8bf0b044f6579d23117a4a3c364a554wrowe all return
2f6cebd6b8bf0b044f6579d23117a4a3c364a554wrowe <span class="errorcode">LWRES_R_SUCCESS</span>
2f6cebd6b8bf0b044f6579d23117a4a3c364a554wrowe on success.
070d2f9fd52a3f0e45ca7ae1235c5a5755b80d24rbb They return
070d2f9fd52a3f0e45ca7ae1235c5a5755b80d24rbb <span class="errorcode">LWRES_R_NOMEMORY</span>
070d2f9fd52a3f0e45ca7ae1235c5a5755b80d24rbb if memory allocation fails.
070d2f9fd52a3f0e45ca7ae1235c5a5755b80d24rbb <span class="errorcode">LWRES_R_UNEXPECTEDEND</span>
070d2f9fd52a3f0e45ca7ae1235c5a5755b80d24rbb is returned if the available space in the buffer
7c19ce86bbd72bba1d018522250f5f315ffbc0afjerenkrantz <em class="parameter"><code>b</code></em>
7c19ce86bbd72bba1d018522250f5f315ffbc0afjerenkrantz is too small to accommodate the packet header or the
7c19ce86bbd72bba1d018522250f5f315ffbc0afjerenkrantz <span class="type">lwres_nooprequest_t</span>
2264fbcbab4c796c4222c30393c0b218c98b6befrbb and
2264fbcbab4c796c4222c30393c0b218c98b6befrbb <span class="type">lwres_noopresponse_t</span>
2264fbcbab4c796c4222c30393c0b218c98b6befrbb structures.
2264fbcbab4c796c4222c30393c0b218c98b6befrbb <code class="function">lwres_nooprequest_parse()</code>
e099672a13ea4ff4a11f130406f1baecba5949bajerenkrantz and
e099672a13ea4ff4a11f130406f1baecba5949bajerenkrantz <code class="function">lwres_noopresponse_parse()</code>
e099672a13ea4ff4a11f130406f1baecba5949bajerenkrantz will return
9b29e0cfeb2c89a047806cc4a2a764afed6bb170wrowe <span class="errorcode">LWRES_R_UNEXPECTEDEND</span>
9b29e0cfeb2c89a047806cc4a2a764afed6bb170wrowe if the buffer is not empty after decoding the received packet.
9b29e0cfeb2c89a047806cc4a2a764afed6bb170wrowe These functions will return
9b29e0cfeb2c89a047806cc4a2a764afed6bb170wrowe <span class="errorcode">LWRES_R_FAILURE</span>
441bd066858500e75e4f63ef149120bcf523de58jerenkrantz if
441bd066858500e75e4f63ef149120bcf523de58jerenkrantz <code class="constant">pktflags</code>
441bd066858500e75e4f63ef149120bcf523de58jerenkrantz in the packet header structure
d6a93816bfaa5b3de5f2e6cb0d172cbe20dd056ejerenkrantz <span class="type">lwres_lwpacket_t</span>
d6a93816bfaa5b3de5f2e6cb0d172cbe20dd056ejerenkrantz indicate that the packet is not a response to an earlier query.
d6a93816bfaa5b3de5f2e6cb0d172cbe20dd056ejerenkrantz </p>
c839614b4216fe34f6346668ad646aca2c0f23c6wrowe</div>
c839614b4216fe34f6346668ad646aca2c0f23c6wrowe<div class="refsect1" lang="en">
c839614b4216fe34f6346668ad646aca2c0f23c6wrowe<a name="id2543735"></a><h2>SEE ALSO</h2>
c839614b4216fe34f6346668ad646aca2c0f23c6wrowe<p><span class="citerefentry"><span class="refentrytitle">lwres_packet</span>(3)</span>
c839614b4216fe34f6346668ad646aca2c0f23c6wrowe </p>
c839614b4216fe34f6346668ad646aca2c0f23c6wrowe</div>
117e2968318323d2ad2187fcd4de379d2eca245cwrowe</div></body>
117e2968318323d2ad2187fcd4de379d2eca245cwrowe</html>
117e2968318323d2ad2187fcd4de379d2eca245cwrowe