Sophie

Sophie

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

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/iter_utils.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>iter_utils.h File Reference</h1>This file contains functions to assist the iterator module.  
<a href="#_details">More...</a>
<p>
<code>#include &quot;<a class="el" href="iter__resptype_8h.html">iterator/iter_resptype.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iter__utils_8h.html#cf7944189ac5a16befb83266d2a3575b">iter_apply_cfg</a> (struct <a class="el" href="structiter__env.html">iter_env</a> *<a class="el" href="structiter__env.html">iter_env</a>, struct <a class="el" href="structconfig__file.html">config_file</a> *cfg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process config options and set iterator module state.  <a href="#cf7944189ac5a16befb83266d2a3575b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structdelegpt__addr.html">delegpt_addr</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iter__utils_8h.html#5d8592e4cec3439d651b96013fb5aa56">iter_server_selection</a> (struct <a class="el" href="structiter__env.html">iter_env</a> *<a class="el" href="structiter__env.html">iter_env</a>, struct <a class="el" href="structmodule__env.html">module_env</a> *env, struct <a class="el" href="structdelegpt.html">delegpt</a> *dp, uint8_t *name, size_t namelen, uint16_t qtype, int *dnssec_expected, int *chase_to_rd, int open_target)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a valid, nice target to send query to.  <a href="#5d8592e4cec3439d651b96013fb5aa56"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structdns__msg.html">dns_msg</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iter__utils_8h.html#42230ac47d63b5b5863057a0f9069722">dns_alloc_msg</a> (ldns_buffer *pkt, struct <a class="el" href="structmsg__parse.html">msg_parse</a> *msg, struct <a class="el" href="structregional.html">regional</a> *<a class="el" href="structregional.html">regional</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate <a class="el" href="structdns__msg.html" title="Region allocated message reply.">dns_msg</a> from parsed msg, in <a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a>.  <a href="#42230ac47d63b5b5863057a0f9069722"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structdns__msg.html">dns_msg</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iter__utils_8h.html#8396c54e5b83fec642fa22e22a7df199">dns_copy_msg</a> (struct <a class="el" href="structdns__msg.html">dns_msg</a> *from, struct <a class="el" href="structregional.html">regional</a> *<a class="el" href="structregional.html">regional</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy a <a class="el" href="structdns__msg.html" title="Region allocated message reply.">dns_msg</a> to this <a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a>.  <a href="#8396c54e5b83fec642fa22e22a7df199"></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="iter__utils_8h.html#7a54605083b73f43addaa7c431aa15f7">iter_dns_store</a> (struct <a class="el" href="structmodule__env.html">module_env</a> *env, struct <a class="el" href="structquery__info.html">query_info</a> *qinf, struct <a class="el" href="structreply__info.html">reply_info</a> *rep, int is_referral)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate a <a class="el" href="structdns__msg.html" title="Region allocated message reply.">dns_msg</a> with malloc/alloc structure and store in dns cache.  <a href="#7a54605083b73f43addaa7c431aa15f7"></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="iter__utils_8h.html#cd2572a111110fe75c54710b6c1bb0fe">iter_ns_probability</a> (struct <a class="el" href="structub__randstate.html">ub_randstate</a> *rnd, int n, int m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select randomly with n/m probability.  <a href="#cd2572a111110fe75c54710b6c1bb0fe"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="iter__utils_8h.html#2d46ba3416157cba01f6c9d4061268aa">iter_mark_cycle_targets</a> (struct <a class="el" href="structmodule__qstate.html">module_qstate</a> *qstate, struct <a class="el" href="structdelegpt.html">delegpt</a> *dp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mark targets that result in a dependency cycle as done, so they will not get selected as targets.  <a href="#2d46ba3416157cba01f6c9d4061268aa"></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="iter__utils_8h.html#08b56906816b49e4b990d88bbc9d6daa">iter_dp_is_useless</a> (struct <a class="el" href="structquery__info.html">query_info</a> *qinfo, uint16_t qflags, struct <a class="el" href="structdelegpt.html">delegpt</a> *dp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See if delegation is useful or offers immediately no targets for further recursion.  <a href="#08b56906816b49e4b990d88bbc9d6daa"></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="iter__utils_8h.html#e764d32bed56548bca2eefd9394e0e30">iter_indicates_dnssec</a> (struct <a class="el" href="structmodule__env.html">module_env</a> *env, struct <a class="el" href="structdelegpt.html">delegpt</a> *dp, struct <a class="el" href="structdns__msg.html">dns_msg</a> *msg, uint16_t dclass)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See if delegation is expected to have DNSSEC information (RRSIGs) in its answers, or not.  <a href="#e764d32bed56548bca2eefd9394e0e30"></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="iter__utils_8h.html#d36e59ce2774bb5939c98f720e4684b2">iter_msg_has_dnssec</a> (struct <a class="el" href="structdns__msg.html">dns_msg</a> *msg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See if a message contains DNSSEC.  <a href="#d36e59ce2774bb5939c98f720e4684b2"></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="iter__utils_8h.html#529eb93f936f85dadd8e3b03080f8bed">iter_msg_from_zone</a> (struct <a class="el" href="structdns__msg.html">dns_msg</a> *msg, struct <a class="el" href="structdelegpt.html">delegpt</a> *dp, enum <a class="el" href="iter__resptype_8h.html#3fd7592f4abddb72bb94a501da12a99b">response_type</a> type, uint16_t dclass)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See if a message is known to be from a certain zone.  <a href="#529eb93f936f85dadd8e3b03080f8bed"></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="iter__utils_8h.html#03d679529c3402588fc1a8d3a351fe5c">reply_equal</a> (struct <a class="el" href="structreply__info.html">reply_info</a> *p, struct <a class="el" href="structreply__info.html">reply_info</a> *q)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if two replies are equal For fallback procedures.  <a href="#03d679529c3402588fc1a8d3a351fe5c"></a><br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
This file contains functions to assist the iterator module. 
<p>
Configuration options. Forward zones. <hr><h2>Function Documentation</h2>
<a class="anchor" name="cf7944189ac5a16befb83266d2a3575b"></a><!-- doxytag: member="iter_utils.h::iter_apply_cfg" ref="cf7944189ac5a16befb83266d2a3575b" args="(struct iter_env *iter_env, struct config_file *cfg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int iter_apply_cfg           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structiter__env.html">iter_env</a> *&nbsp;</td>
          <td class="paramname"> <em>iter_env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structconfig__file.html">config_file</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Process config options and set iterator module state. 
