#include <dns/fixedname.h>
#include <dns/kasp.h>
#include <dns/keyvalues.h>
+#include <dns/peer.h>
#include <dns/rbt.h>
#include <dns/rdataclass.h>
#include <dns/rdatatype.h>
{ "query-source", "query-source-v6" },
{ NULL, NULL } };
+static struct {
+ const char *name;
+ isc_result_t (*set)(dns_peer_t *peer, bool newval);
+} bools[] = {
+ { "bogus", dns_peer_setbogus },
+ { "broken-nsec", dns_peer_setbrokennsec },
+ { "edns", dns_peer_setsupportedns },
+ { "provide-ixfr", dns_peer_setprovideixfr },
+ { "request-expire", dns_peer_setrequestexpire },
+ { "request-ixfr", dns_peer_setrequestixfr },
+ { "request-nsid", dns_peer_setrequestnsid },
+ { "send-cookie", dns_peer_setsendcookie },
+ { "tcp-keepalive", dns_peer_settcpkeepalive },
+ { "tcp-only", dns_peer_setforcetcp },
+};
+
static isc_result_t
check_servers(const cfg_obj_t *config, const cfg_obj_t *voptions,
- isc_symtab_t *symtab, isc_log_t *logctx) {
+ isc_symtab_t *symtab, isc_mem_t *mctx, isc_log_t *logctx) {
dns_fixedname_t fname;
isc_result_t result = ISC_R_SUCCESS;
isc_result_t tresult;
}
for (e1 = cfg_list_first(servers); e1 != NULL; e1 = cfg_list_next(e1)) {
+ dns_peer_t *peer = NULL;
+ size_t i;
v1 = cfg_listelt_value(e1);
cfg_obj_asnetprefix(cfg_map_getname(v1), &n1, &p1);
/*
result = ISC_R_FAILURE;
}
}
+ (void)dns_peer_newprefix(mctx, &n1, p1, &peer);
+ for (i = 0; i < ARRAY_SIZE(bools); i++) {
+ const cfg_obj_t *opt = NULL;
+ cfg_map_get(v1, bools[i].name, &opt);
+ if (opt != NULL) {
+ tresult = (bools[i].set)(
+ peer, cfg_obj_asboolean(opt));
+ if (tresult != ISC_R_SUCCESS) {
+ cfg_obj_log(opt, logctx, ISC_LOG_ERROR,
+ "setting server option "
+ "'%s' failed: %s",
+ bools[i].name,
+ isc_result_totext(tresult));
+ result = ISC_R_FAILURE;
+ }
+ }
+ }
+ dns_peer_detach(&peer);
}
return (result);
}
/*
* Global servers can refer to keys in views.
*/
- if (check_servers(config, voptions, symtab, logctx) != ISC_R_SUCCESS) {
+ if (check_servers(config, voptions, symtab, mctx, logctx) !=
+ ISC_R_SUCCESS) {
result = ISC_R_FAILURE;
}
./bin/tests/system/checkconf/dnssec.1 X 2011,2016,2018,2019,2020,2021
./bin/tests/system/checkconf/dnssec.2 X 2011,2016,2018,2019,2020,2021
./bin/tests/system/checkconf/good.zonelist X 2016,2017,2018,2019,2020,2021
+./bin/tests/system/checkconf/setup.sh SH 2021
./bin/tests/system/checkconf/tests.sh SH 2005,2007,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021
./bin/tests/system/checkds/README TXT.BRIEF 2021
./bin/tests/system/checkds/clean.sh SH 2021