Sophie

Sophie

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

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="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">util.c File Reference</div>  </div>
</div>
<div class="contents">

<p><a href="util_8c_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="util_8c.html#ac1618f49b289533d8f580b56046bac72">LDNS_MOD</a>(x, y)&#160;&#160;&#160;(((x) % (y) &lt; 0) ? ((x) % (y) + (y)) : ((x) % (y)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#ae2ab6f20afc9ee75e430582db23432ae">LDNS_DIV</a>(x, y)&#160;&#160;&#160;(((x) % (y) &lt; 0) ? ((x) / (y) -  1 ) : ((x) / (y)))</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#a0f955a99269b49c9c857d27d4e1ea29f">xprintf_rdf</a> (<a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *rd)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#a77646dc44a14d6353a7db138f8aaf1fe">xprintf_rr</a> (<a class="el" href="structldns__struct__rr.html">ldns_rr</a> *rr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#a0c88a8d947b8210d62fa58fc9d0e7e6d">xprintf_hex</a> (uint8_t *data, size_t len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__lookup__table.html">ldns_lookup_table</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#af8897a478378bd8d5c7d434b71b0f4f8">ldns_lookup_by_name</a> (<a class="el" href="structldns__struct__lookup__table.html">ldns_lookup_table</a> *table, const char *name)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__lookup__table.html">ldns_lookup_table</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#a42a73e82a0f0bf3ee979190b9cf81957">ldns_lookup_by_id</a> (<a class="el" href="structldns__struct__lookup__table.html">ldns_lookup_table</a> *table, int id)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#ac0cfcc1f93a2aaf7fb61804cf844faef">ldns_get_bit</a> (uint8_t bits[], size_t index)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the specified bit The bits are counted from left to right, so bit #0 is the left most bit.  <a href="#ac0cfcc1f93a2aaf7fb61804cf844faef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#a7b16da6f889d76e6653a28038a50824c">ldns_get_bit_r</a> (uint8_t bits[], size_t index)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the specified bit The bits are counted from right to left, so bit #0 is the right most bit.  <a href="#a7b16da6f889d76e6653a28038a50824c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#a2d1ca37b28b9053aedc68d9ab4c62cae">ldns_set_bit</a> (uint8_t *byte, int bit_nr, bool value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">sets the specified bit in the specified byte to 1 if value is true, 0 if false The bits are counted from right to left, so bit #0 is the right most bit.  <a href="#a2d1ca37b28b9053aedc68d9ab4c62cae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#a04593d78f06d288151bba4719704fa99">ldns_hexdigit_to_int</a> (char ch)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the int value of the given (hex) digit.  <a href="#a04593d78f06d288151bba4719704fa99"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#af756fbd794c21244c76ffc1f1e70530d">ldns_int_to_hexdigit</a> (int i)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the char (hex) representation of the given int.  <a href="#af756fbd794c21244c76ffc1f1e70530d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#a22fb80e94a21a7700835b83279e9110c">ldns_hexstring_to_data</a> (uint8_t *data, const char *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a hex string to binary data.  <a href="#a22fb80e94a21a7700835b83279e9110c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#acfa02e74a31c812d2e4ecf40915b418f">ldns_version</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Show the internal library version.  <a href="#acfa02e74a31c812d2e4ecf40915b418f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">time_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#ad4a71c049ae1e0b4849a64040a7360fa">mktime_from_utc</a> (const struct tm *tm)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert TM to seconds since epoch (midnight, January 1st, 1970).  <a href="#ad4a71c049ae1e0b4849a64040a7360fa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct tm *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#a093298fb6914785d45feb3be61597aed">ldns_serial_arithmitics_gmtime_r</a> (int32_t time, time_t now, struct tm *result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The function interprets time as the number of seconds since epoch with respect to now using serial arithmitics (rfc1982).  <a href="#a093298fb6914785d45feb3be61597aed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#aeda2f1b732e46a3e761aba81129d71e0">ldns_init_random</a> (FILE *fd, unsigned int size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Init the random source applications should call this if they need entropy data within ldns If openSSL is available, it is automatically seeded from /dev/urandom or /dev/random.  <a href="#aeda2f1b732e46a3e761aba81129d71e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#ad59e2ce028b25f1fbe8d4dbdb2a5b315">ldns_get_random</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get random number.  <a href="#ad59e2ce028b25f1fbe8d4dbdb2a5b315"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8c.html#ada923722a7a97fbb7a531cf48b977b8e">ldns_bubblebabble</a> (uint8_t *data, size_t len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode data as BubbleBabble.  <a href="#ada923722a7a97fbb7a531cf48b977b8e"></a><br/></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="ac1618f49b289533d8f580b56046bac72"></a><!-- doxytag: member="util.c::LDNS_MOD" ref="ac1618f49b289533d8f580b56046bac72" args="(x, y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_MOD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">y&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(((x) % (y) &lt; 0) ? ((x) % (y) + (y)) : ((x) % (y)))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8c_source.html#l00202">202</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

