00001 /* 00002 * dname.h 00003 * 00004 * dname definitions 00005 * 00006 * a Net::DNS like library for C 00007 * 00008 * (c) NLnet Labs, 2004, 2005 00009 * 00010 * See the file LICENSE for the license 00011 */ 00012 00013 #ifndef _LDNS_DNAME_H 00014 #define _LDNS_DNAME_H 00015 00016 #include <ldns/common.h> 00017 #include <ldns/rdata.h> 00018 00019 #define LDNS_DNAME_NORMALIZE tolower 00020 00027 ldns_rdf *ldns_dname_cat_clone(ldns_rdf *rd1, ldns_rdf *rd2); 00034 ldns_status ldns_dname_cat(ldns_rdf *rd1, ldns_rdf *rd2); 00041 ldns_rdf *ldns_dname_left_chop(ldns_rdf *d); 00047 uint8_t ldns_dname_label_count(const ldns_rdf *r); 00048 00054 ldns_rdf *ldns_dname_new_frm_str(const char *str); 00055 00062 ldns_rdf *ldns_dname_new(uint16_t s, void *data); 00063 00070 ldns_rdf *ldns_dname_new_frm_data(uint16_t size, const void *data); 00071 00077 void ldns_dname2canonical(const ldns_rdf *rdf); 00078 00086 bool ldns_dname_is_subdomain(const ldns_rdf *sub, const ldns_rdf *parent); 00087 00093 bool ldns_dname_str_absolute(const char *dname_str); 00094 00103 ldns_rdf * ldns_dname_label(const ldns_rdf *rdf, uint8_t labelpos); 00104 00105 #endif /* !_LDNS_DNAME_H */