mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-13 21:09:59 -04:00
4530. [bug] "dyndb" is dependent on dlopen existing / being
enabled. [RT #45291]
(cherry picked from commit aa3a8979bc)
This commit is contained in:
parent
541ce84ff2
commit
9270a14461
2 changed files with 21 additions and 0 deletions
|
|
@ -1476,6 +1476,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)
|
||||
|
|
@ -1501,6 +1502,7 @@ configure_dyndb(const cfg_obj_t *dyndb, isc_mem_t *mctx,
|
|||
name, isc_result_totext(result));
|
||||
return (result);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
static isc_result_t
|
||||
|
|
@ -4666,6 +4668,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))
|
||||
|
|
@ -4683,6 +4686,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
|
||||
|
|
|
|||
|
|
@ -2937,6 +2937,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;
|
||||
|
|
@ -2990,6 +2993,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.
|
||||
|
|
|
|||
Loading…
Reference in a new issue