Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 550bbe86d83a7870fdddc73c68e5d2b2 > files > 183

libunbound-devel-1.3.4-1mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>unbound: iterator/iterator.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="dir_fb9f2b54f370aa6f4de91e34db18da16.html">iterator</a>
  </div>
</div>
<div class="contents">
<h1>iterator.h File Reference</h1>This file contains a module that performs recusive iterative DNS query processing.  
<a href="#_details">More...</a>
<p>
<code>#include &quot;<a class="el" href="outbound__list_8h.html">services/outbound_list.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="msgreply_8h.html">util/data/msgreply.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="module_8h.html">util/module.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiter__env.html">iter_env</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Global state for the iterator.  <a href="structiter__env.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiter__qstate.html">iter_qstate</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Per query state for the iterator module.  <a href="structiter__qstate.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiter__prep__list.html">iter_prep_list</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">List of prepend items.  <a href="structiter__prep__list.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#db5addd8a915205a3a8667a3eb1c0610">MAX_RESTART_COUNT</a>&nbsp;&nbsp;&nbsp;8</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">max number of query restarts.  <a href="#db5addd8a915205a3a8667a3eb1c0610"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#30bc94d263312d49b1cce20462caddc4">MAX_REFERRAL_COUNT</a>&nbsp;&nbsp;&nbsp;30</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">max number of referrals.  <a href="#30bc94d263312d49b1cce20462caddc4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="50d52ffa15d93eb25e10755e84d5deb9"></a><!-- doxytag: member="iterator.h::UNKNOWN_SERVER_NICENESS" ref="50d52ffa15d93eb25e10755e84d5deb9" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#50d52ffa15d93eb25e10755e84d5deb9">UNKNOWN_SERVER_NICENESS</a>&nbsp;&nbsp;&nbsp;376</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">how nice is a server without further information, in msec Equals rtt initial timeout value. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#715a6e35247db03a45d8ea196c44b003">USEFUL_SERVER_TOP_TIMEOUT</a>&nbsp;&nbsp;&nbsp;120000</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">maximum timeout before a host is deemed unsuitable, in msec.  <a href="#715a6e35247db03a45d8ea196c44b003"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ee6078de25af5dc0f8c2cfcdfd808858"></a><!-- doxytag: member="iterator.h::OUTBOUND_MSG_RETRY" ref="ee6078de25af5dc0f8c2cfcdfd808858" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#ee6078de25af5dc0f8c2cfcdfd808858">OUTBOUND_MSG_RETRY</a>&nbsp;&nbsp;&nbsp;5</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of retries on outgoing queries <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#9c05c9f579de1fb9da11a9afa1f57f69">RTT_BAND</a>&nbsp;&nbsp;&nbsp;400</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">RTT band, within this amount from the best, servers are chosen randomly.  <a href="#9c05c9f579de1fb9da11a9afa1f57f69"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d71">iter_state</a> { <br>
&nbsp;&nbsp;<a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d71432a6434eae32f84850eb16312a59ac2">INIT_REQUEST_STATE</a> =  0, 
<a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d719bdb6dc72ef39d6bc04d80ae703ffe1e">INIT_REQUEST_2_STATE</a>, 
<a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d711e0cf33b83e09036d2ab741bcc188e04">INIT_REQUEST_3_STATE</a>, 
<a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d71e1f1e2311b2f95e361695dc5d8a3f1d4">QUERYTARGETS_STATE</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d71867767e66b2ebf4239cd9cfc0e16f69e">QUERY_RESP_STATE</a>, 
<a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d7140bb8cedcb5fc146399afcec750f2ce1">PRIME_RESP_STATE</a>, 
<a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d712f27b85ac02afc3ee02569b4b4f659fc">FINISHED_STATE</a>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">State of the iterator for a query.  <a href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d71">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structmodule__func__block.html">module_func_block</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#14895181630c3154c10d85f13392fa36">iter_get_funcblock</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the iterator function block.  <a href="#14895181630c3154c10d85f13392fa36"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#043f02aa5cb5076498a300b152c11b29">iter_state_to_string</a> (enum <a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d71">iter_state</a> state)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get iterator state as a string.  <a href="#043f02aa5cb5076498a300b152c11b29"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#6df144c1f5536d55b2fcf73f4ea70c22">iter_state_is_responsestate</a> (enum <a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d71">iter_state</a> s)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See if iterator state is a response state.  <a href="#6df144c1f5536d55b2fcf73f4ea70c22"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="98c5219896591cebc16f0305fbc30039"></a><!-- doxytag: member="iterator.h::iter_init" ref="98c5219896591cebc16f0305fbc30039" args="(struct module_env *env, int id)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#98c5219896591cebc16f0305fbc30039">iter_init</a> (struct <a class="el" href="structmodule__env.html">module_env</a> *env, int id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">iterator init <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c4207b4c6207ae9028f546c9ccd4829d"></a><!-- doxytag: member="iterator.h::iter_deinit" ref="c4207b4c6207ae9028f546c9ccd4829d" args="(struct module_env *env, int id)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#c4207b4c6207ae9028f546c9ccd4829d">iter_deinit</a> (struct <a class="el" href="structmodule__env.html">module_env</a> *env, int id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">iterator deinit <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e9c127d133b0063cd5e1d70961d8c74e"></a><!-- doxytag: member="iterator.h::iter_operate" ref="e9c127d133b0063cd5e1d70961d8c74e" args="(struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#e9c127d133b0063cd5e1d70961d8c74e">iter_operate</a> (struct <a class="el" href="structmodule__qstate.html">module_qstate</a> *qstate, enum <a class="el" href="module_8h.html#3d7416154a3bc44d78e8a6e99efc4376">module_ev</a> event, int id, struct <a class="el" href="structoutbound__entry.html">outbound_entry</a> *outbound)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">iterator operate on a query <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#98d45f2b3d4fbb121dcf41ea08db47a4">iter_inform_super</a> (struct <a class="el" href="structmodule__qstate.html">module_qstate</a> *qstate, int id, struct <a class="el" href="structmodule__qstate.html">module_qstate</a> *super)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return priming query results to interestes super querystates.  <a href="#98d45f2b3d4fbb121dcf41ea08db47a4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b24ab14711ff6e06e410e9288e2207a5"></a><!-- doxytag: member="iterator.h::iter_clear" ref="b24ab14711ff6e06e410e9288e2207a5" args="(struct module_qstate *qstate, int id)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#b24ab14711ff6e06e410e9288e2207a5">iter_clear</a> (struct <a class="el" href="structmodule__qstate.html">module_qstate</a> *qstate, int id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">iterator cleanup query state <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="65989cc4b13122873b79a975a89a8a3c"></a><!-- doxytag: member="iterator.h::iter_get_mem" ref="65989cc4b13122873b79a975a89a8a3c" args="(struct module_env *env, int id)" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iterator_8h.html#65989cc4b13122873b79a975a89a8a3c">iter_get_mem</a> (struct <a class="el" href="structmodule__env.html">module_env</a> *env, int id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">iterator alloc size routine <br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
This file contains a module that performs recusive iterative DNS query processing. 
<p>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="db5addd8a915205a3a8667a3eb1c0610"></a><!-- doxytag: member="iterator.h::MAX_RESTART_COUNT" ref="db5addd8a915205a3a8667a3eb1c0610" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_RESTART_COUNT&nbsp;&nbsp;&nbsp;8          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
max number of query restarts. 
<p>
Determines max number of CNAME chain. 
<p>Referenced by <a class="el" href="iterator_8c_source.html#l00827">processInitRequest()</a>.</p>

