Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > e3a718fcad37ff363f65d6a6e994e272 > files > 64

ldns-devel-1.6.12-1.fc15.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type"
content="text/html;charset=iso-8859-1">
<title>ldns documentation</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div class="logo">
<img src="LogoInGradientBar2-y100.png"/>
</div>
<!-- Generated by Doxygen 1.7.4 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;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 id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">dname.c File Reference</div>  </div>
</div>
<div class="contents">

<p><a href="dname_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#a216c2af6beeedff58f9275fcb420fbde">ldns_dname_cat_clone</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *rd1, const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *rd2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">concatenates two dnames together  <a href="#a216c2af6beeedff58f9275fcb420fbde"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#a8cca5c83c1eb85f9697c20978da31592">ldns_dname_cat</a> (<a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *rd1, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *rd2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">concatenates rd2 after rd1 (rd2 is copied, rd1 is modified)  <a href="#a8cca5c83c1eb85f9697c20978da31592"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#a5fe17a6b657bca88b134c228671ea36c">ldns_dname_reverse</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *d)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a clone of the given dname with the labels reversed.  <a href="#a5fe17a6b657bca88b134c228671ea36c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#a474f7f019180b294da551d00a111149e">ldns_dname_clone_from</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *d, uint16_t n)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clones the given dname from the nth label on.  <a href="#a474f7f019180b294da551d00a111149e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#aa2b0413896e1c06fd2cc685d4026d8ac">ldns_dname_left_chop</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *d)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">chop one label off the left side of a dname.  <a href="#aa2b0413896e1c06fd2cc685d4026d8ac"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#add94977e68ceab64921e9ae69cd92ef3">ldns_dname_label_count</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *r)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">count the number of labels inside a LDNS_RDF_DNAME type rdf.  <a href="#add94977e68ceab64921e9ae69cd92ef3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#ab2fbb24f06efc24933c0fb3ee453933d">ldns_dname_new</a> (uint16_t s, void *d)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new dname rdf from a string.  <a href="#ab2fbb24f06efc24933c0fb3ee453933d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#af4963d4ae086b1d77a58c6f757a00462">ldns_dname_new_frm_str</a> (const char *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">creates a new dname rdf from a string.  <a href="#af4963d4ae086b1d77a58c6f757a00462"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#a27f7af7725d4eb5fc54c50e10c1ba88f">ldns_dname_new_frm_data</a> (uint16_t size, const void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new dname rdf from data (the data is copied)  <a href="#a27f7af7725d4eb5fc54c50e10c1ba88f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#a86a798d6401b11e85d4592b1609ffd8f">ldns_dname2canonical</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *rd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Put a dname into canonical fmt - ie.  <a href="#a86a798d6401b11e85d4592b1609ffd8f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#a6caadb8042c9cf755d3d5defcfbd44eb">ldns_dname_is_subdomain</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *sub, const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *parent)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">test wether the name sub falls under parent (i.e.  <a href="#a6caadb8042c9cf755d3d5defcfbd44eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#a6faaee00444aad0fde1c672216e5a8b7">ldns_dname_compare</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *dname1, const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *dname2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares the two dname rdf's according to the algorithm for ordering in RFC4034 Section 6.  <a href="#a6faaee00444aad0fde1c672216e5a8b7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#a0f7736b29e88e9513fb42f0edd3e7d25">ldns_dname_is_wildcard</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *dname)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if dname is a wildcard, starts with *.  <a href="#a0f7736b29e88e9513fb42f0edd3e7d25"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#a34b0d6a4a5026094605f0b7e7427c803">ldns_dname_match_wildcard</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *dname, const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *wildcard)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the dname matches the given wildcard.  <a href="#a34b0d6a4a5026094605f0b7e7427c803"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#aa60c1e59963ef052fe211949032baace">ldns_dname_interval</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *prev, const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *middle, const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *next)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">check if middle lays in the interval defined by prev and next prev &lt;= middle &lt; next.  <a href="#aa60c1e59963ef052fe211949032baace"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#a00b0d6d05c70e4e2f5e6193c8ed6f430">ldns_dname_str_absolute</a> (const char *dname_str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the given dname string is absolute (i.e.  <a href="#a00b0d6d05c70e4e2f5e6193c8ed6f430"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8c.html#aee5c4a1b633f7c41d8788610bb2369a8">ldns_dname_label</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *rdf, uint8_t labelpos)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">look inside the rdf and if it is an LDNS_RDF_TYPE_DNAME try and retrieve a specific label.  <a href="#aee5c4a1b633f7c41d8788610bb2369a8"></a><br/></td></tr>
</table>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a216c2af6beeedff58f9275fcb420fbde"></a><!-- doxytag: member="dname.c::ldns_dname_cat_clone" ref="a216c2af6beeedff58f9275fcb420fbde" args="(const ldns_rdf *rd1, const ldns_rdf *rd2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_dname_cat_clone </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>rd1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>rd2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>concatenates two dnames together </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rd1</td><td>the leftside </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rd2</td><td>the rightside </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a new rdf with leftside/rightside </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00034">34</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, <a class="el" href="rdata_8c_source.html#l00031">ldns_rdf_get_type()</a>, <a class="el" href="rdata_8c_source.html#l00193">ldns_rdf_new_frm_data()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>, and <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="a8cca5c83c1eb85f9697c20978da31592"></a><!-- doxytag: member="dname.c::ldns_dname_cat" ref="a8cca5c83c1eb85f9697c20978da31592" args="(ldns_rdf *rd1, ldns_rdf *rd2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> ldns_dname_cat </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>rd1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>rd2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>concatenates rd2 after rd1 (rd2 is copied, rd1 is modified) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rd1</td><td>the leftside </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rd2</td><td>the rightside </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>LDNS_STATUS_OK on success </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00072">72</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, <a class="el" href="rdata_8c_source.html#l00031">ldns_rdf_get_type()</a>, <a class="el" href="rdata_8c_source.html#l00060">ldns_rdf_set_data()</a>, <a class="el" href="rdata_8c_source.html#l00046">ldns_rdf_set_size()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>, <a class="el" href="error_8h_source.html#l00037">LDNS_STATUS_ERR</a>, <a class="el" href="error_8h_source.html#l00034">LDNS_STATUS_MEM_ERR</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, and <a class="el" href="util_8h_source.html#l00057">LDNS_XREALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="a5fe17a6b657bca88b134c228671ea36c"></a><!-- doxytag: member="dname.c::ldns_dname_reverse" ref="a5fe17a6b657bca88b134c228671ea36c" args="(const ldns_rdf *d)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_dname_reverse </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>d</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a clone of the given dname with the labels reversed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">d</td><td>the dname to reverse </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>clone of the dname with the labels reversed. </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00109">109</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="dname_8c_source.html#l00072">ldns_dname_cat()</a>, <a class="el" href="dname_8c_source.html#l00526">ldns_dname_label()</a>, <a class="el" href="dname_8c_source.html#l00196">ldns_dname_label_count()</a>, <a class="el" href="dname_8c_source.html#l00171">ldns_dname_left_chop()</a>, <a class="el" href="dname_8c_source.html#l00247">ldns_dname_new_frm_str()</a>, <a class="el" href="rdata_8c_source.html#l00222">ldns_rdf_clone()</a>, <a class="el" href="rdata_8c_source.html#l00230">ldns_rdf_deep_free()</a>, and <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>.</p>

</div>
</div>
<a class="anchor" id="a474f7f019180b294da551d00a111149e"></a><!-- doxytag: member="dname.c::ldns_dname_clone_from" ref="a474f7f019180b294da551d00a111149e" args="(const ldns_rdf *d, uint16_t n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_dname_clone_from </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clones the given dname from the nth label on. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">d</td><td>The dname to clone </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>the label nr to clone from, if this is 0, the complete dname is cloned </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A newly allocated *rdf structure, containing the cloned dname, or NULL if either d was NULL, not a dname, or if n &gt;= label_count </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00142">142</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="dname_8c_source.html#l00196">ldns_dname_label_count()</a>, <a class="el" href="dname_8c_source.html#l00253">ldns_dname_new_frm_data()</a>, <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, <a class="el" href="rdata_8c_source.html#l00031">ldns_rdf_get_type()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, and <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>.</p>

</div>
</div>
<a class="anchor" id="aa2b0413896e1c06fd2cc685d4026d8ac"></a><!-- doxytag: member="dname.c::ldns_dname_left_chop" ref="aa2b0413896e1c06fd2cc685d4026d8ac" args="(const ldns_rdf *d)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_dname_left_chop </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>d</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>chop one label off the left side of a dname. </p>
<p>so wwww.nlnetlabs.nl, becomes nlnetlabs.nl This new name is a clone and must be freed with ldns_deep_free() </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">d</td><td>the dname to chop </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the remaining dname </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00171">171</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="dname_8c_source.html#l00196">ldns_dname_label_count()</a>, <a class="el" href="dname_8c_source.html#l00253">ldns_dname_new_frm_data()</a>, <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, <a class="el" href="rdata_8c_source.html#l00031">ldns_rdf_get_type()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, and <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>.</p>

</div>
</div>
<a class="anchor" id="add94977e68ceab64921e9ae69cd92ef3"></a><!-- doxytag: member="dname.c::ldns_dname_label_count" ref="add94977e68ceab64921e9ae69cd92ef3" args="(const ldns_rdf *r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t ldns_dname_label_count </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>r</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>count the number of labels inside a LDNS_RDF_DNAME type rdf. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*r</td><td>the rdf </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of labels </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00196">196</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, <a class="el" href="rdata_8c_source.html#l00031">ldns_rdf_get_type()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, and <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>.</p>

</div>
</div>
<a class="anchor" id="ab2fbb24f06efc24933c0fb3ee453933d"></a><!-- doxytag: member="dname.c::ldns_dname_new" ref="ab2fbb24f06efc24933c0fb3ee453933d" args="(uint16_t s, void *d)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_dname_new </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new dname rdf from a string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>the size of the new dname </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*data</td><td>pointer to the actual data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>ldns_rdf* </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00232">232</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00049">LDNS_MALLOC</a>, <a class="el" href="rdata_8c_source.html#l00060">ldns_rdf_set_data()</a>, <a class="el" href="rdata_8c_source.html#l00046">ldns_rdf_set_size()</a>, <a class="el" href="rdata_8c_source.html#l00053">ldns_rdf_set_type()</a>, and <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>.</p>

</div>
</div>
<a class="anchor" id="af4963d4ae086b1d77a58c6f757a00462"></a><!-- doxytag: member="dname.c::ldns_dname_new_frm_str" ref="af4963d4ae086b1d77a58c6f757a00462" args="(const char *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_dname_new_frm_str </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>creates a new dname rdf from a string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">str</td><td>string to use </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>ldns_rdf* or NULL in case of an error </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00247">247</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="rdata_8c_source.html#l00249">ldns_rdf_new_frm_str()</a>, and <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>.</p>

</div>
</div>
<a class="anchor" id="a27f7af7725d4eb5fc54c50e10c1ba88f"></a><!-- doxytag: member="dname.c::ldns_dname_new_frm_data" ref="a27f7af7725d4eb5fc54c50e10c1ba88f" args="(uint16_t size, const void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_dname_new_frm_data </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new dname rdf from data (the data is copied) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>the size of the data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*data</td><td>pointer to the actual data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>ldns_rdf* </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00253">253</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="rdata_8c_source.html#l00193">ldns_rdf_new_frm_data()</a>, and <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>.</p>

</div>
</div>
<a class="anchor" id="a86a798d6401b11e85d4592b1609ffd8f"></a><!-- doxytag: member="dname.c::ldns_dname2canonical" ref="a86a798d6401b11e85d4592b1609ffd8f" args="(const ldns_rdf *rd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ldns_dname2canonical </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>rdf</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Put a dname into canonical fmt - ie. </p>
<p>lowercase it </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rdf</td><td>the dname to lowercase </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00259">259</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="dname_8h_source.html#l00049">LDNS_DNAME_NORMALIZE</a>, <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, <a class="el" href="rdata_8c_source.html#l00031">ldns_rdf_get_type()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, and <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>.</p>

</div>
</div>
<a class="anchor" id="a6caadb8042c9cf755d3d5defcfbd44eb"></a><!-- doxytag: member="dname.c::ldns_dname_is_subdomain" ref="a6caadb8042c9cf755d3d5defcfbd44eb" args="(const ldns_rdf *sub, const ldns_rdf *parent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ldns_dname_is_subdomain </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>sub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>parent</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>test wether the name sub falls under parent (i.e. </p>
<p>is a subdomain of parent). This function will return false if the given dnames are equal. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sub</td><td>the name to test </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">parent</td><td>the parent's name </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if sub falls under parent, otherwise false </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00275">275</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="dname_8c_source.html#l00259">ldns_dname2canonical()</a>, <a class="el" href="dname_8c_source.html#l00142">ldns_dname_clone_from()</a>, <a class="el" href="dname_8c_source.html#l00526">ldns_dname_label()</a>, <a class="el" href="dname_8c_source.html#l00196">ldns_dname_label_count()</a>, <a class="el" href="rdata_8c_source.html#l00569">ldns_rdf_compare()</a>, <a class="el" href="rdata_8c_source.html#l00230">ldns_rdf_deep_free()</a>, <a class="el" href="rdata_8c_source.html#l00031">ldns_rdf_get_type()</a>, and <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>.</p>

