2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 22:15:20 +00:00

4530. [bug] "dyndb" is dependent on dlopen existing / being

enabled. [RT #45291]
This commit is contained in:
Mark Andrews
2017-05-30 11:34:37 +10:00
parent ae903759c2
commit aa3a8979bc
2 changed files with 21 additions and 0 deletions

View File

@@ -1496,6 +1496,7 @@ configure_peer(const cfg_obj_t *cpeer, isc_mem_t *mctx, dns_peer_t **peerp) {
return (result);
}
#ifdef HAVE_DLOPEN
static isc_result_t
configure_dyndb(const cfg_obj_t *dyndb, isc_mem_t *mctx,
const dns_dyndbctx_t *dctx)
@@ -1521,6 +1522,7 @@ configure_dyndb(const cfg_obj_t *dyndb, isc_mem_t *mctx,
name, isc_result_totext(result));
return (result);
}
#endif
static isc_result_t
@@ -4669,6 +4671,7 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
else
(void)cfg_map_get(config, "dyndb", &dyndb_list);
#ifdef HAVE_DLOPEN
for (element = cfg_list_first(dyndb_list);
element != NULL;
element = cfg_list_next(element))
@@ -4686,6 +4689,7 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
CHECK(configure_dyndb(dyndb, mctx, dctx));
}
#endif
/*
* Setup automatic empty zones. If recursion is off then

View File

@@ -2988,6 +2988,9 @@ check_viewconf(const cfg_obj_t *config, const cfg_obj_t *voptions,
{
const cfg_obj_t *zones = NULL;
const cfg_obj_t *keys = NULL;
#ifndef HAVE_DLOPEN
const cfg_obj_t *dyndb = NULL;
#endif
const cfg_listelt_t *element, *element2;
isc_symtab_t *symtab = NULL;
isc_result_t result = ISC_R_SUCCESS;
@@ -3041,6 +3044,20 @@ check_viewconf(const cfg_obj_t *config, const cfg_obj_t *voptions,
result = ISC_R_FAILURE;
}
#ifndef HAVE_DLOPEN
if (voptions != NULL)
(void)cfg_map_get(voptions, "dyndb", &dyndb);
else
(void)cfg_map_get(config, "dyndb", &dyndb);
if (dyndb != NULL) {
cfg_obj_log(dyndb, logctx, ISC_LOG_ERROR,
"dynamic loading of databases is not supported");
if (tresult != ISC_R_SUCCESS)
result = ISC_R_NOTIMPLEMENTED;
}
#endif
/*
* Check that the response-policy and catalog-zones options
* refer to zones that exist.