</div>
</div><p>
<a class="anchor" name="30bc94d263312d49b1cce20462caddc4"></a><!-- doxytag: member="iterator.h::MAX_REFERRAL_COUNT" ref="30bc94d263312d49b1cce20462caddc4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_REFERRAL_COUNT&nbsp;&nbsp;&nbsp;30          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
max number of referrals. 
<p>
Makes sure resolver does not run away 
<p>Referenced by <a class="el" href="iterator_8c_source.html#l01249">processQueryTargets()</a>.</p>

</div>
</div><p>
<a class="anchor" name="715a6e35247db03a45d8ea196c44b003"></a><!-- doxytag: member="iterator.h::USEFUL_SERVER_TOP_TIMEOUT" ref="715a6e35247db03a45d8ea196c44b003" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define USEFUL_SERVER_TOP_TIMEOUT&nbsp;&nbsp;&nbsp;120000          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
maximum timeout before a host is deemed unsuitable, in msec. 
<p>
After host_ttl this will be timed out and the host will be tried again. Equals RTT_MAX_TIMEOUT 
<p>Referenced by <a class="el" href="iter__utils_8c_source.html#l00234">iter_filter_order()</a>, <a class="el" href="iter__utils_8c_source.html#l00169">iter_filter_unsuitable()</a>, and <a class="el" href="iter__utils_8c_source.html#l00286">iter_server_selection()</a>.</p>

