Sophie

Sophie

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

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 class="header">
  <div class="headertitle">
<div class="title">host2str.c</div>  </div>
</div>
<div class="contents">
<a href="host2str_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * host2str.c</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * conversion routines from the host format</span>
<a name="l00005"></a>00005 <span class="comment"> * to the presentation format (strings)</span>
<a name="l00006"></a>00006 <span class="comment"> *</span>
<a name="l00007"></a>00007 <span class="comment"> * a Net::DNS like library for C</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * (c) NLnet Labs, 2004-2006</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * See the file LICENSE for the license</span>
<a name="l00012"></a>00012 <span class="comment"> */</span>
<a name="l00013"></a>00013 <span class="preprocessor">#include &lt;<a class="code" href="ldns_2config_8h.html">ldns/config.h</a>&gt;</span>
<a name="l00014"></a>00014 
<a name="l00015"></a>00015 <span class="preprocessor">#include &lt;<a class="code" href="ldns_8h.html" title="Including this file will include all ldns files, and define some lookup tables.">ldns/ldns.h</a>&gt;</span>
<a name="l00016"></a>00016 
<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;limits.h&gt;</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifdef HAVE_SYS_SOCKET_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sys/socket.h&gt;</span>
<a name="l00021"></a>00021 <span class="preprocessor">#endif</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#ifdef HAVE_ARPA_INET_H</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#include &lt;arpa/inet.h&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#endif</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#ifdef HAVE_NETDB_H</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#include &lt;netdb.h&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#endif</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#include &lt;time.h&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;sys/time.h&gt;</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="preprocessor">#ifndef INET_ADDRSTRLEN</span>
<a name="l00032"></a><a class="code" href="host2str_8c.html#a93b37007689284fd9c4bde1a8f4b9199">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define INET_ADDRSTRLEN 16</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#ifndef INET6_ADDRSTRLEN</span>
<a name="l00035"></a><a class="code" href="host2str_8c.html#af776b22a727aae7c9f4d869d50df47e8">00035</a> <span class="preprocessor"></span><span class="preprocessor">#define INET6_ADDRSTRLEN 46</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span>
<a name="l00038"></a>00038 <span class="comment">/* lookup tables for standard DNS stuff  */</span>
<a name="l00039"></a>00039 
<a name="l00040"></a>00040 <span class="comment">/* Taken from RFC 2535, section 7.  */</span>
<a name="l00041"></a><a class="code" href="ldns_8h.html#a83c085e13c2a73dd5fad16baf0318331">00041</a> <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> <a class="code" href="host2str_8c.html#a83c085e13c2a73dd5fad16baf0318331" title="Taken from RFC 2535, section 7.">ldns_algorithms</a>[] = {
<a name="l00042"></a>00042         { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a13e3a2a9c94b219ec314ac60ee65237c">LDNS_RSAMD5</a>, <span class="stringliteral">&quot;RSAMD5&quot;</span> },
<a name="l00043"></a>00043         { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a9c80e013ab6422f81bd5995312d07bf6">LDNS_DH</a>, <span class="stringliteral">&quot;DH&quot;</span> },
<a name="l00044"></a>00044         { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a50b87d8f1c4d4d1eb8dfd8881955a4f9">LDNS_DSA</a>, <span class="stringliteral">&quot;DSA&quot;</span> },
<a name="l00045"></a>00045         { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10acb69374043a01c4baded7ba3681e9f6c">LDNS_ECC</a>, <span class="stringliteral">&quot;ECC&quot;</span> },
<a name="l00046"></a>00046         { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10adc4185432973db18dc51adee3f28bf80">LDNS_RSASHA1</a>, <span class="stringliteral">&quot;RSASHA1&quot;</span> },
<a name="l00047"></a>00047         { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a4e557e9b993e25b374c1620dd9c426d0">LDNS_DSA_NSEC3</a>, <span class="stringliteral">&quot;DSA-NSEC3-SHA1&quot;</span> },
<a name="l00048"></a>00048         { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a4ad4fa00be7e34f3745a81ee4effda59">LDNS_RSASHA1_NSEC3</a>, <span class="stringliteral">&quot;RSASHA1-NSEC3-SHA1&quot;</span> },
<a name="l00049"></a>00049 <span class="preprocessor">#ifdef USE_SHA2</span>
<a name="l00050"></a>00050 <span class="preprocessor"></span>        { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10ae1c2799b23f981474658ae94acbe6ddd">LDNS_RSASHA256</a>, <span class="stringliteral">&quot;RSASHA256&quot;</span>},
<a name="l00051"></a>00051         { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10adc52ea2e33d9e8d3754595a47179977a">LDNS_RSASHA512</a>, <span class="stringliteral">&quot;RSASHA512&quot;</span>},
<a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#ifdef USE_GOST</span>
<a name="l00054"></a>00054 <span class="preprocessor"></span>        { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a7f2a261baef424533a35e039692f9141">LDNS_ECC_GOST</a>, <span class="stringliteral">&quot;ECC-GOST&quot;</span>},
<a name="l00055"></a>00055 <span class="preprocessor">#endif</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#ifdef USE_ECDSA</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span>        { LDNS_ECDSAP256SHA256, <span class="stringliteral">&quot;ECDSAP256SHA256&quot;</span>},
<a name="l00058"></a>00058         { LDNS_ECDSAP384SHA384, <span class="stringliteral">&quot;ECDSAP384SHA384&quot;</span>},
<a name="l00059"></a>00059 <span class="preprocessor">#endif</span>
<a name="l00060"></a>00060 <span class="preprocessor"></span>        { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a9e4557670de89a9502b050f08a1d1a13">LDNS_INDIRECT</a>, <span class="stringliteral">&quot;INDIRECT&quot;</span> },
<a name="l00061"></a>00061         { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a8b4780eac0f9db1b73c547ed63d1b4ae">LDNS_PRIVATEDNS</a>, <span class="stringliteral">&quot;PRIVATEDNS&quot;</span> },
<a name="l00062"></a>00062         { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a8002ed24f6e433fa1cc884b68953d8d7">LDNS_PRIVATEOID</a>, <span class="stringliteral">&quot;PRIVATEOID&quot;</span> },
<a name="l00063"></a>00063         { 0, NULL }
<a name="l00064"></a>00064 };
<a name="l00065"></a>00065 
<a name="l00066"></a>00066 <span class="comment">/* Taken from RFC 4398  */</span>
<a name="l00067"></a><a class="code" href="ldns_8h.html#adcb97eea7f8d8f68de7022077e7c7506">00067</a> <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> <a class="code" href="host2str_8c.html#adcb97eea7f8d8f68de7022077e7c7506" title="Taken from RFC 2538.">ldns_cert_algorithms</a>[] = {
<a name="l00068"></a>00068         { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057cad0981ef4792c4c68bdfa80d6b6c6daca">LDNS_CERT_PKIX</a>, <span class="stringliteral">&quot;PKIX&quot;</span> },
<a name="l00069"></a>00069         { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca0a47671498c31a713b97573111c59f5a">LDNS_CERT_SPKI</a>, <span class="stringliteral">&quot;SPKI&quot;</span> },
<a name="l00070"></a>00070         { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057cac9ba1d12aa10e969bdcb8e1a52f209a7">LDNS_CERT_PGP</a>, <span class="stringliteral">&quot;PGP&quot;</span> },
<a name="l00071"></a>00071         { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca95d13be1d1d606fdd927a92d638aad1c">LDNS_CERT_IPKIX</a>, <span class="stringliteral">&quot;IPKIX&quot;</span> },
<a name="l00072"></a>00072         { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca1f2e77bab3c62208b3a1453cb96ddb25">LDNS_CERT_ISPKI</a>, <span class="stringliteral">&quot;ISPKI&quot;</span> },
<a name="l00073"></a>00073         { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca22df24afbd9f0e5d6570e995369f0fb1">LDNS_CERT_IPGP</a>, <span class="stringliteral">&quot;IPGP&quot;</span> },
<a name="l00074"></a>00074         { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca73b4a2938c59e1d274c173ce12e76041">LDNS_CERT_ACPKIX</a>, <span class="stringliteral">&quot;ACPKIX&quot;</span> },
<a name="l00075"></a>00075         { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca80bf5e7b0de5100c8545c1a91a0afeae">LDNS_CERT_IACPKIX</a>, <span class="stringliteral">&quot;IACPKIX&quot;</span> },
<a name="l00076"></a>00076         { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca1480733f78c9fef61db7d31446e1fee6">LDNS_CERT_URI</a>, <span class="stringliteral">&quot;URI&quot;</span> },
<a name="l00077"></a>00077         { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057cab2c28e7c6a15f8828950e2aff0642519">LDNS_CERT_OID</a>, <span class="stringliteral">&quot;OID&quot;</span> },
<a name="l00078"></a>00078         { 0, NULL }
<a name="l00079"></a>00079 };
<a name="l00080"></a>00080 
<a name="l00081"></a>00081 <span class="comment">/* classes  */</span>
<a name="l00082"></a><a class="code" href="ldns_8h.html#ac564d00208d5565a73b410b3cb5cd485">00082</a> <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> <a class="code" href="host2str_8c.html#ac564d00208d5565a73b410b3cb5cd485" title="rr types">ldns_rr_classes</a>[] = {
<a name="l00083"></a>00083         { <a class="code" href="rr_8h.html#adc72070b39f210fae670577de8136600a2ad89c0befc939420e3b1157c07a8b46" title="the Internet">LDNS_RR_CLASS_IN</a>, <span class="stringliteral">&quot;IN&quot;</span> },
<a name="l00084"></a>00084         { <a class="code" href="rr_8h.html#adc72070b39f210fae670577de8136600a46ebee76bfb60b82fd04b223a2b25d5a" title="Chaos class.">LDNS_RR_CLASS_CH</a>, <span class="stringliteral">&quot;CH&quot;</span> },
<a name="l00085"></a>00085         { <a class="code" href="rr_8h.html#adc72070b39f210fae670577de8136600a9ff1843a546a4842a24d7de676bcbe54" title="Hesiod (Dyer 87)">LDNS_RR_CLASS_HS</a>, <span class="stringliteral">&quot;HS&quot;</span> },
<a name="l00086"></a>00086         { <a class="code" href="rr_8h.html#adc72070b39f210fae670577de8136600a0a7d733c833900c81651bb7f5efe549b" title="None class, dynamic update.">LDNS_RR_CLASS_NONE</a>, <span class="stringliteral">&quot;NONE&quot;</span> },
<a name="l00087"></a>00087         { <a class="code" href="rr_8h.html#adc72070b39f210fae670577de8136600ad14392298b1cf7e8dba6140b21d7aaff" title="Any class.">LDNS_RR_CLASS_ANY</a>, <span class="stringliteral">&quot;ANY&quot;</span> },
<a name="l00088"></a>00088         { 0, NULL }
<a name="l00089"></a>00089 };
<a name="l00090"></a>00090 
<a name="l00091"></a>00091 <span class="comment">/* if these are used elsewhere */</span>
<a name="l00092"></a><a class="code" href="ldns_8h.html#a3706e74a86ba7d7753996b9e889e0419">00092</a> <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> <a class="code" href="host2str_8c.html#a3706e74a86ba7d7753996b9e889e0419" title="Response codes.">ldns_rcodes</a>[] = {
<a name="l00093"></a>00093         { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2eaed41de4608a4fe343fb7321d38f577b7">LDNS_RCODE_NOERROR</a>, <span class="stringliteral">&quot;NOERROR&quot;</span> },
<a name="l00094"></a>00094         { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea234c4a2479907e919bdc796d162e7e5d">LDNS_RCODE_FORMERR</a>, <span class="stringliteral">&quot;FORMERR&quot;</span> },
<a name="l00095"></a>00095         { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea3e47b4279a03871086ad3c982d8f7f4e">LDNS_RCODE_SERVFAIL</a>, <span class="stringliteral">&quot;SERVFAIL&quot;</span> },
<a name="l00096"></a>00096         { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2eac01c2b2bd1aad5bad94981afb97f5f72">LDNS_RCODE_NXDOMAIN</a>, <span class="stringliteral">&quot;NXDOMAIN&quot;</span> },
<a name="l00097"></a>00097         { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea409df5dae301f4305944cae96c696caa">LDNS_RCODE_NOTIMPL</a>, <span class="stringliteral">&quot;NOTIMPL&quot;</span> },
<a name="l00098"></a>00098         { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea023d50f9d3a62cf83a2c13fd2e92b5c6">LDNS_RCODE_REFUSED</a>, <span class="stringliteral">&quot;REFUSED&quot;</span> },
<a name="l00099"></a>00099         { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea23062185144a7e4c27d17564d7e3c35e">LDNS_RCODE_YXDOMAIN</a>, <span class="stringliteral">&quot;YXDOMAIN&quot;</span> },
<a name="l00100"></a>00100         { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea3702c2e5785f0f11516423a07277151f">LDNS_RCODE_YXRRSET</a>, <span class="stringliteral">&quot;YXRRSET&quot;</span> },
<a name="l00101"></a>00101         { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea9948710319d71abe34d74380d4a4439d">LDNS_RCODE_NXRRSET</a>, <span class="stringliteral">&quot;NXRRSET&quot;</span> },
<a name="l00102"></a>00102         { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2eadbb23ea2d247dfc825a9c5ee180ca2e7">LDNS_RCODE_NOTAUTH</a>, <span class="stringliteral">&quot;NOTAUTH&quot;</span> },
<a name="l00103"></a>00103         { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2eaa4352e797fbbe2e0fa55b573fb8a1c55">LDNS_RCODE_NOTZONE</a>, <span class="stringliteral">&quot;NOTZONE&quot;</span> },
<a name="l00104"></a>00104         { 0, NULL }
<a name="l00105"></a>00105 };
<a name="l00106"></a>00106 
<a name="l00107"></a><a class="code" href="ldns_8h.html#a9e381bc2e510c98adeb0137378ba05d8">00107</a> <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> <a class="code" href="host2str_8c.html#a9e381bc2e510c98adeb0137378ba05d8" title="Operation codes.">ldns_opcodes</a>[] = {
<a name="l00108"></a>00108         { <a class="code" href="packet_8h.html#a7b6e5e8c3d0e09c0a51b5cb46a1f8e20a889e39287d71fc5ebe95700040ee67bb">LDNS_PACKET_QUERY</a>, <span class="stringliteral">&quot;QUERY&quot;</span> },
<a name="l00109"></a>00109         { <a class="code" href="packet_8h.html#a7b6e5e8c3d0e09c0a51b5cb46a1f8e20a38bc274e18bd6c83f803450f9310d0b4">LDNS_PACKET_IQUERY</a>, <span class="stringliteral">&quot;IQUERY&quot;</span> },
<a name="l00110"></a>00110         { <a class="code" href="packet_8h.html#a7b6e5e8c3d0e09c0a51b5cb46a1f8e20aab61063e4ba4ee58d655be8fa0d32a0d">LDNS_PACKET_STATUS</a>, <span class="stringliteral">&quot;STATUS&quot;</span> },
<a name="l00111"></a>00111         { <a class="code" href="packet_8h.html#a7b6e5e8c3d0e09c0a51b5cb46a1f8e20a70c7e2ddbffea1a09c71c0faa9f2e7db">LDNS_PACKET_NOTIFY</a>, <span class="stringliteral">&quot;NOTIFY&quot;</span> },
<a name="l00112"></a>00112         { <a class="code" href="packet_8h.html#a7b6e5e8c3d0e09c0a51b5cb46a1f8e20ab8ce3392553e5a300419e05ec3a6ab2f">LDNS_PACKET_UPDATE</a>, <span class="stringliteral">&quot;UPDATE&quot;</span> },
<a name="l00113"></a>00113         { 0, NULL }
<a name="l00114"></a>00114 };
<a name="l00115"></a>00115 
<a name="l00116"></a><a class="code" href="host2str_8c.html#a55712db3d078c86c0de4ab8a884ad0ca">00116</a> <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a>   <a class="code" href="host2str_8c.html#a55712db3d078c86c0de4ab8a884ad0ca">ldns_output_format_nocomments_record</a> = { 0, NULL };
<a name="l00117"></a>00117 <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a>  *<a class="code" href="host2str_8c.html#a08812f64e840a03900d3d5f793a67a38" title="Standard output format record that disables commenting in the textual representation of Resource Reco...">ldns_output_format_nocomments</a> 
<a name="l00118"></a><a class="code" href="host2str_8h.html#a08812f64e840a03900d3d5f793a67a38">00118</a>                         = &amp;<a class="code" href="host2str_8c.html#a55712db3d078c86c0de4ab8a884ad0ca">ldns_output_format_nocomments_record</a>;
<a name="l00119"></a><a class="code" href="host2str_8c.html#a6415cd67eade4504ad4b73f3e2e75072">00119</a> <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a>   <a class="code" href="host2str_8c.html#a6415cd67eade4504ad4b73f3e2e75072">ldns_output_format_onlykeyids_record</a> = {
<a name="l00120"></a>00120         <a class="code" href="host2str_8h.html#ada91e4287b5131fc1cf45da9c7c66ef7" title="Show key id, type and size as comment for DNSKEY RR&#39;s.">LDNS_COMMENT_KEY</a>, NULL
<a name="l00121"></a>00121 };
<a name="l00122"></a>00122 <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a>  *<a class="code" href="host2str_8c.html#a600e34ade402abe07a9e57f6e2f2e2dc" title="Standard output format record that annotated only DNSKEY RR&#39;s with commenti text.">ldns_output_format_onlykeyids</a>
<a name="l00123"></a><a class="code" href="host2str_8h.html#a600e34ade402abe07a9e57f6e2f2e2dc">00123</a>                         = &amp;<a class="code" href="host2str_8c.html#a6415cd67eade4504ad4b73f3e2e75072">ldns_output_format_onlykeyids_record</a>;
<a name="l00124"></a>00124 <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a>  *<a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>
<a name="l00125"></a><a class="code" href="host2str_8h.html#ace100b58a7e8d928102c3bac613b7338">00125</a>                         = &amp;<a class="code" href="host2str_8c.html#a6415cd67eade4504ad4b73f3e2e75072">ldns_output_format_onlykeyids_record</a>;
<a name="l00126"></a><a class="code" href="host2str_8c.html#ae6e4475a6521fd3b5126d02b49eca507">00126</a> <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a>   <a class="code" href="host2str_8c.html#ae6e4475a6521fd3b5126d02b49eca507">ldns_output_format_bubblebabble_record</a> = { 
<a name="l00127"></a>00127         <a class="code" href="host2str_8h.html#ada91e4287b5131fc1cf45da9c7c66ef7" title="Show key id, type and size as comment for DNSKEY RR&#39;s.">LDNS_COMMENT_KEY</a> | <a class="code" href="host2str_8h.html#a570b39e63c0389a97f70d464300973af" title="Provide bubblebabble representation for DS RR&#39;s as comment.">LDNS_COMMENT_BUBBLEBABBLE</a> | <a class="code" href="host2str_8h.html#a89bba5c47a912ee39f6296a9a02b71f5" title="Show when a NSEC3 RR has the optout flag set as comment.">LDNS_COMMENT_FLAGS</a>, NULL
<a name="l00128"></a>00128 };
<a name="l00129"></a>00129 <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a>  *<a class="code" href="host2str_8c.html#aeb52aaf30c03a2b9942ae3017f71358e" title="Standard output format record that shows all DNSKEY related information in the comment text...">ldns_output_format_bubblebabble</a> 
<a name="l00130"></a><a class="code" href="host2str_8h.html#aeb52aaf30c03a2b9942ae3017f71358e">00130</a>                         = &amp;<a class="code" href="host2str_8c.html#ae6e4475a6521fd3b5126d02b49eca507">ldns_output_format_bubblebabble_record</a>;
<a name="l00131"></a>00131 
<a name="l00132"></a>00132 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00133"></a><a class="code" href="host2str_8h.html#acdb67762ec10e02a49bf99ffdc934720">00133</a> <a class="code" href="host2str_8c.html#acdb67762ec10e02a49bf99ffdc934720" title="Converts an ldns packet opcode value to its mnemonic, and adds that to the output buffer...">ldns_pkt_opcode2buffer_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <a class="code" href="packet_8h.html#a9108e104c619091d0f83381cfc1ea64b">ldns_pkt_opcode</a> opcode)
<a name="l00134"></a>00134 {
<a name="l00135"></a>00135         <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> *lt = <a class="code" href="util_8c.html#a42a73e82a0f0bf3ee979190b9cf81957">ldns_lookup_by_id</a>(ldns_opcodes, opcode);
<a name="l00136"></a>00136         <span class="keywordflow">if</span> (lt &amp;&amp; lt-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>) {
<a name="l00137"></a>00137                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, lt-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>);
<a name="l00138"></a>00138         } <span class="keywordflow">else</span> {
<a name="l00139"></a>00139                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;OPCODE%u&quot;</span>, opcode);
<a name="l00140"></a>00140         }
<a name="l00141"></a>00141         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00142"></a>00142 }
<a name="l00143"></a>00143 
<a name="l00144"></a>00144 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00145"></a><a class="code" href="host2str_8h.html#a2e9e978245b66520a4823fbb817d743d">00145</a> <a class="code" href="host2str_8c.html#a2e9e978245b66520a4823fbb817d743d" title="Converts an ldns packet rcode value to its mnemonic, and adds that to the output buffer.">ldns_pkt_rcode2buffer_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <a class="code" href="packet_8h.html#a66980c75b368fd748277e54bc1c8acc0">ldns_pkt_rcode</a> rcode)
<a name="l00146"></a>00146 {
<a name="l00147"></a>00147         <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> *lt = <a class="code" href="util_8c.html#a42a73e82a0f0bf3ee979190b9cf81957">ldns_lookup_by_id</a>(ldns_rcodes, rcode);
<a name="l00148"></a>00148         <span class="keywordflow">if</span> (lt &amp;&amp; lt-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>) {
<a name="l00149"></a>00149                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, lt-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>);
<a name="l00150"></a>00150         } <span class="keywordflow">else</span> {
<a name="l00151"></a>00151                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;RCODE%u&quot;</span>, rcode);
<a name="l00152"></a>00152         }
<a name="l00153"></a>00153         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00154"></a>00154 }
<a name="l00155"></a>00155 
<a name="l00156"></a>00156 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00157"></a><a class="code" href="host2str_8h.html#a83ce69552a46675557d3c95549ae02c2">00157</a> <a class="code" href="host2str_8c.html#a83ce69552a46675557d3c95549ae02c2" title="Converts an ldns algorithm type to its mnemonic, and adds that to the output buffer.">ldns_algorithm2buffer_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output,
<a name="l00158"></a>00158                           <a class="code" href="keys_8h.html#af4bde8238e05b183cf373f49639a3e58">ldns_algorithm</a> algorithm)
<a name="l00159"></a>00159 {
<a name="l00160"></a>00160         <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> *lt = <a class="code" href="util_8c.html#a42a73e82a0f0bf3ee979190b9cf81957">ldns_lookup_by_id</a>(ldns_algorithms,
<a name="l00161"></a>00161                                                   algorithm);
<a name="l00162"></a>00162         <span class="keywordflow">if</span> (lt &amp;&amp; lt-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>) {
<a name="l00163"></a>00163                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, lt-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>);
<a name="l00164"></a>00164         } <span class="keywordflow">else</span> {
<a name="l00165"></a>00165                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;ALG%u&quot;</span>, algorithm);
<a name="l00166"></a>00166         }
<a name="l00167"></a>00167         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00168"></a>00168 }
<a name="l00169"></a>00169 
<a name="l00170"></a>00170 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00171"></a><a class="code" href="host2str_8h.html#a8b7c208f693099961f084076ea8b5794">00171</a> <a class="code" href="host2str_8c.html#a8b7c208f693099961f084076ea8b5794" title="Converts an ldns certificate algorithm type to its mnemonic, and adds that to the output buffer...">ldns_cert_algorithm2buffer_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output,
<a name="l00172"></a>00172                                <a class="code" href="rdata_8h.html#a0bdf2dcad857f0a4e8b34f0515275b13">ldns_cert_algorithm</a> cert_algorithm)
<a name="l00173"></a>00173 {
<a name="l00174"></a>00174         <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> *lt = <a class="code" href="util_8c.html#a42a73e82a0f0bf3ee979190b9cf81957">ldns_lookup_by_id</a>(ldns_cert_algorithms,
<a name="l00175"></a>00175                                                   cert_algorithm);
<a name="l00176"></a>00176         <span class="keywordflow">if</span> (lt &amp;&amp; lt-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>) {
<a name="l00177"></a>00177                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, lt-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>);
<a name="l00178"></a>00178         } <span class="keywordflow">else</span> {
<a name="l00179"></a>00179                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;CERT_ALG%u&quot;</span>,
<a name="l00180"></a>00180                                    cert_algorithm);
<a name="l00181"></a>00181         }
<a name="l00182"></a>00182         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00183"></a>00183 }
<a name="l00184"></a>00184 
<a name="l00185"></a>00185 <span class="keywordtype">char</span> *
<a name="l00186"></a><a class="code" href="host2str_8h.html#a9d8a0aca15943fab89594ce0e2656102">00186</a> <a class="code" href="host2str_8c.html#a9d8a0aca15943fab89594ce0e2656102" title="Converts a packet opcode to its mnemonic and returns that as an allocated null-terminated string...">ldns_pkt_opcode2str</a>(<a class="code" href="packet_8h.html#a9108e104c619091d0f83381cfc1ea64b">ldns_pkt_opcode</a> opcode)
<a name="l00187"></a>00187 {
<a name="l00188"></a>00188         <span class="keywordtype">char</span> *str;
<a name="l00189"></a>00189         <a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *buf;
<a name="l00190"></a>00190 
<a name="l00191"></a>00191         buf = <a class="code" href="buffer_8c.html#ac6d413e9a76bf7e7c2022f13e36b9900" title="creates a new buffer with the specified capacity.">ldns_buffer_new</a>(12);
<a name="l00192"></a>00192         <span class="keywordflow">if</span> (!buf) {
<a name="l00193"></a>00193                 <span class="keywordflow">return</span> NULL;
<a name="l00194"></a>00194         }
<a name="l00195"></a>00195 
<a name="l00196"></a>00196         str = NULL;
<a name="l00197"></a>00197         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#acdb67762ec10e02a49bf99ffdc934720" title="Converts an ldns packet opcode value to its mnemonic, and adds that to the output buffer...">ldns_pkt_opcode2buffer_str</a>(buf, opcode) == <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l00198"></a>00198                 str = <a class="code" href="host2str_8c.html#a8fd566da148ea9c590b0bb17b8aa71af" title="Returns the data in the buffer as a null terminated char * string Buffer data must be char * type...">ldns_buffer2str</a>(buf);
<a name="l00199"></a>00199         }
<a name="l00200"></a>00200 
<a name="l00201"></a>00201         <a class="code" href="buffer_8c.html#a1615da957ad5a24a8b5cc1ba2f2b7f44" title="frees the buffer.">ldns_buffer_free</a>(buf);
<a name="l00202"></a>00202         <span class="keywordflow">return</span> str;
<a name="l00203"></a>00203 }
<a name="l00204"></a>00204 
<a name="l00205"></a>00205 <span class="keywordtype">char</span> *
<a name="l00206"></a><a class="code" href="host2str_8h.html#a2a3141dc63994a9a74efa762c551517c">00206</a> <a class="code" href="host2str_8c.html#a2a3141dc63994a9a74efa762c551517c" title="Converts a packet rcode to its mnemonic and returns that as an allocated null-terminated string...">ldns_pkt_rcode2str</a>(<a class="code" href="packet_8h.html#a66980c75b368fd748277e54bc1c8acc0">ldns_pkt_rcode</a> rcode)
<a name="l00207"></a>00207 {
<a name="l00208"></a>00208         <span class="keywordtype">char</span> *str;
<a name="l00209"></a>00209         <a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *buf;
<a name="l00210"></a>00210 
<a name="l00211"></a>00211         buf = <a class="code" href="buffer_8c.html#ac6d413e9a76bf7e7c2022f13e36b9900" title="creates a new buffer with the specified capacity.">ldns_buffer_new</a>(10);
<a name="l00212"></a>00212         <span class="keywordflow">if</span> (!buf) {
<a name="l00213"></a>00213                 <span class="keywordflow">return</span> NULL;
<a name="l00214"></a>00214         }
<a name="l00215"></a>00215 
<a name="l00216"></a>00216         str = NULL;
<a name="l00217"></a>00217         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a2e9e978245b66520a4823fbb817d743d" title="Converts an ldns packet rcode value to its mnemonic, and adds that to the output buffer.">ldns_pkt_rcode2buffer_str</a>(buf, rcode) == <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l00218"></a>00218                 str = <a class="code" href="host2str_8c.html#a8fd566da148ea9c590b0bb17b8aa71af" title="Returns the data in the buffer as a null terminated char * string Buffer data must be char * type...">ldns_buffer2str</a>(buf);
<a name="l00219"></a>00219         }
<a name="l00220"></a>00220 
<a name="l00221"></a>00221         <a class="code" href="buffer_8c.html#a1615da957ad5a24a8b5cc1ba2f2b7f44" title="frees the buffer.">ldns_buffer_free</a>(buf);
<a name="l00222"></a>00222         <span class="keywordflow">return</span> str;
<a name="l00223"></a>00223 }
<a name="l00224"></a>00224 
<a name="l00225"></a>00225 <span class="keywordtype">char</span> *
<a name="l00226"></a><a class="code" href="host2str_8h.html#a4ab5550f6637e55b7c0c314d34dec055">00226</a> <a class="code" href="host2str_8c.html#a4ab5550f6637e55b7c0c314d34dec055" title="Converts a signing algorithms to its mnemonic and returns that as an allocated null-terminated string...">ldns_pkt_algorithm2str</a>(<a class="code" href="keys_8h.html#af4bde8238e05b183cf373f49639a3e58">ldns_algorithm</a> algorithm)
<a name="l00227"></a>00227 {
<a name="l00228"></a>00228         <span class="keywordtype">char</span> *str;
<a name="l00229"></a>00229         <a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *buf;
<a name="l00230"></a>00230 
<a name="l00231"></a>00231         buf = <a class="code" href="buffer_8c.html#ac6d413e9a76bf7e7c2022f13e36b9900" title="creates a new buffer with the specified capacity.">ldns_buffer_new</a>(10);
<a name="l00232"></a>00232         <span class="keywordflow">if</span> (!buf) {
<a name="l00233"></a>00233                 <span class="keywordflow">return</span> NULL;
<a name="l00234"></a>00234         }
<a name="l00235"></a>00235 
<a name="l00236"></a>00236         str = NULL;
<a name="l00237"></a>00237         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a83ce69552a46675557d3c95549ae02c2" title="Converts an ldns algorithm type to its mnemonic, and adds that to the output buffer.">ldns_algorithm2buffer_str</a>(buf, algorithm)
<a name="l00238"></a>00238             == <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l00239"></a>00239                 str = <a class="code" href="host2str_8c.html#a8fd566da148ea9c590b0bb17b8aa71af" title="Returns the data in the buffer as a null terminated char * string Buffer data must be char * type...">ldns_buffer2str</a>(buf);
<a name="l00240"></a>00240         }
<a name="l00241"></a>00241 
<a name="l00242"></a>00242         <a class="code" href="buffer_8c.html#a1615da957ad5a24a8b5cc1ba2f2b7f44" title="frees the buffer.">ldns_buffer_free</a>(buf);
<a name="l00243"></a>00243         <span class="keywordflow">return</span> str;
<a name="l00244"></a>00244 }
<a name="l00245"></a>00245 
<a name="l00246"></a>00246 <span class="keywordtype">char</span> *
<a name="l00247"></a><a class="code" href="host2str_8h.html#a81c244896ed7845880e7282cb5fd41b4">00247</a> <a class="code" href="host2str_8c.html#a81c244896ed7845880e7282cb5fd41b4" title="Converts a cert algorithm to its mnemonic and returns that as an allocated null-terminated string...">ldns_pkt_cert_algorithm2str</a>(<a class="code" href="rdata_8h.html#a0bdf2dcad857f0a4e8b34f0515275b13">ldns_cert_algorithm</a> cert_algorithm)
<a name="l00248"></a>00248 {
<a name="l00249"></a>00249         <span class="keywordtype">char</span> *str;
<a name="l00250"></a>00250         <a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *buf;
<a name="l00251"></a>00251 
<a name="l00252"></a>00252         buf = <a class="code" href="buffer_8c.html#ac6d413e9a76bf7e7c2022f13e36b9900" title="creates a new buffer with the specified capacity.">ldns_buffer_new</a>(10);
<a name="l00253"></a>00253         <span class="keywordflow">if</span> (!buf) {
<a name="l00254"></a>00254                 <span class="keywordflow">return</span> NULL;
<a name="l00255"></a>00255         }
<a name="l00256"></a>00256 
<a name="l00257"></a>00257         str = NULL;
<a name="l00258"></a>00258         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a8b7c208f693099961f084076ea8b5794" title="Converts an ldns certificate algorithm type to its mnemonic, and adds that to the output buffer...">ldns_cert_algorithm2buffer_str</a>(buf, cert_algorithm)
<a name="l00259"></a>00259             == <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l00260"></a>00260                 str = <a class="code" href="host2str_8c.html#a8fd566da148ea9c590b0bb17b8aa71af" title="Returns the data in the buffer as a null terminated char * string Buffer data must be char * type...">ldns_buffer2str</a>(buf);
<a name="l00261"></a>00261         }
<a name="l00262"></a>00262 
<a name="l00263"></a>00263         <a class="code" href="buffer_8c.html#a1615da957ad5a24a8b5cc1ba2f2b7f44" title="frees the buffer.">ldns_buffer_free</a>(buf);
<a name="l00264"></a>00264         <span class="keywordflow">return</span> str;
<a name="l00265"></a>00265 }
<a name="l00266"></a>00266 
<a name="l00267"></a>00267 
<a name="l00268"></a>00268 <span class="comment">/* do NOT pass compressed data here :p */</span>
<a name="l00269"></a>00269 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00270"></a><a class="code" href="host2str_8h.html#ad7f2b2a814e252b4111f3e37f91cd446">00270</a> <a class="code" href="host2str_8c.html#ad7f2b2a814e252b4111f3e37f91cd446" title="Print the ldns_rdf containing a dname to the buffer.">ldns_rdf2buffer_str_dname</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *dname)
<a name="l00271"></a>00271 {
<a name="l00272"></a>00272         <span class="comment">/* can we do with 1 pos var? or without at all? */</span>
<a name="l00273"></a>00273         uint8_t src_pos = 0;
<a name="l00274"></a>00274         uint8_t len;
<a name="l00275"></a>00275         uint8_t *data;
<a name="l00276"></a>00276         uint8_t i;
<a name="l00277"></a>00277         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> c;
<a name="l00278"></a>00278 
<a name="l00279"></a>00279         data = (uint8_t*)<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(dname);
<a name="l00280"></a>00280         len = data[src_pos];
<a name="l00281"></a>00281 
<a name="l00282"></a>00282         <span class="keywordflow">if</span> (<a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(dname) &gt; <a class="code" href="rr_8h.html#ad52564ca775d206b60f48b254de552b2" title="Maximum length of a complete dname.">LDNS_MAX_DOMAINLEN</a>) {
<a name="l00283"></a>00283                 <span class="comment">/* too large, return */</span>
<a name="l00284"></a>00284                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afad77a477a6892604c0365ce181e72fb87">LDNS_STATUS_DOMAINNAME_OVERFLOW</a>;
<a name="l00285"></a>00285         }
<a name="l00286"></a>00286 
<a name="l00287"></a>00287         <span class="comment">/* special case: root label */</span>
<a name="l00288"></a>00288         <span class="keywordflow">if</span> (1 == <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(dname)) {
<a name="l00289"></a>00289                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;.&quot;</span>);
<a name="l00290"></a>00290         } <span class="keywordflow">else</span> {
<a name="l00291"></a>00291                 <span class="keywordflow">while</span> ((len &gt; 0) &amp;&amp; src_pos &lt; <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(dname)) {
<a name="l00292"></a>00292                         src_pos++;
<a name="l00293"></a>00293                         <span class="keywordflow">for</span>(i = 0; i &lt; len; i++) {
<a name="l00294"></a>00294                                 <span class="comment">/* paranoia check for various &#39;strange&#39;</span>
<a name="l00295"></a>00295 <span class="comment">                                   characters in dnames</span>
<a name="l00296"></a>00296 <span class="comment">                                */</span>
<a name="l00297"></a>00297                                 c = (<span class="keywordtype">unsigned</span> char) data[src_pos];
<a name="l00298"></a>00298                                 <span class="keywordflow">if</span>(c == <span class="charliteral">&#39;.&#39;</span> || c == <span class="charliteral">&#39;;&#39;</span> ||
<a name="l00299"></a>00299                                    c == <span class="charliteral">&#39;(&#39;</span> || c == <span class="charliteral">&#39;)&#39;</span> ||
<a name="l00300"></a>00300                                    c == <span class="charliteral">&#39;\\&#39;</span>) {
<a name="l00301"></a>00301                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\\%c&quot;</span>,
<a name="l00302"></a>00302                                                         data[src_pos]);
<a name="l00303"></a>00303                                 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!(<a class="code" href="config_8h.html#ae084717e294e2e19fb1827a2f6c5f036">isascii</a>(c) &amp;&amp; isgraph(c))) {
<a name="l00304"></a>00304                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\\%03u&quot;</span>,
<a name="l00305"></a>00305                                                         data[src_pos]);
<a name="l00306"></a>00306                                 } <span class="keywordflow">else</span> {
<a name="l00307"></a>00307                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%c&quot;</span>, data[src_pos]);
<a name="l00308"></a>00308                                 }
<a name="l00309"></a>00309                                 src_pos++;
<a name="l00310"></a>00310                         }
<a name="l00311"></a>00311 
<a name="l00312"></a>00312                         <span class="keywordflow">if</span> (src_pos &lt; <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(dname)) {
<a name="l00313"></a>00313                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;.&quot;</span>);
<a name="l00314"></a>00314                         }
<a name="l00315"></a>00315                         len = data[src_pos];
<a name="l00316"></a>00316                 }
<a name="l00317"></a>00317         }
<a name="l00318"></a>00318         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00319"></a>00319 }
<a name="l00320"></a>00320 
<a name="l00321"></a>00321 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00322"></a><a class="code" href="host2str_8h.html#aa4921c047e6cf85f6cb3f0761921c72a">00322</a> <a class="code" href="host2str_8c.html#aa4921c047e6cf85f6cb3f0761921c72a" title="Converts an LDNS_RDF_TYPE_INT8 rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_int8</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00323"></a>00323 {
<a name="l00324"></a>00324         uint8_t data = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf)[0];
<a name="l00325"></a>00325         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%lu&quot;</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>) data);
<a name="l00326"></a>00326         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00327"></a>00327 }
<a name="l00328"></a>00328 
<a name="l00329"></a>00329 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00330"></a><a class="code" href="host2str_8h.html#acac0247738f41ac89fbadf8362b5bc7c">00330</a> <a class="code" href="host2str_8c.html#acac0247738f41ac89fbadf8362b5bc7c" title="Converts an LDNS_RDF_TYPE_INT16 rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_int16</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00331"></a>00331 {
<a name="l00332"></a>00332         uint16_t data = ldns_read_uint16(<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf));
<a name="l00333"></a>00333         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%lu&quot;</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>) data);
<a name="l00334"></a>00334         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00335"></a>00335 }
<a name="l00336"></a>00336 
<a name="l00337"></a>00337 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00338"></a><a class="code" href="host2str_8h.html#a1f2b83e2cb0e7c98dba747bd76721770">00338</a> <a class="code" href="host2str_8c.html#a1f2b83e2cb0e7c98dba747bd76721770" title="Converts an LDNS_RDF_TYPE_INT32 rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_int32</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00339"></a>00339 {
<a name="l00340"></a>00340         uint32_t data = ldns_read_uint32(<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf));
<a name="l00341"></a>00341         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%lu&quot;</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>) data);
<a name="l00342"></a>00342         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00343"></a>00343 }
<a name="l00344"></a>00344 
<a name="l00345"></a>00345 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00346"></a><a class="code" href="host2str_8h.html#a84fd0faad7e88b9dd3bbaa395727a719">00346</a> <a class="code" href="host2str_8c.html#a84fd0faad7e88b9dd3bbaa395727a719" title="Converts an LDNS_RDF_TYPE_TIME rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_time</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00347"></a>00347 {
<a name="l00348"></a>00348         <span class="comment">/* create a YYYYMMDDHHMMSS string if possible */</span>
<a name="l00349"></a>00349         <span class="keyword">struct </span>tm tm;
<a name="l00350"></a>00350         <span class="keywordtype">char</span> date_buf[16];
<a name="l00351"></a>00351 
<a name="l00352"></a>00352         memset(&amp;tm, 0, <span class="keyword">sizeof</span>(tm));
<a name="l00353"></a>00353         <span class="keywordflow">if</span> (<a class="code" href="util_8c.html#a093298fb6914785d45feb3be61597aed" title="The function interprets time as the number of seconds since epoch with respect to now using serial ar...">ldns_serial_arithmitics_gmtime_r</a>(<a class="code" href="rdata_8c.html#a534722bf45958532404e7d2d3f0536cb" title="returns the native uint32_t representation from the rdf.">ldns_rdf2native_int32</a>(rdf), time(NULL), &amp;tm)
<a name="l00354"></a>00354             &amp;&amp; strftime(date_buf, 15, <span class="stringliteral">&quot;%Y%m%d%H%M%S&quot;</span>, &amp;tm)) {
<a name="l00355"></a>00355                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, date_buf);
<a name="l00356"></a>00356         }
<a name="l00357"></a>00357         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00358"></a>00358 }
<a name="l00359"></a>00359 
<a name="l00360"></a>00360 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00361"></a><a class="code" href="host2str_8h.html#ade1dc3233c0db7ff4bbb5d424987c3e7">00361</a> <a class="code" href="host2str_8c.html#ade1dc3233c0db7ff4bbb5d424987c3e7" title="Converts an LDNS_RDF_TYPE_A rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_a</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00362"></a>00362 {
<a name="l00363"></a>00363         <span class="keywordtype">char</span> str[<a class="code" href="host2str_8c.html#a93b37007689284fd9c4bde1a8f4b9199">INET_ADDRSTRLEN</a>];
<a name="l00364"></a>00364 
<a name="l00365"></a>00365         <span class="keywordflow">if</span> (<a class="code" href="config_8h.html#a2a4b830a00870799ee852d4c6a72a1eb">inet_ntop</a>(AF_INET, <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf), str, <a class="code" href="host2str_8c.html#a93b37007689284fd9c4bde1a8f4b9199">INET_ADDRSTRLEN</a>)) {
<a name="l00366"></a>00366                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, str);
<a name="l00367"></a>00367         }
<a name="l00368"></a>00368         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00369"></a>00369 }
<a name="l00370"></a>00370 
<a name="l00371"></a>00371 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00372"></a><a class="code" href="host2str_8h.html#afb514aeb9aca8e44b577cd5229f8135a">00372</a> <a class="code" href="host2str_8c.html#afb514aeb9aca8e44b577cd5229f8135a" title="Converts an LDNS_RDF_TYPE_AAAA rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_aaaa</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00373"></a>00373 {
<a name="l00374"></a>00374         <span class="keywordtype">char</span> str[<a class="code" href="host2str_8c.html#af776b22a727aae7c9f4d869d50df47e8">INET6_ADDRSTRLEN</a>];
<a name="l00375"></a>00375 
<a name="l00376"></a>00376         <span class="keywordflow">if</span> (<a class="code" href="config_8h.html#a2a4b830a00870799ee852d4c6a72a1eb">inet_ntop</a>(AF_INET6, <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf), str, <a class="code" href="host2str_8c.html#af776b22a727aae7c9f4d869d50df47e8">INET6_ADDRSTRLEN</a>)) {
<a name="l00377"></a>00377                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, str);
<a name="l00378"></a>00378         }
<a name="l00379"></a>00379 
<a name="l00380"></a>00380         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00381"></a>00381 }
<a name="l00382"></a>00382 
<a name="l00383"></a>00383 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00384"></a><a class="code" href="host2str_8h.html#a2da80ba46eb2bfeb546e8e71282649b9">00384</a> <a class="code" href="host2str_8c.html#a2da80ba46eb2bfeb546e8e71282649b9" title="Converts an LDNS_RDF_TYPE_STR rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00385"></a>00385 {
<a name="l00386"></a>00386         <span class="keyword">const</span> uint8_t *data = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf);
<a name="l00387"></a>00387         uint8_t length = data[0];
<a name="l00388"></a>00388         <span class="keywordtype">size_t</span> i;
<a name="l00389"></a>00389 
<a name="l00390"></a>00390         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\&quot;&quot;</span>);
<a name="l00391"></a>00391         <span class="keywordflow">for</span> (i = 1; i &lt;= length; ++i) {
<a name="l00392"></a>00392                 <span class="keywordtype">char</span> ch = (char) data[i];
<a name="l00393"></a>00393                 <span class="keywordflow">if</span> (isprint((<span class="keywordtype">int</span>)ch) || ch==<span class="charliteral">&#39;\t&#39;</span>) {
<a name="l00394"></a>00394                         <span class="keywordflow">if</span> (ch==<span class="charliteral">&#39;\&quot;&#39;</span>||ch==<span class="charliteral">&#39;\\&#39;</span>)
<a name="l00395"></a>00395                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\\%c&quot;</span>, ch);
<a name="l00396"></a>00396                         <span class="keywordflow">else</span>
<a name="l00397"></a>00397                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%c&quot;</span>, ch);
<a name="l00398"></a>00398                 } <span class="keywordflow">else</span> {
<a name="l00399"></a>00399                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\\%03u&quot;</span>,
<a name="l00400"></a>00400                                 (<span class="keywordtype">unsigned</span>)(uint8_t) ch);
<a name="l00401"></a>00401                 }
<a name="l00402"></a>00402         }
<a name="l00403"></a>00403         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\&quot;&quot;</span>);
<a name="l00404"></a>00404         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00405"></a>00405 }
<a name="l00406"></a>00406 
<a name="l00407"></a>00407 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00408"></a><a class="code" href="host2str_8h.html#a38095a6de4d3cb31140e5f809d1220e8">00408</a> <a class="code" href="host2str_8c.html#a38095a6de4d3cb31140e5f809d1220e8" title="Converts an LDNS_RDF_TYPE_B64 rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_b64</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00409"></a>00409 {
<a name="l00410"></a>00410         <span class="keywordtype">size_t</span> size = ldns_b64_ntop_calculate_size(<a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf));
<a name="l00411"></a>00411         <span class="keywordtype">char</span> *b64 = <a class="code" href="util_8h.html#aaad6949daea3c6cefd01d19300f6e21a">LDNS_XMALLOC</a>(<span class="keywordtype">char</span>, size);
<a name="l00412"></a>00412         <span class="keywordflow">if</span>(!b64) <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa81e80e66a14551db514726fa49290498">LDNS_STATUS_MEM_ERR</a>;
<a name="l00413"></a>00413         <span class="keywordflow">if</span> (<a class="code" href="config_8h.html#a26b78eee7494107c65d3e40198e8027d">ldns_b64_ntop</a>(<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf), <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf), b64, size)) {
<a name="l00414"></a>00414                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, b64);
<a name="l00415"></a>00415         }
<a name="l00416"></a>00416         <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(b64);
<a name="l00417"></a>00417         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00418"></a>00418 }
<a name="l00419"></a>00419 
<a name="l00420"></a>00420 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00421"></a><a class="code" href="host2str_8h.html#ab9157ac324278b9cd48b7efd7ab01f56">00421</a> <a class="code" href="host2str_8c.html#ab9157ac324278b9cd48b7efd7ab01f56" title="Converts an LDNS_RDF_TYPE_B32_EXT rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_b32_ext</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00422"></a>00422 {
<a name="l00423"></a>00423         <span class="keywordtype">size_t</span> size;
<a name="l00424"></a>00424         <span class="keywordtype">char</span> *b32;
<a name="l00425"></a>00425         <span class="keywordflow">if</span>(<a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) == 0)
<a name="l00426"></a>00426                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>;
<a name="l00427"></a>00427         <span class="comment">/* remove -1 for the b32-hash-len octet */</span>
<a name="l00428"></a>00428         size = ldns_b32_ntop_calculate_size(<a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) - 1);
<a name="l00429"></a>00429         <span class="comment">/* add one for the end nul for the string */</span>
<a name="l00430"></a>00430         b32 = <a class="code" href="util_8h.html#aaad6949daea3c6cefd01d19300f6e21a">LDNS_XMALLOC</a>(<span class="keywordtype">char</span>, size + 1);
<a name="l00431"></a>00431         <span class="keywordflow">if</span>(!b32) <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa81e80e66a14551db514726fa49290498">LDNS_STATUS_MEM_ERR</a>;
<a name="l00432"></a>00432         size = (size_t) <a class="code" href="util_8h.html#a1131c0b74b8b1d94d673aa222d0ef54b">ldns_b32_ntop_extended_hex</a>(<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf) + 1,
<a name="l00433"></a>00433                 <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) - 1, b32, size+1);
<a name="l00434"></a>00434         <span class="keywordflow">if</span> (size &gt; 0) {
<a name="l00435"></a>00435                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, b32);
<a name="l00436"></a>00436         }
<a name="l00437"></a>00437         <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(b32);
<a name="l00438"></a>00438         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00439"></a>00439 }
<a name="l00440"></a>00440 
<a name="l00441"></a>00441 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00442"></a><a class="code" href="host2str_8h.html#a241cef60fa1838c8dc46eec7202f4d08">00442</a> <a class="code" href="host2str_8c.html#a241cef60fa1838c8dc46eec7202f4d08" title="Converts an LDNS_RDF_TYPE_HEX rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_hex</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00443"></a>00443 {
<a name="l00444"></a>00444         <span class="keywordtype">size_t</span> i;
<a name="l00445"></a>00445         <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf); i++) {
<a name="l00446"></a>00446                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%02x&quot;</span>, <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf)[i]);
<a name="l00447"></a>00447         }
<a name="l00448"></a>00448 
<a name="l00449"></a>00449         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00450"></a>00450 }
<a name="l00451"></a>00451 
<a name="l00452"></a>00452 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00453"></a><a class="code" href="host2str_8h.html#a3a94255b9d9cec5ec7e495b9e82eb1e1">00453</a> <a class="code" href="host2str_8c.html#a3a94255b9d9cec5ec7e495b9e82eb1e1" title="Converts an LDNS_RDF_TYPE_TYPE rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_type</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00454"></a>00454 {
<a name="l00455"></a>00455         uint16_t data = ldns_read_uint16(<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf));
<a name="l00456"></a>00456         <span class="keyword">const</span> <a class="code" href="structldns__struct__rr__descriptor.html" title="Contains all information about resource record types.">ldns_rr_descriptor</a> *descriptor;
<a name="l00457"></a>00457 
<a name="l00458"></a>00458         descriptor = <a class="code" href="rr_8c.html#a25e28bda55a3d8578f6377caafc9cfb0" title="returns the resource record descriptor for the given rr type.">ldns_rr_descript</a>(data);
<a name="l00459"></a>00459         <span class="keywordflow">if</span> (descriptor &amp;&amp; descriptor-&gt;<a class="code" href="structldns__struct__rr__descriptor.html#a45561d382b00d991f6690b8c2f1ed81d" title="Textual name of the RR type.">_name</a>) {
<a name="l00460"></a>00460                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, descriptor-&gt;<a class="code" href="structldns__struct__rr__descriptor.html#a45561d382b00d991f6690b8c2f1ed81d" title="Textual name of the RR type.">_name</a>);
<a name="l00461"></a>00461         } <span class="keywordflow">else</span> {
<a name="l00462"></a>00462                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;TYPE%u&quot;</span>, data);
<a name="l00463"></a>00463         }
<a name="l00464"></a>00464         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00465"></a>00465 }
<a name="l00466"></a>00466 
<a name="l00467"></a>00467 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00468"></a><a class="code" href="host2str_8h.html#ac52beaaab2fc2fd8527eee245cea2387">00468</a> <a class="code" href="host2str_8c.html#ac52beaaab2fc2fd8527eee245cea2387" title="Converts an LDNS_RDF_TYPE_CLASS rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_class</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00469"></a>00469 {
<a name="l00470"></a>00470         uint16_t data = ldns_read_uint16(<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf));
<a name="l00471"></a>00471         <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> *lt;
<a name="l00472"></a>00472 
<a name="l00473"></a>00473         lt = <a class="code" href="util_8c.html#a42a73e82a0f0bf3ee979190b9cf81957">ldns_lookup_by_id</a>(ldns_rr_classes, (<span class="keywordtype">int</span>) data);
<a name="l00474"></a>00474         <span class="keywordflow">if</span> (lt) {
<a name="l00475"></a>00475                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\t%s&quot;</span>, lt-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>);
<a name="l00476"></a>00476         } <span class="keywordflow">else</span> {
<a name="l00477"></a>00477                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\tCLASS%d&quot;</span>, data);
<a name="l00478"></a>00478         }
<a name="l00479"></a>00479         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00480"></a>00480 }
<a name="l00481"></a>00481 
<a name="l00482"></a>00482 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00483"></a><a class="code" href="host2str_8h.html#ac24b0c65d7aa0dcb8aa6863bed778307">00483</a> <a class="code" href="host2str_8c.html#ac24b0c65d7aa0dcb8aa6863bed778307" title="Converts an LDNS_RDF_TYPE_CERT rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_cert_alg</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00484"></a>00484 {
<a name="l00485"></a>00485         uint16_t data = ldns_read_uint16(<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf));
<a name="l00486"></a>00486         <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> *lt;
<a name="l00487"></a>00487         lt = <a class="code" href="util_8c.html#a42a73e82a0f0bf3ee979190b9cf81957">ldns_lookup_by_id</a>(ldns_cert_algorithms, (<span class="keywordtype">int</span>) data);
<a name="l00488"></a>00488         <span class="keywordflow">if</span> (lt) {
<a name="l00489"></a>00489                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, lt-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>);
<a name="l00490"></a>00490         } <span class="keywordflow">else</span> {
<a name="l00491"></a>00491                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%d&quot;</span>, data);
<a name="l00492"></a>00492         }
<a name="l00493"></a>00493         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00494"></a>00494 }
<a name="l00495"></a>00495 
<a name="l00496"></a>00496 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00497"></a><a class="code" href="host2str_8h.html#aa529bcd98fc7177da8b1f0f2022e0687">00497</a> <a class="code" href="host2str_8c.html#aa529bcd98fc7177da8b1f0f2022e0687" title="Converts an LDNS_RDF_TYPE_ALG rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_alg</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00498"></a>00498 {
<a name="l00499"></a>00499         <span class="comment">/* don&#39;t use algorithm mnemonics in the presentation format</span>
<a name="l00500"></a>00500 <span class="comment">           this kind of got sneaked into the rfc&#39;s */</span>
<a name="l00501"></a>00501         uint8_t data = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf)[0];
<a name="l00502"></a>00502                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%d&quot;</span>, data);
<a name="l00503"></a>00503         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00504"></a>00504 }
<a name="l00505"></a>00505 
<a name="l00506"></a>00506 <span class="keyword">static</span> <span class="keywordtype">void</span>
<a name="l00507"></a>00507 loc_cm_print(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, uint8_t mantissa, uint8_t exponent)
<a name="l00508"></a>00508 {
<a name="l00509"></a>00509         uint8_t i;
<a name="l00510"></a>00510         <span class="comment">/* is it 0.&lt;two digits&gt; ? */</span>
<a name="l00511"></a>00511         <span class="keywordflow">if</span>(exponent &lt; 2) {
<a name="l00512"></a>00512                 <span class="keywordflow">if</span>(exponent == 1)
<a name="l00513"></a>00513                         mantissa *= 10;
<a name="l00514"></a>00514                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;0.%02ld&quot;</span>, (<span class="keywordtype">long</span>)mantissa);
<a name="l00515"></a>00515                 <span class="keywordflow">return</span>;
<a name="l00516"></a>00516         }
<a name="l00517"></a>00517         <span class="comment">/* always &lt;digit&gt;&lt;string of zeros&gt; */</span>
<a name="l00518"></a>00518         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%d&quot;</span>, (<span class="keywordtype">int</span>)mantissa);
<a name="l00519"></a>00519         <span class="keywordflow">for</span>(i=0; i&lt;exponent-2; i++)
<a name="l00520"></a>00520                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;0&quot;</span>);
<a name="l00521"></a>00521 }
<a name="l00522"></a>00522 
<a name="l00523"></a>00523 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00524"></a><a class="code" href="host2str_8h.html#aecb492991ad86b06df8c7f3cd8ae8c71">00524</a> <a class="code" href="host2str_8c.html#aecb492991ad86b06df8c7f3cd8ae8c71" title="Converts an ldns_rr_type value to its string representation, and places it in the given buffer...">ldns_rr_type2buffer_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> type)
<a name="l00525"></a>00525 {
<a name="l00526"></a>00526         <span class="keyword">const</span> <a class="code" href="structldns__struct__rr__descriptor.html" title="Contains all information about resource record types.">ldns_rr_descriptor</a> *descriptor;
<a name="l00527"></a>00527 
<a name="l00528"></a>00528         descriptor = <a class="code" href="rr_8c.html#a25e28bda55a3d8578f6377caafc9cfb0" title="returns the resource record descriptor for the given rr type.">ldns_rr_descript</a>(type);
<a name="l00529"></a>00529 
<a name="l00530"></a>00530         <span class="keywordflow">if</span> (descriptor &amp;&amp; descriptor-&gt;<a class="code" href="structldns__struct__rr__descriptor.html#a45561d382b00d991f6690b8c2f1ed81d" title="Textual name of the RR type.">_name</a>) {
<a name="l00531"></a>00531                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, descriptor-&gt;<a class="code" href="structldns__struct__rr__descriptor.html#a45561d382b00d991f6690b8c2f1ed81d" title="Textual name of the RR type.">_name</a>);
<a name="l00532"></a>00532         } <span class="keywordflow">else</span> {
<a name="l00533"></a>00533                 <span class="comment">/* exceptions for pseudotypes */</span>
<a name="l00534"></a>00534                 <span class="keywordflow">switch</span> (type) {
<a name="l00535"></a>00535                         <span class="keywordflow">case</span> <a class="code" href="rr_8h.html#a640100112b0009efe3d61bbf799b33daa25f149c482df6ef08ab5cf51f70c3526">LDNS_RR_TYPE_IXFR</a>:
<a name="l00536"></a>00536                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;IXFR&quot;</span>);
<a name="l00537"></a>00537                                 <span class="keywordflow">break</span>;
<a name="l00538"></a>00538                         <span class="keywordflow">case</span> <a class="code" href="rr_8h.html#a640100112b0009efe3d61bbf799b33daaac2bbbc7ed35b0a360ced7cc8a833a5b">LDNS_RR_TYPE_AXFR</a>:
<a name="l00539"></a>00539                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;AXFR&quot;</span>);
<a name="l00540"></a>00540                                 <span class="keywordflow">break</span>;
<a name="l00541"></a>00541                         <span class="keywordflow">case</span> <a class="code" href="rr_8h.html#a640100112b0009efe3d61bbf799b33daa82b3171b69379b4285a49ba12ce6d66f" title="A request for mail agent RRs (Obsolete - see MX)">LDNS_RR_TYPE_MAILA</a>:
<a name="l00542"></a>00542                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;MAILA&quot;</span>);
<a name="l00543"></a>00543                                 <span class="keywordflow">break</span>;
<a name="l00544"></a>00544                         <span class="keywordflow">case</span> <a class="code" href="rr_8h.html#a640100112b0009efe3d61bbf799b33daae76a3b4bded5232243bb481ce9cec1b4" title="A request for mailbox-related records (MB, MG or MR)">LDNS_RR_TYPE_MAILB</a>:
<a name="l00545"></a>00545                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;MAILB&quot;</span>);
<a name="l00546"></a>00546                                 <span class="keywordflow">break</span>;
<a name="l00547"></a>00547                         <span class="keywordflow">case</span> <a class="code" href="rr_8h.html#a640100112b0009efe3d61bbf799b33daaaf61aabdb114afa6bbcb320f10832671" title="any type (wildcard)">LDNS_RR_TYPE_ANY</a>:
<a name="l00548"></a>00548                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;ANY&quot;</span>);
<a name="l00549"></a>00549                                 <span class="keywordflow">break</span>;
<a name="l00550"></a>00550                         <span class="keywordflow">default</span>:
<a name="l00551"></a>00551                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;TYPE%u&quot;</span>, type);
<a name="l00552"></a>00552                 }
<a name="l00553"></a>00553         }
<a name="l00554"></a>00554         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00555"></a>00555 }
<a name="l00556"></a>00556 
<a name="l00557"></a>00557 <span class="keywordtype">char</span> *
<a name="l00558"></a><a class="code" href="host2str_8h.html#a338b525d456c7c35b684aadb723690ba">00558</a> <a class="code" href="host2str_8c.html#a338b525d456c7c35b684aadb723690ba" title="Converts an ldns_rr_type value to its string representation, and returns that string.">ldns_rr_type2str</a>(<span class="keyword">const</span> <a class="code" href="rr_8h.html#a5b71c1de711a178f6fbda5d684cdfed5">ldns_rr_type</a> type)
<a name="l00559"></a>00559 {
<a name="l00560"></a>00560         <span class="keywordtype">char</span> *str;
<a name="l00561"></a>00561         <a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *buf;
<a name="l00562"></a>00562 
<a name="l00563"></a>00563         buf = <a class="code" href="buffer_8c.html#ac6d413e9a76bf7e7c2022f13e36b9900" title="creates a new buffer with the specified capacity.">ldns_buffer_new</a>(10);
<a name="l00564"></a>00564         <span class="keywordflow">if</span> (!buf) {
<a name="l00565"></a>00565                 <span class="keywordflow">return</span> NULL;
<a name="l00566"></a>00566         }
<a name="l00567"></a>00567 
<a name="l00568"></a>00568         str = NULL;
<a name="l00569"></a>00569         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#aecb492991ad86b06df8c7f3cd8ae8c71" title="Converts an ldns_rr_type value to its string representation, and places it in the given buffer...">ldns_rr_type2buffer_str</a>(buf, type) == <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l00570"></a>00570                 str = <a class="code" href="host2str_8c.html#a8fd566da148ea9c590b0bb17b8aa71af" title="Returns the data in the buffer as a null terminated char * string Buffer data must be char * type...">ldns_buffer2str</a>(buf);
<a name="l00571"></a>00571         }
<a name="l00572"></a>00572 
<a name="l00573"></a>00573         <a class="code" href="buffer_8c.html#a1615da957ad5a24a8b5cc1ba2f2b7f44" title="frees the buffer.">ldns_buffer_free</a>(buf);
<a name="l00574"></a>00574         <span class="keywordflow">return</span> str;
<a name="l00575"></a>00575 }
<a name="l00576"></a>00576 
<a name="l00577"></a>00577 
<a name="l00578"></a>00578 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00579"></a><a class="code" href="host2str_8h.html#a7b74c6251ae331da659d7dfa7be23479">00579</a> <a class="code" href="host2str_8c.html#a7b74c6251ae331da659d7dfa7be23479" title="Converts an ldns_rr_class value to its string representation, and places it in the given buffer...">ldns_rr_class2buffer_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output,
<a name="l00580"></a>00580                          <span class="keyword">const</span> <a class="code" href="rr_8h.html#aa11e99c7e7c630e03373f2a2cafc4ee9">ldns_rr_class</a> klass)
<a name="l00581"></a>00581 {
<a name="l00582"></a>00582         <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> *lt;
<a name="l00583"></a>00583 
<a name="l00584"></a>00584         lt = <a class="code" href="util_8c.html#a42a73e82a0f0bf3ee979190b9cf81957">ldns_lookup_by_id</a>(ldns_rr_classes, klass);
<a name="l00585"></a>00585         <span class="keywordflow">if</span> (lt) {
<a name="l00586"></a>00586                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, lt-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>);
<a name="l00587"></a>00587         } <span class="keywordflow">else</span> {
<a name="l00588"></a>00588                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;CLASS%d&quot;</span>, klass);
<a name="l00589"></a>00589         }
<a name="l00590"></a>00590         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00591"></a>00591 }
<a name="l00592"></a>00592 
<a name="l00593"></a>00593 <span class="keywordtype">char</span> *
<a name="l00594"></a><a class="code" href="host2str_8h.html#a0889d0b66c73ee5734973115321b6620">00594</a> <a class="code" href="host2str_8c.html#a0889d0b66c73ee5734973115321b6620" title="Converts an ldns_rr_class value to its string representation, and returns that string.">ldns_rr_class2str</a>(<span class="keyword">const</span> <a class="code" href="rr_8h.html#aa11e99c7e7c630e03373f2a2cafc4ee9">ldns_rr_class</a> klass)
<a name="l00595"></a>00595 {
<a name="l00596"></a>00596         <a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *buf;
<a name="l00597"></a>00597         <span class="keywordtype">char</span> *str;
<a name="l00598"></a>00598 
<a name="l00599"></a>00599         buf = <a class="code" href="buffer_8c.html#ac6d413e9a76bf7e7c2022f13e36b9900" title="creates a new buffer with the specified capacity.">ldns_buffer_new</a>(10);
<a name="l00600"></a>00600         <span class="keywordflow">if</span> (!buf) {
<a name="l00601"></a>00601                 <span class="keywordflow">return</span> NULL;
<a name="l00602"></a>00602         }
<a name="l00603"></a>00603 
<a name="l00604"></a>00604         str = NULL;
<a name="l00605"></a>00605         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a7b74c6251ae331da659d7dfa7be23479" title="Converts an ldns_rr_class value to its string representation, and places it in the given buffer...">ldns_rr_class2buffer_str</a>(buf, klass) == <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l00606"></a>00606                 str = <a class="code" href="host2str_8c.html#a8fd566da148ea9c590b0bb17b8aa71af" title="Returns the data in the buffer as a null terminated char * string Buffer data must be char * type...">ldns_buffer2str</a>(buf);
<a name="l00607"></a>00607         }
<a name="l00608"></a>00608         <a class="code" href="buffer_8c.html#a1615da957ad5a24a8b5cc1ba2f2b7f44" title="frees the buffer.">ldns_buffer_free</a>(buf);
<a name="l00609"></a>00609         <span class="keywordflow">return</span> str;
<a name="l00610"></a>00610 }
<a name="l00611"></a>00611 
<a name="l00612"></a>00612 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00613"></a><a class="code" href="host2str_8h.html#a3025b6a2c6681c153dc24310cfd9a3f4">00613</a> <a class="code" href="host2str_8c.html#a3025b6a2c6681c153dc24310cfd9a3f4" title="Converts an LDNS_RDF_TYPE_LOC rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_loc</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00614"></a>00614 {
<a name="l00615"></a>00615         <span class="comment">/* we could do checking (ie degrees &lt; 90 etc)? */</span>
<a name="l00616"></a>00616         uint8_t version = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf)[0];
<a name="l00617"></a>00617         uint8_t size;
<a name="l00618"></a>00618         uint8_t horizontal_precision;
<a name="l00619"></a>00619         uint8_t vertical_precision;
<a name="l00620"></a>00620         uint32_t longitude;
<a name="l00621"></a>00621         uint32_t latitude;
<a name="l00622"></a>00622         uint32_t altitude;
<a name="l00623"></a>00623         <span class="keywordtype">char</span> northerness;
<a name="l00624"></a>00624         <span class="keywordtype">char</span> easterness;
<a name="l00625"></a>00625         uint32_t h;
<a name="l00626"></a>00626         uint32_t m;
<a name="l00627"></a>00627         <span class="keywordtype">double</span> s;
<a name="l00628"></a>00628 
<a name="l00629"></a>00629         uint32_t equator = (uint32_t) ldns_power(2, 31);
<a name="l00630"></a>00630 
<a name="l00631"></a>00631         <span class="keywordflow">if</span> (version == 0) {
<a name="l00632"></a>00632                 size = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf)[1];
<a name="l00633"></a>00633                 horizontal_precision = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf)[2];
<a name="l00634"></a>00634                 vertical_precision = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf)[3];
<a name="l00635"></a>00635 
<a name="l00636"></a>00636                 latitude = ldns_read_uint32(&amp;<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf)[4]);
<a name="l00637"></a>00637                 longitude = ldns_read_uint32(&amp;<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf)[8]);
<a name="l00638"></a>00638                 altitude = ldns_read_uint32(&amp;<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf)[12]);
<a name="l00639"></a>00639 
<a name="l00640"></a>00640                 <span class="keywordflow">if</span> (latitude &gt; equator) {
<a name="l00641"></a>00641                         northerness = <span class="charliteral">&#39;N&#39;</span>;
<a name="l00642"></a>00642                         latitude = latitude - equator;
<a name="l00643"></a>00643                 } <span class="keywordflow">else</span> {
<a name="l00644"></a>00644                         northerness = <span class="charliteral">&#39;S&#39;</span>;
<a name="l00645"></a>00645                         latitude = equator - latitude;
<a name="l00646"></a>00646                 }
<a name="l00647"></a>00647                 h = latitude / (1000 * 60 * 60);
<a name="l00648"></a>00648                 latitude = latitude % (1000 * 60 * 60);
<a name="l00649"></a>00649                 m = latitude / (1000 * 60);
<a name="l00650"></a>00650                 latitude = latitude % (1000 * 60);
<a name="l00651"></a>00651                 s = (double) latitude / 1000.0;
<a name="l00652"></a>00652                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%02u %02u %0.3f %c &quot;</span>,
<a name="l00653"></a>00653                         h, m, s, northerness);
<a name="l00654"></a>00654 
<a name="l00655"></a>00655                 <span class="keywordflow">if</span> (longitude &gt; equator) {
<a name="l00656"></a>00656                         easterness = <span class="charliteral">&#39;E&#39;</span>;
<a name="l00657"></a>00657                         longitude = longitude - equator;
<a name="l00658"></a>00658                 } <span class="keywordflow">else</span> {
<a name="l00659"></a>00659                         easterness = <span class="charliteral">&#39;W&#39;</span>;
<a name="l00660"></a>00660                         longitude = equator - longitude;
<a name="l00661"></a>00661                 }
<a name="l00662"></a>00662                 h = longitude / (1000 * 60 * 60);
<a name="l00663"></a>00663                 longitude = longitude % (1000 * 60 * 60);
<a name="l00664"></a>00664                 m = longitude / (1000 * 60);
<a name="l00665"></a>00665                 longitude = longitude % (1000 * 60);
<a name="l00666"></a>00666                 s = (double) longitude / (1000.0);
<a name="l00667"></a>00667                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%02u %02u %0.3f %c &quot;</span>,
<a name="l00668"></a>00668                         h, m, s, easterness);
<a name="l00669"></a>00669 
<a name="l00670"></a>00670 
<a name="l00671"></a>00671         s = ((double) altitude) / 100;
<a name="l00672"></a>00672         s -= 100000;
<a name="l00673"></a>00673 
<a name="l00674"></a>00674                 <span class="keywordflow">if</span>(altitude%100 != 0)
<a name="l00675"></a>00675                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%.2f&quot;</span>, s);
<a name="l00676"></a>00676         <span class="keywordflow">else</span>
<a name="l00677"></a>00677                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%.0f&quot;</span>, s);
<a name="l00678"></a>00678 
<a name="l00679"></a>00679                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;m &quot;</span>);
<a name="l00680"></a>00680 
<a name="l00681"></a>00681                 loc_cm_print(output, (size &amp; 0xf0) &gt;&gt; 4, size &amp; 0x0f);
<a name="l00682"></a>00682                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;m &quot;</span>);
<a name="l00683"></a>00683 
<a name="l00684"></a>00684                 loc_cm_print(output, (horizontal_precision &amp; 0xf0) &gt;&gt; 4,
<a name="l00685"></a>00685                         horizontal_precision &amp; 0x0f);
<a name="l00686"></a>00686                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;m &quot;</span>);
<a name="l00687"></a>00687 
<a name="l00688"></a>00688                 loc_cm_print(output, (vertical_precision &amp; 0xf0) &gt;&gt; 4,
<a name="l00689"></a>00689                         vertical_precision &amp; 0x0f);
<a name="l00690"></a>00690                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;m&quot;</span>);
<a name="l00691"></a>00691 
<a name="l00692"></a>00692                 <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00693"></a>00693         } <span class="keywordflow">else</span> {
<a name="l00694"></a>00694                 <span class="keywordflow">return</span> <a class="code" href="host2str_8c.html#a241cef60fa1838c8dc46eec7202f4d08" title="Converts an LDNS_RDF_TYPE_HEX rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_hex</a>(output, rdf);
<a name="l00695"></a>00695         }
<a name="l00696"></a>00696 }
<a name="l00697"></a>00697 
<a name="l00698"></a>00698 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00699"></a><a class="code" href="host2str_8h.html#abce0b2c65c5fc176be86b8554ae4b46c">00699</a> <a class="code" href="host2str_8c.html#abce0b2c65c5fc176be86b8554ae4b46c" title="Converts an LDNS_RDF_TYPE_UNKNOWN rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_unknown</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00700"></a>00700 {
<a name="l00701"></a>00701         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\\# %u &quot;</span>, <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf));
<a name="l00702"></a>00702         <span class="keywordflow">return</span> <a class="code" href="host2str_8c.html#a241cef60fa1838c8dc46eec7202f4d08" title="Converts an LDNS_RDF_TYPE_HEX rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_hex</a>(output, rdf);
<a name="l00703"></a>00703 }
<a name="l00704"></a>00704 
<a name="l00705"></a>00705 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00706"></a><a class="code" href="host2str_8h.html#a33f9d0bb13cd0f6dbb45674bde607f52">00706</a> <a class="code" href="host2str_8c.html#a33f9d0bb13cd0f6dbb45674bde607f52" title="Converts an LDNS_RDF_TYPE_NSAP rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_nsap</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00707"></a>00707 {
<a name="l00708"></a>00708         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;0x&quot;</span>);
<a name="l00709"></a>00709         <span class="keywordflow">return</span> <a class="code" href="host2str_8c.html#a241cef60fa1838c8dc46eec7202f4d08" title="Converts an LDNS_RDF_TYPE_HEX rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_hex</a>(output, rdf);
<a name="l00710"></a>00710 }
<a name="l00711"></a>00711 
<a name="l00712"></a>00712 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00713"></a><a class="code" href="host2str_8h.html#afb756e8230bbfcfb4687eab30332dc13">00713</a> <a class="code" href="host2str_8c.html#afb756e8230bbfcfb4687eab30332dc13" title="Converts an LDNS_RDF_TYPE_ATMA rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_atma</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00714"></a>00714 {
<a name="l00715"></a>00715         <span class="keywordflow">return</span> <a class="code" href="host2str_8c.html#a241cef60fa1838c8dc46eec7202f4d08" title="Converts an LDNS_RDF_TYPE_HEX rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_hex</a>(output, rdf);
<a name="l00716"></a>00716 }
<a name="l00717"></a>00717 
<a name="l00718"></a>00718 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00719"></a><a class="code" href="host2str_8h.html#a087190336e4c17a3752d9d0a8a893ece">00719</a> <a class="code" href="host2str_8c.html#a087190336e4c17a3752d9d0a8a893ece" title="Converts an LDNS_RDF_TYPE_WKS rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_wks</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00720"></a>00720 {
<a name="l00721"></a>00721         <span class="comment">/* protocol, followed by bitmap of services */</span>
<a name="l00722"></a>00722         <span class="keyword">struct </span>protoent *protocol;
<a name="l00723"></a>00723         <span class="keywordtype">char</span> *proto_name = NULL;
<a name="l00724"></a>00724         uint8_t protocol_nr;
<a name="l00725"></a>00725         <span class="keyword">struct </span>servent *service;
<a name="l00726"></a>00726         uint16_t current_service;
<a name="l00727"></a>00727 
<a name="l00728"></a>00728         protocol_nr = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf)[0];
<a name="l00729"></a>00729         protocol = getprotobynumber((<span class="keywordtype">int</span>) protocol_nr);
<a name="l00730"></a>00730         <span class="keywordflow">if</span> (protocol &amp;&amp; (protocol-&gt;p_name != NULL)) {
<a name="l00731"></a>00731                 proto_name = protocol-&gt;p_name;
<a name="l00732"></a>00732                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s &quot;</span>, protocol-&gt;p_name);
<a name="l00733"></a>00733         } <span class="keywordflow">else</span> {
<a name="l00734"></a>00734                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%u &quot;</span>, protocol_nr);
<a name="l00735"></a>00735         }
<a name="l00736"></a>00736 
<a name="l00737"></a>00737 <span class="preprocessor">#ifdef HAVE_ENDPROTOENT</span>
<a name="l00738"></a>00738 <span class="preprocessor"></span>        endprotoent();
<a name="l00739"></a>00739 <span class="preprocessor">#endif</span>
<a name="l00740"></a>00740 <span class="preprocessor"></span>
<a name="l00741"></a>00741         <span class="keywordflow">for</span> (current_service = 0;
<a name="l00742"></a>00742              current_service &lt; <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) * 7; current_service++) {
<a name="l00743"></a>00743                 <span class="keywordflow">if</span> (<a class="code" href="util_8c.html#ac0cfcc1f93a2aaf7fb61804cf844faef" title="Returns the value of the specified bit The bits are counted from left to right, so bit #0 is the left...">ldns_get_bit</a>(&amp;(<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf)[1]), current_service)) {
<a name="l00744"></a>00744                         service = getservbyport((<span class="keywordtype">int</span>) htons(current_service),
<a name="l00745"></a>00745                                                 proto_name);
<a name="l00746"></a>00746                         <span class="keywordflow">if</span> (service &amp;&amp; service-&gt;s_name) {
<a name="l00747"></a>00747                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s &quot;</span>, service-&gt;s_name);
<a name="l00748"></a>00748                         } <span class="keywordflow">else</span> {
<a name="l00749"></a>00749                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%u &quot;</span>, current_service);
<a name="l00750"></a>00750                         }
<a name="l00751"></a>00751 <span class="preprocessor">#ifdef HAVE_ENDSERVENT</span>
<a name="l00752"></a>00752 <span class="preprocessor"></span>                        endservent();
<a name="l00753"></a>00753 <span class="preprocessor">#endif</span>
<a name="l00754"></a>00754 <span class="preprocessor"></span>                }
<a name="l00755"></a>00755         }
<a name="l00756"></a>00756         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00757"></a>00757 }
<a name="l00758"></a>00758 
<a name="l00759"></a>00759 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00760"></a><a class="code" href="host2str_8h.html#ab099118af3b070e1b849a85bba925335">00760</a> <a class="code" href="host2str_8c.html#ab099118af3b070e1b849a85bba925335" title="Converts an LDNS_RDF_TYPE_NSEC rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_nsec</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00761"></a>00761 {
<a name="l00762"></a>00762         <span class="comment">/* Note: this code is duplicated in higher.c in</span>
<a name="l00763"></a>00763 <span class="comment">         * ldns_nsec_type_check() function</span>
<a name="l00764"></a>00764 <span class="comment">         */</span>
<a name="l00765"></a>00765         uint8_t window_block_nr;
<a name="l00766"></a>00766         uint8_t bitmap_length;
<a name="l00767"></a>00767         uint16_t type;
<a name="l00768"></a>00768         uint16_t pos = 0;
<a name="l00769"></a>00769         uint16_t bit_pos;
<a name="l00770"></a>00770         uint8_t *data = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf);
<a name="l00771"></a>00771         <span class="keyword">const</span> <a class="code" href="structldns__struct__rr__descriptor.html" title="Contains all information about resource record types.">ldns_rr_descriptor</a> *descriptor;
<a name="l00772"></a>00772 
<a name="l00773"></a>00773         <span class="keywordflow">while</span>(pos &lt; <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf)) {
<a name="l00774"></a>00774                 window_block_nr = data[pos];
<a name="l00775"></a>00775                 bitmap_length = data[pos + 1];
<a name="l00776"></a>00776                 pos += 2;
<a name="l00777"></a>00777 
<a name="l00778"></a>00778                 <span class="keywordflow">for</span> (bit_pos = 0; bit_pos &lt; (bitmap_length) * 8; bit_pos++) {
<a name="l00779"></a>00779                         <span class="keywordflow">if</span> (<a class="code" href="util_8c.html#ac0cfcc1f93a2aaf7fb61804cf844faef" title="Returns the value of the specified bit The bits are counted from left to right, so bit #0 is the left...">ldns_get_bit</a>(&amp;data[pos], bit_pos)) {
<a name="l00780"></a>00780                                 type = 256 * (uint16_t) window_block_nr + bit_pos;
<a name="l00781"></a>00781                                 descriptor = <a class="code" href="rr_8c.html#a25e28bda55a3d8578f6377caafc9cfb0" title="returns the resource record descriptor for the given rr type.">ldns_rr_descript</a>(type);
<a name="l00782"></a>00782 
<a name="l00783"></a>00783                                 <span class="keywordflow">if</span> (descriptor &amp;&amp; descriptor-&gt;<a class="code" href="structldns__struct__rr__descriptor.html#a45561d382b00d991f6690b8c2f1ed81d" title="Textual name of the RR type.">_name</a>) {
<a name="l00784"></a>00784                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s &quot;</span>,
<a name="l00785"></a>00785                                                         descriptor-&gt;<a class="code" href="structldns__struct__rr__descriptor.html#a45561d382b00d991f6690b8c2f1ed81d" title="Textual name of the RR type.">_name</a>);
<a name="l00786"></a>00786                                 } <span class="keywordflow">else</span> {
<a name="l00787"></a>00787                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;TYPE%u &quot;</span>, type);
<a name="l00788"></a>00788                                 }
<a name="l00789"></a>00789                         }
<a name="l00790"></a>00790                 }
<a name="l00791"></a>00791 
<a name="l00792"></a>00792                 pos += (uint16_t) bitmap_length;
<a name="l00793"></a>00793         }
<a name="l00794"></a>00794 
<a name="l00795"></a>00795         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00796"></a>00796 }
<a name="l00797"></a>00797 
<a name="l00798"></a>00798 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00799"></a><a class="code" href="host2str_8h.html#ae4b629f6a2338a0d1e7fd3a63e51dc68">00799</a> <a class="code" href="host2str_8c.html#ae4b629f6a2338a0d1e7fd3a63e51dc68" title="Converts an LDNS_RDF_TYPE_NSEC3_SALT rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_nsec3_salt</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00800"></a>00800 {
<a name="l00801"></a>00801         uint8_t salt_length;
<a name="l00802"></a>00802         uint8_t salt_pos;
<a name="l00803"></a>00803 
<a name="l00804"></a>00804         uint8_t *data = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf);
<a name="l00805"></a>00805 
<a name="l00806"></a>00806         <span class="keywordflow">if</span>(<a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) == 0) {
<a name="l00807"></a>00807                 output-&gt;<a class="code" href="structldns__struct__buffer.html#ad19d973074968b399a74f32b6402c05c" title="The current state of the buffer.">_status</a> = <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa804a996d5f13cda0806bf1d54114d2ca">LDNS_STATUS_ERR</a>;
<a name="l00808"></a>00808                 <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00809"></a>00809         }
<a name="l00810"></a>00810         salt_length = data[0];
<a name="l00811"></a>00811         <span class="comment">/* from now there are variable length entries so remember pos */</span>
<a name="l00812"></a>00812         <span class="keywordflow">if</span> (salt_length == 0 || ((<span class="keywordtype">size_t</span>)salt_length)+1 &gt; <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf)) {
<a name="l00813"></a>00813                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;- &quot;</span>);
<a name="l00814"></a>00814         } <span class="keywordflow">else</span> {
<a name="l00815"></a>00815                 <span class="keywordflow">for</span> (salt_pos = 0; salt_pos &lt; salt_length; salt_pos++) {
<a name="l00816"></a>00816                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%02x&quot;</span>, data[1 + salt_pos]);
<a name="l00817"></a>00817                 }
<a name="l00818"></a>00818                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot; &quot;</span>);
<a name="l00819"></a>00819         }
<a name="l00820"></a>00820 
<a name="l00821"></a>00821         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00822"></a>00822 }
<a name="l00823"></a>00823 
<a name="l00824"></a>00824 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00825"></a><a class="code" href="host2str_8h.html#ace9cb274b2ef0d77bd74b9ce3a813078">00825</a> <a class="code" href="host2str_8c.html#ace9cb274b2ef0d77bd74b9ce3a813078" title="Converts an LDNS_RDF_TYPE_PERIOD rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_period</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00826"></a>00826 {
<a name="l00827"></a>00827         <span class="comment">/* period is the number of seconds */</span>
<a name="l00828"></a>00828         uint32_t p = ldns_read_uint32(<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf));
<a name="l00829"></a>00829         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%u&quot;</span>, p);
<a name="l00830"></a>00830         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00831"></a>00831 }
<a name="l00832"></a>00832 
<a name="l00833"></a>00833 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00834"></a><a class="code" href="host2str_8h.html#aa1788acffdfa95896b68203cfcda0534">00834</a> <a class="code" href="host2str_8c.html#aa1788acffdfa95896b68203cfcda0534" title="Converts an LDNS_RDF_TYPE_TSIGTIME rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_tsigtime</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output,<span class="keyword">const</span>  <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00835"></a>00835 {
<a name="l00836"></a>00836         <span class="comment">/* tsigtime is 48 bits network order unsigned integer */</span>
<a name="l00837"></a>00837         uint64_t tsigtime = 0;
<a name="l00838"></a>00838         uint8_t *data = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf);
<a name="l00839"></a>00839 
<a name="l00840"></a>00840         <span class="keywordflow">if</span> (<a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) != 6) {
<a name="l00841"></a>00841                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa804a996d5f13cda0806bf1d54114d2ca">LDNS_STATUS_ERR</a>;
<a name="l00842"></a>00842         }
<a name="l00843"></a>00843 
<a name="l00844"></a>00844         tsigtime = ldns_read_uint16(data);
<a name="l00845"></a>00845         tsigtime *= 65536;
<a name="l00846"></a>00846         tsigtime += ldns_read_uint16(data+2);
<a name="l00847"></a>00847         tsigtime *= 65536;
<a name="l00848"></a>00848 
<a name="l00849"></a>00849         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%llu &quot;</span>, tsigtime);
<a name="l00850"></a>00850 
<a name="l00851"></a>00851         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00852"></a>00852 }
<a name="l00853"></a>00853 
<a name="l00854"></a>00854 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00855"></a><a class="code" href="host2str_8h.html#a30359a7c29a138e3340043f0497f2698">00855</a> <a class="code" href="host2str_8c.html#a30359a7c29a138e3340043f0497f2698" title="Converts an LDNS_RDF_TYPE_APL rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_apl</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00856"></a>00856 {
<a name="l00857"></a>00857         uint8_t *data = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf);
<a name="l00858"></a>00858         uint16_t address_family;
<a name="l00859"></a>00859         uint8_t prefix;
<a name="l00860"></a>00860         <span class="keywordtype">bool</span> negation;
<a name="l00861"></a>00861         uint8_t adf_length;
<a name="l00862"></a>00862         <span class="keywordtype">size_t</span> i;
<a name="l00863"></a>00863         <span class="keywordtype">size_t</span> pos = 0;
<a name="l00864"></a>00864 
<a name="l00865"></a>00865         <span class="keywordflow">while</span> (pos &lt; (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf)) {
<a name="l00866"></a>00866                 <span class="keywordflow">if</span>(pos + 3 &gt;= (<span class="keywordtype">unsigned</span>)<a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf))
<a name="l00867"></a>00867                         <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa964d481de70cdd4f7d14482e9464bc37">LDNS_STATUS_SYNTAX_RDATA_ERR</a>;
<a name="l00868"></a>00868                 address_family = ldns_read_uint16(&amp;data[pos]);
<a name="l00869"></a>00869                 prefix = data[pos + 2];
<a name="l00870"></a>00870                 negation = data[pos + 3] &amp; <a class="code" href="host2str_8h.html#ab628b858cf1381496b519158d0f0480a">LDNS_APL_NEGATION</a>;
<a name="l00871"></a>00871                 adf_length = data[pos + 3] &amp; <a class="code" href="host2str_8h.html#a111cee964412cda00980070cef911e3d">LDNS_APL_MASK</a>;
<a name="l00872"></a>00872                 <span class="keywordflow">if</span> (address_family == <a class="code" href="host2str_8h.html#a07e134cf6bfdd35ad24a9cf53890c4f1">LDNS_APL_IP4</a>) {
<a name="l00873"></a>00873                         <span class="comment">/* check if prefix &lt; 32? */</span>
<a name="l00874"></a>00874                         <span class="keywordflow">if</span> (negation) {
<a name="l00875"></a>00875                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;!&quot;</span>);
<a name="l00876"></a>00876                         }
<a name="l00877"></a>00877                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%u:&quot;</span>, address_family);
<a name="l00878"></a>00878                         <span class="comment">/* address is variable length 0 - 4 */</span>
<a name="l00879"></a>00879                         <span class="keywordflow">for</span> (i = 0; i &lt; 4; i++) {
<a name="l00880"></a>00880                                 <span class="keywordflow">if</span> (i &gt; 0) {
<a name="l00881"></a>00881                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;.&quot;</span>);
<a name="l00882"></a>00882                                 }
<a name="l00883"></a>00883                                 <span class="keywordflow">if</span> (i &lt; (<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>) adf_length) {
<a name="l00884"></a>00884                                         <span class="keywordflow">if</span>(pos+i+4 &gt;= <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf))
<a name="l00885"></a>00885                                                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa964d481de70cdd4f7d14482e9464bc37">LDNS_STATUS_SYNTAX_RDATA_ERR</a>;
<a name="l00886"></a>00886                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%d&quot;</span>,
<a name="l00887"></a>00887                                                            data[pos + i + 4]);
<a name="l00888"></a>00888                                 } <span class="keywordflow">else</span> {
<a name="l00889"></a>00889                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;0&quot;</span>);
<a name="l00890"></a>00890                                 }
<a name="l00891"></a>00891                         }
<a name="l00892"></a>00892                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;/%u &quot;</span>, prefix);
<a name="l00893"></a>00893                 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (address_family == <a class="code" href="host2str_8h.html#aa039534b670125d4acebba4fbd37810f">LDNS_APL_IP6</a>) {
<a name="l00894"></a>00894                         <span class="comment">/* check if prefix &lt; 128? */</span>
<a name="l00895"></a>00895                         <span class="keywordflow">if</span> (negation) {
<a name="l00896"></a>00896                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;!&quot;</span>);
<a name="l00897"></a>00897                         }
<a name="l00898"></a>00898                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%u:&quot;</span>, address_family);
<a name="l00899"></a>00899                         <span class="comment">/* address is variable length 0 - 16 */</span>
<a name="l00900"></a>00900                         <span class="keywordflow">for</span> (i = 0; i &lt; 16; i++) {
<a name="l00901"></a>00901                                 <span class="keywordflow">if</span> (i % 2 == 0 &amp;&amp; i &gt; 0) {
<a name="l00902"></a>00902                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;:&quot;</span>);
<a name="l00903"></a>00903                                 }
<a name="l00904"></a>00904                                 <span class="keywordflow">if</span> (i &lt; (<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>) adf_length) {
<a name="l00905"></a>00905                                         <span class="keywordflow">if</span>(pos+i+4 &gt;= <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf))
<a name="l00906"></a>00906                                                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa964d481de70cdd4f7d14482e9464bc37">LDNS_STATUS_SYNTAX_RDATA_ERR</a>;
<a name="l00907"></a>00907                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%02x&quot;</span>,
<a name="l00908"></a>00908                                                            data[pos + i + 4]);
<a name="l00909"></a>00909                                 } <span class="keywordflow">else</span> {
<a name="l00910"></a>00910                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;00&quot;</span>);
<a name="l00911"></a>00911                                 }
<a name="l00912"></a>00912                         }
<a name="l00913"></a>00913                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;/%u &quot;</span>, prefix);
<a name="l00914"></a>00914 
<a name="l00915"></a>00915                 } <span class="keywordflow">else</span> {
<a name="l00916"></a>00916                         <span class="comment">/* unknown address family */</span>
<a name="l00917"></a>00917                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Unknown address family: %u data: &quot;</span>,
<a name="l00918"></a>00918                                         address_family);
<a name="l00919"></a>00919                         <span class="keywordflow">for</span> (i = 1; i &lt; (<span class="keywordtype">unsigned</span> short) (4 + adf_length); i++) {
<a name="l00920"></a>00920                                 <span class="keywordflow">if</span>(pos+i &gt;= <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf))
<a name="l00921"></a>00921                                         <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa964d481de70cdd4f7d14482e9464bc37">LDNS_STATUS_SYNTAX_RDATA_ERR</a>;
<a name="l00922"></a>00922                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%02x&quot;</span>, data[i]);
<a name="l00923"></a>00923                         }
<a name="l00924"></a>00924                 }
<a name="l00925"></a>00925                 pos += 4 + adf_length;
<a name="l00926"></a>00926         }
<a name="l00927"></a>00927         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00928"></a>00928 }
<a name="l00929"></a>00929 
<a name="l00930"></a>00930 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00931"></a><a class="code" href="host2str_8h.html#afaccd01d2c90b7579d899e50540b41f4">00931</a> <a class="code" href="host2str_8c.html#afaccd01d2c90b7579d899e50540b41f4" title="Converts an LDNS_RDF_TYPE_INT16_DATA rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_int16_data</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00932"></a>00932 {
<a name="l00933"></a>00933         <span class="comment">/* Subtract the size (2) of the number that specifies the length */</span>
<a name="l00934"></a>00934         <span class="keywordtype">size_t</span> size = ldns_b64_ntop_calculate_size(<a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) - 2);
<a name="l00935"></a>00935         <span class="keywordtype">char</span> *b64 = <a class="code" href="util_8h.html#aaad6949daea3c6cefd01d19300f6e21a">LDNS_XMALLOC</a>(<span class="keywordtype">char</span>, size);
<a name="l00936"></a>00936         <span class="keywordflow">if</span>(!b64)
<a name="l00937"></a>00937                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa81e80e66a14551db514726fa49290498">LDNS_STATUS_MEM_ERR</a>;
<a name="l00938"></a>00938 
<a name="l00939"></a>00939         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%u &quot;</span>, <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) - 2);
<a name="l00940"></a>00940 
<a name="l00941"></a>00941         <span class="keywordflow">if</span> (<a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) &gt; 2 &amp;&amp;
<a name="l00942"></a>00942             <a class="code" href="config_8h.html#a26b78eee7494107c65d3e40198e8027d">ldns_b64_ntop</a>(<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf) + 2,
<a name="l00943"></a>00943                                    <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) - 2,
<a name="l00944"></a>00944                                    b64, size)) {
<a name="l00945"></a>00945                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%s&quot;</span>, b64);
<a name="l00946"></a>00946         }
<a name="l00947"></a>00947         <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(b64);
<a name="l00948"></a>00948         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l00949"></a>00949 }
<a name="l00950"></a>00950 
<a name="l00951"></a>00951 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l00952"></a><a class="code" href="host2str_8h.html#acc8d2520f3b8fe123ef5696b2c7350fc">00952</a> <a class="code" href="host2str_8c.html#acc8d2520f3b8fe123ef5696b2c7350fc" title="Converts an LDNS_RDF_TYPE_IPSECKEY rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_ipseckey</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l00953"></a>00953 {
<a name="l00954"></a>00954         <span class="comment">/* wire format from</span>
<a name="l00955"></a>00955 <span class="comment">           http://www.ietf.org/internet-drafts/draft-ietf-ipseckey-rr-12.txt</span>
<a name="l00956"></a>00956 <span class="comment">        */</span>
<a name="l00957"></a>00957         uint8_t *data = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf);
<a name="l00958"></a>00958         uint8_t precedence;
<a name="l00959"></a>00959         uint8_t gateway_type;
<a name="l00960"></a>00960         uint8_t algorithm;
<a name="l00961"></a>00961 
<a name="l00962"></a>00962         <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *gateway = NULL;
<a name="l00963"></a>00963         uint8_t *gateway_data;
<a name="l00964"></a>00964 
<a name="l00965"></a>00965         <span class="keywordtype">size_t</span> public_key_size;
<a name="l00966"></a>00966         uint8_t *public_key_data;
<a name="l00967"></a>00967         <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *public_key;
<a name="l00968"></a>00968 
<a name="l00969"></a>00969         <span class="keywordtype">size_t</span> offset = 0;
<a name="l00970"></a>00970         <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> status;
<a name="l00971"></a>00971 
<a name="l00972"></a>00972         precedence = data[0];
<a name="l00973"></a>00973         gateway_type = data[1];
<a name="l00974"></a>00974         algorithm = data[2];
<a name="l00975"></a>00975         offset = 3;
<a name="l00976"></a>00976 
<a name="l00977"></a>00977         <span class="keywordflow">switch</span> (gateway_type) {
<a name="l00978"></a>00978                 <span class="keywordflow">case</span> 0:
<a name="l00979"></a>00979                         <span class="comment">/* no gateway */</span>
<a name="l00980"></a>00980                         <span class="keywordflow">break</span>;
<a name="l00981"></a>00981                 <span class="keywordflow">case</span> 1:
<a name="l00982"></a>00982                         gateway_data = <a class="code" href="util_8h.html#aaad6949daea3c6cefd01d19300f6e21a">LDNS_XMALLOC</a>(uint8_t, <a class="code" href="ldns_8h.html#acb7ea70554416f9777e65f1b229af901">LDNS_IP4ADDRLEN</a>);
<a name="l00983"></a>00983                         <span class="keywordflow">if</span>(!gateway_data)
<a name="l00984"></a>00984                                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa81e80e66a14551db514726fa49290498">LDNS_STATUS_MEM_ERR</a>;
<a name="l00985"></a>00985                         memcpy(gateway_data, &amp;data[offset], <a class="code" href="ldns_8h.html#acb7ea70554416f9777e65f1b229af901">LDNS_IP4ADDRLEN</a>);
<a name="l00986"></a>00986                         gateway = <a class="code" href="rdata_8c.html#a5074dfaf129822d72061d81b290bd332" title="allocates a new rdf structure and fills it.">ldns_rdf_new</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a8ab64a730a4d6b7a717e6a3dbdc6123d" title="A record.">LDNS_RDF_TYPE_A</a>, <a class="code" href="ldns_8h.html#acb7ea70554416f9777e65f1b229af901">LDNS_IP4ADDRLEN</a> , gateway_data);
<a name="l00987"></a>00987                         offset += <a class="code" href="ldns_8h.html#acb7ea70554416f9777e65f1b229af901">LDNS_IP4ADDRLEN</a>;
<a name="l00988"></a>00988                         <span class="keywordflow">if</span>(!gateway) {
<a name="l00989"></a>00989                                 <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(gateway_data);
<a name="l00990"></a>00990                                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa81e80e66a14551db514726fa49290498">LDNS_STATUS_MEM_ERR</a>;
<a name="l00991"></a>00991                         }
<a name="l00992"></a>00992                         <span class="keywordflow">break</span>;
<a name="l00993"></a>00993                 <span class="keywordflow">case</span> 2:
<a name="l00994"></a>00994                         gateway_data = <a class="code" href="util_8h.html#aaad6949daea3c6cefd01d19300f6e21a">LDNS_XMALLOC</a>(uint8_t, <a class="code" href="ldns_8h.html#acf0d0da09570eb66d348db9a14f62e75">LDNS_IP6ADDRLEN</a>);
<a name="l00995"></a>00995                         <span class="keywordflow">if</span>(!gateway_data)
<a name="l00996"></a>00996                                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa81e80e66a14551db514726fa49290498">LDNS_STATUS_MEM_ERR</a>;
<a name="l00997"></a>00997                         memcpy(gateway_data, &amp;data[offset], <a class="code" href="ldns_8h.html#acf0d0da09570eb66d348db9a14f62e75">LDNS_IP6ADDRLEN</a>);
<a name="l00998"></a>00998                         offset += <a class="code" href="ldns_8h.html#acf0d0da09570eb66d348db9a14f62e75">LDNS_IP6ADDRLEN</a>;
<a name="l00999"></a>00999                         gateway =
<a name="l01000"></a>01000                                 <a class="code" href="rdata_8c.html#a5074dfaf129822d72061d81b290bd332" title="allocates a new rdf structure and fills it.">ldns_rdf_new</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a5959b86d3aacff828167e6dca5a935fd" title="AAAA record.">LDNS_RDF_TYPE_AAAA</a>, <a class="code" href="ldns_8h.html#acf0d0da09570eb66d348db9a14f62e75">LDNS_IP6ADDRLEN</a>, gateway_data);
<a name="l01001"></a>01001                         <span class="keywordflow">if</span>(!gateway) {
<a name="l01002"></a>01002                                 <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(gateway_data);
<a name="l01003"></a>01003                                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa81e80e66a14551db514726fa49290498">LDNS_STATUS_MEM_ERR</a>;
<a name="l01004"></a>01004                         }
<a name="l01005"></a>01005                         <span class="keywordflow">break</span>;
<a name="l01006"></a>01006                 <span class="keywordflow">case</span> 3:
<a name="l01007"></a>01007                         status = <a class="code" href="wire2host_8c.html#a3bf2a93cc61e3942288ebb8b803e4ce9" title="converts the data on the uint8_t bytearray (in wire format) to a DNS dname rdata field.">ldns_wire2dname</a>(&amp;gateway, data, <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf), &amp;offset);
<a name="l01008"></a>01008                         <span class="keywordflow">if</span>(status != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>)
<a name="l01009"></a>01009                                 <span class="keywordflow">return</span> status;
<a name="l01010"></a>01010                         <span class="keywordflow">break</span>;
<a name="l01011"></a>01011                 <span class="keywordflow">default</span>:
<a name="l01012"></a>01012                         <span class="comment">/* error? */</span>
<a name="l01013"></a>01013                         <span class="keywordflow">break</span>;
<a name="l01014"></a>01014         }
<a name="l01015"></a>01015 
<a name="l01016"></a>01016         public_key_size = <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) - offset;
<a name="l01017"></a>01017         public_key_data = <a class="code" href="util_8h.html#aaad6949daea3c6cefd01d19300f6e21a">LDNS_XMALLOC</a>(uint8_t, public_key_size);
<a name="l01018"></a>01018         <span class="keywordflow">if</span>(!public_key_data) {
<a name="l01019"></a>01019                 <a class="code" href="rdata_8c.html#ae31cf54f363a70e01db4b6d15c3ad190" title="frees a rdf structure, leaving the data pointer intact.">ldns_rdf_free</a>(gateway);
<a name="l01020"></a>01020                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa81e80e66a14551db514726fa49290498">LDNS_STATUS_MEM_ERR</a>;
<a name="l01021"></a>01021         }
<a name="l01022"></a>01022         memcpy(public_key_data, &amp;data[offset], public_key_size);
<a name="l01023"></a>01023         public_key = <a class="code" href="rdata_8c.html#a5074dfaf129822d72061d81b290bd332" title="allocates a new rdf structure and fills it.">ldns_rdf_new</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, public_key_size, public_key_data);
<a name="l01024"></a>01024         <span class="keywordflow">if</span>(!public_key) {
<a name="l01025"></a>01025                 <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(public_key_data);
<a name="l01026"></a>01026                 <a class="code" href="rdata_8c.html#ae31cf54f363a70e01db4b6d15c3ad190" title="frees a rdf structure, leaving the data pointer intact.">ldns_rdf_free</a>(gateway);
<a name="l01027"></a>01027                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa81e80e66a14551db514726fa49290498">LDNS_STATUS_MEM_ERR</a>;
<a name="l01028"></a>01028         }
<a name="l01029"></a>01029 
<a name="l01030"></a>01030         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;%u %u %u &quot;</span>, precedence, gateway_type, algorithm);
<a name="l01031"></a>01031     <span class="keywordflow">if</span> (gateway)
<a name="l01032"></a>01032                 (void) <a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, gateway);
<a name="l01033"></a>01033         <span class="keywordflow">else</span>
<a name="l01034"></a>01034                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;.&quot;</span>);
<a name="l01035"></a>01035         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot; &quot;</span>);
<a name="l01036"></a>01036         (void) <a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, public_key);
<a name="l01037"></a>01037 
<a name="l01038"></a>01038         <a class="code" href="rdata_8c.html#ae31cf54f363a70e01db4b6d15c3ad190" title="frees a rdf structure, leaving the data pointer intact.">ldns_rdf_free</a>(gateway);
<a name="l01039"></a>01039         <a class="code" href="rdata_8c.html#ae31cf54f363a70e01db4b6d15c3ad190" title="frees a rdf structure, leaving the data pointer intact.">ldns_rdf_free</a>(public_key);
<a name="l01040"></a>01040 
<a name="l01041"></a>01041         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l01042"></a>01042 }
<a name="l01043"></a>01043 
<a name="l01044"></a>01044 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l01045"></a><a class="code" href="host2str_8h.html#a4966f3af71dda286a6e39a54a3b7c829">01045</a> <a class="code" href="host2str_8c.html#a4966f3af71dda286a6e39a54a3b7c829" title="Converts an LDNS_RDF_TYPE_TSIG rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_tsig</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l01046"></a>01046 {
<a name="l01047"></a>01047         <span class="comment">/* TSIG RRs have no presentation format, make them #size &lt;data&gt; */</span>
<a name="l01048"></a>01048         <span class="keywordflow">return</span> <a class="code" href="host2str_8c.html#abce0b2c65c5fc176be86b8554ae4b46c" title="Converts an LDNS_RDF_TYPE_UNKNOWN rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_unknown</a>(output, rdf);
<a name="l01049"></a>01049 }
<a name="l01050"></a>01050 
<a name="l01051"></a>01051 
<a name="l01052"></a>01052 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l01053"></a><a class="code" href="host2str_8h.html#ac47074b55da0c6eb19f5872b24049db3">01053</a> <a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *buffer, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l01054"></a>01054 {
<a name="l01055"></a>01055         <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> res = <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>;
<a name="l01056"></a>01056 
<a name="l01057"></a>01057         <span class="comment">/*ldns_buffer_printf(buffer, &quot;%u:&quot;, ldns_rdf_get_type(rdf));*/</span>
<a name="l01058"></a>01058         <span class="keywordflow">if</span> (rdf) {
<a name="l01059"></a>01059                 <span class="keywordflow">switch</span>(<a class="code" href="rdata_8c.html#a240f7f36c145f6189df4f14ca5bc3a82" title="returns the type of the rdf.">ldns_rdf_get_type</a>(rdf)) {
<a name="l01060"></a>01060                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9abd0e34ab5520bb9c6ec2ef6c23348edf" title="none">LDNS_RDF_TYPE_NONE</a>:
<a name="l01061"></a>01061                         <span class="keywordflow">break</span>;
<a name="l01062"></a>01062                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a72cb73467bcbfbb41168e2a2b4a8283a" title="domain name">LDNS_RDF_TYPE_DNAME</a>:
<a name="l01063"></a>01063                         res = <a class="code" href="host2str_8c.html#ad7f2b2a814e252b4111f3e37f91cd446" title="Print the ldns_rdf containing a dname to the buffer.">ldns_rdf2buffer_str_dname</a>(buffer, rdf);
<a name="l01064"></a>01064                         <span class="keywordflow">break</span>;
<a name="l01065"></a>01065                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9ac18c3e598d6a7a85b8eb1d1a047ac557" title="8 bits">LDNS_RDF_TYPE_INT8</a>:
<a name="l01066"></a>01066                         res = <a class="code" href="host2str_8c.html#aa4921c047e6cf85f6cb3f0761921c72a" title="Converts an LDNS_RDF_TYPE_INT8 rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_int8</a>(buffer, rdf);
<a name="l01067"></a>01067                         <span class="keywordflow">break</span>;
<a name="l01068"></a>01068                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9adef66c8791f83ba190e5f5775791e4c6" title="16 bits">LDNS_RDF_TYPE_INT16</a>:
<a name="l01069"></a>01069                         res = <a class="code" href="host2str_8c.html#acac0247738f41ac89fbadf8362b5bc7c" title="Converts an LDNS_RDF_TYPE_INT16 rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_int16</a>(buffer, rdf);
<a name="l01070"></a>01070                         <span class="keywordflow">break</span>;
<a name="l01071"></a>01071                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a077e8e14046bf02ac92053e784921e73" title="32 bits">LDNS_RDF_TYPE_INT32</a>:
<a name="l01072"></a>01072                         res = <a class="code" href="host2str_8c.html#a1f2b83e2cb0e7c98dba747bd76721770" title="Converts an LDNS_RDF_TYPE_INT32 rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_int32</a>(buffer, rdf);
<a name="l01073"></a>01073                         <span class="keywordflow">break</span>;
<a name="l01074"></a>01074                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a45e328c984e7e1a01aea68ec3e377dbd" title="period">LDNS_RDF_TYPE_PERIOD</a>:
<a name="l01075"></a>01075                         res = <a class="code" href="host2str_8c.html#ace9cb274b2ef0d77bd74b9ce3a813078" title="Converts an LDNS_RDF_TYPE_PERIOD rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_period</a>(buffer, rdf);
<a name="l01076"></a>01076                         <span class="keywordflow">break</span>;
<a name="l01077"></a>01077                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9af92739b2430f01ad89cec4a53bcc08b5" title="tsig time 48 bits">LDNS_RDF_TYPE_TSIGTIME</a>:
<a name="l01078"></a>01078                         res = <a class="code" href="host2str_8c.html#aa1788acffdfa95896b68203cfcda0534" title="Converts an LDNS_RDF_TYPE_TSIGTIME rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_tsigtime</a>(buffer, rdf);
<a name="l01079"></a>01079                         <span class="keywordflow">break</span>;
<a name="l01080"></a>01080                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a8ab64a730a4d6b7a717e6a3dbdc6123d" title="A record.">LDNS_RDF_TYPE_A</a>:
<a name="l01081"></a>01081                         res = <a class="code" href="host2str_8c.html#ade1dc3233c0db7ff4bbb5d424987c3e7" title="Converts an LDNS_RDF_TYPE_A rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_a</a>(buffer, rdf);
<a name="l01082"></a>01082                         <span class="keywordflow">break</span>;
<a name="l01083"></a>01083                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a5959b86d3aacff828167e6dca5a935fd" title="AAAA record.">LDNS_RDF_TYPE_AAAA</a>:
<a name="l01084"></a>01084                         res = <a class="code" href="host2str_8c.html#afb514aeb9aca8e44b577cd5229f8135a" title="Converts an LDNS_RDF_TYPE_AAAA rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_aaaa</a>(buffer, rdf);
<a name="l01085"></a>01085                         <span class="keywordflow">break</span>;
<a name="l01086"></a>01086                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9ade27cf2658eb51902914c7fe6a6a3bb0" title="txt string">LDNS_RDF_TYPE_STR</a>:
<a name="l01087"></a>01087                         res = <a class="code" href="host2str_8c.html#a2da80ba46eb2bfeb546e8e71282649b9" title="Converts an LDNS_RDF_TYPE_STR rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_str</a>(buffer, rdf);
<a name="l01088"></a>01088                         <span class="keywordflow">break</span>;
<a name="l01089"></a>01089                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a88057121614020f91062e7cb29b4324d" title="apl data">LDNS_RDF_TYPE_APL</a>:
<a name="l01090"></a>01090                         res = <a class="code" href="host2str_8c.html#a30359a7c29a138e3340043f0497f2698" title="Converts an LDNS_RDF_TYPE_APL rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_apl</a>(buffer, rdf);
<a name="l01091"></a>01091                         <span class="keywordflow">break</span>;
<a name="l01092"></a>01092                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a20eeaadcda9fe241639d34b8decaff72" title="b32 string">LDNS_RDF_TYPE_B32_EXT</a>:
<a name="l01093"></a>01093                         res = <a class="code" href="host2str_8c.html#ab9157ac324278b9cd48b7efd7ab01f56" title="Converts an LDNS_RDF_TYPE_B32_EXT rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_b32_ext</a>(buffer, rdf);
<a name="l01094"></a>01094                         <span class="keywordflow">break</span>;
<a name="l01095"></a>01095                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>:
<a name="l01096"></a>01096                         res = <a class="code" href="host2str_8c.html#a38095a6de4d3cb31140e5f809d1220e8" title="Converts an LDNS_RDF_TYPE_B64 rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_b64</a>(buffer, rdf);
<a name="l01097"></a>01097                         <span class="keywordflow">break</span>;
<a name="l01098"></a>01098                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9abb1b198b0e4c7dc8a5d659bb60a4d0b0" title="hex string">LDNS_RDF_TYPE_HEX</a>:
<a name="l01099"></a>01099                         res = <a class="code" href="host2str_8c.html#a241cef60fa1838c8dc46eec7202f4d08" title="Converts an LDNS_RDF_TYPE_HEX rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_hex</a>(buffer, rdf);
<a name="l01100"></a>01100                         <span class="keywordflow">break</span>;
<a name="l01101"></a>01101                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a8060ea4dff4d7af7148ef6ee2d5a0f1c" title="nsec type codes">LDNS_RDF_TYPE_NSEC</a>:
<a name="l01102"></a>01102                         res = <a class="code" href="host2str_8c.html#ab099118af3b070e1b849a85bba925335" title="Converts an LDNS_RDF_TYPE_NSEC rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_nsec</a>(buffer, rdf);
<a name="l01103"></a>01103                         <span class="keywordflow">break</span>;
<a name="l01104"></a>01104                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a87d3781e435a1fd0a7cefce6d3cfe273" title="nsec3 hash salt">LDNS_RDF_TYPE_NSEC3_SALT</a>:
<a name="l01105"></a>01105                         res = <a class="code" href="host2str_8c.html#ae4b629f6a2338a0d1e7fd3a63e51dc68" title="Converts an LDNS_RDF_TYPE_NSEC3_SALT rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_nsec3_salt</a>(buffer, rdf);
<a name="l01106"></a>01106                         <span class="keywordflow">break</span>;
<a name="l01107"></a>01107                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9af943c7b93856ac0cfcda816c7c952c9f" title="a RR type">LDNS_RDF_TYPE_TYPE</a>:
<a name="l01108"></a>01108                         res = <a class="code" href="host2str_8c.html#a3a94255b9d9cec5ec7e495b9e82eb1e1" title="Converts an LDNS_RDF_TYPE_TYPE rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_type</a>(buffer, rdf);
<a name="l01109"></a>01109                         <span class="keywordflow">break</span>;
<a name="l01110"></a>01110                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9abf3ea50fba0758689921debefc9faa21" title="a class">LDNS_RDF_TYPE_CLASS</a>:
<a name="l01111"></a>01111                         res = <a class="code" href="host2str_8c.html#ac52beaaab2fc2fd8527eee245cea2387" title="Converts an LDNS_RDF_TYPE_CLASS rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_class</a>(buffer, rdf);
<a name="l01112"></a>01112                         <span class="keywordflow">break</span>;
<a name="l01113"></a>01113                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a2fea2b715b1d67d24ec2687379e3f506" title="certificate algorithm">LDNS_RDF_TYPE_CERT_ALG</a>:
<a name="l01114"></a>01114                         res = <a class="code" href="host2str_8c.html#ac24b0c65d7aa0dcb8aa6863bed778307" title="Converts an LDNS_RDF_TYPE_CERT rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_cert_alg</a>(buffer, rdf);
<a name="l01115"></a>01115                         <span class="keywordflow">break</span>;
<a name="l01116"></a>01116                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9ae267872ec0957925bbf1d6720b93597a" title="a key algorithm">LDNS_RDF_TYPE_ALG</a>:
<a name="l01117"></a>01117                         res = <a class="code" href="host2str_8c.html#aa529bcd98fc7177da8b1f0f2022e0687" title="Converts an LDNS_RDF_TYPE_ALG rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_alg</a>(buffer, rdf);
<a name="l01118"></a>01118                         <span class="keywordflow">break</span>;
<a name="l01119"></a>01119                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a64231b892a5ff592247660d795ee3e63" title="unknown types">LDNS_RDF_TYPE_UNKNOWN</a>:
<a name="l01120"></a>01120                         res = <a class="code" href="host2str_8c.html#abce0b2c65c5fc176be86b8554ae4b46c" title="Converts an LDNS_RDF_TYPE_UNKNOWN rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_unknown</a>(buffer, rdf);
<a name="l01121"></a>01121                         <span class="keywordflow">break</span>;
<a name="l01122"></a>01122                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a75048af9090d43c3105a41fbec16c96e" title="time (32 bits)">LDNS_RDF_TYPE_TIME</a>:
<a name="l01123"></a>01123                         res = <a class="code" href="host2str_8c.html#a84fd0faad7e88b9dd3bbaa395727a719" title="Converts an LDNS_RDF_TYPE_TIME rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_time</a>(buffer, rdf);
<a name="l01124"></a>01124                         <span class="keywordflow">break</span>;
<a name="l01125"></a>01125                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9aa2c89d6e5d720a6fffae12a07dbbf4c3" title="location data">LDNS_RDF_TYPE_LOC</a>:
<a name="l01126"></a>01126                         res = <a class="code" href="host2str_8c.html#a3025b6a2c6681c153dc24310cfd9a3f4" title="Converts an LDNS_RDF_TYPE_LOC rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_loc</a>(buffer, rdf);
<a name="l01127"></a>01127                         <span class="keywordflow">break</span>;
<a name="l01128"></a>01128                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a70215c46d4acf9dec8e5f058540ca006" title="well known services">LDNS_RDF_TYPE_WKS</a>:
<a name="l01129"></a>01129                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a3f24ac5ab15e8fa733d8bfac683bf565" title="protocol and port bitmaps">LDNS_RDF_TYPE_SERVICE</a>:
<a name="l01130"></a>01130                         res = <a class="code" href="host2str_8c.html#a087190336e4c17a3752d9d0a8a893ece" title="Converts an LDNS_RDF_TYPE_WKS rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_wks</a>(buffer, rdf);
<a name="l01131"></a>01131                         <span class="keywordflow">break</span>;
<a name="l01132"></a>01132                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a1344c38bc2f566f6273925c549760c85" title="NSAP.">LDNS_RDF_TYPE_NSAP</a>:
<a name="l01133"></a>01133                         res = <a class="code" href="host2str_8c.html#a33f9d0bb13cd0f6dbb45674bde607f52" title="Converts an LDNS_RDF_TYPE_NSAP rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_nsap</a>(buffer, rdf);
<a name="l01134"></a>01134                         <span class="keywordflow">break</span>;
<a name="l01135"></a>01135                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9abb09899d5dd4c0bd05998d83e15abc39" title="ATMA.">LDNS_RDF_TYPE_ATMA</a>:
<a name="l01136"></a>01136                         res = <a class="code" href="host2str_8c.html#afb756e8230bbfcfb4687eab30332dc13" title="Converts an LDNS_RDF_TYPE_ATMA rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_atma</a>(buffer, rdf);
<a name="l01137"></a>01137                         <span class="keywordflow">break</span>;
<a name="l01138"></a>01138                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9ad558dc264349b8619fb907108c6b5a46" title="IPSECKEY.">LDNS_RDF_TYPE_IPSECKEY</a>:
<a name="l01139"></a>01139                         res = <a class="code" href="host2str_8c.html#acc8d2520f3b8fe123ef5696b2c7350fc" title="Converts an LDNS_RDF_TYPE_IPSECKEY rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_ipseckey</a>(buffer, rdf);
<a name="l01140"></a>01140                         <span class="keywordflow">break</span>;
<a name="l01141"></a>01141                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a137406d5dd460601083526b7c89d2189">LDNS_RDF_TYPE_TSIG</a>:
<a name="l01142"></a>01142                         res = <a class="code" href="host2str_8c.html#a4966f3af71dda286a6e39a54a3b7c829" title="Converts an LDNS_RDF_TYPE_TSIG rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_tsig</a>(buffer, rdf);
<a name="l01143"></a>01143                         <span class="keywordflow">break</span>;
<a name="l01144"></a>01144                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9aa66f3cec1402d326c773715de32c748e" title="variable length any type rdata where the length is specified by the first 2 bytes">LDNS_RDF_TYPE_INT16_DATA</a>:
<a name="l01145"></a>01145                         res = <a class="code" href="host2str_8c.html#afaccd01d2c90b7579d899e50540b41f4" title="Converts an LDNS_RDF_TYPE_INT16_DATA rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_int16_data</a>(buffer, rdf);
<a name="l01146"></a>01146                         <span class="keywordflow">break</span>;
<a name="l01147"></a>01147                 <span class="keywordflow">case</span> <a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a245bc4ea82df46ceeeb97921e563a616" title="nsec3 base32 string (with length byte on wire">LDNS_RDF_TYPE_NSEC3_NEXT_OWNER</a>:
<a name="l01148"></a>01148                         res = <a class="code" href="host2str_8c.html#ab9157ac324278b9cd48b7efd7ab01f56" title="Converts an LDNS_RDF_TYPE_B32_EXT rdata element to string format and adds it to the output buffer...">ldns_rdf2buffer_str_b32_ext</a>(buffer, rdf);
<a name="l01149"></a>01149                         <span class="keywordflow">break</span>;
<a name="l01150"></a>01150                 }
<a name="l01151"></a>01151         } <span class="keywordflow">else</span> {
<a name="l01152"></a>01152                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(buffer, <span class="stringliteral">&quot;(null) &quot;</span>);
<a name="l01153"></a>01153                 res = ldns_buffer_status(buffer);
<a name="l01154"></a>01154         }
<a name="l01155"></a>01155         <span class="keywordflow">return</span> res;
<a name="l01156"></a>01156 }
<a name="l01157"></a>01157 
<a name="l01158"></a>01158 <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *
<a name="l01159"></a><a class="code" href="host2str_8c.html#acaaff4a05d8eecae01c27dc9be6bab18">01159</a> <a class="code" href="host2str_8c.html#acaaff4a05d8eecae01c27dc9be6bab18">ldns_b32_ext2dname</a>(<span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l01160"></a>01160 {
<a name="l01161"></a>01161         <span class="keywordtype">size_t</span> size;
<a name="l01162"></a>01162         <span class="keywordtype">char</span> *b32;
<a name="l01163"></a>01163         <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *out;
<a name="l01164"></a>01164         <span class="keywordflow">if</span>(<a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) == 0)
<a name="l01165"></a>01165                 <span class="keywordflow">return</span> NULL;
<a name="l01166"></a>01166         <span class="comment">/* remove -1 for the b32-hash-len octet */</span>
<a name="l01167"></a>01167         size = ldns_b32_ntop_calculate_size(<a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) - 1);
<a name="l01168"></a>01168         <span class="comment">/* add one for the end nul for the string */</span>
<a name="l01169"></a>01169         b32 = <a class="code" href="util_8h.html#aaad6949daea3c6cefd01d19300f6e21a">LDNS_XMALLOC</a>(<span class="keywordtype">char</span>, size + 2);
<a name="l01170"></a>01170         <span class="keywordflow">if</span> (b32) {
<a name="l01171"></a>01171                 <span class="keywordflow">if</span> (<a class="code" href="util_8h.html#a1131c0b74b8b1d94d673aa222d0ef54b">ldns_b32_ntop_extended_hex</a>(<a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(rdf) + 1, 
<a name="l01172"></a>01172                                 <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf) - 1, b32, size+1) &gt; 0) {
<a name="l01173"></a>01173                         b32[size] = <span class="charliteral">&#39;.&#39;</span>;
<a name="l01174"></a>01174                         b32[size+1] = <span class="charliteral">&#39;\0&#39;</span>;
<a name="l01175"></a>01175                         <span class="keywordflow">if</span> (<a class="code" href="str2host_8c.html#a8bf01656c7b60c305b47b1e1346749d3" title="convert a dname string into wireformat">ldns_str2rdf_dname</a>(&amp;out, b32) == <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01176"></a>01176                                 <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(b32);
<a name="l01177"></a>01177                                 <span class="keywordflow">return</span> out;
<a name="l01178"></a>01178                         }
<a name="l01179"></a>01179                 }
<a name="l01180"></a>01180                 <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(b32);
<a name="l01181"></a>01181         }
<a name="l01182"></a>01182         <span class="keywordflow">return</span> NULL;
<a name="l01183"></a>01183 }
<a name="l01184"></a>01184 
<a name="l01185"></a>01185 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l01186"></a><a class="code" href="host2str_8h.html#a5335d1bcbf92dae7854e429a05695fcc">01186</a> <a class="code" href="host2str_8c.html#a5335d1bcbf92dae7854e429a05695fcc" title="Converts the data in the resource record to presentation format (as char *) and appends it to the giv...">ldns_rr2buffer_str_fmt</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, 
<a name="l01187"></a>01187                 <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a> *fmt, <span class="keyword">const</span> <a class="code" href="structldns__struct__rr.html" title="Resource Record.">ldns_rr</a> *rr)
<a name="l01188"></a>01188 {
<a name="l01189"></a>01189         uint16_t i, flags;
<a name="l01190"></a>01190         <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> status = <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>;
<a name="l01191"></a>01191 
<a name="l01192"></a>01192         <span class="keywordflow">if</span> (fmt == NULL) {
<a name="l01193"></a>01193                 fmt = <a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>;
<a name="l01194"></a>01194         }
<a name="l01195"></a>01195         <span class="keywordflow">if</span> (!rr) {
<a name="l01196"></a>01196                 <span class="keywordflow">if</span> (<a class="code" href="host2str_8h.html#aae5de43edc598ef481afa924f3bc3792" title="Represent a NULL pointer (in stead of a pointer to a ldns_rr as &quot;; (null)&quot; as opposed to outputting n...">LDNS_COMMENT_NULLS</a> &amp; fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a>) {
<a name="l01197"></a>01197                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;; (null)\n&quot;</span>);
<a name="l01198"></a>01198                 }
<a name="l01199"></a>01199                 <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l01200"></a>01200         }
<a name="l01201"></a>01201         <span class="keywordflow">if</span> (<a class="code" href="rr_8c.html#a1d254bd0deb5d18e34d84ebc10496c5d" title="returns the owner name of an rr structure.">ldns_rr_owner</a>(rr)) {
<a name="l01202"></a>01202                 status = <a class="code" href="host2str_8c.html#ad7f2b2a814e252b4111f3e37f91cd446" title="Print the ldns_rdf containing a dname to the buffer.">ldns_rdf2buffer_str_dname</a>(output, <a class="code" href="rr_8c.html#a1d254bd0deb5d18e34d84ebc10496c5d" title="returns the owner name of an rr structure.">ldns_rr_owner</a>(rr));
<a name="l01203"></a>01203         }
<a name="l01204"></a>01204         <span class="keywordflow">if</span> (status != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01205"></a>01205                 <span class="keywordflow">return</span> status;
<a name="l01206"></a>01206         }
<a name="l01207"></a>01207 
<a name="l01208"></a>01208         <span class="comment">/* TTL should NOT be printed if it is a question */</span>
<a name="l01209"></a>01209         <span class="keywordflow">if</span> (!<a class="code" href="rr_8c.html#aa25ada3d600be4512b9ead678e2fce8e" title="returns the question flag of an rr structure.">ldns_rr_is_question</a>(rr)) {
<a name="l01210"></a>01210                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\t%d&quot;</span>, <a class="code" href="rr_8c.html#a144e619c75e8cef52fa5a1de7d74c695" title="returns the ttl of an rr structure.">ldns_rr_ttl</a>(rr));
<a name="l01211"></a>01211         }
<a name="l01212"></a>01212 
<a name="l01213"></a>01213         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\t&quot;</span>);
<a name="l01214"></a>01214         status = <a class="code" href="host2str_8c.html#a7b74c6251ae331da659d7dfa7be23479" title="Converts an ldns_rr_class value to its string representation, and places it in the given buffer...">ldns_rr_class2buffer_str</a>(output, <a class="code" href="rr_8c.html#a9674642920718eda5c65483e03587fff" title="returns the class of the rr.">ldns_rr_get_class</a>(rr));
<a name="l01215"></a>01215         <span class="keywordflow">if</span> (status != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01216"></a>01216                 <span class="keywordflow">return</span> status;
<a name="l01217"></a>01217         }
<a name="l01218"></a>01218         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\t&quot;</span>);
<a name="l01219"></a>01219 
<a name="l01220"></a>01220         status = <a class="code" href="host2str_8c.html#aecb492991ad86b06df8c7f3cd8ae8c71" title="Converts an ldns_rr_type value to its string representation, and places it in the given buffer...">ldns_rr_type2buffer_str</a>(output, <a class="code" href="rr_8c.html#a849c616b8e8d87b8c047a8b41be21228" title="returns the type of the rr.">ldns_rr_get_type</a>(rr));
<a name="l01221"></a>01221         <span class="keywordflow">if</span> (status != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01222"></a>01222                 <span class="keywordflow">return</span> status;
<a name="l01223"></a>01223         }
<a name="l01224"></a>01224 
<a name="l01225"></a>01225         <span class="keywordflow">if</span> (<a class="code" href="rr_8c.html#a6e9df34d3869e840e9aa9b9d325d96b1" title="returns the rd_count of an rr structure.">ldns_rr_rd_count</a>(rr) &gt; 0) {
<a name="l01226"></a>01226                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\t&quot;</span>);
<a name="l01227"></a>01227         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!<a class="code" href="rr_8c.html#aa25ada3d600be4512b9ead678e2fce8e" title="returns the question flag of an rr structure.">ldns_rr_is_question</a>(rr)) {
<a name="l01228"></a>01228                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\t\\# 0&quot;</span>);
<a name="l01229"></a>01229         }
<a name="l01230"></a>01230 
<a name="l01231"></a>01231         <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="rr_8c.html#a6e9df34d3869e840e9aa9b9d325d96b1" title="returns the rd_count of an rr structure.">ldns_rr_rd_count</a>(rr); i++) {
<a name="l01232"></a>01232                 <span class="comment">/* ldns_rdf2buffer_str handles NULL input fine! */</span>
<a name="l01233"></a>01233                 status = <a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, <a class="code" href="rr_8c.html#aed836e7b90f7c11993d92a4569d7e29b" title="returns the rdata field member counter.">ldns_rr_rdf</a>(rr, i));
<a name="l01234"></a>01234                 <span class="keywordflow">if</span>(status != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>)
<a name="l01235"></a>01235                         <span class="keywordflow">return</span> status;
<a name="l01236"></a>01236                 <span class="keywordflow">if</span> (i &lt; <a class="code" href="rr_8c.html#a6e9df34d3869e840e9aa9b9d325d96b1" title="returns the rd_count of an rr structure.">ldns_rr_rd_count</a>(rr) - 1) {
<a name="l01237"></a>01237                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot; &quot;</span>);
<a name="l01238"></a>01238                 }
<a name="l01239"></a>01239         }
<a name="l01240"></a>01240         <span class="comment">/* per RR special comments - handy for DNSSEC types */</span>
<a name="l01241"></a>01241         <span class="comment">/* check to prevent question sec. rr from</span>
<a name="l01242"></a>01242 <span class="comment">         * getting here */</span>
<a name="l01243"></a>01243         <span class="keywordflow">if</span> (<a class="code" href="rr_8c.html#a6e9df34d3869e840e9aa9b9d325d96b1" title="returns the rd_count of an rr structure.">ldns_rr_rd_count</a>(rr) &gt; 0) {
<a name="l01244"></a>01244                 <span class="keywordflow">switch</span> (<a class="code" href="rr_8c.html#a849c616b8e8d87b8c047a8b41be21228" title="returns the type of the rr.">ldns_rr_get_type</a>(rr)) {
<a name="l01245"></a>01245                         <span class="keywordflow">case</span> <a class="code" href="rr_8h.html#a640100112b0009efe3d61bbf799b33daa316efb0ac15f31b6891fa6fba833eae8">LDNS_RR_TYPE_DNSKEY</a>:
<a name="l01246"></a>01246                                 <span class="comment">/* if ldns_rr_rd_count(rr) &gt; 0</span>
<a name="l01247"></a>01247 <span class="comment">                                   then ldns_rr_rdf(rr, 0) exists! */</span>
<a name="l01248"></a>01248                                 <span class="keywordflow">if</span> (! (fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#ada91e4287b5131fc1cf45da9c7c66ef7" title="Show key id, type and size as comment for DNSKEY RR&#39;s.">LDNS_COMMENT_KEY</a>)) {
<a name="l01249"></a>01249                                         <span class="keywordflow">break</span>;
<a name="l01250"></a>01250                                 }
<a name="l01251"></a>01251                                 flags = <a class="code" href="rdata_8c.html#a5906b621eda1380a2993255fa649c21d" title="returns the native uint16_t representation from the rdf.">ldns_rdf2native_int16</a>(
<a name="l01252"></a>01252                                                 <a class="code" href="rr_8c.html#aed836e7b90f7c11993d92a4569d7e29b" title="returns the rdata field member counter.">ldns_rr_rdf</a>(rr, 0));
<a name="l01253"></a>01253                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot; ;{&quot;</span>);
<a name="l01254"></a>01254                                 <span class="keywordflow">if</span> (fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#ab4869eb520760628c8459df3a7d7bb8b" title="Show key id with DNSKEY RR&#39;s as comment.">LDNS_COMMENT_KEY_ID</a>) {
<a name="l01255"></a>01255                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;id = %u&quot;</span>,
<a name="l01256"></a>01256                                                         (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)
<a name="l01257"></a>01257                                                         <a class="code" href="dnssec_8c.html#a7cf8c4687caff6153a61052c5523e7ab" title="calculates a keytag of a key for use in DNSSEC.">ldns_calc_keytag</a>(rr));
<a name="l01258"></a>01258                                 }
<a name="l01259"></a>01259                                 <span class="keywordflow">if</span> ((fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#ad69431694e10e0250028191f6efead32" title="Show if a DNSKEY is a ZSK or KSK as comment.">LDNS_COMMENT_KEY_TYPE</a>)
<a name="l01260"></a>01260                                                 &amp;&amp; (flags &amp; <a class="code" href="keys_8h.html#ad5f212d6a80316d427f4b068e849ff73">LDNS_KEY_ZONE_KEY</a>)){
<a name="l01261"></a>01261                                         <span class="keywordflow">if</span> (flags &amp; <a class="code" href="keys_8h.html#a32c73f4b55d4cd43d7303b1351baa84c">LDNS_KEY_SEP_KEY</a>) {
<a name="l01262"></a>01262                                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(
<a name="l01263"></a>01263                                                         output, <span class="stringliteral">&quot; (ksk)&quot;</span>);
<a name="l01264"></a>01264                                         }
<a name="l01265"></a>01265                                         <span class="keywordflow">else</span> {
<a name="l01266"></a>01266                                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(
<a name="l01267"></a>01267                                                         output, <span class="stringliteral">&quot; (zsk)&quot;</span>);
<a name="l01268"></a>01268                                         }
<a name="l01269"></a>01269                                         <span class="keywordflow">if</span> (fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#a03e3cdd2495d505bf29eb98e6e9bec56" title="Show DNSKEY key size as comment.">LDNS_COMMENT_KEY_SIZE</a>){
<a name="l01270"></a>01270                                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(
<a name="l01271"></a>01271                                                         output, <span class="stringliteral">&quot;, &quot;</span>);
<a name="l01272"></a>01272                                         }
<a name="l01273"></a>01273                                 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a>
<a name="l01274"></a>01274                                                 &amp; (<a class="code" href="host2str_8h.html#ab4869eb520760628c8459df3a7d7bb8b" title="Show key id with DNSKEY RR&#39;s as comment.">LDNS_COMMENT_KEY_ID</a>
<a name="l01275"></a>01275                                                   |<a class="code" href="host2str_8h.html#a03e3cdd2495d505bf29eb98e6e9bec56" title="Show DNSKEY key size as comment.">LDNS_COMMENT_KEY_SIZE</a>)) {
<a name="l01276"></a>01276                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>( output, <span class="stringliteral">&quot;, &quot;</span>);
<a name="l01277"></a>01277                                 }
<a name="l01278"></a>01278                                 <span class="keywordflow">if</span> (fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#a03e3cdd2495d505bf29eb98e6e9bec56" title="Show DNSKEY key size as comment.">LDNS_COMMENT_KEY_SIZE</a>) {
<a name="l01279"></a>01279                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;size = %db&quot;</span>,
<a name="l01280"></a>01280                                                 <a class="code" href="rr__functions_8c.html#a62365cf8882b70048615dc0f5624b6bb" title="get the length of the keydata in bits">ldns_rr_dnskey_key_size</a>(rr));
<a name="l01281"></a>01281                                 }
<a name="l01282"></a>01282                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;}&quot;</span>);
<a name="l01283"></a>01283                                 <span class="keywordflow">break</span>;
<a name="l01284"></a>01284                         <span class="keywordflow">case</span> <a class="code" href="rr_8h.html#a640100112b0009efe3d61bbf799b33daa0dae8d9f8f4684e63ac7665a2a489b4d" title="draft-ietf-dnsext-dnssec-25">LDNS_RR_TYPE_RRSIG</a>:
<a name="l01285"></a>01285                                 <span class="keywordflow">if</span> ((fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#ada91e4287b5131fc1cf45da9c7c66ef7" title="Show key id, type and size as comment for DNSKEY RR&#39;s.">LDNS_COMMENT_KEY</a>)
<a name="l01286"></a>01286                                                 &amp;&amp; (fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> 
<a name="l01287"></a>01287                                                         &amp; <a class="code" href="host2str_8h.html#a0dd1c6d166c6cf567ca346c7da6e162c" title="Also comment KEY_ID with RRSIGS.">LDNS_COMMENT_RRSIGS</a>)
<a name="l01288"></a>01288                                                 &amp;&amp; <a class="code" href="rr_8c.html#aed836e7b90f7c11993d92a4569d7e29b" title="returns the rdata field member counter.">ldns_rr_rdf</a>(rr, 6) != NULL) {
<a name="l01289"></a>01289                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output
<a name="l01290"></a>01290                                                 , <span class="stringliteral">&quot; ;{id = %d}&quot;</span>
<a name="l01291"></a>01291                                                 , <a class="code" href="rdata_8c.html#a5906b621eda1380a2993255fa649c21d" title="returns the native uint16_t representation from the rdf.">ldns_rdf2native_int16</a>(
<a name="l01292"></a>01292                                                         <a class="code" href="rr_8c.html#aed836e7b90f7c11993d92a4569d7e29b" title="returns the rdata field member counter.">ldns_rr_rdf</a>(rr, 6)));
<a name="l01293"></a>01293                                 }
<a name="l01294"></a>01294                                 <span class="keywordflow">break</span>;
<a name="l01295"></a>01295                         <span class="keywordflow">case</span> <a class="code" href="rr_8h.html#a640100112b0009efe3d61bbf799b33daa6014f51afd4f88ae81c2d0e8afef8894" title="draft-ietf-dnsext-delegation">LDNS_RR_TYPE_DS</a>:
<a name="l01296"></a>01296                                 <span class="keywordflow">if</span> ((fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#a570b39e63c0389a97f70d464300973af" title="Provide bubblebabble representation for DS RR&#39;s as comment.">LDNS_COMMENT_BUBBLEBABBLE</a>)
<a name="l01297"></a>01297                                                 &amp;&amp; <a class="code" href="rr_8c.html#aed836e7b90f7c11993d92a4569d7e29b" title="returns the rdata field member counter.">ldns_rr_rdf</a>(rr, 3) != NULL) {
<a name="l01298"></a>01298                                         uint8_t *data = <a class="code" href="rdata_8c.html#adc126e8f5417a3c1049242f93fde3602" title="returns the data of the rdf.">ldns_rdf_data</a>(
<a name="l01299"></a>01299                                                         <a class="code" href="rr_8c.html#aed836e7b90f7c11993d92a4569d7e29b" title="returns the rdata field member counter.">ldns_rr_rdf</a>(rr, 3));
<a name="l01300"></a>01300                                         <span class="keywordtype">size_t</span> len = <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(
<a name="l01301"></a>01301                                                         <a class="code" href="rr_8c.html#aed836e7b90f7c11993d92a4569d7e29b" title="returns the rdata field member counter.">ldns_rr_rdf</a>(rr, 3));
<a name="l01302"></a>01302                                         <span class="keywordtype">char</span> *babble = <a class="code" href="util_8c.html#ada923722a7a97fbb7a531cf48b977b8e" title="Encode data as BubbleBabble.">ldns_bubblebabble</a>(
<a name="l01303"></a>01303                                                         data, len);
<a name="l01304"></a>01304                                         <span class="keywordflow">if</span>(babble) {
<a name="l01305"></a>01305                                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output
<a name="l01306"></a>01306                                                         , <span class="stringliteral">&quot; ;{%s}&quot;</span>, babble);
<a name="l01307"></a>01307                                         }
<a name="l01308"></a>01308                                         <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(babble);
<a name="l01309"></a>01309                                 }
<a name="l01310"></a>01310                                 <span class="keywordflow">break</span>;
<a name="l01311"></a>01311                         <span class="keywordflow">case</span> <a class="code" href="rr_8h.html#a640100112b0009efe3d61bbf799b33daa79a5eacdaa6defd52d97a6b205f102f9">LDNS_RR_TYPE_NSEC3</a>:
<a name="l01312"></a>01312                                 <span class="keywordflow">if</span> (! (fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#a89bba5c47a912ee39f6296a9a02b71f5" title="Show when a NSEC3 RR has the optout flag set as comment.">LDNS_COMMENT_FLAGS</a>) &amp;&amp;
<a name="l01313"></a>01313                                     ! (fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#aef83316db61cf578ee15a09c6ce9e725" title="Show the unhashed owner and next owner names for NSEC3 RR&#39;s as comment.">LDNS_COMMENT_NSEC3_CHAIN</a>)) {
<a name="l01314"></a>01314                                         <span class="keywordflow">break</span>;
<a name="l01315"></a>01315                                 }
<a name="l01316"></a>01316                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot; ;{&quot;</span>);
<a name="l01317"></a>01317                                 <span class="keywordflow">if</span> ((fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#a89bba5c47a912ee39f6296a9a02b71f5" title="Show when a NSEC3 RR has the optout flag set as comment.">LDNS_COMMENT_FLAGS</a>)) {
<a name="l01318"></a>01318                                         <span class="keywordflow">if</span> (<a class="code" href="dnssec_8c.html#aa0afddc06606bb7b2cf5a01498a75f74" title="Returns true if the opt-out flag has been set in the given NSEC3 RR.">ldns_nsec3_optout</a>(rr)) {
<a name="l01319"></a>01319                                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,
<a name="l01320"></a>01320                                                         <span class="stringliteral">&quot; flags: optout&quot;</span>);
<a name="l01321"></a>01321                                         } <span class="keywordflow">else</span> {
<a name="l01322"></a>01322                                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,
<a name="l01323"></a>01323                                                         <span class="stringliteral">&quot; flags: -&quot;</span>);
<a name="l01324"></a>01324                                         }
<a name="l01325"></a>01325                                         <span class="keywordflow">if</span> (fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#aef83316db61cf578ee15a09c6ce9e725" title="Show the unhashed owner and next owner names for NSEC3 RR&#39;s as comment.">LDNS_COMMENT_NSEC3_CHAIN</a>
<a name="l01326"></a>01326                                                         &amp;&amp; fmt-&gt;<a class="code" href="structldns__struct__output__format.html#af053a3d978670ac4a46bf7af7243376c" title="Potential extra data to be used with formatting RR&#39;s in text.">data</a> != NULL) {
<a name="l01327"></a>01327                                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;, &quot;</span>);
<a name="l01328"></a>01328                                         }
<a name="l01329"></a>01329                                 }
<a name="l01330"></a>01330                                 <span class="keywordflow">if</span> (fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#aef83316db61cf578ee15a09c6ce9e725" title="Show the unhashed owner and next owner names for NSEC3 RR&#39;s as comment.">LDNS_COMMENT_NSEC3_CHAIN</a>
<a name="l01331"></a>01331                                                 &amp;&amp; fmt-&gt;<a class="code" href="structldns__struct__output__format.html#af053a3d978670ac4a46bf7af7243376c" title="Potential extra data to be used with formatting RR&#39;s in text.">data</a> != NULL) {
<a name="l01332"></a>01332                                         <a class="code" href="structldns__rbnode__t.html" title="The rbnode_t struct definition.">ldns_rbnode_t</a> *node;
<a name="l01333"></a>01333                                         <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *key = <a class="code" href="dname_8c.html#aee5c4a1b633f7c41d8788610bb2369a8" title="look inside the rdf and if it is an LDNS_RDF_TYPE_DNAME try and retrieve a specific label...">ldns_dname_label</a>(
<a name="l01334"></a>01334                                                         <a class="code" href="rr_8c.html#a1d254bd0deb5d18e34d84ebc10496c5d" title="returns the owner name of an rr structure.">ldns_rr_owner</a>(rr), 0);
<a name="l01335"></a>01335                                         <span class="keywordflow">if</span> (key) {
<a name="l01336"></a>01336                                                 node = <a class="code" href="rbtree_8c.html#ab95e41509757f1f9652011ce18475d5a" title="Find key in tree.">ldns_rbtree_search</a>(
<a name="l01337"></a>01337                                                         (<a class="code" href="structldns__rbtree__t.html" title="definition for tree struct">ldns_rbtree_t</a> *)
<a name="l01338"></a>01338                                                                 fmt-&gt;<a class="code" href="structldns__struct__output__format.html#af053a3d978670ac4a46bf7af7243376c" title="Potential extra data to be used with formatting RR&#39;s in text.">data</a>,
<a name="l01339"></a>01339                                                         (<span class="keywordtype">void</span> *) key);
<a name="l01340"></a>01340                                                 <span class="keywordflow">if</span> (node-&gt;<a class="code" href="structldns__rbnode__t.html#aa0988cf7f89971338f5aa79c9352a1df" title="pointer to data">data</a>) {
<a name="l01341"></a>01341                                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(
<a name="l01342"></a>01342                                                                 output,
<a name="l01343"></a>01343                                                                 <span class="stringliteral">&quot;from: &quot;</span>);
<a name="l01344"></a>01344                                                         (void)
<a name="l01345"></a>01345                                                         <a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(
<a name="l01346"></a>01346                                                                 output, 
<a name="l01347"></a>01347                                                                 (<a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *)
<a name="l01348"></a>01348                                                                 node-&gt;<a class="code" href="structldns__rbnode__t.html#aa0988cf7f89971338f5aa79c9352a1df" title="pointer to data">data</a>);
<a name="l01349"></a>01349                                                 }
<a name="l01350"></a>01350                                                 <a class="code" href="rdata_8c.html#ae31cf54f363a70e01db4b6d15c3ad190" title="frees a rdf structure, leaving the data pointer intact.">ldns_rdf_free</a>(key);
<a name="l01351"></a>01351                                         }
<a name="l01352"></a>01352                                         key = <a class="code" href="host2str_8c.html#acaaff4a05d8eecae01c27dc9be6bab18">ldns_b32_ext2dname</a>(
<a name="l01353"></a>01353                                                 <a class="code" href="dnssec_8c.html#ad1eecc66294a1195664dd1ba195a57b0" title="Returns the first label of the next ownername in the NSEC3 chain (ie.">ldns_nsec3_next_owner</a>(rr));
<a name="l01354"></a>01354                                         <span class="keywordflow">if</span> (key) {
<a name="l01355"></a>01355                                                 node = <a class="code" href="rbtree_8c.html#ab95e41509757f1f9652011ce18475d5a" title="Find key in tree.">ldns_rbtree_search</a>(
<a name="l01356"></a>01356                                                         (<a class="code" href="structldns__rbtree__t.html" title="definition for tree struct">ldns_rbtree_t</a> *)
<a name="l01357"></a>01357                                                                 fmt-&gt;<a class="code" href="structldns__struct__output__format.html#af053a3d978670ac4a46bf7af7243376c" title="Potential extra data to be used with formatting RR&#39;s in text.">data</a>,
<a name="l01358"></a>01358                                                         (<span class="keywordtype">void</span> *) key);
<a name="l01359"></a>01359                                                 <span class="keywordflow">if</span> (node-&gt;<a class="code" href="structldns__rbnode__t.html#aa0988cf7f89971338f5aa79c9352a1df" title="pointer to data">data</a>) {
<a name="l01360"></a>01360                                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(
<a name="l01361"></a>01361                                                                 output,
<a name="l01362"></a>01362                                                                 <span class="stringliteral">&quot; to: &quot;</span>);
<a name="l01363"></a>01363                                                         (void)
<a name="l01364"></a>01364                                                         <a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(
<a name="l01365"></a>01365                                                                 output, 
<a name="l01366"></a>01366                                                                 (<a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *)
<a name="l01367"></a>01367                                                                 node-&gt;<a class="code" href="structldns__rbnode__t.html#aa0988cf7f89971338f5aa79c9352a1df" title="pointer to data">data</a>);
<a name="l01368"></a>01368                                                 }
<a name="l01369"></a>01369                                                 <a class="code" href="rdata_8c.html#ae31cf54f363a70e01db4b6d15c3ad190" title="frees a rdf structure, leaving the data pointer intact.">ldns_rdf_free</a>(key);
<a name="l01370"></a>01370                                         }
<a name="l01371"></a>01371                                 }
<a name="l01372"></a>01372                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;}&quot;</span>);
<a name="l01373"></a>01373                                 <span class="keywordflow">break</span>;
<a name="l01374"></a>01374                         <span class="keywordflow">default</span>:
<a name="l01375"></a>01375                                 <span class="keywordflow">break</span>;
<a name="l01376"></a>01376 
<a name="l01377"></a>01377                 }
<a name="l01378"></a>01378         }
<a name="l01379"></a>01379         <span class="comment">/* last */</span>
<a name="l01380"></a>01380         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01381"></a>01381         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l01382"></a>01382 }
<a name="l01383"></a>01383 
<a name="l01384"></a>01384 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l01385"></a><a class="code" href="host2str_8h.html#a02d7448b81d9c25555d4e90434bd94f7">01385</a> <a class="code" href="host2str_8c.html#a02d7448b81d9c25555d4e90434bd94f7" title="Converts the data in the resource record to presentation format (as char *) and appends it to the giv...">ldns_rr2buffer_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rr.html" title="Resource Record.">ldns_rr</a> *rr)
<a name="l01386"></a>01386 {
<a name="l01387"></a>01387         <span class="keywordflow">return</span> <a class="code" href="host2str_8c.html#a5335d1bcbf92dae7854e429a05695fcc" title="Converts the data in the resource record to presentation format (as char *) and appends it to the giv...">ldns_rr2buffer_str_fmt</a>(output, <a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>, rr);
<a name="l01388"></a>01388 }
<a name="l01389"></a>01389 
<a name="l01390"></a>01390 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l01391"></a><a class="code" href="host2str_8h.html#ad170dbb62a5a75e7bd4ed1849c7a3d8a">01391</a> <a class="code" href="host2str_8c.html#ad170dbb62a5a75e7bd4ed1849c7a3d8a" title="Converts a rr_list to presentation format and appends it to the output buffer.">ldns_rr_list2buffer_str_fmt</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, 
<a name="l01392"></a>01392                 <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a> *fmt, <span class="keyword">const</span> <a class="code" href="structldns__struct__rr__list.html" title="List or Set of Resource Records.">ldns_rr_list</a> *list)
<a name="l01393"></a>01393 {
<a name="l01394"></a>01394         uint16_t i;
<a name="l01395"></a>01395 
<a name="l01396"></a>01396         <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code" href="rr_8c.html#a7ac3192fe79ba66e47579bb2b267ce05" title="returns the number of rr&#39;s in an rr_list.">ldns_rr_list_rr_count</a>(list); i++) {
<a name="l01397"></a>01397                 (void) <a class="code" href="host2str_8c.html#a5335d1bcbf92dae7854e429a05695fcc" title="Converts the data in the resource record to presentation format (as char *) and appends it to the giv...">ldns_rr2buffer_str_fmt</a>(output, fmt, 
<a name="l01398"></a>01398                                 <a class="code" href="rr_8c.html#a07b1ccea9f2694b8b88904c543e16783" title="returns a specific rr of an rrlist.">ldns_rr_list_rr</a>(list, i));
<a name="l01399"></a>01399         }
<a name="l01400"></a>01400         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l01401"></a>01401 }
<a name="l01402"></a>01402 
<a name="l01403"></a>01403 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l01404"></a><a class="code" href="host2str_8h.html#a6d7b29548d52506158e23749b9f3495c">01404</a> <a class="code" href="host2str_8c.html#a6d7b29548d52506158e23749b9f3495c" title="Converts a rr_list to presentation format and appends it to the output buffer.">ldns_rr_list2buffer_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rr__list.html" title="List or Set of Resource Records.">ldns_rr_list</a> *list)
<a name="l01405"></a>01405 {
<a name="l01406"></a>01406         <span class="keywordflow">return</span> <a class="code" href="host2str_8c.html#ad170dbb62a5a75e7bd4ed1849c7a3d8a" title="Converts a rr_list to presentation format and appends it to the output buffer.">ldns_rr_list2buffer_str_fmt</a>(
<a name="l01407"></a>01407                         output, <a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>, list);
<a name="l01408"></a>01408 }
<a name="l01409"></a>01409 
<a name="l01410"></a>01410 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l01411"></a><a class="code" href="host2str_8h.html#a5ec2ac5aa026aa7c92bdcf1d790022d8">01411</a> <a class="code" href="host2str_8c.html#a5ec2ac5aa026aa7c92bdcf1d790022d8" title="Converts the header of a packet to presentation format and appends it to the output buffer...">ldns_pktheader2buffer_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__pkt.html" title="DNS packet.">ldns_pkt</a> *pkt)
<a name="l01412"></a>01412 {
<a name="l01413"></a>01413         <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> *opcode = <a class="code" href="util_8c.html#a42a73e82a0f0bf3ee979190b9cf81957">ldns_lookup_by_id</a>(ldns_opcodes,
<a name="l01414"></a>01414                                             (<span class="keywordtype">int</span>) <a class="code" href="packet_8c.html#a2714c10ca2228ef57070b63e6b60b8c5" title="Read the packet&#39;s code.">ldns_pkt_get_opcode</a>(pkt));
<a name="l01415"></a>01415         <a class="code" href="structldns__struct__lookup__table.html" title="A general purpose lookup table.">ldns_lookup_table</a> *rcode = <a class="code" href="util_8c.html#a42a73e82a0f0bf3ee979190b9cf81957">ldns_lookup_by_id</a>(ldns_rcodes,
<a name="l01416"></a>01416                                             (<span class="keywordtype">int</span>) <a class="code" href="packet_8c.html#af4256a808233651ea1a5bdab74ce2d8e" title="Return the packet&#39;s respons code.">ldns_pkt_get_rcode</a>(pkt));
<a name="l01417"></a>01417 
<a name="l01418"></a>01418         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;;; -&gt;&gt;HEADER&lt;&lt;- &quot;</span>);
<a name="l01419"></a>01419         <span class="keywordflow">if</span> (opcode) {
<a name="l01420"></a>01420                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;opcode: %s, &quot;</span>, opcode-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>);
<a name="l01421"></a>01421         } <span class="keywordflow">else</span> {
<a name="l01422"></a>01422                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;opcode: ?? (%u), &quot;</span>,
<a name="l01423"></a>01423                                 <a class="code" href="packet_8c.html#a2714c10ca2228ef57070b63e6b60b8c5" title="Read the packet&#39;s code.">ldns_pkt_get_opcode</a>(pkt));
<a name="l01424"></a>01424         }
<a name="l01425"></a>01425         <span class="keywordflow">if</span> (rcode) {
<a name="l01426"></a>01426                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;rcode: %s, &quot;</span>, rcode-&gt;<a class="code" href="structldns__struct__lookup__table.html#a45da7ee10e4b7902018fba6dfae2396c">name</a>);
<a name="l01427"></a>01427         } <span class="keywordflow">else</span> {
<a name="l01428"></a>01428                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;rcode: ?? (%u), &quot;</span>, <a class="code" href="packet_8c.html#af4256a808233651ea1a5bdab74ce2d8e" title="Return the packet&#39;s respons code.">ldns_pkt_get_rcode</a>(pkt));
<a name="l01429"></a>01429         }
<a name="l01430"></a>01430         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;id: %d\n&quot;</span>, <a class="code" href="packet_8c.html#a439764a9c9642e71cc1e65394ff4ab12" title="Read the packet id.">ldns_pkt_id</a>(pkt));
<a name="l01431"></a>01431         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;;; flags: &quot;</span>);
<a name="l01432"></a>01432 
<a name="l01433"></a>01433         <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#a5a6bec737775ffadf911dfacd99ebcb1" title="Read the packet&#39;s qr bit.">ldns_pkt_qr</a>(pkt)) {
<a name="l01434"></a>01434                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;qr &quot;</span>);
<a name="l01435"></a>01435         }
<a name="l01436"></a>01436         <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#aee3ba5406c1eb662d24236d6a7cdd07b" title="Read the packet&#39;s aa bit.">ldns_pkt_aa</a>(pkt)) {
<a name="l01437"></a>01437                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;aa &quot;</span>);
<a name="l01438"></a>01438         }
<a name="l01439"></a>01439         <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#af68cefc5ba30989f5ab3bde0f0ffd6d5" title="Read the packet&#39;s tc bit.">ldns_pkt_tc</a>(pkt)) {
<a name="l01440"></a>01440                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;tc &quot;</span>);
<a name="l01441"></a>01441         }
<a name="l01442"></a>01442         <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#aa43df2154a7b7e9c3f9019934c211474" title="Read the packet&#39;s rd bit.">ldns_pkt_rd</a>(pkt)) {
<a name="l01443"></a>01443                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;rd &quot;</span>);
<a name="l01444"></a>01444         }
<a name="l01445"></a>01445         <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#a877d710d1aed4e2c4b24d07ff3cf536f" title="Read the packet&#39;s cd bit.">ldns_pkt_cd</a>(pkt)) {
<a name="l01446"></a>01446                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;cd &quot;</span>);
<a name="l01447"></a>01447         }
<a name="l01448"></a>01448         <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#abdfd0ce183dea2dddbe16add9dd91c10" title="Read the packet&#39;s ra bit.">ldns_pkt_ra</a>(pkt)) {
<a name="l01449"></a>01449                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;ra &quot;</span>);
<a name="l01450"></a>01450         }
<a name="l01451"></a>01451         <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#a9d2640a12ef6e2a67686ffd19aac5421" title="Read the packet&#39;s ad bit.">ldns_pkt_ad</a>(pkt)) {
<a name="l01452"></a>01452                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;ad &quot;</span>);
<a name="l01453"></a>01453         }
<a name="l01454"></a>01454         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;; &quot;</span>);
<a name="l01455"></a>01455         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;QUERY: %u, &quot;</span>, <a class="code" href="packet_8c.html#acfd9095572aa59123edcdeb598976b69" title="Return the packet&#39;s qd count.">ldns_pkt_qdcount</a>(pkt));
<a name="l01456"></a>01456         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;ANSWER: %u, &quot;</span>, <a class="code" href="packet_8c.html#a801e0c9c3766dde74347793984ecd417" title="Return the packet&#39;s an count.">ldns_pkt_ancount</a>(pkt));
<a name="l01457"></a>01457         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;AUTHORITY: %u, &quot;</span>, <a class="code" href="packet_8c.html#ac551c3cfc6a48241e1d4cd4d1390df1c" title="Return the packet&#39;s ns count.">ldns_pkt_nscount</a>(pkt));
<a name="l01458"></a>01458         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;ADDITIONAL: %u &quot;</span>, <a class="code" href="packet_8c.html#a45ad46caf5027284947fe58b77b2a93a" title="Return the packet&#39;s ar count.">ldns_pkt_arcount</a>(pkt));
<a name="l01459"></a>01459         <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l01460"></a>01460 }
<a name="l01461"></a>01461 
<a name="l01462"></a>01462 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l01463"></a><a class="code" href="host2str_8h.html#a4cb89e0a50045ba96bf818eb6765069d">01463</a> <a class="code" href="host2str_8c.html#a4cb89e0a50045ba96bf818eb6765069d" title="Converts the data in the DNS packet to presentation format (as char *) and appends it to the given bu...">ldns_pkt2buffer_str_fmt</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, 
<a name="l01464"></a>01464                 <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a> *fmt, <span class="keyword">const</span> <a class="code" href="structldns__struct__pkt.html" title="DNS packet.">ldns_pkt</a> *pkt)
<a name="l01465"></a>01465 {
<a name="l01466"></a>01466         uint16_t i;
<a name="l01467"></a>01467         <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> status = <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>;
<a name="l01468"></a>01468         <span class="keywordtype">char</span> *tmp;
<a name="l01469"></a>01469         <span class="keyword">struct </span>timeval time;
<a name="l01470"></a>01470         time_t time_tt;
<a name="l01471"></a>01471 
<a name="l01472"></a>01472         <span class="keywordflow">if</span> (!pkt) {
<a name="l01473"></a>01473                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;null&quot;</span>);
<a name="l01474"></a>01474                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>;
<a name="l01475"></a>01475         }
<a name="l01476"></a>01476 
<a name="l01477"></a>01477         <span class="keywordflow">if</span> (ldns_buffer_status_ok(output)) {
<a name="l01478"></a>01478                 status = <a class="code" href="host2str_8c.html#a5ec2ac5aa026aa7c92bdcf1d790022d8" title="Converts the header of a packet to presentation format and appends it to the output buffer...">ldns_pktheader2buffer_str</a>(output, pkt);
<a name="l01479"></a>01479                 <span class="keywordflow">if</span> (status != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01480"></a>01480                         <span class="keywordflow">return</span> status;
<a name="l01481"></a>01481                 }
<a name="l01482"></a>01482 
<a name="l01483"></a>01483                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01484"></a>01484 
<a name="l01485"></a>01485                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;;; QUESTION SECTION:\n;; &quot;</span>);
<a name="l01486"></a>01486 
<a name="l01487"></a>01487 
<a name="l01488"></a>01488                 <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="packet_8c.html#acfd9095572aa59123edcdeb598976b69" title="Return the packet&#39;s qd count.">ldns_pkt_qdcount</a>(pkt); i++) {
<a name="l01489"></a>01489                         status = <a class="code" href="host2str_8c.html#a5335d1bcbf92dae7854e429a05695fcc" title="Converts the data in the resource record to presentation format (as char *) and appends it to the giv...">ldns_rr2buffer_str_fmt</a>(output, fmt,
<a name="l01490"></a>01490                                        <a class="code" href="rr_8c.html#a07b1ccea9f2694b8b88904c543e16783" title="returns a specific rr of an rrlist.">ldns_rr_list_rr</a>(
<a name="l01491"></a>01491                                                <a class="code" href="packet_8c.html#a3dbd67b300227c8a40daf3865aeb236e" title="Return the packet&#39;s question section.">ldns_pkt_question</a>(pkt), i));
<a name="l01492"></a>01492                         <span class="keywordflow">if</span> (status != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01493"></a>01493                                 <span class="keywordflow">return</span> status;
<a name="l01494"></a>01494                         }
<a name="l01495"></a>01495                 }
<a name="l01496"></a>01496                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01497"></a>01497 
<a name="l01498"></a>01498                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;;; ANSWER SECTION:\n&quot;</span>);
<a name="l01499"></a>01499                 <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="packet_8c.html#a801e0c9c3766dde74347793984ecd417" title="Return the packet&#39;s an count.">ldns_pkt_ancount</a>(pkt); i++) {
<a name="l01500"></a>01500                         status = <a class="code" href="host2str_8c.html#a5335d1bcbf92dae7854e429a05695fcc" title="Converts the data in the resource record to presentation format (as char *) and appends it to the giv...">ldns_rr2buffer_str_fmt</a>(output, fmt,
<a name="l01501"></a>01501                                        <a class="code" href="rr_8c.html#a07b1ccea9f2694b8b88904c543e16783" title="returns a specific rr of an rrlist.">ldns_rr_list_rr</a>(
<a name="l01502"></a>01502                                                <a class="code" href="packet_8c.html#abe3507def1f75f9a369334f75a4b4799" title="Return the packet&#39;s answer section.">ldns_pkt_answer</a>(pkt), i));
<a name="l01503"></a>01503                         <span class="keywordflow">if</span> (status != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01504"></a>01504                                 <span class="keywordflow">return</span> status;
<a name="l01505"></a>01505                         }
<a name="l01506"></a>01506 
<a name="l01507"></a>01507                 }
<a name="l01508"></a>01508                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01509"></a>01509 
<a name="l01510"></a>01510                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;;; AUTHORITY SECTION:\n&quot;</span>);
<a name="l01511"></a>01511 
<a name="l01512"></a>01512                 <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="packet_8c.html#ac551c3cfc6a48241e1d4cd4d1390df1c" title="Return the packet&#39;s ns count.">ldns_pkt_nscount</a>(pkt); i++) {
<a name="l01513"></a>01513                         status = <a class="code" href="host2str_8c.html#a5335d1bcbf92dae7854e429a05695fcc" title="Converts the data in the resource record to presentation format (as char *) and appends it to the giv...">ldns_rr2buffer_str_fmt</a>(output, fmt,
<a name="l01514"></a>01514                                        <a class="code" href="rr_8c.html#a07b1ccea9f2694b8b88904c543e16783" title="returns a specific rr of an rrlist.">ldns_rr_list_rr</a>(
<a name="l01515"></a>01515                                                <a class="code" href="packet_8c.html#a7edc2a338e1adfce9ef3ae137e6aa5d6" title="Return the packet&#39;s authority section.">ldns_pkt_authority</a>(pkt), i));
<a name="l01516"></a>01516                         <span class="keywordflow">if</span> (status != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01517"></a>01517                                 <span class="keywordflow">return</span> status;
<a name="l01518"></a>01518                         }
<a name="l01519"></a>01519                 }
<a name="l01520"></a>01520                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01521"></a>01521 
<a name="l01522"></a>01522                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;;; ADDITIONAL SECTION:\n&quot;</span>);
<a name="l01523"></a>01523                 <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="packet_8c.html#a45ad46caf5027284947fe58b77b2a93a" title="Return the packet&#39;s ar count.">ldns_pkt_arcount</a>(pkt); i++) {
<a name="l01524"></a>01524                         status = <a class="code" href="host2str_8c.html#a5335d1bcbf92dae7854e429a05695fcc" title="Converts the data in the resource record to presentation format (as char *) and appends it to the giv...">ldns_rr2buffer_str_fmt</a>(output, fmt,
<a name="l01525"></a>01525                                        <a class="code" href="rr_8c.html#a07b1ccea9f2694b8b88904c543e16783" title="returns a specific rr of an rrlist.">ldns_rr_list_rr</a>(
<a name="l01526"></a>01526                                                <a class="code" href="packet_8c.html#a9419e23858eddcd58bd61fcf39cffd61" title="Return the packet&#39;s additional section.">ldns_pkt_additional</a>(pkt), i));
<a name="l01527"></a>01527                         <span class="keywordflow">if</span> (status != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01528"></a>01528                                 <span class="keywordflow">return</span> status;
<a name="l01529"></a>01529                         }
<a name="l01530"></a>01530 
<a name="l01531"></a>01531                 }
<a name="l01532"></a>01532                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01533"></a>01533                 <span class="comment">/* add some futher fields */</span>
<a name="l01534"></a>01534                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;;; Query time: %d msec\n&quot;</span>,
<a name="l01535"></a>01535                                 <a class="code" href="packet_8c.html#a9f54048e7a06924bebdc74c11c56fa96" title="Return the packet&#39;s querytime.">ldns_pkt_querytime</a>(pkt));
<a name="l01536"></a>01536                 <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#a7811437ba5ec3f1a06295af1bd0566c0" title="returns true if this packet needs and EDNS rr to be sent.">ldns_pkt_edns</a>(pkt)) {
<a name="l01537"></a>01537                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,
<a name="l01538"></a>01538                                    <span class="stringliteral">&quot;;; EDNS: version %u; flags:&quot;</span>,
<a name="l01539"></a>01539                                    <a class="code" href="packet_8c.html#a082cf0e882efb5496189ce996b5aee05" title="return the packet&#39;s edns version">ldns_pkt_edns_version</a>(pkt));
<a name="l01540"></a>01540                         <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#addebdf1cc22b12a60d485ddaedab9c4d" title="return the packet&#39;s edns do bit">ldns_pkt_edns_do</a>(pkt)) {
<a name="l01541"></a>01541                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot; do&quot;</span>);
<a name="l01542"></a>01542                         }
<a name="l01543"></a>01543                         <span class="comment">/* the extended rcode is the value set, shifted four bits,</span>
<a name="l01544"></a>01544 <span class="comment">                         * and or&#39;d with the original rcode */</span>
<a name="l01545"></a>01545                         <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#aa5c655708da9980489d4dc8c00be83c3" title="return the packet&#39;s edns extended rcode">ldns_pkt_edns_extended_rcode</a>(pkt)) {
<a name="l01546"></a>01546                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot; ; ext-rcode: %d&quot;</span>,
<a name="l01547"></a>01547                                         (<a class="code" href="packet_8c.html#aa5c655708da9980489d4dc8c00be83c3" title="return the packet&#39;s edns extended rcode">ldns_pkt_edns_extended_rcode</a>(pkt) &lt;&lt; 4 | <a class="code" href="packet_8c.html#af4256a808233651ea1a5bdab74ce2d8e" title="Return the packet&#39;s respons code.">ldns_pkt_get_rcode</a>(pkt)));
<a name="l01548"></a>01548                         }
<a name="l01549"></a>01549                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot; ; udp: %u\n&quot;</span>,
<a name="l01550"></a>01550                                            <a class="code" href="packet_8c.html#afc049180b6ff8b892f9ea80a13bf4990" title="return the packet&#39;s edns udp size">ldns_pkt_edns_udp_size</a>(pkt));
<a name="l01551"></a>01551 
<a name="l01552"></a>01552                         <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#ad55346b7f33de49bf4f3e34fdaa412c6" title="return the packet&#39;s edns data">ldns_pkt_edns_data</a>(pkt)) {
<a name="l01553"></a>01553                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;;; Data: &quot;</span>);
<a name="l01554"></a>01554                                 (void)<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output,
<a name="l01555"></a>01555                                                           <a class="code" href="packet_8c.html#ad55346b7f33de49bf4f3e34fdaa412c6" title="return the packet&#39;s edns data">ldns_pkt_edns_data</a>(pkt));
<a name="l01556"></a>01556                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01557"></a>01557                         }
<a name="l01558"></a>01558                 }
<a name="l01559"></a>01559                 <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#ad7dead450927dc5d6db4dd4ef7c738e1" title="Return the packet&#39;s tsig pseudo rr&#39;s.">ldns_pkt_tsig</a>(pkt)) {
<a name="l01560"></a>01560                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;;; TSIG:\n;; &quot;</span>);
<a name="l01561"></a>01561                         (void) <a class="code" href="host2str_8c.html#a5335d1bcbf92dae7854e429a05695fcc" title="Converts the data in the resource record to presentation format (as char *) and appends it to the giv...">ldns_rr2buffer_str_fmt</a>(
<a name="l01562"></a>01562                                         output, fmt, <a class="code" href="packet_8c.html#ad7dead450927dc5d6db4dd4ef7c738e1" title="Return the packet&#39;s tsig pseudo rr&#39;s.">ldns_pkt_tsig</a>(pkt));
<a name="l01563"></a>01563                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01564"></a>01564                 }
<a name="l01565"></a>01565                 <span class="keywordflow">if</span> (<a class="code" href="packet_8c.html#a126c9035ceb1517ddf23e1f22c384458" title="Return the packet&#39;s answerfrom.">ldns_pkt_answerfrom</a>(pkt)) {
<a name="l01566"></a>01566                         tmp = <a class="code" href="host2str_8c.html#ae404881f2bc2bd31588e32e250f2c46b" title="Converts the data in the rdata field to presentation format and returns that as a char *...">ldns_rdf2str</a>(<a class="code" href="packet_8c.html#a126c9035ceb1517ddf23e1f22c384458" title="Return the packet&#39;s answerfrom.">ldns_pkt_answerfrom</a>(pkt));
<a name="l01567"></a>01567                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;;; SERVER: %s\n&quot;</span>, tmp);
<a name="l01568"></a>01568                         <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(tmp);
<a name="l01569"></a>01569                 }
<a name="l01570"></a>01570                 time = <a class="code" href="packet_8c.html#a493839636f08954deb43adc219c21af9" title="Return the packet&#39;s timestamp.">ldns_pkt_timestamp</a>(pkt);
<a name="l01571"></a>01571                 time_tt = (time_t)time.tv_sec;
<a name="l01572"></a>01572                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;;; WHEN: %s&quot;</span>,
<a name="l01573"></a>01573                                 (<span class="keywordtype">char</span>*)ctime(&amp;time_tt));
<a name="l01574"></a>01574 
<a name="l01575"></a>01575                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;;; MSG SIZE  rcvd: %d\n&quot;</span>,
<a name="l01576"></a>01576                                 (<span class="keywordtype">int</span>)<a class="code" href="packet_8c.html#a973aae4a231e8022bb095defcc9ca264" title="Return the packet&#39;s size in bytes.">ldns_pkt_size</a>(pkt));
<a name="l01577"></a>01577         } <span class="keywordflow">else</span> {
<a name="l01578"></a>01578                 <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l01579"></a>01579         }
<a name="l01580"></a>01580         <span class="keywordflow">return</span> status;
<a name="l01581"></a>01581 }
<a name="l01582"></a>01582 
<a name="l01583"></a>01583 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l01584"></a><a class="code" href="host2str_8h.html#aee460d93f4ae4268e7bce4333c21570c">01584</a> <a class="code" href="host2str_8c.html#aee460d93f4ae4268e7bce4333c21570c" title="Converts the data in the DNS packet to presentation format (as char *) and appends it to the given bu...">ldns_pkt2buffer_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__pkt.html" title="DNS packet.">ldns_pkt</a> *pkt)
<a name="l01585"></a>01585 {
<a name="l01586"></a>01586         <span class="keywordflow">return</span> <a class="code" href="host2str_8c.html#a4cb89e0a50045ba96bf818eb6765069d" title="Converts the data in the DNS packet to presentation format (as char *) and appends it to the given bu...">ldns_pkt2buffer_str_fmt</a>(output, <a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>, pkt);
<a name="l01587"></a>01587 }
<a name="l01588"></a>01588 
<a name="l01589"></a>01589 
<a name="l01590"></a>01590 <span class="preprocessor">#ifdef HAVE_SSL</span>
<a name="l01591"></a>01591 <span class="preprocessor"></span><span class="keyword">static</span> <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l01592"></a>01592 ldns_hmac_key2buffer_str(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__key.html" title="General key structure, can contain all types of keys that are used in DNSSEC.">ldns_key</a> *k)
<a name="l01593"></a>01593 {
<a name="l01594"></a>01594         <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> status;
<a name="l01595"></a>01595         <span class="keywordtype">size_t</span> i;
<a name="l01596"></a>01596         <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *b64_bignum;
<a name="l01597"></a>01597 
<a name="l01598"></a>01598         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Key: &quot;</span>);
<a name="l01599"></a>01599 
<a name="l01600"></a>01600         i = <a class="code" href="keys_8c.html#a84da4a777c99c6e96dea4c4d6e9cb269" title="return the hmac key size">ldns_key_hmac_size</a>(k);
<a name="l01601"></a>01601         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, <a class="code" href="keys_8c.html#a4ddd291d05ea2a66c7dc8896ffb5bfd0" title="return the hmac key data">ldns_key_hmac_key</a>(k));
<a name="l01602"></a>01602         status = <a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum);
<a name="l01603"></a>01603         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01604"></a>01604         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01605"></a>01605         <span class="keywordflow">return</span> status;
<a name="l01606"></a>01606 }
<a name="l01607"></a>01607 <span class="preprocessor">#endif</span>
<a name="l01608"></a>01608 <span class="preprocessor"></span>
<a name="l01609"></a>01609 <span class="preprocessor">#if defined(HAVE_SSL) &amp;&amp; defined(USE_GOST)</span>
<a name="l01610"></a>01610 <span class="preprocessor"></span><span class="keyword">static</span> <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l01611"></a>01611 ldns_gost_key2buffer_str(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, EVP_PKEY *p)
<a name="l01612"></a>01612 {
<a name="l01613"></a>01613         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* pp = NULL;
<a name="l01614"></a>01614         <span class="keywordtype">int</span> ret;
<a name="l01615"></a>01615         <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *b64_bignum;
<a name="l01616"></a>01616         <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> status;
<a name="l01617"></a>01617 
<a name="l01618"></a>01618         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;GostAsn1: &quot;</span>);
<a name="l01619"></a>01619 
<a name="l01620"></a>01620         ret = i2d_PrivateKey(p, &amp;pp);
<a name="l01621"></a>01621         b64_bignum = <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, (<span class="keywordtype">size_t</span>)ret, pp);
<a name="l01622"></a>01622         status = <a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum);
<a name="l01623"></a>01623 
<a name="l01624"></a>01624         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01625"></a>01625         OPENSSL_free(pp);
<a name="l01626"></a>01626         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01627"></a>01627         <span class="keywordflow">return</span> status;
<a name="l01628"></a>01628 }
<a name="l01629"></a>01629 <span class="preprocessor">#endif</span>
<a name="l01630"></a>01630 <span class="preprocessor"></span>
<a name="l01631"></a>01631 <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>
<a name="l01632"></a><a class="code" href="host2str_8h.html#a1e3b2852d2f8f423e24032cd44b27b99">01632</a> <a class="code" href="host2str_8c.html#a1e3b2852d2f8f423e24032cd44b27b99" title="Converts the data in the DNS packet to presentation format (as char *) and appends it to the given bu...">ldns_key2buffer_str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__key.html" title="General key structure, can contain all types of keys that are used in DNSSEC.">ldns_key</a> *k)
<a name="l01633"></a>01633 {
<a name="l01634"></a>01634         <a class="code" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> status = <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>;
<a name="l01635"></a>01635         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>  *bignum;
<a name="l01636"></a>01636 <span class="preprocessor">#ifndef S_SPLINT_S</span>
<a name="l01637"></a>01637 <span class="preprocessor"></span>        uint16_t i;
<a name="l01638"></a>01638 <span class="preprocessor">#endif</span>
<a name="l01639"></a>01639 <span class="preprocessor"></span>
<a name="l01640"></a>01640 <span class="preprocessor">#ifdef HAVE_SSL</span>
<a name="l01641"></a>01641 <span class="preprocessor"></span>        <span class="comment">/* not used when ssl is not defined */</span>
<a name="l01642"></a>01642         <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *b64_bignum = NULL;
<a name="l01643"></a>01643 
<a name="l01644"></a>01644         RSA *rsa;
<a name="l01645"></a>01645         DSA *dsa;
<a name="l01646"></a>01646 <span class="preprocessor">#endif </span><span class="comment">/* HAVE_SSL */</span>
<a name="l01647"></a>01647 
<a name="l01648"></a>01648         <span class="keywordflow">if</span> (!k) {
<a name="l01649"></a>01649                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa804a996d5f13cda0806bf1d54114d2ca">LDNS_STATUS_ERR</a>;
<a name="l01650"></a>01650         }
<a name="l01651"></a>01651 
<a name="l01652"></a>01652         bignum = <a class="code" href="util_8h.html#aaad6949daea3c6cefd01d19300f6e21a">LDNS_XMALLOC</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>, <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>);
<a name="l01653"></a>01653         <span class="keywordflow">if</span> (!bignum) {
<a name="l01654"></a>01654                 <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa804a996d5f13cda0806bf1d54114d2ca">LDNS_STATUS_ERR</a>;
<a name="l01655"></a>01655         }
<a name="l01656"></a>01656 
<a name="l01657"></a>01657         <span class="keywordflow">if</span> (ldns_buffer_status_ok(output)) {
<a name="l01658"></a>01658 <span class="preprocessor">#ifdef HAVE_SSL</span>
<a name="l01659"></a>01659 <span class="preprocessor"></span>                <span class="keywordflow">switch</span>(<a class="code" href="keys_8c.html#a906b7cc79acd016fb1f400aff16b9f1c" title="return the signing alg of the key">ldns_key_algorithm</a>(k)) {
<a name="l01660"></a>01660                         <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a062ab8c29c8f73b28bbb552597975dbc">LDNS_SIGN_RSASHA1</a>:
<a name="l01661"></a>01661                         <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a7a8b2b416cc65f7637108b6ba35cad69">LDNS_SIGN_RSASHA1_NSEC3</a>:
<a name="l01662"></a>01662                         <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a9f88342b4f9ce95700a72154b6d30269">LDNS_SIGN_RSASHA256</a>:
<a name="l01663"></a>01663                         <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a93fc09210171fbecee85ed84ebfc7dbd">LDNS_SIGN_RSASHA512</a>:
<a name="l01664"></a>01664                         <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a92e7ccac219c462f054e00c8e6c8321b">LDNS_SIGN_RSAMD5</a>:
<a name="l01665"></a>01665                                 <span class="comment">/* copied by looking at dnssec-keygen output */</span>
<a name="l01666"></a>01666                                 <span class="comment">/* header */</span>
<a name="l01667"></a>01667                                 rsa = <a class="code" href="keys_8c.html#ab6d8d9d2a11f73c09c83c6ff4cd2bb98" title="returns the (openssl) RSA struct contained in the key">ldns_key_rsa_key</a>(k);
<a name="l01668"></a>01668 
<a name="l01669"></a>01669                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,<span class="stringliteral">&quot;Private-key-format: v1.2\n&quot;</span>);
<a name="l01670"></a>01670                                 <span class="keywordflow">switch</span>(<a class="code" href="keys_8c.html#a906b7cc79acd016fb1f400aff16b9f1c" title="return the signing alg of the key">ldns_key_algorithm</a>(k)) {
<a name="l01671"></a>01671                                 <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a92e7ccac219c462f054e00c8e6c8321b">LDNS_SIGN_RSAMD5</a>:
<a name="l01672"></a>01672                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,
<a name="l01673"></a>01673                                                                     <span class="stringliteral">&quot;Algorithm: %u (RSA)\n&quot;</span>,
<a name="l01674"></a>01674                                                                     <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a13e3a2a9c94b219ec314ac60ee65237c">LDNS_RSAMD5</a>);
<a name="l01675"></a>01675                                         <span class="keywordflow">break</span>;
<a name="l01676"></a>01676                                 <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a062ab8c29c8f73b28bbb552597975dbc">LDNS_SIGN_RSASHA1</a>:
<a name="l01677"></a>01677                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,
<a name="l01678"></a>01678                                                                     <span class="stringliteral">&quot;Algorithm: %u (RSASHA1)\n&quot;</span>,
<a name="l01679"></a>01679                                                                     <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10adc4185432973db18dc51adee3f28bf80">LDNS_RSASHA1</a>);
<a name="l01680"></a>01680                                         <span class="keywordflow">break</span>;
<a name="l01681"></a>01681                                 <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a7a8b2b416cc65f7637108b6ba35cad69">LDNS_SIGN_RSASHA1_NSEC3</a>:
<a name="l01682"></a>01682                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,
<a name="l01683"></a>01683                                                                     <span class="stringliteral">&quot;Algorithm: %u (RSASHA1_NSEC3)\n&quot;</span>,
<a name="l01684"></a>01684                                                                     <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a4ad4fa00be7e34f3745a81ee4effda59">LDNS_RSASHA1_NSEC3</a>);
<a name="l01685"></a>01685                                         <span class="keywordflow">break</span>;
<a name="l01686"></a>01686 <span class="preprocessor">#ifdef USE_SHA2</span>
<a name="l01687"></a>01687 <span class="preprocessor"></span>                                <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a9f88342b4f9ce95700a72154b6d30269">LDNS_SIGN_RSASHA256</a>:
<a name="l01688"></a>01688                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,
<a name="l01689"></a>01689                                                                     <span class="stringliteral">&quot;Algorithm: %u (RSASHA256)\n&quot;</span>,
<a name="l01690"></a>01690                                                                     <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10ae1c2799b23f981474658ae94acbe6ddd">LDNS_RSASHA256</a>);
<a name="l01691"></a>01691                                         <span class="keywordflow">break</span>;
<a name="l01692"></a>01692                                 <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a93fc09210171fbecee85ed84ebfc7dbd">LDNS_SIGN_RSASHA512</a>:
<a name="l01693"></a>01693                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,
<a name="l01694"></a>01694                                                                     <span class="stringliteral">&quot;Algorithm: %u (RSASHA512)\n&quot;</span>,
<a name="l01695"></a>01695                                                                     <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10adc52ea2e33d9e8d3754595a47179977a">LDNS_RSASHA512</a>);
<a name="l01696"></a>01696                                         <span class="keywordflow">break</span>;
<a name="l01697"></a>01697 <span class="preprocessor">#endif</span>
<a name="l01698"></a>01698 <span class="preprocessor"></span>                                <span class="keywordflow">default</span>:
<a name="l01699"></a>01699                                         fprintf(stderr, <span class="stringliteral">&quot;Warning: unknown signature &quot;</span>);
<a name="l01700"></a>01700                                         fprintf(stderr,
<a name="l01701"></a>01701                                                    <span class="stringliteral">&quot;algorithm type %u\n&quot;</span>,
<a name="l01702"></a>01702                                                    <a class="code" href="keys_8c.html#a906b7cc79acd016fb1f400aff16b9f1c" title="return the signing alg of the key">ldns_key_algorithm</a>(k));
<a name="l01703"></a>01703                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,
<a name="l01704"></a>01704                                                                     <span class="stringliteral">&quot;Algorithm: %u (Unknown)\n&quot;</span>,
<a name="l01705"></a>01705                                                                     <a class="code" href="keys_8c.html#a906b7cc79acd016fb1f400aff16b9f1c" title="return the signing alg of the key">ldns_key_algorithm</a>(k));
<a name="l01706"></a>01706                                         <span class="keywordflow">break</span>;
<a name="l01707"></a>01707                                 }
<a name="l01708"></a>01708 
<a name="l01709"></a>01709                                 <span class="comment">/* print to buf, convert to bin, convert to b64,</span>
<a name="l01710"></a>01710 <span class="comment">                                 * print to buf */</span>
<a name="l01711"></a>01711                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Modulus: &quot;</span>);
<a name="l01712"></a>01712 <span class="preprocessor">#ifndef S_SPLINT_S</span>
<a name="l01713"></a>01713 <span class="preprocessor"></span>                                i = (uint16_t)BN_bn2bin(rsa-&gt;n, bignum);
<a name="l01714"></a>01714                                 <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01715"></a>01715                                         <span class="keywordflow">goto</span> error;
<a name="l01716"></a>01716                                 }
<a name="l01717"></a>01717                                 b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01718"></a>01718                                 <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01719"></a>01719                                         <span class="keywordflow">goto</span> error;
<a name="l01720"></a>01720                                 }
<a name="l01721"></a>01721                                 <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01722"></a>01722                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01723"></a>01723                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;PublicExponent: &quot;</span>);
<a name="l01724"></a>01724                                 i = (uint16_t)BN_bn2bin(rsa-&gt;e, bignum);
<a name="l01725"></a>01725                                 <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01726"></a>01726                                         <span class="keywordflow">goto</span> error;
<a name="l01727"></a>01727                                 }
<a name="l01728"></a>01728                                 b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01729"></a>01729                                 <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01730"></a>01730                                         <span class="keywordflow">goto</span> error;
<a name="l01731"></a>01731                                 }
<a name="l01732"></a>01732                                 <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01733"></a>01733                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01734"></a>01734 
<a name="l01735"></a>01735                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;PrivateExponent: &quot;</span>);
<a name="l01736"></a>01736                                 <span class="keywordflow">if</span> (rsa-&gt;d) {
<a name="l01737"></a>01737                                         i = (uint16_t)BN_bn2bin(rsa-&gt;d, bignum);
<a name="l01738"></a>01738                                         <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01739"></a>01739                                                 <span class="keywordflow">goto</span> error;
<a name="l01740"></a>01740                                         }
<a name="l01741"></a>01741                                         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01742"></a>01742                                         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01743"></a>01743                                                 <span class="keywordflow">goto</span> error;
<a name="l01744"></a>01744                                         }
<a name="l01745"></a>01745                                         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01746"></a>01746                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01747"></a>01747                                 } <span class="keywordflow">else</span> {
<a name="l01748"></a>01748                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;(Not available)\n&quot;</span>);
<a name="l01749"></a>01749                                 }
<a name="l01750"></a>01750 
<a name="l01751"></a>01751                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Prime1: &quot;</span>);
<a name="l01752"></a>01752                                 <span class="keywordflow">if</span> (rsa-&gt;p) {
<a name="l01753"></a>01753                                         i = (uint16_t)BN_bn2bin(rsa-&gt;p, bignum);
<a name="l01754"></a>01754                                         <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01755"></a>01755                                                 <span class="keywordflow">goto</span> error;
<a name="l01756"></a>01756                                         }
<a name="l01757"></a>01757                                         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01758"></a>01758                                         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01759"></a>01759                                                 <span class="keywordflow">goto</span> error;
<a name="l01760"></a>01760                                         }
<a name="l01761"></a>01761                                         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01762"></a>01762                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01763"></a>01763                                 } <span class="keywordflow">else</span> {
<a name="l01764"></a>01764                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;(Not available)\n&quot;</span>);
<a name="l01765"></a>01765                                 }
<a name="l01766"></a>01766 
<a name="l01767"></a>01767                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Prime2: &quot;</span>);
<a name="l01768"></a>01768                                 <span class="keywordflow">if</span> (rsa-&gt;q) {
<a name="l01769"></a>01769                                         i = (uint16_t)BN_bn2bin(rsa-&gt;q, bignum);
<a name="l01770"></a>01770                                         <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01771"></a>01771                                                 <span class="keywordflow">goto</span> error;
<a name="l01772"></a>01772                                         }
<a name="l01773"></a>01773                                         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01774"></a>01774                                         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01775"></a>01775                                                 <span class="keywordflow">goto</span> error;
<a name="l01776"></a>01776                                         }
<a name="l01777"></a>01777                                         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01778"></a>01778                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01779"></a>01779                                 } <span class="keywordflow">else</span> {
<a name="l01780"></a>01780                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;(Not available)\n&quot;</span>);
<a name="l01781"></a>01781                                 }
<a name="l01782"></a>01782 
<a name="l01783"></a>01783                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Exponent1: &quot;</span>);
<a name="l01784"></a>01784                                 <span class="keywordflow">if</span> (rsa-&gt;dmp1) {
<a name="l01785"></a>01785                                         i = (uint16_t)BN_bn2bin(rsa-&gt;dmp1, bignum);
<a name="l01786"></a>01786                                         <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01787"></a>01787                                                 <span class="keywordflow">goto</span> error;
<a name="l01788"></a>01788                                         }
<a name="l01789"></a>01789                                         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01790"></a>01790                                         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01791"></a>01791                                                 <span class="keywordflow">goto</span> error;
<a name="l01792"></a>01792                                         }
<a name="l01793"></a>01793                                         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01794"></a>01794                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01795"></a>01795                                 } <span class="keywordflow">else</span> {
<a name="l01796"></a>01796                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;(Not available)\n&quot;</span>);
<a name="l01797"></a>01797                                 }
<a name="l01798"></a>01798 
<a name="l01799"></a>01799                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Exponent2: &quot;</span>);
<a name="l01800"></a>01800                                 <span class="keywordflow">if</span> (rsa-&gt;dmq1) {
<a name="l01801"></a>01801                                         i = (uint16_t)BN_bn2bin(rsa-&gt;dmq1, bignum);
<a name="l01802"></a>01802                                         <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01803"></a>01803                                                 <span class="keywordflow">goto</span> error;
<a name="l01804"></a>01804                                         }
<a name="l01805"></a>01805                                         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01806"></a>01806                                         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01807"></a>01807                                                 <span class="keywordflow">goto</span> error;
<a name="l01808"></a>01808                                         }
<a name="l01809"></a>01809                                         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01810"></a>01810                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01811"></a>01811                                 } <span class="keywordflow">else</span> {
<a name="l01812"></a>01812                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;(Not available)\n&quot;</span>);
<a name="l01813"></a>01813                                 }
<a name="l01814"></a>01814 
<a name="l01815"></a>01815                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Coefficient: &quot;</span>);
<a name="l01816"></a>01816                                 <span class="keywordflow">if</span> (rsa-&gt;iqmp) {
<a name="l01817"></a>01817                                         i = (uint16_t)BN_bn2bin(rsa-&gt;iqmp, bignum);
<a name="l01818"></a>01818                                         <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01819"></a>01819                                                 <span class="keywordflow">goto</span> error;
<a name="l01820"></a>01820                                         }
<a name="l01821"></a>01821                                         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01822"></a>01822                                         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01823"></a>01823                                                 <span class="keywordflow">goto</span> error;
<a name="l01824"></a>01824                                         }
<a name="l01825"></a>01825                                         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01826"></a>01826                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01827"></a>01827                                 } <span class="keywordflow">else</span> {
<a name="l01828"></a>01828                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;(Not available)\n&quot;</span>);
<a name="l01829"></a>01829                                 }
<a name="l01830"></a>01830 <span class="preprocessor">#endif </span><span class="comment">/* splint */</span>
<a name="l01831"></a>01831 
<a name="l01832"></a>01832                                 RSA_free(rsa);
<a name="l01833"></a>01833                                 <span class="keywordflow">break</span>;
<a name="l01834"></a>01834                         <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a98ae68498fea31062b1d03a861846aa5">LDNS_SIGN_DSA</a>:
<a name="l01835"></a>01835                         <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a28624a25c45025703d05de9984c4ee4a">LDNS_SIGN_DSA_NSEC3</a>:
<a name="l01836"></a>01836                                 dsa = <a class="code" href="keys_8c.html#ae3f85392da83f13ba7556373816b350d" title="returns the (openssl) DSA struct contained in the key">ldns_key_dsa_key</a>(k);
<a name="l01837"></a>01837 
<a name="l01838"></a>01838                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,<span class="stringliteral">&quot;Private-key-format: v1.2\n&quot;</span>);
<a name="l01839"></a>01839                                 <span class="keywordflow">if</span> (<a class="code" href="keys_8c.html#a906b7cc79acd016fb1f400aff16b9f1c" title="return the signing alg of the key">ldns_key_algorithm</a>(k) == <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a98ae68498fea31062b1d03a861846aa5">LDNS_SIGN_DSA</a>) {
<a name="l01840"></a>01840                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,<span class="stringliteral">&quot;Algorithm: 3 (DSA)\n&quot;</span>);
<a name="l01841"></a>01841                                 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="keys_8c.html#a906b7cc79acd016fb1f400aff16b9f1c" title="return the signing alg of the key">ldns_key_algorithm</a>(k) == <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a28624a25c45025703d05de9984c4ee4a">LDNS_SIGN_DSA_NSEC3</a>) {
<a name="l01842"></a>01842                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output,<span class="stringliteral">&quot;Algorithm: 6 (DSA_NSEC3)\n&quot;</span>);
<a name="l01843"></a>01843                                 }
<a name="l01844"></a>01844 
<a name="l01845"></a>01845                                 <span class="comment">/* print to buf, convert to bin, convert to b64,</span>
<a name="l01846"></a>01846 <span class="comment">                                 * print to buf */</span>
<a name="l01847"></a>01847                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Prime(p): &quot;</span>);
<a name="l01848"></a>01848 <span class="preprocessor">#ifndef S_SPLINT_S</span>
<a name="l01849"></a>01849 <span class="preprocessor"></span>                                <span class="keywordflow">if</span> (dsa-&gt;p) {
<a name="l01850"></a>01850                                         i = (uint16_t)BN_bn2bin(dsa-&gt;p, bignum);
<a name="l01851"></a>01851                                         <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01852"></a>01852                                                 <span class="keywordflow">goto</span> error;
<a name="l01853"></a>01853                                         }
<a name="l01854"></a>01854                                         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01855"></a>01855                                         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01856"></a>01856                                                 <span class="keywordflow">goto</span> error;
<a name="l01857"></a>01857                                         }
<a name="l01858"></a>01858                                         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01859"></a>01859                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01860"></a>01860                                 } <span class="keywordflow">else</span> {
<a name="l01861"></a>01861                                         printf(<span class="stringliteral">&quot;(Not available)\n&quot;</span>);
<a name="l01862"></a>01862                                 }
<a name="l01863"></a>01863 
<a name="l01864"></a>01864                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Subprime(q): &quot;</span>);
<a name="l01865"></a>01865                                 <span class="keywordflow">if</span> (dsa-&gt;q) {
<a name="l01866"></a>01866                                         i = (uint16_t)BN_bn2bin(dsa-&gt;q, bignum);
<a name="l01867"></a>01867                                         <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01868"></a>01868                                                 <span class="keywordflow">goto</span> error;
<a name="l01869"></a>01869                                         }
<a name="l01870"></a>01870                                         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01871"></a>01871                                         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01872"></a>01872                                                 <span class="keywordflow">goto</span> error;
<a name="l01873"></a>01873                                         }
<a name="l01874"></a>01874                                         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01875"></a>01875                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01876"></a>01876                                 } <span class="keywordflow">else</span> {
<a name="l01877"></a>01877                                         printf(<span class="stringliteral">&quot;(Not available)\n&quot;</span>);
<a name="l01878"></a>01878                                 }
<a name="l01879"></a>01879 
<a name="l01880"></a>01880                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Base(g): &quot;</span>);
<a name="l01881"></a>01881                                 <span class="keywordflow">if</span> (dsa-&gt;g) {
<a name="l01882"></a>01882                                         i = (uint16_t)BN_bn2bin(dsa-&gt;g, bignum);
<a name="l01883"></a>01883                                         <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01884"></a>01884                                                 <span class="keywordflow">goto</span> error;
<a name="l01885"></a>01885                                         }
<a name="l01886"></a>01886                                         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01887"></a>01887                                         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01888"></a>01888                                                 <span class="keywordflow">goto</span> error;
<a name="l01889"></a>01889                                         }
<a name="l01890"></a>01890                                         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01891"></a>01891                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01892"></a>01892                                 } <span class="keywordflow">else</span> {
<a name="l01893"></a>01893                                         printf(<span class="stringliteral">&quot;(Not available)\n&quot;</span>);
<a name="l01894"></a>01894                                 }
<a name="l01895"></a>01895 
<a name="l01896"></a>01896                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Private_value(x): &quot;</span>);
<a name="l01897"></a>01897                                 <span class="keywordflow">if</span> (dsa-&gt;priv_key) {
<a name="l01898"></a>01898                                         i = (uint16_t)BN_bn2bin(dsa-&gt;priv_key, bignum);
<a name="l01899"></a>01899                                         <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01900"></a>01900                                                 <span class="keywordflow">goto</span> error;
<a name="l01901"></a>01901                                         }
<a name="l01902"></a>01902                                         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01903"></a>01903                                         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01904"></a>01904                                                 <span class="keywordflow">goto</span> error;
<a name="l01905"></a>01905                                         }
<a name="l01906"></a>01906                                         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01907"></a>01907                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01908"></a>01908                                 } <span class="keywordflow">else</span> {
<a name="l01909"></a>01909                                         printf(<span class="stringliteral">&quot;(Not available)\n&quot;</span>);
<a name="l01910"></a>01910                                 }
<a name="l01911"></a>01911 
<a name="l01912"></a>01912                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Public_value(y): &quot;</span>);
<a name="l01913"></a>01913                                 <span class="keywordflow">if</span> (dsa-&gt;pub_key) {
<a name="l01914"></a>01914                                         i = (uint16_t)BN_bn2bin(dsa-&gt;pub_key, bignum);
<a name="l01915"></a>01915                                         <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01916"></a>01916                                                 <span class="keywordflow">goto</span> error;
<a name="l01917"></a>01917                                         }
<a name="l01918"></a>01918                                         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01919"></a>01919                                         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01920"></a>01920                                                 <span class="keywordflow">goto</span> error;
<a name="l01921"></a>01921                                         }
<a name="l01922"></a>01922                                         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01923"></a>01923                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01924"></a>01924                                 } <span class="keywordflow">else</span> {
<a name="l01925"></a>01925                                         printf(<span class="stringliteral">&quot;(Not available)\n&quot;</span>);
<a name="l01926"></a>01926                                 }
<a name="l01927"></a>01927 <span class="preprocessor">#endif </span><span class="comment">/* splint */</span>
<a name="l01928"></a>01928                                 <span class="keywordflow">break</span>;
<a name="l01929"></a>01929                         <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a2f5cc1330edd5c11be92509543402f98">LDNS_SIGN_ECC_GOST</a>:
<a name="l01930"></a>01930                                 <span class="comment">/* no format defined, use blob */</span>
<a name="l01931"></a>01931 <span class="preprocessor">#if defined(HAVE_SSL) &amp;&amp; defined(USE_GOST)</span>
<a name="l01932"></a>01932 <span class="preprocessor"></span>                                <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Private-key-format: v1.2\n&quot;</span>);
<a name="l01933"></a>01933                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Algorithm: %d (ECC-GOST)\n&quot;</span>, <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a2f5cc1330edd5c11be92509543402f98">LDNS_SIGN_ECC_GOST</a>);
<a name="l01934"></a>01934                                 status = ldns_gost_key2buffer_str(output, 
<a name="l01935"></a>01935 #ifndef S_SPLINT_S
<a name="l01936"></a>01936                                         k-&gt;<a class="code" href="structldns__struct__key.html#ad3ed8dad696362317befe6948fb87be7">_key</a>.<a class="code" href="structldns__struct__key.html#a662c8aa416a359facb8cbe2f1e37707a">key</a>
<a name="l01937"></a>01937 #<span class="keywordflow">else</span>
<a name="l01938"></a>01938                                         NULL
<a name="l01939"></a>01939 #endif
<a name="l01940"></a>01940                                 );
<a name="l01941"></a>01941 
<a name="l01942"></a>01942 <span class="preprocessor">#endif</span>
<a name="l01943"></a>01943 <span class="preprocessor"></span>                                <span class="keywordflow">break</span>;
<a name="l01944"></a>01944 <span class="preprocessor">#ifdef USE_ECDSA</span>
<a name="l01945"></a>01945 <span class="preprocessor"></span>                        <span class="keywordflow">case</span> LDNS_SIGN_ECDSAP256SHA256:
<a name="l01946"></a>01946                         <span class="keywordflow">case</span> LDNS_SIGN_ECDSAP384SHA384:
<a name="l01947"></a>01947                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Private-key-format: v1.2\n&quot;</span>);
<a name="l01948"></a>01948                                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Algorithm: %d (&quot;</span>, <a class="code" href="keys_8c.html#a906b7cc79acd016fb1f400aff16b9f1c" title="return the signing alg of the key">ldns_key_algorithm</a>(k));
<a name="l01949"></a>01949                                 status=<a class="code" href="host2str_8c.html#a83ce69552a46675557d3c95549ae02c2" title="Converts an ldns algorithm type to its mnemonic, and adds that to the output buffer.">ldns_algorithm2buffer_str</a>(output, (<a class="code" href="keys_8h.html#af4bde8238e05b183cf373f49639a3e58">ldns_algorithm</a>)<a class="code" href="keys_8c.html#a906b7cc79acd016fb1f400aff16b9f1c" title="return the signing alg of the key">ldns_key_algorithm</a>(k));
<a name="l01950"></a>01950 <span class="preprocessor">#ifndef S_SPLINT_S</span>
<a name="l01951"></a>01951 <span class="preprocessor"></span>                                <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;)\n&quot;</span>);
<a name="l01952"></a>01952                                 <span class="keywordflow">if</span>(k-&gt;<a class="code" href="structldns__struct__key.html#ad3ed8dad696362317befe6948fb87be7">_key</a>.<a class="code" href="structldns__struct__key.html#a662c8aa416a359facb8cbe2f1e37707a">key</a>) {
<a name="l01953"></a>01953                                         EC_KEY* ec = EVP_PKEY_get1_EC_KEY(k-&gt;<a class="code" href="structldns__struct__key.html#ad3ed8dad696362317befe6948fb87be7">_key</a>.<a class="code" href="structldns__struct__key.html#a662c8aa416a359facb8cbe2f1e37707a">key</a>);
<a name="l01954"></a>01954                                         <span class="keyword">const</span> BIGNUM* b = EC_KEY_get0_private_key(ec);
<a name="l01955"></a>01955                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;PrivateKey: &quot;</span>);
<a name="l01956"></a>01956                                         i = (uint16_t)BN_bn2bin(b, bignum);
<a name="l01957"></a>01957                                         <span class="keywordflow">if</span> (i &gt; <a class="code" href="dnssec_8h.html#a798ad176a54d51307d1c210bfe5877f6">LDNS_MAX_KEYLEN</a>) {
<a name="l01958"></a>01958                                                 <span class="keywordflow">goto</span> error;
<a name="l01959"></a>01959                                         }
<a name="l01960"></a>01960                                         b64_bignum =  <a class="code" href="rdata_8c.html#afeaa67dccf9c97ac9209776936279319" title="allocates a new rdf structure and fills it.">ldns_rdf_new_frm_data</a>(<a class="code" href="rdata_8h.html#aaa92376014f0abbf0110ca6efd587bb9a4bbe575feeed4d2e7045962b7262c180" title="b64 string">LDNS_RDF_TYPE_B64</a>, i, bignum);
<a name="l01961"></a>01961                                         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(output, b64_bignum) != <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l01962"></a>01962                                                 <span class="keywordflow">goto</span> error;
<a name="l01963"></a>01963                                         }
<a name="l01964"></a>01964                                         <a class="code" href="rdata_8c.html#a47cb2779f76f2f6561ff8ede8e41afec" title="frees a rdf structure _and_ frees the data.">ldns_rdf_deep_free</a>(b64_bignum);
<a name="l01965"></a>01965                                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l01966"></a>01966                                         <span class="comment">/* down reference count in EC_KEY</span>
<a name="l01967"></a>01967 <span class="comment">                                         * its still assigned to the PKEY */</span>
<a name="l01968"></a>01968                                         EC_KEY_free(ec);
<a name="l01969"></a>01969                                 }
<a name="l01970"></a>01970 <span class="preprocessor">#endif </span><span class="comment">/* splint */</span>
<a name="l01971"></a>01971                                 <span class="keywordflow">break</span>;
<a name="l01972"></a>01972 <span class="preprocessor">#endif</span>
<a name="l01973"></a>01973 <span class="preprocessor"></span>                        <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664a90eafd9721029814659dce35a33cdede">LDNS_SIGN_HMACMD5</a>:
<a name="l01974"></a>01974                                 <span class="comment">/* there&#39;s not much of a format defined for TSIG */</span>
<a name="l01975"></a>01975                                 <span class="comment">/* It&#39;s just a binary blob, Same for all algorithms */</span>
<a name="l01976"></a>01976                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Private-key-format: v1.2\n&quot;</span>);
<a name="l01977"></a>01977                 <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Algorithm: 157 (HMAC_MD5)\n&quot;</span>);
<a name="l01978"></a>01978                                 status = ldns_hmac_key2buffer_str(output, k);
<a name="l01979"></a>01979                                 <span class="keywordflow">break</span>;
<a name="l01980"></a>01980                         <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664ab4bb484126261b3e71183a0d7ae47404">LDNS_SIGN_HMACSHA1</a>:
<a name="l01981"></a>01981                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Private-key-format: v1.2\n&quot;</span>);
<a name="l01982"></a>01982                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Algorithm: 158 (HMAC_SHA1)\n&quot;</span>);
<a name="l01983"></a>01983                                 status = ldns_hmac_key2buffer_str(output, k);
<a name="l01984"></a>01984                                 <span class="keywordflow">break</span>;
<a name="l01985"></a>01985                         <span class="keywordflow">case</span> <a class="code" href="keys_8h.html#aa9c34fead27309e4540a2c4cee3db664afec7895ef19516fe5304601d31d3f117">LDNS_SIGN_HMACSHA256</a>:
<a name="l01986"></a>01986                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Private-key-format: v1.2\n&quot;</span>);
<a name="l01987"></a>01987                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(output, <span class="stringliteral">&quot;Algorithm: 159 (HMAC_SHA256)\n&quot;</span>);
<a name="l01988"></a>01988                                 status = ldns_hmac_key2buffer_str(output, k);
<a name="l01989"></a>01989                                 <span class="keywordflow">break</span>;
<a name="l01990"></a>01990                 }
<a name="l01991"></a>01991 <span class="preprocessor">#endif </span><span class="comment">/* HAVE_SSL */</span>
<a name="l01992"></a>01992         } <span class="keywordflow">else</span> {
<a name="l01993"></a>01993 <span class="preprocessor">#ifdef HAVE_SSL</span>
<a name="l01994"></a>01994 <span class="preprocessor"></span>                <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(b64_bignum);
<a name="l01995"></a>01995 <span class="preprocessor">#endif</span>
<a name="l01996"></a>01996 <span class="preprocessor"></span>                <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(bignum);
<a name="l01997"></a>01997                 <span class="keywordflow">return</span> ldns_buffer_status(output);
<a name="l01998"></a>01998         }
<a name="l01999"></a>01999         <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(bignum);
<a name="l02000"></a>02000         <span class="keywordflow">return</span> status;
<a name="l02001"></a>02001 
<a name="l02002"></a>02002 <span class="preprocessor">#ifdef HAVE_SSL</span>
<a name="l02003"></a>02003 <span class="preprocessor"></span>        <span class="comment">/* compiles warn the label isn&#39;t used */</span>
<a name="l02004"></a>02004 error:
<a name="l02005"></a>02005         <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(bignum);
<a name="l02006"></a>02006         <span class="keywordflow">return</span> <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afa804a996d5f13cda0806bf1d54114d2ca">LDNS_STATUS_ERR</a>;
<a name="l02007"></a>02007 <span class="preprocessor">#endif </span><span class="comment">/* HAVE_SSL */</span>
<a name="l02008"></a>02008 
<a name="l02009"></a>02009 }
<a name="l02010"></a>02010 
<a name="l02011"></a>02011 <span class="comment">/*</span>
<a name="l02012"></a>02012 <span class="comment"> * Zero terminate the buffer and fix it to the size of the string.</span>
<a name="l02013"></a>02013 <span class="comment"> */</span>
<a name="l02014"></a>02014 <span class="keywordtype">char</span> *
<a name="l02015"></a><a class="code" href="host2str_8h.html#a8fd566da148ea9c590b0bb17b8aa71af">02015</a> <a class="code" href="host2str_8c.html#a8fd566da148ea9c590b0bb17b8aa71af" title="Returns the data in the buffer as a null terminated char * string Buffer data must be char * type...">ldns_buffer2str</a>(<a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *buffer)
<a name="l02016"></a>02016 {
<a name="l02017"></a>02017         <span class="keywordtype">char</span> *tmp_str;
<a name="l02018"></a>02018         <span class="keywordtype">char</span> *str;
<a name="l02019"></a>02019 
<a name="l02020"></a>02020         <span class="comment">/* check if buffer ends with \0, if not, and</span>
<a name="l02021"></a>02021 <span class="comment">           if there is space, add it */</span>
<a name="l02022"></a>02022         <span class="keywordflow">if</span> (*(ldns_buffer_at(buffer, ldns_buffer_position(buffer))) != 0) {
<a name="l02023"></a>02023                 <span class="keywordflow">if</span> (!<a class="code" href="buffer_8c.html#a8ba0bcb3201dae8d3e563ed201decc7c" title="ensures BUFFER can contain at least AMOUNT more bytes.">ldns_buffer_reserve</a>(buffer, 1)) {
<a name="l02024"></a>02024                         <span class="keywordflow">return</span> NULL;
<a name="l02025"></a>02025                 }
<a name="l02026"></a>02026                 ldns_buffer_write_u8(buffer, (uint8_t) <span class="charliteral">&#39;\0&#39;</span>);
<a name="l02027"></a>02027                 <span class="keywordflow">if</span> (!<a class="code" href="buffer_8c.html#a4e16fc0b5f97c6a3d91533c93f8f47c2" title="changes the buffer&#39;s capacity.">ldns_buffer_set_capacity</a>(buffer, ldns_buffer_position(buffer))) {
<a name="l02028"></a>02028                         <span class="keywordflow">return</span> NULL;
<a name="l02029"></a>02029                 }
<a name="l02030"></a>02030         }
<a name="l02031"></a>02031 
<a name="l02032"></a>02032         tmp_str = <a class="code" href="buffer_8c.html#aedc3ca34290f5faad3cca548bb7125ab" title="Makes the buffer fixed and returns a pointer to the data.">ldns_buffer_export</a>(buffer);
<a name="l02033"></a>02033         str = <a class="code" href="util_8h.html#aaad6949daea3c6cefd01d19300f6e21a">LDNS_XMALLOC</a>(<span class="keywordtype">char</span>, strlen(tmp_str) + 1);
<a name="l02034"></a>02034         <span class="keywordflow">if</span>(!str) {
<a name="l02035"></a>02035                 <span class="keywordflow">return</span> NULL;
<a name="l02036"></a>02036         }
<a name="l02037"></a>02037         memcpy(str, tmp_str, strlen(tmp_str) + 1);
<a name="l02038"></a>02038 
<a name="l02039"></a>02039         <span class="keywordflow">return</span> str;
<a name="l02040"></a>02040 }
<a name="l02041"></a>02041 
<a name="l02042"></a>02042 <span class="keywordtype">char</span> *
<a name="l02043"></a><a class="code" href="host2str_8h.html#ae404881f2bc2bd31588e32e250f2c46b">02043</a> <a class="code" href="host2str_8c.html#ae404881f2bc2bd31588e32e250f2c46b" title="Converts the data in the rdata field to presentation format and returns that as a char *...">ldns_rdf2str</a>(<span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l02044"></a>02044 {
<a name="l02045"></a>02045         <span class="keywordtype">char</span> *result = NULL;
<a name="l02046"></a>02046         <a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *tmp_buffer = <a class="code" href="buffer_8c.html#ac6d413e9a76bf7e7c2022f13e36b9900" title="creates a new buffer with the specified capacity.">ldns_buffer_new</a>(<a class="code" href="packet_8h.html#a0335fad1ab5f49839cd6c5a71e3d721b">LDNS_MAX_PACKETLEN</a>);
<a name="l02047"></a>02047 
<a name="l02048"></a>02048         <span class="keywordflow">if</span> (!tmp_buffer) {
<a name="l02049"></a>02049                 <span class="keywordflow">return</span> NULL;
<a name="l02050"></a>02050         }
<a name="l02051"></a>02051         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a3ecbf2765c14acf0e3e1f9a230ba3b52" title="Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...">ldns_rdf2buffer_str</a>(tmp_buffer, rdf) == <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l02052"></a>02052                 <span class="comment">/* export and return string, destroy rest */</span>
<a name="l02053"></a>02053                 result = <a class="code" href="host2str_8c.html#a8fd566da148ea9c590b0bb17b8aa71af" title="Returns the data in the buffer as a null terminated char * string Buffer data must be char * type...">ldns_buffer2str</a>(tmp_buffer);
<a name="l02054"></a>02054         }
<a name="l02055"></a>02055         <a class="code" href="buffer_8c.html#a1615da957ad5a24a8b5cc1ba2f2b7f44" title="frees the buffer.">ldns_buffer_free</a>(tmp_buffer);
<a name="l02056"></a>02056         <span class="keywordflow">return</span> result;
<a name="l02057"></a>02057 }
<a name="l02058"></a>02058 
<a name="l02059"></a>02059 <span class="keywordtype">char</span> *
<a name="l02060"></a><a class="code" href="host2str_8h.html#a138dc6f7ac3007c271ed8ae9ba1c234d">02060</a> <a class="code" href="host2str_8c.html#a138dc6f7ac3007c271ed8ae9ba1c234d" title="Converts the data in the resource record to presentation format and returns that as a char *...">ldns_rr2str_fmt</a>(<span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a> *fmt, <span class="keyword">const</span> <a class="code" href="structldns__struct__rr.html" title="Resource Record.">ldns_rr</a> *rr)
<a name="l02061"></a>02061 {
<a name="l02062"></a>02062         <span class="keywordtype">char</span> *result = NULL;
<a name="l02063"></a>02063         <a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *tmp_buffer = <a class="code" href="buffer_8c.html#ac6d413e9a76bf7e7c2022f13e36b9900" title="creates a new buffer with the specified capacity.">ldns_buffer_new</a>(<a class="code" href="packet_8h.html#a0335fad1ab5f49839cd6c5a71e3d721b">LDNS_MAX_PACKETLEN</a>);
<a name="l02064"></a>02064 
<a name="l02065"></a>02065         <span class="keywordflow">if</span> (!tmp_buffer) {
<a name="l02066"></a>02066                 <span class="keywordflow">return</span> NULL;
<a name="l02067"></a>02067         }
<a name="l02068"></a>02068         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a5335d1bcbf92dae7854e429a05695fcc" title="Converts the data in the resource record to presentation format (as char *) and appends it to the giv...">ldns_rr2buffer_str_fmt</a>(tmp_buffer, fmt, rr)
<a name="l02069"></a>02069                         == <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l02070"></a>02070                 <span class="comment">/* export and return string, destroy rest */</span>
<a name="l02071"></a>02071                 result = <a class="code" href="host2str_8c.html#a8fd566da148ea9c590b0bb17b8aa71af" title="Returns the data in the buffer as a null terminated char * string Buffer data must be char * type...">ldns_buffer2str</a>(tmp_buffer);
<a name="l02072"></a>02072         }
<a name="l02073"></a>02073         <a class="code" href="buffer_8c.html#a1615da957ad5a24a8b5cc1ba2f2b7f44" title="frees the buffer.">ldns_buffer_free</a>(tmp_buffer);
<a name="l02074"></a>02074         <span class="keywordflow">return</span> result;
<a name="l02075"></a>02075 }
<a name="l02076"></a>02076 
<a name="l02077"></a>02077 <span class="keywordtype">char</span> *
<a name="l02078"></a><a class="code" href="host2str_8h.html#aa94831d103d357e3d91bfc745b91ae13">02078</a> <a class="code" href="host2str_8c.html#aa94831d103d357e3d91bfc745b91ae13" title="Converts the data in the resource record to presentation format and returns that as a char *...">ldns_rr2str</a>(<span class="keyword">const</span> <a class="code" href="structldns__struct__rr.html" title="Resource Record.">ldns_rr</a> *rr)
<a name="l02079"></a>02079 {
<a name="l02080"></a>02080         <span class="keywordflow">return</span> <a class="code" href="host2str_8c.html#a138dc6f7ac3007c271ed8ae9ba1c234d" title="Converts the data in the resource record to presentation format and returns that as a char *...">ldns_rr2str_fmt</a>(<a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>, rr);
<a name="l02081"></a>02081 }
<a name="l02082"></a>02082 
<a name="l02083"></a>02083 <span class="keywordtype">char</span> *
<a name="l02084"></a><a class="code" href="host2str_8h.html#a21fd141b68a6f6adc5385e6a7ad8fe3e">02084</a> <a class="code" href="host2str_8c.html#a21fd141b68a6f6adc5385e6a7ad8fe3e" title="Converts the data in the DNS packet to presentation format and returns that as a char *...">ldns_pkt2str_fmt</a>(<span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a> *fmt, <span class="keyword">const</span> <a class="code" href="structldns__struct__pkt.html" title="DNS packet.">ldns_pkt</a> *pkt)
<a name="l02085"></a>02085 {
<a name="l02086"></a>02086         <span class="keywordtype">char</span> *result = NULL;
<a name="l02087"></a>02087         <a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *tmp_buffer = <a class="code" href="buffer_8c.html#ac6d413e9a76bf7e7c2022f13e36b9900" title="creates a new buffer with the specified capacity.">ldns_buffer_new</a>(<a class="code" href="packet_8h.html#a0335fad1ab5f49839cd6c5a71e3d721b">LDNS_MAX_PACKETLEN</a>);
<a name="l02088"></a>02088 
<a name="l02089"></a>02089         <span class="keywordflow">if</span> (!tmp_buffer) {
<a name="l02090"></a>02090                 <span class="keywordflow">return</span> NULL;
<a name="l02091"></a>02091         }
<a name="l02092"></a>02092         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a4cb89e0a50045ba96bf818eb6765069d" title="Converts the data in the DNS packet to presentation format (as char *) and appends it to the given bu...">ldns_pkt2buffer_str_fmt</a>(tmp_buffer, fmt, pkt)
<a name="l02093"></a>02093                         == <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l02094"></a>02094                 <span class="comment">/* export and return string, destroy rest */</span>
<a name="l02095"></a>02095                 result = <a class="code" href="host2str_8c.html#a8fd566da148ea9c590b0bb17b8aa71af" title="Returns the data in the buffer as a null terminated char * string Buffer data must be char * type...">ldns_buffer2str</a>(tmp_buffer);
<a name="l02096"></a>02096         }
<a name="l02097"></a>02097 
<a name="l02098"></a>02098         <a class="code" href="buffer_8c.html#a1615da957ad5a24a8b5cc1ba2f2b7f44" title="frees the buffer.">ldns_buffer_free</a>(tmp_buffer);
<a name="l02099"></a>02099         <span class="keywordflow">return</span> result;
<a name="l02100"></a>02100 }
<a name="l02101"></a>02101 
<a name="l02102"></a>02102 <span class="keywordtype">char</span> *
<a name="l02103"></a><a class="code" href="host2str_8h.html#a9866095dab4123234a17cc98cda976c2">02103</a> <a class="code" href="host2str_8c.html#a9866095dab4123234a17cc98cda976c2" title="Converts the data in the DNS packet to presentation format and returns that as a char *...">ldns_pkt2str</a>(<span class="keyword">const</span> <a class="code" href="structldns__struct__pkt.html" title="DNS packet.">ldns_pkt</a> *pkt)
<a name="l02104"></a>02104 {
<a name="l02105"></a>02105         <span class="keywordflow">return</span> <a class="code" href="host2str_8c.html#a21fd141b68a6f6adc5385e6a7ad8fe3e" title="Converts the data in the DNS packet to presentation format and returns that as a char *...">ldns_pkt2str_fmt</a>(<a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>, pkt);
<a name="l02106"></a>02106 }
<a name="l02107"></a>02107 
<a name="l02108"></a>02108 <span class="keywordtype">char</span> *
<a name="l02109"></a><a class="code" href="host2str_8h.html#a1c5e18f49dfb77c4167d861a37751e84">02109</a> <a class="code" href="host2str_8c.html#a1c5e18f49dfb77c4167d861a37751e84" title="Converts a private key to the test presentation fmt and returns that as a char *.">ldns_key2str</a>(<span class="keyword">const</span> <a class="code" href="structldns__struct__key.html" title="General key structure, can contain all types of keys that are used in DNSSEC.">ldns_key</a> *k)
<a name="l02110"></a>02110 {
<a name="l02111"></a>02111         <span class="keywordtype">char</span> *result = NULL;
<a name="l02112"></a>02112         <a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *tmp_buffer = <a class="code" href="buffer_8c.html#ac6d413e9a76bf7e7c2022f13e36b9900" title="creates a new buffer with the specified capacity.">ldns_buffer_new</a>(<a class="code" href="packet_8h.html#a0335fad1ab5f49839cd6c5a71e3d721b">LDNS_MAX_PACKETLEN</a>);
<a name="l02113"></a>02113 
<a name="l02114"></a>02114         <span class="keywordflow">if</span> (!tmp_buffer) {
<a name="l02115"></a>02115                 <span class="keywordflow">return</span> NULL;
<a name="l02116"></a>02116         }
<a name="l02117"></a>02117         <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#a1e3b2852d2f8f423e24032cd44b27b99" title="Converts the data in the DNS packet to presentation format (as char *) and appends it to the given bu...">ldns_key2buffer_str</a>(tmp_buffer, k) == <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l02118"></a>02118                 <span class="comment">/* export and return string, destroy rest */</span>
<a name="l02119"></a>02119                 result = <a class="code" href="host2str_8c.html#a8fd566da148ea9c590b0bb17b8aa71af" title="Returns the data in the buffer as a null terminated char * string Buffer data must be char * type...">ldns_buffer2str</a>(tmp_buffer);
<a name="l02120"></a>02120         }
<a name="l02121"></a>02121         <a class="code" href="buffer_8c.html#a1615da957ad5a24a8b5cc1ba2f2b7f44" title="frees the buffer.">ldns_buffer_free</a>(tmp_buffer);
<a name="l02122"></a>02122         <span class="keywordflow">return</span> result;
<a name="l02123"></a>02123 }
<a name="l02124"></a>02124 
<a name="l02125"></a>02125 <span class="keywordtype">char</span> *
<a name="l02126"></a><a class="code" href="host2str_8h.html#ae232ebea75ac546046879c6d6956fdf9">02126</a> <a class="code" href="host2str_8c.html#af9e7f8eff076b5ad9610cd4e7ebab14a" title="Converts a list of resource records to presentation format and returns that as a char *...">ldns_rr_list2str_fmt</a>(<span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a> *fmt, <span class="keyword">const</span> <a class="code" href="structldns__struct__rr__list.html" title="List or Set of Resource Records.">ldns_rr_list</a> *list)
<a name="l02127"></a>02127 {
<a name="l02128"></a>02128         <span class="keywordtype">char</span> *result = NULL;
<a name="l02129"></a>02129         <a class="code" href="structldns__struct__buffer.html" title="implementation of buffers to ease operations">ldns_buffer</a> *tmp_buffer = <a class="code" href="buffer_8c.html#ac6d413e9a76bf7e7c2022f13e36b9900" title="creates a new buffer with the specified capacity.">ldns_buffer_new</a>(<a class="code" href="packet_8h.html#a0335fad1ab5f49839cd6c5a71e3d721b">LDNS_MAX_PACKETLEN</a>);
<a name="l02130"></a>02130 
<a name="l02131"></a>02131         <span class="keywordflow">if</span> (!tmp_buffer) {
<a name="l02132"></a>02132                 <span class="keywordflow">return</span> NULL;
<a name="l02133"></a>02133         }
<a name="l02134"></a>02134         <span class="keywordflow">if</span> (list) {
<a name="l02135"></a>02135                 <span class="keywordflow">if</span> (<a class="code" href="host2str_8c.html#ad170dbb62a5a75e7bd4ed1849c7a3d8a" title="Converts a rr_list to presentation format and appends it to the output buffer.">ldns_rr_list2buffer_str_fmt</a>(
<a name="l02136"></a>02136                                    tmp_buffer, fmt, list)
<a name="l02137"></a>02137                                 == <a class="code" href="error_8h.html#a11f34802bb1624af46054952e3b853afac58492ee3fc8d23f33c79824ed08c465">LDNS_STATUS_OK</a>) {
<a name="l02138"></a>02138                 }
<a name="l02139"></a>02139         } <span class="keywordflow">else</span> {
<a name="l02140"></a>02140                 <span class="keywordflow">if</span> (fmt == NULL) {
<a name="l02141"></a>02141                         fmt = <a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>;
<a name="l02142"></a>02142                 }
<a name="l02143"></a>02143                 <span class="keywordflow">if</span> (fmt-&gt;<a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR&#39;s should be formatted in text.">flags</a> &amp; <a class="code" href="host2str_8h.html#aae5de43edc598ef481afa924f3bc3792" title="Represent a NULL pointer (in stead of a pointer to a ldns_rr as &quot;; (null)&quot; as opposed to outputting n...">LDNS_COMMENT_NULLS</a>) {
<a name="l02144"></a>02144                         <a class="code" href="buffer_8c.html#ad0bd2ed28633df90c9c99974eaae4b5a" title="prints to the buffer, increasing the capacity if required using buffer_reserve().">ldns_buffer_printf</a>(tmp_buffer, <span class="stringliteral">&quot;; (null)\n&quot;</span>);
<a name="l02145"></a>02145                 }
<a name="l02146"></a>02146         }
<a name="l02147"></a>02147 
<a name="l02148"></a>02148         <span class="comment">/* export and return string, destroy rest */</span>
<a name="l02149"></a>02149         result = <a class="code" href="host2str_8c.html#a8fd566da148ea9c590b0bb17b8aa71af" title="Returns the data in the buffer as a null terminated char * string Buffer data must be char * type...">ldns_buffer2str</a>(tmp_buffer);
<a name="l02150"></a>02150         <a class="code" href="buffer_8c.html#a1615da957ad5a24a8b5cc1ba2f2b7f44" title="frees the buffer.">ldns_buffer_free</a>(tmp_buffer);
<a name="l02151"></a>02151         <span class="keywordflow">return</span> result;
<a name="l02152"></a>02152 }
<a name="l02153"></a>02153 
<a name="l02154"></a>02154 <span class="keywordtype">char</span> *
<a name="l02155"></a><a class="code" href="host2str_8h.html#a4a146e9df1dadb32c6eaff3a2abe5385">02155</a> <a class="code" href="host2str_8c.html#a5105cb9174b232bad0c8cdef0552b393" title="Converts a list of resource records to presentation format and returns that as a char *...">ldns_rr_list2str</a>(<span class="keyword">const</span> <a class="code" href="structldns__struct__rr__list.html" title="List or Set of Resource Records.">ldns_rr_list</a> *list)
<a name="l02156"></a>02156 {
<a name="l02157"></a>02157         <span class="keywordflow">return</span> <a class="code" href="host2str_8c.html#af9e7f8eff076b5ad9610cd4e7ebab14a" title="Converts a list of resource records to presentation format and returns that as a char *...">ldns_rr_list2str_fmt</a>(<a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>, list);
<a name="l02158"></a>02158 }
<a name="l02159"></a>02159 
<a name="l02160"></a>02160 <span class="keywordtype">void</span>
<a name="l02161"></a><a class="code" href="host2str_8h.html#a82be4b345ab5088e8399df920e921e51">02161</a> <a class="code" href="host2str_8c.html#a82be4b345ab5088e8399df920e921e51" title="Prints the data in the rdata field to the given file stream (in presentation format)">ldns_rdf_print</a>(FILE *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> *rdf)
<a name="l02162"></a>02162 {
<a name="l02163"></a>02163         <span class="keywordtype">char</span> *str = <a class="code" href="host2str_8c.html#ae404881f2bc2bd31588e32e250f2c46b" title="Converts the data in the rdata field to presentation format and returns that as a char *...">ldns_rdf2str</a>(rdf);
<a name="l02164"></a>02164         <span class="keywordflow">if</span> (str) {
<a name="l02165"></a>02165                 fprintf(output, <span class="stringliteral">&quot;%s&quot;</span>, str);
<a name="l02166"></a>02166         } <span class="keywordflow">else</span> {
<a name="l02167"></a>02167                 fprintf(output, <span class="stringliteral">&quot;Unable to convert rdf to string\n&quot;</span>);
<a name="l02168"></a>02168         }
<a name="l02169"></a>02169         <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(str);
<a name="l02170"></a>02170 }
<a name="l02171"></a>02171 
<a name="l02172"></a>02172 <span class="keywordtype">void</span>
<a name="l02173"></a><a class="code" href="host2str_8h.html#afe9595498f147ada7f15e96265ac6e33">02173</a> <a class="code" href="host2str_8c.html#afe9595498f147ada7f15e96265ac6e33" title="Prints the data in the resource record to the given file stream (in presentation format)">ldns_rr_print_fmt</a>(FILE *output, 
<a name="l02174"></a>02174                 <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a> *fmt, <span class="keyword">const</span> <a class="code" href="structldns__struct__rr.html" title="Resource Record.">ldns_rr</a> *rr)
<a name="l02175"></a>02175 {
<a name="l02176"></a>02176         <span class="keywordtype">char</span> *str = <a class="code" href="host2str_8c.html#a138dc6f7ac3007c271ed8ae9ba1c234d" title="Converts the data in the resource record to presentation format and returns that as a char *...">ldns_rr2str_fmt</a>(fmt, rr);
<a name="l02177"></a>02177         <span class="keywordflow">if</span> (str) {
<a name="l02178"></a>02178                 fprintf(output, <span class="stringliteral">&quot;%s&quot;</span>, str);
<a name="l02179"></a>02179         } <span class="keywordflow">else</span> {
<a name="l02180"></a>02180                 fprintf(output, <span class="stringliteral">&quot;Unable to convert rr to string\n&quot;</span>);
<a name="l02181"></a>02181         }
<a name="l02182"></a>02182         <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(str);
<a name="l02183"></a>02183 }
<a name="l02184"></a>02184 
<a name="l02185"></a>02185 <span class="keywordtype">void</span>
<a name="l02186"></a><a class="code" href="host2str_8h.html#a87a151b267dc6acf6feaaa048d943cb8">02186</a> <a class="code" href="host2str_8c.html#a87a151b267dc6acf6feaaa048d943cb8" title="Prints the data in the resource record to the given file stream (in presentation format)">ldns_rr_print</a>(FILE *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rr.html" title="Resource Record.">ldns_rr</a> *rr)
<a name="l02187"></a>02187 {
<a name="l02188"></a>02188         <a class="code" href="host2str_8c.html#afe9595498f147ada7f15e96265ac6e33" title="Prints the data in the resource record to the given file stream (in presentation format)">ldns_rr_print_fmt</a>(output, <a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>, rr);
<a name="l02189"></a>02189 }
<a name="l02190"></a>02190 
<a name="l02191"></a>02191 <span class="keywordtype">void</span>
<a name="l02192"></a><a class="code" href="host2str_8h.html#a40b4bbac425f36df12d12447f3da662a">02192</a> <a class="code" href="host2str_8c.html#a40b4bbac425f36df12d12447f3da662a" title="Prints the data in the DNS packet to the given file stream (in presentation format)">ldns_pkt_print_fmt</a>(FILE *output, 
<a name="l02193"></a>02193                 <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a> *fmt, <span class="keyword">const</span> <a class="code" href="structldns__struct__pkt.html" title="DNS packet.">ldns_pkt</a> *pkt)
<a name="l02194"></a>02194 {
<a name="l02195"></a>02195         <span class="keywordtype">char</span> *str = <a class="code" href="host2str_8c.html#a21fd141b68a6f6adc5385e6a7ad8fe3e" title="Converts the data in the DNS packet to presentation format and returns that as a char *...">ldns_pkt2str_fmt</a>(fmt, pkt);
<a name="l02196"></a>02196         <span class="keywordflow">if</span> (str) {
<a name="l02197"></a>02197                 fprintf(output, <span class="stringliteral">&quot;%s&quot;</span>, str);
<a name="l02198"></a>02198         } <span class="keywordflow">else</span> {
<a name="l02199"></a>02199                 fprintf(output, <span class="stringliteral">&quot;Unable to convert packet to string\n&quot;</span>);
<a name="l02200"></a>02200         }
<a name="l02201"></a>02201         <a class="code" href="util_8h.html#a5e13054aa9b3843e97514228a0bbe909">LDNS_FREE</a>(str);
<a name="l02202"></a>02202 }
<a name="l02203"></a>02203 
<a name="l02204"></a>02204 <span class="keywordtype">void</span>
<a name="l02205"></a><a class="code" href="host2str_8h.html#ad0f816042c4e1bf8e5c5486a80518b68">02205</a> <a class="code" href="host2str_8c.html#ad0f816042c4e1bf8e5c5486a80518b68" title="Prints the data in the DNS packet to the given file stream (in presentation format)">ldns_pkt_print</a>(FILE *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__pkt.html" title="DNS packet.">ldns_pkt</a> *pkt)
<a name="l02206"></a>02206 {
<a name="l02207"></a>02207         <a class="code" href="host2str_8c.html#a40b4bbac425f36df12d12447f3da662a" title="Prints the data in the DNS packet to the given file stream (in presentation format)">ldns_pkt_print_fmt</a>(output, <a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>, pkt);
<a name="l02208"></a>02208 }
<a name="l02209"></a>02209 
<a name="l02210"></a>02210 <span class="keywordtype">void</span>
<a name="l02211"></a><a class="code" href="host2str_8h.html#a8d6319ab6c1a870129d8479bf15421af">02211</a> <a class="code" href="host2str_8c.html#a365fd4fa828fbb0330aa60f524e7ceb9" title="print a rr_list to output">ldns_rr_list_print_fmt</a>(FILE *output, 
<a name="l02212"></a>02212                 <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a> *fmt, <span class="keyword">const</span> <a class="code" href="structldns__struct__rr__list.html" title="List or Set of Resource Records.">ldns_rr_list</a> *lst)
<a name="l02213"></a>02213 {
<a name="l02214"></a>02214         <span class="keywordtype">size_t</span> i;
<a name="l02215"></a>02215         <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="rr_8c.html#a7ac3192fe79ba66e47579bb2b267ce05" title="returns the number of rr&#39;s in an rr_list.">ldns_rr_list_rr_count</a>(lst); i++) {
<a name="l02216"></a>02216                 <a class="code" href="host2str_8c.html#afe9595498f147ada7f15e96265ac6e33" title="Prints the data in the resource record to the given file stream (in presentation format)">ldns_rr_print_fmt</a>(output, fmt, <a class="code" href="rr_8c.html#a07b1ccea9f2694b8b88904c543e16783" title="returns a specific rr of an rrlist.">ldns_rr_list_rr</a>(lst, i));
<a name="l02217"></a>02217         }
<a name="l02218"></a>02218 }
<a name="l02219"></a>02219 
<a name="l02220"></a>02220 <span class="keywordtype">void</span>
<a name="l02221"></a><a class="code" href="host2str_8h.html#a99c6ed58506570d7b58f74f1e401537a">02221</a> <a class="code" href="host2str_8c.html#ac2840486d0b166f4af59360deb18600b" title="print a rr_list to output">ldns_rr_list_print</a>(FILE *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__rr__list.html" title="List or Set of Resource Records.">ldns_rr_list</a> *lst)
<a name="l02222"></a>02222 {
<a name="l02223"></a>02223         <a class="code" href="host2str_8c.html#a365fd4fa828fbb0330aa60f524e7ceb9" title="print a rr_list to output">ldns_rr_list_print_fmt</a>(output, <a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>, lst);
<a name="l02224"></a>02224 }
<a name="l02225"></a>02225 
<a name="l02226"></a>02226 <span class="keywordtype">void</span>
<a name="l02227"></a><a class="code" href="host2str_8h.html#a9a8b76512ef0b8b65fb2f70647ec14d0">02227</a> <a class="code" href="host2str_8c.html#a9a8b76512ef0b8b65fb2f70647ec14d0" title="Print a resolver (in sofar that is possible) state to output.">ldns_resolver_print_fmt</a>(FILE *output, 
<a name="l02228"></a>02228                 <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a> *fmt, <span class="keyword">const</span> <a class="code" href="structldns__struct__resolver.html" title="DNS stub resolver structure.">ldns_resolver</a> *r)
<a name="l02229"></a>02229 {
<a name="l02230"></a>02230         uint16_t i;
<a name="l02231"></a>02231         <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> **n;
<a name="l02232"></a>02232         <a class="code" href="structldns__struct__rdf.html" title="Resource record data field.">ldns_rdf</a> **s;
<a name="l02233"></a>02233         <span class="keywordtype">size_t</span> *rtt;
<a name="l02234"></a>02234         <span class="keywordflow">if</span> (!r) {
<a name="l02235"></a>02235                 <span class="keywordflow">return</span>;
<a name="l02236"></a>02236         }
<a name="l02237"></a>02237         n = <a class="code" href="resolver_8c.html#ac8068f8b2fa8621abb1557c3b4d95688" title="Return the configured nameserver ip address.">ldns_resolver_nameservers</a>(r);
<a name="l02238"></a>02238         s = <a class="code" href="resolver_8c.html#ab262cce3866ce9e7c86ac61249967ddd" title="What is the searchlist as used by the resolver.">ldns_resolver_searchlist</a>(r);
<a name="l02239"></a>02239         rtt = <a class="code" href="resolver_8c.html#a9d5f40f133fd13433603e15eea5a077b" title="Return the used round trip times for the nameservers.">ldns_resolver_rtt</a>(r);
<a name="l02240"></a>02240 
<a name="l02241"></a>02241         fprintf(output, <span class="stringliteral">&quot;port: %d\n&quot;</span>, (<span class="keywordtype">int</span>)<a class="code" href="resolver_8c.html#ae8062e9bb7436dc91717915686f28a60" title="Get the port the resolver should use.">ldns_resolver_port</a>(r));
<a name="l02242"></a>02242         fprintf(output, <span class="stringliteral">&quot;edns0 size: %d\n&quot;</span>, (<span class="keywordtype">int</span>)<a class="code" href="resolver_8c.html#a9140fe1e1f05594c899fd9ecde074feb" title="Get the resolver&#39;s udp size.">ldns_resolver_edns_udp_size</a>(r));
<a name="l02243"></a>02243         fprintf(output, <span class="stringliteral">&quot;use ip6: %d\n&quot;</span>, (<span class="keywordtype">int</span>)<a class="code" href="resolver_8c.html#aa32acefa4cdf90e11b26024b55416618" title="Does the resolver use ip6 or ip4.">ldns_resolver_ip6</a>(r));
<a name="l02244"></a>02244 
<a name="l02245"></a>02245         fprintf(output, <span class="stringliteral">&quot;recursive: %d\n&quot;</span>, <a class="code" href="resolver_8c.html#a7ef4ddbf95ab7c456a9c1a7e66cebcfe" title="Is the resolver set to recurse.">ldns_resolver_recursive</a>(r));
<a name="l02246"></a>02246         fprintf(output, <span class="stringliteral">&quot;usevc: %d\n&quot;</span>, <a class="code" href="resolver_8c.html#a45a83b6f43d816b98c176c23d7772e07" title="Does the resolver use tcp or udp.">ldns_resolver_usevc</a>(r));
<a name="l02247"></a>02247         fprintf(output, <span class="stringliteral">&quot;igntc: %d\n&quot;</span>, <a class="code" href="resolver_8c.html#a85ab35cefb51fb9e921414b39f266f56" title="Does the resolver ignore the TC bit (truncated)">ldns_resolver_igntc</a>(r));
<a name="l02248"></a>02248         fprintf(output, <span class="stringliteral">&quot;fail: %d\n&quot;</span>, <a class="code" href="resolver_8c.html#ab41d8f3a683763660862f89f985fcfe4" title="Does the resolver only try the first nameserver.">ldns_resolver_fail</a>(r));
<a name="l02249"></a>02249         fprintf(output, <span class="stringliteral">&quot;retry: %d\n&quot;</span>, (<span class="keywordtype">int</span>)<a class="code" href="resolver_8c.html#aa8ab6ca6295b9b2744e1e2a14fb95bca" title="Get the number of retries.">ldns_resolver_retry</a>(r));
<a name="l02250"></a>02250         fprintf(output, <span class="stringliteral">&quot;retrans: %d\n&quot;</span>, (<span class="keywordtype">int</span>)<a class="code" href="resolver_8c.html#a7e3c2ea266cc050427622b54c641b6e2" title="Get the retransmit interval.">ldns_resolver_retrans</a>(r));
<a name="l02251"></a>02251         fprintf(output, <span class="stringliteral">&quot;fallback: %d\n&quot;</span>, <a class="code" href="resolver_8c.html#a9ecad2896b716863c0ae45fbfd0814d2" title="Get the truncation fallback status.">ldns_resolver_fallback</a>(r));
<a name="l02252"></a>02252         fprintf(output, <span class="stringliteral">&quot;random: %d\n&quot;</span>, <a class="code" href="resolver_8c.html#a96748f05895afe899f44aabbe839d9ea" title="Does the resolver randomize the nameserver before usage.">ldns_resolver_random</a>(r));
<a name="l02253"></a>02253         fprintf(output, <span class="stringliteral">&quot;timeout: %d\n&quot;</span>, (<span class="keywordtype">int</span>)<a class="code" href="resolver_8c.html#a9958f4244f667c71f069524eb0720f5c" title="What is the timeout on socket connections.">ldns_resolver_timeout</a>(r).tv_sec);
<a name="l02254"></a>02254         fprintf(output, <span class="stringliteral">&quot;dnssec: %d\n&quot;</span>, <a class="code" href="resolver_8c.html#a1e3b8b2dbf07f5e03ac31842b829a63e" title="Does the resolver do DNSSEC.">ldns_resolver_dnssec</a>(r));
<a name="l02255"></a>02255         fprintf(output, <span class="stringliteral">&quot;dnssec cd: %d\n&quot;</span>, <a class="code" href="resolver_8c.html#a7eaa8535be020eaf95e37c993d09b9e4" title="Does the resolver set the CD bit.">ldns_resolver_dnssec_cd</a>(r));
<a name="l02256"></a>02256         fprintf(output, <span class="stringliteral">&quot;trust anchors (%d listed):\n&quot;</span>,
<a name="l02257"></a>02257                 (<span class="keywordtype">int</span>)<a class="code" href="rr_8c.html#a7ac3192fe79ba66e47579bb2b267ce05" title="returns the number of rr&#39;s in an rr_list.">ldns_rr_list_rr_count</a>(<a class="code" href="resolver_8c.html#a52d9b6a45cb3c74c79ed1e69e5c2cb93" title="Get the resolver&#39;s DNSSEC anchors.">ldns_resolver_dnssec_anchors</a>(r)));
<a name="l02258"></a>02258         <a class="code" href="host2str_8c.html#a365fd4fa828fbb0330aa60f524e7ceb9" title="print a rr_list to output">ldns_rr_list_print_fmt</a>(output, fmt, <a class="code" href="resolver_8c.html#a52d9b6a45cb3c74c79ed1e69e5c2cb93" title="Get the resolver&#39;s DNSSEC anchors.">ldns_resolver_dnssec_anchors</a>(r));
<a name="l02259"></a>02259         fprintf(output, <span class="stringliteral">&quot;tsig: %s %s\n&quot;</span>,
<a name="l02260"></a>02260                 <a class="code" href="resolver_8c.html#a262ac7450159c115060ec464a4a5af6e" title="Return the tsig keyname as used by the nameserver.">ldns_resolver_tsig_keyname</a>(r)?<a class="code" href="resolver_8c.html#a262ac7450159c115060ec464a4a5af6e" title="Return the tsig keyname as used by the nameserver.">ldns_resolver_tsig_keyname</a>(r):<span class="stringliteral">&quot;-&quot;</span>,
<a name="l02261"></a>02261                 <a class="code" href="resolver_8c.html#a1fd4b31d628081e3d6dafdd389bfea0a" title="Return the tsig algorithm as used by the nameserver.">ldns_resolver_tsig_algorithm</a>(r)?<a class="code" href="resolver_8c.html#a1fd4b31d628081e3d6dafdd389bfea0a" title="Return the tsig algorithm as used by the nameserver.">ldns_resolver_tsig_algorithm</a>(r):<span class="stringliteral">&quot;-&quot;</span>);
<a name="l02262"></a>02262         fprintf(output, <span class="stringliteral">&quot;debug: %d\n&quot;</span>, <a class="code" href="resolver_8c.html#a51023e38c9923909fc988d57471e831c" title="Get the debug status of the resolver.">ldns_resolver_debug</a>(r));
<a name="l02263"></a>02263 
<a name="l02264"></a>02264         fprintf(output, <span class="stringliteral">&quot;default domain: &quot;</span>);
<a name="l02265"></a>02265         <a class="code" href="host2str_8c.html#a82be4b345ab5088e8399df920e921e51" title="Prints the data in the rdata field to the given file stream (in presentation format)">ldns_rdf_print</a>(output, <a class="code" href="resolver_8c.html#a8f875737856dfe40228d8059e983d043" title="What is the default dname to add to relative queries.">ldns_resolver_domain</a>(r));
<a name="l02266"></a>02266         fprintf(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l02267"></a>02267         fprintf(output, <span class="stringliteral">&quot;apply default domain: %d\n&quot;</span>, <a class="code" href="resolver_8c.html#a8806f1c00f0e598b2aa1d971526ed483" title="Does the resolver apply default domain name.">ldns_resolver_defnames</a>(r));
<a name="l02268"></a>02268 
<a name="l02269"></a>02269         fprintf(output, <span class="stringliteral">&quot;searchlist (%d listed):\n&quot;</span>,  (<span class="keywordtype">int</span>)<a class="code" href="resolver_8c.html#a51df8a71741c7ab07f635b73b9112310" title="Return the resolver&#39;s searchlist count.">ldns_resolver_searchlist_count</a>(r));
<a name="l02270"></a>02270         <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="resolver_8c.html#a51df8a71741c7ab07f635b73b9112310" title="Return the resolver&#39;s searchlist count.">ldns_resolver_searchlist_count</a>(r); i++) {
<a name="l02271"></a>02271                 fprintf(output, <span class="stringliteral">&quot;\t&quot;</span>);
<a name="l02272"></a>02272                 <a class="code" href="host2str_8c.html#a82be4b345ab5088e8399df920e921e51" title="Prints the data in the rdata field to the given file stream (in presentation format)">ldns_rdf_print</a>(output, s[i]);
<a name="l02273"></a>02273                 fprintf(output, <span class="stringliteral">&quot;\n&quot;</span>);
<a name="l02274"></a>02274         }
<a name="l02275"></a>02275         fprintf(output, <span class="stringliteral">&quot;apply search list: %d\n&quot;</span>, <a class="code" href="resolver_8c.html#a84066ca36e031be32527845a0d2c0533" title="Does the resolver apply search list.">ldns_resolver_dnsrch</a>(r));
<a name="l02276"></a>02276 
<a name="l02277"></a>02277         fprintf(output, <span class="stringliteral">&quot;nameservers (%d listed):\n&quot;</span>, (<span class="keywordtype">int</span>)<a class="code" href="resolver_8c.html#a64e6087bcfc88459e34da80077bad7eb" title="How many nameserver are configured in the resolver.">ldns_resolver_nameserver_count</a>(r));
<a name="l02278"></a>02278         <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="resolver_8c.html#a64e6087bcfc88459e34da80077bad7eb" title="How many nameserver are configured in the resolver.">ldns_resolver_nameserver_count</a>(r); i++) {
<a name="l02279"></a>02279                 fprintf(output, <span class="stringliteral">&quot;\t&quot;</span>);
<a name="l02280"></a>02280                 <a class="code" href="host2str_8c.html#a82be4b345ab5088e8399df920e921e51" title="Prints the data in the rdata field to the given file stream (in presentation format)">ldns_rdf_print</a>(output, n[i]);
<a name="l02281"></a>02281 
<a name="l02282"></a>02282                 <span class="keywordflow">switch</span> ((<span class="keywordtype">int</span>)rtt[i]) {
<a name="l02283"></a>02283                         <span class="keywordflow">case</span> <a class="code" href="resolver_8h.html#a20ded286eb1baaae18ba5f090180635a">LDNS_RESOLV_RTT_MIN</a>:
<a name="l02284"></a>02284                         fprintf(output, <span class="stringliteral">&quot; - reachable\n&quot;</span>);
<a name="l02285"></a>02285                         <span class="keywordflow">break</span>;
<a name="l02286"></a>02286                         <span class="keywordflow">case</span> <a class="code" href="resolver_8h.html#a4217a153c5d931ab49a47d4b3e1c8ad7">LDNS_RESOLV_RTT_INF</a>:
<a name="l02287"></a>02287                         fprintf(output, <span class="stringliteral">&quot; - unreachable\n&quot;</span>);
<a name="l02288"></a>02288                         <span class="keywordflow">break</span>;
<a name="l02289"></a>02289                 }
<a name="l02290"></a>02290         }
<a name="l02291"></a>02291 }
<a name="l02292"></a>02292 
<a name="l02293"></a>02293 <span class="keywordtype">void</span>
<a name="l02294"></a><a class="code" href="host2str_8h.html#ab747e3f2996741e9bd435fcd8254bcca">02294</a> <a class="code" href="host2str_8c.html#ab747e3f2996741e9bd435fcd8254bcca" title="Print a resolver (in sofar that is possible) state to output.">ldns_resolver_print</a>(FILE *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__resolver.html" title="DNS stub resolver structure.">ldns_resolver</a> *r)
<a name="l02295"></a>02295 {
<a name="l02296"></a>02296         <a class="code" href="host2str_8c.html#a9a8b76512ef0b8b65fb2f70647ec14d0" title="Print a resolver (in sofar that is possible) state to output.">ldns_resolver_print_fmt</a>(output, <a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>, r);
<a name="l02297"></a>02297 }
<a name="l02298"></a>02298 
<a name="l02299"></a>02299 <span class="keywordtype">void</span>
<a name="l02300"></a><a class="code" href="host2str_8h.html#a58785a477430e8cb8fc81a01dc1f5efc">02300</a> <a class="code" href="host2str_8c.html#a58785a477430e8cb8fc81a01dc1f5efc" title="Print a zone structure * to output.">ldns_zone_print_fmt</a>(FILE *output, 
<a name="l02301"></a>02301                 <span class="keyword">const</span> <a class="code" href="structldns__struct__output__format.html" title="Output format specifier.">ldns_output_format</a> *fmt, <span class="keyword">const</span> <a class="code" href="structldns__struct__zone.html" title="DNS Zone.">ldns_zone</a> *z)
<a name="l02302"></a>02302 {
<a name="l02303"></a>02303         <span class="keywordflow">if</span>(<a class="code" href="zone_8c.html#aae16d59c27e1f2292f8bd87604517e0c" title="Return the soa record of a zone.">ldns_zone_soa</a>(z))
<a name="l02304"></a>02304                 <a class="code" href="host2str_8c.html#afe9595498f147ada7f15e96265ac6e33" title="Prints the data in the resource record to the given file stream (in presentation format)">ldns_rr_print_fmt</a>(output, fmt, <a class="code" href="zone_8c.html#aae16d59c27e1f2292f8bd87604517e0c" title="Return the soa record of a zone.">ldns_zone_soa</a>(z));
<a name="l02305"></a>02305         <a class="code" href="host2str_8c.html#a365fd4fa828fbb0330aa60f524e7ceb9" title="print a rr_list to output">ldns_rr_list_print_fmt</a>(output, fmt, <a class="code" href="zone_8c.html#a5a75b7744ea0d91770d579730a84bbf9" title="Get a list of a zone&#39;s content.">ldns_zone_rrs</a>(z));
<a name="l02306"></a>02306 }
<a name="l02307"></a>02307 <span class="keywordtype">void</span>
<a name="l02308"></a><a class="code" href="host2str_8h.html#abe16e60d0b0c68517eb25e3c26bb33b6">02308</a> <a class="code" href="host2str_8c.html#abe16e60d0b0c68517eb25e3c26bb33b6" title="Print a zone structure * to output.">ldns_zone_print</a>(FILE *output, <span class="keyword">const</span> <a class="code" href="structldns__struct__zone.html" title="DNS Zone.">ldns_zone</a> *z)
<a name="l02309"></a>02309 {
<a name="l02310"></a>02310         <a class="code" href="host2str_8c.html#a58785a477430e8cb8fc81a01dc1f5efc" title="Print a zone structure * to output.">ldns_zone_print_fmt</a>(output, <a class="code" href="host2str_8c.html#ace100b58a7e8d928102c3bac613b7338" title="The default output format record.">ldns_output_format_default</a>, z);
<a name="l02311"></a>02311 }
</pre></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>