3 * the main header file of drill
4 * (c) 2005, 2006 NLnet Labs
6 * See the file LICENSE for the license
13 #include "drill_util.h"
15 #define DRILL_VERSION PACKAGE_VERSION
17 /* what kind of stuff do we allow */
21 #define DRILL_AFROMFILE 3
22 #define DRILL_QTOFILE 4
24 #define DRILL_SECTRACE 7
26 #define DRILL_ON(VAR, BIT) \
28 #define DRILL_OFF(VAR, BIT) \
29 (VAR) = (VAR) & ~(BIT)
31 extern ldns_rr_list
*global_dns_root
;
34 void do_trace(ldns_resolver
*res
,
38 ldns_status
do_chase(ldns_resolver
*res
,
42 ldns_rr_list
*trusted_keys
,
45 ldns_rr_list
*prev_key_list
);
46 int do_secure_trace(ldns_resolver
*res
,
50 ldns_rr_list
*trusted_keys
,
51 ldns_rdf
*start_name
);
53 ldns_rr_list
* get_rr(ldns_resolver
*res
,
58 void drill_pkt_print(FILE *fd
, ldns_resolver
*r
, ldns_pkt
*p
);
59 void drill_pkt_print_footer(FILE *fd
, ldns_resolver
*r
, ldns_pkt
*p
);
61 ldns_pkt_type
get_dnssec_rr(ldns_pkt
*p
,
64 ldns_rr_list
**rrlist
,
67 ldns_rr
*ldns_nsec3_exact_match(ldns_rdf
*qname
,
69 ldns_rr_list
*nsec3s
);
71 ldns_rdf
*ldns_nsec3_closest_encloser(ldns_rdf
*qname
,
73 ldns_rr_list
*nsec3s
);
75 /* verifies denial of existence of *name in *pkt (must contain NSEC or NSEC3 records
76 * if *nsec_rrs and *nsec_rr_sigs are given, pointers to the relevant nsecs and their signatures are
79 ldns_status
ldns_verify_denial(ldns_pkt
*pkt
,
82 ldns_rr_list
**nsec_rrs
,
83 ldns_rr_list
**nsec_rr_sigs
);
85 ldns_pkt
*read_hex_pkt(char *filename
);
86 ldns_buffer
*read_hex_buffer(char *filename
);
88 ldns_rr_list
*read_root_hints(const char *filename
);
89 void clear_root(void);
90 void dump_hex(const ldns_pkt
*pkt
, const char *file
);
91 void warning(const char *fmt
, ...);
92 void error(const char *fmt
, ...);
93 void mesg(const char *fmt
, ...);
96 void resolver_print_nameservers(ldns_resolver
*r
);
97 void print_dnskey(ldns_rr_list
*key_list
);
98 void print_ds(ldns_rr_list
*ds_list
);
100 #endif /* _DRILL_H_ */