Go to the source code of this file.
Functions | |
ldns_rdf * | ldns_dname_cat_clone (const ldns_rdf *rd1, const ldns_rdf *rd2) |
concatenates two dnames together More... | |
ldns_status | ldns_dname_cat (ldns_rdf *rd1, const ldns_rdf *rd2) |
concatenates rd2 after rd1 (rd2 is copied, rd1 is modified) More... | |
ldns_rdf * | ldns_dname_reverse (const ldns_rdf *dname) |
Returns a clone of the given dname with the labels reversed. More... | |
ldns_rdf * | ldns_dname_clone_from (const ldns_rdf *d, uint16_t n) |
Clones the given dname from the nth label on. More... | |
ldns_rdf * | ldns_dname_left_chop (const ldns_rdf *d) |
chop one label off the left side of a dname. More... | |
uint8_t | ldns_dname_label_count (const ldns_rdf *r) |
count the number of labels inside a LDNS_RDF_DNAME type rdf. More... | |
ldns_rdf * | ldns_dname_new (uint16_t s, void *d) |
Create a new dname rdf from a string. More... | |
ldns_rdf * | ldns_dname_new_frm_str (const char *str) |
creates a new dname rdf from a string. More... | |
ldns_rdf * | ldns_dname_new_frm_data (uint16_t size, const void *data) |
Create a new dname rdf from data (the data is copied) More... | |
void | ldns_dname2canonical (const ldns_rdf *rd) |
Put a dname into canonical fmt - ie. More... | |
bool | ldns_dname_is_subdomain (const ldns_rdf *sub, const ldns_rdf *parent) |
test whether the name sub falls under parent (i.e. More... | |
int | ldns_dname_compare (const ldns_rdf *dname1, const ldns_rdf *dname2) |
Compares the two dname rdf's according to the algorithm for ordering in RFC4034 Section 6. More... | |
int | ldns_dname_is_wildcard (const ldns_rdf *dname) |
Check if dname is a wildcard, starts with *. More... | |
int | ldns_dname_match_wildcard (const ldns_rdf *dname, const ldns_rdf *wildcard) |
Checks whether the dname matches the given wildcard. More... | |
int | ldns_dname_interval (const ldns_rdf *prev, const ldns_rdf *middle, const ldns_rdf *next) |
check if middle lays in the interval defined by prev and next prev <= middle < next. More... | |
bool | ldns_dname_str_absolute (const char *dname_str) |
Checks whether the given dname string is absolute (i.e. More... | |
bool | ldns_dname_absolute (const ldns_rdf *rdf) |
Checks whether the given dname is absolute (i.e. More... | |
ldns_rdf * | ldns_dname_label (const ldns_rdf *rdf, uint8_t labelpos) |
look inside the rdf and if it is an LDNS_RDF_TYPE_DNAME try and retrieve a specific label. More... | |
concatenates two dnames together
[in] | rd1 | the leftside |
[in] | rd2 | the rightside |
Definition at line 52 of file dname.c.
References ldns_rdf_get_type(), ldns_rdf_size(), and LDNS_RDF_TYPE_DNAME.
ldns_status ldns_dname_cat | ( | ldns_rdf * | rd1, |
const ldns_rdf * | rd2 | ||
) |
concatenates rd2 after rd1 (rd2 is copied, rd1 is modified)
[in] | rd1 | the leftside |
[in] | rd2 | the rightside |
Definition at line 90 of file dname.c.
References ldns_rdf_get_type(), ldns_rdf_size(), LDNS_RDF_TYPE_DNAME, and LDNS_STATUS_ERR.
Returns a clone of the given dname with the labels reversed.
[in] | d | the dname to reverse |
Definition at line 124 of file dname.c.
References LDNS_FREE, ldns_rdf_get_type(), ldns_rdf_new(), ldns_rdf_size(), LDNS_RDF_TYPE_DNAME, and LDNS_XMALLOC.
Clones the given dname from the nth label on.
[in] | d | The dname to clone |
[in] | n | the label nr to clone from, if this is 0, the complete dname is cloned |
Definition at line 160 of file dname.c.
References ldns_dname_label_count(), ldns_dname_new_frm_data(), ldns_rdf_data(), ldns_rdf_get_type(), ldns_rdf_size(), and LDNS_RDF_TYPE_DNAME.
chop one label off the left side of a dname.
so wwww.nlnetlabs.nl, becomes nlnetlabs.nl This new name is a clone and must be freed with ldns_deep_free()
[in] | d | the dname to chop |
Definition at line 189 of file dname.c.
References ldns_dname_label_count(), ldns_dname_new_frm_data(), ldns_rdf_data(), ldns_rdf_get_type(), ldns_rdf_size(), and LDNS_RDF_TYPE_DNAME.
uint8_t ldns_dname_label_count | ( | const ldns_rdf * | r | ) |
count the number of labels inside a LDNS_RDF_DNAME type rdf.
[in] | *r | the rdf |
Definition at line 214 of file dname.c.
References ldns_rdf_data(), ldns_rdf_get_type(), ldns_rdf_size(), and LDNS_RDF_TYPE_DNAME.
ldns_rdf* ldns_dname_new | ( | uint16_t | s, |
void * | data | ||
) |
Create a new dname rdf from a string.
The data pointer is stored in the rdf, not a copy of the data
[in] | s | the size of the new dname |
[in] | *data | pointer to the actual data |
Definition at line 250 of file dname.c.
References LDNS_MALLOC, ldns_rdf_set_data(), ldns_rdf_set_size(), ldns_rdf_set_type(), and LDNS_RDF_TYPE_DNAME.
ldns_rdf* ldns_dname_new_frm_str | ( | const char * | str | ) |
creates a new dname rdf from a string.
[in] | str | string to use |
Definition at line 268 of file dname.c.
References ldns_rdf_new_frm_str(), and LDNS_RDF_TYPE_DNAME.
ldns_rdf* ldns_dname_new_frm_data | ( | uint16_t | size, |
const void * | data | ||
) |
Create a new dname rdf from data (the data is copied)
[in] | size | the size of the data |
[in] | *data | pointer to the actual data |
Definition at line 274 of file dname.c.
References ldns_rdf_new_frm_data(), and LDNS_RDF_TYPE_DNAME.
void ldns_dname2canonical | ( | const ldns_rdf * | rdf | ) |
Put a dname into canonical fmt - ie.
lowercase it
[in] | rdf | the dname to lowercase |
Definition at line 280 of file dname.c.
References LDNS_DNAME_NORMALIZE, ldns_rdf_data(), ldns_rdf_get_type(), ldns_rdf_size(), and LDNS_RDF_TYPE_DNAME.
test whether the name sub falls under parent (i.e.
is a subdomain of parent). This function will return false if the given dnames are equal.
[in] | sub | the name to test |
[in] | parent | the parent's name |
Definition at line 296 of file dname.c.
References ldns_dname2canonical(), ldns_dname_clone_from(), ldns_dname_label(), ldns_dname_label_count(), ldns_rdf_compare(), ldns_rdf_deep_free(), ldns_rdf_get_type(), and LDNS_RDF_TYPE_DNAME.
Compares the two dname rdf's according to the algorithm for ordering in RFC4034 Section 6.
[in] | dname1 | First dname rdf to compare |
[in] | dname2 | Second dname rdf to compare |
Definition at line 359 of file dname.c.
References ldns_dname_label_count(), LDNS_DNAME_NORMALIZE, ldns_rdf_data(), ldns_rdf_get_type(), and LDNS_RDF_TYPE_DNAME.
int ldns_dname_is_wildcard | ( | const ldns_rdf * | dname | ) |
Check if dname is a wildcard, starts with *.
[in] | dname | the rdf to look in |
Definition at line 456 of file dname.c.
References ldns_dname_label_count(), and ldns_rdf_data().
Checks whether the dname matches the given wildcard.
[in] | dname | The dname to check |
[in] | wildcard | The wildcard to check with |
Definition at line 464 of file dname.c.
References ldns_dname_compare(), ldns_dname_is_subdomain(), ldns_dname_is_wildcard(), ldns_dname_left_chop(), and ldns_rdf_deep_free().
check if middle lays in the interval defined by prev and next prev <= middle < next.
This is useful for nsec checking
[in] | prev | the previous dname |
[in] | middle | the dname to check |
[in] | next | the next dname return 0 on error or unknown, -1 when middle is in the interval, +1 when not |
Definition at line 488 of file dname.c.
References ldns_dname_compare(), ldns_rdf_get_type(), and LDNS_RDF_TYPE_DNAME.
bool ldns_dname_str_absolute | ( | const char * | dname_str | ) |
Checks whether the given dname is absolute (i.e.
ends with a '.')
[in] | *dname | a rdf representing the dname |
Definition at line 548 of file dname.c.
References ldns_dname_str_absolute(), LDNS_FREE, and ldns_rdf2str().
look inside the rdf and if it is an LDNS_RDF_TYPE_DNAME try and retrieve a specific label.
The labels are numbered starting from 0 (left most).
[in] | rdf | the rdf to look in |
[in] | labelpos | return the label with this number |
Definition at line 560 of file dname.c.
References LDNS_FREE, ldns_rdf_data(), ldns_rdf_get_type(), ldns_rdf_new(), ldns_rdf_size(), LDNS_RDF_TYPE_DNAME, and LDNS_XMALLOC.