Sophie

Sophie

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

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: reply_info Struct 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 class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><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="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>reply_info Struct Reference</h1><!-- doxytag: class="reply_info" -->Structure to store DNS query and the reply packet.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;msgreply.h&gt;</code>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreply__info.html#b9f4cb39a1a5ed3998300c5d7a3506db">flags</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">the flags for the answer, host byte order.  <a href="#b9f4cb39a1a5ed3998300c5d7a3506db"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2fad90fb49f1116b5cb5e8625ec208e8"></a><!-- doxytag: member="reply_info::authoritative" ref="2fad90fb49f1116b5cb5e8625ec208e8" args="" -->
uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreply__info.html#2fad90fb49f1116b5cb5e8625ec208e8">authoritative</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This flag informs unbound the answer is authoritative and the AA flag should be preserved. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreply__info.html#d4f34edc3ba2b54ba42d4734d41d37ea">qdcount</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of RRs in the query section.  <a href="#d4f34edc3ba2b54ba42d4734d41d37ea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreply__info.html#5c55d88944e14e17e3edcdbbdaf49fad">ttl</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">TTL of the entire reply (for negative caching).  <a href="#5c55d88944e14e17e3edcdbbdaf49fad"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c312b82470144bf6628ec0fd7ae992f8"></a><!-- doxytag: member="reply_info::security" ref="c312b82470144bf6628ec0fd7ae992f8" args="" -->
enum <a class="el" href="packed__rrset_8h.html#ecbbb9607758922722abc9a49d1097bb">sec_status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreply__info.html#c312b82470144bf6628ec0fd7ae992f8">security</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The security status from DNSSEC validation of this message. <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="structreply__info.html#2ad62f80f1a5c327701da2e0cce2285e">an_numrrsets</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of RRsets in each section.  <a href="#2ad62f80f1a5c327701da2e0cce2285e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3ea4168aa6046acef8c253d6aa237afc"></a><!-- doxytag: member="reply_info::ns_numrrsets" ref="3ea4168aa6046acef8c253d6aa237afc" args="" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreply__info.html#3ea4168aa6046acef8c253d6aa237afc">ns_numrrsets</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count of authority section RRsets. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="25c621bce0aeaad8f9729c303ace6faf"></a><!-- doxytag: member="reply_info::ar_numrrsets" ref="25c621bce0aeaad8f9729c303ace6faf" args="" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreply__info.html#25c621bce0aeaad8f9729c303ace6faf">ar_numrrsets</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count of additional section RRsets. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c544182e8ddee7ca7a2a9cb01d89d3ce"></a><!-- doxytag: member="reply_info::rrset_count" ref="c544182e8ddee7ca7a2a9cb01d89d3ce" args="" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreply__info.html#c544182e8ddee7ca7a2a9cb01d89d3ce">rrset_count</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of RRsets: an_numrrsets + ns_numrrsets + ar_numrrsets <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structub__packed__rrset__key.html">ub_packed_rrset_key</a> **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreply__info.html#835d4b097e914702f474a66db8be4e6d">rrsets</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">List of pointers (only) to the rrsets in the order in which they appear in the reply message.  <a href="#835d4b097e914702f474a66db8be4e6d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structrrset__ref.html">rrset_ref</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreply__info.html#ef39b5246c5759d58cd640e3be8d77e5">ref</a> [1]</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packed array of ids (see counts) and pointers to <a class="el" href="structpacked__rrset__key.html" title="The identifying information for an RRset.">packed_rrset_key</a>.  <a href="#ef39b5246c5759d58cd640e3be8d77e5"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Structure to store DNS query and the reply packet. 
<p>
To use it, copy over the flags from reply and modify using flags from the query (RD,CD if not AA). prepend ID.<p>
Memory layout is: o struct o <a class="el" href="structrrset__ref.html" title="Information to reference an rrset.">rrset_ref</a> array o packed_rrset_key* array.<p>
Memory layout is sometimes not packed, when the message is synthesized, for easy of the generation. It is allocated packed when it is copied from the region allocation to the malloc allocation. <hr><h2>Field Documentation</h2>
<a class="anchor" name="b9f4cb39a1a5ed3998300c5d7a3506db"></a><!-- doxytag: member="reply_info::flags" ref="b9f4cb39a1a5ed3998300c5d7a3506db" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t <a class="el" href="structreply__info.html#b9f4cb39a1a5ed3998300c5d7a3506db">reply_info::flags</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
the flags for the answer, host byte order. 
<p>

