]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Remove the logic that applies differences when over limit
authorOndřej Surý <ondrej@isc.org>
Thu, 12 Oct 2023 15:48:56 +0000 (17:48 +0200)
committerOndřej Surý <ondrej@isc.org>
Thu, 19 Oct 2023 12:57:25 +0000 (14:57 +0200)
The ixfr_putdata() and axfr_putdata() had a logic to apply dns_diff when
the number of pending tuples went over 100.  Since we are going to
offload the XFR data processing, we don't need to do that anymore.

lib/dns/xfrin.c

index 9858117135a6b093460e2181a7a9f1474a60118c..68ea877a588bf9b8cac3820538693b0e98d21bde 100644 (file)
@@ -128,7 +128,6 @@ struct dns_xfrin {
        dns_db_t *db;
        dns_dbversion_t *ver;
        dns_diff_t diff; /*%< Pending database changes */
-       int difflen;     /*%< Number of pending tuples */
 
        _Atomic xfrin_state_t state;
        uint32_t expireopt;
@@ -307,9 +306,6 @@ axfr_putdata(dns_xfrin_t *xfr, dns_diffop_t op, dns_name_t *name, dns_ttl_t ttl,
        CHECK(dns_difftuple_create(xfr->diff.mctx, op, name, ttl, rdata,
                                   &tuple));
        dns_diff_append(&xfr->diff, &tuple);
-       if (++xfr->difflen > 100) {
-               CHECK(axfr_apply(xfr));
-       }
        result = ISC_R_SUCCESS;
 failure:
        return (result);
@@ -324,7 +320,6 @@ axfr_apply(dns_xfrin_t *xfr) {
        uint64_t records;
 
        CHECK(dns_diff_load(&xfr->diff, xfr->axfr.add, xfr->axfr.add_private));
-       xfr->difflen = 0;
        dns_diff_clear(&xfr->diff);
        if (xfr->maxrecords != 0U) {
                result = dns_db_getsize(xfr->db, xfr->ver, &records, NULL);
@@ -380,7 +375,6 @@ ixfr_init(dns_xfrin_t *xfr) {
 
        atomic_store(&xfr->is_ixfr, true);
        INSIST(xfr->db != NULL);
-       xfr->difflen = 0;
 
        journalfile = dns_zone_getjournal(xfr->zone);
        if (journalfile != NULL) {
@@ -409,9 +403,6 @@ ixfr_putdata(dns_xfrin_t *xfr, dns_diffop_t op, dns_name_t *name, dns_ttl_t ttl,
        CHECK(dns_difftuple_create(xfr->diff.mctx, op, name, ttl, rdata,
                                   &tuple));
        dns_diff_append(&xfr->diff, &tuple);
-       if (++xfr->difflen > 100) {
-               CHECK(ixfr_apply(xfr));
-       }
        result = ISC_R_SUCCESS;
 failure:
        return (result);
@@ -443,7 +434,6 @@ ixfr_apply(dns_xfrin_t *xfr) {
                CHECK(dns_journal_writediff(xfr->ixfr.journal, &xfr->diff));
        }
        dns_diff_clear(&xfr->diff);
-       xfr->difflen = 0;
        result = ISC_R_SUCCESS;
 failure:
        return (result);
@@ -932,7 +922,6 @@ xfrin_reset(dns_xfrin_t *xfr) {
        }
 
        dns_diff_clear(&xfr->diff);
-       xfr->difflen = 0;
 
        if (xfr->ixfr.journal != NULL) {
                dns_journal_destroy(&xfr->ixfr.journal);