Sophie

Sophie

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

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: validator/validator.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_d2a455e92b602458a2b0ed9b207bdda1.html">validator</a>
  </div>
</div>
<div class="contents">
<h1>validator.h File Reference</h1>This file contains a module that performs validation of DNS queries.  
<a href="#_details">More...</a>
<p>
<code>#include &quot;<a class="el" href="module_8h.html">util/module.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="val__utils_8h.html">validator/val_utils.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="structval__env.html">val_env</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Global state for the validator.  <a href="structval__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="structval__qstate.html">val_qstate</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Per query state for the validator module.  <a href="structval__qstate.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="validator_8h.html#5096140374e137d9909f9b40802da94f">NULL_KEY_TTL</a>&nbsp;&nbsp;&nbsp;900</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the TTL to use when a trust anchor fails to prime.  <a href="#5096140374e137d9909f9b40802da94f"></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="validator_8h.html#29853b25a6abd9830861ec0b723b36c3">val_state</a> { <br>
&nbsp;&nbsp;<a class="el" href="validator_8h.html#29853b25a6abd9830861ec0b723b36c3397a548383fab1558fc5095c4be4f5f1">VAL_INIT_STATE</a> =  0, 
<a class="el" href="validator_8h.html#29853b25a6abd9830861ec0b723b36c39fcdd9abb072881601e16a1d244193ff">VAL_FINDKEY_STATE</a>, 
<a class="el" href="validator_8h.html#29853b25a6abd9830861ec0b723b36c37af99e8f0d139a507a767160a1aa5dc9">VAL_VALIDATE_STATE</a>, 
<a class="el" href="validator_8h.html#29853b25a6abd9830861ec0b723b36c3517b673e970006b1a8a6c0584b22157e">VAL_FINISHED_STATE</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="validator_8h.html#29853b25a6abd9830861ec0b723b36c3cb8bcf8037955fb397e76975c10500d3">VAL_DLVLOOKUP_STATE</a>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">State of the validator for a query.  <a href="validator_8h.html#29853b25a6abd9830861ec0b723b36c3">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="validator_8h.html#e2081327355286f24a9840e2f5617435">val_get_funcblock</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the validator function block.  <a href="#e2081327355286f24a9840e2f5617435"></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="validator_8h.html#681e5a71d2b5d7ec01110ad344cc34c9">val_state_to_string</a> (enum <a class="el" href="validator_8h.html#29853b25a6abd9830861ec0b723b36c3">val_state</a> state)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get validator state as a string.  <a href="#681e5a71d2b5d7ec01110ad344cc34c9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b0da6ed917ff734a0d90e6bd62f817b3"></a><!-- doxytag: member="validator.h::val_init" ref="b0da6ed917ff734a0d90e6bd62f817b3" args="(struct module_env *env, int id)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="validator_8h.html#b0da6ed917ff734a0d90e6bd62f817b3">val_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">validator init <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0b37ba2726c6d1557de52abd8a8dcddd"></a><!-- doxytag: member="validator.h::val_deinit" ref="0b37ba2726c6d1557de52abd8a8dcddd" args="(struct module_env *env, int id)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="validator_8h.html#0b37ba2726c6d1557de52abd8a8dcddd">val_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">validator deinit <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ad92c0aa0148b57d40117749871dd58d"></a><!-- doxytag: member="validator.h::val_operate" ref="ad92c0aa0148b57d40117749871dd58d" 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="validator_8h.html#ad92c0aa0148b57d40117749871dd58d">val_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">validator 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="validator_8h.html#ff89c23cd064ae618b78e5161bcaa775">val_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">inform validator super.  <a href="#ff89c23cd064ae618b78e5161bcaa775"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="190dae4b6afa65766fa9e75555fee1e7"></a><!-- doxytag: member="validator.h::val_clear" ref="190dae4b6afa65766fa9e75555fee1e7" args="(struct module_qstate *qstate, int id)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="validator_8h.html#190dae4b6afa65766fa9e75555fee1e7">val_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">validator cleanup query state <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="validator_8h.html#e683ce0eb48515250f78d364020c30ec">val_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">Debug helper routine that assists <a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a> in determining memory in use.  <a href="#e683ce0eb48515250f78d364020c30ec"></a><br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
This file contains a module that performs validation of DNS queries. 
<p>
According to RFC 4034. <hr><h2>Define Documentation</h2>
<a class="anchor" name="5096140374e137d9909f9b40802da94f"></a><!-- doxytag: member="validator.h::NULL_KEY_TTL" ref="5096140374e137d9909f9b40802da94f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NULL_KEY_TTL&nbsp;&nbsp;&nbsp;900          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This is the TTL to use when a trust anchor fails to prime. 
<p>
A trust anchor will be primed no more often than this interval. 
<p>Referenced by <a class="el" href="validator_8c_source.html#l02045">primeResponseToKE()</a>.</p>