<p>Referenced by <a class="el" href="msgreply_8c_source.html#l00080">construct_reply_info_base()</a>, <a class="el" href="iter__delegpt_8c_source.html#l00428">delegpt_add_neg_msg()</a>, <a class="el" href="dns_8c_source.html#l00668">dns_cache_store()</a>, <a class="el" href="dns_8c_source.html#l00307">dns_msg_create()</a>, <a class="el" href="cachedump_8c_source.html#l00222">dump_msg()</a>, <a class="el" href="iterator_8c_source.html#l00241">error_response_cache()</a>, <a class="el" href="iterator_8c_source.html#l00278">iter_prepend()</a>, <a class="el" href="libworker_8c_source.html#l00411">libworker_enter_result()</a>, <a class="el" href="cachedump_8c_source.html#l00701">load_msg()</a>, <a class="el" href="localzone_8c_source.html#l00983">local_encode()</a>, <a class="el" href="msgreply_8c_source.html#l00755">log_dns_msg()</a>, <a class="el" href="validator_8c_source.html#l00264">needs_validation()</a>, <a class="el" href="unitmsgparse_8c_source.html#l00286">perftestpkt()</a>, <a class="el" href="validator_8c_source.html#l02453">process_dlv_response()</a>, <a class="el" href="iterator_8c_source.html#l01866">processFinished()</a>, <a class="el" href="iter__utils_8c_source.html#l00590">reply_equal()</a>, <a class="el" href="msgencode_8c_source.html#l00714">reply_info_answer_encode()</a>, <a class="el" href="msgreply_8c_source.html#l00652">reply_info_copy()</a>, <a class="el" href="iter__resptype_8c_source.html#l00050">response_type_from_cache()</a>, <a class="el" href="iter__resptype_8c_source.html#l00103">response_type_from_server()</a>, <a class="el" href="dns_8c_source.html#l00470">rrset_msg()</a>, <a class="el" href="dns_8c_source.html#l00498">synth_dname_msg()</a>, <a class="el" href="unitmsgparse_8c_source.html#l00322">testpkt()</a>, <a class="el" href="dns_8c_source.html#l00422">tomsg()</a>, <a class="el" href="val__utils_8c_source.html#l00056">val_classify_response()</a>, <a class="el" href="validator_8c_source.html#l00191">val_new()</a>, and <a class="el" href="val__nsec_8c_source.html#l00499">val_nsec_check_dlv()</a>.</p>

</div>
</div><p>
<a class="anchor" name="d4f34edc3ba2b54ba42d4734d41d37ea"></a><!-- doxytag: member="reply_info::qdcount" ref="d4f34edc3ba2b54ba42d4734d41d37ea" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="structreply__info.html#d4f34edc3ba2b54ba42d4734d41d37ea">reply_info::qdcount</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Number of RRs in the query section. 
<p>
If qdcount is not 0, then it is 1, and the data that appears in the reply is the same as the <a class="el" href="structquery__info.html" title="Structure to store query information that makes answers to queries different.">query_info</a>. Host byte order. 
<p>Referenced by <a class="el" href="msgreply_8c_source.html#l00080">construct_reply_info_base()</a>, <a class="el" href="dns_8c_source.html#l00307">dns_msg_create()</a>, <a class="el" href="cachedump_8c_source.html#l00222">dump_msg()</a>, <a class="el" href="iterator_8c_source.html#l00241">error_response_cache()</a>, <a class="el" href="cachedump_8c_source.html#l00701">load_msg()</a>, <a class="el" href="localzone_8c_source.html#l00983">local_encode()</a>, <a class="el" href="iter__utils_8c_source.html#l00590">reply_equal()</a>, <a class="el" href="msgreply_8c_source.html#l00652">reply_info_copy()</a>, <a class="el" href="msgencode_8c_source.html#l00598">reply_info_encode()</a>, <a class="el" href="dns_8c_source.html#l00470">rrset_msg()</a>, <a class="el" href="dns_8c_source.html#l00498">synth_dname_msg()</a>, <a class="el" href="dns_8c_source.html#l00422">tomsg()</a>, and <a class="el" href="validator_8c_source.html#l00191">val_new()</a>.</p>

