changed the zone type of the version.bind. CH zone from 'none'

to 'master', as the semantics of zones of type 'none' are not well defined.
Allow zone->dbname to be NULL to support this usage.
This commit is contained in:
Andreas Gustafsson 2000-06-01 23:11:26 +00:00
parent b3352f568a
commit a892ddd1bd
2 changed files with 11 additions and 12 deletions

View file

@ -727,6 +727,7 @@ create_version_view(dns_c_ctx_t *cctx, dns_zonemgr_t *zmgr, dns_view_t **viewp)
CHECK(dns_zone_create(&zone, ns_g_mctx));
CHECK(dns_zone_setorigin(zone, &origin));
dns_zone_settype(zone, dns_zone_master);
dns_zone_setclass(zone, dns_rdataclass_ch);
dns_zone_setview(zone, view);

View file

@ -15,7 +15,7 @@
* SOFTWARE.
*/
/* $Id: zone.c,v 1.135 2000/06/01 18:25:40 tale Exp $ */
/* $Id: zone.c,v 1.136 2000/06/01 23:11:24 gson Exp $ */
#include <config.h>
@ -588,20 +588,17 @@ dns_zone_load(dns_zone_t *zone) {
LOCK(&zone->lock);
isc_stdtime_get(&now);
switch (zone->type) {
case dns_zone_none:
INSIST(zone->type != dns_zone_none);
if (zone->dbname == NULL) {
/*
* The zone has no master file (maybe it is the built-in
* version.bind. CH zone). Do nothing.
*/
result = ISC_R_SUCCESS;
goto cleanup;
case dns_zone_master:
case dns_zone_slave:
case dns_zone_stub:
break;
default:
INSIST("bad zone type" == NULL);
}
REQUIRE(zone->dbname != NULL);
zone_log(zone, me, ISC_LOG_DEBUG(1), "start");
/*
@ -1315,7 +1312,8 @@ dns_zone_maintenance(dns_zone_t *zone) {
switch (zone->type) {
case dns_zone_master:
LOCK(&zone->lock);
if (now >= zone->dumptime &&
if (zone->dbname != NULL &&
now >= zone->dumptime &&
DNS_ZONE_FLAG(zone, DNS_ZONE_F_LOADED) &&
DNS_ZONE_FLAG(zone, DNS_ZONE_F_NEEDDUMP)) {
result = zone_dump(zone);