</div>
</div>
<a class="anchor" id="ae2ab6f20afc9ee75e430582db23432ae"></a><!-- doxytag: member="util.c::LDNS_DIV" ref="ae2ab6f20afc9ee75e430582db23432ae" args="(x, y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_DIV</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">y&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(((x) % (y) &lt; 0) ? ((x) / (y) -  1 ) : ((x) / (y)))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8c_source.html#l00203">203</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a0f955a99269b49c9c857d27d4e1ea29f"></a><!-- doxytag: member="util.c::xprintf_rdf" ref="a0f955a99269b49c9c857d27d4e1ea29f" args="(ldns_rdf *rd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void xprintf_rdf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>rd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8c_source.html#l00030">30</a> of file <a class="el" href="util_8c_source.html">util.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>, and <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>.</p>

</div>
</div>
<a class="anchor" id="a77646dc44a14d6353a7db138f8aaf1fe"></a><!-- doxytag: member="util.c::xprintf_rr" ref="a77646dc44a14d6353a7db138f8aaf1fe" args="(ldns_rr *rr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void xprintf_rr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__rr.html">ldns_rr</a> *&#160;</td>
          <td class="paramname"><em>rr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8c_source.html#l00040">40</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

<p>References <a class="el" href="rr_8h_source.html#l00289">ldns_struct_rr::_rdata_fields</a>, <a class="el" href="rr_8c_source.html#l00867">ldns_rr_rd_count()</a>, and <a class="el" href="util_8c_source.html#l00030">xprintf_rdf()</a>.</p>

</div>
</div>
<a class="anchor" id="a0c88a8d947b8210d62fa58fc9d0e7e6d"></a><!-- doxytag: member="util.c::xprintf_hex" ref="a0c88a8d947b8210d62fa58fc9d0e7e6d" args="(uint8_t *data, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void xprintf_hex </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8c_source.html#l00053">53</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

</div>
</div>
<a class="anchor" id="af8897a478378bd8d5c7d434b71b0f4f8"></a><!-- doxytag: member="util.c::ldns_lookup_by_name" ref="af8897a478378bd8d5c7d434b71b0f4f8" args="(ldns_lookup_table *table, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__lookup__table.html">ldns_lookup_table</a>* ldns_lookup_by_name </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__lookup__table.html">ldns_lookup_table</a> *&#160;</td>
          <td class="paramname"><em>table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8c_source.html#l00066">66</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00158">ldns_struct_lookup_table::name</a>.</p>

</div>
</div>
<a class="anchor" id="a42a73e82a0f0bf3ee979190b9cf81957"></a><!-- doxytag: member="util.c::ldns_lookup_by_id" ref="a42a73e82a0f0bf3ee979190b9cf81957" args="(ldns_lookup_table *table, int id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__lookup__table.html">ldns_lookup_table</a>* ldns_lookup_by_id </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__lookup__table.html">ldns_lookup_table</a> *&#160;</td>
          <td class="paramname"><em>table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>id</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8c_source.html#l00077">77</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00157">ldns_struct_lookup_table::id</a>, and <a class="el" href="util_8h_source.html#l00158">ldns_struct_lookup_table::name</a>.</p>