</div>
</div><p>
<a class="anchor" name="5c55d88944e14e17e3edcdbbdaf49fad"></a><!-- doxytag: member="reply_info::ttl" ref="5c55d88944e14e17e3edcdbbdaf49fad" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="structreply__info.html#5c55d88944e14e17e3edcdbbdaf49fad">reply_info::ttl</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
TTL of the entire reply (for negative caching). 
<p>
only for use when there are 0 RRsets in this message. if there are RRsets, check those instead. 
<p>Referenced by <a class="el" href="worker_8c_source.html#l00501">answer_from_cache()</a>, <a class="el" href="msgreply_8c_source.html#l00080">construct_reply_info_base()</a>, <a class="el" href="dns_8c_source.html#l00073">dns_cache_store_msg()</a>, <a class="el" href="cachedump_8c_source.html#l00222">dump_msg()</a>, <a class="el" href="iterator_8c_source.html#l00241">error_response_cache()</a>, <a class="el" href="pythonmod__utils_8c_source.html#l00071">invalidateQueryInCache()</a>, <a class="el" href="cachedump_8c_source.html#l00701">load_msg()</a>, <a class="el" href="msgreply_8c_source.html#l00371">parse_copy_decompress()</a>, <a class="el" href="validator_8c_source.html#l01720">processFinished()</a>, <a class="el" href="iterator_8c_source.html#l00827">processInitRequest()</a>, <a class="el" href="iter__utils_8c_source.html#l00590">reply_equal()</a>, <a class="el" href="msgreply_8c_source.html#l00652">reply_info_copy()</a>, <a class="el" href="msgreply_8c_source.html#l00465">reply_info_set_ttls()</a>, <a class="el" href="dns_8c_source.html#l00470">rrset_msg()</a>, <a class="el" href="dns_8c_source.html#l00498">synth_dname_msg()</a>, <a class="el" href="dns_8c_source.html#l00422">tomsg()</a>, and <a class="el" href="remote_8c_source.html#l01137">zone_del_msg()</a>.</p>

