]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
treat the signed instance of a inline zone as dynamic
authorMark Andrews <marka@isc.org>
Thu, 26 Jul 2018 03:59:22 +0000 (13:59 +1000)
committerMark Andrews <marka@isc.org>
Thu, 2 Aug 2018 04:00:13 +0000 (00:00 -0400)
lib/dns/zone.c

index 7d1daba37f62ea19487fb122c7b3b3d157d0ba1b..2ce2f766b258fbd6dd932b26d7f2e930ca4952a1 100644 (file)
@@ -1722,6 +1722,10 @@ dns_zone_isdynamic(dns_zone_t *zone, isc_boolean_t ignore_freeze) {
            (zone->type == dns_zone_redirect && zone->masters != NULL))
                return (ISC_TRUE);
 
+       /* Inline zones are always dynamic. */
+       if (zone->type == dns_zone_master && zone->raw != NULL)
+               return (ISC_TRUE);
+
        /* If !ignore_freeze, we need check whether updates are disabled.  */
        if (zone->type == dns_zone_master &&
            (!zone->update_disabled || ignore_freeze) &&
@@ -1918,7 +1922,7 @@ zone_load(dns_zone_t *zone, unsigned int flags, isc_boolean_t locked) {
                 * zone being reloaded.  Do nothing - the database
                 * we already have is guaranteed to be up-to-date.
                 */
-               if (zone->type == dns_zone_master)
+               if (zone->type == dns_zone_master && !hasraw)
                        result = DNS_R_DYNAMIC;
                else
                        result = ISC_R_SUCCESS;
@@ -1962,7 +1966,6 @@ zone_load(dns_zone_t *zone, unsigned int flags, isc_boolean_t locked) {
                        goto cleanup;
                }
 
-
                /*
                 * If the file modification time is in the past
                 * set loadtime to that value.
@@ -4632,6 +4635,7 @@ zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime,
                                isc_uint32_t serialmin, serialmax;
 
                                INSIST(zone->type == dns_zone_master);
+                               INSIST(zone->raw == NULL);
 
                                if (serial == oldserial &&
                                    zone_unchanged(zone->db, db, zone->mctx)) {