</div>
</div>
<a class="anchor" id="ac0cfcc1f93a2aaf7fb61804cf844faef"></a><!-- doxytag: member="util.c::ldns_get_bit" ref="ac0cfcc1f93a2aaf7fb61804cf844faef" args="(uint8_t bits[], size_t index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_get_bit </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>bits</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the value of the specified bit The bits are counted from left to right, so bit #0 is the left most bit. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bits</td><td>array holding the bits </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>to the wanted bit </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>

<p>Definition at line <a class="el" href="util_8c_source.html#l00088">88</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

</div>
</div>
<a class="anchor" id="a7b16da6f889d76e6653a28038a50824c"></a><!-- doxytag: member="util.c::ldns_get_bit_r" ref="a7b16da6f889d76e6653a28038a50824c" args="(uint8_t bits[], size_t index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_get_bit_r </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>bits</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the value of the specified bit The bits are counted from right to left, so bit #0 is the right most bit. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bits</td><td>array holding the bits </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>to the wanted bit </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 or 0 depending no the bit state </dd></dl>

<p>Definition at line <a class="el" href="util_8c_source.html#l00098">98</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

</div>
</div>
<a class="anchor" id="a2d1ca37b28b9053aedc68d9ab4c62cae"></a><!-- doxytag: member="util.c::ldns_set_bit" ref="a2d1ca37b28b9053aedc68d9ab4c62cae" args="(uint8_t *byte, int bit_nr, bool value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ldns_set_bit </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>byte</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bit_nr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>sets the specified bit in the specified byte to 1 if value is true, 0 if false The bits are counted from right to left, so bit #0 is the right most bit. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">byte</td><td>the bit to set the bit in </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bit_nr</td><td>the bit to set (0 &lt;= n &lt;= 7) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>whether to set the bit to 1 or 0 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 or 0 depending no the bit state </dd></dl>

<p>Definition at line <a class="el" href="util_8c_source.html#l00108">108</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

