Sophie

Sophie

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

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: util/data/packed_rrset.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_4b581c88b01efb1cf178857b56f0f2fb.html">util</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_ee94850d65962e9d83c6a3a53d0a46bb.html">data</a>
  </div>
</div>
<div class="contents">
<h1>packed_rrset.h File Reference</h1>This file contains the data storage for RRsets.  
<a href="#_details">More...</a>
<p>
<code>#include &quot;<a class="el" href="lruhash_8h.html">util/storage/lruhash.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="structpacked__rrset__key.html">packed_rrset_key</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The identifying information for an RRset.  <a href="structpacked__rrset__key.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="structub__packed__rrset__key.html">ub_packed_rrset_key</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This structure contains an RRset.  <a href="structub__packed__rrset__key.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="structpacked__rrset__data.html">packed_rrset_data</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">RRset data.  <a href="structpacked__rrset__data.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="structpacked__rrset.html">packed_rrset</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An RRset can be represented using both key and data together.  <a href="structpacked__rrset.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="structpacked__rrset__list.html">packed_rrset_list</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list of packed rrsets  <a href="structpacked__rrset__list.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8f56de00806c454a0501f4f05e9555a5"></a><!-- doxytag: member="packed_rrset.h::PACKED_RRSET_NSEC_AT_APEX" ref="8f56de00806c454a0501f4f05e9555a5" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="packed__rrset_8h.html#8f56de00806c454a0501f4f05e9555a5">PACKED_RRSET_NSEC_AT_APEX</a>&nbsp;&nbsp;&nbsp;0x1</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this rrset is NSEC and is at zone apex (at child side of zonecut) <br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef uint64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="packed__rrset_8h.html#71887e7817081055b4413da4d0c95f6a">rrset_id_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">type used to uniquely identify rrsets.  <a href="#71887e7817081055b4413da4d0c95f6a"></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="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac0">rrset_trust</a> { <br>
&nbsp;&nbsp;<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac04c05d2186597bb5d540034882fc2d771">rrset_trust_none</a> =  0, 
<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac0da60aa2fb4a3e2eba50de1a64fc1d35a">rrset_trust_add_noAA</a>, 
<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac0de10678dbde568954a35565d7463843d">rrset_trust_auth_noAA</a>, 
<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac09a74e83100e7e3a8daa830cd28bfb447">rrset_trust_add_AA</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac02f0888535590e8f6dc8507efbde8aa13">rrset_trust_nonauth_ans_AA</a>, 
<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac07c89a62f118a7a97d6a4253474165333">rrset_trust_ans_noAA</a>, 
<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac034e176edb10e854a974dc062949742c1">rrset_trust_glue</a>, 
<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac0c1baf1d5e199199100b6f92f48a7bc0d">rrset_trust_auth_AA</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac03f068c616fcb72ef1115bcb144d815e6">rrset_trust_ans_AA</a>, 
<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac05229a1e895dd8117e67e341a17a5c3e2">rrset_trust_sec_noglue</a>, 
<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac04943bfe95fa2f0fdb99221c2f634def4">rrset_trust_prim_noglue</a>, 
<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac0a4f20e90fb947ac23740e69e34a316ae">rrset_trust_validated</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac0c18dc95fa7bd492ef236202bb6fedfd4">rrset_trust_ultimate</a>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">RRset trustworthiness.  <a href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac0">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="packed__rrset_8h.html#ecbbb9607758922722abc9a49d1097bb">sec_status</a> { <br>
&nbsp;&nbsp;<a class="el" href="packed__rrset_8h.html#ecbbb9607758922722abc9a49d1097bbf027d232fd498f772930c1cbc5f4a930">sec_status_unchecked</a> =  0, 
<a class="el" href="packed__rrset_8h.html#ecbbb9607758922722abc9a49d1097bb096c66b60edbe83f9fbc1c0ebaa2775e">sec_status_bogus</a>, 
<a class="el" href="packed__rrset_8h.html#ecbbb9607758922722abc9a49d1097bb491352edc379234c8b3d7f28a69f4681">sec_status_indeterminate</a>, 
<a class="el" href="packed__rrset_8h.html#ecbbb9607758922722abc9a49d1097bbdee21d1120fc195472c451fa542be95f">sec_status_insecure</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="packed__rrset_8h.html#ecbbb9607758922722abc9a49d1097bb1c482a7c937994b473be31b831cd6edf">sec_status_secure</a>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Security status from validation for data.  <a href="packed__rrset_8h.html#ecbbb9607758922722abc9a49d1097bb">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="packed__rrset_8h.html#3d44eabab9273ca5dd24fdb07e608e9e">ub_packed_rrset_parsedelete</a> (struct <a class="el" href="structub__packed__rrset__key.html">ub_packed_rrset_key</a> *pkey, struct <a class="el" href="structalloc__cache.html">alloc_cache</a> *alloc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete packed rrset key and data, not entered in hashtables yet.  <a href="#3d44eabab9273ca5dd24fdb07e608e9e"></a><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="packed__rrset_8h.html#c38dc01942b25947c10eb4d5480e8730">packed_rrset_sizeof</a> (struct <a class="el" href="structpacked__rrset__data.html">packed_rrset_data</a> *data)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Memory size of rrset data.  <a href="#c38dc01942b25947c10eb4d5480e8730"></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="packed__rrset_8h.html#31f619dd8d6e519b8902804419149ad7">ub_packed_rrset_ttl</a> (struct <a class="el" href="structub__packed__rrset__key.html">ub_packed_rrset_key</a> *key)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get TTL of rrset.  <a href="#31f619dd8d6e519b8902804419149ad7"></a><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="packed__rrset_8h.html#0057ef70dd56a9d6eed479e65fd6eb0a">ub_rrset_sizefunc</a> (void *key, void *data)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate memory size of rrset <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a>.  <a href="#0057ef70dd56a9d6eed479e65fd6eb0a"></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="packed__rrset_8h.html#40c1f5022fbd6233985cd1a44d94a0ac">ub_rrset_compare</a> (void *k1, void *k2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">compares two rrset keys.  <a href="#40c1f5022fbd6233985cd1a44d94a0ac"></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="packed__rrset_8h.html#b82edaa361e0e56f365ee0c0e84fdf88">rrsetdata_equal</a> (struct <a class="el" href="structpacked__rrset__data.html">packed_rrset_data</a> *d1, struct <a class="el" href="structpacked__rrset__data.html">packed_rrset_data</a> *d2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">compare two rrset data structures.  <a href="#b82edaa361e0e56f365ee0c0e84fdf88"></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="packed__rrset_8h.html#2e5c8ec339f55dfc354ff85f1d7fd038">ub_rrset_key_delete</a> (void *key, void *userdata)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Old key to be deleted.  <a href="#2e5c8ec339f55dfc354ff85f1d7fd038"></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="packed__rrset_8h.html#e72c9d04bbeee69592ec96f26120c427">rrset_data_delete</a> (void *data, void *userdata)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Old data to be deleted.  <a href="#e72c9d04bbeee69592ec96f26120c427"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lruhash_8h.html#050c9ffcb4f555022a735896cdee3795">hashvalue_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="packed__rrset_8h.html#7f571db52f093b963bd73bbfa31f5153">rrset_key_hash</a> (struct <a class="el" href="structpacked__rrset__key.html">packed_rrset_key</a> *key)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate hash value for a packed rrset key.  <a href="#7f571db52f093b963bd73bbfa31f5153"></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="packed__rrset_8h.html#1e6ae4ae5f835620d1d529df908ac5e3">packed_rrset_ptr_fixup</a> (struct <a class="el" href="structpacked__rrset__data.html">packed_rrset_data</a> *data)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fixup pointers in fixed data <a class="el" href="structpacked__rrset__data.html" title="RRset data.">packed_rrset_data</a> blob.  <a href="#1e6ae4ae5f835620d1d529df908ac5e3"></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="packed__rrset_8h.html#bf6bc2b97e77f3404f1c1fa35f79aaad">packed_rrset_ttl_add</a> (struct <a class="el" href="structpacked__rrset__data.html">packed_rrset_data</a> *data, uint32_t add)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fixup TTLs in fixed data <a class="el" href="structpacked__rrset__data.html" title="RRset data.">packed_rrset_data</a> blob.  <a href="#bf6bc2b97e77f3404f1c1fa35f79aaad"></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="packed__rrset_8h.html#40ac55ec4a9e9422da08b203e3f8fa87">get_cname_target</a> (struct <a class="el" href="structub__packed__rrset__key.html">ub_packed_rrset_key</a> *rrset, uint8_t **dname, size_t *dname_len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Utility procedure to extract CNAME target name from its rdata.  <a href="#40ac55ec4a9e9422da08b203e3f8fa87"></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="packed__rrset_8h.html#200a1e47bd6cc4c2cf502a7623b3da35">rrset_trust_to_string</a> (enum <a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac0">rrset_trust</a> s)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a printable string for a rrset trust value.  <a href="#200a1e47bd6cc4c2cf502a7623b3da35"></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="packed__rrset_8h.html#a5a92cfb211ea7321b61cff912cb2bf7">sec_status_to_string</a> (enum <a class="el" href="packed__rrset_8h.html#ecbbb9607758922722abc9a49d1097bb">sec_status</a> s)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a printable string for a security status value.  <a href="#a5a92cfb211ea7321b61cff912cb2bf7"></a><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="packed__rrset_8h.html#df7e64e607b7345f4768147212309985">packed_rrset_copy_region</a> (struct <a class="el" href="structub__packed__rrset__key.html">ub_packed_rrset_key</a> *key, struct <a class="el" href="structregional.html">regional</a> *region, uint32_t now)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate rrset in region - no more locks needed.  <a href="#df7e64e607b7345f4768147212309985"></a><br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
This file contains the data storage for RRsets. 
<p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="71887e7817081055b4413da4d0c95f6a"></a><!-- doxytag: member="packed_rrset.h::rrset_id_t" ref="71887e7817081055b4413da4d0c95f6a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint64_t <a class="el" href="packed__rrset_8h.html#71887e7817081055b4413da4d0c95f6a">rrset_id_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
type used to uniquely identify rrsets. 
<p>
Cannot be reused without clearing the cache. 
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac0"></a><!-- doxytag: member="packed_rrset.h::rrset_trust" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac0">rrset_trust</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
RRset trustworthiness. 
<p>
Bigger value is more trust. RFC 2181. The rrset_trust_add_noAA, rrset_trust_auth_noAA, rrset_trust_add_AA, are mentioned as the same trustworthiness in 2181, but split up here for ease of processing.<p>
rrset_trust_nonauth_ans_AA, rrset_trust_ans_noAA are also mentioned as the same trustworthiness in 2181, but split up here for ease of processing.<p>
Added trust_none for a sane initial value, smaller than anything else. Added validated and ultimate trust for keys and rrsig validated content. <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac04c05d2186597bb5d540034882fc2d771"></a><!-- doxytag: member="rrset_trust_none" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac04c05d2186597bb5d540034882fc2d771" args="" -->rrset_trust_none</em>&nbsp;</td><td>
initial value for trust </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac0da60aa2fb4a3e2eba50de1a64fc1d35a"></a><!-- doxytag: member="rrset_trust_add_noAA" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac0da60aa2fb4a3e2eba50de1a64fc1d35a" args="" -->rrset_trust_add_noAA</em>&nbsp;</td><td>
Additional information from non-authoritative answers. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac0de10678dbde568954a35565d7463843d"></a><!-- doxytag: member="rrset_trust_auth_noAA" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac0de10678dbde568954a35565d7463843d" args="" -->rrset_trust_auth_noAA</em>&nbsp;</td><td>
Data from the authority section of a non-authoritative answer. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac09a74e83100e7e3a8daa830cd28bfb447"></a><!-- doxytag: member="rrset_trust_add_AA" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac09a74e83100e7e3a8daa830cd28bfb447" args="" -->rrset_trust_add_AA</em>&nbsp;</td><td>
Additional information from an authoritative answer. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac02f0888535590e8f6dc8507efbde8aa13"></a><!-- doxytag: member="rrset_trust_nonauth_ans_AA" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac02f0888535590e8f6dc8507efbde8aa13" args="" -->rrset_trust_nonauth_ans_AA</em>&nbsp;</td><td>
non-authoritative data from the answer section of authoritative answers </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac07c89a62f118a7a97d6a4253474165333"></a><!-- doxytag: member="rrset_trust_ans_noAA" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac07c89a62f118a7a97d6a4253474165333" args="" -->rrset_trust_ans_noAA</em>&nbsp;</td><td>
Data from the answer section of a non-authoritative answer. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac034e176edb10e854a974dc062949742c1"></a><!-- doxytag: member="rrset_trust_glue" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac034e176edb10e854a974dc062949742c1" args="" -->rrset_trust_glue</em>&nbsp;</td><td>
Glue from a primary zone, or glue from a zone transfer. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac0c1baf1d5e199199100b6f92f48a7bc0d"></a><!-- doxytag: member="rrset_trust_auth_AA" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac0c1baf1d5e199199100b6f92f48a7bc0d" args="" -->rrset_trust_auth_AA</em>&nbsp;</td><td>
Data from the authority section of an authoritative answer. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac03f068c616fcb72ef1115bcb144d815e6"></a><!-- doxytag: member="rrset_trust_ans_AA" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac03f068c616fcb72ef1115bcb144d815e6" args="" -->rrset_trust_ans_AA</em>&nbsp;</td><td>
The authoritative data included in the answer section of an authoritative reply. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac05229a1e895dd8117e67e341a17a5c3e2"></a><!-- doxytag: member="rrset_trust_sec_noglue" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac05229a1e895dd8117e67e341a17a5c3e2" args="" -->rrset_trust_sec_noglue</em>&nbsp;</td><td>
Data from a zone transfer, other than glue. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac04943bfe95fa2f0fdb99221c2f634def4"></a><!-- doxytag: member="rrset_trust_prim_noglue" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac04943bfe95fa2f0fdb99221c2f634def4" args="" -->rrset_trust_prim_noglue</em>&nbsp;</td><td>
Data from a primary zone file, other than glue data. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac0a4f20e90fb947ac23740e69e34a316ae"></a><!-- doxytag: member="rrset_trust_validated" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac0a4f20e90fb947ac23740e69e34a316ae" args="" -->rrset_trust_validated</em>&nbsp;</td><td>
DNSSEC(rfc4034) validated with trusted keys. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9a48f0ff3c7054fbcbe7f81c06ab7ac0c18dc95fa7bd492ef236202bb6fedfd4"></a><!-- doxytag: member="rrset_trust_ultimate" ref="9a48f0ff3c7054fbcbe7f81c06ab7ac0c18dc95fa7bd492ef236202bb6fedfd4" args="" -->rrset_trust_ultimate</em>&nbsp;</td><td>
ultimately trusted, no more trust is possible; trusted keys from the unbound configuration setup. 
<p>
</td></tr>
</table>
</dl>

</div>
</div><p>
<a class="anchor" name="ecbbb9607758922722abc9a49d1097bb"></a><!-- doxytag: member="packed_rrset.h::sec_status" ref="ecbbb9607758922722abc9a49d1097bb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="packed__rrset_8h.html#ecbbb9607758922722abc9a49d1097bb">sec_status</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Security status from validation for data. 
<p>
The order is significant; more secure, more proven later. <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="ecbbb9607758922722abc9a49d1097bbf027d232fd498f772930c1cbc5f4a930"></a><!-- doxytag: member="sec_status_unchecked" ref="ecbbb9607758922722abc9a49d1097bbf027d232fd498f772930c1cbc5f4a930" args="" -->sec_status_unchecked</em>&nbsp;</td><td>
UNCHECKED means that object has yet to be validated. 
<p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="ecbbb9607758922722abc9a49d1097bb096c66b60edbe83f9fbc1c0ebaa2775e"></a><!-- doxytag: member="sec_status_bogus" ref="ecbbb9607758922722abc9a49d1097bb096c66b60edbe83f9fbc1c0ebaa2775e" args="" -->sec_status_bogus</em>&nbsp;</td><td>
BOGUS means that the object (RRset or message) failed to validate (according to local policy), but should have validated. 
<p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="ecbbb9607758922722abc9a49d1097bb491352edc379234c8b3d7f28a69f4681"></a><!-- doxytag: member="sec_status_indeterminate" ref="ecbbb9607758922722abc9a49d1097bb491352edc379234c8b3d7f28a69f4681" args="" -->sec_status_indeterminate</em>&nbsp;</td><td>
INDETERMINATE means that the object is insecure, but not authoritatively so. 
<p>
Generally this means that the RRset is not below a configured trust anchor. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ecbbb9607758922722abc9a49d1097bbdee21d1120fc195472c451fa542be95f"></a><!-- doxytag: member="sec_status_insecure" ref="ecbbb9607758922722abc9a49d1097bbdee21d1120fc195472c451fa542be95f" args="" -->sec_status_insecure</em>&nbsp;</td><td>
INSECURE means that the object is authoritatively known to be insecure. 
<p>
Generally this means that this RRset is below a trust anchor, but also below a verified, insecure delegation. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ecbbb9607758922722abc9a49d1097bb1c482a7c937994b473be31b831cd6edf"></a><!-- doxytag: member="sec_status_secure" ref="ecbbb9607758922722abc9a49d1097bb1c482a7c937994b473be31b831cd6edf" args="" -->sec_status_secure</em>&nbsp;</td><td>
SECURE means that the object (RRset or message) validated according to local policy. 
<p>
</td></tr>
</table>
</dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="3d44eabab9273ca5dd24fdb07e608e9e"></a><!-- doxytag: member="packed_rrset.h::ub_packed_rrset_parsedelete" ref="3d44eabab9273ca5dd24fdb07e608e9e" args="(struct ub_packed_rrset_key *pkey, struct alloc_cache *alloc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ub_packed_rrset_parsedelete           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structub__packed__rrset__key.html">ub_packed_rrset_key</a> *&nbsp;</td>
          <td class="paramname"> <em>pkey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structalloc__cache.html">alloc_cache</a> *&nbsp;</td>
          <td class="paramname"> <em>alloc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete packed rrset key and data, not entered in hashtables yet. 
<p>
Used during parsing. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pkey,:</em>&nbsp;</td><td>rrset key structure with locks, key and data pointers. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>alloc,:</em>&nbsp;</td><td>where to return the unfree-able key structure. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="alloc_8c_source.html#l00249">alloc_special_release()</a>, <a class="el" href="lruhash_8h_source.html#l00222">lruhash_entry::data</a>, <a class="el" href="packed__rrset_8h_source.html#l00064">packed_rrset_key::dname</a>, <a class="el" href="packed__rrset_8h_source.html#l00094">ub_packed_rrset_key::entry</a>, <a class="el" href="packed__rrset_8h_source.html#l00103">ub_packed_rrset_key::id</a>, and <a class="el" href="packed__rrset_8h_source.html#l00105">ub_packed_rrset_key::rk</a>.</p>

<p>Referenced by <a class="el" href="cachedump_8c_source.html#l00458">move_into_cache()</a>, <a class="el" href="msgreply_8c_source.html#l00482">reply_info_parsedelete()</a>, <a class="el" href="rrset_8c_source.html#l00171">rrset_cache_update()</a>, and <a class="el" href="unitverify_8c_source.html#l00257">verifytest_file()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c38dc01942b25947c10eb4d5480e8730"></a><!-- doxytag: member="packed_rrset.h::packed_rrset_sizeof" ref="c38dc01942b25947c10eb4d5480e8730" args="(struct packed_rrset_data *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t packed_rrset_sizeof           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structpacked__rrset__data.html">packed_rrset_data</a> *&nbsp;</td>
          <td class="paramname"> <em>data</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Memory size of rrset data. 
<p>
RRset data must be filled in correctly. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data,:</em>&nbsp;</td><td>data to examine. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>size in bytes. </dd></dl>

<p>References <a class="el" href="packed__rrset_8h_source.html#l00211">packed_rrset_data::count</a>, <a class="el" href="log_8h_source.html#l00185">log_assert</a>, <a class="el" href="packed__rrset_8h_source.html#l00229">packed_rrset_data::rr_data</a>, <a class="el" href="packed__rrset_8h_source.html#l00219">packed_rrset_data::rr_len</a>, and <a class="el" href="packed__rrset_8h_source.html#l00213">packed_rrset_data::rrsig_count</a>.</p>

<p>Referenced by <a class="el" href="val__kentry_8c_source.html#l00136">key_entry_copy()</a>, <a class="el" href="val__kentry_8c_source.html#l00103">key_entry_copy_toregion()</a>, <a class="el" href="val__kentry_8c_source.html#l00240">key_entry_create_rrset()</a>, <a class="el" href="val__kentry_8c_source.html#l00277">key_entry_get_rrset()</a>, <a class="el" href="val__kentry_8c_source.html#l00050">key_entry_sizefunc()</a>, <a class="el" href="packed__rrset_8c_source.html#l00268">packed_rrset_copy_region()</a>, <a class="el" href="validator_8c_source.html#l02453">process_dlv_response()</a>, <a class="el" href="msgreply_8c_source.html#l00617">repinfo_copy_rrsets()</a>, and <a class="el" href="packed__rrset_8c_source.html#l00067">ub_rrset_sizefunc()</a>.</p>

</div>
</div><p>
<a class="anchor" name="31f619dd8d6e519b8902804419149ad7"></a><!-- doxytag: member="packed_rrset.h::ub_packed_rrset_ttl" ref="31f619dd8d6e519b8902804419149ad7" args="(struct ub_packed_rrset_key *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t ub_packed_rrset_ttl           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structub__packed__rrset__key.html">ub_packed_rrset_key</a> *&nbsp;</td>
          <td class="paramname"> <em>key</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get TTL of rrset. 
<p>
RRset data must be filled in correctly. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>key,:</em>&nbsp;</td><td>rrset key, with data to examine. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>ttl value. </dd></dl>

<p>References <a class="el" href="packed__rrset_8h_source.html#l00209">packed_rrset_data::ttl</a>.</p>

<p>Referenced by <a class="el" href="validator_8c_source.html#l02151">ds_response_to_ke()</a>, and <a class="el" href="val__nsec_8c_source.html#l00174">val_nsec_prove_nodata_dsreply()</a>.</p>

</div>
</div><p>
<a class="anchor" name="0057ef70dd56a9d6eed479e65fd6eb0a"></a><!-- doxytag: member="packed_rrset.h::ub_rrset_sizefunc" ref="0057ef70dd56a9d6eed479e65fd6eb0a" args="(void *key, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t ub_rrset_sizefunc           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calculate memory size of rrset <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a>. 
<p>
For hash table usage. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>key,:</em>&nbsp;</td><td>struct ub_packed_rrset_key*. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data,:</em>&nbsp;</td><td>struct packed_rrset_data*. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>size in bytes. </dd></dl>

<p>References <a class="el" href="packed__rrset_8h_source.html#l00094">ub_packed_rrset_key::entry</a>, <a class="el" href="lruhash_8h_source.html#l00210">lruhash_entry::lock</a>, and <a class="el" href="packed__rrset_8c_source.html#l00077">packed_rrset_sizeof()</a>.</p>

<p>Referenced by <a class="el" href="fptr__wlist_8c_source.html#l00188">fptr_whitelist_hash_sizefunc()</a>, and <a class="el" href="rrset_8c_source.html#l00057">rrset_cache_create()</a>.</p>

</div>
</div><p>
<a class="anchor" name="40c1f5022fbd6233985cd1a44d94a0ac"></a><!-- doxytag: member="packed_rrset.h::ub_rrset_compare" ref="40c1f5022fbd6233985cd1a44d94a0ac" args="(void *k1, void *k2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ub_rrset_compare           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>k1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>k2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
compares two rrset keys. 
<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>k1,:</em>&nbsp;</td><td>struct ub_packed_rrset_key*. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>k2,:</em>&nbsp;</td><td>struct ub_packed_rrset_key*. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if equal. </dd></dl>

<p>References <a class="el" href="packed__rrset_8h_source.html#l00064">packed_rrset_key::dname</a>, <a class="el" href="packed__rrset_8h_source.html#l00068">packed_rrset_key::dname_len</a>, <a class="el" href="packed__rrset_8h_source.html#l00073">packed_rrset_key::flags</a>, <a class="el" href="dname_8c_source.html#l00096">query_dname_compare()</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>, and <a class="el" href="packed__rrset_8h_source.html#l00075">packed_rrset_key::type</a>.</p>

<p>Referenced by <a class="el" href="fptr__wlist_8c_source.html#l00200">fptr_whitelist_hash_compfunc()</a>, and <a class="el" href="rrset_8c_source.html#l00057">rrset_cache_create()</a>.</p>

</div>
</div><p>
<a class="anchor" name="b82edaa361e0e56f365ee0c0e84fdf88"></a><!-- doxytag: member="packed_rrset.h::rrsetdata_equal" ref="b82edaa361e0e56f365ee0c0e84fdf88" args="(struct packed_rrset_data *d1, struct packed_rrset_data *d2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int rrsetdata_equal           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structpacked__rrset__data.html">packed_rrset_data</a> *&nbsp;</td>
          <td class="paramname"> <em>d1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structpacked__rrset__data.html">packed_rrset_data</a> *&nbsp;</td>
          <td class="paramname"> <em>d2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
compare two rrset data structures. 
<p>
Compared rdata and rrsigdata, not the trust or ttl value. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>d1,:</em>&nbsp;</td><td>data to compare. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>d2,:</em>&nbsp;</td><td>data to compare. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if equal. </dd></dl>

<p>References <a class="el" href="packed__rrset_8h_source.html#l00211">packed_rrset_data::count</a>, <a class="el" href="packed__rrset_8h_source.html#l00229">packed_rrset_data::rr_data</a>, <a class="el" href="packed__rrset_8h_source.html#l00219">packed_rrset_data::rr_len</a>, and <a class="el" href="packed__rrset_8h_source.html#l00213">packed_rrset_data::rrsig_count</a>.</p>

<p>Referenced by <a class="el" href="rrset_8c_source.html#l00171">rrset_cache_update()</a>, <a class="el" href="rrset_8c_source.html#l00349">rrset_check_sec_status()</a>, and <a class="el" href="rrset_8c_source.html#l00316">rrset_update_sec_status()</a>.</p>

</div>
</div><p>
<a class="anchor" name="2e5c8ec339f55dfc354ff85f1d7fd038"></a><!-- doxytag: member="packed_rrset.h::ub_rrset_key_delete" ref="2e5c8ec339f55dfc354ff85f1d7fd038" args="(void *key, void *userdata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ub_rrset_key_delete           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>userdata</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Old key to be deleted. 
<p>
RRset keys are recycled via alloc. The id is set to 0. So that other threads, after acquiring a lock always get the correct value, in this case the 0 deleted-special value. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>key,:</em>&nbsp;</td><td>struct ub_packed_rrset_key*. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>userdata,:</em>&nbsp;</td><td>alloc structure to use for recycling. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="alloc_8c_source.html#l00249">alloc_special_release()</a>, <a class="el" href="packed__rrset_8h_source.html#l00064">packed_rrset_key::dname</a>, <a class="el" href="packed__rrset_8h_source.html#l00103">ub_packed_rrset_key::id</a>, and <a class="el" href="packed__rrset_8h_source.html#l00105">ub_packed_rrset_key::rk</a>.</p>

<p>Referenced by <a class="el" href="fptr__wlist_8c_source.html#l00212">fptr_whitelist_hash_delkeyfunc()</a>, and <a class="el" href="rrset_8c_source.html#l00057">rrset_cache_create()</a>.</p>

</div>
</div><p>
<a class="anchor" name="e72c9d04bbeee69592ec96f26120c427"></a><!-- doxytag: member="packed_rrset.h::rrset_data_delete" ref="e72c9d04bbeee69592ec96f26120c427" args="(void *data, void *userdata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void rrset_data_delete           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>userdata</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Old data to be deleted. 
<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>data,:</em>&nbsp;</td><td>what to delete. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>userdata,:</em>&nbsp;</td><td>user data ptr. </td></tr>
  </table>
</dl>

<p>Referenced by <a class="el" href="fptr__wlist_8c_source.html#l00224">fptr_whitelist_hash_deldatafunc()</a>, and <a class="el" href="rrset_8c_source.html#l00057">rrset_cache_create()</a>.</p>

</div>
</div><p>
<a class="anchor" name="7f571db52f093b963bd73bbfa31f5153"></a><!-- doxytag: member="packed_rrset.h::rrset_key_hash" ref="7f571db52f093b963bd73bbfa31f5153" args="(struct packed_rrset_key *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="lruhash_8h.html#050c9ffcb4f555022a735896cdee3795">hashvalue_t</a> rrset_key_hash           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structpacked__rrset__key.html">packed_rrset_key</a> *&nbsp;</td>
          <td class="paramname"> <em>key</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calculate hash value for a packed rrset key. 
<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>key,:</em>&nbsp;</td><td>the rrset key with name, type, class, flags. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>hash value. </dd></dl>

<p>References <a class="el" href="packed__rrset_8h_source.html#l00064">packed_rrset_key::dname</a>, <a class="el" href="dname_8c_source.html#l00258">dname_query_hash()</a>, <a class="el" href="packed__rrset_8h_source.html#l00073">packed_rrset_key::flags</a>, <a class="el" href="packed__rrset_8h_source.html#l00077">packed_rrset_key::rrset_class</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="cachedump_8c_source.html#l00458">move_into_cache()</a>, <a class="el" href="rrset_8c_source.html#l00226">rrset_cache_lookup()</a>, <a class="el" href="rrset_8c_source.html#l00385">rrset_cache_remove()</a>, <a class="el" href="rrset_8c_source.html#l00349">rrset_check_sec_status()</a>, <a class="el" href="rrset_8c_source.html#l00316">rrset_update_sec_status()</a>, and <a class="el" href="dns_8c_source.html#l00498">synth_dname_msg()</a>.</p>

</div>
</div><p>
<a class="anchor" name="1e6ae4ae5f835620d1d529df908ac5e3"></a><!-- doxytag: member="packed_rrset.h::packed_rrset_ptr_fixup" ref="1e6ae4ae5f835620d1d529df908ac5e3" args="(struct packed_rrset_data *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void packed_rrset_ptr_fixup           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structpacked__rrset__data.html">packed_rrset_data</a> *&nbsp;</td>
          <td class="paramname"> <em>data</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fixup pointers in fixed data <a class="el" href="structpacked__rrset__data.html" title="RRset data.">packed_rrset_data</a> blob. 
<p>
After a memcpy of the data for example. Will set internal pointers right. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data,:</em>&nbsp;</td><td>rrset data structure. Otherwise correctly filled in. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="packed__rrset_8h_source.html#l00211">packed_rrset_data::count</a>, <a class="el" href="packed__rrset_8h_source.html#l00229">packed_rrset_data::rr_data</a>, <a class="el" href="packed__rrset_8h_source.html#l00219">packed_rrset_data::rr_len</a>, <a class="el" href="packed__rrset_8h_source.html#l00221">packed_rrset_data::rr_ttl</a>, and <a class="el" href="packed__rrset_8h_source.html#l00213">packed_rrset_data::rrsig_count</a>.</p>

<p>Referenced by <a class="el" href="val__kentry_8c_source.html#l00136">key_entry_copy()</a>, <a class="el" href="val__kentry_8c_source.html#l00103">key_entry_copy_toregion()</a>, <a class="el" href="val__kentry_8c_source.html#l00240">key_entry_create_rrset()</a>, <a class="el" href="val__kentry_8c_source.html#l00277">key_entry_get_rrset()</a>, <a class="el" href="cachedump_8c_source.html#l00458">move_into_cache()</a>, <a class="el" href="packed__rrset_8c_source.html#l00268">packed_rrset_copy_region()</a>, <a class="el" href="validator_8c_source.html#l02453">process_dlv_response()</a>, <a class="el" href="msgreply_8c_source.html#l00617">repinfo_copy_rrsets()</a>, and <a class="el" href="dns_8c_source.html#l00498">synth_dname_msg()</a>.</p>

</div>
</div><p>
<a class="anchor" name="bf6bc2b97e77f3404f1c1fa35f79aaad"></a><!-- doxytag: member="packed_rrset.h::packed_rrset_ttl_add" ref="bf6bc2b97e77f3404f1c1fa35f79aaad" args="(struct packed_rrset_data *data, uint32_t add)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void packed_rrset_ttl_add           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structpacked__rrset__data.html">packed_rrset_data</a> *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>add</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fixup TTLs in fixed data <a class="el" href="structpacked__rrset__data.html" title="RRset data.">packed_rrset_data</a> blob. 
<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>data,:</em>&nbsp;</td><td>rrset data structure. Otherwise correctly filled in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>add,:</em>&nbsp;</td><td>how many seconds to add, pass time(0) for example. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="packed__rrset_8h_source.html#l00211">packed_rrset_data::count</a>, <a class="el" href="packed__rrset_8h_source.html#l00221">packed_rrset_data::rr_ttl</a>, <a class="el" href="packed__rrset_8h_source.html#l00213">packed_rrset_data::rrsig_count</a>, and <a class="el" href="packed__rrset_8h_source.html#l00209">packed_rrset_data::ttl</a>.</p>

<p>Referenced by <a class="el" href="dns_8c_source.html#l00668">dns_cache_store()</a>, and <a class="el" href="iter__scrub_8c_source.html#l00496">store_rrset()</a>.</p>

</div>
</div><p>
<a class="anchor" name="40ac55ec4a9e9422da08b203e3f8fa87"></a><!-- doxytag: member="packed_rrset.h::get_cname_target" ref="40ac55ec4a9e9422da08b203e3f8fa87" args="(struct ub_packed_rrset_key *rrset, uint8_t **dname, size_t *dname_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void get_cname_target           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structub__packed__rrset__key.html">ub_packed_rrset_key</a> *&nbsp;</td>
          <td class="paramname"> <em>rrset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t **&nbsp;</td>
          <td class="paramname"> <em>dname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>dname_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Utility procedure to extract CNAME target name from its rdata. 
<p>
Failsafes; it will change passed dname to a valid dname or do nothing. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>rrset,:</em>&nbsp;</td><td>the rrset structure. Must be a CNAME. Only first RR is used (multiple RRs are technically illegal anyway). Also works on type DNAME. Returns target name. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dname,:</em>&nbsp;</td><td>this pointer is updated to point into the cname rdata. If a failsafe fails, nothing happens to the pointer (such as the rdata was not a valid dname, not a CNAME, ...). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dname_len,:</em>&nbsp;</td><td>length of dname is returned. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="packed__rrset_8h_source.html#l00211">packed_rrset_data::count</a>, <a class="el" href="lruhash_8h_source.html#l00222">lruhash_entry::data</a>, <a class="el" href="dname_8c_source.html#l00072">dname_valid()</a>, <a class="el" href="packed__rrset_8h_source.html#l00094">ub_packed_rrset_key::entry</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#l00229">packed_rrset_data::rr_data</a>, <a class="el" href="packed__rrset_8h_source.html#l00219">packed_rrset_data::rr_len</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#l00394">handle_cname_response()</a>, <a class="el" href="msgreply_8c_source.html#l00795">reply_check_cname_chain()</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="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#l00498">synth_dname_msg()</a>, and <a class="el" href="val__utils_8c_source.html#l00548">val_chase_cname()</a>.</p>

</div>
</div><p>
<a class="anchor" name="200a1e47bd6cc4c2cf502a7623b3da35"></a><!-- doxytag: member="packed_rrset.h::rrset_trust_to_string" ref="200a1e47bd6cc4c2cf502a7623b3da35" args="(enum rrset_trust s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* rrset_trust_to_string           </td>
          <td>(</td>
          <td class="paramtype">enum <a class="el" href="packed__rrset_8h.html#9a48f0ff3c7054fbcbe7f81c06ab7ac0">rrset_trust</a>&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a printable string for a rrset trust value. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s,:</em>&nbsp;</td><td>rrset trust value </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>printable string. </dd></dl>

<p>References <a class="el" href="packed__rrset_8h_source.html#l00129">rrset_trust_add_AA</a>, <a class="el" href="packed__rrset_8h_source.html#l00125">rrset_trust_add_noAA</a>, <a class="el" href="packed__rrset_8h_source.html#l00141">rrset_trust_ans_AA</a>, <a class="el" href="packed__rrset_8h_source.html#l00134">rrset_trust_ans_noAA</a>, <a class="el" href="packed__rrset_8h_source.html#l00138">rrset_trust_auth_AA</a>, <a class="el" href="packed__rrset_8h_source.html#l00127">rrset_trust_auth_noAA</a>, <a class="el" href="packed__rrset_8h_source.html#l00136">rrset_trust_glue</a>, <a class="el" href="packed__rrset_8h_source.html#l00132">rrset_trust_nonauth_ans_AA</a>, <a class="el" href="packed__rrset_8h_source.html#l00123">rrset_trust_none</a>, <a class="el" href="packed__rrset_8h_source.html#l00145">rrset_trust_prim_noglue</a>, <a class="el" href="packed__rrset_8h_source.html#l00143">rrset_trust_sec_noglue</a>, <a class="el" href="packed__rrset_8h_source.html#l00150">rrset_trust_ultimate</a>, and <a class="el" href="packed__rrset_8h_source.html#l00147">rrset_trust_validated</a>.</p>

</div>
</div><p>
<a class="anchor" name="a5a92cfb211ea7321b61cff912cb2bf7"></a><!-- doxytag: member="packed_rrset.h::sec_status_to_string" ref="a5a92cfb211ea7321b61cff912cb2bf7" args="(enum sec_status s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* sec_status_to_string           </td>
          <td>(</td>
          <td class="paramtype">enum <a class="el" href="packed__rrset_8h.html#ecbbb9607758922722abc9a49d1097bb">sec_status</a>&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a printable string for a security status value. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s,:</em>&nbsp;</td><td>security status </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>printable string. </dd></dl>

<p>References <a class="el" href="packed__rrset_8h_source.html#l00162">sec_status_bogus</a>, <a class="el" href="packed__rrset_8h_source.html#l00166">sec_status_indeterminate</a>, <a class="el" href="packed__rrset_8h_source.html#l00170">sec_status_insecure</a>, <a class="el" href="packed__rrset_8h_source.html#l00173">sec_status_secure</a>, and <a class="el" href="packed__rrset_8h_source.html#l00159">sec_status_unchecked</a>.</p>

<p>Referenced by <a class="el" href="validator_8c_source.html#l00303">already_validated()</a>, <a class="el" href="validator_8c_source.html#l02045">primeResponseToKE()</a>, <a class="el" href="validator_8c_source.html#l02453">process_dlv_response()</a>, <a class="el" href="validator_8c_source.html#l01442">processValidate()</a>, <a class="el" href="val__utils_8c_source.html#l00305">val_verify_rrset()</a>, <a class="el" href="validator_8c_source.html#l00715">validate_nameerror_response()</a>, <a class="el" href="validator_8c_source.html#l00785">validate_referral_response()</a>, and <a class="el" href="unitverify_8c_source.html#l00153">verifytest_rrset()</a>.</p>

</div>
</div><p>
<a class="anchor" name="df7e64e607b7345f4768147212309985"></a><!-- doxytag: member="packed_rrset.h::packed_rrset_copy_region" ref="df7e64e607b7345f4768147212309985" args="(struct ub_packed_rrset_key *key, struct regional *region, uint32_t now)" -->
<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>* packed_rrset_copy_region           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structub__packed__rrset__key.html">ub_packed_rrset_key</a> *&nbsp;</td>
          <td class="paramname"> <em>key</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>region</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>now</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 rrset in region - no more locks needed. 
<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>key,:</em>&nbsp;</td><td>a (just from rrset cache looked up) rrset key + valid, packed data record. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>region,:</em>&nbsp;</td><td>where to alloc the copy </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>now,:</em>&nbsp;</td><td>adjust the TTLs to be relative (subtract from all TTLs). </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>new region-alloced rrset key or NULL on alloc failure. </dd></dl>

<p>References <a class="el" href="packed__rrset_8h_source.html#l00211">packed_rrset_data::count</a>, <a class="el" href="lruhash_8h_source.html#l00222">lruhash_entry::data</a>, <a class="el" href="packed__rrset_8h_source.html#l00064">packed_rrset_key::dname</a>, <a class="el" href="packed__rrset_8h_source.html#l00068">packed_rrset_key::dname_len</a>, <a class="el" href="packed__rrset_8h_source.html#l00094">ub_packed_rrset_key::entry</a>, <a class="el" href="lruhash_8h_source.html#l00218">lruhash_entry::hash</a>, <a class="el" href="packed__rrset_8h_source.html#l00103">ub_packed_rrset_key::id</a>, <a class="el" href="lruhash_8h_source.html#l00220">lruhash_entry::key</a>, <a class="el" href="packed__rrset_8c_source.html#l00175">packed_rrset_ptr_fixup()</a>, <a class="el" href="packed__rrset_8c_source.html#l00077">packed_rrset_sizeof()</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="packed__rrset_8h_source.html#l00105">ub_packed_rrset_key::rk</a>, <a class="el" href="packed__rrset_8h_source.html#l00221">packed_rrset_data::rr_ttl</a>, <a class="el" href="packed__rrset_8h_source.html#l00213">packed_rrset_data::rrsig_count</a>, and <a class="el" href="packed__rrset_8h_source.html#l00209">packed_rrset_data::ttl</a>.</p>

<p>Referenced by <a class="el" href="dns_8c_source.html#l00136">addr_to_additional()</a>, <a class="el" href="dns_8c_source.html#l00336">dns_msg_authadd()</a>, <a class="el" href="dns_8c_source.html#l00274">find_add_ds()</a>, <a class="el" href="val__neg_8c_source.html#l01113">grab_nsec()</a>, <a class="el" href="cachedump_8c_source.html#l00656">load_ref()</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>, and <a class="el" href="dns_8c_source.html#l00422">tomsg()</a>.</p>

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