</div>
</div><p>
<a class="anchor" name="9c05c9f579de1fb9da11a9afa1f57f69"></a><!-- doxytag: member="iterator.h::RTT_BAND" ref="9c05c9f579de1fb9da11a9afa1f57f69" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RTT_BAND&nbsp;&nbsp;&nbsp;400          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
RTT band, within this amount from the best, servers are chosen randomly. 
<p>
Chosen so that the UNKNOWN_SERVER_NICENESS falls within the band of a fast server, this causes server exploration as a side benefit. msec. 
<p>Referenced by <a class="el" href="iter__utils_8c_source.html#l00234">iter_filter_order()</a>.</p>

</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="691d8b62aab93aba0712e3db11d98d71"></a><!-- doxytag: member="iterator.h::iter_state" ref="691d8b62aab93aba0712e3db11d98d71" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d71">iter_state</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
State of the iterator for a query. 
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="691d8b62aab93aba0712e3db11d98d71432a6434eae32f84850eb16312a59ac2"></a><!-- doxytag: member="INIT_REQUEST_STATE" ref="691d8b62aab93aba0712e3db11d98d71432a6434eae32f84850eb16312a59ac2" args="" -->INIT_REQUEST_STATE</em>&nbsp;</td><td>
Externally generated queries start at this state. 
<p>
Query restarts are reset to this state. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="691d8b62aab93aba0712e3db11d98d719bdb6dc72ef39d6bc04d80ae703ffe1e"></a><!-- doxytag: member="INIT_REQUEST_2_STATE" ref="691d8b62aab93aba0712e3db11d98d719bdb6dc72ef39d6bc04d80ae703ffe1e" args="" -->INIT_REQUEST_2_STATE</em>&nbsp;</td><td>
Root priming events reactivate here, most other events pass through this naturally as the 2nd part of the INIT_REQUEST_STATE. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="691d8b62aab93aba0712e3db11d98d711e0cf33b83e09036d2ab741bcc188e04"></a><!-- doxytag: member="INIT_REQUEST_3_STATE" ref="691d8b62aab93aba0712e3db11d98d711e0cf33b83e09036d2ab741bcc188e04" args="" -->INIT_REQUEST_3_STATE</em>&nbsp;</td><td>
Stub priming events reactivate here, most other events pass through this naturally as the 3rd part of the INIT_REQUEST_STATE. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="691d8b62aab93aba0712e3db11d98d71e1f1e2311b2f95e361695dc5d8a3f1d4"></a><!-- doxytag: member="QUERYTARGETS_STATE" ref="691d8b62aab93aba0712e3db11d98d71e1f1e2311b2f95e361695dc5d8a3f1d4" args="" -->QUERYTARGETS_STATE</em>&nbsp;</td><td>
Each time a delegation point changes for a given query or a query times out and/or wakes up, this state is (re)visited. 
<p>
This state is reponsible for iterating through a list of nameserver targets. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="691d8b62aab93aba0712e3db11d98d71867767e66b2ebf4239cd9cfc0e16f69e"></a><!-- doxytag: member="QUERY_RESP_STATE" ref="691d8b62aab93aba0712e3db11d98d71867767e66b2ebf4239cd9cfc0e16f69e" args="" -->QUERY_RESP_STATE</em>&nbsp;</td><td>
Responses to queries start at this state. 
<p>
This state handles the decision tree associated with handling responses. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="691d8b62aab93aba0712e3db11d98d7140bb8cedcb5fc146399afcec750f2ce1"></a><!-- doxytag: member="PRIME_RESP_STATE" ref="691d8b62aab93aba0712e3db11d98d7140bb8cedcb5fc146399afcec750f2ce1" args="" -->PRIME_RESP_STATE</em>&nbsp;</td><td>
Responses to priming queries finish at this state. 
<p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="691d8b62aab93aba0712e3db11d98d712f27b85ac02afc3ee02569b4b4f659fc"></a><!-- doxytag: member="FINISHED_STATE" ref="691d8b62aab93aba0712e3db11d98d712f27b85ac02afc3ee02569b4b4f659fc" args="" -->FINISHED_STATE</em>&nbsp;</td><td>
Responses that are to be returned upstream end at this state. 
<p>
As well as responses to target queries. </td></tr>
</table>
</dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="14895181630c3154c10d85f13392fa36"></a><!-- doxytag: member="iterator.h::iter_get_funcblock" ref="14895181630c3154c10d85f13392fa36" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structmodule__func__block.html">module_func_block</a>* iter_get_funcblock           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the iterator function block. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>: function block with function pointers to iterator methods. </dd></dl>

