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

FreeBSD Manual Pages

  
 
  

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.
       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 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+14.3.quarterly>

home | help