00001
00018 #ifndef LDNS_HOST2STR_H
00019 #define LDNS_HOST2STR_H
00020
00021 #include <ldns/common.h>
00022 #include <ldns/error.h>
00023 #include <ldns/rr.h>
00024 #include <ldns/rdata.h>
00025 #include <ldns/packet.h>
00026 #include <ldns/buffer.h>
00027 #include <ldns/resolver.h>
00028 #include <ldns/zone.h>
00029 #include <ctype.h>
00030
00031 #include "ldns/util.h"
00032
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036
00037 #define LDNS_APL_IP4 1
00038 #define LDNS_APL_IP6 2
00039 #define LDNS_APL_MASK 0x7f
00040 #define LDNS_APL_NEGATION 0x80
00041
00046 #define LDNS_COMMENT_NULLS 0x0001
00047
00048 #define LDNS_COMMENT_KEY_ID 0x0002
00049
00050 #define LDNS_COMMENT_KEY_TYPE 0x0004
00051
00052 #define LDNS_COMMENT_KEY_SIZE 0x0008
00053
00054 #define LDNS_COMMENT_KEY (LDNS_COMMENT_KEY_ID \
00055 |LDNS_COMMENT_KEY_TYPE\
00056 |LDNS_COMMENT_KEY_SIZE)
00057
00058 #define LDNS_COMMENT_BUBBLEBABBLE 0x0010
00059
00060 #define LDNS_COMMENT_FLAGS 0x0020
00061
00062 #define LDNS_COMMENT_NSEC3_CHAIN 0x0040
00063
00064 #define LDNS_COMMENT_LAYOUT 0x0080
00065
00066 #define LDNS_COMMENT_RRSIGS 0x0100
00067
00078 struct ldns_struct_output_format
00079 {
00081 int flags;
00083 void *data;
00084 };
00085 typedef struct ldns_struct_output_format ldns_output_format;
00086
00091 extern const ldns_output_format *ldns_output_format_nocomments;
00096 extern const ldns_output_format *ldns_output_format_onlykeyids;
00100 extern const ldns_output_format *ldns_output_format_default;
00106 extern const ldns_output_format *ldns_output_format_bubblebabble;
00107
00115 ldns_status
00116 ldns_pkt_opcode2buffer_str(ldns_buffer *output, ldns_pkt_opcode opcode);
00117
00125 ldns_status
00126 ldns_pkt_rcode2buffer_str(ldns_buffer *output, ldns_pkt_rcode rcode);
00127
00135 ldns_status
00136 ldns_algorithm2buffer_str(ldns_buffer *output,
00137 ldns_algorithm algorithm);
00138
00146 ldns_status
00147 ldns_cert_algorithm2buffer_str(ldns_buffer *output,
00148 ldns_cert_algorithm cert_algorithm);
00149
00150
00159 char *ldns_pkt_opcode2str(ldns_pkt_opcode opcode);
00160
00169 char *ldns_pkt_rcode2str(ldns_pkt_rcode rcode);
00170
00179 char *ldns_pkt_algorithm2str(ldns_algorithm algorithm);
00180
00189 char *ldns_pkt_cert_algorithm2str(ldns_cert_algorithm cert_algorithm);
00190
00197 ldns_status ldns_rdf2buffer_str_a(ldns_buffer *output, const ldns_rdf *rdf);
00198
00205 ldns_status ldns_rdf2buffer_str_aaaa(ldns_buffer *output, const ldns_rdf *rdf);
00206
00213 ldns_status ldns_rdf2buffer_str_str(ldns_buffer *output, const ldns_rdf *rdf);
00214
00221 ldns_status ldns_rdf2buffer_str_b64(ldns_buffer *output, const ldns_rdf *rdf);
00222
00229 ldns_status ldns_rdf2buffer_str_b32_ext(ldns_buffer *output, const ldns_rdf *rdf);
00230
00237 ldns_status ldns_rdf2buffer_str_hex(ldns_buffer *output, const ldns_rdf *rdf);
00238
00245 ldns_status ldns_rdf2buffer_str_type(ldns_buffer *output, const ldns_rdf *rdf);
00246
00253 ldns_status ldns_rdf2buffer_str_class(ldns_buffer *output, const ldns_rdf *rdf);
00254
00261 ldns_status ldns_rdf2buffer_str_alg(ldns_buffer *output, const ldns_rdf *rdf);
00262
00270 ldns_status ldns_rr_type2buffer_str(ldns_buffer *output,
00271 const ldns_rr_type type);
00272
00281 char *ldns_rr_type2str(const ldns_rr_type type);
00282
00290 ldns_status ldns_rr_class2buffer_str(ldns_buffer *output,
00291 const ldns_rr_class klass);
00292
00301 char *ldns_rr_class2str(const ldns_rr_class klass);
00302
00303
00310 ldns_status ldns_rdf2buffer_str_cert_alg(ldns_buffer *output, const ldns_rdf *rdf);
00311
00318 ldns_status ldns_rdf2buffer_str_loc(ldns_buffer *output, const ldns_rdf *rdf);
00319
00326 ldns_status ldns_rdf2buffer_str_unknown(ldns_buffer *output, const ldns_rdf *rdf);
00327
00334 ldns_status ldns_rdf2buffer_str_nsap(ldns_buffer *output, const ldns_rdf *rdf);
00335
00342 ldns_status ldns_rdf2buffer_str_atma(ldns_buffer *output, const ldns_rdf *rdf);
00343
00350 ldns_status ldns_rdf2buffer_str_wks(ldns_buffer *output, const ldns_rdf *rdf);
00351
00358 ldns_status ldns_rdf2buffer_str_nsec(ldns_buffer *output, const ldns_rdf *rdf);
00359
00366 ldns_status ldns_rdf2buffer_str_period(ldns_buffer *output, const ldns_rdf *rdf);
00367
00374 ldns_status ldns_rdf2buffer_str_tsigtime(ldns_buffer *output, const ldns_rdf *rdf);
00375
00382 ldns_status ldns_rdf2buffer_str_apl(ldns_buffer *output, const ldns_rdf *rdf);
00383
00390 ldns_status ldns_rdf2buffer_str_int16_data(ldns_buffer *output, const ldns_rdf *rdf);
00391
00398 ldns_status ldns_rdf2buffer_str_ipseckey(ldns_buffer *output, const ldns_rdf *rdf);
00399
00406 ldns_status ldns_rdf2buffer_str_tsig(ldns_buffer *output, const ldns_rdf *rdf);
00407
00408
00417 ldns_status ldns_rdf2buffer_str(ldns_buffer *output, const ldns_rdf *rdf);
00418
00429 ldns_status ldns_rr2buffer_str(ldns_buffer *output, const ldns_rr *rr);
00430
00443 ldns_status ldns_rr2buffer_str_fmt(ldns_buffer *output,
00444 const ldns_output_format *fmt, const ldns_rr *rr);
00445
00454 ldns_status ldns_pkt2buffer_str(ldns_buffer *output, const ldns_pkt *pkt);
00455
00465 ldns_status ldns_pkt2buffer_str_fmt(ldns_buffer *output,
00466 const ldns_output_format *fmt, const ldns_pkt *pkt);
00467
00474 ldns_status ldns_rdf2buffer_str_nsec3_salt(ldns_buffer *output, const ldns_rdf *rdf);
00475
00476
00485 ldns_status ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k);
00486
00493 ldns_status ldns_rdf2buffer_str_int8(ldns_buffer *output, const ldns_rdf *rdf);
00494
00501 ldns_status ldns_rdf2buffer_str_int16(ldns_buffer *output, const ldns_rdf *rdf);
00502
00509 ldns_status ldns_rdf2buffer_str_int32(ldns_buffer *output, const ldns_rdf *rdf);
00510
00517 ldns_status ldns_rdf2buffer_str_time(ldns_buffer *output, const ldns_rdf *rdf);
00518
00527 char *ldns_rdf2str(const ldns_rdf *rdf);
00528
00537 char *ldns_rr2str(const ldns_rr *rr);
00538
00548 char *ldns_rr2str_fmt(const ldns_output_format *fmt, const ldns_rr *rr);
00549
00558 char *ldns_pkt2str(const ldns_pkt *pkt);
00559
00569 char *ldns_pkt2str_fmt(const ldns_output_format *fmt, const ldns_pkt *pkt);
00570
00579 char *ldns_key2str(const ldns_key *k);
00580
00589 char *ldns_rr_list2str(const ldns_rr_list *rr_list);
00590
00600 char *ldns_rr_list2str_fmt(
00601 const ldns_output_format *fmt, const ldns_rr_list *rr_list);
00602
00610 char *ldns_buffer2str(ldns_buffer *buffer);
00611
00620 void ldns_rdf_print(FILE *output, const ldns_rdf *rdf);
00621
00630 void ldns_rr_print(FILE *output, const ldns_rr *rr);
00631
00641 void ldns_rr_print_fmt(FILE *output,
00642 const ldns_output_format *fmt, const ldns_rr *rr);
00643
00652 void ldns_pkt_print(FILE *output, const ldns_pkt *pkt);
00653
00663 void ldns_pkt_print_fmt(FILE *output,
00664 const ldns_output_format *fmt, const ldns_pkt *pkt);
00665
00673 ldns_status ldns_rr_list2buffer_str(ldns_buffer *output, const ldns_rr_list *list);
00674
00683 ldns_status ldns_rr_list2buffer_str_fmt(ldns_buffer *output,
00684 const ldns_output_format *fmt, const ldns_rr_list *list);
00685
00693 ldns_status ldns_pktheader2buffer_str(ldns_buffer *output, const ldns_pkt *pkt);
00694
00700 void ldns_rr_list_print(FILE *output, const ldns_rr_list *list);
00701
00708 void ldns_rr_list_print_fmt(FILE *output,
00709 const ldns_output_format *fmt, const ldns_rr_list *list);
00710
00717 void ldns_resolver_print(FILE *output, const ldns_resolver *r);
00718
00726 void ldns_resolver_print_fmt(FILE *output,
00727 const ldns_output_format *fmt, const ldns_resolver *r);
00728
00735 void ldns_zone_print(FILE *output, const ldns_zone *z);
00736
00744 void ldns_zone_print_fmt(FILE *output,
00745 const ldns_output_format *fmt, const ldns_zone *z);
00746
00753 ldns_status ldns_rdf2buffer_str_dname(ldns_buffer *output, const ldns_rdf *dname);
00754
00755 #ifdef __cplusplus
00756 }
00757 #endif
00758
00759 #endif