<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ldns documentation</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <div class="logo"> <img src="LogoInGradientBar2-y100.png"/> </div> <!-- Generated by Doxygen 1.7.4 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div 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 <<a class="code" href="ldns_2config_8h.html">ldns/config.h</a>></span> <a name="l00014"></a>00014 <a name="l00015"></a>00015 <span class="preprocessor">#include <<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>></span> <a name="l00016"></a>00016 <a name="l00017"></a>00017 <span class="preprocessor">#include <limits.h></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 <sys/socket.h></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 <arpa/inet.h></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 <netdb.h></span> <a name="l00027"></a>00027 <span class="preprocessor">#endif</span> <a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#include <time.h></span> <a name="l00029"></a>00029 <span class="preprocessor">#include <sys/time.h></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">"RSAMD5"</span> }, <a name="l00043"></a>00043 { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a9c80e013ab6422f81bd5995312d07bf6">LDNS_DH</a>, <span class="stringliteral">"DH"</span> }, <a name="l00044"></a>00044 { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a50b87d8f1c4d4d1eb8dfd8881955a4f9">LDNS_DSA</a>, <span class="stringliteral">"DSA"</span> }, <a name="l00045"></a>00045 { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10acb69374043a01c4baded7ba3681e9f6c">LDNS_ECC</a>, <span class="stringliteral">"ECC"</span> }, <a name="l00046"></a>00046 { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10adc4185432973db18dc51adee3f28bf80">LDNS_RSASHA1</a>, <span class="stringliteral">"RSASHA1"</span> }, <a name="l00047"></a>00047 { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a4e557e9b993e25b374c1620dd9c426d0">LDNS_DSA_NSEC3</a>, <span class="stringliteral">"DSA-NSEC3-SHA1"</span> }, <a name="l00048"></a>00048 { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a4ad4fa00be7e34f3745a81ee4effda59">LDNS_RSASHA1_NSEC3</a>, <span class="stringliteral">"RSASHA1-NSEC3-SHA1"</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">"RSASHA256"</span>}, <a name="l00051"></a>00051 { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10adc52ea2e33d9e8d3754595a47179977a">LDNS_RSASHA512</a>, <span class="stringliteral">"RSASHA512"</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">"ECC-GOST"</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">"ECDSAP256SHA256"</span>}, <a name="l00058"></a>00058 { LDNS_ECDSAP384SHA384, <span class="stringliteral">"ECDSAP384SHA384"</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">"INDIRECT"</span> }, <a name="l00061"></a>00061 { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a8b4780eac0f9db1b73c547ed63d1b4ae">LDNS_PRIVATEDNS</a>, <span class="stringliteral">"PRIVATEDNS"</span> }, <a name="l00062"></a>00062 { <a class="code" href="keys_8h.html#a7263c18ede33d95a849cc07f54bc5b10a8002ed24f6e433fa1cc884b68953d8d7">LDNS_PRIVATEOID</a>, <span class="stringliteral">"PRIVATEOID"</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">"PKIX"</span> }, <a name="l00069"></a>00069 { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca0a47671498c31a713b97573111c59f5a">LDNS_CERT_SPKI</a>, <span class="stringliteral">"SPKI"</span> }, <a name="l00070"></a>00070 { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057cac9ba1d12aa10e969bdcb8e1a52f209a7">LDNS_CERT_PGP</a>, <span class="stringliteral">"PGP"</span> }, <a name="l00071"></a>00071 { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca95d13be1d1d606fdd927a92d638aad1c">LDNS_CERT_IPKIX</a>, <span class="stringliteral">"IPKIX"</span> }, <a name="l00072"></a>00072 { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca1f2e77bab3c62208b3a1453cb96ddb25">LDNS_CERT_ISPKI</a>, <span class="stringliteral">"ISPKI"</span> }, <a name="l00073"></a>00073 { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca22df24afbd9f0e5d6570e995369f0fb1">LDNS_CERT_IPGP</a>, <span class="stringliteral">"IPGP"</span> }, <a name="l00074"></a>00074 { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca73b4a2938c59e1d274c173ce12e76041">LDNS_CERT_ACPKIX</a>, <span class="stringliteral">"ACPKIX"</span> }, <a name="l00075"></a>00075 { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca80bf5e7b0de5100c8545c1a91a0afeae">LDNS_CERT_IACPKIX</a>, <span class="stringliteral">"IACPKIX"</span> }, <a name="l00076"></a>00076 { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057ca1480733f78c9fef61db7d31446e1fee6">LDNS_CERT_URI</a>, <span class="stringliteral">"URI"</span> }, <a name="l00077"></a>00077 { <a class="code" href="rdata_8h.html#ae9597491a17dc80a0284e858540b057cab2c28e7c6a15f8828950e2aff0642519">LDNS_CERT_OID</a>, <span class="stringliteral">"OID"</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">"IN"</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">"CH"</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">"HS"</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">"NONE"</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">"ANY"</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">"NOERROR"</span> }, <a name="l00094"></a>00094 { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea234c4a2479907e919bdc796d162e7e5d">LDNS_RCODE_FORMERR</a>, <span class="stringliteral">"FORMERR"</span> }, <a name="l00095"></a>00095 { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea3e47b4279a03871086ad3c982d8f7f4e">LDNS_RCODE_SERVFAIL</a>, <span class="stringliteral">"SERVFAIL"</span> }, <a name="l00096"></a>00096 { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2eac01c2b2bd1aad5bad94981afb97f5f72">LDNS_RCODE_NXDOMAIN</a>, <span class="stringliteral">"NXDOMAIN"</span> }, <a name="l00097"></a>00097 { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea409df5dae301f4305944cae96c696caa">LDNS_RCODE_NOTIMPL</a>, <span class="stringliteral">"NOTIMPL"</span> }, <a name="l00098"></a>00098 { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea023d50f9d3a62cf83a2c13fd2e92b5c6">LDNS_RCODE_REFUSED</a>, <span class="stringliteral">"REFUSED"</span> }, <a name="l00099"></a>00099 { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea23062185144a7e4c27d17564d7e3c35e">LDNS_RCODE_YXDOMAIN</a>, <span class="stringliteral">"YXDOMAIN"</span> }, <a name="l00100"></a>00100 { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea3702c2e5785f0f11516423a07277151f">LDNS_RCODE_YXRRSET</a>, <span class="stringliteral">"YXRRSET"</span> }, <a name="l00101"></a>00101 { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2ea9948710319d71abe34d74380d4a4439d">LDNS_RCODE_NXRRSET</a>, <span class="stringliteral">"NXRRSET"</span> }, <a name="l00102"></a>00102 { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2eadbb23ea2d247dfc825a9c5ee180ca2e7">LDNS_RCODE_NOTAUTH</a>, <span class="stringliteral">"NOTAUTH"</span> }, <a name="l00103"></a>00103 { <a class="code" href="packet_8h.html#ae3a130700ea54523aacc394180b2fa2eaa4352e797fbbe2e0fa55b573fb8a1c55">LDNS_RCODE_NOTZONE</a>, <span class="stringliteral">"NOTZONE"</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">"QUERY"</span> }, <a name="l00109"></a>00109 { <a class="code" href="packet_8h.html#a7b6e5e8c3d0e09c0a51b5cb46a1f8e20a38bc274e18bd6c83f803450f9310d0b4">LDNS_PACKET_IQUERY</a>, <span class="stringliteral">"IQUERY"</span> }, <a name="l00110"></a>00110 { <a class="code" href="packet_8h.html#a7b6e5e8c3d0e09c0a51b5cb46a1f8e20aab61063e4ba4ee58d655be8fa0d32a0d">LDNS_PACKET_STATUS</a>, <span class="stringliteral">"STATUS"</span> }, <a name="l00111"></a>00111 { <a class="code" href="packet_8h.html#a7b6e5e8c3d0e09c0a51b5cb46a1f8e20a70c7e2ddbffea1a09c71c0faa9f2e7db">LDNS_PACKET_NOTIFY</a>, <span class="stringliteral">"NOTIFY"</span> }, <a name="l00112"></a>00112 { <a class="code" href="packet_8h.html#a7b6e5e8c3d0e09c0a51b5cb46a1f8e20ab8ce3392553e5a300419e05ec3a6ab2f">LDNS_PACKET_UPDATE</a>, <span class="stringliteral">"UPDATE"</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> = &<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'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's with commenti text.">ldns_output_format_onlykeyids</a> <a name="l00123"></a><a class="code" href="host2str_8h.html#a600e34ade402abe07a9e57f6e2f2e2dc">00123</a> = &<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> = &<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's.">LDNS_COMMENT_KEY</a> | <a class="code" href="host2str_8h.html#a570b39e63c0389a97f70d464300973af" title="Provide bubblebabble representation for DS RR'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> = &<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 && lt-><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">"%s"</span>, lt-><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">"OPCODE%u"</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 && lt-><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">"%s"</span>, lt-><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">"RCODE%u"</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 && lt-><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">"%s"</span>, lt-><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">"ALG%u"</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 && lt-><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">"%s"</span>, lt-><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">"CERT_ALG%u"</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) > <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">"."</span>); <a name="l00290"></a>00290 } <span class="keywordflow">else</span> { <a name="l00291"></a>00291 <span class="keywordflow">while</span> ((len > 0) && src_pos < <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 < len; i++) { <a name="l00294"></a>00294 <span class="comment">/* paranoia check for various 'strange'</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">'.'</span> || c == <span class="charliteral">';'</span> || <a name="l00299"></a>00299 c == <span class="charliteral">'('</span> || c == <span class="charliteral">')'</span> || <a name="l00300"></a>00300 c == <span class="charliteral">'\\'</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">"\\%c"</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) && 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">"\\%03u"</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">"%c"</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 < <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">"."</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">"%lu"</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">"%lu"</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">"%lu"</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(&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), &tm) <a name="l00354"></a>00354 && strftime(date_buf, 15, <span class="stringliteral">"%Y%m%d%H%M%S"</span>, &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">"%s"</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">"%s"</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">"%s"</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">"\""</span>); <a name="l00391"></a>00391 <span class="keywordflow">for</span> (i = 1; i <= 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">'\t'</span>) { <a name="l00394"></a>00394 <span class="keywordflow">if</span> (ch==<span class="charliteral">'\"'</span>||ch==<span class="charliteral">'\\'</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">"\\%c"</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">"%c"</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">"\\%03u"</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">"\""</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">"%s"</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 > 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">"%s"</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 < <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">"%02x"</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 && descriptor-><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">"%s"</span>, descriptor-><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">"TYPE%u"</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">"\t%s"</span>, lt-><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">"\tCLASS%d"</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">"%s"</span>, lt-><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">"%d"</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'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'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">"%d"</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.<two digits> ? */</span> <a name="l00511"></a>00511 <span class="keywordflow">if</span>(exponent < 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">"0.%02ld"</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 <digit><string of zeros> */</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">"%d"</span>, (<span class="keywordtype">int</span>)mantissa); <a name="l00519"></a>00519 <span class="keywordflow">for</span>(i=0; i<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">"0"</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 && descriptor-><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">"%s"</span>, descriptor-><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">"IXFR"</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">"AXFR"</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">"MAILA"</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">"MAILB"</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">"ANY"</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">"TYPE%u"</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">"%s"</span>, lt-><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">"CLASS%d"</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 < 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(&<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(&<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(&<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 > equator) { <a name="l00641"></a>00641 northerness = <span class="charliteral">'N'</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">'S'</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">"%02u %02u %0.3f %c "</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 > equator) { <a name="l00656"></a>00656 easterness = <span class="charliteral">'E'</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">'W'</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">"%02u %02u %0.3f %c "</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">"%.2f"</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">"%.0f"</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">"m "</span>); <a name="l00680"></a>00680 <a name="l00681"></a>00681 loc_cm_print(output, (size & 0xf0) >> 4, size & 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">"m "</span>); <a name="l00683"></a>00683 <a name="l00684"></a>00684 loc_cm_print(output, (horizontal_precision & 0xf0) >> 4, <a name="l00685"></a>00685 horizontal_precision & 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">"m "</span>); <a name="l00687"></a>00687 <a name="l00688"></a>00688 loc_cm_print(output, (vertical_precision & 0xf0) >> 4, <a name="l00689"></a>00689 vertical_precision & 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">"m"</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">"\\# %u "</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">"0x"</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 && (protocol->p_name != NULL)) { <a name="l00731"></a>00731 proto_name = protocol->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">"%s "</span>, protocol->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">"%u "</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 < <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>(&(<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 && service->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">"%s "</span>, service->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">"%u "</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 < <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 < (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>(&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 && descriptor-><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">"%s "</span>, <a name="l00785"></a>00785 descriptor-><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">"TYPE%u "</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-><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 > <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">"- "</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 < 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">"%02x"</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">" "</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">"%u"</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">"%llu "</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 < (<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 >= (<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(&data[pos]); <a name="l00869"></a>00869 prefix = data[pos + 2]; <a name="l00870"></a>00870 negation = data[pos + 3] & <a class="code" href="host2str_8h.html#ab628b858cf1381496b519158d0f0480a">LDNS_APL_NEGATION</a>; <a name="l00871"></a>00871 adf_length = data[pos + 3] & <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 < 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">"!"</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">"%u:"</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 < 4; i++) { <a name="l00880"></a>00880 <span class="keywordflow">if</span> (i > 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">"."</span>); <a name="l00882"></a>00882 } <a name="l00883"></a>00883 <span class="keywordflow">if</span> (i < (<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 >= <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">"%d"</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">"0"</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">"/%u "</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 < 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">"!"</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">"%u:"</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 < 16; i++) { <a name="l00901"></a>00901 <span class="keywordflow">if</span> (i % 2 == 0 && i > 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">":"</span>); <a name="l00903"></a>00903 } <a name="l00904"></a>00904 <span class="keywordflow">if</span> (i < (<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 >= <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">"%02x"</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">"00"</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">"/%u "</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">"Unknown address family: %u data: "</span>, <a name="l00918"></a>00918 address_family); <a name="l00919"></a>00919 <span class="keywordflow">for</span> (i = 1; i < (<span class="keywordtype">unsigned</span> short) (4 + adf_length); i++) { <a name="l00920"></a>00920 <span class="keywordflow">if</span>(pos+i >= <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">"%02x"</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">"%u "</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) > 2 && <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">"%s"</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, &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, &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>(&gateway, data, <a class="code" href="rdata_8c.html#acccb19af8b71b0c8d341d17946b46e8b" title="returns the size of the rdf.">ldns_rdf_size</a>(rdf), &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, &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">"%u %u %u "</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">"."</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">" "</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 <data> */</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, "%u:", 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">"(null) "</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) > 0) { <a name="l01173"></a>01173 b32[size] = <span class="charliteral">'.'</span>; <a name="l01174"></a>01174 b32[size+1] = <span class="charliteral">'\0'</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>(&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 "; (null)" as opposed to outputting n...">LDNS_COMMENT_NULLS</a> & fmt-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR'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">"; (null)\n"</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">"\t%d"</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">"\t"</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">"\t"</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) > 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">"\t"</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">"\t\\# 0"</span>); <a name="l01229"></a>01229 } <a name="l01230"></a>01230 <a name="l01231"></a>01231 <span class="keywordflow">for</span> (i = 0; i < <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 < <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">" "</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) > 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) > 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-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> & <a class="code" href="host2str_8h.html#ada91e4287b5131fc1cf45da9c7c66ef7" title="Show key id, type and size as comment for DNSKEY RR'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">" ;{"</span>); <a name="l01254"></a>01254 <span class="keywordflow">if</span> (fmt-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> & <a class="code" href="host2str_8h.html#ab4869eb520760628c8459df3a7d7bb8b" title="Show key id with DNSKEY RR'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">"id = %u"</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-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> & <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 && (flags & <a class="code" href="keys_8h.html#ad5f212d6a80316d427f4b068e849ff73">LDNS_KEY_ZONE_KEY</a>)){ <a name="l01261"></a>01261 <span class="keywordflow">if</span> (flags & <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">" (ksk)"</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">" (zsk)"</span>); <a name="l01268"></a>01268 } <a name="l01269"></a>01269 <span class="keywordflow">if</span> (fmt-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> & <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">", "</span>); <a name="l01272"></a>01272 } <a name="l01273"></a>01273 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fmt-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> <a name="l01274"></a>01274 & (<a class="code" href="host2str_8h.html#ab4869eb520760628c8459df3a7d7bb8b" title="Show key id with DNSKEY RR'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">", "</span>); <a name="l01277"></a>01277 } <a name="l01278"></a>01278 <span class="keywordflow">if</span> (fmt-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> & <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">"size = %db"</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">"}"</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-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> & <a class="code" href="host2str_8h.html#ada91e4287b5131fc1cf45da9c7c66ef7" title="Show key id, type and size as comment for DNSKEY RR's.">LDNS_COMMENT_KEY</a>) <a name="l01286"></a>01286 && (fmt-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> <a name="l01287"></a>01287 & <a class="code" href="host2str_8h.html#a0dd1c6d166c6cf567ca346c7da6e162c" title="Also comment KEY_ID with RRSIGS.">LDNS_COMMENT_RRSIGS</a>) <a name="l01288"></a>01288 && <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">" ;{id = %d}"</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-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> & <a class="code" href="host2str_8h.html#a570b39e63c0389a97f70d464300973af" title="Provide bubblebabble representation for DS RR's as comment.">LDNS_COMMENT_BUBBLEBABBLE</a>) <a name="l01297"></a>01297 && <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">" ;{%s}"</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-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</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>) && <a name="l01313"></a>01313 ! (fmt-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> & <a class="code" href="host2str_8h.html#aef83316db61cf578ee15a09c6ce9e725" title="Show the unhashed owner and next owner names for NSEC3 RR'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">" ;{"</span>); <a name="l01317"></a>01317 <span class="keywordflow">if</span> ((fmt-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</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>)) { <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">" flags: optout"</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">" flags: -"</span>); <a name="l01324"></a>01324 } <a name="l01325"></a>01325 <span class="keywordflow">if</span> (fmt-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> & <a class="code" href="host2str_8h.html#aef83316db61cf578ee15a09c6ce9e725" title="Show the unhashed owner and next owner names for NSEC3 RR's as comment.">LDNS_COMMENT_NSEC3_CHAIN</a> <a name="l01326"></a>01326 && fmt-><a class="code" href="structldns__struct__output__format.html#af053a3d978670ac4a46bf7af7243376c" title="Potential extra data to be used with formatting RR'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">", "</span>); <a name="l01328"></a>01328 } <a name="l01329"></a>01329 } <a name="l01330"></a>01330 <span class="keywordflow">if</span> (fmt-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> & <a class="code" href="host2str_8h.html#aef83316db61cf578ee15a09c6ce9e725" title="Show the unhashed owner and next owner names for NSEC3 RR's as comment.">LDNS_COMMENT_NSEC3_CHAIN</a> <a name="l01331"></a>01331 && fmt-><a class="code" href="structldns__struct__output__format.html#af053a3d978670ac4a46bf7af7243376c" title="Potential extra data to be used with formatting RR'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-><a class="code" href="structldns__struct__output__format.html#af053a3d978670ac4a46bf7af7243376c" title="Potential extra data to be used with formatting RR'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-><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">"from: "</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-><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-><a class="code" href="structldns__struct__output__format.html#af053a3d978670ac4a46bf7af7243376c" title="Potential extra data to be used with formatting RR'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-><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">" to: "</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-><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">"}"</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">"\n"</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 < <a class="code" href="rr_8c.html#a7ac3192fe79ba66e47579bb2b267ce05" title="returns the number of rr'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'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'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">";; ->>HEADER<<- "</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">"opcode: %s, "</span>, opcode-><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">"opcode: ?? (%u), "</span>, <a name="l01423"></a>01423 <a class="code" href="packet_8c.html#a2714c10ca2228ef57070b63e6b60b8c5" title="Read the packet'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">"rcode: %s, "</span>, rcode-><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">"rcode: ?? (%u), "</span>, <a class="code" href="packet_8c.html#af4256a808233651ea1a5bdab74ce2d8e" title="Return the packet'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">"id: %d\n"</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">";; flags: "</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'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">"qr "</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'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">"aa "</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'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">"tc "</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'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">"rd "</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'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">"cd "</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'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">"ra "</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'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">"ad "</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">"; "</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">"QUERY: %u, "</span>, <a class="code" href="packet_8c.html#acfd9095572aa59123edcdeb598976b69" title="Return the packet'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">"ANSWER: %u, "</span>, <a class="code" href="packet_8c.html#a801e0c9c3766dde74347793984ecd417" title="Return the packet'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">"AUTHORITY: %u, "</span>, <a class="code" href="packet_8c.html#ac551c3cfc6a48241e1d4cd4d1390df1c" title="Return the packet'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">"ADDITIONAL: %u "</span>, <a class="code" href="packet_8c.html#a45ad46caf5027284947fe58b77b2a93a" title="Return the packet'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">"null"</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">"\n"</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">";; QUESTION SECTION:\n;; "</span>); <a name="l01486"></a>01486 <a name="l01487"></a>01487 <a name="l01488"></a>01488 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="packet_8c.html#acfd9095572aa59123edcdeb598976b69" title="Return the packet'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'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">"\n"</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">";; ANSWER SECTION:\n"</span>); <a name="l01499"></a>01499 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="packet_8c.html#a801e0c9c3766dde74347793984ecd417" title="Return the packet'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'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">"\n"</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">";; AUTHORITY SECTION:\n"</span>); <a name="l01511"></a>01511 <a name="l01512"></a>01512 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="packet_8c.html#ac551c3cfc6a48241e1d4cd4d1390df1c" title="Return the packet'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'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">"\n"</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">";; ADDITIONAL SECTION:\n"</span>); <a name="l01523"></a>01523 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="packet_8c.html#a45ad46caf5027284947fe58b77b2a93a" title="Return the packet'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'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">"\n"</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">";; Query time: %d msec\n"</span>, <a name="l01535"></a>01535 <a class="code" href="packet_8c.html#a9f54048e7a06924bebdc74c11c56fa96" title="Return the packet'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">";; EDNS: version %u; flags:"</span>, <a name="l01539"></a>01539 <a class="code" href="packet_8c.html#a082cf0e882efb5496189ce996b5aee05" title="return the packet'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'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">" do"</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'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'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">" ; ext-rcode: %d"</span>, <a name="l01547"></a>01547 (<a class="code" href="packet_8c.html#aa5c655708da9980489d4dc8c00be83c3" title="return the packet's edns extended rcode">ldns_pkt_edns_extended_rcode</a>(pkt) << 4 | <a class="code" href="packet_8c.html#af4256a808233651ea1a5bdab74ce2d8e" title="Return the packet'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">" ; udp: %u\n"</span>, <a name="l01550"></a>01550 <a class="code" href="packet_8c.html#afc049180b6ff8b892f9ea80a13bf4990" title="return the packet'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'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">";; Data: "</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'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">"\n"</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's tsig pseudo rr'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">";; TSIG:\n;; "</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's tsig pseudo rr'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">"\n"</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'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'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">";; SERVER: %s\n"</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'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">";; WHEN: %s"</span>, <a name="l01573"></a>01573 (<span class="keywordtype">char</span>*)ctime(&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">";; MSG SIZE rcvd: %d\n"</span>, <a name="l01576"></a>01576 (<span class="keywordtype">int</span>)<a class="code" href="packet_8c.html#a973aae4a231e8022bb095defcc9ca264" title="Return the packet'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">"Key: "</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">"\n"</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) && 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">"GostAsn1: "</span>); <a name="l01619"></a>01619 <a name="l01620"></a>01620 ret = i2d_PrivateKey(p, &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">"\n"</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">"Private-key-format: v1.2\n"</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">"Algorithm: %u (RSA)\n"</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">"Algorithm: %u (RSASHA1)\n"</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">"Algorithm: %u (RSASHA1_NSEC3)\n"</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">"Algorithm: %u (RSASHA256)\n"</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">"Algorithm: %u (RSASHA512)\n"</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">"Warning: unknown signature "</span>); <a name="l01700"></a>01700 fprintf(stderr, <a name="l01701"></a>01701 <span class="stringliteral">"algorithm type %u\n"</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">"Algorithm: %u (Unknown)\n"</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">"Modulus: "</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->n, bignum); <a name="l01714"></a>01714 <span class="keywordflow">if</span> (i > <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">"\n"</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">"PublicExponent: "</span>); <a name="l01724"></a>01724 i = (uint16_t)BN_bn2bin(rsa->e, bignum); <a name="l01725"></a>01725 <span class="keywordflow">if</span> (i > <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">"\n"</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">"PrivateExponent: "</span>); <a name="l01736"></a>01736 <span class="keywordflow">if</span> (rsa->d) { <a name="l01737"></a>01737 i = (uint16_t)BN_bn2bin(rsa->d, bignum); <a name="l01738"></a>01738 <span class="keywordflow">if</span> (i > <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">"\n"</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">"(Not available)\n"</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">"Prime1: "</span>); <a name="l01752"></a>01752 <span class="keywordflow">if</span> (rsa->p) { <a name="l01753"></a>01753 i = (uint16_t)BN_bn2bin(rsa->p, bignum); <a name="l01754"></a>01754 <span class="keywordflow">if</span> (i > <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">"\n"</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">"(Not available)\n"</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">"Prime2: "</span>); <a name="l01768"></a>01768 <span class="keywordflow">if</span> (rsa->q) { <a name="l01769"></a>01769 i = (uint16_t)BN_bn2bin(rsa->q, bignum); <a name="l01770"></a>01770 <span class="keywordflow">if</span> (i > <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">"\n"</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">"(Not available)\n"</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">"Exponent1: "</span>); <a name="l01784"></a>01784 <span class="keywordflow">if</span> (rsa->dmp1) { <a name="l01785"></a>01785 i = (uint16_t)BN_bn2bin(rsa->dmp1, bignum); <a name="l01786"></a>01786 <span class="keywordflow">if</span> (i > <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">"\n"</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">"(Not available)\n"</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">"Exponent2: "</span>); <a name="l01800"></a>01800 <span class="keywordflow">if</span> (rsa->dmq1) { <a name="l01801"></a>01801 i = (uint16_t)BN_bn2bin(rsa->dmq1, bignum); <a name="l01802"></a>01802 <span class="keywordflow">if</span> (i > <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">"\n"</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">"(Not available)\n"</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">"Coefficient: "</span>); <a name="l01816"></a>01816 <span class="keywordflow">if</span> (rsa->iqmp) { <a name="l01817"></a>01817 i = (uint16_t)BN_bn2bin(rsa->iqmp, bignum); <a name="l01818"></a>01818 <span class="keywordflow">if</span> (i > <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">"\n"</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">"(Not available)\n"</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">"Private-key-format: v1.2\n"</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">"Algorithm: 3 (DSA)\n"</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">"Algorithm: 6 (DSA_NSEC3)\n"</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">"Prime(p): "</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->p) { <a name="l01850"></a>01850 i = (uint16_t)BN_bn2bin(dsa->p, bignum); <a name="l01851"></a>01851 <span class="keywordflow">if</span> (i > <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">"\n"</span>); <a name="l01860"></a>01860 } <span class="keywordflow">else</span> { <a name="l01861"></a>01861 printf(<span class="stringliteral">"(Not available)\n"</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">"Subprime(q): "</span>); <a name="l01865"></a>01865 <span class="keywordflow">if</span> (dsa->q) { <a name="l01866"></a>01866 i = (uint16_t)BN_bn2bin(dsa->q, bignum); <a name="l01867"></a>01867 <span class="keywordflow">if</span> (i > <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">"\n"</span>); <a name="l01876"></a>01876 } <span class="keywordflow">else</span> { <a name="l01877"></a>01877 printf(<span class="stringliteral">"(Not available)\n"</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">"Base(g): "</span>); <a name="l01881"></a>01881 <span class="keywordflow">if</span> (dsa->g) { <a name="l01882"></a>01882 i = (uint16_t)BN_bn2bin(dsa->g, bignum); <a name="l01883"></a>01883 <span class="keywordflow">if</span> (i > <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">"\n"</span>); <a name="l01892"></a>01892 } <span class="keywordflow">else</span> { <a name="l01893"></a>01893 printf(<span class="stringliteral">"(Not available)\n"</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">"Private_value(x): "</span>); <a name="l01897"></a>01897 <span class="keywordflow">if</span> (dsa->priv_key) { <a name="l01898"></a>01898 i = (uint16_t)BN_bn2bin(dsa->priv_key, bignum); <a name="l01899"></a>01899 <span class="keywordflow">if</span> (i > <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">"\n"</span>); <a name="l01908"></a>01908 } <span class="keywordflow">else</span> { <a name="l01909"></a>01909 printf(<span class="stringliteral">"(Not available)\n"</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">"Public_value(y): "</span>); <a name="l01913"></a>01913 <span class="keywordflow">if</span> (dsa->pub_key) { <a name="l01914"></a>01914 i = (uint16_t)BN_bn2bin(dsa->pub_key, bignum); <a name="l01915"></a>01915 <span class="keywordflow">if</span> (i > <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">"\n"</span>); <a name="l01924"></a>01924 } <span class="keywordflow">else</span> { <a name="l01925"></a>01925 printf(<span class="stringliteral">"(Not available)\n"</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) && 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">"Private-key-format: v1.2\n"</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">"Algorithm: %d (ECC-GOST)\n"</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-><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">"Private-key-format: v1.2\n"</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">"Algorithm: %d ("</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">")\n"</span>); <a name="l01952"></a>01952 <span class="keywordflow">if</span>(k-><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-><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">"PrivateKey: "</span>); <a name="l01956"></a>01956 i = (uint16_t)BN_bn2bin(b, bignum); <a name="l01957"></a>01957 <span class="keywordflow">if</span> (i > <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">"\n"</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's not much of a format defined for TSIG */</span> <a name="l01975"></a>01975 <span class="comment">/* It'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">"Private-key-format: v1.2\n"</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">"Algorithm: 157 (HMAC_MD5)\n"</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">"Private-key-format: v1.2\n"</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">"Algorithm: 158 (HMAC_SHA1)\n"</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">"Private-key-format: v1.2\n"</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">"Algorithm: 159 (HMAC_SHA256)\n"</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'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">'\0'</span>); <a name="l02027"></a>02027 <span class="keywordflow">if</span> (!<a class="code" href="buffer_8c.html#a4e16fc0b5f97c6a3d91533c93f8f47c2" title="changes the buffer'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-><a class="code" href="structldns__struct__output__format.html#aab2900137801ec209e02e79c7b61307c" title="Specification of how RR's should be formatted in text.">flags</a> & <a class="code" href="host2str_8h.html#aae5de43edc598ef481afa924f3bc3792" title="Represent a NULL pointer (in stead of a pointer to a ldns_rr as "; (null)" 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">"; (null)\n"</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">"%s"</span>, str); <a name="l02166"></a>02166 } <span class="keywordflow">else</span> { <a name="l02167"></a>02167 fprintf(output, <span class="stringliteral">"Unable to convert rdf to string\n"</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">"%s"</span>, str); <a name="l02179"></a>02179 } <span class="keywordflow">else</span> { <a name="l02180"></a>02180 fprintf(output, <span class="stringliteral">"Unable to convert rr to string\n"</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">"%s"</span>, str); <a name="l02198"></a>02198 } <span class="keywordflow">else</span> { <a name="l02199"></a>02199 fprintf(output, <span class="stringliteral">"Unable to convert packet to string\n"</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 < <a class="code" href="rr_8c.html#a7ac3192fe79ba66e47579bb2b267ce05" title="returns the number of rr'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">"port: %d\n"</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">"edns0 size: %d\n"</span>, (<span class="keywordtype">int</span>)<a class="code" href="resolver_8c.html#a9140fe1e1f05594c899fd9ecde074feb" title="Get the resolver's udp size.">ldns_resolver_edns_udp_size</a>(r)); <a name="l02243"></a>02243 fprintf(output, <span class="stringliteral">"use ip6: %d\n"</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">"recursive: %d\n"</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">"usevc: %d\n"</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">"igntc: %d\n"</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">"fail: %d\n"</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">"retry: %d\n"</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">"retrans: %d\n"</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">"fallback: %d\n"</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">"random: %d\n"</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">"timeout: %d\n"</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">"dnssec: %d\n"</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">"dnssec cd: %d\n"</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">"trust anchors (%d listed):\n"</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's in an rr_list.">ldns_rr_list_rr_count</a>(<a class="code" href="resolver_8c.html#a52d9b6a45cb3c74c79ed1e69e5c2cb93" title="Get the resolver'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's DNSSEC anchors.">ldns_resolver_dnssec_anchors</a>(r)); <a name="l02259"></a>02259 fprintf(output, <span class="stringliteral">"tsig: %s %s\n"</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">"-"</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">"-"</span>); <a name="l02262"></a>02262 fprintf(output, <span class="stringliteral">"debug: %d\n"</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">"default domain: "</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">"\n"</span>); <a name="l02267"></a>02267 fprintf(output, <span class="stringliteral">"apply default domain: %d\n"</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">"searchlist (%d listed):\n"</span>, (<span class="keywordtype">int</span>)<a class="code" href="resolver_8c.html#a51df8a71741c7ab07f635b73b9112310" title="Return the resolver's searchlist count.">ldns_resolver_searchlist_count</a>(r)); <a name="l02270"></a>02270 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="resolver_8c.html#a51df8a71741c7ab07f635b73b9112310" title="Return the resolver's searchlist count.">ldns_resolver_searchlist_count</a>(r); i++) { <a name="l02271"></a>02271 fprintf(output, <span class="stringliteral">"\t"</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">"\n"</span>); <a name="l02274"></a>02274 } <a name="l02275"></a>02275 fprintf(output, <span class="stringliteral">"apply search list: %d\n"</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">"nameservers (%d listed):\n"</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 < <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">"\t"</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">" - reachable\n"</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">" - unreachable\n"</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'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  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>