isc_result_t (*addglue)(dns_rdataset_t *rdataset,
dns_dbversion_t *version, dns_message_t *msg);
dns_slabheader_t *(*getheader)(const dns_rdataset_t *rdataset);
- bool (*equals)(const dns_rdataset_t *rdataset1,
- const dns_rdataset_t *rdataset2);
};
#define DNS_RDATASET_MAGIC ISC_MAGIC('D', 'N', 'S', 'R')
* \li 'rdataset' is a valid rdataset.
*/
-bool
-dns_rdataset_equals(const dns_rdataset_t *rdataset1,
- const dns_rdataset_t *rdataset2);
-/*%<
- * Returns true if the rdata in the rdataset is equal.
- *
- * Requires:
- * \li 'rdataset1' is a valid rdataset.
- * \li 'rdataset2' is a valid rdataset.
- */
-
/*%
* Returns true if the rdataset is of type 'type', or type RRSIG
* and covers 'type'.
return NULL;
}
-
-bool
-dns_rdataset_equals(const dns_rdataset_t *rdataset1,
- const dns_rdataset_t *rdataset2) {
- REQUIRE(DNS_RDATASET_VALID(rdataset1));
- REQUIRE(DNS_RDATASET_VALID(rdataset2));
-
- if (rdataset1->methods->equals != NULL &&
- rdataset1->methods->equals == rdataset2->methods->equals)
- {
- return (rdataset1->methods->equals)(rdataset1, rdataset2);
- }
-
- return false;
-}
rdataset_getownercase(const dns_rdataset_t *rdataset, dns_name_t *name);
static dns_slabheader_t *
rdataset_getheader(const dns_rdataset_t *rdataset);
-static bool
-rdataset_equals(const dns_rdataset_t *rdataset1,
- const dns_rdataset_t *rdataset2);
dns_rdatasetmethods_t dns_rdataslab_rdatasetmethods = {
.disassociate = rdataset_disassociate,
.setownercase = rdataset_setownercase,
.getownercase = rdataset_getownercase,
.getheader = rdataset_getheader,
- .equals = rdataset_equals,
};
/*% Note: the "const void *" are just to make qsort happy. */
return header - 1;
}
-static bool
-rdataset_equals(const dns_rdataset_t *rdataset1,
- const dns_rdataset_t *rdataset2) {
- if (rdataset1->rdclass != rdataset2->rdclass ||
- rdataset1->type != rdataset2->type)
- {
- return false;
- }
-
- dns_slabheader_t *header1 = (dns_slabheader_t *)rdataset1->slab.raw - 1;
- dns_slabheader_t *header2 = (dns_slabheader_t *)rdataset2->slab.raw - 1;
-
- return dns_rdataslab_equalx(header1, header2, rdataset1->rdclass,
- rdataset2->type);
-}
-
dns_slabtop_t *
dns_slabtop_new(isc_mem_t *mctx, dns_typepair_t typepair) {
dns_slabtop_t *top = isc_mem_get(mctx, sizeof(*top));