</div>
</div>
<a class="anchor" id="a6faaee00444aad0fde1c672216e5a8b7"></a><!-- doxytag: member="dname.c::ldns_dname_compare" ref="a6faaee00444aad0fde1c672216e5a8b7" args="(const ldns_rdf *dname1, const ldns_rdf *dname2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_dname_compare </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>dname1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>dname2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compares the two dname rdf's according to the algorithm for ordering in RFC4034 Section 6. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">dname1</td><td>First dname rdf to compare </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dname2</td><td>Second dname rdf to compare </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>-1 if dname1 comes before dname2, 1 if dname1 comes after dname2, and 0 if they are equal. </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00338">338</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="dname_8c_source.html#l00196">ldns_dname_label_count()</a>, <a class="el" href="dname_8h_source.html#l00049">LDNS_DNAME_NORMALIZE</a>, <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, <a class="el" href="rdata_8c_source.html#l00031">ldns_rdf_get_type()</a>, and <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>.</p>

</div>
</div>
<a class="anchor" id="a0f7736b29e88e9513fb42f0edd3e7d25"></a><!-- doxytag: member="dname.c::ldns_dname_is_wildcard" ref="a0f7736b29e88e9513fb42f0edd3e7d25" args="(const ldns_rdf *dname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_dname_is_wildcard </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>dname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check if dname is a wildcard, starts with *. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">dname,:</td><td>the rdf to look in </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if a wildcard, false if not. </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00435">435</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="dname_8c_source.html#l00196">ldns_dname_label_count()</a>, and <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>.</p>

