}
static isc_result_t
-getprimariesdef(const cfg_obj_t *cctx, const char *list, const char *name,
- const cfg_obj_t **ret) {
+getremotesdef(const cfg_obj_t *cctx, const char *list, const char *name,
+ const cfg_obj_t **ret) {
isc_result_t result;
const cfg_obj_t *obj = NULL;
const cfg_listelt_t *elt;
}
isc_result_t
-named_config_getprimariesdef(const cfg_obj_t *cctx, const char *name,
- const cfg_obj_t **ret) {
+named_config_getremotesdef(const cfg_obj_t *cctx, const char *list,
+ const char *name, const cfg_obj_t **ret) {
isc_result_t result;
- result = getprimariesdef(cctx, "primaries", name, ret);
- if (result != ISC_R_SUCCESS) {
- result = getprimariesdef(cctx, "masters", name, ret);
+ if (strcmp(list, "parental-agents") == 0) {
+ return (getremotesdef(cctx, list, name, ret));
+ } else if (strcmp(list, "primaries") == 0) {
+ result = getremotesdef(cctx, list, name, ret);
+ if (result != ISC_R_SUCCESS) {
+ result = getremotesdef(cctx, "masters", name, ret);
+ }
+ return (result);
}
- return (result);
+ return (ISC_R_NOTFOUND);
}
static isc_result_t
}
isc_result_t
-named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
- isc_mem_t *mctx, dns_ipkeylist_t *ipkl) {
+named_config_getipandkeylist(const cfg_obj_t *config, const char *listtype,
+ const cfg_obj_t *list, isc_mem_t *mctx,
+ dns_ipkeylist_t *ipkl) {
uint32_t addrcount = 0, dscpcount = 0, keycount = 0, tlscount = 0,
i = 0;
uint32_t listcount = 0, l = 0, j;
continue;
}
list = NULL;
- tresult = named_config_getprimariesdef(config, listname,
- &list);
+ tresult = named_config_getremotesdef(config, listtype,
+ listname, &list);
if (tresult == ISC_R_NOTFOUND) {
cfg_obj_log(addr, named_g_lctx, ISC_LOG_ERROR,
- "primaries \"%s\" not found",
+ "%s \"%s\" not found", listtype,
listname);
result = tresult;
isc_dscp_t **dscpsp, uint32_t count);
isc_result_t
-named_config_getprimariesdef(const cfg_obj_t *cctx, const char *name,
- const cfg_obj_t **ret);
+named_config_getremotesdef(const cfg_obj_t *cctx, const char *list,
+ const char *name, const cfg_obj_t **ret);
isc_result_t
-named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
- isc_mem_t *mctx, dns_ipkeylist_t *ipkl);
+named_config_getipandkeylist(const cfg_obj_t *config, const char *listtype,
+ const cfg_obj_t *list, isc_mem_t *mctx,
+ dns_ipkeylist_t *ipkl);
isc_result_t
named_config_getport(const cfg_obj_t *config, const char *type,
obj = cfg_tuple_get(catz_obj, "default-masters");
if (obj != NULL && cfg_obj_istuple(obj)) {
- result = named_config_getipandkeylist(config, obj, view->mctx,
- &opts->masters);
+ result = named_config_getipandkeylist(
+ config, "primaries", obj, view->mctx, &opts->masters);
}
obj = cfg_tuple_get(catz_obj, "in-memory");
dns_ipkeylist_t ipkl;
dns_ipkeylist_init(&ipkl);
- RETERR(named_config_getipandkeylist(config, obj, mctx,
- &ipkl));
+ RETERR(named_config_getipandkeylist(config, "primaries",
+ obj, mctx, &ipkl));
result = dns_zone_setalsonotify(zone, ipkl.addrs,
ipkl.dscps, ipkl.keys,
ipkl.tlss, ipkl.count);
if (obj == NULL && ztype == dns_zone_mirror &&
dns_name_equal(dns_zone_getorigin(zone), dns_rootname))
{
- result = named_config_getprimariesdef(
- named_g_config,
+ result = named_config_getremotesdef(
+ named_g_config, "primaries",
DEFAULT_IANA_ROOT_ZONE_PRIMARIES, &obj);
RETERR(result);
}
dns_ipkeylist_t ipkl;
dns_ipkeylist_init(&ipkl);
- RETERR(named_config_getipandkeylist(config, obj, mctx,
- &ipkl));
+ RETERR(named_config_getipandkeylist(config, "primaries",
+ obj, mctx, &ipkl));
result = dns_zone_setprimaries(mayberaw, ipkl.addrs,
ipkl.keys, ipkl.tlss,
ipkl.count);
}
static void
-clear_primarieslist(isc_sockaddr_t **addrsp, isc_dscp_t **dscpsp,
- dns_name_t ***keynamesp, dns_name_t ***tlsnamesp,
- unsigned int *countp, isc_mem_t *mctx) {
+clear_serverslist(isc_sockaddr_t **addrsp, isc_dscp_t **dscpsp,
+ dns_name_t ***keynamesp, dns_name_t ***tlsnamesp,
+ unsigned int *countp, isc_mem_t *mctx) {
unsigned int count;
isc_sockaddr_t *addrs;
isc_dscp_t *dscps;
}
static isc_result_t
-set_primarieslist(unsigned int count, const isc_sockaddr_t *addrs,
- isc_sockaddr_t **newaddrsp, const isc_dscp_t *dscp,
- isc_dscp_t **newdscpp, dns_name_t **keynames,
- dns_name_t ***newkeynamesp, dns_name_t **tlsnames,
- dns_name_t ***newtlsnamesp, isc_mem_t *mctx) {
+set_serverslist(unsigned int count, const isc_sockaddr_t *addrs,
+ isc_sockaddr_t **newaddrsp, const isc_dscp_t *dscp,
+ isc_dscp_t **newdscpp, dns_name_t **keynames,
+ dns_name_t ***newkeynamesp, dns_name_t **tlsnames,
+ dns_name_t ***newtlsnamesp, isc_mem_t *mctx) {
isc_sockaddr_t *newaddrs = NULL;
isc_dscp_t *newdscp = NULL;
dns_name_t **newkeynames = NULL;
goto unlock;
}
- clear_primarieslist(&zone->notify, &zone->notifydscp,
- &zone->notifykeynames, &zone->notifytlsnames,
- &zone->notifycnt, zone->mctx);
+ clear_serverslist(&zone->notify, &zone->notifydscp,
+ &zone->notifykeynames, &zone->notifytlsnames,
+ &zone->notifycnt, zone->mctx);
if (count == 0) {
goto unlock;
/*
* Set up the notify and notifykey lists
*/
- result = set_primarieslist(count, notify, &newaddrs, dscps, &newdscps,
- keynames, &newkeynames, tlsnames,
- &newtlsnames, zone->mctx);
+ result = set_serverslist(count, notify, &newaddrs, dscps, &newdscps,
+ keynames, &newkeynames, tlsnames, &newtlsnames,
+ zone->mctx);
if (result != ISC_R_SUCCESS) {
goto unlock;
}
zone->masterscnt * sizeof(bool));
zone->mastersok = NULL;
}
- clear_primarieslist(&zone->masters, &zone->masterdscps,
- &zone->masterkeynames, &zone->mastertlsnames,
- &zone->masterscnt, zone->mctx);
+ clear_serverslist(&zone->masters, &zone->masterdscps,
+ &zone->masterkeynames, &zone->mastertlsnames,
+ &zone->masterscnt, zone->mctx);
/*
* If count == 0, don't allocate any space for masters, mastersok or
* keynames so internally, those pointers are NULL if count == 0
/*
* Now set up the primaries and primary key lists
*/
- result = set_primarieslist(count, masters, &newaddrs, NULL, &newdscps,
- keynames, &newkeynames, tlsnames,
- &newtlsnames, zone->mctx);
+ result = set_serverslist(count, masters, &newaddrs, NULL, &newdscps,
+ keynames, &newkeynames, tlsnames, &newtlsnames,
+ zone->mctx);
INSIST(newdscps == NULL);
if (result != ISC_R_SUCCESS) {
isc_mem_put(zone->mctx, newok, count * sizeof(*newok));