void (*getownercase)(const dns_rdataset_t *rdataset, dns_name_t *name);
isc_result_t (*addglue)(dns_rdataset_t *rdataset,
dns_dbversion_t *version, dns_message_t *msg);
- bool (*equals)(const dns_rdataset_t *rdataset1,
- const dns_rdataset_t *rdataset2);
} dns_rdatasetmethods_t;
#define DNS_RDATASET_MAGIC ISC_MAGIC('D', 'N', 'S', 'R')
* Display trust in textual form.
*/
-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.
- */
ISC_LANG_ENDDECLS
rdataset->ttl = ttl;
sigrdataset->ttl = ttl;
}
-
-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_setownercase(dns_rdataset_t *rdataset, const dns_name_t *name);
static void
rdataset_getownercase(const dns_rdataset_t *rdataset, dns_name_t *name);
-static bool
-rdataset_equals(const dns_rdataset_t *rdataset1,
- const dns_rdataset_t *rdataset2);
/*% Note: the "const void *" are just to make qsort happy. */
static int
.clearprefetch = rdataset_clearprefetch,
.setownercase = rdataset_setownercase,
.getownercase = rdataset_getownercase,
- .equals = rdataset_equals,
};
/* Fixed RRSet helper macros */
unlock:
dns_db_unlocknode(header->db, header->node, isc_rwlocktype_read);
}
-
-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;
- }
-
- unsigned char *header1 = rdataset1->slab.raw - sizeof(dns_slabheader_t);
- unsigned char *header2 = rdataset2->slab.raw - sizeof(dns_slabheader_t);
- return dns_rdataslab_equalx(header1, header2, sizeof(dns_slabheader_t),
- rdataset1->rdclass, rdataset2->type);
-}