</div>
</div><p>
<a class="anchor" name="2ad62f80f1a5c327701da2e0cce2285e"></a><!-- doxytag: member="reply_info::an_numrrsets" ref="2ad62f80f1a5c327701da2e0cce2285e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="structreply__info.html#2ad62f80f1a5c327701da2e0cce2285e">reply_info::an_numrrsets</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Number of RRsets in each section. 
<p>
The answer section. Add up the RRs in every RRset to calculate the number of RRs, and the count for the dns packet. The number of RRs in RRsets can change due to RRset updates. 
<p>Referenced by <a class="el" href="worker_8c_source.html#l00501">answer_from_cache()</a>, <a class="el" href="val__neg_8c_source.html#l00315">calc_data_need()</a>, <a class="el" href="worker_8c_source.html#l00368">check_delegation_secure()</a>, <a class="el" href="msgreply_8c_source.html#l00080">construct_reply_info_base()</a>, <a class="el" href="worker_8c_source.html#l00394">deleg_remove_nonsecure_additional()</a>, <a class="el" href="iter__delegpt_8c_source.html#l00428">delegpt_add_neg_msg()</a>, <a class="el" href="iter__delegpt_8c_source.html#l00297">delegpt_from_message()</a>, <a class="el" href="validator_8c_source.html#l00490">detect_wrongly_truncated()</a>, <a class="el" href="validator_8c_source.html#l02151">ds_response_to_ke()</a>, <a class="el" href="cachedump_8c_source.html#l00222">dump_msg()</a>, <a class="el" href="unitverify_8c_source.html#l00112">extract_keys()</a>, <a class="el" href="iterator_8c_source.html#l00687">generate_a_aaaa_check()</a>, <a class="el" href="iterator_8c_source.html#l00394">handle_cname_response()</a>, <a class="el" href="iter__utils_8c_source.html#l00510">iter_msg_from_zone()</a>, <a class="el" href="iter__utils_8c_source.html#l00495">iter_msg_has_dnssec()</a>, <a class="el" href="iterator_8c_source.html#l00278">iter_prepend()</a>, <a class="el" href="cachedump_8c_source.html#l00701">load_msg()</a>, <a class="el" href="localzone_8c_source.html#l00983">local_encode()</a>, <a class="el" href="validator_8c_source.html#l00264">needs_validation()</a>, <a class="el" href="validator_8c_source.html#l02453">process_dlv_response()</a>, <a class="el" href="validator_8c_source.html#l01720">processFinished()</a>, <a class="el" href="iterator_8c_source.html#l01454">processQueryResponse()</a>, <a class="el" href="validator_8c_source.html#l01442">processValidate()</a>, <a class="el" href="msgreply_8c_source.html#l00795">reply_check_cname_chain()</a>, <a class="el" href="iter__utils_8c_source.html#l00590">reply_equal()</a>, <a class="el" href="msgreply_8c_source.html#l00697">reply_find_answer_rrset()</a>, <a class="el" href="msgreply_8c_source.html#l00676">reply_find_final_cname_target()</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="val__neg_8c_source.html#l00557">reply_find_soa()</a>, <a class="el" href="val__neg_8c_source.html#l00568">reply_has_nsec()</a>, <a class="el" href="msgreply_8c_source.html#l00652">reply_info_copy()</a>, <a class="el" href="msgencode_8c_source.html#l00598">reply_info_encode()</a>, <a class="el" href="val__neg_8c_source.html#l01015">reply_nsec_signer()</a>, <a class="el" href="iter__resptype_8c_source.html#l00050">response_type_from_cache()</a>, <a class="el" href="iter__resptype_8c_source.html#l00103">response_type_from_server()</a>, <a class="el" href="dns_8c_source.html#l00470">rrset_msg()</a>, <a class="el" href="dns_8c_source.html#l00498">synth_dname_msg()</a>, <a class="el" href="dns_8c_source.html#l00422">tomsg()</a>, <a class="el" href="val__utils_8c_source.html#l00548">val_chase_cname()</a>, <a class="el" href="val__utils_8c_source.html#l00650">val_check_nonsecure()</a>, <a class="el" href="val__utils_8c_source.html#l00056">val_classify_response()</a>, <a class="el" href="val__utils_8c_source.html#l00588">val_fill_reply()</a>, <a class="el" href="val__utils_8c_source.html#l00211">val_find_signer()</a>, <a class="el" href="val__neg_8c_source.html#l01041">val_neg_addreferral()</a>, <a class="el" href="val__neg_8c_source.html#l00833">val_neg_addreply()</a>, <a class="el" href="val__nsec_8c_source.html#l00499">val_nsec_check_dlv()</a>, <a class="el" href="val__nsec_8c_source.html#l00174">val_nsec_prove_nodata_dsreply()</a>, <a class="el" href="validator_8c_source.html#l00827">validate_any_response()</a>, <a class="el" href="validator_8c_source.html#l01043">validate_cname_noanswer_response()</a>, <a class="el" href="validator_8c_source.html#l00937">validate_cname_response()</a>, <a class="el" href="validator_8c_source.html#l00398">validate_msg_signatures()</a>, <a class="el" href="validator_8c_source.html#l00715">validate_nameerror_response()</a>, <a class="el" href="validator_8c_source.html#l00622">validate_nodata_response()</a>, and <a class="el" href="validator_8c_source.html#l00526">validate_positive_response()</a>.</p>

