Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/ldns/drill/drill.h
39482 views
1
/*
2
* drill.h
3
* the main header file of drill
4
* (c) 2005, 2006 NLnet Labs
5
*
6
* See the file LICENSE for the license
7
*
8
*/
9
#ifndef _DRILL_H_
10
#define _DRILL_H_
11
#include "config.h"
12
13
#include "drill_util.h"
14
15
#define DRILL_VERSION PACKAGE_VERSION
16
17
/* what kind of stuff do we allow */
18
#define DRILL_QUERY 0
19
#define DRILL_TRACE 1
20
#define DRILL_CHASE 2
21
#define DRILL_AFROMFILE 3
22
#define DRILL_QTOFILE 4
23
#define DRILL_NSEC 5
24
#define DRILL_SECTRACE 7
25
26
#define DRILL_ON(VAR, BIT) \
27
(VAR) = (VAR) | (BIT)
28
#define DRILL_OFF(VAR, BIT) \
29
(VAR) = (VAR) & ~(BIT)
30
31
extern ldns_rr_list *global_dns_root;
32
extern int verbosity;
33
34
void do_trace(ldns_resolver *res,
35
ldns_rdf *name,
36
ldns_rr_type type,
37
ldns_rr_class c);
38
ldns_status do_chase(ldns_resolver *res,
39
ldns_rdf *name,
40
ldns_rr_type type,
41
ldns_rr_class c,
42
ldns_rr_list *trusted_keys,
43
ldns_pkt *pkt_o,
44
uint16_t qflags,
45
ldns_rr_list *prev_key_list);
46
int do_secure_trace(ldns_resolver *res,
47
ldns_rdf *name,
48
ldns_rr_type type,
49
ldns_rr_class c,
50
ldns_rr_list *trusted_keys,
51
ldns_rdf *start_name);
52
53
ldns_rr_list * get_rr(ldns_resolver *res,
54
ldns_rdf *zname,
55
ldns_rr_type t,
56
ldns_rr_class c);
57
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);
60
61
ldns_pkt_type get_dnssec_rr(ldns_pkt *p,
62
ldns_rdf *name,
63
ldns_rr_type t,
64
ldns_rr_list **rrlist,
65
ldns_rr_list **sig);
66
67
ldns_rr *ldns_nsec3_exact_match(ldns_rdf *qname,
68
ldns_rr_type qtype,
69
ldns_rr_list *nsec3s);
70
71
ldns_rdf *ldns_nsec3_closest_encloser(ldns_rdf *qname,
72
ldns_rr_type qtype,
73
ldns_rr_list *nsec3s);
74
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
77
* placed there
78
*/
79
ldns_status ldns_verify_denial(ldns_pkt *pkt,
80
ldns_rdf *name,
81
ldns_rr_type type,
82
ldns_rr_list **nsec_rrs,
83
ldns_rr_list **nsec_rr_sigs);
84
85
ldns_pkt *read_hex_pkt(char *filename);
86
ldns_buffer *read_hex_buffer(char *filename);
87
void init_root(void);
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, ...);
94
95
/* screen.c */
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);
99
100
#endif /* _DRILL_H_ */
101
102