]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
zone-diff: optimization: don't compare identical rdata
authorLibor Peltan <libor.peltan@nic.cz>
Tue, 4 Jan 2022 09:18:41 +0000 (10:18 +0100)
committerDaniel Salzman <daniel.salzman@nic.cz>
Thu, 6 Jan 2022 18:30:47 +0000 (19:30 +0100)
src/knot/updates/zone-update.c
src/libknot/rdataset.c

index 59052545a569a71f76f508304f227c19d13b58b4..42ee8eee0d31094ee6c835c9d70b1b0f6fb1a3f8 100644 (file)
@@ -1048,7 +1048,7 @@ static bool zone_diff_rdataset(const zone_contents_t *c, uint16_t rrtype)
 {
        const knot_rdataset_t *a = node_rdataset(binode_counterpart(c->apex), rrtype);
        const knot_rdataset_t *b = node_rdataset(c->apex, rrtype);
-       if (a == NULL && b == NULL) {
+       if ((a == NULL && b == NULL) || (a != NULL && b != NULL && a->rdata == b->rdata)) {
                return false;
        } else {
                return !knot_rdataset_eq(a, b);
index fe3e0e54462d0dfeb0add9b9b98f3b89387c4224..0b9b4fd8c611358a74ad1f62e3733cf7965966b8 100644 (file)
@@ -249,7 +249,7 @@ bool knot_rdataset_member(const knot_rdataset_t *rrs, const knot_rdata_t *rr)
 _public_
 bool knot_rdataset_subset(const knot_rdataset_t *subset, const knot_rdataset_t *of)
 {
-       if (subset == NULL) {
+       if (subset == NULL || (of != NULL && subset->rdata == of->rdata)) {
                return true;
        }