host2str.h
Go to the documentation of this file.
1 
18 #ifndef LDNS_HOST2STR_H
19 #define LDNS_HOST2STR_H
20 
21 #include <ldns/common.h>
22 #include <ldns/error.h>
23 #include <ldns/rr.h>
24 #include <ldns/rdata.h>
25 #include <ldns/packet.h>
26 #include <ldns/buffer.h>
27 #include <ldns/resolver.h>
28 #include <ldns/zone.h>
29 #include <ctype.h>
30 
31 #include "ldns/util.h"
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
37 #define LDNS_APL_IP4 1
38 #define LDNS_APL_IP6 2
39 #define LDNS_APL_MASK 0x7f
40 #define LDNS_APL_NEGATION 0x80
41 
46 #define LDNS_COMMENT_NULLS 0x0001
47 
48 #define LDNS_COMMENT_KEY_ID 0x0002
49 
50 #define LDNS_COMMENT_KEY_TYPE 0x0004
51 
52 #define LDNS_COMMENT_KEY_SIZE 0x0008
53 
54 #define LDNS_COMMENT_KEY (LDNS_COMMENT_KEY_ID \
55  |LDNS_COMMENT_KEY_TYPE\
56  |LDNS_COMMENT_KEY_SIZE)
57 
58 #define LDNS_COMMENT_BUBBLEBABBLE 0x0010
59 
60 #define LDNS_COMMENT_FLAGS 0x0020
61 
62 #define LDNS_COMMENT_NSEC3_CHAIN 0x0040
63 
64 #define LDNS_COMMENT_LAYOUT 0x0080
65 
66 #define LDNS_COMMENT_RRSIGS 0x0100
67 #define LDNS_FMT_ZEROIZE_RRSIGS 0x0200
68 #define LDNS_FMT_PAD_SOA_SERIAL 0x0400
69 
81 {
83  int flags;
85  void *data;
86 };
88 
109 
119 
129 
139  ldns_algorithm algorithm);
140 
150  ldns_cert_algorithm cert_algorithm);
151 
152 
162 
172 
181 char *ldns_pkt_algorithm2str(ldns_algorithm algorithm);
182 
192 
200 
208 
216 
224 
232 
240 
248 
256 
264 
273  const ldns_rr_type type);
274 
283 char *ldns_rr_type2str(const ldns_rr_type type);
284 
293  const ldns_rr_class klass);
294 
303 char *ldns_rr_class2str(const ldns_rr_class klass);
304 
305 
313 
321 
329 
337 
345 
353 
361 
369 
377 
385 
393 
401 
409 
410 
420 
432 
446  const ldns_output_format *fmt, const ldns_rr *rr);
447 
457 
468  const ldns_output_format *fmt, const ldns_pkt *pkt);
469 
477 
478 
488 
496 
504 
512 
520 
529 char *ldns_rdf2str(const ldns_rdf *rdf);
530 
539 char *ldns_rr2str(const ldns_rr *rr);
540 
550 char *ldns_rr2str_fmt(const ldns_output_format *fmt, const ldns_rr *rr);
551 
560 char *ldns_pkt2str(const ldns_pkt *pkt);
561 
571 char *ldns_pkt2str_fmt(const ldns_output_format *fmt, const ldns_pkt *pkt);
572 
581 char *ldns_key2str(const ldns_key *k);
582 
591 char *ldns_rr_list2str(const ldns_rr_list *rr_list);
592 
603  const ldns_output_format *fmt, const ldns_rr_list *rr_list);
604 
613 char *ldns_buffer2str(ldns_buffer *buffer);
614 
624 char *ldns_buffer_export2str(ldns_buffer *buffer);
625 
634 void ldns_rdf_print(FILE *output, const ldns_rdf *rdf);
635 
644 void ldns_rr_print(FILE *output, const ldns_rr *rr);
645 
655 void ldns_rr_print_fmt(FILE *output,
656  const ldns_output_format *fmt, const ldns_rr *rr);
657 
666 void ldns_pkt_print(FILE *output, const ldns_pkt *pkt);
667 
677 void ldns_pkt_print_fmt(FILE *output,
678  const ldns_output_format *fmt, const ldns_pkt *pkt);
679 
688 
698  const ldns_output_format *fmt, const ldns_rr_list *list);
699 
708 
714 void ldns_rr_list_print(FILE *output, const ldns_rr_list *list);
715 
722 void ldns_rr_list_print_fmt(FILE *output,
723  const ldns_output_format *fmt, const ldns_rr_list *list);
724 
731 void ldns_resolver_print(FILE *output, const ldns_resolver *r);
732 
740 void ldns_resolver_print_fmt(FILE *output,
741  const ldns_output_format *fmt, const ldns_resolver *r);
742 
749 void ldns_zone_print(FILE *output, const ldns_zone *z);
750 
758 void ldns_zone_print_fmt(FILE *output,
759  const ldns_output_format *fmt, const ldns_zone *z);
760 
768 
769 #ifdef __cplusplus
770 }
771 #endif
772 
773 #endif /* LDNS_HOST2STR_H */
implementation of buffers to ease operations
Definition: buffer.h:50
void ldns_resolver_print_fmt(FILE *output, const ldns_output_format *fmt, const ldns_resolver *r)
Print a resolver (in sofar that is possible) state to output.
Definition: host2str.c:2282
ldns_status ldns_rdf2buffer_str_unknown(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_UNKNOWN rdata element to string format and adds it to the output buffer...
Definition: host2str.c:700
enum ldns_enum_cert_algorithm ldns_cert_algorithm
Definition: rdata.h:127
ldns_status ldns_rdf2buffer_str_nsap(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_NSAP rdata element to string format and adds it to the output buffer...
Definition: host2str.c:707
ldns_status ldns_pkt_opcode2buffer_str(ldns_buffer *output, ldns_pkt_opcode opcode)
Converts an ldns packet opcode value to its mnemonic, and adds that to the output buffer...
Definition: host2str.c:134
ldns_status ldns_pktheader2buffer_str(ldns_buffer *output, const ldns_pkt *pkt)
Converts the header of a packet to presentation format and appends it to the output buffer...
Definition: host2str.c:1439
DNS stub resolver structure.
Definition: resolver.h:59
Defines ldns_rdf and functions to manipulate those.
ldns_status ldns_rdf2buffer_str_nsec(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_NSEC rdata element to string format and adds it to the output buffer...
Definition: host2str.c:761
enum ldns_enum_rr_class ldns_rr_class
Definition: rr.h:64
ldns_status ldns_rdf2buffer_str_ipseckey(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_IPSECKEY rdata element to string format and adds it to the output buffer...
Definition: host2str.c:953
ldns_status ldns_rdf2buffer_str_aaaa(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_AAAA rdata element to string format and adds it to the output buffer...
Definition: host2str.c:373
char * ldns_pkt_cert_algorithm2str(ldns_cert_algorithm cert_algorithm)
Converts a cert algorithm to its mnemonic and returns that as an allocated null-terminated string...
Definition: host2str.c:248
ldns_status ldns_rdf2buffer_str_tsigtime(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_TSIGTIME rdata element to string format and adds it to the output buffer...
Definition: host2str.c:835
List or Set of Resource Records.
Definition: rr.h:306
ldns_status ldns_rr_class2buffer_str(ldns_buffer *output, const ldns_rr_class klass)
Converts an ldns_rr_class value to its string representation, and places it in the given buffer...
Definition: host2str.c:580
Output format specifier.
Definition: host2str.h:80
const ldns_output_format * ldns_output_format_onlykeyids
Standard output format record that annotated only DNSKEY RR&#39;s with commenti text. ...
Definition: host2str.c:123
ldns_status ldns_rdf2buffer_str_apl(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_APL rdata element to string format and adds it to the output buffer...
Definition: host2str.c:856
char * ldns_buffer2str(ldns_buffer *buffer)
Returns a copy of the data in the buffer as a null terminated char * string.
Definition: host2str.c:2057
ldns_status ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k)
Converts the data in the DNS packet to presentation format (as char *) and appends it to the given bu...
Definition: host2str.c:1660
DNS Zone.
Definition: zone.h:42
ldns_status ldns_rdf2buffer_str(ldns_buffer *buffer, const ldns_rdf *rdf)
Converts the data in the rdata field to presentation format (as char *) and appends it to the given b...
Definition: host2str.c:1054
ldns_status ldns_rdf2buffer_str_nsec3_salt(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_NSEC3_SALT rdata element to string format and adds it to the output buffer...
Definition: host2str.c:800
Contains the definition of ldns_rr and functions to manipulate those.
char * ldns_pkt_opcode2str(ldns_pkt_opcode opcode)
Converts a packet opcode to its mnemonic and returns that as an allocated null-terminated string...
Definition: host2str.c:187
char * ldns_rr2str_fmt(const ldns_output_format *fmt, const ldns_rr *rr)
Converts the data in the resource record to presentation format and returns that as a char *...
Definition: host2str.c:2115
ldns_status ldns_rdf2buffer_str_alg(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_ALG rdata element to string format and adds it to the output buffer...
Definition: host2str.c:498
char * ldns_rr_list2str(const ldns_rr_list *list)
Converts a list of resource records to presentation format and returns that as a char *...
Definition: host2str.c:2210
void ldns_resolver_print(FILE *output, const ldns_resolver *r)
Print a resolver (in sofar that is possible) state to output.
Definition: host2str.c:2349
char * ldns_rr_list2str_fmt(const ldns_output_format *fmt, const ldns_rr_list *list)
Converts a list of resource records to presentation format and returns that as a char *...
Definition: host2str.c:2181
const ldns_output_format * ldns_output_format_default
The default output format record.
Definition: host2str.c:125
Resource Record.
Definition: rr.h:278
void ldns_pkt_print_fmt(FILE *output, const ldns_output_format *fmt, const ldns_pkt *pkt)
Prints the data in the DNS packet to the given file stream (in presentation format) ...
Definition: host2str.c:2247
ldns_status ldns_rdf2buffer_str_class(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_CLASS rdata element to string format and adds it to the output buffer...
Definition: host2str.c:469
ldns_status ldns_rr2buffer_str_fmt(ldns_buffer *output, const ldns_output_format *fmt, const ldns_rr *rr)
Converts the data in the resource record to presentation format (as char *) and appends it to the giv...
Definition: host2str.c:1188
Defines error numbers and functions to translate those to a readable string.
ldns_status ldns_rdf2buffer_str_b32_ext(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_B32_EXT rdata element to string format and adds it to the output buffer...
Definition: host2str.c:422
General key structure, can contain all types of keys that are used in DNSSEC.
Definition: keys.h:107
ldns_status ldns_rdf2buffer_str_b64(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_B64 rdata element to string format and adds it to the output buffer...
Definition: host2str.c:409
void ldns_rr_list_print(FILE *output, const ldns_rr_list *lst)
print a rr_list to output
Definition: host2str.c:2276
void ldns_zone_print_fmt(FILE *output, const ldns_output_format *fmt, const ldns_zone *z)
Print a zone structure * to output.
Definition: host2str.c:2355
void ldns_rr_print_fmt(FILE *output, const ldns_output_format *fmt, const ldns_rr *rr)
Prints the data in the resource record to the given file stream (in presentation format) ...
Definition: host2str.c:2228
enum ldns_enum_pkt_opcode ldns_pkt_opcode
Definition: packet.h:52
char * ldns_rr2str(const ldns_rr *rr)
Converts the data in the resource record to presentation format and returns that as a char *...
Definition: host2str.c:2133
char * ldns_pkt_rcode2str(ldns_pkt_rcode rcode)
Converts a packet rcode to its mnemonic and returns that as an allocated null-terminated string...
Definition: host2str.c:207
ldns_status ldns_rdf2buffer_str_period(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_PERIOD rdata element to string format and adds it to the output buffer...
Definition: host2str.c:826
char * ldns_buffer_export2str(ldns_buffer *buffer)
Exports and returns the data in the buffer as a null terminated char * string.
Definition: host2str.c:2084
ldns_status ldns_rdf2buffer_str_loc(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_LOC rdata element to string format and adds it to the output buffer...
Definition: host2str.c:614
ldns_status ldns_pkt_rcode2buffer_str(ldns_buffer *output, ldns_pkt_rcode rcode)
Converts an ldns packet rcode value to its mnemonic, and adds that to the output buffer.
Definition: host2str.c:146
ldns_status ldns_rdf2buffer_str_int16_data(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_INT16_DATA rdata element to string format and adds it to the output buffer...
Definition: host2str.c:932
void * data
Potential extra data to be used with formatting RR&#39;s in text.
Definition: host2str.h:85
ldns_status ldns_algorithm2buffer_str(ldns_buffer *output, ldns_algorithm algorithm)
Converts an ldns algorithm type to its mnemonic, and adds that to the output buffer.
Definition: host2str.c:158
int flags
Specification of how RR&#39;s should be formatted in text.
Definition: host2str.h:83
Defines the ldns_resolver structure, a stub resolver that can send queries and parse answers...
ldns_status ldns_cert_algorithm2buffer_str(ldns_buffer *output, ldns_cert_algorithm cert_algorithm)
Converts an ldns certificate algorithm type to its mnemonic, and adds that to the output buffer...
Definition: host2str.c:172
ldns_status ldns_rdf2buffer_str_time(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_TIME rdata element to string format and adds it to the output buffer...
Definition: host2str.c:347
enum ldns_enum_pkt_rcode ldns_pkt_rcode
Definition: packet.h:68
ldns_status ldns_rdf2buffer_str_int16(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_INT16 rdata element to string format and adds it to the output buffer...
Definition: host2str.c:331
ldns_status ldns_rdf2buffer_str_dname(ldns_buffer *output, const ldns_rdf *dname)
Print the ldns_rdf containing a dname to the buffer.
Definition: host2str.c:271
DNS packet.
Definition: packet.h:233
void ldns_rdf_print(FILE *output, const ldns_rdf *rdf)
Prints the data in the rdata field to the given file stream (in presentation format) ...
Definition: host2str.c:2216
char * ldns_pkt2str_fmt(const ldns_output_format *fmt, const ldns_pkt *pkt)
Converts the data in the DNS packet to presentation format and returns that as a char *...
Definition: host2str.c:2139
ldns_status ldns_rdf2buffer_str_atma(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_ATMA rdata element to string format and adds it to the output buffer...
Definition: host2str.c:714
ldns_status ldns_pkt2buffer_str(ldns_buffer *output, const ldns_pkt *pkt)
Converts the data in the DNS packet to presentation format (as char *) and appends it to the given bu...
Definition: host2str.c:1612
const ldns_output_format * ldns_output_format_nocomments
Standard output format record that disables commenting in the textual representation of Resource Reco...
Definition: host2str.c:118
enum ldns_enum_status ldns_status
Definition: error.h:122
zone.h
void ldns_zone_print(FILE *output, const ldns_zone *z)
Print a zone structure * to output.
Definition: host2str.c:2363
char * ldns_rr_class2str(const ldns_rr_class klass)
Converts an ldns_rr_class value to its string representation, and returns that string.
Definition: host2str.c:595
This file contains the definition of ldns_buffer, and functions to manipulate those.
ldns_status ldns_rdf2buffer_str_hex(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_HEX rdata element to string format and adds it to the output buffer...
Definition: host2str.c:443
void ldns_rr_print(FILE *output, const ldns_rr *rr)
Prints the data in the resource record to the given file stream (in presentation format) ...
Definition: host2str.c:2241
ldns_status ldns_pkt2buffer_str_fmt(ldns_buffer *output, const ldns_output_format *fmt, const ldns_pkt *pkt)
Converts the data in the DNS packet to presentation format (as char *) and appends it to the given bu...
Definition: host2str.c:1491
ldns_status ldns_rdf2buffer_str_str(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_STR rdata element to string format and adds it to the output buffer...
Definition: host2str.c:385
ldns_status ldns_rdf2buffer_str_wks(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_WKS rdata element to string format and adds it to the output buffer...
Definition: host2str.c:720
ldns_status ldns_rr2buffer_str(ldns_buffer *output, const ldns_rr *rr)
Converts the data in the resource record to presentation format (as char *) and appends it to the giv...
Definition: host2str.c:1413
ldns_status ldns_rr_list2buffer_str(ldns_buffer *output, const ldns_rr_list *list)
Converts a rr_list to presentation format and appends it to the output buffer.
Definition: host2str.c:1432
char * ldns_rr_type2str(const ldns_rr_type type)
Converts an ldns_rr_type value to its string representation, and returns that string.
Definition: host2str.c:559
char * ldns_rdf2str(const ldns_rdf *rdf)
Converts the data in the rdata field to presentation format and returns that as a char *...
Definition: host2str.c:2098
char * ldns_pkt_algorithm2str(ldns_algorithm algorithm)
Converts a signing algorithms to its mnemonic and returns that as an allocated null-terminated string...
Definition: host2str.c:227
void ldns_pkt_print(FILE *output, const ldns_pkt *pkt)
Prints the data in the DNS packet to the given file stream (in presentation format) ...
Definition: host2str.c:2260
ldns_status ldns_rdf2buffer_str_cert_alg(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_CERT rdata element to string format and adds it to the output buffer...
Definition: host2str.c:484
Contains the definition of ldns_pkt and its parts, as well as functions to manipulate those...
Resource record data field.
Definition: rdata.h:138
ldns_status ldns_rr_type2buffer_str(ldns_buffer *output, const ldns_rr_type type)
Converts an ldns_rr_type value to its string representation, and places it in the given buffer...
Definition: host2str.c:525
Common definitions for LDNS.
const ldns_output_format * ldns_output_format_bubblebabble
Standard output format record that shows all DNSKEY related information in the comment text...
Definition: host2str.c:131
ldns_status ldns_rdf2buffer_str_int8(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_INT8 rdata element to string format and adds it to the output buffer...
Definition: host2str.c:323
enum ldns_enum_rr_type ldns_rr_type
Definition: rr.h:215
ldns_status ldns_rr_list2buffer_str_fmt(ldns_buffer *output, const ldns_output_format *fmt, const ldns_rr_list *list)
Converts a rr_list to presentation format and appends it to the output buffer.
Definition: host2str.c:1419
char * ldns_key2str(const ldns_key *k)
Converts a private key to the test presentation fmt and returns that as a char *. ...
Definition: host2str.c:2164
ldns_status ldns_rdf2buffer_str_tsig(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_TSIG rdata element to string format and adds it to the output buffer...
Definition: host2str.c:1046
ldns_status ldns_rdf2buffer_str_int32(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_INT32 rdata element to string format and adds it to the output buffer...
Definition: host2str.c:339
char * ldns_pkt2str(const ldns_pkt *pkt)
Converts the data in the DNS packet to presentation format and returns that as a char *...
Definition: host2str.c:2158
ldns_status ldns_rdf2buffer_str_type(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_TYPE rdata element to string format and adds it to the output buffer...
Definition: host2str.c:454
enum ldns_enum_algorithm ldns_algorithm
Definition: keys.h:62
void ldns_rr_list_print_fmt(FILE *output, const ldns_output_format *fmt, const ldns_rr_list *lst)
print a rr_list to output
Definition: host2str.c:2266
ldns_status ldns_rdf2buffer_str_a(ldns_buffer *output, const ldns_rdf *rdf)
Converts an LDNS_RDF_TYPE_A rdata element to string format and adds it to the output buffer...
Definition: host2str.c:362