diff --git a/src/knot/server/zones.c b/src/knot/server/zones.c index f360896361ca25e3c90e2134013c4704c1d12530..4e2761e76a9d79aac91befff13505aef6c1fa031 100644 --- a/src/knot/server/zones.c +++ b/src/knot/server/zones.c @@ -1002,11 +1002,6 @@ static int zones_journal_apply(knot_zone_t *zone) zd->conf->name, knot_strerror(apply_ret)); ret = KNOT_ERROR; - - // Cleanup old and new contents - xfrin_rollback_update(zone->contents, - &contents, - chsets->changes); } else { /* Switch zone immediately. */ log_server_info("Zone '%s' serial %u -> %u.\n", diff --git a/src/knot/zone/zone-dump.c b/src/knot/zone/zone-dump.c index edda4dfc326f9ede4fd9fd494f340025a13acbd9..aa630efef57da7bbd31b35bbcbddb74e3be19ca4 100644 --- a/src/knot/zone/zone-dump.c +++ b/src/knot/zone/zone-dump.c @@ -134,7 +134,7 @@ int zone_dump_text(knot_zone_contents_t *zone, FILE *file) params.buflen = DUMP_BUF_LEN; params.rr_count = 0; params.origin = knot_node_owner(knot_zone_contents_apex(zone)); - params.style = &KNOT_DUMP_STYLE_DNSSEC; + params.style = &KNOT_DUMP_STYLE_DEFAULT; // Dump standard zone records. knot_zone_contents_tree_apply_inorder(zone, node_dump_text, ¶ms); diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c index f7fac8ba45d2c67720327cfe4c8841478bbe74b1..d350683d34bb82dcb9296314601e5e12a051cdfe 100644 --- a/src/libknot/rrset-dump.c +++ b/src/libknot/rrset-dump.c @@ -62,17 +62,6 @@ const knot_dump_style_t KNOT_DUMP_STYLE_DEFAULT = { .human_tmstamp = true }; -const knot_dump_style_t KNOT_DUMP_STYLE_DNSSEC = { - .wrap = true, - .show_class = true, - .show_ttl = true, - .verbose = true, - .reduce = true, - .human_ttl = false, - .human_tmstamp = false -}; - - static void dump_string(rrset_dump_params_t *p, const char *str) { size_t in_len = strlen(str); diff --git a/src/libknot/rrset.c b/src/libknot/rrset.c index 65ec5e90812f322c70a65edac5216e5db2e0da6a..cc3f3981cc86bde066728ada82752f8a19c0f4cb 100644 --- a/src/libknot/rrset.c +++ b/src/libknot/rrset.c @@ -156,11 +156,19 @@ int rrset_rdata_compare_one(const knot_rrset_t *rrset1, int cmp = 0; size_t offset = 0; + // TODO: this can be much simpler: Get data for memcmp and sizes in ifs + // compare only once for (int i = 0; desc->block_types[i] != KNOT_RDATA_WF_END; i++) { if (descriptor_item_is_dname(desc->block_types[i])) { const knot_dname_t *dname1 = r1 + offset; + int size1 = knot_dname_size(dname1); const knot_dname_t *dname2 = r2 + offset; - cmp = knot_dname_cmp(dname1, dname2); + int size2 = knot_dname_size(dname2); + cmp = memcmp(dname1, dname2, + size1 <= size2 ? size1 : size2); + if (cmp == 0 && size1 == size2) { + cmp = size1 < size2 ? -1 : 1; + } offset += knot_dname_size(dname1); } else if (descriptor_item_is_fixed(desc->block_types[i])) { cmp = memcmp(r1 + offset, r2 + offset,