From: Mark Andrews Date: Thu, 26 Jul 2018 03:59:22 +0000 (+1000) Subject: treat the signed instance of a inline zone as dynamic X-Git-Tag: v9.13.3~82^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9130f055f43a776a942855cd6d25028c9b0bdc45;p=thirdparty%2Fbind9.git treat the signed instance of a inline zone as dynamic --- diff --git a/lib/dns/zone.c b/lib/dns/zone.c index 7d1daba37f6..2ce2f766b25 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -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)) {