<!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 Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Data 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 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> * </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"> </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> </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"> </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> * </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"> </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> * </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"> </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> * </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"> </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 </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"> </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> * </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"> </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> * </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"> </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> * </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </td><td class="mdescRight">check if middle lays in the interval defined by prev and next prev <= middle < next. <a href="#aa60c1e59963ef052fe211949032baace"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </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"> </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> * </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"> </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> * </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> * </td> <td class="paramname"><em>rd2</em> </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> * </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> * </td> <td class="paramname"><em>rd2</em> </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> * </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> * </td> <td class="paramname"><em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint16_t </td> <td class="paramname"><em>n</em> </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 >= 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> * </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> * </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 </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>data</em> </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 * </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 </td> <td class="paramname"><em>size</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const void * </td> <td class="paramname"><em>data</em> </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> * </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> * </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> * </td> <td class="paramname"><em>parent</em> </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> * </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> * </td> <td class="paramname"><em>dname2</em> </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> * </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> * </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> * </td> <td class="paramname"><em>wildcard</em> </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> * </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> * </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> * </td> <td class="paramname"><em>next</em> </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 <= middle < 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 * </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> * </td> <td class="paramname"><em>rdf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint8_t </td> <td class="paramname"><em>labelpos</em> </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  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>