</div>
</div>
<a class="anchor" id="a34b0d6a4a5026094605f0b7e7427c803"></a><!-- doxytag: member="dname.c::ldns_dname_match_wildcard" ref="a34b0d6a4a5026094605f0b7e7427c803" args="(const ldns_rdf *dname, const ldns_rdf *wildcard)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_dname_match_wildcard </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>dname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>wildcard</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether the dname matches the given wildcard. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">dname</td><td>The dname to check </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">wildcard</td><td>The wildcard to check with </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 If the wildcard matches, OR if 'wildcard' is not a wildcard and the names are *exactly* the same 0 If the wildcard does not match, or if it is not a wildcard and the names are not the same </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00443">443</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="dname_8c_source.html#l00338">ldns_dname_compare()</a>, <a class="el" href="dname_8c_source.html#l00275">ldns_dname_is_subdomain()</a>, <a class="el" href="dname_8c_source.html#l00435">ldns_dname_is_wildcard()</a>, <a class="el" href="dname_8c_source.html#l00171">ldns_dname_left_chop()</a>, and <a class="el" href="rdata_8c_source.html#l00230">ldns_rdf_deep_free()</a>.</p>

</div>
</div>
<a class="anchor" id="aa60c1e59963ef052fe211949032baace"></a><!-- doxytag: member="dname.c::ldns_dname_interval" ref="aa60c1e59963ef052fe211949032baace" args="(const ldns_rdf *prev, const ldns_rdf *middle, const ldns_rdf *next)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_dname_interval </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>prev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>middle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>next</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>check if middle lays in the interval defined by prev and next prev &lt;= middle &lt; next. </p>
<p>This is usefull for nsec checking </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">prev</td><td>the previous dname </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">middle</td><td>the dname to check </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">next</td><td>the next dname return 0 on error or unknown, -1 when middle is in the interval, +1 when not </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00467">467</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="dname_8c_source.html#l00338">ldns_dname_compare()</a>, <a class="el" href="rdata_8c_source.html#l00031">ldns_rdf_get_type()</a>, and <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>.</p>

