Sophie

Sophie

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

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="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">util.h File Reference</div>  </div>
</div>
<div class="contents">

<p><a href="util_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structldns__schwartzian__compare__struct.html">ldns_schwartzian_compare_struct</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure to do a Schwartzian-like transformation, for instance when sorting.  <a href="structldns__schwartzian__compare__struct.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structldns__struct__lookup__table.html">ldns_struct_lookup_table</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A general purpose lookup table.  <a href="structldns__struct__lookup__table.html#details">More...</a><br/></td></tr>
<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_8h.html#a5d7f87431299f2e952b54fcd3246e12a">dprintf</a>(X, Y)&#160;&#160;&#160;fprintf(stderr, (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_8h.html#a991dc2d5a646a3f66f91ba6b62c93615">LDNS_VERSION</a>&#160;&#160;&#160;&quot;1.6.12&quot;</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a52856294dceb4f2e0610d023cc73f6b8">LDNS_REVISION</a>&#160;&#160;&#160;((1&lt;&lt;16)|(6&lt;&lt;8)|(12))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a>&#160;&#160;&#160;static inline</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">splint static inline workaround  <a href="#a2eb6f9e0395b47b8d5e3eeae4fe0c116"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a828619b138fdeb9756cd3c874d0551c1">LDNS_MALLOC</a>(type)&#160;&#160;&#160;LDNS_XMALLOC(type, 1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory management macros.  <a href="#a828619b138fdeb9756cd3c874d0551c1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#aaad6949daea3c6cefd01d19300f6e21a">LDNS_XMALLOC</a>(type, count)&#160;&#160;&#160;((type *) malloc((count) * sizeof(type)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a79edd183cbf57142f0742856d6277517">LDNS_CALLOC</a>(type, count)&#160;&#160;&#160;((type *) calloc((count), sizeof(type)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a1daa1fb0f7475a1efbd1af6f331f933b">LDNS_REALLOC</a>(ptr, type)&#160;&#160;&#160;LDNS_XREALLOC((ptr), type, 1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#aef91214266c90875fa06e4a47e734538">LDNS_XREALLOC</a>(ptr, type, count)&#160;&#160;&#160;((type *) realloc((ptr), (count) * sizeof(type)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(ptr)&#160;&#160;&#160;do { free((ptr)); (ptr) = NULL; } while (0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a6ce207a6b932051fb6bf79356569485e">LDNS_DEP</a>&#160;&#160;&#160;printf(&quot;DEPRECATED FUNCTION!\n&quot;);</td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="structldns__struct__lookup__table.html">ldns_struct_lookup_table</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#aab8f46426d28b393a567a5c8c556c79f">ldns_lookup_table</a></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__lookup__table.html">ldns_lookup_table</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a805238d379b65de6452a7458f641bbcb">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="mdescLeft">&#160;</td><td class="mdescRight">Looks up the table entry by name, returns NULL if not found.  <a href="#a805238d379b65de6452a7458f641bbcb"></a><br/></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_8h.html#a6c3f62a949ee6028e435404ad585b27d">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="mdescLeft">&#160;</td><td class="mdescRight">Looks up the table entry by id, returns NULL if not found.  <a href="#a6c3f62a949ee6028e435404ad585b27d"></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_8h.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_8h.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_8h.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_8h.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_8h.html#ab11557fe9863fc3282e4a976d8cb80d1">ldns_int_to_hexdigit</a> (int ch)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the char (hex) representation of the given int.  <a href="#ab11557fe9863fc3282e4a976d8cb80d1"></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_8h.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_8h.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_8h.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_8h.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_8h.html#aeda2f1b732e46a3e761aba81129d71e0">ldns_init_random</a> (FILE *fd, unsigned int size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Seed the random function.  <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_8h.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_8h.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>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#af9e2ce0407b93dfbc1aeeccdc9a5f83a">ldns_b32_ntop</a> (uint8_t const *src, size_t srclength, char *target, size_t targsize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a5c5431f355f91c46227dd48087a39162">b32_ntop</a> (uint8_t const *src, size_t srclength, char *target, size_t targsize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a1131c0b74b8b1d94d673aa222d0ef54b">ldns_b32_ntop_extended_hex</a> (uint8_t const *src, size_t srclength, char *target, size_t targsize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#aed79c5491d256070b43664b9b7bc1981">b32_ntop_extended_hex</a> (uint8_t const *src, size_t srclength, char *target, size_t targsize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a60c8f637673eb6eda1b2ba9416b4acdc">ldns_b32_pton</a> (char const *src, size_t hashed_owner_str_len, uint8_t *target, size_t targsize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a22d504d674ef6d2a59ab87fd4a0fdba4">b32_pton</a> (char const *src, size_t hashed_owner_str_len, uint8_t *target, size_t targsize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#aacd27728d568173b4e84b920c93f4141">ldns_b32_pton_extended_hex</a> (char const *src, size_t hashed_owner_str_len, uint8_t *target, size_t targsize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="util_8h.html#a26b31a9006ac7150bcccd01a28afdce7">b32_pton_extended_hex</a> (char const *src, size_t hashed_owner_str_len, uint8_t *target, size_t targsize)</td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="a5d7f87431299f2e952b54fcd3246e12a"></a><!-- doxytag: member="util.h::dprintf" ref="a5d7f87431299f2e952b54fcd3246e12a" args="(X, Y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dprintf</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;fprintf(stderr, (X), (Y))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8h_source.html#l00027">27</a> of file <a class="el" href="util_8h_source.html">util.h</a>.</p>

