mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-11 14:10:05 -04:00
when reloading the server, zone objects reused with a new
view object still referenced their old view
This commit is contained in:
parent
862d18c79a
commit
875ad7d99d
2 changed files with 15 additions and 8 deletions
|
|
@ -922,16 +922,21 @@ configure_zone(dns_c_ctx_t *cctx, dns_c_zone_t *czone, dns_c_view_t *cview,
|
|||
dns_zone_detach(&zone);
|
||||
}
|
||||
|
||||
/*
|
||||
* If we cannot reuse an existing zone, we will have to
|
||||
* create a new one.
|
||||
*/
|
||||
if (zone == NULL) {
|
||||
if (zone != NULL) {
|
||||
/*
|
||||
* We found a reusable zone. Make it use the
|
||||
* new view.
|
||||
*/
|
||||
dns_zone_setview(zone, view);
|
||||
} else {
|
||||
/*
|
||||
* We cannot reuse an existing zone, we have
|
||||
* to create a new one.
|
||||
*/
|
||||
CHECK(dns_zone_create(&zone, lctx->mctx));
|
||||
CHECK(dns_zone_setorigin(zone, origin));
|
||||
dns_zone_setview(zone, view);
|
||||
CHECK(dns_zonemgr_managezone(ns_g_server->zonemgr,
|
||||
zone));
|
||||
CHECK(dns_zonemgr_managezone(ns_g_server->zonemgr, zone));
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: zone.c,v 1.122 2000/05/22 17:23:11 gson Exp $ */
|
||||
/* $Id: zone.c,v 1.123 2000/05/23 04:38:22 gson Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
|
@ -487,6 +487,8 @@ dns_zone_setdbtype(dns_zone_t *zone, char *db_type) {
|
|||
|
||||
void
|
||||
dns_zone_setview(dns_zone_t *zone, dns_view_t *view) {
|
||||
if (zone->view != NULL)
|
||||
dns_view_weakdetach(&zone->view);
|
||||
dns_view_weakattach(view, &zone->view);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue