DNSTABLE_ENTRY(3)DNSTABLE_ENTRY(3)NAMEdnstable_entry - dnstable entry objects
SYNOPSIS
#include <dnstable.h>
typedef enum {
DNSTABLE_ENTRY_TYPE_RRSET,
DNSTABLE_ENTRY_TYPE_RRSET_NAME_FWD,
DNSTABLE_ENTRY_TYPE_RDATA,
DNSTABLE_ENTRY_TYPE_RDATA_NAME_REV,
} dnstable_entry_type;
struct dnstable_entry *
dnstable_entry_decode(
const uint8_t *key, size_t len_key,
const uint8_t *val, size_t len_val);
void
dnstable_entry_destroy(struct dnstable_entry **ent);
char *
dnstable_entry_to_text(struct dnstable_entry *ent);
char *
dnstable_entry_to_json(struct dnstable_entry *ent);
dnstable_entry_type
dnstable_entry_get_type(struct dnstable_entry *ent);
/* valid for entry types:
* DNSTABLE_ENTRY_TYPE_RRSET
* DNSTABLE_ENTRY_TYPE_RRSET_NAME_FWD
* DNSTABLE_ENTRY_TYPE_RDATA
*/
dnstable_res
dnstable_entry_get_rrname(
struct dnstable_entry *ent,
const uint8_t **owner, size_t *len_owner);
/* valid for entry types:
* DNSTABLE_ENTRY_TYPE_RRSET
* DNSTABLE_ENTRY_TYPE_RDATA
*/
dnstable_res
dnstable_entry_get_rrtype(
struct dnstable_entry *ent,
uint16_t *rrtype);
/* valid for entry types:
* DNSTABLE_ENTRY_TYPE_RRSET
*/
dnstable_res
dnstable_entry_get_bailiwick(
struct dnstable_entry *ent,
const uint8_t **bailiwick, size_t *len_bailiwick);
/* valid for entry types:
* DNSTABLE_ENTRY_TYPE_RRSET
* DNSTABLE_ENTRY_TYPE_RDATA
*/
dnstable_res
dnstable_entry_get_num_rdata(
struct dnstable_entry *ent,
size_t *num_rdata);
/* valid for entry types:
* DNSTABLE_ENTRY_TYPE_RRSET
* DNSTABLE_ENTRY_TYPE_RDATA
*/
dnstable_res
dnstable_entry_get_rdata(
struct dnstable_entry *ent,
const uint8_t **rdata, size_t *len_rdata);
/* valid for entry types:
* DNSTABLE_ENTRY_TYPE_RDATA_NAME_REV
*/
dnstable_res
dnstable_entry_get_rdata_name(
struct dnstable_entry *ent,
const uint8_t **rdata_name, size_t *len_rdata_name);
/* valid for entry types:
* DNSTABLE_ENTRY_TYPE_RRSET
* DNSTABLE_ENTRY_TYPE_RDATA
*/
dnstable_res
dnstable_entry_get_time_first(
struct dnstable_entry *ent,
uint64_t *time_first);
/* valid for entry types:
* DNSTABLE_ENTRY_TYPE_RRSET
* DNSTABLE_ENTRY_TYPE_RDATA
*/
dnstable_res
dnstable_entry_get_time_last(
struct dnstable_entry *ent,
uint64_t *time_last);
/* valid for entry types:
* DNSTABLE_ENTRY_TYPE_RRSET
* DNSTABLE_ENTRY_TYPE_RDATA
*/
dnstable_res
dnstable_entry_get_count(
struct dnstable_entry *ent,
uint64_t *count);
DESCRIPTIONdnstable_entry objects represent the data entries stored in dnstable
data files. Various dnstable library functions return dnstable_entry
objects through the dnstable_iter(3) interface, or they can be created
directly by the dnstable_entry_decode() function, which parses raw
dnstable-encoded key/value pairs.
A dnstable_entry object has a particular type which can be retrieved
with the dnstable_entry_get_type() function. Possible values are
enumerated in dnstable_entry_type. For details about how each type is
encoded, see dnstable-encoding(5).
For presentation or interchange purposes, the dnstable_entry_to_text()
and dnstable_entry_to_json() functions can be used to generate the text
or JSON-encoded form of a dnstable_entry object. These functions return
a dynamically allocated string which must be free()'d by the caller.
The remaining dnstable_entry_get_*() accessor functions return
particular fields of the dnstable_entry object, if present.
dnstable_res_success will be returned if the entry has the requested
field, and dnstable_res_failure if not. None of the accessor functions
allocate memory. For the accessors which return pointers, these
pointers are valid as long as the dnstable_entry object is valid. For
field descriptions, see dnstable-encoding(5).
SEE ALSOdnstable-encoding(5)
11/10/2015 DNSTABLE_ENTRY(3)