</div>
</div>
<a class="anchor" id="a991dc2d5a646a3f66f91ba6b62c93615"></a><!-- doxytag: member="util.h::LDNS_VERSION" ref="a991dc2d5a646a3f66f91ba6b62c93615" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_VERSION&#160;&#160;&#160;&quot;1.6.12&quot;</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8h_source.html#l00030">30</a> of file <a class="el" href="util_8h_source.html">util.h</a>.</p>

</div>
</div>
<a class="anchor" id="a52856294dceb4f2e0610d023cc73f6b8"></a><!-- doxytag: member="util.h::LDNS_REVISION" ref="a52856294dceb4f2e0610d023cc73f6b8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_REVISION&#160;&#160;&#160;((1&lt;&lt;16)|(6&lt;&lt;8)|(12))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8h_source.html#l00031">31</a> of file <a class="el" href="util_8h_source.html">util.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2eb6f9e0395b47b8d5e3eeae4fe0c116"></a><!-- doxytag: member="util.h::INLINE" ref="a2eb6f9e0395b47b8d5e3eeae4fe0c116" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define INLINE&#160;&#160;&#160;static inline</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>splint static inline workaround </p>

<p>Definition at line <a class="el" href="util_8h_source.html#l00042">42</a> of file <a class="el" href="util_8h_source.html">util.h</a>.</p>

</div>
</div>
<a class="anchor" id="a828619b138fdeb9756cd3c874d0551c1"></a><!-- doxytag: member="util.h::LDNS_MALLOC" ref="a828619b138fdeb9756cd3c874d0551c1" args="(type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_MALLOC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td>&#160;&#160;&#160;LDNS_XMALLOC(type, 1)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Memory management macros. </p>

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

</div>
</div>
<a class="anchor" id="aaad6949daea3c6cefd01d19300f6e21a"></a><!-- doxytag: member="util.h::LDNS_XMALLOC" ref="aaad6949daea3c6cefd01d19300f6e21a" args="(type, count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_XMALLOC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">count&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((type *) malloc((count) * sizeof(type)))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8h_source.html#l00051">51</a> of file <a class="el" href="util_8h_source.html">util.h</a>.</p>