</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="29853b25a6abd9830861ec0b723b36c3"></a><!-- doxytag: member="validator.h::val_state" ref="29853b25a6abd9830861ec0b723b36c3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="validator_8h.html#29853b25a6abd9830861ec0b723b36c3">val_state</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
State of the validator 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="29853b25a6abd9830861ec0b723b36c3397a548383fab1558fc5095c4be4f5f1"></a><!-- doxytag: member="VAL_INIT_STATE" ref="29853b25a6abd9830861ec0b723b36c3397a548383fab1558fc5095c4be4f5f1" args="" -->VAL_INIT_STATE</em>&nbsp;</td><td>
initial state for validation </td></tr>
<tr><td valign="top"><em><a class="anchor" name="29853b25a6abd9830861ec0b723b36c39fcdd9abb072881601e16a1d244193ff"></a><!-- doxytag: member="VAL_FINDKEY_STATE" ref="29853b25a6abd9830861ec0b723b36c39fcdd9abb072881601e16a1d244193ff" args="" -->VAL_FINDKEY_STATE</em>&nbsp;</td><td>
find the proper keys for validation, follow trust chain </td></tr>
<tr><td valign="top"><em><a class="anchor" name="29853b25a6abd9830861ec0b723b36c37af99e8f0d139a507a767160a1aa5dc9"></a><!-- doxytag: member="VAL_VALIDATE_STATE" ref="29853b25a6abd9830861ec0b723b36c37af99e8f0d139a507a767160a1aa5dc9" args="" -->VAL_VALIDATE_STATE</em>&nbsp;</td><td>
validate the answer, using found key <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> </td></tr>
<tr><td valign="top"><em><a class="anchor" name="29853b25a6abd9830861ec0b723b36c3517b673e970006b1a8a6c0584b22157e"></a><!-- doxytag: member="VAL_FINISHED_STATE" ref="29853b25a6abd9830861ec0b723b36c3517b673e970006b1a8a6c0584b22157e" args="" -->VAL_FINISHED_STATE</em>&nbsp;</td><td>
finish up </td></tr>
<tr><td valign="top"><em><a class="anchor" name="29853b25a6abd9830861ec0b723b36c3cb8bcf8037955fb397e76975c10500d3"></a><!-- doxytag: member="VAL_DLVLOOKUP_STATE" ref="29853b25a6abd9830861ec0b723b36c3cb8bcf8037955fb397e76975c10500d3" args="" -->VAL_DLVLOOKUP_STATE</em>&nbsp;</td><td>
DLV lookup state, processing DLV queries. </td></tr>
</table>
</dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="e2081327355286f24a9840e2f5617435"></a><!-- doxytag: member="validator.h::val_get_funcblock" ref="e2081327355286f24a9840e2f5617435" 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>* val_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 validator function block. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>: function block with function pointers to validator 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="681e5a71d2b5d7ec01110ad344cc34c9"></a><!-- doxytag: member="validator.h::val_state_to_string" ref="681e5a71d2b5d7ec01110ad344cc34c9" args="(enum val_state state)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* val_state_to_string           </td>
          <td>(</td>
          <td class="paramtype">enum <a class="el" href="validator_8h.html#29853b25a6abd9830861ec0b723b36c3">val_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 validator 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="validator_8h_source.html#l00136">VAL_DLVLOOKUP_STATE</a>, <a class="el" href="validator_8h_source.html#l00130">VAL_FINDKEY_STATE</a>, <a class="el" href="validator_8h_source.html#l00134">VAL_FINISHED_STATE</a>, <a class="el" href="validator_8h_source.html#l00128">VAL_INIT_STATE</a>, and <a class="el" href="validator_8h_source.html#l00132">VAL_VALIDATE_STATE</a>.</p>

<p>Referenced by <a class="el" href="validator_8c_source.html#l01937">val_handle()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ff89c23cd064ae618b78e5161bcaa775"></a><!-- doxytag: member="validator.h::val_inform_super" ref="ff89c23cd064ae618b78e5161bcaa775" 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 val_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>
inform validator super. 
<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="log_8c_source.html#l00241">log_err()</a>, <a class="el" href="msgreply_8c_source.html#l00788">log_query_info()</a>, <a class="el" href="module_8h_source.html#l00284">module_qstate::minfo</a>, <a class="el" href="validator_8c_source.html#l02453">process_dlv_response()</a>, <a class="el" href="validator_8c_source.html#l02358">process_dnskey_response()</a>, <a class="el" href="validator_8c_source.html#l02300">process_ds_response()</a>, <a class="el" href="validator_8c_source.html#l02422">process_prime_response()</a>, <a class="el" href="module_8h_source.html#l00264">module_qstate::qinfo</a>, <a class="el" href="msgreply_8h_source.html#l00068">query_info::qtype</a>, <a class="el" href="module_8h_source.html#l00273">module_qstate::return_msg</a>, <a class="el" href="module_8h_source.html#l00275">module_qstate::return_rcode</a>, <a class="el" href="log_8h_source.html#l00058">VERB_ALGO</a>, <a class="el" href="ldns-testpkts_8c.html#a557e5b23b2833d7c1ec0415a1bdd2b1">verbose()</a>, and <a class="el" href="validator_8h_source.html#l00203">val_qstate::wait_prime_ta</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>
<a class="anchor" name="e683ce0eb48515250f78d364020c30ec"></a><!-- doxytag: member="validator.h::val_get_mem" ref="e683ce0eb48515250f78d364020c30ec" args="(struct module_env *env, int id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t val_get_mem           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structmodule__env.html">module_env</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Debug helper routine that assists <a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a> in determining memory in use. 
<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>env,:</em>&nbsp;</td><td>module environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id,:</em>&nbsp;</td><td>module id. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>memory in use in bytes. </dd></dl>

<p>References <a class="el" href="module_8h_source.html#l00208">module_env::anchors</a>, <a class="el" href="val__anchor_8c_source.html#l01041">anchors_get_mem()</a>, <a class="el" href="validator_8h_source.html#l00065">val_env::kcache</a>, <a class="el" href="val__kcache_8c_source.html#l00150">key_cache_get_mem()</a>, <a class="el" href="module_8h_source.html#l00216">module_env::modinfo</a>, <a class="el" href="validator_8h_source.html#l00068">val_env::neg_cache</a>, <a class="el" href="validator_8h_source.html#l00102">val_env::nsec3_keyiter_count</a>, and <a class="el" href="val__neg_8c_source.html#l00095">val_neg_get_mem()</a>.</p>

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

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Oct 13 06:46:33 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>