unbound: sldns/parseutil.h File Reference

unbound 0.1

Data Structures | Typedefs | Functions
parseutil.h File Reference

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,.

## Detailed Description

Utility functions for parsing, base32(DNS variant) and base64 encoding and decoding, Hex, Time units, Escape codes.

## Function Documentation

## ◆ sldns_lookup_by_name()

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.

Parameters

  [in] | table | the lookup table to search in
  [in] | name | what to search for

Returns
  the item found

## ◆ sldns_lookup_by_id()

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.

Parameters

  [in] | table | the lookup table to search in
  [in] | id | what to search for

Returns
  the item found

## ◆ sldns_mktime_from_utc()

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.

Parameters

  [in] | tm | a struct tm* with the date

Returns
  the seconds since epoch

Referenced by cfg_convert_timeval(), sldns_str2wire_time_buf(), and xml_convertdate().

## ◆ sldns_serial_arithmetics_gmtime_r()

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.

Parameters

  [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

Returns
  result on success or NULL on error

Referenced by sldns_wire2str_time_scan().

## ◆ sldns_str2period()

uint32_t sldns_str2period | ( | const char * | nptr,
|  | const char ** | endptr,
|  | int * | overflow )

converts a ttl value (like 5d2h) to a long.

Parameters

  [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.

Returns
  the convert duration value

Referenced by http_parse_ttl(), rrinternal_get_ttl(), sldns_fp2wire_rr_buf(), and sldns_str2wire_period_buf().

## ◆ sldns_hexdigit_to_int()

int sldns_hexdigit_to_int | ( | char | ch | ) |

Returns the int value of the given (hex) digit.

Parameters

  [in] | ch | the hex char to convert

Returns
  the converted decimal value

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().

## ◆ sldns_parse_char()

int sldns_parse_char | ( | uint8_t * | ch_p,
|  | const char ** | str_p )

Parse one character, with escape codes,.

Parameters

  ch_p | the parsed character
  str_p | the string. moved along for characters read.

Returns
  0 on error

Parse one character, with escape codes,.

Referenced by sldns_str2wire_long_str_buf(), and sldns_str2wire_str_buf().