From: Libor Peltan Date: Tue, 4 Jan 2022 09:18:41 +0000 (+0100) Subject: zone-diff: optimization: don't compare identical rdata X-Git-Tag: v3.3.dev~236^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2cf201cde1742b114d13dbc8a4fb49753b11dd3a;p=thirdparty%2Fknot-dns.git zone-diff: optimization: don't compare identical rdata --- diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 59052545a5..42ee8eee0d 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -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); diff --git a/src/libknot/rdataset.c b/src/libknot/rdataset.c index fe3e0e5446..0b9b4fd8c6 100644 --- a/src/libknot/rdataset.c +++ b/src/libknot/rdataset.c @@ -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; }