00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef _DRILL_H_
00010 #define _DRILL_H_
00011 #include "config.h"
00012
00013 #include "drill_util.h"
00014
00015 #define DRILL_VERSION "1.0.1"
00016
00017
00018 #define DRILL_QUERY 0
00019 #define DRILL_TRACE 1
00020 #define DRILL_CHASE 2
00021 #define DRILL_AFROMFILE 3
00022 #define DRILL_QTOFILE 4
00023 #define DRILL_NSEC 5
00024 #define DRILL_REVERSE 6
00025 #define DRILL_SECTRACE 7
00026
00027 extern ldns_rr_list *global_dns_root;
00028 extern bool qds;
00029
00030 extern int8_t qdebug;
00031
00032 ldns_pkt *do_trace(ldns_resolver *res, ldns_rdf *name, ldns_rr_type type,
00033 ldns_rr_class c);
00034 ldns_status do_chase(ldns_resolver *res, ldns_rdf *name, ldns_rr_type type,
00035 ldns_rr_class c, ldns_rr_list *trusted_keys,
00036 ldns_pkt *pkt_o, uint16_t qflags);
00037 ldns_status do_secure_trace(ldns_resolver *res, ldns_rdf *name, ldns_rr_type type,
00038 ldns_rr_class c, ldns_rr_list *trusted_keys);
00039
00040 ldns_rr_list *get_rr(ldns_resolver *res, ldns_rdf *zname, ldns_rr_type t, ldns_rr_class c);
00041 void drill_pkt_print(FILE *fd, ldns_resolver *r, ldns_pkt *p);
00042 void drill_pkt_print_footer(FILE *fd, ldns_resolver *r, ldns_pkt *p);
00043
00044 ldns_rr *read_key_file(const char *filename);
00045 ldns_pkt *read_hex_pkt(char *filename);
00046 void init_root(void);
00047 void dump_hex(const ldns_pkt *pkt, const char *file);
00048 void warning(const char *fmt, ...);
00049 void error(const char *fmt, ...);
00050 void mesg(const char *fmt, ...);
00051 #endif