</div>
</div><p>
<a class="anchor" name="835d4b097e914702f474a66db8be4e6d"></a><!-- doxytag: member="reply_info::rrsets" ref="835d4b097e914702f474a66db8be4e6d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structub__packed__rrset__key.html">ub_packed_rrset_key</a>** <a class="el" href="structreply__info.html#835d4b097e914702f474a66db8be4e6d">reply_info::rrsets</a><code> [read]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
List of pointers (only) to the rrsets in the order in which they appear in the reply message. 
<p>
Number of elements is ancount+nscount+arcount RRsets. This is a pointer to that array. Use the accessor function for access. 
<p>Referenced by <a class="el" href="dns_8c_source.html#l00136">addr_to_additional()</a>, <a class="el" href="worker_8c_source.html#l00501">answer_from_cache()</a>, <a class="el" href="val__neg_8c_source.html#l00315">calc_data_need()</a>, <a class="el" href="worker_8c_source.html#l00368">check_delegation_secure()</a>, <a class="el" href="msgreply_8c_source.html#l00080">construct_reply_info_base()</a>, <a class="el" href="worker_8c_source.html#l00394">deleg_remove_nonsecure_additional()</a>, <a class="el" href="iter__delegpt_8c_source.html#l00297">delegpt_from_message()</a>, <a class="el" href="validator_8c_source.html#l00490">detect_wrongly_truncated()</a>, <a class="el" href="dns_8c_source.html#l00668">dns_cache_store()</a>, <a class="el" href="dns_8c_source.html#l00073">dns_cache_store_msg()</a>, <a class="el" href="dns_8c_source.html#l00336">dns_msg_authadd()</a>, <a class="el" href="dns_8c_source.html#l00307">dns_msg_create()</a>, <a class="el" href="validator_8c_source.html#l02151">ds_response_to_ke()</a>, <a class="el" href="cachedump_8c_source.html#l00222">dump_msg()</a>, <a class="el" href="unitverify_8c_source.html#l00112">extract_keys()</a>, <a class="el" href="dns_8c_source.html#l00274">find_add_ds()</a>, <a class="el" href="iter__delegpt_8c_source.html#l00286">find_NS()</a>, <a class="el" href="unitverify_8c_source.html#l00203">find_rrset_type()</a>, <a class="el" href="dns_8c_source.html#l00397">gen_dns_msg()</a>, <a class="el" href="iterator_8c_source.html#l00687">generate_a_aaaa_check()</a>, <a class="el" href="iterator_8c_source.html#l00394">handle_cname_response()</a>, <a class="el" href="msgencode_8c_source.html#l00527">insert_section()</a>, <a class="el" href="iter__utils_8c_source.html#l00510">iter_msg_from_zone()</a>, <a class="el" href="iter__utils_8c_source.html#l00495">iter_msg_has_dnssec()</a>, <a class="el" href="iterator_8c_source.html#l00278">iter_prepend()</a>, <a class="el" href="cachedump_8c_source.html#l00701">load_msg()</a>, <a class="el" href="localzone_8c_source.html#l00983">local_encode()</a>, <a class="el" href="msgreply_8c_source.html#l00371">parse_copy_decompress()</a>, <a class="el" href="cachedump_8c_source.html#l00782">print_deleg_lookup()</a>, <a class="el" href="validator_8c_source.html#l02453">process_dlv_response()</a>, <a class="el" href="validator_8c_source.html#l01158">processInit()</a>, <a class="el" href="msgreply_8c_source.html#l00129">repinfo_alloc_rrset_keys()</a>, <a class="el" href="msgreply_8c_source.html#l00617">repinfo_copy_rrsets()</a>, <a class="el" href="msgreply_8c_source.html#l00820">reply_all_rrsets_secure()</a>, <a class="el" href="msgreply_8c_source.html#l00795">reply_check_cname_chain()</a>, <a class="el" href="iter__utils_8c_source.html#l00590">reply_equal()</a>, <a class="el" href="msgreply_8c_source.html#l00697">reply_find_answer_rrset()</a>, <a class="el" href="msgreply_8c_source.html#l00676">reply_find_final_cname_target()</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="val__neg_8c_source.html#l00557">reply_find_soa()</a>, <a class="el" href="val__neg_8c_source.html#l00568">reply_has_nsec()</a>, <a class="el" href="msgreply_8c_source.html#l00482">reply_info_parsedelete()</a>, <a class="el" href="val__neg_8c_source.html#l01015">reply_nsec_signer()</a>, <a class="el" href="iter__resptype_8c_source.html#l00050">response_type_from_cache()</a>, <a class="el" href="iter__resptype_8c_source.html#l00103">response_type_from_server()</a>, <a class="el" href="dns_8c_source.html#l00470">rrset_msg()</a>, <a class="el" href="dns_8c_source.html#l00059">store_rrsets()</a>, <a class="el" href="dns_8c_source.html#l00498">synth_dname_msg()</a>, <a class="el" href="dns_8c_source.html#l00422">tomsg()</a>, <a class="el" href="val__utils_8c_source.html#l00548">val_chase_cname()</a>, <a class="el" href="val__utils_8c_source.html#l00650">val_check_nonsecure()</a>, <a class="el" href="val__utils_8c_source.html#l00056">val_classify_response()</a>, <a class="el" href="val__utils_8c_source.html#l00588">val_fill_reply()</a>, <a class="el" href="val__utils_8c_source.html#l00211">val_find_signer()</a>, <a class="el" href="val__utils_8c_source.html#l00716">val_mark_indeterminate()</a>, <a class="el" href="val__utils_8c_source.html#l00736">val_mark_insecure()</a>, <a class="el" href="val__neg_8c_source.html#l01041">val_neg_addreferral()</a>, <a class="el" href="val__neg_8c_source.html#l00833">val_neg_addreply()</a>, <a class="el" href="validator_8c_source.html#l00191">val_new()</a>, <a class="el" href="val__utils_8c_source.html#l00753">val_next_unchecked()</a>, <a class="el" href="val__nsec_8c_source.html#l00499">val_nsec_check_dlv()</a>, <a class="el" href="val__nsec_8c_source.html#l00174">val_nsec_prove_nodata_dsreply()</a>, <a class="el" href="validator_8c_source.html#l00827">validate_any_response()</a>, <a class="el" href="validator_8c_source.html#l01043">validate_cname_noanswer_response()</a>, <a class="el" href="validator_8c_source.html#l00937">validate_cname_response()</a>, <a class="el" href="validator_8c_source.html#l00398">validate_msg_signatures()</a>, <a class="el" href="validator_8c_source.html#l00715">validate_nameerror_response()</a>, <a class="el" href="validator_8c_source.html#l00622">validate_nodata_response()</a>, <a class="el" href="validator_8c_source.html#l00526">validate_positive_response()</a>, <a class="el" href="validator_8c_source.html#l00785">validate_referral_response()</a>, and <a class="el" href="unitverify_8c_source.html#l00176">verifytest_entry()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ef39b5246c5759d58cd640e3be8d77e5"></a><!-- doxytag: member="reply_info::ref" ref="ef39b5246c5759d58cd640e3be8d77e5" args="[1]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structrrset__ref.html">rrset_ref</a> <a class="el" href="structreply__info.html#ef39b5246c5759d58cd640e3be8d77e5">reply_info::ref</a>[1]<code> [read]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Packed array of ids (see counts) and pointers to <a class="el" href="structpacked__rrset__key.html" title="The identifying information for an RRset.">packed_rrset_key</a>. 
<p>
The number equals ancount+nscount+arcount RRsets. These are sorted in ascending pointer, the locking order. So this list can be locked (and id, ttl checked), to see if all the data is available and recent enough.<p>
This is defined as an array of size 1, so that the compiler associates the identifier with this position in the structure. Array bound overflow on this array then gives access to the further elements of the array, which are allocated after the main structure.<p>
It could be more pure to define as array of size 0, ref[0]. But ref[1] may be less confusing for compilers. Use the accessor function for access. 
<p>Referenced by <a class="el" href="worker_8c_source.html#l00501">answer_from_cache()</a>, <a class="el" href="msgreply_8c_source.html#l00080">construct_reply_info_base()</a>, <a class="el" href="dns_8c_source.html#l00073">dns_cache_store_msg()</a>, <a class="el" href="cachedump_8c_source.html#l00222">dump_msg()</a>, <a class="el" href="pythonmod__utils_8c_source.html#l00071">invalidateQueryInCache()</a>, <a class="el" href="msgreply_8c_source.html#l00465">reply_info_set_ttls()</a>, <a class="el" href="msgreply_8c_source.html#l00458">reply_info_sortref()</a>, <a class="el" href="dns_8c_source.html#l00059">store_rrsets()</a>, and <a class="el" href="dns_8c_source.html#l00422">tomsg()</a>.</p>

</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>util/data/<a class="el" href="msgreply_8h.html">msgreply.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Oct 13 06:46:34 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>