<p>
Sets default values if no config is found. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="structiter__env.html" title="Global state for the iterator.">iter_env</a>,:</em>&nbsp;</td><td>iterator module state. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cfg,:</em>&nbsp;</td><td>config options. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on error. </dd></dl>

<p>References <a class="el" href="config__file_8h_source.html#l00071">config_file::do_ip6</a>, <a class="el" href="iterator_8h_source.html#l00091">iter_env::donotq</a>, <a class="el" href="iter__donotq_8c_source.html#l00123">donotq_apply_cfg()</a>, <a class="el" href="iter__donotq_8c_source.html#l00052">donotq_create()</a>, <a class="el" href="iterator_8h_source.html#l00085">iter_env::hints</a>, <a class="el" href="iter__hints_8c_source.html#l00394">hints_apply_cfg()</a>, <a class="el" href="iter__hints_8c_source.html#l00052">hints_create()</a>, <a class="el" href="log_8c_source.html#l00241">log_err()</a>, <a class="el" href="iterator_8h_source.html#l00097">iter_env::max_dependency_depth</a>, <a class="el" href="iterator_8h_source.html#l00094">iter_env::priv</a>, <a class="el" href="iter__priv_8c_source.html#l00147">priv_apply_cfg()</a>, <a class="el" href="iter__priv_8c_source.html#l00053">priv_create()</a>, <a class="el" href="iter__utils_8c_source.html#l00080">read_fetch_policy()</a>, <a class="el" href="iterator_8h_source.html#l00088">iter_env::supports_ipv6</a>, <a class="el" href="iterator_8h_source.html#l00107">iter_env::target_fetch_policy</a>, <a class="el" href="config__file_8h_source.html#l00112">config_file::target_fetch_policy</a>, <a class="el" href="log_8h_source.html#l00056">VERB_QUERY</a>, and <a class="el" href="ldns-testpkts_8c.html#a557e5b23b2833d7c1ec0415a1bdd2b1">verbose()</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="5d8592e4cec3439d651b96013fb5aa56"></a><!-- doxytag: member="iter_utils.h::iter_server_selection" ref="5d8592e4cec3439d651b96013fb5aa56" args="(struct iter_env *iter_env, struct module_env *env, struct delegpt *dp, uint8_t *name, size_t namelen, uint16_t qtype, int *dnssec_expected, int *chase_to_rd, int open_target)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structdelegpt__addr.html">delegpt_addr</a>* iter_server_selection           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structiter__env.html">iter_env</a> *&nbsp;</td>
          <td class="paramname"> <em>iter_env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">struct <a class="el" href="structdelegpt.html">delegpt</a> *&nbsp;</td>
          <td class="paramname"> <em>dp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>namelen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>qtype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>dnssec_expected</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>chase_to_rd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>open_target</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Select a valid, nice target to send query to. 
