|
NAMEdnstable_merge_func - libmtbl merge function for dnstable key-value entriesSYNOPSIS#include <dnstable.h>void dnstable_merge_func(void *clos, const uint8_t *key, size_t len_key, const uint8_t *val0, size_t len_val0, const uint8_t *val1, size_t len_val1, uint8_t **merged_val, size_t *len_merged_val); DESCRIPTIONThis is the libmtbl merging function for dnstable key-value entries. dnstable is built on libmtbl, and libmtbl requires a “merge function” to resolve conflicting values between identical keys. The symbol dnstable_merge_func can be provided to libmtbl functions requiring a merge function when dealing with dnstable key-value data.There are four dnstable MTBL key-value entry types. dnstable_merge_func handles them in the following manner: ENTRY_TYPE_RRSET_NAME_FWD and ENTRY_TYPE_RDATA_NAME_REV entries: In dnstable versions before 0.12.0, these have no associated value (that is, the values for these types is zero length). A zero-length byte array is provided as the merged value. As of version 0.12.0, the value is an RRtype union described in the dnstable-encoding(5) manual page. ENTRY_TYPE_RRSET and ENTRY_TYPE_RDATA entries: These have an identical encoding format. These types encode a triplet of varint-encoded integers representing the time_first, time_last, and count value fields. A new triplet of varint-encoded integers is generated as the merged value as follows: •The earliest (that is, smallest) of the two
time_first values is taken as the merged time_first value.
•The latest (that is, largest) of the two
time_last values is taken as the merged time_last value.
•The two count values are added
together.
SEE ALSOdnstable-encoding(5), mtbl_merger(3)
Visit the GSP FreeBSD Man Page Interface. |