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 #define LDNS_FMT_ZEROIZE_RRSIGS 0x0200
00068 #define LDNS_FMT_PAD_SOA_SERIAL 0x0400
00069
00080 struct ldns_struct_output_format
00081 {
00083 int flags;
00085 void *data;
00086 };
00087 typedef struct ldns_struct_output_format ldns_output_format;
00088
00093 extern const ldns_output_format *ldns_output_format_nocomments;
00098 extern const ldns_output_format *ldns_output_format_onlykeyids;
00102 extern const ldns_output_format *ldns_output_format_default;
00108 extern const ldns_output_format *ldns_output_format_bubblebabble;
00109
00117 ldns_status
00118 ldns_pkt_opcode2buffer_str(ldns_buffer *output, ldns_pkt_opcode opcode);
00119
00127 ldns_status
00128 ldns_pkt_rcode2buffer_str(ldns_buffer *output, ldns_pkt_rcode rcode);
00129
00137 ldns_status
00138 ldns_algorithm2buffer_str(ldns_buffer *output,
00139 ldns_algorithm algorithm);
00140
00148 ldns_status
00149 ldns_cert_algorithm2buffer_str(ldns_buffer *output,
00150 ldns_cert_algorithm cert_algorithm);
00151
00152
00161 char *ldns_pkt_opcode2str(ldns_pkt_opcode opcode);
00162
00171 char *ldns_pkt_rcode2str(ldns_pkt_rcode rcode);
00172
00181 char *ldns_pkt_algorithm2str(ldns_algorithm algorithm);
00182
00191 char *ldns_pkt_cert_algorithm2str(ldns_cert_algorithm cert_algorithm);
00192
00199 ldns_status ldns_rdf2buffer_str_a(ldns_buffer *output, const ldns_rdf *rdf);
00200
00207 ldns_status ldns_rdf2buffer_str_aaaa(ldns_buffer *output, const ldns_rdf *rdf);
00208
00215 ldns_status ldns_rdf2buffer_str_str(ldns_buffer *output, const ldns_rdf *rdf);
00216
00223 ldns_status ldns_rdf2buffer_str_b64(ldns_buffer *output, const ldns_rdf *rdf);
00224
00231 ldns_status ldns_rdf2buffer_str_b32_ext(ldns_buffer *output, const ldns_rdf *rdf);
00232
00239 ldns_status ldns_rdf2buffer_str_hex(ldns_buffer *output, const ldns_rdf *rdf);
00240
00247 ldns_status ldns_rdf2buffer_str_type(ldns_buffer *output, const ldns_rdf *rdf);
00248
00255 ldns_status ldns_rdf2buffer_str_class(ldns_buffer *output, const ldns_rdf *rdf);
00256
00263 ldns_status ldns_rdf2buffer_str_alg(ldns_buffer *output, const ldns_rdf *rdf);
00264
00272 ldns_status ldns_rr_type2buffer_str(ldns_buffer *output,
00273 const ldns_rr_type type);
00274
00283 char *ldns_rr_type2str(const ldns_rr_type type);
00284
00292 ldns_status ldns_rr_class2buffer_str(ldns_buffer *output,
00293 const ldns_rr_class klass);
00294
00303 char *ldns_rr_class2str(const ldns_rr_class klass);
00304
00305
00312 ldns_status ldns_rdf2buffer_str_cert_alg(ldns_buffer *output, const ldns_rdf *rdf);
00313
00320 ldns_status ldns_rdf2buffer_str_loc(ldns_buffer *output, const ldns_rdf *rdf);
00321
00328 ldns_status ldns_rdf2buffer_str_unknown(ldns_buffer *output, const ldns_rdf *rdf);
00329
00336 ldns_status ldns_rdf2buffer_str_nsap(ldns_buffer *output, const ldns_rdf *rdf);
00337
00344 ldns_status ldns_rdf2buffer_str_atma(ldns_buffer *output, const ldns_rdf *rdf);
00345
00352 ldns_status ldns_rdf2buffer_str_wks(ldns_buffer *output, const ldns_rdf *rdf);
00353
00360 ldns_status ldns_rdf2buffer_str_nsec(ldns_buffer *output, const ldns_rdf *rdf);
00361
00368 ldns_status ldns_rdf2buffer_str_period(ldns_buffer *output, const ldns_rdf *rdf);
00369
00376 ldns_status ldns_rdf2buffer_str_tsigtime(ldns_buffer *output, const ldns_rdf *rdf);
00377
00384 ldns_status ldns_rdf2buffer_str_apl(ldns_buffer *output, const ldns_rdf *rdf);
00385
00392 ldns_status ldns_rdf2buffer_str_int16_data(ldns_buffer *output, const ldns_rdf *rdf);
00393
00400 ldns_status ldns_rdf2buffer_str_ipseckey(ldns_buffer *output, const ldns_rdf *rdf);
00401
00408 ldns_status ldns_rdf2buffer_str_tsig(ldns_buffer *output, const ldns_rdf *rdf);
00409
00410
00419 ldns_status ldns_rdf2buffer_str(ldns_buffer *output, const ldns_rdf *rdf);
00420
00431 ldns_status ldns_rr2buffer_str(ldns_buffer *output, const ldns_rr *rr);
00432
00445 ldns_status ldns_rr2buffer_str_fmt(ldns_buffer *output,
00446 const ldns_output_format *fmt, const ldns_rr *rr);
00447
00456 ldns_status ldns_pkt2buffer_str(ldns_buffer *output, const ldns_pkt *pkt);
00457
00467 ldns_status ldns_pkt2buffer_str_fmt(ldns_buffer *output,
00468 const ldns_output_format *fmt, const ldns_pkt *pkt);
00469
00476 ldns_status ldns_rdf2buffer_str_nsec3_salt(ldns_buffer *output, const ldns_rdf *rdf);
00477
00478
00487 ldns_status ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k);
00488
00495 ldns_status ldns_rdf2buffer_str_int8(ldns_buffer *output, const ldns_rdf *rdf);
00496
00503 ldns_status ldns_rdf2buffer_str_int16(ldns_buffer *output, const ldns_rdf *rdf);
00504
00511 ldns_status ldns_rdf2buffer_str_int32(ldns_buffer *output, const ldns_rdf *rdf);
00512
00519 ldns_status ldns_rdf2buffer_str_time(ldns_buffer *output, const ldns_rdf *rdf);
00520
00529 char *ldns_rdf2str(const ldns_rdf *rdf);
00530
00539 char *ldns_rr2str(const ldns_rr *rr);
00540
00550 char *ldns_rr2str_fmt(const ldns_output_format *fmt, const ldns_rr *rr);
00551
00560 char *ldns_pkt2str(const ldns_pkt *pkt);
00561
00571 char *ldns_pkt2str_fmt(const ldns_output_format *fmt, const ldns_pkt *pkt);
00572
00581 char *ldns_key2str(const ldns_key *k);
00582
00591 char *ldns_rr_list2str(const ldns_rr_list *rr_list);
00592
00602 char *ldns_rr_list2str_fmt(
00603 const ldns_output_format *fmt, const ldns_rr_list *rr_list);
00604
00613 char *ldns_buffer2str(ldns_buffer *buffer);
00614
00624 char *ldns_buffer_export2str(ldns_buffer *buffer);
00625
00634 void ldns_rdf_print(FILE *output, const ldns_rdf *rdf);
00635
00644 void ldns_rr_print(FILE *output, const ldns_rr *rr);
00645
00655 void ldns_rr_print_fmt(FILE *output,
00656 const ldns_output_format *fmt, const ldns_rr *rr);
00657
00666 void ldns_pkt_print(FILE *output, const ldns_pkt *pkt);
00667
00677 void ldns_pkt_print_fmt(FILE *output,
00678 const ldns_output_format *fmt, const ldns_pkt *pkt);
00679
00687 ldns_status ldns_rr_list2buffer_str(ldns_buffer *output, const ldns_rr_list *list);
00688
00697 ldns_status ldns_rr_list2buffer_str_fmt(ldns_buffer *output,
00698 const ldns_output_format *fmt, const ldns_rr_list *list);
00699
00707 ldns_status ldns_pktheader2buffer_str(ldns_buffer *output, const ldns_pkt *pkt);
00708
00714 void ldns_rr_list_print(FILE *output, const ldns_rr_list *list);
00715
00722 void ldns_rr_list_print_fmt(FILE *output,
00723 const ldns_output_format *fmt, const ldns_rr_list *list);
00724
00731 void ldns_resolver_print(FILE *output, const ldns_resolver *r);
00732
00740 void ldns_resolver_print_fmt(FILE *output,
00741 const ldns_output_format *fmt, const ldns_resolver *r);
00742
00749 void ldns_zone_print(FILE *output, const ldns_zone *z);
00750
00758 void ldns_zone_print_fmt(FILE *output,
00759 const ldns_output_format *fmt, const ldns_zone *z);
00760
00767 ldns_status ldns_rdf2buffer_str_dname(ldns_buffer *output, const ldns_rdf *dname);
00768
00769 #ifdef __cplusplus
00770 }
00771 #endif
00772
00773 #endif