</div>
</div>
<a class="anchor" id="a00b0d6d05c70e4e2f5e6193c8ed6f430"></a><!-- doxytag: member="dname.c::ldns_dname_str_absolute" ref="a00b0d6d05c70e4e2f5e6193c8ed6f430" args="(const char *dname_str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ldns_dname_str_absolute </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dname_str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether the given dname string is absolute (i.e. </p>
<p>ends with a '.') </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*dname_str</td><td>a string representing the dname </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true or false </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00497">497</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

</div>
</div>
<a class="anchor" id="aee5c4a1b633f7c41d8788610bb2369a8"></a><!-- doxytag: member="dname.c::ldns_dname_label" ref="aee5c4a1b633f7c41d8788610bb2369a8" args="(const ldns_rdf *rdf, uint8_t labelpos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_dname_label </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>rdf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>labelpos</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>look inside the rdf and if it is an LDNS_RDF_TYPE_DNAME try and retrieve a specific label. </p>
<p>The labels are numbered starting from 0 (left most). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rdf</td><td>the rdf to look in </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">labelpos</td><td>return the label with this number </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a ldns_rdf* with the label as name or NULL on error </dd></dl>

<p>Definition at line <a class="el" href="dname_8c_source.html#l00526">526</a> of file <a class="el" href="dname_8c_source.html">dname.c</a>.</p>

<p>References <a class="el" href="rdata_8h_source.html#l00145">ldns_struct_rdf::_data</a>, <a class="el" href="rdata_8h_source.html#l00141">ldns_struct_rdf::_size</a>, <a class="el" href="rdata_8h_source.html#l00143">ldns_struct_rdf::_type</a>, <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="util_8h_source.html#l00049">LDNS_MALLOC</a>, <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, <a class="el" href="rdata_8c_source.html#l00031">ldns_rdf_get_type()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, <a class="el" href="rdata_8h_source.html#l00049">LDNS_RDF_TYPE_DNAME</a>, and <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>.</p>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Wed Jan 11 2012 for ldns by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>