lwres_noop.html revision ea94d370123a5892f6c47a97f21d1b28d44bb168
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<!--
990d0e893f5b70e735cdf990af66e9ec6e91fa78Tinderbox User - Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews - Copyright (C) 2000, 2001 Internet Software Consortium.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein -
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater - Permission to use, copy, modify, and/or distribute this software for any
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - purpose with or without fee is hereby granted, provided that the above
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - copyright notice and this permission notice appear in all copies.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein -
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - PERFORMANCE OF THIS SOFTWARE.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein-->
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User<!-- $Id$ -->
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<html>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<head>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<title>lwres_noop</title>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</head>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<a name="id2476274"></a><div class="titlepage"></div>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<div class="refnamediv">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<h2>Name</h2>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<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>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</div>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<div class="refsynopsisdiv">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<h2>Synopsis</h2>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<div class="funcsynopsis">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<pre class="funcsynopsisinfo">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#include &lt;lwres/lwres.h&gt;</pre>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td><code class="funcdef">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlwres_result_t
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<b class="fsfunc">lwres_nooprequest_render</b>(</code></td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>lwres_context_t *�</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<var class="pdparam">ctx</var>, </td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User</tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<tr>
990d0e893f5b70e735cdf990af66e9ec6e91fa78Tinderbox User<td>�</td>
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews<td>lwres_nooprequest_t *�</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<var class="pdparam">req</var>, </td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>�</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>lwres_lwpacket_t *�</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<var class="pdparam">pkt</var>, </td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User</tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>lwres_buffer_t *�</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<var class="pdparam">b</var><code>)</code>;</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User</tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User</table>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td><code class="funcdef">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlwres_result_t
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<b class="fsfunc">lwres_noopresponse_render</b>(</code></td>
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews<td>lwres_context_t *�</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<var class="pdparam">ctx</var>, </td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User</tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>lwres_noopresponse_t *�</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<var class="pdparam">req</var>, </td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>lwres_lwpacket_t *�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<var class="pdparam">pkt</var>, </td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User</tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>lwres_buffer_t *�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<var class="pdparam">b</var><code>)</code>;</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</table>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td><code class="funcdef">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlwres_result_t
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<b class="fsfunc">lwres_nooprequest_parse</b>(</code></td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>lwres_context_t *�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<var class="pdparam">ctx</var>, </td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>lwres_buffer_t *�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<var class="pdparam">b</var>, </td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User</tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>lwres_lwpacket_t *�</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<var class="pdparam">pkt</var>, </td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User</tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>�</td>
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater<td>lwres_nooprequest_t **�</td>
6f64d4ab8e68f9b2333bcbfc755396d29a4a9d7cAutomatic Updater<td>
6f64d4ab8e68f9b2333bcbfc755396d29a4a9d7cAutomatic Updater<var class="pdparam">structp</var><code>)</code>;</td>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User</tr>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User</table>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<tr>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<td><code class="funcdef">
2fa992d017c027173a47c834db88bef10df453c0Tinderbox Userlwres_result_t
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<b class="fsfunc">lwres_noopresponse_parse</b>(</code></td>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<td>lwres_context_t *�</td>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<td>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<var class="pdparam">ctx</var>, </td>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User</tr>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<tr>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<td>�</td>
6f64d4ab8e68f9b2333bcbfc755396d29a4a9d7cAutomatic Updater<td>lwres_buffer_t *�</td>
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater<td>
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater<var class="pdparam">b</var>, </td>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User</tr>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<tr>
bbbf2e27d3a981163dab139497d6b2dc85449db0Tinderbox User<td>�</td>
bbbf2e27d3a981163dab139497d6b2dc85449db0Tinderbox User<td>lwres_lwpacket_t *�</td>
bbbf2e27d3a981163dab139497d6b2dc85449db0Tinderbox User<td>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<var class="pdparam">pkt</var>, </td>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User</tr>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<tr>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<td>�</td>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<td>lwres_noopresponse_t **�</td>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<td>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<var class="pdparam">structp</var><code>)</code>;</td>
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater</tr>
bcf15a19ae0efa72a22cdfb50666a3c6ce39eb9fTinderbox User</table>
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em">
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<tr>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<td><code class="funcdef">
bcf15a19ae0efa72a22cdfb50666a3c6ce39eb9fTinderbox Uservoid
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<b class="fsfunc">lwres_noopresponse_free</b>(</code></td>
bcf15a19ae0efa72a22cdfb50666a3c6ce39eb9fTinderbox User<td>lwres_context_t *�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<var class="pdparam">ctx</var>, </td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<tr>
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews<td>�</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>lwres_noopresponse_t **�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<var class="pdparam">structp</var><code>)</code>;</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</tr>
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews</table>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td><code class="funcdef">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinvoid
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<b class="fsfunc">lwres_nooprequest_free</b>(</code></td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>lwres_context_t *�</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<var class="pdparam">ctx</var>, </td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User</tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>�</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<td>lwres_nooprequest_t **�</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<var class="pdparam">structp</var><code>)</code>;</td>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User</tr>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User</table>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</div>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User</div>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<div class="refsect1" lang="en">
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<a name="id2543524"></a><h2>DESCRIPTION</h2>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<p>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein These are low-level routines for creating and parsing
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User lightweight resolver no-op request and response messages.
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User </p>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User<p>
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User The no-op message is analogous to a <span><strong class="command">ping</strong></span>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein packet:
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User a packet is sent to the resolver daemon and is simply echoed back.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein The opcode is intended to allow a client to determine if the server is
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein operational or not.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein </p>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<p>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein There are four main functions for the no-op opcode.
a1ad6695ed6f988406cf155aa26376f84f73bcb9Automatic Updater One render function converts a no-op request structure &#8212;
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User <span class="type">lwres_nooprequest_t</span> &#8212;
a1ad6695ed6f988406cf155aa26376f84f73bcb9Automatic Updater to the lighweight resolver's canonical format.
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater It is complemented by a parse function that converts a packet in this
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User canonical format to a no-op request structure.
2895f101b5585a19015ac2c2c1e1812ac467fa12Automatic Updater Another render function converts the no-op response structure &#8212;
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User <span class="type">lwres_noopresponse_t</span>
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater to the canonical format.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein This is complemented by a parse function which converts a packet in
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein canonical format to a no-op response structure.
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User </p>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<p>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein These structures are defined in
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User <code class="filename">lwres/lwres.h</code>.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User They are shown below.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein </p>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<pre class="programlisting">
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User#define LWRES_OPCODE_NOOP 0x00000000U
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</pre>
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User<p>
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User </p>
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User<pre class="programlisting">
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrewstypedef struct {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein lwres_uint16_t datalength;
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic Updater unsigned char *data;
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic Updater} lwres_nooprequest_t;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</pre>
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews<p>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein </p>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<pre class="programlisting">
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox Usertypedef struct {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein lwres_uint16_t datalength;
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User unsigned char *data;
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User} lwres_noopresponse_t;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein</pre>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<p>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein </p>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<p>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Although the structures have different types, they are identical.
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User This is because the no-op opcode simply echos whatever data was sent:
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User the response is therefore identical to the request.
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User </p>
60c29cf21affb5243753e22f9ff43347013ae8ebTinderbox User<p><code class="function">lwres_nooprequest_render()</code>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein uses resolver context <em class="parameter"><code>ctx</code></em> to convert
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein no-op request structure <em class="parameter"><code>req</code></em> to canonical
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein format. The packet header structure <em class="parameter"><code>pkt</code></em>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User is initialised and transferred to buffer
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User <em class="parameter"><code>b</code></em>. The contents of
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User <em class="parameter"><code>*req</code></em> are then appended to the buffer in
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User canonical format.
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User <code class="function">lwres_noopresponse_render()</code> performs the
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User same task, except it converts a no-op response structure
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User <span class="type">lwres_noopresponse_t</span> to the lightweight resolver's
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User canonical format.
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User </p>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User<p><code class="function">lwres_nooprequest_parse()</code>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User uses context <em class="parameter"><code>ctx</code></em> to convert the contents
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews of packet <em class="parameter"><code>pkt</code></em> to a
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User <span class="type">lwres_nooprequest_t</span> structure. Buffer
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <em class="parameter"><code>b</code></em> provides space to be used for storing
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein this structure. When the function succeeds, the resulting
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <span class="type">lwres_nooprequest_t</span> is made available through
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <em class="parameter"><code>*structp</code></em>.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <code class="function">lwres_noopresponse_parse()</code> offers the same
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User semantics as <code class="function">lwres_nooprequest_parse()</code>
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater except it yields a <span class="type">lwres_noopresponse_t</span> structure.
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater </p>
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater<p><code class="function">lwres_noopresponse_free()</code>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User and <code class="function">lwres_nooprequest_free()</code> release the
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User memory in resolver context <em class="parameter"><code>ctx</code></em> that was
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User allocated to the <span class="type">lwres_noopresponse_t</span> or
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User <span class="type">lwres_nooprequest_t</span> structures referenced via
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User <em class="parameter"><code>structp</code></em>.
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User </p>
2fa992d017c027173a47c834db88bef10df453c0Tinderbox User</div>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<div class="refsect1" lang="en">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<a name="id2543674"></a><h2>RETURN VALUES</h2>
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews<p>
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews The no-op opcode functions
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews <code class="function">lwres_nooprequest_render()</code>,
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews <code class="function">lwres_noopresponse_render()</code>
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews <code class="function">lwres_nooprequest_parse()</code>
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews and
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews <code class="function">lwres_noopresponse_parse()</code>
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews all return
e108f2ec640e1acb54999c0ade58af606149956dTinderbox User <span class="errorcode">LWRES_R_SUCCESS</span>
6d382c9fcec316a84a237779fb64bb471b6f9d43Tinderbox User on success.
6d382c9fcec316a84a237779fb64bb471b6f9d43Tinderbox User They return
f9aef05653eeb454c489d5bd2bde6daab774ad4aTinderbox User <span class="errorcode">LWRES_R_NOMEMORY</span>
f9aef05653eeb454c489d5bd2bde6daab774ad4aTinderbox User if memory allocation fails.
f9aef05653eeb454c489d5bd2bde6daab774ad4aTinderbox User <span class="errorcode">LWRES_R_UNEXPECTEDEND</span>
f9aef05653eeb454c489d5bd2bde6daab774ad4aTinderbox User is returned if the available space in the buffer
f9aef05653eeb454c489d5bd2bde6daab774ad4aTinderbox User <em class="parameter"><code>b</code></em>
f9aef05653eeb454c489d5bd2bde6daab774ad4aTinderbox User is too small to accommodate the packet header or the
922312472e2e05ebc64993d465999c5351b83036Automatic Updater <span class="type">lwres_nooprequest_t</span>
922312472e2e05ebc64993d465999c5351b83036Automatic Updater and
922312472e2e05ebc64993d465999c5351b83036Automatic Updater <span class="type">lwres_noopresponse_t</span>
50066670817cdf9e86c832066d73715232b29680Tinderbox User structures.
50066670817cdf9e86c832066d73715232b29680Tinderbox User <code class="function">lwres_nooprequest_parse()</code>
50066670817cdf9e86c832066d73715232b29680Tinderbox User and
28b3569d6248168e6c00caab951521cc8141a49dAutomatic Updater <code class="function">lwres_noopresponse_parse()</code>
28b3569d6248168e6c00caab951521cc8141a49dAutomatic Updater will return
28b3569d6248168e6c00caab951521cc8141a49dAutomatic Updater <span class="errorcode">LWRES_R_UNEXPECTEDEND</span>
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews if the buffer is not empty after decoding the received packet.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews These functions will return
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews <span class="errorcode">LWRES_R_FAILURE</span>
2cbb4ab75757fbb656997a82c14ca07db37d481aAutomatic Updater if
2cbb4ab75757fbb656997a82c14ca07db37d481aAutomatic Updater <code class="constant">pktflags</code>
2cbb4ab75757fbb656997a82c14ca07db37d481aAutomatic Updater in the packet header structure
0a7ed88633a680bb881868b75ded4d09a7bbbc50Automatic Updater <span class="type">lwres_lwpacket_t</span>
0a7ed88633a680bb881868b75ded4d09a7bbbc50Automatic Updater indicate that the packet is not a response to an earlier query.
0a7ed88633a680bb881868b75ded4d09a7bbbc50Automatic Updater </p>
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews</div>
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews<div class="refsect1" lang="en">
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews<a name="id2543740"></a><h2>SEE ALSO</h2>
c3dc968140ab7f04795acc7835e4e89ccb0c0a27Tinderbox User<p><span class="citerefentry"><span class="refentrytitle">lwres_packet</span>(3)</span>
c3dc968140ab7f04795acc7835e4e89ccb0c0a27Tinderbox User </p>
c3dc968140ab7f04795acc7835e4e89ccb0c0a27Tinderbox User</div>
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews</div></body>
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews</html>
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews