Utility functions for parsing, base32(DNS variant) and base64 encoding and decoding, Hex, Time units, Escape codes. More...
Data Structures | |
struct | sldns_struct_lookup_table |
A general purpose lookup table. More... | |
Typedefs | |
typedef struct sldns_struct_lookup_table | sldns_lookup_table |
Functions | |
sldns_lookup_table * | sldns_lookup_by_name (sldns_lookup_table table[], const char *name) |
Looks up the table entry by name, returns NULL if not found. | |
sldns_lookup_table * | sldns_lookup_by_id (sldns_lookup_table table[], int id) |
Looks up the table entry by id, returns NULL if not found. | |
time_t | sldns_mktime_from_utc (const struct tm *tm) |
Convert TM to seconds since epoch (midnight, January 1st, 1970). | |
struct tm * | sldns_serial_arithmetics_gmtime_r (int32_t time, time_t now, struct tm *result) |
The function interprets time as the number of seconds since epoch with respect to now using serial arithmetics (rfc1982). | |
uint32_t | sldns_str2period (const char *nptr, const char **endptr, int *overflow) |
converts a ttl value (like 5d2h) to a long. | |
int | sldns_hexdigit_to_int (char ch) |
Returns the int value of the given (hex) digit. | |
size_t | sldns_b64_ntop_calculate_size (size_t srcsize) |
calculates the size needed to store the result of b64_ntop | |
int | sldns_b64_ntop (uint8_t const *src, size_t srclength, char *target, size_t targsize) |
int | sldns_b64url_ntop (uint8_t const *src, size_t srclength, char *target, size_t targsize) |
size_t | sldns_b64_pton_calculate_size (size_t srcsize) |
calculates the size needed to store the result of sldns_b64_pton | |
int | sldns_b64_pton (char const *src, uint8_t *target, size_t targsize) |
int | sldns_b64url_pton (char const *src, size_t srcsize, uint8_t *target, size_t targsize) |
int | sldns_b64_contains_nonurl (char const *src, size_t srcsize) |
size_t | sldns_b32_ntop_calculate_size (size_t src_data_length) |
calculates the size needed to store the result of b32_ntop | |
size_t | sldns_b32_ntop_calculate_size_no_padding (size_t src_data_length) |
int | sldns_b32_ntop (const uint8_t *src_data, size_t src_data_length, char *target_text_buffer, size_t target_text_buffer_size) |
int | sldns_b32_ntop_extended_hex (const uint8_t *src_data, size_t src_data_length, char *target_text_buffer, size_t target_text_buffer_size) |
size_t | sldns_b32_pton_calculate_size (size_t src_text_length) |
calculates the size needed to store the result of b32_pton | |
int | sldns_b32_pton (const char *src_text, size_t src_text_length, uint8_t *target_data_buffer, size_t target_data_buffer_size) |
int | sldns_b32_pton_extended_hex (const char *src_text, size_t src_text_length, uint8_t *target_data_buffer, size_t target_data_buffer_size) |
int | sldns_parse_escape (uint8_t *ch_p, const char **str_p) |
int | sldns_parse_char (uint8_t *ch_p, const char **str_p) |
Parse one character, with escape codes,. | |
Utility functions for parsing, base32(DNS variant) and base64 encoding and decoding, Hex, Time units, Escape codes.
sldns_lookup_table * sldns_lookup_by_name | ( | sldns_lookup_table | table[], |
const char * | name | ||
) |
Looks up the table entry by name, returns NULL if not found.
[in] | table | the lookup table to search in |
[in] | name | what to search for |
sldns_lookup_table * sldns_lookup_by_id | ( | sldns_lookup_table | table[], |
int | id | ||
) |
Looks up the table entry by id, returns NULL if not found.
[in] | table | the lookup table to search in |
[in] | id | what to search for |
time_t sldns_mktime_from_utc | ( | const struct tm * | tm | ) |
Convert TM to seconds since epoch (midnight, January 1st, 1970).
Like timegm(3), which is not always available.
[in] | tm | a struct tm* with the date |
Referenced by cfg_convert_timeval(), sldns_str2wire_time_buf(), and xml_convertdate().
struct tm * sldns_serial_arithmetics_gmtime_r | ( | int32_t | time, |
time_t | now, | ||
struct tm * | result | ||
) |
The function interprets time as the number of seconds since epoch with respect to now using serial arithmetics (rfc1982).
That number of seconds is then converted to broken-out time information. This is especially useful when converting the inception and expiration fields of RRSIG records.
[in] | time | number of seconds since epoch (midnight, January 1st, 1970) to be interpreted as a serial arithmetics number relative to now. |
[in] | now | number of seconds since epoch (midnight, January 1st, 1970) to which the time value is compared to determine the final value. |
[out] | result | the struct with the broken-out time information |
Referenced by sldns_wire2str_time_scan().
uint32_t sldns_str2period | ( | const char * | nptr, |
const char ** | endptr, | ||
int * | overflow | ||
) |
converts a ttl value (like 5d2h) to a long.
[in] | nptr | the start of the string |
[out] | endptr | points to the last char in case of error |
[out] | overflow | returns if the string causes integer overflow error, the number is too big, string of digits too long. |
Referenced by http_parse_ttl(), rrinternal_get_ttl(), sldns_fp2wire_rr_buf(), and sldns_str2wire_period_buf().
int sldns_hexdigit_to_int | ( | char | ch | ) |
Returns the int value of the given (hex) digit.
[in] | ch | the hex char to convert |
Referenced by cfg_parse_nsid(), hex_pton(), hex_to_buf(), rrinternal_spool_hex(), sldns_str2wire_atma_buf(), sldns_str2wire_hex_buf(), sldns_str2wire_nsap_buf(), and sldns_str2wire_nsec3_salt_buf().
int sldns_parse_char | ( | uint8_t * | ch_p, |
const char ** | str_p | ||
) |
Parse one character, with escape codes,.
ch_p | the parsed character |
str_p | the string. moved along for characters read. |
Parse one character, with escape codes,.
Referenced by sldns_str2wire_long_str_buf(), and sldns_str2wire_str_buf().