<p>
Sorting and removing unsuitable targets is combined.<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><a class="el" href="structiter__env.html" title="Global state for the iterator.">iter_env</a>,:</em>&nbsp;</td><td>iterator module global state, with ip6 enabled and do-not-query-addresses. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env,:</em>&nbsp;</td><td>environment with infra cache (lameness, rtt info). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dp,:</em>&nbsp;</td><td>delegation point with result list. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name,:</em>&nbsp;</td><td>zone name (for lameness check). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namelen,:</em>&nbsp;</td><td>length of name. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qtype,:</em>&nbsp;</td><td>query type that we want to send. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dnssec_expected,:</em>&nbsp;</td><td>set to 0, if a known dnssec-lame server is selected these are not preferred, but are used as a last resort. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chase_to_rd,:</em>&nbsp;</td><td>set to 1 if a known recursion lame server is selected these are not preferred, but are used as a last resort. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>open_target,:</em>&nbsp;</td><td>number of currently outstanding target queries. If we wait for these, perhaps more server addresses become available. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>best target or NULL if no target. if not null, that target is removed from the result list in the dp. </dd></dl>

<p>References <a class="el" href="iter__delegpt_8h_source.html#l00118">delegpt_addr::attempts</a>, <a class="el" href="iter__utils_8c_source.html#l00234">iter_filter_order()</a>, <a class="el" href="log_8h_source.html#l00185">log_assert</a>, <a class="el" href="iter__delegpt_8h_source.html#l00107">delegpt_addr::next_result</a>, <a class="el" href="module_8h_source.html#l00198">module_env::now</a>, <a class="el" href="iterator_8h_source.html#l00069">OUTBOUND_MSG_RETRY</a>, <a class="el" href="iter__delegpt_8h_source.html#l00073">delegpt::result_list</a>, <a class="el" href="module_8h_source.html#l00196">module_env::rnd</a>, <a class="el" href="random_8c_source.html#l00167">ub_random()</a>, <a class="el" href="iterator_8h_source.html#l00067">USEFUL_SERVER_TOP_TIMEOUT</a>, <a class="el" href="log_8h_source.html#l00058">VERB_ALGO</a>, and <a class="el" href="ldns-testpkts_8c.html#a557e5b23b2833d7c1ec0415a1bdd2b1">verbose()</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="42230ac47d63b5b5863057a0f9069722"></a><!-- doxytag: member="iter_utils.h::dns_alloc_msg" ref="42230ac47d63b5b5863057a0f9069722" args="(ldns_buffer *pkt, struct msg_parse *msg, struct regional *regional)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structdns__msg.html">dns_msg</a>* dns_alloc_msg           </td>
          <td>(</td>
          <td class="paramtype">ldns_buffer *&nbsp;</td>
          <td class="paramname"> <em>pkt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structmsg__parse.html">msg_parse</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structregional.html">regional</a> *&nbsp;</td>
          <td class="paramname"> <em>regional</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate <a class="el" href="structdns__msg.html" title="Region allocated message reply.">dns_msg</a> from parsed msg, in <a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a>. 
<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>pkt,:</em>&nbsp;</td><td>packet. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg,:</em>&nbsp;</td><td>parsed message (cleaned and ready for <a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a> allocation). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a>,:</em>&nbsp;</td><td><a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a> to use for allocation. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>newly allocated <a class="el" href="structdns__msg.html" title="Region allocated message reply.">dns_msg</a>, or NULL on memory error. </dd></dl>

<p>References <a class="el" href="log_8c_source.html#l00241">log_err()</a>, <a class="el" href="msgreply_8c_source.html#l00397">parse_create_msg()</a>, <a class="el" href="dns_8h_source.html#l00057">dns_msg::qinfo</a>, <a class="el" href="regional_8c_source.html#l00116">regional_alloc()</a>, and <a class="el" href="dns_8h_source.html#l00059">dns_msg::rep</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="8396c54e5b83fec642fa22e22a7df199"></a><!-- doxytag: member="iter_utils.h::dns_copy_msg" ref="8396c54e5b83fec642fa22e22a7df199" args="(struct dns_msg *from, struct regional *regional)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structdns__msg.html">dns_msg</a>* dns_copy_msg           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structdns__msg.html">dns_msg</a> *&nbsp;</td>
          <td class="paramname"> <em>from</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structregional.html">regional</a> *&nbsp;</td>
          <td class="paramname"> <em>regional</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy a <a class="el" href="structdns__msg.html" title="Region allocated message reply.">dns_msg</a> to this <a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a>. 
<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>from,:</em>&nbsp;</td><td>dns message, also in <a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a>,:</em>&nbsp;</td><td><a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a> to use for allocation. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>newly allocated <a class="el" href="structdns__msg.html" title="Region allocated message reply.">dns_msg</a>, or NULL on memory error. </dd></dl>

<p>References <a class="el" href="dns_8h_source.html#l00057">dns_msg::qinfo</a>, <a class="el" href="msgreply_8h_source.html#l00064">query_info::qname</a>, <a class="el" href="msgreply_8h_source.html#l00066">query_info::qname_len</a>, <a class="el" href="regional_8c_source.html#l00116">regional_alloc()</a>, <a class="el" href="regional_8c_source.html#l00146">regional_alloc_init()</a>, <a class="el" href="dns_8h_source.html#l00059">dns_msg::rep</a>, and <a class="el" href="msgreply_8c_source.html#l00652">reply_info_copy()</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="7a54605083b73f43addaa7c431aa15f7"></a><!-- doxytag: member="iter_utils.h::iter_dns_store" ref="7a54605083b73f43addaa7c431aa15f7" args="(struct module_env *env, struct query_info *qinf, struct reply_info *rep, int is_referral)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int iter_dns_store           </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">struct <a class="el" href="structquery__info.html">query_info</a> *&nbsp;</td>
          <td class="paramname"> <em>qinf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structreply__info.html">reply_info</a> *&nbsp;</td>
          <td class="paramname"> <em>rep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>is_referral</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate a <a class="el" href="structdns__msg.html" title="Region allocated message reply.">dns_msg</a> with malloc/alloc structure and store in dns cache. 
<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>environment, with alloc structure and dns cache. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qinf,:</em>&nbsp;</td><td>query info, the query for which answer is stored. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rep,:</em>&nbsp;</td><td>reply in <a class="el" href="structdns__msg.html" title="Region allocated message reply.">dns_msg</a> from dns_alloc_msg for example. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>is_referral,:</em>&nbsp;</td><td>If true, then the given message to be stored is a referral. The cache implementation may use this as a hint. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on alloc error (out of memory). </dd></dl>

<p>References <a class="el" href="dns_8c_source.html#l00668">dns_cache_store()</a>.</p>

<p>Referenced by <a class="el" href="iterator_8c_source.html#l00241">error_response_cache()</a>, <a class="el" href="iterator_8c_source.html#l01866">processFinished()</a>, and <a class="el" href="iterator_8c_source.html#l01454">processQueryResponse()</a>.</p>

</div>
</div><p>
<a class="anchor" name="cd2572a111110fe75c54710b6c1bb0fe"></a><!-- doxytag: member="iter_utils.h::iter_ns_probability" ref="cd2572a111110fe75c54710b6c1bb0fe" args="(struct ub_randstate *rnd, int n, int m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int iter_ns_probability           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structub__randstate.html">ub_randstate</a> *&nbsp;</td>
          <td class="paramname"> <em>rnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>m</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Select randomly with n/m probability. 
<p>
For shuffle NS records for address fetching. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>rnd,:</em>&nbsp;</td><td>random table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n,:</em>&nbsp;</td><td>probability. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>m,:</em>&nbsp;</td><td>divisor for probability. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true with n/m probability. </dd></dl>

<p>References <a class="el" href="random_8c_source.html#l00167">ub_random()</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="2d46ba3416157cba01f6c9d4061268aa"></a><!-- doxytag: member="iter_utils.h::iter_mark_cycle_targets" ref="2d46ba3416157cba01f6c9d4061268aa" args="(struct module_qstate *qstate, struct delegpt *dp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void iter_mark_cycle_targets           </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">struct <a class="el" href="structdelegpt.html">delegpt</a> *&nbsp;</td>
          <td class="paramname"> <em>dp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mark targets that result in a dependency cycle as done, so they will not get selected as targets. 
<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. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dp,:</em>&nbsp;</td><td><a class="el" href="structdelegpt.html" title="Delegation Point.">delegpt</a> to mark ns in. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="iter__utils_8c_source.html#l00402">causes_cycle()</a>, <a class="el" href="net__help_8c_source.html#l00265">log_nametypeclass()</a>, <a class="el" href="iter__delegpt_8h_source.html#l00086">delegpt_ns::name</a>, <a class="el" href="iter__delegpt_8h_source.html#l00088">delegpt_ns::namelen</a>, <a class="el" href="iter__delegpt_8h_source.html#l00084">delegpt_ns::next</a>, <a class="el" href="iter__delegpt_8h_source.html#l00066">delegpt::nslist</a>, <a class="el" href="msgreply_8h_source.html#l00070">query_info::qclass</a>, <a class="el" href="module_8h_source.html#l00264">module_qstate::qinfo</a>, <a class="el" href="iter__delegpt_8h_source.html#l00095">delegpt_ns::resolved</a>, and <a class="el" href="log_8h_source.html#l00056">VERB_QUERY</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="08b56906816b49e4b990d88bbc9d6daa"></a><!-- doxytag: member="iter_utils.h::iter_dp_is_useless" ref="08b56906816b49e4b990d88bbc9d6daa" args="(struct query_info *qinfo, uint16_t qflags, struct delegpt *dp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int iter_dp_is_useless           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structquery__info.html">query_info</a> *&nbsp;</td>
          <td class="paramname"> <em>qinfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>qflags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structdelegpt.html">delegpt</a> *&nbsp;</td>
          <td class="paramname"> <em>dp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
See if delegation is useful or offers immediately no targets for further recursion. 
<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>qinfo,:</em>&nbsp;</td><td>query name and type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qflags,:</em>&nbsp;</td><td>query flags with RD flag </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dp,:</em>&nbsp;</td><td><a class="el" href="structdelegpt.html" title="Delegation Point.">delegpt</a> to check. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="net__help_8h_source.html#l00062">BIT_RD</a>, <a class="el" href="iter__delegpt_8c_source.html#l00120">delegpt_find_ns()</a>, <a class="el" href="dname_8c_source.html#l00587">dname_subdomain_c()</a>, <a class="el" href="iter__delegpt_8h_source.html#l00086">delegpt_ns::name</a>, <a class="el" href="iter__delegpt_8h_source.html#l00059">delegpt::name</a>, <a class="el" href="iter__delegpt_8h_source.html#l00084">delegpt_ns::next</a>, <a class="el" href="iter__delegpt_8h_source.html#l00066">delegpt::nslist</a>, <a class="el" href="msgreply_8h_source.html#l00064">query_info::qname</a>, <a class="el" href="msgreply_8h_source.html#l00066">query_info::qname_len</a>, <a class="el" href="msgreply_8h_source.html#l00068">query_info::qtype</a>, <a class="el" href="iter__delegpt_8h_source.html#l00095">delegpt_ns::resolved</a>, <a class="el" href="iter__delegpt_8h_source.html#l00073">delegpt::result_list</a>, and <a class="el" href="iter__delegpt_8h_source.html#l00071">delegpt::usable_list</a>.</p>

<p>Referenced by <a class="el" href="cachedump_8c_source.html#l00782">print_deleg_lookup()</a>, and <a class="el" href="iterator_8c_source.html#l00827">processInitRequest()</a>.</p>

</div>
</div><p>
<a class="anchor" name="e764d32bed56548bca2eefd9394e0e30"></a><!-- doxytag: member="iter_utils.h::iter_indicates_dnssec" ref="e764d32bed56548bca2eefd9394e0e30" args="(struct module_env *env, struct delegpt *dp, struct dns_msg *msg, uint16_t dclass)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int iter_indicates_dnssec           </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">struct <a class="el" href="structdelegpt.html">delegpt</a> *&nbsp;</td>
          <td class="paramname"> <em>dp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structdns__msg.html">dns_msg</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>dclass</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
See if delegation is expected to have DNSSEC information (RRSIGs) in its answers, or not. 
<p>
Inspects delegation point (name), trust anchors, and delegation message (DS RRset) to determine this. <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 env with trust anchors. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dp,:</em>&nbsp;</td><td>delegation point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg,:</em>&nbsp;</td><td>delegation message, with DS if a secure referral. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dclass,:</em>&nbsp;</td><td>class of query. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if dnssec is expected, 0 if not. </dd></dl>

<p>References <a class="el" href="val__anchor_8c_source.html#l00129">anchor_find()</a>, <a class="el" href="module_8h_source.html#l00208">module_env::anchors</a>, <a class="el" href="iter__delegpt_8h_source.html#l00059">delegpt::name</a>, <a class="el" href="iter__delegpt_8h_source.html#l00063">delegpt::namelabs</a>, <a class="el" href="iter__delegpt_8h_source.html#l00061">delegpt::namelen</a>, <a class="el" href="dns_8h_source.html#l00059">dns_msg::rep</a>, and <a class="el" href="msgreply_8c_source.html#l00738">reply_find_rrset_section_ns()</a>.</p>

<p>Referenced by <a class="el" href="iterator_8c_source.html#l01125">generate_target_query()</a>, <a class="el" href="iterator_8c_source.html#l00541">prime_root()</a>, <a class="el" href="iterator_8c_source.html#l00600">prime_stub()</a>, <a class="el" href="iterator_8c_source.html#l01084">processInitRequest3()</a>, and <a class="el" href="iterator_8c_source.html#l01454">processQueryResponse()</a>.</p>

</div>
</div><p>
<a class="anchor" name="d36e59ce2774bb5939c98f720e4684b2"></a><!-- doxytag: member="iter_utils.h::iter_msg_has_dnssec" ref="d36e59ce2774bb5939c98f720e4684b2" args="(struct dns_msg *msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int iter_msg_has_dnssec           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structdns__msg.html">dns_msg</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
See if a message contains DNSSEC. 
<p>
This is examined by looking for RRSIGs. With DNSSEC a valid answer, nxdomain, nodata, referral or cname reply has RRSIGs in answer or auth sections, sigs on answer data, SOA, DS, or NSEC/NSEC3 records. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg,:</em>&nbsp;</td><td>message to examine. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if DNSSEC information was found. </dd></dl>

<p>References <a class="el" href="msgreply_8h_source.html#l00133">reply_info::an_numrrsets</a>, <a class="el" href="msgreply_8h_source.html#l00136">reply_info::ns_numrrsets</a>, <a class="el" href="dns_8h_source.html#l00059">dns_msg::rep</a>, and <a class="el" href="msgreply_8h_source.html#l00150">reply_info::rrsets</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="529eb93f936f85dadd8e3b03080f8bed"></a><!-- doxytag: member="iter_utils.h::iter_msg_from_zone" ref="529eb93f936f85dadd8e3b03080f8bed" args="(struct dns_msg *msg, struct delegpt *dp, enum response_type type, uint16_t dclass)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int iter_msg_from_zone           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structdns__msg.html">dns_msg</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structdelegpt.html">delegpt</a> *&nbsp;</td>
          <td class="paramname"> <em>dp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="iter__resptype_8h.html#3fd7592f4abddb72bb94a501da12a99b">response_type</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>dclass</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
See if a message is known to be from a certain zone. 
<p>
This looks for SOA or NS rrsets, for answers. For referrals, when one label is delegated, the zone is detected. Does not look at signatures. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg,:</em>&nbsp;</td><td>the message to inspect. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dp,:</em>&nbsp;</td><td>delegation point with zone name to look for. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type,:</em>&nbsp;</td><td>type of message. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dclass,:</em>&nbsp;</td><td>class of query. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if message is certain to be from zone in dp-&gt;name. false if not sure (empty msg), or not from the zone. </dd></dl>

<p>References <a class="el" href="msgreply_8h_source.html#l00133">reply_info::an_numrrsets</a>, <a class="el" href="packed__rrset_8h_source.html#l00064">packed_rrset_key::dname</a>, <a class="el" href="dname_8c_source.html#l00369">dname_count_labels()</a>, <a class="el" href="dname_8c_source.html#l00566">dname_strict_subdomain()</a>, <a class="el" href="log_8h_source.html#l00185">log_assert</a>, <a class="el" href="iter__delegpt_8h_source.html#l00059">delegpt::name</a>, <a class="el" href="iter__delegpt_8h_source.html#l00063">delegpt::namelabs</a>, <a class="el" href="iter__delegpt_8h_source.html#l00061">delegpt::namelen</a>, <a class="el" href="msgreply_8h_source.html#l00136">reply_info::ns_numrrsets</a>, <a class="el" href="dns_8h_source.html#l00059">dns_msg::rep</a>, <a class="el" href="msgreply_8c_source.html#l00722">reply_find_rrset_section_an()</a>, <a class="el" href="msgreply_8c_source.html#l00738">reply_find_rrset_section_ns()</a>, <a class="el" href="iter__resptype_8h_source.html#l00063">RESPONSE_TYPE_ANSWER</a>, <a class="el" href="iter__resptype_8h_source.html#l00072">RESPONSE_TYPE_CNAME</a>, <a class="el" href="iter__resptype_8h_source.html#l00066">RESPONSE_TYPE_REFERRAL</a>, <a class="el" href="packed__rrset_8h_source.html#l00105">ub_packed_rrset_key::rk</a>, <a class="el" href="packed__rrset_8h_source.html#l00077">packed_rrset_key::rrset_class</a>, <a class="el" href="msgreply_8h_source.html#l00150">reply_info::rrsets</a>, and <a class="el" href="packed__rrset_8h_source.html#l00075">packed_rrset_key::type</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="03d679529c3402588fc1a8d3a351fe5c"></a><!-- doxytag: member="iter_utils.h::reply_equal" ref="03d679529c3402588fc1a8d3a351fe5c" args="(struct reply_info *p, struct reply_info *q)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int reply_equal           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structreply__info.html">reply_info</a> *&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structreply__info.html">reply_info</a> *&nbsp;</td>
          <td class="paramname"> <em>q</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check if two replies are equal For fallback procedures. 
<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>p,:</em>&nbsp;</td><td>reply one. The reply has rrset data pointers in region. Does not check rrset-IDs </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>q,:</em>&nbsp;</td><td>reply two </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>if one and two are equal. </dd></dl>

<p>References <a class="el" href="msgreply_8h_source.html#l00133">reply_info::an_numrrsets</a>, <a class="el" href="msgreply_8h_source.html#l00138">reply_info::ar_numrrsets</a>, <a class="el" href="msgreply_8h_source.html#l00099">reply_info::flags</a>, <a class="el" href="msgreply_8h_source.html#l00136">reply_info::ns_numrrsets</a>, <a class="el" href="msgreply_8h_source.html#l00113">reply_info::qdcount</a>, <a class="el" href="msgreply_8h_source.html#l00141">reply_info::rrset_count</a>, <a class="el" href="iter__utils_8c_source.html#l00559">rrset_equal()</a>, <a class="el" href="msgreply_8h_source.html#l00150">reply_info::rrsets</a>, <a class="el" href="msgreply_8h_source.html#l00125">reply_info::security</a>, and <a class="el" href="msgreply_8h_source.html#l00120">reply_info::ttl</a>.</p>

<p>Referenced by <a class="el" href="iterator_8c_source.html#l02011">process_response()</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>