17b5038d7SDag-Erling Smørgrav /**
27b5038d7SDag-Erling Smørgrav * host2str.h - txt presentation of RRs
37b5038d7SDag-Erling Smørgrav *
47b5038d7SDag-Erling Smørgrav * a Net::DNS like library for C
57b5038d7SDag-Erling Smørgrav *
67b5038d7SDag-Erling Smørgrav * (c) NLnet Labs, 2005-2006
77b5038d7SDag-Erling Smørgrav *
87b5038d7SDag-Erling Smørgrav * See the file LICENSE for the license
97b5038d7SDag-Erling Smørgrav */
107b5038d7SDag-Erling Smørgrav
117b5038d7SDag-Erling Smørgrav /**
127b5038d7SDag-Erling Smørgrav * \file
137b5038d7SDag-Erling Smørgrav *
147b5038d7SDag-Erling Smørgrav * Contains functions to translate the main structures to their text
157b5038d7SDag-Erling Smørgrav * representation, as well as functions to print them.
167b5038d7SDag-Erling Smørgrav */
177b5038d7SDag-Erling Smørgrav
187b5038d7SDag-Erling Smørgrav #ifndef LDNS_HOST2STR_H
197b5038d7SDag-Erling Smørgrav #define LDNS_HOST2STR_H
207b5038d7SDag-Erling Smørgrav
217b5038d7SDag-Erling Smørgrav #include <ldns/common.h>
227b5038d7SDag-Erling Smørgrav #include <ldns/error.h>
237b5038d7SDag-Erling Smørgrav #include <ldns/rr.h>
247b5038d7SDag-Erling Smørgrav #include <ldns/rdata.h>
257b5038d7SDag-Erling Smørgrav #include <ldns/packet.h>
267b5038d7SDag-Erling Smørgrav #include <ldns/buffer.h>
277b5038d7SDag-Erling Smørgrav #include <ldns/resolver.h>
287b5038d7SDag-Erling Smørgrav #include <ldns/zone.h>
297b5038d7SDag-Erling Smørgrav #include <ctype.h>
307b5038d7SDag-Erling Smørgrav
317b5038d7SDag-Erling Smørgrav #include "ldns/util.h"
327b5038d7SDag-Erling Smørgrav
337b5038d7SDag-Erling Smørgrav #ifdef __cplusplus
347b5038d7SDag-Erling Smørgrav extern "C" {
357b5038d7SDag-Erling Smørgrav #endif
367b5038d7SDag-Erling Smørgrav
377b5038d7SDag-Erling Smørgrav #define LDNS_APL_IP4 1
387b5038d7SDag-Erling Smørgrav #define LDNS_APL_IP6 2
397b5038d7SDag-Erling Smørgrav #define LDNS_APL_MASK 0x7f
407b5038d7SDag-Erling Smørgrav #define LDNS_APL_NEGATION 0x80
417b5038d7SDag-Erling Smørgrav
427b5038d7SDag-Erling Smørgrav /**
437b5038d7SDag-Erling Smørgrav * Represent a NULL pointer (instead of a pointer to a ldns_rr as "; (null)"
447b5038d7SDag-Erling Smørgrav * as opposed to outputting nothing at all in such a case.
457b5038d7SDag-Erling Smørgrav */
4617d15b25SDag-Erling Smørgrav /* Flag Name Flag Nr. Has data associated
4717d15b25SDag-Erling Smørgrav ---------------------------------------------------------------------*/
4817d15b25SDag-Erling Smørgrav #define LDNS_COMMENT_NULLS (1 << 0)
497b5038d7SDag-Erling Smørgrav /** Show key id with DNSKEY RR's as comment */
5017d15b25SDag-Erling Smørgrav #define LDNS_COMMENT_KEY_ID (1 << 1)
517b5038d7SDag-Erling Smørgrav /** Show if a DNSKEY is a ZSK or KSK as comment */
5217d15b25SDag-Erling Smørgrav #define LDNS_COMMENT_KEY_TYPE (1 << 2)
537b5038d7SDag-Erling Smørgrav /** Show DNSKEY key size as comment */
5417d15b25SDag-Erling Smørgrav #define LDNS_COMMENT_KEY_SIZE (1 << 3)
5517d15b25SDag-Erling Smørgrav /** Provide bubblebabble representation for DS RR's as comment */
5617d15b25SDag-Erling Smørgrav #define LDNS_COMMENT_BUBBLEBABBLE (1 << 4)
5717d15b25SDag-Erling Smørgrav /** Show when a NSEC3 RR has the optout flag set as comment */
5817d15b25SDag-Erling Smørgrav #define LDNS_COMMENT_FLAGS (1 << 5)
5917d15b25SDag-Erling Smørgrav /** Show the unhashed owner and next owner names for NSEC3 RR's as comment */
6017d15b25SDag-Erling Smørgrav #define LDNS_COMMENT_NSEC3_CHAIN (1 << 6) /* yes */
6117d15b25SDag-Erling Smørgrav /** Print mark up */
6217d15b25SDag-Erling Smørgrav #define LDNS_COMMENT_LAYOUT (1 << 7)
6317d15b25SDag-Erling Smørgrav /** Also comment KEY_ID with RRSIGS **/
6417d15b25SDag-Erling Smørgrav #define LDNS_COMMENT_RRSIGS (1 << 8)
6517d15b25SDag-Erling Smørgrav #define LDNS_FMT_ZEROIZE_RRSIGS (1 << 9)
6617d15b25SDag-Erling Smørgrav #define LDNS_FMT_PAD_SOA_SERIAL (1 << 10)
6717d15b25SDag-Erling Smørgrav #define LDNS_FMT_RFC3597 (1 << 11) /* yes */
68*5afab0e5SDag-Erling Smørgrav /** Prints only answer section of packets and only rdata of RRs **/
69*5afab0e5SDag-Erling Smørgrav #define LDNS_FMT_SHORT (1 << 12)
7017d15b25SDag-Erling Smørgrav
7117d15b25SDag-Erling Smørgrav #define LDNS_FMT_FLAGS_WITH_DATA 2
7217d15b25SDag-Erling Smørgrav
737b5038d7SDag-Erling Smørgrav /** Show key id, type and size as comment for DNSKEY RR's */
747b5038d7SDag-Erling Smørgrav #define LDNS_COMMENT_KEY (LDNS_COMMENT_KEY_ID \
757b5038d7SDag-Erling Smørgrav |LDNS_COMMENT_KEY_TYPE\
767b5038d7SDag-Erling Smørgrav |LDNS_COMMENT_KEY_SIZE)
777b5038d7SDag-Erling Smørgrav
787b5038d7SDag-Erling Smørgrav /**
797b5038d7SDag-Erling Smørgrav * Output format specifier
807b5038d7SDag-Erling Smørgrav *
81*5afab0e5SDag-Erling Smørgrav * Determines how Packets, Resource Records and Resource record data field are
827b5038d7SDag-Erling Smørgrav * formatted when printing or converting to string.
837b5038d7SDag-Erling Smørgrav * Currently it is only used to specify what aspects of a Resource Record are
847b5038d7SDag-Erling Smørgrav * annotated in the comment section of the textual representation the record.
85*5afab0e5SDag-Erling Smørgrav * This is specified with flags and potential extra data (such as for example
867b5038d7SDag-Erling Smørgrav * a lookup map of hashes to real names for annotation NSEC3 records).
877b5038d7SDag-Erling Smørgrav */
887b5038d7SDag-Erling Smørgrav struct ldns_struct_output_format
897b5038d7SDag-Erling Smørgrav {
907b5038d7SDag-Erling Smørgrav /** Specification of how RR's should be formatted in text */
917b5038d7SDag-Erling Smørgrav int flags;
927b5038d7SDag-Erling Smørgrav /** Potential extra data to be used with formatting RR's in text */
937b5038d7SDag-Erling Smørgrav void *data;
947b5038d7SDag-Erling Smørgrav };
957b5038d7SDag-Erling Smørgrav typedef struct ldns_struct_output_format ldns_output_format;
967b5038d7SDag-Erling Smørgrav
977b5038d7SDag-Erling Smørgrav /**
9817d15b25SDag-Erling Smørgrav * Output format struct with additional data for flags that use them.
9917d15b25SDag-Erling Smørgrav * This struct may not be initialized directly. Use ldns_output_format_init
10017d15b25SDag-Erling Smørgrav * to initialize.
10117d15b25SDag-Erling Smørgrav */
10217d15b25SDag-Erling Smørgrav struct ldns_struct_output_format_storage
10317d15b25SDag-Erling Smørgrav { int flags;
10417d15b25SDag-Erling Smørgrav ldns_rbtree_t* hashmap; /* for LDNS_COMMENT_NSEC3_CHAIN */
10517d15b25SDag-Erling Smørgrav ldns_rdf* bitmap; /* for LDNS_FMT_RFC3597 */
10617d15b25SDag-Erling Smørgrav };
10717d15b25SDag-Erling Smørgrav typedef struct ldns_struct_output_format_storage ldns_output_format_storage;
10817d15b25SDag-Erling Smørgrav
10917d15b25SDag-Erling Smørgrav /**
1107b5038d7SDag-Erling Smørgrav * Standard output format record that disables commenting in the textual
1117b5038d7SDag-Erling Smørgrav * representation of Resource Records completely.
1127b5038d7SDag-Erling Smørgrav */
1137b5038d7SDag-Erling Smørgrav extern const ldns_output_format *ldns_output_format_nocomments;
1147b5038d7SDag-Erling Smørgrav /**
115*5afab0e5SDag-Erling Smørgrav * Standard output format record that annotated only DNSKEY RR's with comment
1167b5038d7SDag-Erling Smørgrav * text.
1177b5038d7SDag-Erling Smørgrav */
1187b5038d7SDag-Erling Smørgrav extern const ldns_output_format *ldns_output_format_onlykeyids;
1197b5038d7SDag-Erling Smørgrav /**
1207b5038d7SDag-Erling Smørgrav * The default output format record. Same as ldns_output_format_onlykeyids.
1217b5038d7SDag-Erling Smørgrav */
1227b5038d7SDag-Erling Smørgrav extern const ldns_output_format *ldns_output_format_default;
1237b5038d7SDag-Erling Smørgrav /**
1247b5038d7SDag-Erling Smørgrav * Standard output format record that shows all DNSKEY related information in
1257b5038d7SDag-Erling Smørgrav * the comment text, plus the optout flag when set with NSEC3's, plus the
1267b5038d7SDag-Erling Smørgrav * bubblebabble representation of DS RR's.
1277b5038d7SDag-Erling Smørgrav */
1287b5038d7SDag-Erling Smørgrav extern const ldns_output_format *ldns_output_format_bubblebabble;
1297b5038d7SDag-Erling Smørgrav
1307b5038d7SDag-Erling Smørgrav /**
13117d15b25SDag-Erling Smørgrav * Initialize output format storage to the default value.
13217d15b25SDag-Erling Smørgrav * \param[in] fmt A reference to an output_format_ storage struct
13317d15b25SDag-Erling Smørgrav * \return The initialized storage struct typecasted to ldns_output_format
13417d15b25SDag-Erling Smørgrav */
13517d15b25SDag-Erling Smørgrav INLINE
ldns_output_format_init(ldns_output_format_storage * fmt)13617d15b25SDag-Erling Smørgrav ldns_output_format* ldns_output_format_init(ldns_output_format_storage* fmt) {
13717d15b25SDag-Erling Smørgrav fmt->flags = ldns_output_format_default->flags;
13817d15b25SDag-Erling Smørgrav fmt->hashmap = NULL;
13917d15b25SDag-Erling Smørgrav fmt->bitmap = NULL;
14017d15b25SDag-Erling Smørgrav return (ldns_output_format*)fmt;
14117d15b25SDag-Erling Smørgrav }
14217d15b25SDag-Erling Smørgrav
14317d15b25SDag-Erling Smørgrav /**
144986ba33cSDag-Erling Smørgrav * Set an output format flag.
14517d15b25SDag-Erling Smørgrav */
ldns_output_format_set(ldns_output_format * fmt,int flag)14617d15b25SDag-Erling Smørgrav INLINE void ldns_output_format_set(ldns_output_format* fmt, int flag) {
14717d15b25SDag-Erling Smørgrav fmt->flags |= flag;
14817d15b25SDag-Erling Smørgrav }
14917d15b25SDag-Erling Smørgrav
15017d15b25SDag-Erling Smørgrav /**
151986ba33cSDag-Erling Smørgrav * Clear an output format flag.
15217d15b25SDag-Erling Smørgrav */
ldns_output_format_clear(ldns_output_format * fmt,int flag)15317d15b25SDag-Erling Smørgrav INLINE void ldns_output_format_clear(ldns_output_format* fmt, int flag) {
15417d15b25SDag-Erling Smørgrav fmt->flags &= !flag;
15517d15b25SDag-Erling Smørgrav }
15617d15b25SDag-Erling Smørgrav
15717d15b25SDag-Erling Smørgrav /**
15817d15b25SDag-Erling Smørgrav * Makes sure the LDNS_FMT_RFC3597 is set in the output format.
15917d15b25SDag-Erling Smørgrav * Marks the type to be printed in RFC3597 format.
16017d15b25SDag-Erling Smørgrav * /param[in] fmt the output format to update
16117d15b25SDag-Erling Smørgrav * /param[in] the type to be printed in RFC3597 format
16217d15b25SDag-Erling Smørgrav * /return LDNS_STATUS_OK on success
16317d15b25SDag-Erling Smørgrav */
16417d15b25SDag-Erling Smørgrav ldns_status
16517d15b25SDag-Erling Smørgrav ldns_output_format_set_type(ldns_output_format* fmt, ldns_rr_type type);
16617d15b25SDag-Erling Smørgrav
16717d15b25SDag-Erling Smørgrav /**
16817d15b25SDag-Erling Smørgrav * Makes sure the LDNS_FMT_RFC3597 is set in the output format.
16917d15b25SDag-Erling Smørgrav * Marks the type to not be printed in RFC3597 format. When no other types
17017d15b25SDag-Erling Smørgrav * have been marked before, all known types (except the given one) will be
17117d15b25SDag-Erling Smørgrav * marked for printing in RFC3597 format.
17217d15b25SDag-Erling Smørgrav * /param[in] fmt the output format to update
17317d15b25SDag-Erling Smørgrav * /param[in] the type not to be printed in RFC3597 format
17417d15b25SDag-Erling Smørgrav * /return LDNS_STATUS_OK on success
17517d15b25SDag-Erling Smørgrav */
17617d15b25SDag-Erling Smørgrav ldns_status
17717d15b25SDag-Erling Smørgrav ldns_output_format_clear_type(ldns_output_format* fmt, ldns_rr_type type);
17817d15b25SDag-Erling Smørgrav
17917d15b25SDag-Erling Smørgrav /**
1807b5038d7SDag-Erling Smørgrav * Converts an ldns packet opcode value to its mnemonic, and adds that
1817b5038d7SDag-Erling Smørgrav * to the output buffer
1827b5038d7SDag-Erling Smørgrav * \param[in] *output the buffer to add the data to
1837b5038d7SDag-Erling Smørgrav * \param[in] opcode to find the string representation of
1847b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, or a buffer failure mode on error
1857b5038d7SDag-Erling Smørgrav */
1867b5038d7SDag-Erling Smørgrav ldns_status
1877b5038d7SDag-Erling Smørgrav ldns_pkt_opcode2buffer_str(ldns_buffer *output, ldns_pkt_opcode opcode);
1887b5038d7SDag-Erling Smørgrav
1897b5038d7SDag-Erling Smørgrav /**
1907b5038d7SDag-Erling Smørgrav * Converts an ldns packet rcode value to its mnemonic, and adds that
1917b5038d7SDag-Erling Smørgrav * to the output buffer
1927b5038d7SDag-Erling Smørgrav * \param[in] *output the buffer to add the data to
1937b5038d7SDag-Erling Smørgrav * \param[in] rcode to find the string representation of
1947b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, or a buffer failure mode on error
1957b5038d7SDag-Erling Smørgrav */
1967b5038d7SDag-Erling Smørgrav ldns_status
1977b5038d7SDag-Erling Smørgrav ldns_pkt_rcode2buffer_str(ldns_buffer *output, ldns_pkt_rcode rcode);
1987b5038d7SDag-Erling Smørgrav
1997b5038d7SDag-Erling Smørgrav /**
2007b5038d7SDag-Erling Smørgrav * Converts an ldns algorithm type to its mnemonic, and adds that
2017b5038d7SDag-Erling Smørgrav * to the output buffer
2027b5038d7SDag-Erling Smørgrav * \param[in] *output the buffer to add the data to
2037b5038d7SDag-Erling Smørgrav * \param[in] algorithm to find the string representation of
2047b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, or a buffer failure mode on error
2057b5038d7SDag-Erling Smørgrav */
2067b5038d7SDag-Erling Smørgrav ldns_status
2077b5038d7SDag-Erling Smørgrav ldns_algorithm2buffer_str(ldns_buffer *output,
2087b5038d7SDag-Erling Smørgrav ldns_algorithm algorithm);
2097b5038d7SDag-Erling Smørgrav
2107b5038d7SDag-Erling Smørgrav /**
2117b5038d7SDag-Erling Smørgrav * Converts an ldns certificate algorithm type to its mnemonic,
2127b5038d7SDag-Erling Smørgrav * and adds that to the output buffer
2137b5038d7SDag-Erling Smørgrav * \param[in] *output the buffer to add the data to
2147b5038d7SDag-Erling Smørgrav * \param[in] cert_algorithm to find the string representation of
2157b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, or a buffer failure mode on error
2167b5038d7SDag-Erling Smørgrav */
2177b5038d7SDag-Erling Smørgrav ldns_status
2187b5038d7SDag-Erling Smørgrav ldns_cert_algorithm2buffer_str(ldns_buffer *output,
2197b5038d7SDag-Erling Smørgrav ldns_cert_algorithm cert_algorithm);
2207b5038d7SDag-Erling Smørgrav
2217b5038d7SDag-Erling Smørgrav
2227b5038d7SDag-Erling Smørgrav /**
2237b5038d7SDag-Erling Smørgrav * Converts a packet opcode to its mnemonic and returns that as
2247b5038d7SDag-Erling Smørgrav * an allocated null-terminated string.
2257b5038d7SDag-Erling Smørgrav * Remember to free it.
2267b5038d7SDag-Erling Smørgrav *
2277b5038d7SDag-Erling Smørgrav * \param[in] opcode the opcode to convert to text
2287b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
2297b5038d7SDag-Erling Smørgrav */
2307b5038d7SDag-Erling Smørgrav char *ldns_pkt_opcode2str(ldns_pkt_opcode opcode);
2317b5038d7SDag-Erling Smørgrav
2327b5038d7SDag-Erling Smørgrav /**
2337b5038d7SDag-Erling Smørgrav * Converts a packet rcode to its mnemonic and returns that as
2347b5038d7SDag-Erling Smørgrav * an allocated null-terminated string.
2357b5038d7SDag-Erling Smørgrav * Remember to free it.
2367b5038d7SDag-Erling Smørgrav *
2377b5038d7SDag-Erling Smørgrav * \param[in] rcode the rcode to convert to text
2387b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
2397b5038d7SDag-Erling Smørgrav */
2407b5038d7SDag-Erling Smørgrav char *ldns_pkt_rcode2str(ldns_pkt_rcode rcode);
2417b5038d7SDag-Erling Smørgrav
2427b5038d7SDag-Erling Smørgrav /**
2437b5038d7SDag-Erling Smørgrav * Converts a signing algorithms to its mnemonic and returns that as
2447b5038d7SDag-Erling Smørgrav * an allocated null-terminated string.
2457b5038d7SDag-Erling Smørgrav * Remember to free it.
2467b5038d7SDag-Erling Smørgrav *
2477b5038d7SDag-Erling Smørgrav * \param[in] algorithm the algorithm to convert to text
2487b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
2497b5038d7SDag-Erling Smørgrav */
2507b5038d7SDag-Erling Smørgrav char *ldns_pkt_algorithm2str(ldns_algorithm algorithm);
2517b5038d7SDag-Erling Smørgrav
2527b5038d7SDag-Erling Smørgrav /**
2537b5038d7SDag-Erling Smørgrav * Converts a cert algorithm to its mnemonic and returns that as
2547b5038d7SDag-Erling Smørgrav * an allocated null-terminated string.
2557b5038d7SDag-Erling Smørgrav * Remember to free it.
2567b5038d7SDag-Erling Smørgrav *
2577b5038d7SDag-Erling Smørgrav * \param[in] cert_algorithm to convert to text
2587b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
2597b5038d7SDag-Erling Smørgrav */
2607b5038d7SDag-Erling Smørgrav char *ldns_pkt_cert_algorithm2str(ldns_cert_algorithm cert_algorithm);
2617b5038d7SDag-Erling Smørgrav
2627b5038d7SDag-Erling Smørgrav /**
2637b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_A rdata element to string format and adds it to the output buffer
2647b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
2657b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
2667b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
2677b5038d7SDag-Erling Smørgrav */
2687b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_a(ldns_buffer *output, const ldns_rdf *rdf);
2697b5038d7SDag-Erling Smørgrav
2707b5038d7SDag-Erling Smørgrav /**
2717b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_AAAA rdata element to string format and adds it to the output buffer
2727b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
2737b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
2747b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
2757b5038d7SDag-Erling Smørgrav */
2767b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_aaaa(ldns_buffer *output, const ldns_rdf *rdf);
2777b5038d7SDag-Erling Smørgrav
2787b5038d7SDag-Erling Smørgrav /**
2797b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_STR rdata element to string format and adds it to the output buffer
2807b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
2817b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
2827b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
2837b5038d7SDag-Erling Smørgrav */
2847b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_str(ldns_buffer *output, const ldns_rdf *rdf);
2857b5038d7SDag-Erling Smørgrav
2867b5038d7SDag-Erling Smørgrav /**
2877b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_B64 rdata element to string format and adds it to the output buffer
2887b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
2897b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
2907b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
2917b5038d7SDag-Erling Smørgrav */
2927b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_b64(ldns_buffer *output, const ldns_rdf *rdf);
2937b5038d7SDag-Erling Smørgrav
2947b5038d7SDag-Erling Smørgrav /**
2957b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_B32_EXT rdata element to string format and adds it to the output buffer
2967b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
2977b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
2987b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
2997b5038d7SDag-Erling Smørgrav */
3007b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_b32_ext(ldns_buffer *output, const ldns_rdf *rdf);
3017b5038d7SDag-Erling Smørgrav
3027b5038d7SDag-Erling Smørgrav /**
3037b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_HEX rdata element to string format and adds it to the output buffer
3047b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
3057b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
3067b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
3077b5038d7SDag-Erling Smørgrav */
3087b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_hex(ldns_buffer *output, const ldns_rdf *rdf);
3097b5038d7SDag-Erling Smørgrav
3107b5038d7SDag-Erling Smørgrav /**
3117b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_TYPE rdata element to string format and adds it to the output buffer
3127b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
3137b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
3147b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
3157b5038d7SDag-Erling Smørgrav */
3167b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_type(ldns_buffer *output, const ldns_rdf *rdf);
3177b5038d7SDag-Erling Smørgrav
3187b5038d7SDag-Erling Smørgrav /**
3197b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_CLASS rdata element to string format and adds it to the output buffer
3207b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
3217b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
3227b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
3237b5038d7SDag-Erling Smørgrav */
3247b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_class(ldns_buffer *output, const ldns_rdf *rdf);
3257b5038d7SDag-Erling Smørgrav
3267b5038d7SDag-Erling Smørgrav /**
3277b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_ALG rdata element to string format and adds it to the output buffer
3287b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
3297b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
3307b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
3317b5038d7SDag-Erling Smørgrav */
3327b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_alg(ldns_buffer *output, const ldns_rdf *rdf);
3337b5038d7SDag-Erling Smørgrav
3347b5038d7SDag-Erling Smørgrav /**
3357b5038d7SDag-Erling Smørgrav * Converts an ldns_rr_type value to its string representation,
3367b5038d7SDag-Erling Smørgrav * and places it in the given buffer
3377b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
3387b5038d7SDag-Erling Smørgrav * \param[in] type the ldns_rr_type to convert
3397b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
3407b5038d7SDag-Erling Smørgrav */
3417b5038d7SDag-Erling Smørgrav ldns_status ldns_rr_type2buffer_str(ldns_buffer *output,
3427b5038d7SDag-Erling Smørgrav const ldns_rr_type type);
3437b5038d7SDag-Erling Smørgrav
3447b5038d7SDag-Erling Smørgrav /**
3457b5038d7SDag-Erling Smørgrav * Converts an ldns_rr_type value to its string representation,
3467b5038d7SDag-Erling Smørgrav * and returns that string. For unknown types, the string
3477b5038d7SDag-Erling Smørgrav * "TYPE<id>" is returned. This function allocates data that must be
3487b5038d7SDag-Erling Smørgrav * freed by the caller
3497b5038d7SDag-Erling Smørgrav * \param[in] type the ldns_rr_type to convert
3507b5038d7SDag-Erling Smørgrav * \return a newly allocated string
3517b5038d7SDag-Erling Smørgrav */
3527b5038d7SDag-Erling Smørgrav char *ldns_rr_type2str(const ldns_rr_type type);
3537b5038d7SDag-Erling Smørgrav
3547b5038d7SDag-Erling Smørgrav /**
3557b5038d7SDag-Erling Smørgrav * Converts an ldns_rr_class value to its string representation,
3567b5038d7SDag-Erling Smørgrav * and places it in the given buffer
3577b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
3587b5038d7SDag-Erling Smørgrav * \param[in] klass the ldns_rr_class to convert
3597b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
3607b5038d7SDag-Erling Smørgrav */
3617b5038d7SDag-Erling Smørgrav ldns_status ldns_rr_class2buffer_str(ldns_buffer *output,
3627b5038d7SDag-Erling Smørgrav const ldns_rr_class klass);
3637b5038d7SDag-Erling Smørgrav
3647b5038d7SDag-Erling Smørgrav /**
3657b5038d7SDag-Erling Smørgrav * Converts an ldns_rr_class value to its string representation,
3667b5038d7SDag-Erling Smørgrav * and returns that string. For unknown types, the string
3677b5038d7SDag-Erling Smørgrav * "CLASS<id>" is returned. This function allocates data that must be
3687b5038d7SDag-Erling Smørgrav * freed by the caller
3697b5038d7SDag-Erling Smørgrav * \param[in] klass the ldns_rr_class to convert
3707b5038d7SDag-Erling Smørgrav * \return a newly allocated string
3717b5038d7SDag-Erling Smørgrav */
3727b5038d7SDag-Erling Smørgrav char *ldns_rr_class2str(const ldns_rr_class klass);
3737b5038d7SDag-Erling Smørgrav
3747b5038d7SDag-Erling Smørgrav
3757b5038d7SDag-Erling Smørgrav /**
3767b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_CERT rdata element to string format and adds it to the output buffer
3777b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
3787b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
3797b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
3807b5038d7SDag-Erling Smørgrav */
3817b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_cert_alg(ldns_buffer *output, const ldns_rdf *rdf);
3827b5038d7SDag-Erling Smørgrav
3837b5038d7SDag-Erling Smørgrav /**
3847b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_LOC rdata element to string format and adds it to the output buffer
3857b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
3867b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
3877b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
3887b5038d7SDag-Erling Smørgrav */
3897b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_loc(ldns_buffer *output, const ldns_rdf *rdf);
3907b5038d7SDag-Erling Smørgrav
3917b5038d7SDag-Erling Smørgrav /**
3927b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_UNKNOWN rdata element to string format and adds it to the output buffer
3937b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
3947b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
3957b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
3967b5038d7SDag-Erling Smørgrav */
3977b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_unknown(ldns_buffer *output, const ldns_rdf *rdf);
3987b5038d7SDag-Erling Smørgrav
3997b5038d7SDag-Erling Smørgrav /**
4007b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_NSAP rdata element to string format and adds it to the output buffer
4017b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
4027b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
4037b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
4047b5038d7SDag-Erling Smørgrav */
4057b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_nsap(ldns_buffer *output, const ldns_rdf *rdf);
4067b5038d7SDag-Erling Smørgrav
4077b5038d7SDag-Erling Smørgrav /**
4087b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_ATMA rdata element to string format and adds it to the output buffer
4097b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
4107b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
4117b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
4127b5038d7SDag-Erling Smørgrav */
4137b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_atma(ldns_buffer *output, const ldns_rdf *rdf);
4147b5038d7SDag-Erling Smørgrav
4157b5038d7SDag-Erling Smørgrav /**
4167b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_WKS rdata element to string format and adds it to the output buffer
4177b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
4187b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
4197b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
4207b5038d7SDag-Erling Smørgrav */
4217b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_wks(ldns_buffer *output, const ldns_rdf *rdf);
4227b5038d7SDag-Erling Smørgrav
4237b5038d7SDag-Erling Smørgrav /**
4247b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_NSEC rdata element to string format and adds it to the output buffer
4257b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
4267b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
4277b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
4287b5038d7SDag-Erling Smørgrav */
4297b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_nsec(ldns_buffer *output, const ldns_rdf *rdf);
4307b5038d7SDag-Erling Smørgrav
4317b5038d7SDag-Erling Smørgrav /**
4327b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_PERIOD rdata element to string format and adds it to the output buffer
4337b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
4347b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
4357b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
4367b5038d7SDag-Erling Smørgrav */
4377b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_period(ldns_buffer *output, const ldns_rdf *rdf);
4387b5038d7SDag-Erling Smørgrav
4397b5038d7SDag-Erling Smørgrav /**
4407b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_TSIGTIME rdata element to string format and adds it to the output buffer
4417b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
4427b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
4437b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
4447b5038d7SDag-Erling Smørgrav */
4457b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_tsigtime(ldns_buffer *output, const ldns_rdf *rdf);
4467b5038d7SDag-Erling Smørgrav
4477b5038d7SDag-Erling Smørgrav /**
4487b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_APL rdata element to string format and adds it to the output buffer
4497b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
4507b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
4517b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
4527b5038d7SDag-Erling Smørgrav */
4537b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_apl(ldns_buffer *output, const ldns_rdf *rdf);
4547b5038d7SDag-Erling Smørgrav
4557b5038d7SDag-Erling Smørgrav /**
4567b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_INT16_DATA rdata element to string format and adds it to the output buffer
4577b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
4587b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
4597b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
4607b5038d7SDag-Erling Smørgrav */
4617b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_int16_data(ldns_buffer *output, const ldns_rdf *rdf);
4627b5038d7SDag-Erling Smørgrav
4637b5038d7SDag-Erling Smørgrav /**
4647b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_IPSECKEY rdata element to string format and adds it to the output buffer
4657b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
4667b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
4677b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
4687b5038d7SDag-Erling Smørgrav */
4697b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_ipseckey(ldns_buffer *output, const ldns_rdf *rdf);
4707b5038d7SDag-Erling Smørgrav
4717b5038d7SDag-Erling Smørgrav /**
4727b5038d7SDag-Erling Smørgrav * Converts the data in the rdata field to presentation
4737b5038d7SDag-Erling Smørgrav * format (as char *) and appends it to the given buffer
4747b5038d7SDag-Erling Smørgrav *
4757b5038d7SDag-Erling Smørgrav * \param[in] output pointer to the buffer to append the data to
4767b5038d7SDag-Erling Smørgrav * \param[in] rdf the pointer to the rdafa field containing the data
4777b5038d7SDag-Erling Smørgrav * \return status
4787b5038d7SDag-Erling Smørgrav */
4797b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str(ldns_buffer *output, const ldns_rdf *rdf);
4807b5038d7SDag-Erling Smørgrav
4817b5038d7SDag-Erling Smørgrav /**
4827b5038d7SDag-Erling Smørgrav * Converts the data in the resource record to presentation
4837b5038d7SDag-Erling Smørgrav * format (as char *) and appends it to the given buffer.
4847b5038d7SDag-Erling Smørgrav * The presentation format of DNSKEY record is annotated with comments giving
4857b5038d7SDag-Erling Smørgrav * the id, type and size of the key.
4867b5038d7SDag-Erling Smørgrav *
4877b5038d7SDag-Erling Smørgrav * \param[in] output pointer to the buffer to append the data to
4887b5038d7SDag-Erling Smørgrav * \param[in] rr the pointer to the rr field to convert
4897b5038d7SDag-Erling Smørgrav * \return status
4907b5038d7SDag-Erling Smørgrav */
4917b5038d7SDag-Erling Smørgrav ldns_status ldns_rr2buffer_str(ldns_buffer *output, const ldns_rr *rr);
4927b5038d7SDag-Erling Smørgrav
4937b5038d7SDag-Erling Smørgrav /**
4947b5038d7SDag-Erling Smørgrav * Converts the data in the resource record to presentation
4957b5038d7SDag-Erling Smørgrav * format (as char *) and appends it to the given buffer.
4967b5038d7SDag-Erling Smørgrav * The presentation format is annotated with comments giving
4977b5038d7SDag-Erling Smørgrav * additional information on the record.
4987b5038d7SDag-Erling Smørgrav *
4997b5038d7SDag-Erling Smørgrav * \param[in] output pointer to the buffer to append the data to
5007b5038d7SDag-Erling Smørgrav * \param[in] fmt how to format the textual representation of the
5017b5038d7SDag-Erling Smørgrav * resource record.
5027b5038d7SDag-Erling Smørgrav * \param[in] rr the pointer to the rr field to convert
5037b5038d7SDag-Erling Smørgrav * \return status
5047b5038d7SDag-Erling Smørgrav */
5057b5038d7SDag-Erling Smørgrav ldns_status ldns_rr2buffer_str_fmt(ldns_buffer *output,
5067b5038d7SDag-Erling Smørgrav const ldns_output_format *fmt, const ldns_rr *rr);
5077b5038d7SDag-Erling Smørgrav
5087b5038d7SDag-Erling Smørgrav /**
5097b5038d7SDag-Erling Smørgrav * Converts the data in the DNS packet to presentation
5107b5038d7SDag-Erling Smørgrav * format (as char *) and appends it to the given buffer
5117b5038d7SDag-Erling Smørgrav *
5127b5038d7SDag-Erling Smørgrav * \param[in] output pointer to the buffer to append the data to
5137b5038d7SDag-Erling Smørgrav * \param[in] pkt the pointer to the packet to convert
5147b5038d7SDag-Erling Smørgrav * \return status
5157b5038d7SDag-Erling Smørgrav */
5167b5038d7SDag-Erling Smørgrav ldns_status ldns_pkt2buffer_str(ldns_buffer *output, const ldns_pkt *pkt);
5177b5038d7SDag-Erling Smørgrav
5187b5038d7SDag-Erling Smørgrav /**
519*5afab0e5SDag-Erling Smørgrav * Converts the list of EDNS options to presentation
520*5afab0e5SDag-Erling Smørgrav * format (as char *) and appends it to the given buffer
521*5afab0e5SDag-Erling Smørgrav *
522*5afab0e5SDag-Erling Smørgrav * \param[in] output pointer to the buffer to append the data to
523*5afab0e5SDag-Erling Smørgrav * \param[in] edns_list the list of EDNS options
524*5afab0e5SDag-Erling Smørgrav * \return status
525*5afab0e5SDag-Erling Smørgrav */
526*5afab0e5SDag-Erling Smørgrav ldns_status ldns_edns_option_list2buffer_str(ldns_buffer *output,
527*5afab0e5SDag-Erling Smørgrav ldns_edns_option_list* edns_list);
528*5afab0e5SDag-Erling Smørgrav
529*5afab0e5SDag-Erling Smørgrav /**
5307b5038d7SDag-Erling Smørgrav * Converts the data in the DNS packet to presentation
5317b5038d7SDag-Erling Smørgrav * format (as char *) and appends it to the given buffer
5327b5038d7SDag-Erling Smørgrav *
5337b5038d7SDag-Erling Smørgrav * \param[in] output pointer to the buffer to append the data to
5347b5038d7SDag-Erling Smørgrav * \param[in] fmt how to format the textual representation of the packet
5357b5038d7SDag-Erling Smørgrav * \param[in] pkt the pointer to the packet to convert
5367b5038d7SDag-Erling Smørgrav * \return status
5377b5038d7SDag-Erling Smørgrav */
5387b5038d7SDag-Erling Smørgrav ldns_status ldns_pkt2buffer_str_fmt(ldns_buffer *output,
5397b5038d7SDag-Erling Smørgrav const ldns_output_format *fmt, const ldns_pkt *pkt);
5407b5038d7SDag-Erling Smørgrav
5417b5038d7SDag-Erling Smørgrav /**
5427b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_NSEC3_SALT rdata element to string format and adds it to the output buffer
5437b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
5447b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
5457b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
5467b5038d7SDag-Erling Smørgrav */
5477b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_nsec3_salt(ldns_buffer *output, const ldns_rdf *rdf);
5487b5038d7SDag-Erling Smørgrav
5497b5038d7SDag-Erling Smørgrav
5507b5038d7SDag-Erling Smørgrav /**
5517b5038d7SDag-Erling Smørgrav * Converts the data in the DNS packet to presentation
5527b5038d7SDag-Erling Smørgrav * format (as char *) and appends it to the given buffer
5537b5038d7SDag-Erling Smørgrav *
5547b5038d7SDag-Erling Smørgrav * \param[in] output pointer to the buffer to append the data to
5557b5038d7SDag-Erling Smørgrav * \param[in] k the pointer to the private key to convert
5567b5038d7SDag-Erling Smørgrav * \return status
5577b5038d7SDag-Erling Smørgrav */
5587b5038d7SDag-Erling Smørgrav ldns_status ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k);
5597b5038d7SDag-Erling Smørgrav
5607b5038d7SDag-Erling Smørgrav /**
5617b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_INT8 rdata element to string format and adds it to the output buffer
5627b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
5637b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
5647b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
5657b5038d7SDag-Erling Smørgrav */
5667b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_int8(ldns_buffer *output, const ldns_rdf *rdf);
5677b5038d7SDag-Erling Smørgrav
5687b5038d7SDag-Erling Smørgrav /**
5697b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_INT16 rdata element to string format and adds it to the output buffer
5707b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
5717b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
5727b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
5737b5038d7SDag-Erling Smørgrav */
5747b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_int16(ldns_buffer *output, const ldns_rdf *rdf);
5757b5038d7SDag-Erling Smørgrav
5767b5038d7SDag-Erling Smørgrav /**
5777b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_INT32 rdata element to string format and adds it to the output buffer
5787b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
5797b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
5807b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
5817b5038d7SDag-Erling Smørgrav */
5827b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_int32(ldns_buffer *output, const ldns_rdf *rdf);
5837b5038d7SDag-Erling Smørgrav
5847b5038d7SDag-Erling Smørgrav /**
5857b5038d7SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_TIME rdata element to string format and adds it to the output buffer
5867b5038d7SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
5877b5038d7SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
5887b5038d7SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
5897b5038d7SDag-Erling Smørgrav */
5907b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_time(ldns_buffer *output, const ldns_rdf *rdf);
5917b5038d7SDag-Erling Smørgrav
5927b5038d7SDag-Erling Smørgrav /**
59317d15b25SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_ILNP64 rdata element to 4 hexadecimal numbers
59417d15b25SDag-Erling Smørgrav * separated by colons and adds it to the output buffer
59517d15b25SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
59617d15b25SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
59717d15b25SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
59817d15b25SDag-Erling Smørgrav */
59917d15b25SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_ilnp64(ldns_buffer *output,
60017d15b25SDag-Erling Smørgrav const ldns_rdf *rdf);
60117d15b25SDag-Erling Smørgrav
60217d15b25SDag-Erling Smørgrav /**
60317d15b25SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_EUI48 rdata element to 6 hexadecimal numbers
60417d15b25SDag-Erling Smørgrav * separated by dashes and adds it to the output buffer
60517d15b25SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
60617d15b25SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
60717d15b25SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
60817d15b25SDag-Erling Smørgrav */
60917d15b25SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_eui48(ldns_buffer *output,
61017d15b25SDag-Erling Smørgrav const ldns_rdf *rdf);
61117d15b25SDag-Erling Smørgrav
61217d15b25SDag-Erling Smørgrav /**
61317d15b25SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_EUI64 rdata element to 8 hexadecimal numbers
61417d15b25SDag-Erling Smørgrav * separated by dashes and adds it to the output buffer
61517d15b25SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
61617d15b25SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
61717d15b25SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
61817d15b25SDag-Erling Smørgrav */
61917d15b25SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_eui64(ldns_buffer *output,
62017d15b25SDag-Erling Smørgrav const ldns_rdf *rdf);
62117d15b25SDag-Erling Smørgrav
62217d15b25SDag-Erling Smørgrav /**
62317d15b25SDag-Erling Smørgrav * Adds the LDNS_RDF_TYPE_TAG rdata to the output buffer,
62417d15b25SDag-Erling Smørgrav * provided it contains only alphanumeric characters.
62517d15b25SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
62617d15b25SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
62717d15b25SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
62817d15b25SDag-Erling Smørgrav */
62917d15b25SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_tag(ldns_buffer *output,
63017d15b25SDag-Erling Smørgrav const ldns_rdf *rdf);
63117d15b25SDag-Erling Smørgrav
63217d15b25SDag-Erling Smørgrav /**
63317d15b25SDag-Erling Smørgrav * Adds the LDNS_RDF_TYPE_LONG_STR rdata to the output buffer, in-between
63417d15b25SDag-Erling Smørgrav * double quotes and all non printable characters properly escaped.
63517d15b25SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
63617d15b25SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
63717d15b25SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
63817d15b25SDag-Erling Smørgrav */
63917d15b25SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_long_str(ldns_buffer *output,
64017d15b25SDag-Erling Smørgrav const ldns_rdf *rdf);
64117d15b25SDag-Erling Smørgrav
64217d15b25SDag-Erling Smørgrav /**
64317d15b25SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_HIP rdata element to presentation format for
64417d15b25SDag-Erling Smørgrav * the algorithm, HIT and Public Key and adds it the output buffer .
64517d15b25SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
64617d15b25SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
64717d15b25SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
64817d15b25SDag-Erling Smørgrav */
64917d15b25SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_hip(ldns_buffer *output,
65017d15b25SDag-Erling Smørgrav const ldns_rdf *rdf);
65117d15b25SDag-Erling Smørgrav
65217d15b25SDag-Erling Smørgrav /**
653*5afab0e5SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_AMTRELAY rdata element to presentation format for
654*5afab0e5SDag-Erling Smørgrav * the precedence, D-bit, type and relay and adds it to the output buffer
655*5afab0e5SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
656*5afab0e5SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
657*5afab0e5SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
658*5afab0e5SDag-Erling Smørgrav */
659*5afab0e5SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_amtrelay(ldns_buffer *output,
660*5afab0e5SDag-Erling Smørgrav const ldns_rdf *rdf);
661*5afab0e5SDag-Erling Smørgrav
662*5afab0e5SDag-Erling Smørgrav /**
663*5afab0e5SDag-Erling Smørgrav * Converts an LDNS_RDF_TYPE_SVCPARAMS rdata element to presentation format.
664*5afab0e5SDag-Erling Smørgrav * \param[in] *rdf The rdata to convert
665*5afab0e5SDag-Erling Smørgrav * \param[in] *output The buffer to add the data to
666*5afab0e5SDag-Erling Smørgrav * \return LDNS_STATUS_OK on success, and error status on failure
667*5afab0e5SDag-Erling Smørgrav */
668*5afab0e5SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_svcparams(ldns_buffer *output,
669*5afab0e5SDag-Erling Smørgrav const ldns_rdf *rdf);
670*5afab0e5SDag-Erling Smørgrav
671*5afab0e5SDag-Erling Smørgrav /**
6727b5038d7SDag-Erling Smørgrav * Converts the data in the rdata field to presentation format and
6737b5038d7SDag-Erling Smørgrav * returns that as a char *.
6747b5038d7SDag-Erling Smørgrav * Remember to free it.
6757b5038d7SDag-Erling Smørgrav *
6767b5038d7SDag-Erling Smørgrav * \param[in] rdf The rdata field to convert
6777b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
6787b5038d7SDag-Erling Smørgrav */
6797b5038d7SDag-Erling Smørgrav char *ldns_rdf2str(const ldns_rdf *rdf);
6807b5038d7SDag-Erling Smørgrav
6817b5038d7SDag-Erling Smørgrav /**
6827b5038d7SDag-Erling Smørgrav * Converts the data in the resource record to presentation format and
6837b5038d7SDag-Erling Smørgrav * returns that as a char *.
6847b5038d7SDag-Erling Smørgrav * Remember to free it.
6857b5038d7SDag-Erling Smørgrav *
6867b5038d7SDag-Erling Smørgrav * \param[in] rr The rdata field to convert
6877b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
6887b5038d7SDag-Erling Smørgrav */
6897b5038d7SDag-Erling Smørgrav char *ldns_rr2str(const ldns_rr *rr);
6907b5038d7SDag-Erling Smørgrav
6917b5038d7SDag-Erling Smørgrav /**
6927b5038d7SDag-Erling Smørgrav * Converts the data in the resource record to presentation format and
6937b5038d7SDag-Erling Smørgrav * returns that as a char *.
6947b5038d7SDag-Erling Smørgrav * Remember to free it.
6957b5038d7SDag-Erling Smørgrav *
6967b5038d7SDag-Erling Smørgrav * \param[in] fmt how to format the resource record
6977b5038d7SDag-Erling Smørgrav * \param[in] rr The rdata field to convert
6987b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
6997b5038d7SDag-Erling Smørgrav */
7007b5038d7SDag-Erling Smørgrav char *ldns_rr2str_fmt(const ldns_output_format *fmt, const ldns_rr *rr);
7017b5038d7SDag-Erling Smørgrav
7027b5038d7SDag-Erling Smørgrav /**
7037b5038d7SDag-Erling Smørgrav * Converts the data in the DNS packet to presentation format and
7047b5038d7SDag-Erling Smørgrav * returns that as a char *.
7057b5038d7SDag-Erling Smørgrav * Remember to free it.
7067b5038d7SDag-Erling Smørgrav *
7077b5038d7SDag-Erling Smørgrav * \param[in] pkt The rdata field to convert
7087b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
7097b5038d7SDag-Erling Smørgrav */
7107b5038d7SDag-Erling Smørgrav char *ldns_pkt2str(const ldns_pkt *pkt);
7117b5038d7SDag-Erling Smørgrav
7127b5038d7SDag-Erling Smørgrav /**
7137b5038d7SDag-Erling Smørgrav * Converts the data in the DNS packet to presentation format and
7147b5038d7SDag-Erling Smørgrav * returns that as a char *.
7157b5038d7SDag-Erling Smørgrav * Remember to free it.
7167b5038d7SDag-Erling Smørgrav *
7177b5038d7SDag-Erling Smørgrav * \param[in] fmt how to format the packet
7187b5038d7SDag-Erling Smørgrav * \param[in] pkt The rdata field to convert
7197b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
7207b5038d7SDag-Erling Smørgrav */
7217b5038d7SDag-Erling Smørgrav char *ldns_pkt2str_fmt(const ldns_output_format *fmt, const ldns_pkt *pkt);
7227b5038d7SDag-Erling Smørgrav
7237b5038d7SDag-Erling Smørgrav /**
7247b5038d7SDag-Erling Smørgrav * Converts a private key to the test presentation fmt and
7257b5038d7SDag-Erling Smørgrav * returns that as a char *.
7267b5038d7SDag-Erling Smørgrav * Remember to free it.
7277b5038d7SDag-Erling Smørgrav *
7287b5038d7SDag-Erling Smørgrav * \param[in] k the key to convert to text
7297b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
7307b5038d7SDag-Erling Smørgrav */
7317b5038d7SDag-Erling Smørgrav char *ldns_key2str(const ldns_key *k);
7327b5038d7SDag-Erling Smørgrav
7337b5038d7SDag-Erling Smørgrav /**
7347b5038d7SDag-Erling Smørgrav * Converts a list of resource records to presentation format
7357b5038d7SDag-Erling Smørgrav * and returns that as a char *.
7367b5038d7SDag-Erling Smørgrav * Remember to free it.
7377b5038d7SDag-Erling Smørgrav *
7387b5038d7SDag-Erling Smørgrav * \param[in] rr_list the rr_list to convert to text
7397b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
7407b5038d7SDag-Erling Smørgrav */
7417b5038d7SDag-Erling Smørgrav char *ldns_rr_list2str(const ldns_rr_list *rr_list);
7427b5038d7SDag-Erling Smørgrav
7437b5038d7SDag-Erling Smørgrav /**
7447b5038d7SDag-Erling Smørgrav * Converts a list of resource records to presentation format
7457b5038d7SDag-Erling Smørgrav * and returns that as a char *.
7467b5038d7SDag-Erling Smørgrav * Remember to free it.
7477b5038d7SDag-Erling Smørgrav *
7487b5038d7SDag-Erling Smørgrav * \param[in] fmt how to format the list of resource records
7497b5038d7SDag-Erling Smørgrav * \param[in] rr_list the rr_list to convert to text
7507b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
7517b5038d7SDag-Erling Smørgrav */
7527b5038d7SDag-Erling Smørgrav char *ldns_rr_list2str_fmt(
7537b5038d7SDag-Erling Smørgrav const ldns_output_format *fmt, const ldns_rr_list *rr_list);
7547b5038d7SDag-Erling Smørgrav
7557b5038d7SDag-Erling Smørgrav /**
7562787e39aSDag-Erling Smørgrav * Returns a copy of the data in the buffer as a null terminated
7572787e39aSDag-Erling Smørgrav * char * string. The returned string must be freed by the caller.
7582787e39aSDag-Erling Smørgrav * The buffer must be in write modus and may thus not have been flipped.
7597b5038d7SDag-Erling Smørgrav *
7607b5038d7SDag-Erling Smørgrav * \param[in] buffer buffer containing char * data
7617b5038d7SDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
7627b5038d7SDag-Erling Smørgrav */
7637b5038d7SDag-Erling Smørgrav char *ldns_buffer2str(ldns_buffer *buffer);
7647b5038d7SDag-Erling Smørgrav
7657b5038d7SDag-Erling Smørgrav /**
7662787e39aSDag-Erling Smørgrav * Exports and returns the data in the buffer as a null terminated
7672787e39aSDag-Erling Smørgrav * char * string. The returned string must be freed by the caller.
7682787e39aSDag-Erling Smørgrav * The buffer must be in write modus and may thus not have been flipped.
7692787e39aSDag-Erling Smørgrav * The buffer is fixed after this function returns.
7702787e39aSDag-Erling Smørgrav *
7712787e39aSDag-Erling Smørgrav * \param[in] buffer buffer containing char * data
7722787e39aSDag-Erling Smørgrav * \return null terminated char * data, or NULL on error
7732787e39aSDag-Erling Smørgrav */
7742787e39aSDag-Erling Smørgrav char *ldns_buffer_export2str(ldns_buffer *buffer);
7752787e39aSDag-Erling Smørgrav
7762787e39aSDag-Erling Smørgrav /**
7777b5038d7SDag-Erling Smørgrav * Prints the data in the rdata field to the given file stream
7787b5038d7SDag-Erling Smørgrav * (in presentation format)
7797b5038d7SDag-Erling Smørgrav *
7807b5038d7SDag-Erling Smørgrav * \param[in] output the file stream to print to
7817b5038d7SDag-Erling Smørgrav * \param[in] rdf the rdata field to print
7827b5038d7SDag-Erling Smørgrav * \return void
7837b5038d7SDag-Erling Smørgrav */
7847b5038d7SDag-Erling Smørgrav void ldns_rdf_print(FILE *output, const ldns_rdf *rdf);
7857b5038d7SDag-Erling Smørgrav
7867b5038d7SDag-Erling Smørgrav /**
7877b5038d7SDag-Erling Smørgrav * Prints the data in the resource record to the given file stream
7887b5038d7SDag-Erling Smørgrav * (in presentation format)
7897b5038d7SDag-Erling Smørgrav *
7907b5038d7SDag-Erling Smørgrav * \param[in] output the file stream to print to
7917b5038d7SDag-Erling Smørgrav * \param[in] rr the resource record to print
7927b5038d7SDag-Erling Smørgrav * \return void
7937b5038d7SDag-Erling Smørgrav */
7947b5038d7SDag-Erling Smørgrav void ldns_rr_print(FILE *output, const ldns_rr *rr);
7957b5038d7SDag-Erling Smørgrav
7967b5038d7SDag-Erling Smørgrav /**
7977b5038d7SDag-Erling Smørgrav * Prints the data in the resource record to the given file stream
7987b5038d7SDag-Erling Smørgrav * (in presentation format)
7997b5038d7SDag-Erling Smørgrav *
8007b5038d7SDag-Erling Smørgrav * \param[in] output the file stream to print to
8017b5038d7SDag-Erling Smørgrav * \param[in] fmt format of the textual representation
8027b5038d7SDag-Erling Smørgrav * \param[in] rr the resource record to print
8037b5038d7SDag-Erling Smørgrav * \return void
8047b5038d7SDag-Erling Smørgrav */
8057b5038d7SDag-Erling Smørgrav void ldns_rr_print_fmt(FILE *output,
8067b5038d7SDag-Erling Smørgrav const ldns_output_format *fmt, const ldns_rr *rr);
8077b5038d7SDag-Erling Smørgrav
8087b5038d7SDag-Erling Smørgrav /**
8097b5038d7SDag-Erling Smørgrav * Prints the data in the DNS packet to the given file stream
8107b5038d7SDag-Erling Smørgrav * (in presentation format)
8117b5038d7SDag-Erling Smørgrav *
8127b5038d7SDag-Erling Smørgrav * \param[in] output the file stream to print to
8137b5038d7SDag-Erling Smørgrav * \param[in] pkt the packet to print
8147b5038d7SDag-Erling Smørgrav * \return void
8157b5038d7SDag-Erling Smørgrav */
8167b5038d7SDag-Erling Smørgrav void ldns_pkt_print(FILE *output, const ldns_pkt *pkt);
8177b5038d7SDag-Erling Smørgrav
8187b5038d7SDag-Erling Smørgrav /**
8197b5038d7SDag-Erling Smørgrav * Prints the data in the DNS packet to the given file stream
8207b5038d7SDag-Erling Smørgrav * (in presentation format)
8217b5038d7SDag-Erling Smørgrav *
8227b5038d7SDag-Erling Smørgrav * \param[in] output the file stream to print to
8237b5038d7SDag-Erling Smørgrav * \param[in] fmt format of the textual representation
8247b5038d7SDag-Erling Smørgrav * \param[in] pkt the packet to print
8257b5038d7SDag-Erling Smørgrav * \return void
8267b5038d7SDag-Erling Smørgrav */
8277b5038d7SDag-Erling Smørgrav void ldns_pkt_print_fmt(FILE *output,
8287b5038d7SDag-Erling Smørgrav const ldns_output_format *fmt, const ldns_pkt *pkt);
8297b5038d7SDag-Erling Smørgrav
8307b5038d7SDag-Erling Smørgrav /**
8317b5038d7SDag-Erling Smørgrav * Converts a rr_list to presentation format and appends it to
8327b5038d7SDag-Erling Smørgrav * the output buffer
8337b5038d7SDag-Erling Smørgrav * \param[in] output the buffer to append output to
8347b5038d7SDag-Erling Smørgrav * \param[in] list the ldns_rr_list to print
8357b5038d7SDag-Erling Smørgrav * \return ldns_status
8367b5038d7SDag-Erling Smørgrav */
8377b5038d7SDag-Erling Smørgrav ldns_status ldns_rr_list2buffer_str(ldns_buffer *output, const ldns_rr_list *list);
8387b5038d7SDag-Erling Smørgrav
8397b5038d7SDag-Erling Smørgrav /**
8407b5038d7SDag-Erling Smørgrav * Converts a rr_list to presentation format and appends it to
8417b5038d7SDag-Erling Smørgrav * the output buffer
8427b5038d7SDag-Erling Smørgrav * \param[in] output the buffer to append output to
8437b5038d7SDag-Erling Smørgrav * \param[in] fmt format of the textual representation
8447b5038d7SDag-Erling Smørgrav * \param[in] list the ldns_rr_list to print
8457b5038d7SDag-Erling Smørgrav * \return ldns_status
8467b5038d7SDag-Erling Smørgrav */
8477b5038d7SDag-Erling Smørgrav ldns_status ldns_rr_list2buffer_str_fmt(ldns_buffer *output,
8487b5038d7SDag-Erling Smørgrav const ldns_output_format *fmt, const ldns_rr_list *list);
8497b5038d7SDag-Erling Smørgrav
8507b5038d7SDag-Erling Smørgrav /**
8517b5038d7SDag-Erling Smørgrav * Converts the header of a packet to presentation format and appends it to
8527b5038d7SDag-Erling Smørgrav * the output buffer
8537b5038d7SDag-Erling Smørgrav * \param[in] output the buffer to append output to
8547b5038d7SDag-Erling Smørgrav * \param[in] pkt the packet to convert the header of
8557b5038d7SDag-Erling Smørgrav * \return ldns_status
8567b5038d7SDag-Erling Smørgrav */
8577b5038d7SDag-Erling Smørgrav ldns_status ldns_pktheader2buffer_str(ldns_buffer *output, const ldns_pkt *pkt);
8587b5038d7SDag-Erling Smørgrav
8597b5038d7SDag-Erling Smørgrav /**
8607b5038d7SDag-Erling Smørgrav * print a rr_list to output
8617b5038d7SDag-Erling Smørgrav * \param[in] output the fd to print to
8627b5038d7SDag-Erling Smørgrav * \param[in] list the rr_list to print
8637b5038d7SDag-Erling Smørgrav */
8647b5038d7SDag-Erling Smørgrav void ldns_rr_list_print(FILE *output, const ldns_rr_list *list);
8657b5038d7SDag-Erling Smørgrav
8667b5038d7SDag-Erling Smørgrav /**
8677b5038d7SDag-Erling Smørgrav * print a rr_list to output
8687b5038d7SDag-Erling Smørgrav * \param[in] output the fd to print to
8697b5038d7SDag-Erling Smørgrav * \param[in] fmt format of the textual representation
8707b5038d7SDag-Erling Smørgrav * \param[in] list the rr_list to print
8717b5038d7SDag-Erling Smørgrav */
8727b5038d7SDag-Erling Smørgrav void ldns_rr_list_print_fmt(FILE *output,
8737b5038d7SDag-Erling Smørgrav const ldns_output_format *fmt, const ldns_rr_list *list);
8747b5038d7SDag-Erling Smørgrav
8757b5038d7SDag-Erling Smørgrav /**
8767b5038d7SDag-Erling Smørgrav * Print a resolver (in sofar that is possible) state
8777b5038d7SDag-Erling Smørgrav * to output.
8787b5038d7SDag-Erling Smørgrav * \param[in] output the fd to print to
8797b5038d7SDag-Erling Smørgrav * \param[in] r the resolver to print
8807b5038d7SDag-Erling Smørgrav */
8817b5038d7SDag-Erling Smørgrav void ldns_resolver_print(FILE *output, const ldns_resolver *r);
8827b5038d7SDag-Erling Smørgrav
8837b5038d7SDag-Erling Smørgrav /**
8847b5038d7SDag-Erling Smørgrav * Print a resolver (in sofar that is possible) state
8857b5038d7SDag-Erling Smørgrav * to output.
8867b5038d7SDag-Erling Smørgrav * \param[in] output the fd to print to
8877b5038d7SDag-Erling Smørgrav * \param[in] fmt format of the textual representation
8887b5038d7SDag-Erling Smørgrav * \param[in] r the resolver to print
8897b5038d7SDag-Erling Smørgrav */
8907b5038d7SDag-Erling Smørgrav void ldns_resolver_print_fmt(FILE *output,
8917b5038d7SDag-Erling Smørgrav const ldns_output_format *fmt, const ldns_resolver *r);
8927b5038d7SDag-Erling Smørgrav
8937b5038d7SDag-Erling Smørgrav /**
8947b5038d7SDag-Erling Smørgrav * Print a zone structure * to output. Note the SOA record
8957b5038d7SDag-Erling Smørgrav * is included in this output
8967b5038d7SDag-Erling Smørgrav * \param[in] output the fd to print to
8977b5038d7SDag-Erling Smørgrav * \param[in] z the zone to print
8987b5038d7SDag-Erling Smørgrav */
8997b5038d7SDag-Erling Smørgrav void ldns_zone_print(FILE *output, const ldns_zone *z);
9007b5038d7SDag-Erling Smørgrav
9017b5038d7SDag-Erling Smørgrav /**
9027b5038d7SDag-Erling Smørgrav * Print a zone structure * to output. Note the SOA record
9037b5038d7SDag-Erling Smørgrav * is included in this output
9047b5038d7SDag-Erling Smørgrav * \param[in] output the fd to print to
9057b5038d7SDag-Erling Smørgrav * \param[in] fmt format of the textual representation
9067b5038d7SDag-Erling Smørgrav * \param[in] z the zone to print
9077b5038d7SDag-Erling Smørgrav */
9087b5038d7SDag-Erling Smørgrav void ldns_zone_print_fmt(FILE *output,
9097b5038d7SDag-Erling Smørgrav const ldns_output_format *fmt, const ldns_zone *z);
9107b5038d7SDag-Erling Smørgrav
9117b5038d7SDag-Erling Smørgrav /**
9127b5038d7SDag-Erling Smørgrav * Print the ldns_rdf containing a dname to the buffer
9137b5038d7SDag-Erling Smørgrav * \param[in] output the buffer to print to
9147b5038d7SDag-Erling Smørgrav * \param[in] dname the dname to print
9157b5038d7SDag-Erling Smørgrav * \return ldns_status message if the printing succeeded
9167b5038d7SDag-Erling Smørgrav */
9177b5038d7SDag-Erling Smørgrav ldns_status ldns_rdf2buffer_str_dname(ldns_buffer *output, const ldns_rdf *dname);
9187b5038d7SDag-Erling Smørgrav
9197b5038d7SDag-Erling Smørgrav #ifdef __cplusplus
9207b5038d7SDag-Erling Smørgrav }
9217b5038d7SDag-Erling Smørgrav #endif
9227b5038d7SDag-Erling Smørgrav
9237b5038d7SDag-Erling Smørgrav #endif /* LDNS_HOST2STR_H */
924