</div>
</div>
<a class="anchor" id="a04593d78f06d288151bba4719704fa99"></a><!-- doxytag: member="util.c::ldns_hexdigit_to_int" ref="a04593d78f06d288151bba4719704fa99" args="(char ch)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_hexdigit_to_int </td>
          <td>(</td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>ch</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the int value of the given (hex) digit. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ch</td><td>the hex char to convert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the converted decimal value </dd></dl>

<p>Definition at line <a class="el" href="util_8c_source.html#l00120">120</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

</div>
</div>
<a class="anchor" id="af756fbd794c21244c76ffc1f1e70530d"></a><!-- doxytag: member="util.c::ldns_int_to_hexdigit" ref="af756fbd794c21244c76ffc1f1e70530d" args="(int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char ldns_int_to_hexdigit </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ch</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the char (hex) representation of the given int. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ch</td><td>the int to convert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the converted hex char </dd></dl>

<p>Definition at line <a class="el" href="util_8c_source.html#l00145">145</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

</div>
</div>
<a class="anchor" id="a22fb80e94a21a7700835b83279e9110c"></a><!-- doxytag: member="util.c::ldns_hexstring_to_data" ref="a22fb80e94a21a7700835b83279e9110c" args="(uint8_t *data, const char *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_hexstring_to_data </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts a hex string to binary data. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>The binary result is placed here. At least strlen(str)/2 bytes should be allocated </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">str</td><td>The hex string to convert. This string should not contain spaces </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of bytes of converted data, or -1 if one of the arguments * is NULL, or -2 if the string length is not an even number </dd></dl>

<p>Definition at line <a class="el" href="util_8c_source.html#l00170">170</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

<p>References <a class="el" href="util_8c_source.html#l00120">ldns_hexdigit_to_int()</a>.</p>

</div>
</div>
<a class="anchor" id="acfa02e74a31c812d2e4ecf40915b418f"></a><!-- doxytag: member="util.c::ldns_version" ref="acfa02e74a31c812d2e4ecf40915b418f" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ldns_version </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Show the internal library version. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>a string with the version in it </dd></dl>

<p>Definition at line <a class="el" href="util_8c_source.html#l00192">192</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00030">LDNS_VERSION</a>.</p>

</div>
</div>
<a class="anchor" id="ad4a71c049ae1e0b4849a64040a7360fa"></a><!-- doxytag: member="util.c::mktime_from_utc" ref="ad4a71c049ae1e0b4849a64040a7360fa" args="(const struct tm *tm)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">time_t mktime_from_utc </td>
          <td>(</td>
          <td class="paramtype">const struct tm *&#160;</td>
          <td class="paramname"><em>tm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert TM to seconds since epoch (midnight, January 1st, 1970). </p>
<p>Like timegm(3), which is not always available. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tm</td><td>a struct tm* with the date </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the seconds since epoch </dd></dl>

<p>Definition at line <a class="el" href="util_8c_source.html#l00226">226</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

</div>
</div>
<a class="anchor" id="a093298fb6914785d45feb3be61597aed"></a><!-- doxytag: member="util.c::ldns_serial_arithmitics_gmtime_r" ref="a093298fb6914785d45feb3be61597aed" args="(int32_t time, time_t now, struct tm *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct tm* ldns_serial_arithmitics_gmtime_r </td>
          <td>(</td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">time_t&#160;</td>
          <td class="paramname"><em>now</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct tm *&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The function interprets time as the number of seconds since epoch with respect to now using serial arithmitics (rfc1982). </p>
<p>That number of seconds is then converted to broken-out time information. This is especially usefull when converting the inception and expiration fields of RRSIG records.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">time</td><td>number of seconds since epoch (midnight, January 1st, 1970) to be intepreted as a serial arithmitics number relative to now. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">now</td><td>number of seconds since epoch (midnight, January 1st, 1970) to which the time value is compared to determine the final value. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>the struct with the broken-out time information </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>result on success or NULL on error </dd></dl>

<p>Definition at line <a class="el" href="util_8c_source.html#l00330">330</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

<p>References <a class="el" href="config_8h.html#a6ef8fd14c34a80c3fee2ef2694491514">gmtime_r()</a>.</p>

</div>
</div>
<a class="anchor" id="aeda2f1b732e46a3e761aba81129d71e0"></a><!-- doxytag: member="util.c::ldns_init_random" ref="aeda2f1b732e46a3e761aba81129d71e0" args="(FILE *fd, unsigned int size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_init_random </td>
          <td>(</td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Init the random source applications should call this if they need entropy data within ldns If openSSL is available, it is automatically seeded from /dev/urandom or /dev/random. </p>
<p>Seed the random function.</p>
<p>If you need more entropy, or have no openssl available, this function MUST be called at the start of the program</p>
<p>If openssl *is* available, this function just adds more entropy </p>

<p>Definition at line <a class="el" href="util_8c_source.html#l00353">353</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>, and <a class="el" href="config_8h_source.html#l00507">srandom</a>.</p>

</div>
</div>
<a class="anchor" id="ad59e2ce028b25f1fbe8d4dbdb2a5b315"></a><!-- doxytag: member="util.c::ldns_get_random" ref="ad59e2ce028b25f1fbe8d4dbdb2a5b315" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t ldns_get_random </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get random number. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>random number. </dd></dl>

<p>Definition at line <a class="el" href="util_8c_source.html#l00425">425</a> of file <a class="el" href="util_8c_source.html">util.c</a>.</p>

<p>References <a class="el" href="config_8h_source.html#l00508">random</a>.</p>

</div>
</div>
<a class="anchor" id="ada923722a7a97fbb7a531cf48b977b8e"></a><!-- doxytag: member="util.c::ldns_bubblebabble" ref="ada923722a7a97fbb7a531cf48b977b8e" args="(uint8_t *data, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* ldns_bubblebabble </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Encode data as BubbleBabble. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>a pointer to data to be encoded </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>size the number of bytes of data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a string of BubbleBabble </dd></dl>

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

<p>References <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>