</div>
</div>
<a class="anchor" id="a79edd183cbf57142f0742856d6277517"></a><!-- doxytag: member="util.h::LDNS_CALLOC" ref="a79edd183cbf57142f0742856d6277517" args="(type, count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_CALLOC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">count&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((type *) calloc((count), sizeof(type)))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a1daa1fb0f7475a1efbd1af6f331f933b"></a><!-- doxytag: member="util.h::LDNS_REALLOC" ref="a1daa1fb0f7475a1efbd1af6f331f933b" args="(ptr, type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_REALLOC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ptr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;LDNS_XREALLOC((ptr), type, 1)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8h_source.html#l00055">55</a> of file <a class="el" href="util_8h_source.html">util.h</a>.</p>

</div>
</div>
<a class="anchor" id="aef91214266c90875fa06e4a47e734538"></a><!-- doxytag: member="util.h::LDNS_XREALLOC" ref="aef91214266c90875fa06e4a47e734538" args="(ptr, type, count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_XREALLOC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ptr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">count&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((type *) realloc((ptr), (count) * sizeof(type)))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8h_source.html#l00057">57</a> of file <a class="el" href="util_8h_source.html">util.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5e13054aa9b3843e97514228a0bbe909"></a><!-- doxytag: member="util.h::LDNS_FREE" ref="a5e13054aa9b3843e97514228a0bbe909" args="(ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_FREE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ptr</td><td>)</td>
          <td>&#160;&#160;&#160;do { free((ptr)); (ptr) = NULL; } while (0)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8h_source.html#l00060">60</a> of file <a class="el" href="util_8h_source.html">util.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6ce207a6b932051fb6bf79356569485e"></a><!-- doxytag: member="util.h::LDNS_DEP" ref="a6ce207a6b932051fb6bf79356569485e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_DEP&#160;&#160;&#160;printf(&quot;DEPRECATED FUNCTION!\n&quot;);</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8h_source.html#l00063">63</a> of file <a class="el" href="util_8h_source.html">util.h</a>.</p>

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="aab8f46426d28b393a567a5c8c556c79f"></a><!-- doxytag: member="util.h::ldns_lookup_table" ref="aab8f46426d28b393a567a5c8c556c79f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structldns__struct__lookup__table.html">ldns_struct_lookup_table</a> <a class="el" href="structldns__struct__lookup__table.html">ldns_lookup_table</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="util_8h_source.html#l00160">160</a> of file <a class="el" href="util_8h_source.html">util.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a805238d379b65de6452a7458f641bbcb"></a><!-- doxytag: member="util.h::ldns_lookup_by_name" ref="a805238d379b65de6452a7458f641bbcb" 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>Looks up the table entry by name, returns NULL if not found. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">table</td><td>the lookup table to search in </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>what to search for </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the item found </dd></dl>

</div>
</div>
<a class="anchor" id="a6c3f62a949ee6028e435404ad585b27d"></a><!-- doxytag: member="util.h::ldns_lookup_by_id" ref="a6c3f62a949ee6028e435404ad585b27d" 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>Looks up the table entry by id, returns NULL if not found. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">table</td><td>the lookup table to search in </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>what to search for </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the item found </dd></dl>

</div>
</div>
<a class="anchor" id="ac0cfcc1f93a2aaf7fb61804cf844faef"></a><!-- doxytag: member="util.h::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.h::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.h::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.h::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="ab11557fe9863fc3282e4a976d8cb80d1"></a><!-- doxytag: member="util.h::ldns_int_to_hexdigit" ref="ab11557fe9863fc3282e4a976d8cb80d1" args="(int ch)" -->
<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.h::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.h::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.h::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.h::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.h::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>Seed the random function. </p>
<p>If the file descriptor is specified, the random generator is seeded with data from that file. If not, /dev/urandom is used.</p>
<p>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>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>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>a file providing entropy data for the seed </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>the number of bytes to use as entropy data. If this is 0, only the minimal amount is taken (usually 4 bytes) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if seeding succeeds, 1 if it fails</dd></dl>
<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.h::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.h::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>
<a class="anchor" id="af9e2ce0407b93dfbc1aeeccdc9a5f83a"></a><!-- doxytag: member="util.h::ldns_b32_ntop" ref="af9e2ce0407b93dfbc1aeeccdc9a5f83a" args="(uint8_t const *src, size_t srclength, char *target, size_t targsize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_b32_ntop </td>
          <td>(</td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>srclength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>targsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a5c5431f355f91c46227dd48087a39162"></a><!-- doxytag: member="util.h::b32_ntop" ref="a5c5431f355f91c46227dd48087a39162" args="(uint8_t const *src, size_t srclength, char *target, size_t targsize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int b32_ntop </td>
          <td>(</td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>srclength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>targsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a1131c0b74b8b1d94d673aa222d0ef54b"></a><!-- doxytag: member="util.h::ldns_b32_ntop_extended_hex" ref="a1131c0b74b8b1d94d673aa222d0ef54b" args="(uint8_t const *src, size_t srclength, char *target, size_t targsize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_b32_ntop_extended_hex </td>
          <td>(</td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>srclength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>targsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aed79c5491d256070b43664b9b7bc1981"></a><!-- doxytag: member="util.h::b32_ntop_extended_hex" ref="aed79c5491d256070b43664b9b7bc1981" args="(uint8_t const *src, size_t srclength, char *target, size_t targsize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int b32_ntop_extended_hex </td>
          <td>(</td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>srclength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>targsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a60c8f637673eb6eda1b2ba9416b4acdc"></a><!-- doxytag: member="util.h::ldns_b32_pton" ref="a60c8f637673eb6eda1b2ba9416b4acdc" args="(char const *src, size_t hashed_owner_str_len, uint8_t *target, size_t targsize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_b32_pton </td>
          <td>(</td>
          <td class="paramtype">char const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>hashed_owner_str_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>targsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a22d504d674ef6d2a59ab87fd4a0fdba4"></a><!-- doxytag: member="util.h::b32_pton" ref="a22d504d674ef6d2a59ab87fd4a0fdba4" args="(char const *src, size_t hashed_owner_str_len, uint8_t *target, size_t targsize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int b32_pton </td>
          <td>(</td>
          <td class="paramtype">char const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>hashed_owner_str_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>targsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aacd27728d568173b4e84b920c93f4141"></a><!-- doxytag: member="util.h::ldns_b32_pton_extended_hex" ref="aacd27728d568173b4e84b920c93f4141" args="(char const *src, size_t hashed_owner_str_len, uint8_t *target, size_t targsize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_b32_pton_extended_hex </td>
          <td>(</td>
          <td class="paramtype">char const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>hashed_owner_str_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>targsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a26b31a9006ac7150bcccd01a28afdce7"></a><!-- doxytag: member="util.h::b32_pton_extended_hex" ref="a26b31a9006ac7150bcccd01a28afdce7" args="(char const *src, size_t hashed_owner_str_len, uint8_t *target, size_t targsize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int b32_pton_extended_hex </td>
          <td>(</td>
          <td class="paramtype">char const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>hashed_owner_str_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>targsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</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>