Sophie

Sophie

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

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 id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="dir_7a7a565456b510ac01baf8655647d8a2.html">ldns</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">dname.h File Reference</div>  </div>
</div>
<div class="contents">

<p>dname contains function to read and manipulate domain names.  
<a href="#details">More...</a></p>

<p><a href="dname_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8h.html#ae9ea4a6bb05de529f2c60d452f76f48f">LDNS_DNAME_NORMALIZE</a>&#160;&#160;&#160;tolower</td></tr>
<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_8h.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_8h.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_8h.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_8h.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_8h.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_8h.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_8h.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_8h.html#ab5c122793ea42c505994a577e970bd4c">ldns_dname_new</a> (uint16_t s, void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new dname rdf from a string.  <a href="#ab5c122793ea42c505994a577e970bd4c"></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_8h.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_8h.html#aab93b3e88152119737f42d624fd34795">ldns_dname2canonical</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *rdf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Put a dname into canonical fmt - ie.  <a href="#aab93b3e88152119737f42d624fd34795"></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_8h.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_8h.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_8h.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_8h.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_8h.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_8h.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>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dname_8h.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>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>dname contains function to read and manipulate domain names. </p>
<p>Example domain names are "www.nlnetlabs.nl." and "." (the root)</p>
<p>If a domain name ends with a dot ("."), it is called a Fully Qualified Domain Name (FQDN). In certain places (for instance when reading a zone file), an origin (which is just another domain name) non-FQDNs will be placed after the current. For instance, if i have a zone file where the origin has been set to "nl.", and my file contains the name "www.nlnetlabs", it will result in "www.nlnetlabs.nl.". Internally, dnames are always absolute (the dot is added when it is missing and there is no origin).</p>
<p>An FQDN is also known as an absolute domain name, therefore the function to check this is called <a class="el" href="dname_8h.html#a00b0d6d05c70e4e2f5e6193c8ed6f430">ldns_dname_str_absolute</a></p>
<p>Domain names are stored in <a class="el" href="rdata_8h.html#adb9c97875196c13e6d1996ae0fd17f86">ldns_rdf</a> structures, with the type <a class="el" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a72cb73467bcbfbb41168e2a2b4a8283a">LDNS_RDF_TYPE_DNAME</a></p>
<p>This module is *NOT* about the RR type called DNAME. </p>

<p>Definition in file <a class="el" href="dname_8h_source.html">dname.h</a>.</p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="ae9ea4a6bb05de529f2c60d452f76f48f"></a><!-- doxytag: member="dname.h::LDNS_DNAME_NORMALIZE" ref="ae9ea4a6bb05de529f2c60d452f76f48f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_DNAME_NORMALIZE&#160;&#160;&#160;tolower</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dname_8h_source.html#l00049">49</a> of file <a class="el" href="dname_8h_source.html">dname.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a216c2af6beeedff58f9275fcb420fbde"></a><!-- doxytag: member="dname.h::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.h::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.h::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.h::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.h::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.h::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="af4963d4ae086b1d77a58c6f757a00462"></a><!-- doxytag: member="dname.h::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="ab5c122793ea42c505994a577e970bd4c"></a><!-- doxytag: member="dname.h::ldns_dname_new" ref="ab5c122793ea42c505994a577e970bd4c" args="(uint16_t s, 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 </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="a27f7af7725d4eb5fc54c50e10c1ba88f"></a><!-- doxytag: member="dname.h::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="aab93b3e88152119737f42d624fd34795"></a><!-- doxytag: member="dname.h::ldns_dname2canonical" ref="aab93b3e88152119737f42d624fd34795" args="(const ldns_rdf *rdf)" -->
<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.h::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.h::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="a34b0d6a4a5026094605f0b7e7427c803"></a><!-- doxytag: member="dname.h::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.h::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.h::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.h::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>
<a class="anchor" id="a0f7736b29e88e9513fb42f0edd3e7d25"></a><!-- doxytag: member="dname.h::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>
</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>