host2str.h

Go to the documentation of this file.
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 /*      Flag Name                       Flag Nr.        Has data associated
00047         ---------------------------------------------------------------------*/
00048 #define LDNS_COMMENT_NULLS              (1 <<  0)
00049 
00050 #define LDNS_COMMENT_KEY_ID             (1 <<  1)
00051 
00052 #define LDNS_COMMENT_KEY_TYPE           (1 <<  2)
00053 
00054 #define LDNS_COMMENT_KEY_SIZE           (1 <<  3)
00055 
00056 #define LDNS_COMMENT_BUBBLEBABBLE       (1 <<  4)
00057 
00058 #define LDNS_COMMENT_FLAGS              (1 <<  5)
00059 
00060 #define LDNS_COMMENT_NSEC3_CHAIN        (1 <<  6)       /* yes */
00061 
00062 #define LDNS_COMMENT_LAYOUT             (1 <<  7)
00063 
00064 #define LDNS_COMMENT_RRSIGS             (1 <<  8)
00065 #define LDNS_FMT_ZEROIZE_RRSIGS         (1 <<  9)
00066 #define LDNS_FMT_PAD_SOA_SERIAL         (1 << 10)
00067 #define LDNS_FMT_RFC3597                (1 << 11)       /* yes */
00068 
00069 #define LDNS_FMT_FLAGS_WITH_DATA                            2
00070 
00072 #define LDNS_COMMENT_KEY                (LDNS_COMMENT_KEY_ID  \
00073                                         |LDNS_COMMENT_KEY_TYPE\
00074                                         |LDNS_COMMENT_KEY_SIZE)
00075 
00086 struct ldns_struct_output_format
00087 {
00089         int   flags;
00091         void *data;
00092 };
00093 typedef struct ldns_struct_output_format ldns_output_format;
00094 
00100 struct ldns_struct_output_format_storage
00101 {       int   flags;
00102         ldns_rbtree_t* hashmap;    /* for LDNS_COMMENT_NSEC3_CHAIN */
00103         ldns_rdf*      bitmap;     /* for LDNS_FMT_RFC3597     */
00104 };
00105 typedef struct ldns_struct_output_format_storage ldns_output_format_storage;
00106 
00111 extern const ldns_output_format *ldns_output_format_nocomments;
00116 extern const ldns_output_format *ldns_output_format_onlykeyids;
00120 extern const ldns_output_format *ldns_output_format_default;
00126 extern const ldns_output_format *ldns_output_format_bubblebabble;
00127 
00133 INLINE
00134 ldns_output_format* ldns_output_format_init(ldns_output_format_storage* fmt) {
00135         fmt->flags   = ldns_output_format_default->flags;
00136         fmt->hashmap = NULL;
00137         fmt->bitmap  = NULL;
00138         return (ldns_output_format*)fmt;
00139 }
00140 
00144 INLINE void ldns_output_format_set(ldns_output_format* fmt, int flag) {
00145         fmt->flags |= flag;
00146 }
00147 
00151 INLINE void ldns_output_format_clear(ldns_output_format* fmt, int flag) {
00152         fmt->flags &= !flag;
00153 }
00154 
00162 ldns_status
00163 ldns_output_format_set_type(ldns_output_format* fmt, ldns_rr_type type);
00164 
00174 ldns_status
00175 ldns_output_format_clear_type(ldns_output_format* fmt, ldns_rr_type type);
00176 
00184 ldns_status
00185 ldns_pkt_opcode2buffer_str(ldns_buffer *output, ldns_pkt_opcode opcode);
00186 
00194 ldns_status
00195 ldns_pkt_rcode2buffer_str(ldns_buffer *output, ldns_pkt_rcode rcode);
00196 
00204 ldns_status
00205 ldns_algorithm2buffer_str(ldns_buffer *output,
00206                           ldns_algorithm algorithm);
00207 
00215 ldns_status
00216 ldns_cert_algorithm2buffer_str(ldns_buffer *output,
00217                                ldns_cert_algorithm cert_algorithm);
00218 
00219 
00228 char *ldns_pkt_opcode2str(ldns_pkt_opcode opcode);
00229 
00238 char *ldns_pkt_rcode2str(ldns_pkt_rcode rcode);
00239 
00248 char *ldns_pkt_algorithm2str(ldns_algorithm algorithm);
00249 
00258 char *ldns_pkt_cert_algorithm2str(ldns_cert_algorithm cert_algorithm);
00259 
00266 ldns_status ldns_rdf2buffer_str_a(ldns_buffer *output, const ldns_rdf *rdf);
00267 
00274 ldns_status ldns_rdf2buffer_str_aaaa(ldns_buffer *output, const ldns_rdf *rdf);
00275 
00282 ldns_status ldns_rdf2buffer_str_str(ldns_buffer *output, const ldns_rdf *rdf);
00283 
00290 ldns_status ldns_rdf2buffer_str_b64(ldns_buffer *output, const ldns_rdf *rdf);
00291 
00298 ldns_status ldns_rdf2buffer_str_b32_ext(ldns_buffer *output, const ldns_rdf *rdf);
00299 
00306 ldns_status ldns_rdf2buffer_str_hex(ldns_buffer *output, const ldns_rdf *rdf);
00307 
00314 ldns_status ldns_rdf2buffer_str_type(ldns_buffer *output, const ldns_rdf *rdf);
00315 
00322 ldns_status ldns_rdf2buffer_str_class(ldns_buffer *output, const ldns_rdf *rdf);
00323 
00330 ldns_status ldns_rdf2buffer_str_alg(ldns_buffer *output, const ldns_rdf *rdf);
00331 
00339 ldns_status ldns_rr_type2buffer_str(ldns_buffer *output,
00340                                     const ldns_rr_type type);
00341 
00350 char *ldns_rr_type2str(const ldns_rr_type type);
00351 
00359 ldns_status ldns_rr_class2buffer_str(ldns_buffer *output,
00360                                      const ldns_rr_class klass);
00361 
00370 char *ldns_rr_class2str(const ldns_rr_class klass);
00371 
00372 
00379 ldns_status ldns_rdf2buffer_str_cert_alg(ldns_buffer *output, const ldns_rdf *rdf);
00380 
00387 ldns_status ldns_rdf2buffer_str_loc(ldns_buffer *output, const ldns_rdf *rdf);
00388 
00395 ldns_status ldns_rdf2buffer_str_unknown(ldns_buffer *output, const ldns_rdf *rdf);
00396 
00403 ldns_status ldns_rdf2buffer_str_nsap(ldns_buffer *output, const ldns_rdf *rdf);
00404 
00411 ldns_status ldns_rdf2buffer_str_atma(ldns_buffer *output, const ldns_rdf *rdf);
00412 
00419 ldns_status ldns_rdf2buffer_str_wks(ldns_buffer *output, const ldns_rdf *rdf);
00420 
00427 ldns_status ldns_rdf2buffer_str_nsec(ldns_buffer *output, const ldns_rdf *rdf);
00428 
00435 ldns_status ldns_rdf2buffer_str_period(ldns_buffer *output, const ldns_rdf *rdf);
00436 
00443 ldns_status ldns_rdf2buffer_str_tsigtime(ldns_buffer *output, const ldns_rdf *rdf);
00444 
00451 ldns_status ldns_rdf2buffer_str_apl(ldns_buffer *output, const ldns_rdf *rdf);
00452 
00459 ldns_status ldns_rdf2buffer_str_int16_data(ldns_buffer *output, const ldns_rdf *rdf);
00460 
00467 ldns_status ldns_rdf2buffer_str_ipseckey(ldns_buffer *output, const ldns_rdf *rdf);
00468 
00477 ldns_status ldns_rdf2buffer_str(ldns_buffer *output, const ldns_rdf *rdf);
00478 
00489 ldns_status ldns_rr2buffer_str(ldns_buffer *output, const ldns_rr *rr);
00490 
00503 ldns_status ldns_rr2buffer_str_fmt(ldns_buffer *output, 
00504                 const ldns_output_format *fmt, const ldns_rr *rr);
00505 
00514 ldns_status ldns_pkt2buffer_str(ldns_buffer *output, const ldns_pkt *pkt);
00515 
00525 ldns_status ldns_pkt2buffer_str_fmt(ldns_buffer *output,
00526                 const ldns_output_format *fmt, const ldns_pkt *pkt);
00527 
00534 ldns_status ldns_rdf2buffer_str_nsec3_salt(ldns_buffer *output, const ldns_rdf *rdf);
00535 
00536 
00545 ldns_status ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k);
00546 
00553 ldns_status ldns_rdf2buffer_str_int8(ldns_buffer *output, const ldns_rdf *rdf);
00554 
00561 ldns_status ldns_rdf2buffer_str_int16(ldns_buffer *output, const ldns_rdf *rdf);
00562 
00569 ldns_status ldns_rdf2buffer_str_int32(ldns_buffer *output, const ldns_rdf *rdf);
00570 
00577 ldns_status ldns_rdf2buffer_str_time(ldns_buffer *output, const ldns_rdf *rdf);
00578 
00586 ldns_status ldns_rdf2buffer_str_ilnp64(ldns_buffer *output,
00587                 const ldns_rdf *rdf);
00588 
00596 ldns_status ldns_rdf2buffer_str_eui48(ldns_buffer *output,
00597                 const ldns_rdf *rdf);
00598 
00606 ldns_status ldns_rdf2buffer_str_eui64(ldns_buffer *output,
00607                 const ldns_rdf *rdf);
00608 
00616 ldns_status ldns_rdf2buffer_str_tag(ldns_buffer *output,
00617                 const ldns_rdf *rdf);
00618 
00626 ldns_status ldns_rdf2buffer_str_long_str(ldns_buffer *output,
00627                 const ldns_rdf *rdf);
00628 
00636 ldns_status ldns_rdf2buffer_str_hip(ldns_buffer *output,
00637                 const ldns_rdf *rdf);
00638 
00647 char *ldns_rdf2str(const ldns_rdf *rdf);
00648 
00657 char *ldns_rr2str(const ldns_rr *rr);
00658 
00668 char *ldns_rr2str_fmt(const ldns_output_format *fmt, const ldns_rr *rr);
00669 
00678 char *ldns_pkt2str(const ldns_pkt *pkt);
00679 
00689 char *ldns_pkt2str_fmt(const ldns_output_format *fmt, const ldns_pkt *pkt);
00690 
00699 char *ldns_key2str(const ldns_key *k);
00700 
00709 char *ldns_rr_list2str(const ldns_rr_list *rr_list);
00710 
00720 char *ldns_rr_list2str_fmt(
00721                 const ldns_output_format *fmt, const ldns_rr_list *rr_list);
00722 
00731 char *ldns_buffer2str(ldns_buffer *buffer);
00732 
00742 char *ldns_buffer_export2str(ldns_buffer *buffer);
00743 
00752 void ldns_rdf_print(FILE *output, const ldns_rdf *rdf);
00753 
00762 void ldns_rr_print(FILE *output, const ldns_rr *rr);
00763 
00773 void ldns_rr_print_fmt(FILE *output, 
00774                 const ldns_output_format *fmt, const ldns_rr *rr);
00775 
00784 void ldns_pkt_print(FILE *output, const ldns_pkt *pkt);
00785 
00795 void ldns_pkt_print_fmt(FILE *output, 
00796                 const ldns_output_format *fmt, const ldns_pkt *pkt);
00797 
00805 ldns_status ldns_rr_list2buffer_str(ldns_buffer *output, const ldns_rr_list *list);
00806 
00815 ldns_status ldns_rr_list2buffer_str_fmt(ldns_buffer *output, 
00816                 const ldns_output_format *fmt, const ldns_rr_list *list);
00817 
00825 ldns_status ldns_pktheader2buffer_str(ldns_buffer *output, const ldns_pkt *pkt);
00826 
00832 void ldns_rr_list_print(FILE *output, const ldns_rr_list *list);
00833 
00840 void ldns_rr_list_print_fmt(FILE *output, 
00841                 const ldns_output_format *fmt, const ldns_rr_list *list);
00842 
00849 void ldns_resolver_print(FILE *output, const ldns_resolver *r);
00850 
00858 void ldns_resolver_print_fmt(FILE *output, 
00859                 const ldns_output_format *fmt, const ldns_resolver *r);
00860 
00867 void ldns_zone_print(FILE *output, const ldns_zone *z);
00868 
00876 void ldns_zone_print_fmt(FILE *output, 
00877                 const ldns_output_format *fmt, const ldns_zone *z);
00878 
00885 ldns_status ldns_rdf2buffer_str_dname(ldns_buffer *output, const ldns_rdf *dname);
00886 
00887 #ifdef __cplusplus
00888 }
00889 #endif
00890 
00891 #endif /* LDNS_HOST2STR_H */

Generated on 21 Apr 2016 for ldns by  doxygen 1.6.1