<p>Referenced by <a class="el" href="unbound-checkconf_8c_source.html#l00547">checkconf()</a>, and <a class="el" href="modstack_8c_source.html#l00132">module_funcs_avail()</a>.</p>

</div>
</div><p>
<a class="anchor" name="043f02aa5cb5076498a300b152c11b29"></a><!-- doxytag: member="iterator.h::iter_state_to_string" ref="043f02aa5cb5076498a300b152c11b29" args="(enum iter_state state)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* iter_state_to_string           </td>
          <td>(</td>
          <td class="paramtype">enum <a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d71">iter_state</a>&nbsp;</td>
          <td class="paramname"> <em>state</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get iterator state as a string. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>state,:</em>&nbsp;</td><td>to convert </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>constant string that is printable. </dd></dl>

<p>References <a class="el" href="iterator_8h_source.html#l00151">FINISHED_STATE</a>, <a class="el" href="iterator_8h_source.html#l00124">INIT_REQUEST_2_STATE</a>, <a class="el" href="iterator_8h_source.html#l00130">INIT_REQUEST_3_STATE</a>, <a class="el" href="iterator_8h_source.html#l00118">INIT_REQUEST_STATE</a>, <a class="el" href="iterator_8h_source.html#l00147">PRIME_RESP_STATE</a>, <a class="el" href="iterator_8h_source.html#l00144">QUERY_RESP_STATE</a>, and <a class="el" href="iterator_8h_source.html#l00138">QUERYTARGETS_STATE</a>.</p>

<p>Referenced by <a class="el" href="iterator_8c_source.html#l01951">iter_handle()</a>.</p>

</div>
</div><p>
<a class="anchor" name="6df144c1f5536d55b2fcf73f4ea70c22"></a><!-- doxytag: member="iterator.h::iter_state_is_responsestate" ref="6df144c1f5536d55b2fcf73f4ea70c22" args="(enum iter_state s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int iter_state_is_responsestate           </td>
          <td>(</td>
          <td class="paramtype">enum <a class="el" href="iterator_8h.html#691d8b62aab93aba0712e3db11d98d71">iter_state</a>&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
See if iterator state is a response state. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s,:</em>&nbsp;</td><td>to inspect </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if response state. </dd></dl>

<p>References <a class="el" href="iterator_8h_source.html#l00124">INIT_REQUEST_2_STATE</a>, <a class="el" href="iterator_8h_source.html#l00130">INIT_REQUEST_3_STATE</a>, <a class="el" href="iterator_8h_source.html#l00118">INIT_REQUEST_STATE</a>, and <a class="el" href="iterator_8h_source.html#l00138">QUERYTARGETS_STATE</a>.</p>

<p>Referenced by <a class="el" href="iterator_8c_source.html#l00140">next_state()</a>.</p>

</div>
</div><p>
<a class="anchor" name="98d45f2b3d4fbb121dcf41ea08db47a4"></a><!-- doxytag: member="iterator.h::iter_inform_super" ref="98d45f2b3d4fbb121dcf41ea08db47a4" args="(struct module_qstate *qstate, int id, struct module_qstate *super)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void iter_inform_super           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structmodule__qstate.html">module_qstate</a> *&nbsp;</td>
          <td class="paramname"> <em>qstate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structmodule__qstate.html">module_qstate</a> *&nbsp;</td>
          <td class="paramname"> <em>super</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return priming query results to interestes super querystates. 
<p>
Sets the delegation point and delegation message (not nonRD queries). This is a callback from walk_supers.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>qstate,:</em>&nbsp;</td><td>query state that finished. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id,:</em>&nbsp;</td><td>module id. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>super,:</em>&nbsp;</td><td>the qstate to inform. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="iterator_8c_source.html#l00179">error_supers()</a>, <a class="el" href="module_8h_source.html#l00268">module_qstate::is_priming</a>, <a class="el" href="iterator_8c_source.html#l01696">prime_supers()</a>, <a class="el" href="iterator_8c_source.html#l01798">processTargetResponse()</a>, and <a class="el" href="module_8h_source.html#l00275">module_qstate::return_rcode</a>.</p>

<p>Referenced by <a class="el" href="fptr__wlist_8c_source.html#l00332">fptr_whitelist_mod_inform_super()</a>.</p>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Oct 13 06:46:30 2009 for unbound by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>