Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
DNSTABLE_MERGE_FUNC(3)					  DNSTABLE_MERGE_FUNC(3)

NAME
     dnstable_merge_func - libmtbl merge function for dnstable key-value entries

SYNOPSIS
     #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);

DESCRIPTION
     This is the libmtbl merging function for dnstable key-value entries. dnsta-
     ble 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  deal-
     ing 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  dnsta-
     ble  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  pro-
     vided  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  en-
     coding format. These types encode a triplet of varint-encoded integers rep-
     resenting	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 ALSO
     dnstable-encoding(5), mtbl_merger(3)

				   07/02/2021		  DNSTABLE_MERGE_FUNC(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dnstable_merge_func&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help