dname.h
Go to the documentation of this file.
1 /*
2  * dname.h
3  *
4  * dname definitions
5  *
6  * a Net::DNS like library for C
7  *
8  * (c) NLnet Labs, 2004-2006
9  *
10  * See the file LICENSE for the license
11  */
12 
39 #ifndef LDNS_DNAME_H
40 #define LDNS_DNAME_H
41 
42 #include <ldns/common.h>
43 #include <ldns/rdata.h>
44 
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48 
49 #define LDNS_DNAME_NORMALIZE tolower
50 
57 ldns_rdf *ldns_dname_cat_clone(const ldns_rdf *rd1, const ldns_rdf *rd2);
58 
66 
74 
84 ldns_rdf *
85 ldns_dname_clone_from(const ldns_rdf *d, uint16_t n);
86 
95 
101 uint8_t ldns_dname_label_count(const ldns_rdf *r);
102 
108 ldns_rdf *ldns_dname_new_frm_str(const char *str);
109 
117 ldns_rdf *ldns_dname_new(uint16_t s, void *data);
118 
126 ldns_rdf *ldns_dname_new_frm_data(uint16_t size, const void *data);
127 
133 void ldns_dname2canonical(const ldns_rdf *rdf);
134 
143 bool ldns_dname_is_subdomain(const ldns_rdf *sub, const ldns_rdf *parent);
144 
152 int ldns_dname_compare(const ldns_rdf *dname1, const ldns_rdf *dname2);
153 
163 int ldns_dname_match_wildcard(const ldns_rdf *dname, const ldns_rdf *wildcard);
164 
173 int ldns_dname_interval(const ldns_rdf *prev, const ldns_rdf *middle, const ldns_rdf *next);
174 
180 bool ldns_dname_str_absolute(const char *dname_str);
181 
187 bool ldns_dname_absolute(const ldns_rdf *dname);
188 
197 ldns_rdf * ldns_dname_label(const ldns_rdf *rdf, uint8_t labelpos);
198 
204 int ldns_dname_is_wildcard(const ldns_rdf* dname);
205 
206 #ifdef __cplusplus
207 }
208 #endif
209 
210 #endif /* LDNS_DNAME_H */