mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-10 20:10:04 -04:00
Merge branch '3773-remove-dscp-v9_18' into 'v9_18'
[9.18] Merge branch '3773-remove-dscp' into 'main' See merge request isc-projects/bind9!7336
This commit is contained in:
commit
12de356ed6
113 changed files with 443 additions and 2507 deletions
7
CHANGES
7
CHANGES
|
|
@ -1,3 +1,10 @@
|
|||
6062. [func] The DSCP implementation, which has been
|
||||
nonfunctional for some time, is now marked as
|
||||
obsolete and the implementation has been removed.
|
||||
Configuring DSCP values in named.conf has no
|
||||
effect, and a warning will be logged that
|
||||
the feature should no longer be used. [GL #3773]
|
||||
|
||||
6059. [bug] In some serve stale scenarios, like when following an
|
||||
expired CNAME record, named could return SERVFAIL if the
|
||||
previous request wasn't successful. Consider non-stale
|
||||
|
|
|
|||
|
|
@ -212,9 +212,6 @@ help(void) {
|
|||
"from ipv4only.arpa)\n"
|
||||
" +[no]dnssec (Request DNSSEC records)\n"
|
||||
" +domain=### (Set default domainname)\n"
|
||||
" +[no]dscp[=###] (Set the DSCP value to "
|
||||
"### "
|
||||
"[0..63])\n"
|
||||
" +[no]edns[=###] (Set EDNS version) [0]\n"
|
||||
" +ednsflags=### (Set EDNS flag bits)\n"
|
||||
" +[no]ednsnegotiation (Set EDNS version "
|
||||
|
|
@ -1400,20 +1397,10 @@ plus_option(char *option, bool is_batchfile, bool *need_clone,
|
|||
strlcpy(domainopt, value, sizeof(domainopt));
|
||||
break;
|
||||
case 's': /* dscp */
|
||||
/* obsolete */
|
||||
FULLCHECK("dscp");
|
||||
if (!state) {
|
||||
lookup->dscp = -1;
|
||||
break;
|
||||
}
|
||||
if (value == NULL) {
|
||||
goto need_value;
|
||||
}
|
||||
result = parse_uint(&num, value, 0x3f, "DSCP");
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
warn("Couldn't parse DSCP value");
|
||||
goto exit_or_usage;
|
||||
}
|
||||
lookup->dscp = num;
|
||||
fprintf(stderr, ";; +dscp option is obsolete "
|
||||
"and has no effect");
|
||||
break;
|
||||
default:
|
||||
goto invalid_option;
|
||||
|
|
|
|||
|
|
@ -349,9 +349,8 @@ abbreviation is unambiguous; for example, :option:`+cd` is equivalent to
|
|||
|
||||
.. option:: +dscp=value
|
||||
|
||||
This option sets the DSCP code point to be used when sending the query. Valid DSCP
|
||||
code points are in the range [0...63]. By default no code point is
|
||||
explicitly set.
|
||||
This option formerly set the DSCP value used when sending a query.
|
||||
It is now obsolete, and has no effect.
|
||||
|
||||
.. option:: +edns[=#], +noedns
|
||||
|
||||
|
|
|
|||
|
|
@ -636,7 +636,6 @@ make_empty_lookup(void) {
|
|||
.section_authority = true,
|
||||
.section_additional = true,
|
||||
.ednsneg = true,
|
||||
.dscp = -1,
|
||||
};
|
||||
|
||||
dns_fixedname_init(&looknew->fdomain);
|
||||
|
|
@ -811,7 +810,6 @@ clone_lookup(dig_lookup_t *lookold, bool servers) {
|
|||
looknew->tsigctx = NULL;
|
||||
looknew->need_search = lookold->need_search;
|
||||
looknew->done_as_is = lookold->done_as_is;
|
||||
looknew->dscp = lookold->dscp;
|
||||
looknew->rrcomments = lookold->rrcomments;
|
||||
looknew->fuzzing = lookold->fuzzing;
|
||||
looknew->fuzztime = lookold->fuzztime;
|
||||
|
|
@ -3094,10 +3092,7 @@ start_tcp(dig_query_t *query) {
|
|||
&query->sockaddr, tcp_connected,
|
||||
connectquery, local_timeout, 0);
|
||||
}
|
||||
|
||||
/* XXX: set DSCP */
|
||||
}
|
||||
|
||||
return;
|
||||
failure_tls:
|
||||
if (query->lookup->tls_key_file_set != query->lookup->tls_cert_file_set)
|
||||
|
|
|
|||
|
|
@ -166,7 +166,6 @@ struct dig_lookup {
|
|||
char *cookie;
|
||||
dns_ednsopt_t *ednsopts;
|
||||
unsigned int ednsoptscnt;
|
||||
isc_dscp_t dscp;
|
||||
unsigned int ednsflags;
|
||||
dns_opcode_t opcode;
|
||||
int rrcomments;
|
||||
|
|
|
|||
|
|
@ -507,19 +507,16 @@ named_config_getzonetype(const cfg_obj_t *zonetypeobj) {
|
|||
isc_result_t
|
||||
named_config_getiplist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
in_port_t defport, isc_mem_t *mctx,
|
||||
isc_sockaddr_t **addrsp, isc_dscp_t **dscpsp,
|
||||
uint32_t *countp) {
|
||||
isc_sockaddr_t **addrsp, uint32_t *countp) {
|
||||
int count, i = 0;
|
||||
const cfg_obj_t *addrlist;
|
||||
const cfg_obj_t *portobj, *dscpobj;
|
||||
const cfg_listelt_t *element;
|
||||
isc_sockaddr_t *addrs;
|
||||
const cfg_obj_t *addrlist = NULL;
|
||||
const cfg_obj_t *portobj = NULL;
|
||||
const cfg_listelt_t *element = NULL;
|
||||
isc_sockaddr_t *addrs = NULL;
|
||||
in_port_t port;
|
||||
isc_dscp_t dscp = -1, *dscps = NULL;
|
||||
isc_result_t result;
|
||||
|
||||
INSIST(addrsp != NULL && *addrsp == NULL);
|
||||
INSIST(dscpsp == NULL || *dscpsp == NULL);
|
||||
INSIST(countp != NULL);
|
||||
|
||||
addrlist = cfg_tuple_get(list, "addresses");
|
||||
|
|
@ -543,22 +540,6 @@ named_config_getiplist(const cfg_obj_t *config, const cfg_obj_t *list,
|
|||
}
|
||||
}
|
||||
|
||||
if (dscpsp != NULL) {
|
||||
dscpobj = cfg_tuple_get(list, "dscp");
|
||||
if (dscpobj != NULL && cfg_obj_isuint32(dscpobj)) {
|
||||
if (cfg_obj_asuint32(dscpobj) > 63) {
|
||||
cfg_obj_log(dscpobj, named_g_lctx,
|
||||
ISC_LOG_ERROR,
|
||||
"dscp value '%u' is out of range",
|
||||
cfg_obj_asuint32(dscpobj));
|
||||
return (ISC_R_RANGE);
|
||||
}
|
||||
dscp = (isc_dscp_t)cfg_obj_asuint32(dscpobj);
|
||||
}
|
||||
|
||||
dscps = isc_mem_get(mctx, count * sizeof(isc_dscp_t));
|
||||
}
|
||||
|
||||
addrs = isc_mem_get(mctx, count * sizeof(isc_sockaddr_t));
|
||||
|
||||
for (element = cfg_list_first(addrlist); element != NULL;
|
||||
|
|
@ -568,14 +549,6 @@ named_config_getiplist(const cfg_obj_t *config, const cfg_obj_t *list,
|
|||
INSIST(i < count);
|
||||
addr = cfg_listelt_value(element);
|
||||
addrs[i] = *cfg_obj_assockaddr(addr);
|
||||
if (dscpsp != NULL) {
|
||||
isc_dscp_t innerdscp;
|
||||
innerdscp = cfg_obj_getdscp(addr);
|
||||
if (innerdscp == -1) {
|
||||
innerdscp = dscp;
|
||||
}
|
||||
dscps[i] = innerdscp;
|
||||
}
|
||||
if (isc_sockaddr_getport(&addrs[i]) == 0) {
|
||||
isc_sockaddr_setport(&addrs[i], port);
|
||||
}
|
||||
|
|
@ -585,26 +558,16 @@ named_config_getiplist(const cfg_obj_t *config, const cfg_obj_t *list,
|
|||
*addrsp = addrs;
|
||||
*countp = count;
|
||||
|
||||
if (dscpsp != NULL) {
|
||||
*dscpsp = dscps;
|
||||
}
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
void
|
||||
named_config_putiplist(isc_mem_t *mctx, isc_sockaddr_t **addrsp,
|
||||
isc_dscp_t **dscpsp, uint32_t count) {
|
||||
uint32_t count) {
|
||||
INSIST(addrsp != NULL && *addrsp != NULL);
|
||||
INSIST(dscpsp == NULL || *dscpsp != NULL);
|
||||
|
||||
isc_mem_put(mctx, *addrsp, count * sizeof(isc_sockaddr_t));
|
||||
*addrsp = NULL;
|
||||
|
||||
if (dscpsp != NULL) {
|
||||
isc_mem_put(mctx, *dscpsp, count * sizeof(isc_dscp_t));
|
||||
*dscpsp = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
|
|
@ -722,30 +685,28 @@ isc_result_t
|
|||
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 addrcount = 0, keycount = 0, tlscount = 0, i = 0;
|
||||
uint32_t listcount = 0, l = 0, j;
|
||||
uint32_t stackcount = 0, pushed = 0;
|
||||
isc_result_t result;
|
||||
const cfg_listelt_t *element;
|
||||
const cfg_obj_t *addrlist;
|
||||
const cfg_obj_t *portobj;
|
||||
const cfg_obj_t *dscpobj;
|
||||
in_port_t port = (in_port_t)0;
|
||||
in_port_t def_port;
|
||||
in_port_t def_tlsport;
|
||||
isc_dscp_t dscp = -1;
|
||||
isc_sockaddr_t *addrs = NULL;
|
||||
isc_dscp_t *dscps = NULL;
|
||||
dns_name_t **keys = NULL;
|
||||
dns_name_t **tlss = NULL;
|
||||
struct {
|
||||
const char *name;
|
||||
in_port_t port;
|
||||
isc_sockaddr_t *src4s;
|
||||
isc_sockaddr_t *src6s;
|
||||
} *lists = NULL;
|
||||
struct {
|
||||
const cfg_listelt_t *element;
|
||||
in_port_t port;
|
||||
isc_dscp_t dscp;
|
||||
} *stack = NULL;
|
||||
|
||||
REQUIRE(ipkl != NULL);
|
||||
|
|
@ -753,7 +714,6 @@ named_config_getipandkeylist(const cfg_obj_t *config, const char *listtype,
|
|||
REQUIRE(ipkl->addrs == NULL);
|
||||
REQUIRE(ipkl->keys == NULL);
|
||||
REQUIRE(ipkl->tlss == NULL);
|
||||
REQUIRE(ipkl->dscps == NULL);
|
||||
REQUIRE(ipkl->labels == NULL);
|
||||
REQUIRE(ipkl->allocated == 0);
|
||||
|
||||
|
|
@ -770,15 +730,9 @@ named_config_getipandkeylist(const cfg_obj_t *config, const char *listtype,
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
result = named_config_getdscp(config, &dscp);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
newlist:
|
||||
addrlist = cfg_tuple_get(list, "addresses");
|
||||
portobj = cfg_tuple_get(list, "port");
|
||||
dscpobj = cfg_tuple_get(list, "dscp");
|
||||
|
||||
if (cfg_obj_isuint32(portobj)) {
|
||||
uint32_t val = cfg_obj_asuint32(portobj);
|
||||
|
|
@ -791,17 +745,6 @@ newlist:
|
|||
port = (in_port_t)val;
|
||||
}
|
||||
|
||||
if (dscpobj != NULL && cfg_obj_isuint32(dscpobj)) {
|
||||
if (cfg_obj_asuint32(dscpobj) > 63) {
|
||||
cfg_obj_log(dscpobj, named_g_lctx, ISC_LOG_ERROR,
|
||||
"dscp value '%u' is out of range",
|
||||
cfg_obj_asuint32(dscpobj));
|
||||
result = ISC_R_RANGE;
|
||||
goto cleanup;
|
||||
}
|
||||
dscp = (isc_dscp_t)cfg_obj_asuint32(dscpobj);
|
||||
}
|
||||
|
||||
result = ISC_R_NOMEMORY;
|
||||
|
||||
element = cfg_list_first(addrlist);
|
||||
|
|
@ -855,21 +798,15 @@ resume:
|
|||
*/
|
||||
stack[pushed].element = cfg_list_next(element);
|
||||
stack[pushed].port = port;
|
||||
stack[pushed].dscp = dscp;
|
||||
pushed++;
|
||||
goto newlist;
|
||||
}
|
||||
|
||||
grow_array(mctx, addrs, i, addrcount);
|
||||
grow_array(mctx, dscps, i, dscpcount);
|
||||
grow_array(mctx, keys, i, keycount);
|
||||
grow_array(mctx, tlss, i, tlscount);
|
||||
|
||||
addrs[i] = *cfg_obj_assockaddr(addr);
|
||||
dscps[i] = cfg_obj_getdscp(addr);
|
||||
if (dscps[i] == -1) {
|
||||
dscps[i] = dscp;
|
||||
}
|
||||
|
||||
result = named_config_getname(mctx, key, &keys[i]);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
|
|
@ -907,12 +844,10 @@ resume:
|
|||
pushed--;
|
||||
element = stack[pushed].element;
|
||||
port = stack[pushed].port;
|
||||
dscp = stack[pushed].dscp;
|
||||
goto resume;
|
||||
}
|
||||
|
||||
shrink_array(mctx, addrs, i, addrcount);
|
||||
shrink_array(mctx, dscps, i, dscpcount);
|
||||
shrink_array(mctx, keys, i, keycount);
|
||||
shrink_array(mctx, tlss, i, tlscount);
|
||||
|
||||
|
|
@ -923,13 +858,10 @@ resume:
|
|||
isc_mem_put(mctx, stack, stackcount * sizeof(stack[0]));
|
||||
}
|
||||
|
||||
INSIST(dscpcount == addrcount);
|
||||
INSIST(keycount == addrcount);
|
||||
INSIST(tlscount == addrcount);
|
||||
INSIST(keycount == dscpcount);
|
||||
|
||||
ipkl->addrs = addrs;
|
||||
ipkl->dscps = dscps;
|
||||
ipkl->keys = keys;
|
||||
ipkl->tlss = tlss;
|
||||
ipkl->count = addrcount;
|
||||
|
|
@ -941,9 +873,6 @@ cleanup:
|
|||
if (addrs != NULL) {
|
||||
isc_mem_put(mctx, addrs, addrcount * sizeof(addrs[0]));
|
||||
}
|
||||
if (dscps != NULL) {
|
||||
isc_mem_put(mctx, dscps, dscpcount * sizeof(dscps[0]));
|
||||
}
|
||||
if (keys != NULL) {
|
||||
for (j = 0; j < i; j++) {
|
||||
if (keys[j] == NULL) {
|
||||
|
|
@ -1006,32 +935,6 @@ named_config_getport(const cfg_obj_t *config, const char *type,
|
|||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
named_config_getdscp(const cfg_obj_t *config, isc_dscp_t *dscpp) {
|
||||
const cfg_obj_t *options = NULL;
|
||||
const cfg_obj_t *dscpobj = NULL;
|
||||
isc_result_t result;
|
||||
|
||||
(void)cfg_map_get(config, "options", &options);
|
||||
if (options == NULL) {
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
result = cfg_map_get(options, "dscp", &dscpobj);
|
||||
if (result != ISC_R_SUCCESS || dscpobj == NULL) {
|
||||
*dscpp = -1;
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
if (cfg_obj_asuint32(dscpobj) >= 64) {
|
||||
cfg_obj_log(dscpobj, named_g_lctx, ISC_LOG_ERROR,
|
||||
"dscp '%u' out of range",
|
||||
cfg_obj_asuint32(dscpobj));
|
||||
return (ISC_R_RANGE);
|
||||
}
|
||||
*dscpp = (isc_dscp_t)cfg_obj_asuint32(dscpobj);
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
struct keyalgorithms {
|
||||
const char *str;
|
||||
enum {
|
||||
|
|
|
|||
|
|
@ -55,12 +55,11 @@ named_config_getzonetype(const cfg_obj_t *zonetypeobj);
|
|||
isc_result_t
|
||||
named_config_getiplist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
in_port_t defport, isc_mem_t *mctx,
|
||||
isc_sockaddr_t **addrsp, isc_dscp_t **dscpsp,
|
||||
uint32_t *countp);
|
||||
isc_sockaddr_t **addrsp, uint32_t *countp);
|
||||
|
||||
void
|
||||
named_config_putiplist(isc_mem_t *mctx, isc_sockaddr_t **addrsp,
|
||||
isc_dscp_t **dscpsp, uint32_t count);
|
||||
uint32_t count);
|
||||
|
||||
isc_result_t
|
||||
named_config_getremotesdef(const cfg_obj_t *cctx, const char *list,
|
||||
|
|
@ -81,6 +80,3 @@ named_config_getkeyalgorithm(const char *str, const dns_name_t **name,
|
|||
isc_result_t
|
||||
named_config_getkeyalgorithm2(const char *str, const dns_name_t **name,
|
||||
unsigned int *typep, uint16_t *digestbits);
|
||||
|
||||
isc_result_t
|
||||
named_config_getdscp(const cfg_obj_t *config, isc_dscp_t *dscpp);
|
||||
|
|
|
|||
|
|
@ -75,7 +75,6 @@ EXTERN in_port_t named_g_port INIT(0);
|
|||
EXTERN in_port_t named_g_tlsport INIT(0);
|
||||
EXTERN in_port_t named_g_httpsport INIT(0);
|
||||
EXTERN in_port_t named_g_httpport INIT(0);
|
||||
EXTERN isc_dscp_t named_g_dscp INIT(-1);
|
||||
|
||||
EXTERN in_port_t named_g_http_listener_clients INIT(0);
|
||||
EXTERN in_port_t named_g_http_streams_per_conn INIT(0);
|
||||
|
|
|
|||
|
|
@ -110,7 +110,6 @@
|
|||
#define BACKTRACE_MAXFRAME 128
|
||||
#endif /* ifndef BACKTRACE_MAXFRAME */
|
||||
|
||||
extern int isc_dscp_check_value;
|
||||
extern unsigned int dns_zone_mkey_hour;
|
||||
extern unsigned int dns_zone_mkey_day;
|
||||
extern unsigned int dns_zone_mkey_month;
|
||||
|
|
@ -716,13 +715,9 @@ parse_T_opt(char *option) {
|
|||
/*
|
||||
* force the server to behave (or misbehave) in
|
||||
* specified ways for testing purposes.
|
||||
* dscp=x: check that dscp values are as
|
||||
* expected and assert otherwise.
|
||||
*/
|
||||
if (!strcmp(option, "dropedns")) {
|
||||
dropedns = true;
|
||||
} else if (!strncmp(option, "dscp=", 5)) {
|
||||
isc_dscp_check_value = atoi(option + 5);
|
||||
} else if (!strcmp(option, "ednsformerr")) {
|
||||
ednsformerr = true;
|
||||
} else if (!strcmp(option, "ednsnotimp")) {
|
||||
|
|
|
|||
|
|
@ -1264,13 +1264,11 @@ cleanup:
|
|||
*/
|
||||
static isc_result_t
|
||||
get_view_querysource_dispatch(const cfg_obj_t **maps, int af,
|
||||
dns_dispatch_t **dispatchp, isc_dscp_t *dscpp,
|
||||
bool is_firstview) {
|
||||
dns_dispatch_t **dispatchp, bool is_firstview) {
|
||||
isc_result_t result = ISC_R_FAILURE;
|
||||
dns_dispatch_t *disp = NULL;
|
||||
isc_sockaddr_t sa;
|
||||
const cfg_obj_t *obj = NULL;
|
||||
isc_dscp_t dscp = -1;
|
||||
|
||||
switch (af) {
|
||||
case AF_INET:
|
||||
|
|
@ -1288,11 +1286,6 @@ get_view_querysource_dispatch(const cfg_obj_t **maps, int af,
|
|||
sa = *(cfg_obj_assockaddr(obj));
|
||||
INSIST(isc_sockaddr_pf(&sa) == af);
|
||||
|
||||
dscp = cfg_obj_getdscp(obj);
|
||||
if (dscp != -1 && dscpp != NULL) {
|
||||
*dscpp = dscp;
|
||||
}
|
||||
|
||||
/*
|
||||
* If we don't support this address family, we're done!
|
||||
*/
|
||||
|
|
@ -1589,10 +1582,6 @@ configure_peer(const cfg_obj_t *cpeer, isc_mem_t *mctx, dns_peer_t **peerp) {
|
|||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
result = dns_peer_settransferdscp(peer, cfg_obj_getdscp(obj));
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
named_add_reserved_dispatch(named_g_server,
|
||||
cfg_obj_assockaddr(obj));
|
||||
}
|
||||
|
|
@ -1609,10 +1598,6 @@ configure_peer(const cfg_obj_t *cpeer, isc_mem_t *mctx, dns_peer_t **peerp) {
|
|||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
result = dns_peer_setnotifydscp(peer, cfg_obj_getdscp(obj));
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
named_add_reserved_dispatch(named_g_server,
|
||||
cfg_obj_assockaddr(obj));
|
||||
}
|
||||
|
|
@ -1628,10 +1613,6 @@ configure_peer(const cfg_obj_t *cpeer, isc_mem_t *mctx, dns_peer_t **peerp) {
|
|||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
result = dns_peer_setquerydscp(peer, cfg_obj_getdscp(obj));
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
named_add_reserved_dispatch(named_g_server,
|
||||
cfg_obj_assockaddr(obj));
|
||||
}
|
||||
|
|
@ -4130,7 +4111,6 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, cfg_obj_t *config,
|
|||
dns_acl_t *clients = NULL, *mapped = NULL, *excluded = NULL;
|
||||
unsigned int query_timeout, ndisp;
|
||||
bool old_rpz_ok = false;
|
||||
isc_dscp_t dscp4 = -1, dscp6 = -1;
|
||||
dns_dyndbctx_t *dctx = NULL;
|
||||
unsigned int resolver_param;
|
||||
dns_ntatable_t *ntatable = NULL;
|
||||
|
|
@ -4776,10 +4756,10 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, cfg_obj_t *config,
|
|||
* Resolver.
|
||||
*/
|
||||
CHECK(get_view_querysource_dispatch(
|
||||
maps, AF_INET, &dispatch4, &dscp4,
|
||||
maps, AF_INET, &dispatch4,
|
||||
(ISC_LIST_PREV(view, link) == NULL)));
|
||||
CHECK(get_view_querysource_dispatch(
|
||||
maps, AF_INET6, &dispatch6, &dscp6,
|
||||
maps, AF_INET6, &dispatch6,
|
||||
(ISC_LIST_PREV(view, link) == NULL)));
|
||||
if (dispatch4 == NULL && dispatch6 == NULL) {
|
||||
UNEXPECTED_ERROR("unable to obtain either an IPv4 or"
|
||||
|
|
@ -4804,19 +4784,6 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, cfg_obj_t *config,
|
|||
ndisp, named_g_netmgr, named_g_timermgr, resopts,
|
||||
named_g_dispatchmgr, dispatch4, dispatch6));
|
||||
|
||||
if (dscp4 == -1) {
|
||||
dscp4 = named_g_dscp;
|
||||
}
|
||||
if (dscp6 == -1) {
|
||||
dscp6 = named_g_dscp;
|
||||
}
|
||||
if (dscp4 != -1) {
|
||||
dns_resolver_setquerydscp4(view->resolver, dscp4);
|
||||
}
|
||||
if (dscp6 != -1) {
|
||||
dns_resolver_setquerydscp6(view->resolver, dscp6);
|
||||
}
|
||||
|
||||
/*
|
||||
* Set the ADB cache size to 1/8th of the max-cache-size or
|
||||
* MAX_ADB_SIZE_FOR_CACHESHARE when the cache is shared.
|
||||
|
|
@ -6270,15 +6237,14 @@ static isc_result_t
|
|||
configure_forward(const cfg_obj_t *config, dns_view_t *view,
|
||||
const dns_name_t *origin, const cfg_obj_t *forwarders,
|
||||
const cfg_obj_t *forwardtype) {
|
||||
const cfg_obj_t *portobj, *dscpobj;
|
||||
const cfg_obj_t *faddresses;
|
||||
const cfg_listelt_t *element;
|
||||
const cfg_obj_t *portobj = NULL;
|
||||
const cfg_obj_t *faddresses = NULL;
|
||||
const cfg_listelt_t *element = NULL;
|
||||
dns_fwdpolicy_t fwdpolicy = dns_fwdpolicy_none;
|
||||
dns_forwarderlist_t fwdlist;
|
||||
dns_forwarder_t *fwd;
|
||||
dns_forwarder_t *fwd = NULL;
|
||||
isc_result_t result;
|
||||
in_port_t port;
|
||||
isc_dscp_t dscp = -1;
|
||||
|
||||
ISC_LIST_INIT(fwdlist);
|
||||
|
||||
|
|
@ -6301,24 +6267,6 @@ configure_forward(const cfg_obj_t *config, dns_view_t *view,
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* DSCP value for forwarded requests.
|
||||
*/
|
||||
dscp = named_g_dscp;
|
||||
if (forwarders != NULL) {
|
||||
dscpobj = cfg_tuple_get(forwarders, "dscp");
|
||||
if (cfg_obj_isuint32(dscpobj)) {
|
||||
if (cfg_obj_asuint32(dscpobj) > 63) {
|
||||
cfg_obj_log(dscpobj, named_g_lctx,
|
||||
ISC_LOG_ERROR,
|
||||
"dscp value '%u' is out of range",
|
||||
cfg_obj_asuint32(dscpobj));
|
||||
return (ISC_R_RANGE);
|
||||
}
|
||||
dscp = (isc_dscp_t)cfg_obj_asuint32(dscpobj);
|
||||
}
|
||||
}
|
||||
|
||||
faddresses = NULL;
|
||||
if (forwarders != NULL) {
|
||||
faddresses = cfg_tuple_get(forwarders, "addresses");
|
||||
|
|
@ -6333,10 +6281,6 @@ configure_forward(const cfg_obj_t *config, dns_view_t *view,
|
|||
if (isc_sockaddr_getport(&fwd->addr) == 0) {
|
||||
isc_sockaddr_setport(&fwd->addr, port);
|
||||
}
|
||||
fwd->dscp = cfg_obj_getdscp(forwarder);
|
||||
if (fwd->dscp == -1) {
|
||||
fwd->dscp = dscp;
|
||||
}
|
||||
ISC_LINK_INIT(fwd, link);
|
||||
ISC_LIST_APPEND(fwdlist, fwd, link);
|
||||
}
|
||||
|
|
@ -9035,11 +8979,6 @@ load_configuration(const char *filename, named_server_t *server,
|
|||
"port");
|
||||
}
|
||||
|
||||
/*
|
||||
* Determining the default DSCP code point.
|
||||
*/
|
||||
CHECKM(named_config_getdscp(config, &named_g_dscp), "dscp");
|
||||
|
||||
/*
|
||||
* Find the listen queue depth.
|
||||
*/
|
||||
|
|
@ -9099,8 +9038,7 @@ load_configuration(const char *filename, named_server_t *server,
|
|||
* Not specified, use default.
|
||||
*/
|
||||
CHECK(ns_listenlist_default(named_g_mctx, listen_port,
|
||||
-1, true, AF_INET,
|
||||
&listenon));
|
||||
true, AF_INET, &listenon));
|
||||
}
|
||||
if (listenon != NULL) {
|
||||
ns_interfacemgr_setlistenon4(server->interfacemgr,
|
||||
|
|
@ -9128,8 +9066,7 @@ load_configuration(const char *filename, named_server_t *server,
|
|||
* Not specified, use default.
|
||||
*/
|
||||
CHECK(ns_listenlist_default(named_g_mctx, listen_port,
|
||||
-1, true, AF_INET6,
|
||||
&listenon));
|
||||
true, AF_INET6, &listenon));
|
||||
}
|
||||
if (listenon != NULL) {
|
||||
ns_interfacemgr_setlistenon6(server->interfacemgr,
|
||||
|
|
@ -11126,10 +11063,9 @@ listenelt_fromconfig(const cfg_obj_t *listener, const cfg_obj_t *config,
|
|||
isc_result_t result;
|
||||
const cfg_obj_t *ltup = NULL;
|
||||
const cfg_obj_t *tlsobj = NULL, *httpobj = NULL;
|
||||
const cfg_obj_t *portobj = NULL, *dscpobj = NULL;
|
||||
const cfg_obj_t *portobj = NULL;
|
||||
const cfg_obj_t *http_server = NULL;
|
||||
in_port_t port = 0;
|
||||
isc_dscp_t dscp = -1;
|
||||
const char *key = NULL, *cert = NULL, *ca_file = NULL,
|
||||
*dhparam_file = NULL, *ciphers = NULL;
|
||||
bool tls_prefer_server_ciphers = false,
|
||||
|
|
@ -11323,16 +11259,6 @@ listenelt_fromconfig(const cfg_obj_t *listener, const cfg_obj_t *config,
|
|||
port = (in_port_t)cfg_obj_asuint32(portobj);
|
||||
}
|
||||
|
||||
dscpobj = cfg_tuple_get(ltup, "dscp");
|
||||
if (!cfg_obj_isuint32(dscpobj)) {
|
||||
dscp = named_g_dscp;
|
||||
} else {
|
||||
if (cfg_obj_asuint32(dscpobj) > 63) {
|
||||
return (ISC_R_RANGE);
|
||||
}
|
||||
dscp = (isc_dscp_t)cfg_obj_asuint32(dscpobj);
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBNGHTTP2
|
||||
if (http) {
|
||||
CHECK(listenelt_http(http_server, family, do_tls, &tls_params,
|
||||
|
|
@ -11341,9 +11267,8 @@ listenelt_fromconfig(const cfg_obj_t *listener, const cfg_obj_t *config,
|
|||
#endif /* HAVE_LIBNGHTTP2 */
|
||||
|
||||
if (!http) {
|
||||
CHECK(ns_listenelt_create(mctx, port, dscp, NULL, family,
|
||||
do_tls, &tls_params, tlsctx_cache,
|
||||
&delt));
|
||||
CHECK(ns_listenelt_create(mctx, port, NULL, family, do_tls,
|
||||
&tls_params, tlsctx_cache, &delt));
|
||||
}
|
||||
|
||||
result = cfg_acl_fromconfig2(cfg_tuple_get(listener, "acl"), config,
|
||||
|
|
@ -11429,9 +11354,9 @@ listenelt_http(const cfg_obj_t *http, const uint16_t family, bool tls,
|
|||
|
||||
INSIST(i == len);
|
||||
|
||||
result = ns_listenelt_create_http(
|
||||
mctx, port, named_g_dscp, NULL, family, tls, tls_params,
|
||||
tlsctx_cache, endpoints, len, max_clients, max_streams, &delt);
|
||||
result = ns_listenelt_create_http(mctx, port, NULL, family, tls,
|
||||
tls_params, tlsctx_cache, endpoints,
|
||||
len, max_clients, max_streams, &delt);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto error;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -912,7 +912,6 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||
int seconds;
|
||||
dns_ttl_t maxttl = 0; /* unlimited */
|
||||
dns_zone_t *mayberaw = (raw != NULL) ? raw : zone;
|
||||
isc_dscp_t dscp;
|
||||
|
||||
i = 0;
|
||||
if (zconfig != NULL) {
|
||||
|
|
@ -1273,23 +1272,17 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||
|
||||
RETERR(named_config_getipandkeylist(config, "primaries",
|
||||
obj, mctx, &ipkl));
|
||||
dns_zone_setalsonotify(zone, ipkl.addrs, ipkl.dscps,
|
||||
ipkl.keys, ipkl.tlss,
|
||||
ipkl.count);
|
||||
dns_zone_setalsonotify(zone, ipkl.addrs, ipkl.keys,
|
||||
ipkl.tlss, ipkl.count);
|
||||
dns_ipkeylist_clear(mctx, &ipkl);
|
||||
} else {
|
||||
dns_zone_setalsonotify(zone, NULL, NULL, NULL, NULL, 0);
|
||||
dns_zone_setalsonotify(zone, NULL, NULL, NULL, 0);
|
||||
}
|
||||
|
||||
obj = NULL;
|
||||
result = named_config_get(maps, "parental-source", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS && obj != NULL);
|
||||
RETERR(dns_zone_setparentalsrc4(zone, cfg_obj_assockaddr(obj)));
|
||||
dscp = cfg_obj_getdscp(obj);
|
||||
if (dscp == -1) {
|
||||
dscp = named_g_dscp;
|
||||
}
|
||||
RETERR(dns_zone_setparentalsrc4dscp(zone, dscp));
|
||||
named_add_reserved_dispatch(named_g_server,
|
||||
cfg_obj_assockaddr(obj));
|
||||
|
||||
|
|
@ -1297,11 +1290,6 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||
result = named_config_get(maps, "parental-source-v6", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS && obj != NULL);
|
||||
RETERR(dns_zone_setparentalsrc6(zone, cfg_obj_assockaddr(obj)));
|
||||
dscp = cfg_obj_getdscp(obj);
|
||||
if (dscp == -1) {
|
||||
dscp = named_g_dscp;
|
||||
}
|
||||
RETERR(dns_zone_setparentalsrc6dscp(zone, dscp));
|
||||
named_add_reserved_dispatch(named_g_server,
|
||||
cfg_obj_assockaddr(obj));
|
||||
|
||||
|
|
@ -1309,11 +1297,6 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||
result = named_config_get(maps, "notify-source", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS && obj != NULL);
|
||||
RETERR(dns_zone_setnotifysrc4(zone, cfg_obj_assockaddr(obj)));
|
||||
dscp = cfg_obj_getdscp(obj);
|
||||
if (dscp == -1) {
|
||||
dscp = named_g_dscp;
|
||||
}
|
||||
RETERR(dns_zone_setnotifysrc4dscp(zone, dscp));
|
||||
named_add_reserved_dispatch(named_g_server,
|
||||
cfg_obj_assockaddr(obj));
|
||||
|
||||
|
|
@ -1321,11 +1304,6 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||
result = named_config_get(maps, "notify-source-v6", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS && obj != NULL);
|
||||
RETERR(dns_zone_setnotifysrc6(zone, cfg_obj_assockaddr(obj)));
|
||||
dscp = cfg_obj_getdscp(obj);
|
||||
if (dscp == -1) {
|
||||
dscp = named_g_dscp;
|
||||
}
|
||||
RETERR(dns_zone_setnotifysrc6dscp(zone, dscp));
|
||||
named_add_reserved_dispatch(named_g_server,
|
||||
cfg_obj_assockaddr(obj));
|
||||
|
||||
|
|
@ -1950,11 +1928,6 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||
INSIST(result == ISC_R_SUCCESS && obj != NULL);
|
||||
RETERR(dns_zone_setxfrsource4(mayberaw,
|
||||
cfg_obj_assockaddr(obj)));
|
||||
dscp = cfg_obj_getdscp(obj);
|
||||
if (dscp == -1) {
|
||||
dscp = named_g_dscp;
|
||||
}
|
||||
RETERR(dns_zone_setxfrsource4dscp(mayberaw, dscp));
|
||||
named_add_reserved_dispatch(named_g_server,
|
||||
cfg_obj_assockaddr(obj));
|
||||
|
||||
|
|
@ -1963,11 +1936,6 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||
INSIST(result == ISC_R_SUCCESS && obj != NULL);
|
||||
RETERR(dns_zone_setxfrsource6(mayberaw,
|
||||
cfg_obj_assockaddr(obj)));
|
||||
dscp = cfg_obj_getdscp(obj);
|
||||
if (dscp == -1) {
|
||||
dscp = named_g_dscp;
|
||||
}
|
||||
RETERR(dns_zone_setxfrsource6dscp(mayberaw, dscp));
|
||||
named_add_reserved_dispatch(named_g_server,
|
||||
cfg_obj_assockaddr(obj));
|
||||
|
||||
|
|
@ -1976,23 +1944,11 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||
INSIST(result == ISC_R_SUCCESS && obj != NULL);
|
||||
RETERR(dns_zone_setaltxfrsource4(mayberaw,
|
||||
cfg_obj_assockaddr(obj)));
|
||||
dscp = cfg_obj_getdscp(obj);
|
||||
if (dscp == -1) {
|
||||
dscp = named_g_dscp;
|
||||
}
|
||||
RETERR(dns_zone_setaltxfrsource4dscp(mayberaw, dscp));
|
||||
|
||||
obj = NULL;
|
||||
result = named_config_get(maps, "alt-transfer-source-v6", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS && obj != NULL);
|
||||
RETERR(dns_zone_setaltxfrsource6(mayberaw,
|
||||
cfg_obj_assockaddr(obj)));
|
||||
dscp = cfg_obj_getdscp(obj);
|
||||
if (dscp == -1) {
|
||||
dscp = named_g_dscp;
|
||||
}
|
||||
RETERR(dns_zone_setaltxfrsource6dscp(mayberaw, dscp));
|
||||
|
||||
obj = NULL;
|
||||
(void)named_config_get(maps, "use-alt-transfer-source", &obj);
|
||||
if (obj == NULL) {
|
||||
|
|
|
|||
|
|
@ -2504,7 +2504,7 @@ send_update(dns_name_t *zone, isc_sockaddr_t *primary) {
|
|||
updatemsg->tsigname->attributes |= DNS_NAMEATTR_NOCOMPRESS;
|
||||
}
|
||||
|
||||
result = dns_request_create(requestmgr, updatemsg, srcaddr, primary, -1,
|
||||
result = dns_request_create(requestmgr, updatemsg, srcaddr, primary,
|
||||
options, tsigkey, timeout, udp_timeout,
|
||||
udp_retries, global_task, update_completed,
|
||||
NULL, &request);
|
||||
|
|
@ -2614,7 +2614,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) {
|
|||
}
|
||||
|
||||
result = dns_request_create(requestmgr, soaquery, srcaddr, addr,
|
||||
-1, 0, NULL, FIND_TIMEOUT * 20,
|
||||
0, NULL, FIND_TIMEOUT * 20,
|
||||
FIND_TIMEOUT, 3, global_task,
|
||||
recvsoa, reqinfo, &request);
|
||||
check_result(result, "dns_request_create");
|
||||
|
|
@ -2833,7 +2833,7 @@ sendrequest(isc_sockaddr_t *destaddr, dns_message_t *msg,
|
|||
srcaddr = localaddr4;
|
||||
}
|
||||
|
||||
result = dns_request_create(requestmgr, msg, srcaddr, destaddr, -1, 0,
|
||||
result = dns_request_create(requestmgr, msg, srcaddr, destaddr, 0,
|
||||
default_servers ? NULL : tsigkey,
|
||||
FIND_TIMEOUT * 20, FIND_TIMEOUT, 3,
|
||||
global_task, recvsoa, reqinfo, request);
|
||||
|
|
@ -3035,10 +3035,9 @@ send_gssrequest(isc_sockaddr_t *destaddr, dns_message_t *msg,
|
|||
srcaddr = localaddr4;
|
||||
}
|
||||
|
||||
result = dns_request_create(requestmgr, msg, srcaddr, destaddr, -1,
|
||||
options, tsigkey, FIND_TIMEOUT * 20,
|
||||
FIND_TIMEOUT, 3, global_task, recvgss,
|
||||
reqinfo, request);
|
||||
result = dns_request_create(requestmgr, msg, srcaddr, destaddr, options,
|
||||
tsigkey, FIND_TIMEOUT * 20, FIND_TIMEOUT, 3,
|
||||
global_task, recvgss, reqinfo, request);
|
||||
check_result(result, "dns_request_create");
|
||||
if (debugging) {
|
||||
show_message(stdout, msg, "Outgoing update query:");
|
||||
|
|
|
|||
|
|
@ -108,7 +108,6 @@ TESTS += \
|
|||
dialup \
|
||||
dlzexternal \
|
||||
dns64 \
|
||||
dscp \
|
||||
dsdigest \
|
||||
dupsigs \
|
||||
dyndb \
|
||||
|
|
|
|||
|
|
@ -13,13 +13,4 @@
|
|||
|
||||
options {
|
||||
port 999999;
|
||||
dscp 222;
|
||||
listen-on port 100 dscp 444 {
|
||||
127.0.0.1/32;
|
||||
};
|
||||
};
|
||||
|
||||
zone "example" {
|
||||
type primary;
|
||||
file "example.db";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -68,7 +68,6 @@ database
|
|||
digdelv
|
||||
dlz
|
||||
dns64
|
||||
dscp
|
||||
dsdigest
|
||||
ecdsa
|
||||
eddsa
|
||||
|
|
|
|||
|
|
@ -30,9 +30,9 @@ controls {
|
|||
};
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.1 dscp 1;
|
||||
notify-source 10.53.0.1 dscp 2;
|
||||
transfer-source 10.53.0.1 dscp 3;
|
||||
query-source address 10.53.0.1;
|
||||
notify-source 10.53.0.1;
|
||||
transfer-source 10.53.0.1;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.1; };
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@
|
|||
*/
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.2 dscp 1;
|
||||
notify-source 10.53.0.2 dscp 2;
|
||||
transfer-source 10.53.0.2 dscp 3;
|
||||
query-source address 10.53.0.2;
|
||||
notify-source 10.53.0.2;
|
||||
transfer-source 10.53.0.2;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.2; };
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@ controls {
|
|||
};
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.3 dscp 1;
|
||||
notify-source 10.53.0.3 dscp 2;
|
||||
transfer-source 10.53.0.3 dscp 3;
|
||||
query-source address 10.53.0.3;
|
||||
notify-source 10.53.0.3;
|
||||
transfer-source 10.53.0.3;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.3; };
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@
|
|||
*/
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.7 dscp 1;
|
||||
notify-source 10.53.0.7 dscp 2;
|
||||
transfer-source 10.53.0.7 dscp 3;
|
||||
query-source address 10.53.0.7;
|
||||
notify-source 10.53.0.7;
|
||||
transfer-source 10.53.0.7;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.7; };
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.3 dscp 1;
|
||||
query-source address 10.53.0.3;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.3; };
|
||||
|
|
|
|||
|
|
@ -542,17 +542,6 @@ if [ -x "$DIG" ] ; then
|
|||
if [ $ret -ne 0 ]; then echo_i "failed"; fi
|
||||
status=$((status+ret))
|
||||
|
||||
n=$((n+1))
|
||||
echo_i "checking dig +dscp ($n)"
|
||||
ret=0
|
||||
dig_with_opts @10.53.0.3 +dscp=32 a a.example > /dev/null 2>&1 || ret=1
|
||||
dig_with_opts @10.53.0.3 +dscp=-1 a a.example > /dev/null 2>&1 && ret=1
|
||||
dig_with_opts @10.53.0.3 +dscp=64 a a.example > /dev/null 2>&1 && ret=1
|
||||
#TODO add a check to make sure dig is actually setting the dscp on the query
|
||||
#we might have to add better logging to named for this
|
||||
if [ $ret -ne 0 ]; then echo_i "failed"; fi
|
||||
status=$((status+ret))
|
||||
|
||||
n=$((n+1))
|
||||
echo_i "checking dig +ednsopt with option number ($n)"
|
||||
ret=0
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@
|
|||
// NS4
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.4 dscp 1;
|
||||
notify-source 10.53.0.4 dscp 2;
|
||||
transfer-source 10.53.0.4 dscp 3;
|
||||
query-source address 10.53.0.4;
|
||||
notify-source 10.53.0.4;
|
||||
transfer-source 10.53.0.4;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.4; };
|
||||
|
|
|
|||
|
|
@ -14,10 +14,9 @@
|
|||
// NS4
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.4 dscp 4;
|
||||
notify-source 10.53.0.4 dscp 5;
|
||||
transfer-source 10.53.0.4 dscp 6;
|
||||
dscp 16;
|
||||
query-source address 10.53.0.4;
|
||||
notify-source 10.53.0.4;
|
||||
transfer-source 10.53.0.4;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.4; };
|
||||
|
|
|
|||
|
|
@ -1,20 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
rm -f */root.bk
|
||||
rm -f dig.out.10.53.0.?
|
||||
rm -f */named.memstats
|
||||
rm -f */named.run
|
||||
rm -f */named.conf
|
||||
rm -f ns*/named.lock
|
||||
rm -f ns*/managed-keys.bind*
|
||||
|
|
@ -1 +0,0 @@
|
|||
-m record -c named.conf -d 99 -D dscp-ns1 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
options {
|
||||
dscp 46;
|
||||
query-source address 10.53.0.1;
|
||||
notify-source 10.53.0.1;
|
||||
transfer-source 10.53.0.1;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.1; };
|
||||
listen-on-v6 { none; };
|
||||
recursion no;
|
||||
dnssec-validation no;
|
||||
notify yes;
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type primary;
|
||||
file "root.db";
|
||||
};
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; SPDX-License-Identifier: MPL-2.0
|
||||
;
|
||||
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
; file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
;
|
||||
; See the COPYRIGHT file distributed with this work for additional
|
||||
; information regarding copyright ownership.
|
||||
|
||||
$TTL 3600
|
||||
. SOA ns1.nil-servers. marka.isc.org. 1 3600 1200 3600000 1200
|
||||
. NS ns1.nil-servers.
|
||||
. NS ns2.nil-servers.
|
||||
ns1.nil-servers. A 10.53.0.1
|
||||
ns2.nil-servers. A 10.53.0.2
|
||||
xxx.example. A 10.53.0.1
|
||||
xxx.tld. A 10.53.0.1
|
||||
|
|
@ -1 +0,0 @@
|
|||
-m record -c named.conf -d 99 -D dscp-ns2 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
options {
|
||||
dscp 46;
|
||||
query-source address 10.53.0.2;
|
||||
notify-source 10.53.0.2;
|
||||
transfer-source 10.53.0.2;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.2; };
|
||||
listen-on-v6 { none; };
|
||||
recursion no;
|
||||
dnssec-validation no;
|
||||
notify yes;
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type secondary;
|
||||
file "root.bk";
|
||||
primaries { 10.53.0.1; };
|
||||
};
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; SPDX-License-Identifier: MPL-2.0
|
||||
;
|
||||
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
; file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
;
|
||||
; See the COPYRIGHT file distributed with this work for additional
|
||||
; information regarding copyright ownership.
|
||||
|
||||
$TTL 3600
|
||||
. NS ns1.nil-servers.
|
||||
. NS ns2.nil-servers.
|
||||
ns1.nil-servers. A 10.53.0.1
|
||||
ns2.nil-servers. A 10.53.0.2
|
||||
|
|
@ -1 +0,0 @@
|
|||
-m record -c named.conf -d 99 -D dscp-ns3 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
options {
|
||||
dscp 46;
|
||||
query-source address 10.53.0.3;
|
||||
notify-source 10.53.0.3;
|
||||
transfer-source 10.53.0.3;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.3; };
|
||||
listen-on-v6 { none; };
|
||||
notify yes;
|
||||
recursion yes;
|
||||
dnssec-validation yes;
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "hint.db";
|
||||
};
|
||||
|
|
@ -1 +0,0 @@
|
|||
-m record -c named.conf -d 99 -D dscp-ns4 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
options {
|
||||
dscp 47;
|
||||
query-source dscp 46 address 10.53.0.4;
|
||||
notify-source 10.53.0.4 dscp 46;
|
||||
transfer-source 10.53.0.4 dscp 46;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on dscp 46 { 10.53.0.4; };
|
||||
listen-on-v6 { none; };
|
||||
recursion no;
|
||||
dnssec-validation no;
|
||||
notify yes;
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type primary;
|
||||
file "root.db";
|
||||
};
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; SPDX-License-Identifier: MPL-2.0
|
||||
;
|
||||
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
; file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
;
|
||||
; See the COPYRIGHT file distributed with this work for additional
|
||||
; information regarding copyright ownership.
|
||||
|
||||
$TTL 3600
|
||||
. SOA ns4.nil-servers. marka.isc.org. 1 3600 1200 3600000 1200
|
||||
. NS ns4.nil-servers.
|
||||
. NS ns5.nil-servers.
|
||||
ns4.nil-servers. A 10.53.0.4
|
||||
ns5.nil-servers. A 10.53.0.5
|
||||
xxx.example. A 10.53.0.1
|
||||
xxx.tld. A 10.53.0.1
|
||||
|
|
@ -1 +0,0 @@
|
|||
-m record -c named.conf -d 99 -D dscp-ns5 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
options {
|
||||
dscp 47;
|
||||
query-source dscp 46 address 10.53.0.5;
|
||||
notify-source 10.53.0.5 dscp 46;
|
||||
transfer-source 10.53.0.5 dscp 46;
|
||||
alt-transfer-source 10.53.0.5 dscp 46;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on dscp 46 { 10.53.0.5; };
|
||||
listen-on-v6 { none; };
|
||||
recursion no;
|
||||
dnssec-validation no;
|
||||
notify yes;
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type secondary;
|
||||
file "root.bk";
|
||||
primaries { 10.53.0.4; };
|
||||
};
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; SPDX-License-Identifier: MPL-2.0
|
||||
;
|
||||
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
; file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
;
|
||||
; See the COPYRIGHT file distributed with this work for additional
|
||||
; information regarding copyright ownership.
|
||||
|
||||
$TTL 3600
|
||||
. NS ns4.nil-servers.
|
||||
. NS ns5.nil-servers.
|
||||
ns4.nil-servers. A 10.53.0.4
|
||||
ns5.nil-servers. A 10.53.0.5
|
||||
|
|
@ -1 +0,0 @@
|
|||
-m record -c named.conf -d 99 -D dscp-ns6 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
options {
|
||||
dscp 47;
|
||||
query-source dscp 46 address 10.53.0.6;
|
||||
notify-source 10.53.0.6 dscp 46;
|
||||
transfer-source 10.53.0.6 dscp 46;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on dscp 46 { 10.53.0.6; };
|
||||
listen-on-v6 { none; };
|
||||
notify yes;
|
||||
recursion yes;
|
||||
dnssec-validation yes;
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "hint.db";
|
||||
};
|
||||
|
|
@ -1 +0,0 @@
|
|||
-m record -c named.conf -d 99 -D dscp-ns7 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
options {
|
||||
dscp 47;
|
||||
query-source dscp 46 address 10.53.0.7;
|
||||
notify-source 10.53.0.7 dscp 47;
|
||||
transfer-source 10.53.0.7 dscp 47;
|
||||
alt-transfer-source 10.53.0.7 dscp 47;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on dscp 46 { 10.53.0.7; };
|
||||
listen-on-v6 { none; };
|
||||
recursion no;
|
||||
dnssec-validation no;
|
||||
notify yes;
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type secondary;
|
||||
file "root.bk";
|
||||
transfer-source 10.53.0.7 dscp 46;
|
||||
notify-source 10.53.0.7 dscp 46;
|
||||
alt-transfer-source 10.53.0.7 dscp 46;
|
||||
primaries { 10.53.0.4; };
|
||||
};
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
. ../conf.sh
|
||||
|
||||
copy_setports ns1/named.conf.in ns1/named.conf
|
||||
copy_setports ns2/named.conf.in ns2/named.conf
|
||||
copy_setports ns3/named.conf.in ns3/named.conf
|
||||
copy_setports ns4/named.conf.in ns4/named.conf
|
||||
copy_setports ns5/named.conf.in ns5/named.conf
|
||||
copy_setports ns6/named.conf.in ns6/named.conf
|
||||
copy_setports ns7/named.conf.in ns7/named.conf
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
. ../conf.sh
|
||||
|
||||
DIGOPTS="+tcp +noadd +nosea +nostat +noquest -p ${PORT}"
|
||||
|
||||
status=0
|
||||
|
||||
#
|
||||
# 10.53.0.1 10.53.0.2 10.53.0.3 have a global dscp setting;
|
||||
# 10.53.0.4 10.53.0.5 10.53.0.6 have dscp set in option *-source clauses;
|
||||
# 10.53.0.7 has dscp set in zone *-source clauses;
|
||||
#
|
||||
for server in 10.53.0.1 10.53.0.2 10.53.0.3 10.53.0.4 10.53.0.5 \
|
||||
10.53.0.6 10.53.0.7
|
||||
do
|
||||
echo_i "testing root SOA lookup at $server"
|
||||
for i in 0 1 2 3 4 5 6 7 8 9
|
||||
do
|
||||
ret=0
|
||||
$DIG $DIGOPTS @$server soa . > dig.out.$server
|
||||
grep "status: NOERROR" dig.out.$server > /dev/null || ret=1
|
||||
test $ret = 0 && break
|
||||
sleep 1
|
||||
done
|
||||
test $ret = 0 || { echo_i "failed"; status=`expr $status + $ret`; }
|
||||
done
|
||||
|
||||
echo_i "exit status: $status"
|
||||
[ $status -eq 0 ] || exit 1
|
||||
|
|
@ -21,9 +21,9 @@ controls {
|
|||
};
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.1 dscp 1;
|
||||
notify-source 10.53.0.1 dscp 2;
|
||||
transfer-source 10.53.0.1 dscp 3;
|
||||
query-source address 10.53.0.1;
|
||||
notify-source 10.53.0.1;
|
||||
transfer-source 10.53.0.1;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.1; };
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@ controls {
|
|||
};
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.1 dscp 1;
|
||||
notify-source 10.53.0.1 dscp 2;
|
||||
transfer-source 10.53.0.1 dscp 3;
|
||||
query-source address 10.53.0.1;
|
||||
notify-source 10.53.0.1;
|
||||
transfer-source 10.53.0.1;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.1; };
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@
|
|||
*/
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.1 dscp 1;
|
||||
notify-source 10.53.0.1 dscp 22;
|
||||
transfer-source 10.53.0.1 dscp 3;
|
||||
query-source address 10.53.0.1;
|
||||
notify-source 10.53.0.1;
|
||||
transfer-source 10.53.0.1;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
session-keyfile "session.key";
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@
|
|||
*/
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.2 dscp 4;
|
||||
notify-source 10.53.0.2 dscp 5;
|
||||
transfer-source 10.53.0.2 dscp 6;
|
||||
query-source address 10.53.0.2;
|
||||
notify-source 10.53.0.2;
|
||||
transfer-source 10.53.0.2;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.2; };
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@
|
|||
// NS3
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.3 dscp 7;
|
||||
notify-source 10.53.0.3 dscp 8;
|
||||
transfer-source 10.53.0.3 dscp 9;
|
||||
query-source address 10.53.0.3;
|
||||
notify-source 10.53.0.3;
|
||||
transfer-source 10.53.0.3;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.3; };
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ sendquery(isc_task_t *task) {
|
|||
dns_message_addname(message, qname, DNS_SECTION_QUESTION);
|
||||
|
||||
result = dns_request_create(requestmgr, message,
|
||||
have_src ? &srcaddr : NULL, &dstaddr, -1,
|
||||
have_src ? &srcaddr : NULL, &dstaddr,
|
||||
DNS_REQUESTOPT_TCP, NULL, TIMEOUT, 0, 0,
|
||||
task, recvresponse, message, &request);
|
||||
CHECK("dns_request_create", result);
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@
|
|||
*/
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.1 dscp 1;
|
||||
notify-source 10.53.0.1 dscp 2;
|
||||
transfer-source 10.53.0.1 dscp 3;
|
||||
query-source address 10.53.0.1;
|
||||
notify-source 10.53.0.1;
|
||||
transfer-source 10.53.0.1;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.1; };
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@
|
|||
// NS4
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.4 dscp 4;
|
||||
notify-source 10.53.0.4 dscp 5;
|
||||
transfer-source 10.53.0.4 dscp 6;
|
||||
query-source address 10.53.0.4;
|
||||
notify-source 10.53.0.4;
|
||||
transfer-source 10.53.0.4;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.4; };
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@
|
|||
// NS5
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.5 dscp 7;
|
||||
notify-source 10.53.0.5 dscp 8;
|
||||
transfer-source 10.53.0.5 dscp 9;
|
||||
query-source address 10.53.0.5;
|
||||
notify-source 10.53.0.5;
|
||||
transfer-source 10.53.0.5;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.5; };
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@
|
|||
// NS6
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.6 dscp 10;
|
||||
notify-source 10.53.0.6 dscp 11;
|
||||
transfer-source 10.53.0.6 dscp 12;
|
||||
query-source address 10.53.0.6;
|
||||
notify-source 10.53.0.6;
|
||||
transfer-source 10.53.0.6;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.6; };
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@
|
|||
// NS7
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.7 dscp 13;
|
||||
notify-source 10.53.0.7 dscp 14;
|
||||
transfer-source 10.53.0.7 dscp 15;
|
||||
query-source address 10.53.0.7;
|
||||
notify-source 10.53.0.7;
|
||||
transfer-source 10.53.0.7;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.7; };
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@
|
|||
// NS7
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.7 dscp 13;
|
||||
notify-source 10.53.0.7 dscp 14;
|
||||
transfer-source 10.53.0.7 dscp 15;
|
||||
query-source address 10.53.0.7;
|
||||
notify-source 10.53.0.7;
|
||||
transfer-source 10.53.0.7;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.7; };
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ sendquery(isc_task_t *task, isc_event_t *event) {
|
|||
DNS_TSIG_HMACMD5_NAME, &nonce, 3600);
|
||||
CHECK("dns_tkey_builddhquery", result);
|
||||
|
||||
result = dns_request_create(requestmgr, query, NULL, &address, -1,
|
||||
result = dns_request_create(requestmgr, query, NULL, &address,
|
||||
DNS_REQUESTOPT_TCP, initialkey, TIMEOUT, 0,
|
||||
0, task, recvquery, query, &request);
|
||||
CHECK("dns_request_create", result);
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ sendquery(isc_task_t *task, isc_event_t *event) {
|
|||
result = dns_tkey_builddeletequery(query, tsigkey);
|
||||
CHECK("dns_tkey_builddeletequery", result);
|
||||
|
||||
result = dns_request_create(requestmgr, query, NULL, &address, -1,
|
||||
result = dns_request_create(requestmgr, query, NULL, &address,
|
||||
DNS_REQUESTOPT_TCP, tsigkey, TIMEOUT, 0, 0,
|
||||
task, recvquery, query, &request);
|
||||
CHECK("dns_request_create", result);
|
||||
|
|
|
|||
|
|
@ -116,7 +116,6 @@ static isc_sockaddr_t srcaddr;
|
|||
static char *server = NULL;
|
||||
static isc_sockaddr_t dstaddr;
|
||||
static in_port_t port = 53;
|
||||
static isc_dscp_t dscp = -1;
|
||||
static unsigned char cookie_secret[33];
|
||||
static int onfly = 0;
|
||||
static char hexcookie[81];
|
||||
|
|
@ -755,7 +754,7 @@ sendquery(struct query *query, isc_task_t *task) {
|
|||
|
||||
request = NULL;
|
||||
result = dns_request_create(
|
||||
requestmgr, message, have_src ? &srcaddr : NULL, &dstaddr, dscp,
|
||||
requestmgr, message, have_src ? &srcaddr : NULL, &dstaddr,
|
||||
options, NULL, query->timeout, query->udptimeout,
|
||||
query->udpretries, task, recvresponse, message, &request);
|
||||
CHECK("dns_request_create", result);
|
||||
|
|
@ -814,9 +813,6 @@ help(void) {
|
|||
" -p port (specify port number)\n"
|
||||
" -m (enable memory usage "
|
||||
"debugging)\n"
|
||||
" +[no]dscp[=###] (Set the DSCP value to "
|
||||
"### "
|
||||
"[0..63])\n"
|
||||
" +[no]vc (TCP mode)\n"
|
||||
" +[no]tcp (TCP mode, alternate "
|
||||
"syntax)\n"
|
||||
|
|
@ -1321,18 +1317,10 @@ plus_option(char *option, struct query *query, bool global) {
|
|||
query->dnssec = state;
|
||||
break;
|
||||
case 's': /* dscp */
|
||||
/* obsolete */
|
||||
FULLCHECK("dscp");
|
||||
GLOBAL();
|
||||
if (!state) {
|
||||
dscp = -1;
|
||||
break;
|
||||
}
|
||||
if (value == NULL) {
|
||||
goto need_value;
|
||||
}
|
||||
result = parse_uint(&num, value, 0x3f, "DSCP");
|
||||
CHECK("parse_uint(DSCP)", result);
|
||||
dscp = num;
|
||||
fprintf(stderr, ";; +dscp option is obsolete "
|
||||
"and has no effect");
|
||||
break;
|
||||
default:
|
||||
goto invalid_option;
|
||||
|
|
|
|||
|
|
@ -161,11 +161,10 @@ The global query options are:
|
|||
they are replaced by the string "[omitted]"; in the DNSKEY case, the
|
||||
key ID is displayed as the replacement, e.g., ``[ key id = value ]``.
|
||||
|
||||
.. option:: +dscp[=value]
|
||||
.. option:: +dscp=value
|
||||
|
||||
This option sets the DSCP code point to be used when sending the query. Valid DSCP
|
||||
code points are in the range [0...63]. By default no code point is
|
||||
explicitly set.
|
||||
This option formerly set the DSCP value used when sending a query.
|
||||
It is now obsolete, and has no effect.
|
||||
|
||||
.. option:: +multiline, +nomultiline
|
||||
|
||||
|
|
|
|||
|
|
@ -314,9 +314,6 @@ file documentation:
|
|||
``domain_name``
|
||||
A quoted string which is used as a DNS name; for example: ``my.test.domain``.
|
||||
|
||||
``dscp``
|
||||
An :term:`integer` between 0 and 63, used to select a Differentiated Services Code Point (DSCP) value for use with outgoing traffic on operating systems that support DSCP.
|
||||
|
||||
``fixedpoint``
|
||||
A non-negative real number that can be specified to the nearest one-hundredth. Up to five digits can be specified before a decimal point, and up to two digits after, so the maximum value is 99999.99. Acceptable values might be further limited by the contexts in which they are used.
|
||||
|
||||
|
|
@ -1611,11 +1608,11 @@ default is used.
|
|||
|
||||
.. namedconf:statement:: dscp
|
||||
:tags: server, query
|
||||
:short: Specifies the global Differentiated Services Code Point (DSCP) value to classify outgoing DNS traffic.
|
||||
:short: Sets the Differentiated Services Code Point (DSCP) value (obsolete).
|
||||
|
||||
This is the global Differentiated Services Code Point (DSCP) value to
|
||||
classify outgoing DNS traffic, on operating systems that support DSCP.
|
||||
Valid values are 0 through 63. It is not configured by default.
|
||||
This option used to set the global Differentiated Services Code Point
|
||||
(DSCP) value to classify outgoing DNS traffic. It is now obsolete and
|
||||
has no effect.
|
||||
|
||||
.. namedconf:statement:: preferred-glue
|
||||
:tags: query
|
||||
|
|
@ -2890,8 +2887,8 @@ authoritative and does not have the answer in its cache.
|
|||
|
||||
This specifies a list of IP addresses to which queries are forwarded. The
|
||||
default is the empty list (no forwarding). Each address in the list can be
|
||||
associated with an optional port number and/or DSCP value, and a default port
|
||||
number and DSCP value can be set for the entire list.
|
||||
associated with an optional port number. A default port number can be set
|
||||
for the entire list.
|
||||
|
||||
Forwarding can also be configured on a per-domain basis, allowing for
|
||||
the global forwarding options to be overridden in a variety of ways.
|
||||
|
|
|
|||
143
doc/design/dscp
143
doc/design/dscp
|
|
@ -1,143 +0,0 @@
|
|||
<!--
|
||||
Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
|
||||
SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
|
||||
See the COPYRIGHT file distributed with this work for additional
|
||||
information regarding copyright ownership.
|
||||
-->
|
||||
|
||||
Differentiate Services Code Point Support
|
||||
|
||||
Differentiate Services Code Point (DSCP) is implemented in IPv4 using the
|
||||
TOS octet and in IPv6 using the TCLASS octet.
|
||||
|
||||
RFC 3542 defines the api to manipulate the TCLASS octet as part of
|
||||
the advanced socket API. TCLASS is settable on both a socket and
|
||||
packet basis (setsockopt/sendmsg) and the sent value can be retrieved
|
||||
using recvmsg over UDP. Retrieval is undefined for TCP.
|
||||
|
||||
The Advanced socket API was not incorporated into the POSIX socket
|
||||
API for IPv6 and may not be completely implemented in any OS.
|
||||
|
||||
For TOS setsockopt() supports setting of the field on a persocket
|
||||
basis. TOS may also be set on a per packet basis on some OS using
|
||||
sendmsg. If it is not supported the sendmsg call reports a error.
|
||||
Support can only be determined by attempted to send a packet with
|
||||
the option set. Retrieval of the sent TOS value is retrievable on
|
||||
Linux. This can be determined at compile time.
|
||||
|
||||
DSCP values need to be compatible with TOS values as it is a re-use
|
||||
of the field.
|
||||
|
||||
LIBISC:
|
||||
|
||||
We will need to be able to probe for the level of DSCP support. We
|
||||
need to know if we can set it at the socket level, packet level and
|
||||
if we can retrieve the DSCP value sent. This needs to be done
|
||||
independently for IPv4 and IPv6.
|
||||
|
||||
#define ISC_NET_DSCPRECVV4 0x01 /* Can receive sent DSCP value IPv4 */
|
||||
#define ISC_NET_DSCPRECVV6 0x02 /* Can receive sent DSCP value IPv6 */
|
||||
#define ISC_NET_DSCPSETV4 0x04 /* Can set DSCP on socket IPv4 */
|
||||
#define ISC_NET_DSCPSETV6 0x08 /* Can set DSCP on socket IPv6 */
|
||||
#define ISC_NET_DSCPPKTV4 0x10 /* Can set DSCP on per packet IPv4 */
|
||||
#define ISC_NET_DSCPPKTV6 0x20 /* Can set DSCP on per packet IPv6 */
|
||||
#define ISC_NET_DSCPALL 0x3f /* All valid flags */
|
||||
|
||||
unsigned int
|
||||
isc_net_probedscp(void);
|
||||
/*%<
|
||||
* Probe the level of DSCP support.
|
||||
*/
|
||||
|
||||
We also need to be able to set DSCP values on a per socket basis, per packet
|
||||
basis and to retrieve dscp values from received packet.
|
||||
|
||||
Setting dscp on a per socket basis shall be done using isc_socket_dscp.
|
||||
|
||||
void
|
||||
isc_socket_dscp(isc_socket_t *sock, unsigned int dscp);
|
||||
/*%<
|
||||
* Requires:
|
||||
*\li 'sock' is a valid socket.
|
||||
*/
|
||||
/*@}*/
|
||||
|
||||
isc_socketevent shall be extended to support the sending of and retrieval
|
||||
of DSCP values. If ISC_SOCKEVENTATTR_DSCP is set then isc_socket_sendto2
|
||||
shall set the DSCP value. isc_socket_recv shall set ISC_SOCKEVENTATTR_DSCP
|
||||
and the dscp element if the OS returns the value via recvmsg.
|
||||
|
||||
#define ISC_SOCKEVENTATTR_DSCP 0x00040000U /* public */
|
||||
|
||||
struct isc_socketevent {
|
||||
ISC_EVENT_COMMON(isc_socketevent_t);
|
||||
isc_result_t result; /*%< OK, EOF, whatever else */
|
||||
unsigned int minimum; /*%< minimum i/o for event */
|
||||
unsigned int n; /*%< bytes read or written */
|
||||
unsigned int offset; /*%< offset into buffer list */
|
||||
isc_region_t region; /*%< for single-buffer i/o */
|
||||
isc_bufferlist_t bufferlist; /*%< list of buffers */
|
||||
isc_sockaddr_t address; /*%< source address */
|
||||
isc_time_t timestamp; /*%< timestamp of packet recv */
|
||||
struct in6_pktinfo pktinfo; /*%< ipv6 pktinfo */
|
||||
uint32_t attributes; /*%< see below */
|
||||
isc_eventdestructor_t destroy; /*%< original destructor */
|
||||
unsigned int dscp; /*%< UDP dscp value */
|
||||
};
|
||||
|
||||
A convenience function will be provided to allocate and initialize the structure.
|
||||
|
||||
isc_socketevent_t *
|
||||
isc_socket_socketevent(isc_socket_t *sock0, isc_eventtype_t eventtype,
|
||||
isc_taskaction_t action, const void *arg)
|
||||
|
||||
NAMED/LIBDNS:
|
||||
|
||||
Named needs to be able to set the DSCP value of sent traffic. We should
|
||||
be able to set DSCP for all TCP connections.
|
||||
|
||||
For UDP we should have a default DSCP value for when we can't set this on
|
||||
a per packet basis with the ability to override for specific destinations.
|
||||
|
||||
options/view/server;
|
||||
tcp-dscp <value>;
|
||||
udp-dscp <value>;
|
||||
|
||||
http://bogpeople.com/networking/dscp.shtml list a set of TOS compatible
|
||||
values (below).
|
||||
|
||||
DSCP Name DS Field Value IP Precedence
|
||||
Binary Decimal
|
||||
CS0 000 000 0 0
|
||||
CS1 001 000 8 1
|
||||
AF11 001 010 10 1
|
||||
AF12 001 100 12 1
|
||||
AF13 001 110 14 1
|
||||
CS2 010 000 16 2
|
||||
AF21 010 010 18 2
|
||||
AF22 010 100 20 2
|
||||
AF23 010 110 22 2
|
||||
CS3 011 000 24 3
|
||||
AF31 011 010 26 3
|
||||
AF32 011 100 28 3
|
||||
AF33 011 110 30 3
|
||||
CS4 100 000 32 4
|
||||
AF41 100 010 34 4
|
||||
AF42 100 100 36 4
|
||||
AF43 100 110 38 4
|
||||
CS5 101 000 40 5
|
||||
EF 101 110 46 5
|
||||
CS6 110 000 48 6
|
||||
CS7 111 000 56 7
|
||||
|
||||
CS Class Selector (RFC 2474)
|
||||
AFxy Assured Forwarding (x=class, y=drop precedence) (RFC2597)
|
||||
EF Expedited Forwarding (RFC 3246)
|
||||
|
||||
value should be one of these or a numeric 0..63. The default value is 0.
|
||||
|
|
@ -403,9 +403,8 @@ given.
|
|||
.INDENT 0.0
|
||||
.TP
|
||||
.B +dscp=value
|
||||
This option sets the DSCP code point to be used when sending the query. Valid DSCP
|
||||
code points are in the range [0...63]. By default no code point is
|
||||
explicitly set.
|
||||
This option formerly set the DSCP value used when sending a query.
|
||||
It is now obsolete, and has no effect.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
|
|
|
|||
|
|
@ -185,10 +185,9 @@ key ID is displayed as the replacement, e.g., \fB[ key id = value ]\fP\&.
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B +dscp[=value]
|
||||
This option sets the DSCP code point to be used when sending the query. Valid DSCP
|
||||
code points are in the range [0...63]. By default no code point is
|
||||
explicitly set.
|
||||
.B +dscp=value
|
||||
This option formerly set the DSCP value used when sending a query.
|
||||
It is now obsolete, and has no effect.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
|
|
|
|||
|
|
@ -126,9 +126,9 @@ options {
|
|||
allow\-transfer [ port <integer> ] [ transport <string> ] { <address_match_element>; ... };
|
||||
allow\-update { <address_match_element>; ... };
|
||||
allow\-update\-forwarding { <address_match_element>; ... };
|
||||
also\-notify [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt\-transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
alt\-transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
also\-notify [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt\-transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
alt\-transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
answer\-cookie <boolean>;
|
||||
attach\-cache <string>;
|
||||
auth\-nxdomain <boolean>;
|
||||
|
|
@ -138,7 +138,7 @@ options {
|
|||
avoid\-v6\-udp\-ports { <portrange>; ... };
|
||||
bindkeys\-file <quoted_string>;
|
||||
blackhole { <address_match_element>; ... };
|
||||
catalog\-zones { zone <string> [ default\-primaries [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... } ] [ zone\-directory <quoted_string> ] [ in\-memory <boolean> ] [ min\-update\-interval <duration> ]; ... };
|
||||
catalog\-zones { zone <string> [ default\-primaries [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... } ] [ zone\-directory <quoted_string> ] [ in\-memory <boolean> ] [ min\-update\-interval <duration> ]; ... };
|
||||
check\-dup\-records ( fail | warn | ignore );
|
||||
check\-integrity <boolean>;
|
||||
check\-mx ( fail | warn | ignore );
|
||||
|
|
@ -185,8 +185,8 @@ options {
|
|||
dnstap\-identity ( <quoted_string> | none | hostname ); // not configured
|
||||
dnstap\-output ( file | unix ) <quoted_string> [ size ( unlimited | <size> ) ] [ versions ( unlimited | <integer> ) ] [ suffix ( increment | timestamp ) ]; // not configured
|
||||
dnstap\-version ( <quoted_string> | none ); // not configured
|
||||
dscp <integer>;
|
||||
dual\-stack\-servers [ port <integer> ] { ( <quoted_string> [ port <integer> ] [ dscp <integer> ] | <ipv4_address> [ port <integer> ] [ dscp <integer> ] | <ipv6_address> [ port <integer> ] [ dscp <integer> ] ); ... };
|
||||
dscp <integer>; // obsolete
|
||||
dual\-stack\-servers [ port <integer> ] { ( <quoted_string> [ port <integer> ] | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ); ... };
|
||||
dump\-file <quoted_string>;
|
||||
edns\-udp\-size <integer>;
|
||||
empty\-contact <string>;
|
||||
|
|
@ -198,7 +198,7 @@ options {
|
|||
files ( default | unlimited | <sizeval> ); // deprecated
|
||||
flush\-zones\-on\-shutdown <boolean>;
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
fstrm\-set\-buffer\-hint <integer>; // not configured
|
||||
fstrm\-set\-flush\-timeout <integer>; // not configured
|
||||
fstrm\-set\-input\-queue\-size <integer>; // not configured
|
||||
|
|
@ -222,8 +222,8 @@ options {
|
|||
keep\-response\-order { <address_match_element>; ... };
|
||||
key\-directory <quoted_string>;
|
||||
lame\-ttl <duration>;
|
||||
listen\-on [ port <integer> ] [ dscp <integer> ] [ tls <string> ] [ http <string> ] { <address_match_element>; ... }; // may occur multiple times
|
||||
listen\-on\-v6 [ port <integer> ] [ dscp <integer> ] [ tls <string> ] [ http <string> ] { <address_match_element>; ... }; // may occur multiple times
|
||||
listen\-on [ port <integer> ] [ tls <string> ] [ http <string> ] { <address_match_element>; ... }; // may occur multiple times
|
||||
listen\-on\-v6 [ port <integer> ] [ tls <string> ] [ http <string> ] { <address_match_element>; ... }; // may occur multiple times
|
||||
lmdb\-mapsize <sizeval>;
|
||||
lock\-file ( <quoted_string> | none );
|
||||
managed\-keys\-directory <quoted_string>;
|
||||
|
|
@ -265,23 +265,23 @@ options {
|
|||
notify ( explicit | master\-only | primary\-only | <boolean> );
|
||||
notify\-delay <integer>;
|
||||
notify\-rate <integer>;
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify\-to\-soa <boolean>;
|
||||
nsec3\-test\-zone <boolean>; // test only
|
||||
nta\-lifetime <duration>;
|
||||
nta\-recheck <duration>;
|
||||
nxdomain\-redirect <string>;
|
||||
parental\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
parental\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
pid\-file ( <quoted_string> | none );
|
||||
port <integer>;
|
||||
preferred\-glue <string>;
|
||||
prefetch <integer> [ <integer> ];
|
||||
provide\-ixfr <boolean>;
|
||||
qname\-minimization ( strict | relaxed | disabled | off );
|
||||
query\-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query\-source\-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query\-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) );
|
||||
query\-source\-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) );
|
||||
querylog <boolean>;
|
||||
random\-device ( <quoted_string> | none ); // obsolete
|
||||
rate\-limit {
|
||||
|
|
@ -357,8 +357,8 @@ options {
|
|||
tls\-port <integer>;
|
||||
transfer\-format ( many\-answers | one\-answer );
|
||||
transfer\-message\-size <integer>;
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfers\-in <integer>;
|
||||
transfers\-out <integer>;
|
||||
transfers\-per\-ns <integer>;
|
||||
|
|
@ -378,11 +378,11 @@ options {
|
|||
zone\-statistics ( full | terse | none | <boolean> );
|
||||
};
|
||||
|
||||
parental\-agents <string> [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... }; // may occur multiple times
|
||||
parental\-agents <string> [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... }; // may occur multiple times
|
||||
|
||||
plugin ( query ) <string> [ { <unspecified\-text> } ]; // may occur multiple times
|
||||
|
||||
primaries <string> [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... }; // may occur multiple times
|
||||
primaries <string> [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... }; // may occur multiple times
|
||||
|
||||
server <netprefix> {
|
||||
bogus <boolean>;
|
||||
|
|
@ -391,12 +391,12 @@ server <netprefix> {
|
|||
edns\-version <integer>;
|
||||
keys <server_key>;
|
||||
max\-udp\-size <integer>;
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
padding <integer>;
|
||||
provide\-ixfr <boolean>;
|
||||
query\-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query\-source\-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query\-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) );
|
||||
query\-source\-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) );
|
||||
request\-expire <boolean>;
|
||||
request\-ixfr <boolean>;
|
||||
request\-nsid <boolean>;
|
||||
|
|
@ -404,8 +404,8 @@ server <netprefix> {
|
|||
tcp\-keepalive <boolean>;
|
||||
tcp\-only <boolean>;
|
||||
transfer\-format ( many\-answers | one\-answer );
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfers <integer>;
|
||||
}; // may occur multiple times
|
||||
|
||||
|
|
@ -441,13 +441,13 @@ view <string> [ <class> ] {
|
|||
allow\-transfer [ port <integer> ] [ transport <string> ] { <address_match_element>; ... };
|
||||
allow\-update { <address_match_element>; ... };
|
||||
allow\-update\-forwarding { <address_match_element>; ... };
|
||||
also\-notify [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt\-transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
alt\-transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
also\-notify [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt\-transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
alt\-transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
attach\-cache <string>;
|
||||
auth\-nxdomain <boolean>;
|
||||
auto\-dnssec ( allow | maintain | off ); // deprecated
|
||||
catalog\-zones { zone <string> [ default\-primaries [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... } ] [ zone\-directory <quoted_string> ] [ in\-memory <boolean> ] [ min\-update\-interval <duration> ]; ... };
|
||||
catalog\-zones { zone <string> [ default\-primaries [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... } ] [ zone\-directory <quoted_string> ] [ in\-memory <boolean> ] [ min\-update\-interval <duration> ]; ... };
|
||||
check\-dup\-records ( fail | warn | ignore );
|
||||
check\-integrity <boolean>;
|
||||
check\-mx ( fail | warn | ignore );
|
||||
|
|
@ -490,7 +490,7 @@ view <string> [ <class> ] {
|
|||
dnssec\-update\-mode ( maintain | no\-resign );
|
||||
dnssec\-validation ( yes | no | auto );
|
||||
dnstap { ( all | auth | client | forwarder | resolver | update ) [ ( query | response ) ]; ... }; // not configured
|
||||
dual\-stack\-servers [ port <integer> ] { ( <quoted_string> [ port <integer> ] [ dscp <integer> ] | <ipv4_address> [ port <integer> ] [ dscp <integer> ] | <ipv6_address> [ port <integer> ] [ dscp <integer> ] ); ... };
|
||||
dual\-stack\-servers [ port <integer> ] { ( <quoted_string> [ port <integer> ] | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ); ... };
|
||||
dyndb <string> <quoted_string> { <unspecified\-text> }; // may occur multiple times
|
||||
edns\-udp\-size <integer>;
|
||||
empty\-contact <string>;
|
||||
|
|
@ -500,7 +500,7 @@ view <string> [ <class> ] {
|
|||
fetches\-per\-server <integer> [ ( drop | fail ) ];
|
||||
fetches\-per\-zone <integer> [ ( drop | fail ) ];
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
glue\-cache <boolean>; // deprecated
|
||||
ipv4only\-contact <string>;
|
||||
ipv4only\-enable <boolean>;
|
||||
|
|
@ -550,22 +550,22 @@ view <string> [ <class> ] {
|
|||
nocookie\-udp\-size <integer>;
|
||||
notify ( explicit | master\-only | primary\-only | <boolean> );
|
||||
notify\-delay <integer>;
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify\-to\-soa <boolean>;
|
||||
nsec3\-test\-zone <boolean>; // test only
|
||||
nta\-lifetime <duration>;
|
||||
nta\-recheck <duration>;
|
||||
nxdomain\-redirect <string>;
|
||||
parental\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
parental\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
plugin ( query ) <string> [ { <unspecified\-text> } ]; // may occur multiple times
|
||||
preferred\-glue <string>;
|
||||
prefetch <integer> [ <integer> ];
|
||||
provide\-ixfr <boolean>;
|
||||
qname\-minimization ( strict | relaxed | disabled | off );
|
||||
query\-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query\-source\-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query\-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) );
|
||||
query\-source\-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) );
|
||||
rate\-limit {
|
||||
all\-per\-second <integer>;
|
||||
errors\-per\-second <integer>;
|
||||
|
|
@ -605,12 +605,12 @@ view <string> [ <class> ] {
|
|||
edns\-version <integer>;
|
||||
keys <server_key>;
|
||||
max\-udp\-size <integer>;
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
padding <integer>;
|
||||
provide\-ixfr <boolean>;
|
||||
query\-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query\-source\-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query\-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) );
|
||||
query\-source\-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) );
|
||||
request\-expire <boolean>;
|
||||
request\-ixfr <boolean>;
|
||||
request\-nsid <boolean>;
|
||||
|
|
@ -618,8 +618,8 @@ view <string> [ <class> ] {
|
|||
tcp\-keepalive <boolean>;
|
||||
tcp\-only <boolean>;
|
||||
transfer\-format ( many\-answers | one\-answer );
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfers <integer>;
|
||||
}; // may occur multiple times
|
||||
servfail\-ttl <duration>;
|
||||
|
|
@ -636,8 +636,8 @@ view <string> [ <class> ] {
|
|||
suppress\-initial\-notify <boolean>; // obsolete
|
||||
synth\-from\-dnssec <boolean>;
|
||||
transfer\-format ( many\-answers | one\-answer );
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
trust\-anchor\-telemetry <boolean>; // experimental
|
||||
trust\-anchors { <string> ( static\-key | initial\-key | static\-ds | initial\-ds ) <integer> <integer> <integer> <quoted_string>; ... }; // may occur multiple times
|
||||
trusted\-keys { <string> <integer> <integer> <integer> <quoted_string>; ... }; // may occur multiple times, deprecated
|
||||
|
|
@ -669,9 +669,9 @@ zone <string> [ <class> ] {
|
|||
allow\-query\-on { <address_match_element>; ... };
|
||||
allow\-transfer [ port <integer> ] [ transport <string> ] { <address_match_element>; ... };
|
||||
allow\-update { <address_match_element>; ... };
|
||||
also\-notify [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt\-transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
alt\-transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
also\-notify [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt\-transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
alt\-transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
auto\-dnssec ( allow | maintain | off ); // deprecated
|
||||
check\-dup\-records ( fail | warn | ignore );
|
||||
check\-integrity <boolean>;
|
||||
|
|
@ -693,7 +693,7 @@ zone <string> [ <class> ] {
|
|||
dnssec\-update\-mode ( maintain | no\-resign );
|
||||
file <quoted_string>;
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
inline\-signing <boolean>;
|
||||
ixfr\-from\-differences <boolean>;
|
||||
journal <quoted_string>;
|
||||
|
|
@ -708,13 +708,13 @@ zone <string> [ <class> ] {
|
|||
max\-zone\-ttl ( unlimited | <duration> );
|
||||
notify ( explicit | master\-only | primary\-only | <boolean> );
|
||||
notify\-delay <integer>;
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify\-to\-soa <boolean>;
|
||||
nsec3\-test\-zone <boolean>; // test only
|
||||
parental\-agents [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
parental\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental\-agents [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
parental\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
parental\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
serial\-update\-method ( date | increment | unixtime );
|
||||
sig\-signing\-nodes <integer>;
|
||||
sig\-signing\-signatures <integer>;
|
||||
|
|
@ -742,9 +742,9 @@ zone <string> [ <class> ] {
|
|||
allow\-query\-on { <address_match_element>; ... };
|
||||
allow\-transfer [ port <integer> ] [ transport <string> ] { <address_match_element>; ... };
|
||||
allow\-update\-forwarding { <address_match_element>; ... };
|
||||
also\-notify [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt\-transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
alt\-transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
also\-notify [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt\-transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
alt\-transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
auto\-dnssec ( allow | maintain | off ); // deprecated
|
||||
check\-names ( fail | warn | ignore );
|
||||
database <string>;
|
||||
|
|
@ -757,7 +757,7 @@ zone <string> [ <class> ] {
|
|||
dnssec\-update\-mode ( maintain | no\-resign );
|
||||
file <quoted_string>;
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
inline\-signing <boolean>;
|
||||
ixfr\-from\-differences <boolean>;
|
||||
journal <quoted_string>;
|
||||
|
|
@ -778,22 +778,22 @@ zone <string> [ <class> ] {
|
|||
multi\-master <boolean>;
|
||||
notify ( explicit | master\-only | primary\-only | <boolean> );
|
||||
notify\-delay <integer>;
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify\-to\-soa <boolean>;
|
||||
nsec3\-test\-zone <boolean>; // test only
|
||||
parental\-agents [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
parental\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
primaries [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
parental\-agents [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
parental\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
parental\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
primaries [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
request\-expire <boolean>;
|
||||
request\-ixfr <boolean>;
|
||||
sig\-signing\-nodes <integer>;
|
||||
sig\-signing\-signatures <integer>;
|
||||
sig\-signing\-type <integer>;
|
||||
sig\-validity\-interval <integer> [ <integer> ];
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
try\-tcp\-refresh <boolean>;
|
||||
update\-check\-ksk <boolean>;
|
||||
use\-alt\-transfer\-source <boolean>; // deprecated
|
||||
|
|
@ -817,9 +817,9 @@ zone <string> [ <class> ] {
|
|||
allow\-query\-on { <address_match_element>; ... };
|
||||
allow\-transfer [ port <integer> ] [ transport <string> ] { <address_match_element>; ... };
|
||||
allow\-update\-forwarding { <address_match_element>; ... };
|
||||
also\-notify [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt\-transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
alt\-transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
also\-notify [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt\-transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
alt\-transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
check\-names ( fail | warn | ignore );
|
||||
database <string>;
|
||||
file <quoted_string>;
|
||||
|
|
@ -841,13 +841,13 @@ zone <string> [ <class> ] {
|
|||
multi\-master <boolean>;
|
||||
notify ( explicit | master\-only | primary\-only | <boolean> );
|
||||
notify\-delay <integer>;
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
primaries [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
notify\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
primaries [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
request\-expire <boolean>;
|
||||
request\-ixfr <boolean>;
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
try\-tcp\-refresh <boolean>;
|
||||
use\-alt\-transfer\-source <boolean>; // deprecated
|
||||
zero\-no\-soa\-ttl <boolean>;
|
||||
|
|
@ -867,7 +867,7 @@ zone <string> [ <class> ] {
|
|||
type forward;
|
||||
delegation\-only <boolean>;
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
};
|
||||
|
||||
.ft P
|
||||
|
|
@ -905,7 +905,7 @@ zone <string> [ <class> ] {
|
|||
masterfile\-style ( full | relative );
|
||||
max\-records <integer>;
|
||||
max\-zone\-ttl ( unlimited | <duration> );
|
||||
primaries [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
primaries [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
zone\-statistics ( full | terse | none | <boolean> );
|
||||
};
|
||||
|
||||
|
|
@ -923,7 +923,7 @@ zone <string> [ <class> ] {
|
|||
allow\-query { <address_match_element>; ... };
|
||||
allow\-query\-on { <address_match_element>; ... };
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
max\-records <integer>;
|
||||
server\-addresses { ( <ipv4_address> | <ipv6_address> ); ... };
|
||||
server\-names { <string>; ... };
|
||||
|
|
@ -949,7 +949,7 @@ zone <string> [ <class> ] {
|
|||
dialup ( notify | notify\-passive | passive | refresh | <boolean> );
|
||||
file <quoted_string>;
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
masterfile\-format ( raw | text );
|
||||
masterfile\-style ( full | relative );
|
||||
max\-records <integer>;
|
||||
|
|
@ -960,9 +960,9 @@ zone <string> [ <class> ] {
|
|||
min\-refresh\-time <integer>;
|
||||
min\-retry\-time <integer>;
|
||||
multi\-master <boolean>;
|
||||
primaries [ port <integer> ] [ dscp <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
primaries [ port <integer> ] { ( <remote\-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
transfer\-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer\-source\-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
use\-alt\-transfer\-source <boolean>; // deprecated
|
||||
zone\-statistics ( full | terse | none | <boolean> );
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2,5 +2,5 @@ zone <string> [ <class> ] {
|
|||
type forward;
|
||||
delegation-only <boolean>;
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
};
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ zone <string> [ <class> ] {
|
|||
allow-query-on { <address_match_element>; ... };
|
||||
allow-transfer [ port <integer> ] [ transport <string> ] { <address_match_element>; ... };
|
||||
allow-update-forwarding { <address_match_element>; ... };
|
||||
also-notify [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt-transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
alt-transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
also-notify [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt-transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
alt-transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
check-names ( fail | warn | ignore );
|
||||
database <string>;
|
||||
file <quoted_string>;
|
||||
|
|
@ -29,13 +29,13 @@ zone <string> [ <class> ] {
|
|||
multi-master <boolean>;
|
||||
notify ( explicit | master-only | primary-only | <boolean> );
|
||||
notify-delay <integer>;
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
primaries [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
primaries [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
request-expire <boolean>;
|
||||
request-ixfr <boolean>;
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
try-tcp-refresh <boolean>;
|
||||
use-alt-transfer-source <boolean>; // deprecated
|
||||
zero-no-soa-ttl <boolean>;
|
||||
|
|
|
|||
|
|
@ -69,9 +69,9 @@ options {
|
|||
allow-transfer [ port <integer> ] [ transport <string> ] { <address_match_element>; ... };
|
||||
allow-update { <address_match_element>; ... };
|
||||
allow-update-forwarding { <address_match_element>; ... };
|
||||
also-notify [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt-transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
alt-transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
also-notify [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt-transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
alt-transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
answer-cookie <boolean>;
|
||||
attach-cache <string>;
|
||||
auth-nxdomain <boolean>;
|
||||
|
|
@ -81,7 +81,7 @@ options {
|
|||
avoid-v6-udp-ports { <portrange>; ... };
|
||||
bindkeys-file <quoted_string>;
|
||||
blackhole { <address_match_element>; ... };
|
||||
catalog-zones { zone <string> [ default-primaries [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... } ] [ zone-directory <quoted_string> ] [ in-memory <boolean> ] [ min-update-interval <duration> ]; ... };
|
||||
catalog-zones { zone <string> [ default-primaries [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... } ] [ zone-directory <quoted_string> ] [ in-memory <boolean> ] [ min-update-interval <duration> ]; ... };
|
||||
check-dup-records ( fail | warn | ignore );
|
||||
check-integrity <boolean>;
|
||||
check-mx ( fail | warn | ignore );
|
||||
|
|
@ -128,8 +128,8 @@ options {
|
|||
dnstap-identity ( <quoted_string> | none | hostname ); // not configured
|
||||
dnstap-output ( file | unix ) <quoted_string> [ size ( unlimited | <size> ) ] [ versions ( unlimited | <integer> ) ] [ suffix ( increment | timestamp ) ]; // not configured
|
||||
dnstap-version ( <quoted_string> | none ); // not configured
|
||||
dscp <integer>;
|
||||
dual-stack-servers [ port <integer> ] { ( <quoted_string> [ port <integer> ] [ dscp <integer> ] | <ipv4_address> [ port <integer> ] [ dscp <integer> ] | <ipv6_address> [ port <integer> ] [ dscp <integer> ] ); ... };
|
||||
dscp <integer>; // obsolete
|
||||
dual-stack-servers [ port <integer> ] { ( <quoted_string> [ port <integer> ] | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ); ... };
|
||||
dump-file <quoted_string>;
|
||||
edns-udp-size <integer>;
|
||||
empty-contact <string>;
|
||||
|
|
@ -141,7 +141,7 @@ options {
|
|||
files ( default | unlimited | <sizeval> ); // deprecated
|
||||
flush-zones-on-shutdown <boolean>;
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
fstrm-set-buffer-hint <integer>; // not configured
|
||||
fstrm-set-flush-timeout <integer>; // not configured
|
||||
fstrm-set-input-queue-size <integer>; // not configured
|
||||
|
|
@ -165,8 +165,8 @@ options {
|
|||
keep-response-order { <address_match_element>; ... };
|
||||
key-directory <quoted_string>;
|
||||
lame-ttl <duration>;
|
||||
listen-on [ port <integer> ] [ dscp <integer> ] [ tls <string> ] [ http <string> ] { <address_match_element>; ... }; // may occur multiple times
|
||||
listen-on-v6 [ port <integer> ] [ dscp <integer> ] [ tls <string> ] [ http <string> ] { <address_match_element>; ... }; // may occur multiple times
|
||||
listen-on [ port <integer> ] [ tls <string> ] [ http <string> ] { <address_match_element>; ... }; // may occur multiple times
|
||||
listen-on-v6 [ port <integer> ] [ tls <string> ] [ http <string> ] { <address_match_element>; ... }; // may occur multiple times
|
||||
lmdb-mapsize <sizeval>;
|
||||
lock-file ( <quoted_string> | none );
|
||||
managed-keys-directory <quoted_string>;
|
||||
|
|
@ -208,23 +208,23 @@ options {
|
|||
notify ( explicit | master-only | primary-only | <boolean> );
|
||||
notify-delay <integer>;
|
||||
notify-rate <integer>;
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify-to-soa <boolean>;
|
||||
nsec3-test-zone <boolean>; // test only
|
||||
nta-lifetime <duration>;
|
||||
nta-recheck <duration>;
|
||||
nxdomain-redirect <string>;
|
||||
parental-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
parental-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
pid-file ( <quoted_string> | none );
|
||||
port <integer>;
|
||||
preferred-glue <string>;
|
||||
prefetch <integer> [ <integer> ];
|
||||
provide-ixfr <boolean>;
|
||||
qname-minimization ( strict | relaxed | disabled | off );
|
||||
query-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query-source-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) );
|
||||
query-source-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) );
|
||||
querylog <boolean>;
|
||||
random-device ( <quoted_string> | none ); // obsolete
|
||||
rate-limit {
|
||||
|
|
@ -300,8 +300,8 @@ options {
|
|||
tls-port <integer>;
|
||||
transfer-format ( many-answers | one-answer );
|
||||
transfer-message-size <integer>;
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfers-in <integer>;
|
||||
transfers-out <integer>;
|
||||
transfers-per-ns <integer>;
|
||||
|
|
@ -321,11 +321,11 @@ options {
|
|||
zone-statistics ( full | terse | none | <boolean> );
|
||||
};
|
||||
|
||||
parental-agents <string> [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... }; // may occur multiple times
|
||||
parental-agents <string> [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... }; // may occur multiple times
|
||||
|
||||
plugin ( query ) <string> [ { <unspecified-text> } ]; // may occur multiple times
|
||||
|
||||
primaries <string> [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... }; // may occur multiple times
|
||||
primaries <string> [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... }; // may occur multiple times
|
||||
|
||||
server <netprefix> {
|
||||
bogus <boolean>;
|
||||
|
|
@ -334,12 +334,12 @@ server <netprefix> {
|
|||
edns-version <integer>;
|
||||
keys <server_key>;
|
||||
max-udp-size <integer>;
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
padding <integer>;
|
||||
provide-ixfr <boolean>;
|
||||
query-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query-source-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) );
|
||||
query-source-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) );
|
||||
request-expire <boolean>;
|
||||
request-ixfr <boolean>;
|
||||
request-nsid <boolean>;
|
||||
|
|
@ -347,8 +347,8 @@ server <netprefix> {
|
|||
tcp-keepalive <boolean>;
|
||||
tcp-only <boolean>;
|
||||
transfer-format ( many-answers | one-answer );
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfers <integer>;
|
||||
}; // may occur multiple times
|
||||
|
||||
|
|
@ -384,13 +384,13 @@ view <string> [ <class> ] {
|
|||
allow-transfer [ port <integer> ] [ transport <string> ] { <address_match_element>; ... };
|
||||
allow-update { <address_match_element>; ... };
|
||||
allow-update-forwarding { <address_match_element>; ... };
|
||||
also-notify [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt-transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
alt-transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
also-notify [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt-transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
alt-transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
attach-cache <string>;
|
||||
auth-nxdomain <boolean>;
|
||||
auto-dnssec ( allow | maintain | off ); // deprecated
|
||||
catalog-zones { zone <string> [ default-primaries [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... } ] [ zone-directory <quoted_string> ] [ in-memory <boolean> ] [ min-update-interval <duration> ]; ... };
|
||||
catalog-zones { zone <string> [ default-primaries [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... } ] [ zone-directory <quoted_string> ] [ in-memory <boolean> ] [ min-update-interval <duration> ]; ... };
|
||||
check-dup-records ( fail | warn | ignore );
|
||||
check-integrity <boolean>;
|
||||
check-mx ( fail | warn | ignore );
|
||||
|
|
@ -433,7 +433,7 @@ view <string> [ <class> ] {
|
|||
dnssec-update-mode ( maintain | no-resign );
|
||||
dnssec-validation ( yes | no | auto );
|
||||
dnstap { ( all | auth | client | forwarder | resolver | update ) [ ( query | response ) ]; ... }; // not configured
|
||||
dual-stack-servers [ port <integer> ] { ( <quoted_string> [ port <integer> ] [ dscp <integer> ] | <ipv4_address> [ port <integer> ] [ dscp <integer> ] | <ipv6_address> [ port <integer> ] [ dscp <integer> ] ); ... };
|
||||
dual-stack-servers [ port <integer> ] { ( <quoted_string> [ port <integer> ] | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ); ... };
|
||||
dyndb <string> <quoted_string> { <unspecified-text> }; // may occur multiple times
|
||||
edns-udp-size <integer>;
|
||||
empty-contact <string>;
|
||||
|
|
@ -443,7 +443,7 @@ view <string> [ <class> ] {
|
|||
fetches-per-server <integer> [ ( drop | fail ) ];
|
||||
fetches-per-zone <integer> [ ( drop | fail ) ];
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
glue-cache <boolean>; // deprecated
|
||||
ipv4only-contact <string>;
|
||||
ipv4only-enable <boolean>;
|
||||
|
|
@ -493,22 +493,22 @@ view <string> [ <class> ] {
|
|||
nocookie-udp-size <integer>;
|
||||
notify ( explicit | master-only | primary-only | <boolean> );
|
||||
notify-delay <integer>;
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify-to-soa <boolean>;
|
||||
nsec3-test-zone <boolean>; // test only
|
||||
nta-lifetime <duration>;
|
||||
nta-recheck <duration>;
|
||||
nxdomain-redirect <string>;
|
||||
parental-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
parental-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
plugin ( query ) <string> [ { <unspecified-text> } ]; // may occur multiple times
|
||||
preferred-glue <string>;
|
||||
prefetch <integer> [ <integer> ];
|
||||
provide-ixfr <boolean>;
|
||||
qname-minimization ( strict | relaxed | disabled | off );
|
||||
query-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query-source-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) );
|
||||
query-source-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) );
|
||||
rate-limit {
|
||||
all-per-second <integer>;
|
||||
errors-per-second <integer>;
|
||||
|
|
@ -548,12 +548,12 @@ view <string> [ <class> ] {
|
|||
edns-version <integer>;
|
||||
keys <server_key>;
|
||||
max-udp-size <integer>;
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
padding <integer>;
|
||||
provide-ixfr <boolean>;
|
||||
query-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query-source-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) ) [ dscp <integer> ];
|
||||
query-source ( ( [ address ] ( <ipv4_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv4_address> | * ) ] port ( <integer> | * ) ) );
|
||||
query-source-v6 ( ( [ address ] ( <ipv6_address> | * ) [ port ( <integer> | * ) ] ) | ( [ [ address ] ( <ipv6_address> | * ) ] port ( <integer> | * ) ) );
|
||||
request-expire <boolean>;
|
||||
request-ixfr <boolean>;
|
||||
request-nsid <boolean>;
|
||||
|
|
@ -561,8 +561,8 @@ view <string> [ <class> ] {
|
|||
tcp-keepalive <boolean>;
|
||||
tcp-only <boolean>;
|
||||
transfer-format ( many-answers | one-answer );
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfers <integer>;
|
||||
}; // may occur multiple times
|
||||
servfail-ttl <duration>;
|
||||
|
|
@ -579,8 +579,8 @@ view <string> [ <class> ] {
|
|||
suppress-initial-notify <boolean>; // obsolete
|
||||
synth-from-dnssec <boolean>;
|
||||
transfer-format ( many-answers | one-answer );
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
trust-anchor-telemetry <boolean>; // experimental
|
||||
trust-anchors { <string> ( static-key | initial-key | static-ds | initial-ds ) <integer> <integer> <integer> <quoted_string>; ... }; // may occur multiple times
|
||||
trusted-keys { <string> <integer> <integer> <integer> <quoted_string>; ... }; // may occur multiple times, deprecated
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ zone <string> [ <class> ] {
|
|||
allow-query-on { <address_match_element>; ... };
|
||||
allow-transfer [ port <integer> ] [ transport <string> ] { <address_match_element>; ... };
|
||||
allow-update { <address_match_element>; ... };
|
||||
also-notify [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt-transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
alt-transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
also-notify [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt-transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
alt-transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
auto-dnssec ( allow | maintain | off ); // deprecated
|
||||
check-dup-records ( fail | warn | ignore );
|
||||
check-integrity <boolean>;
|
||||
|
|
@ -28,7 +28,7 @@ zone <string> [ <class> ] {
|
|||
dnssec-update-mode ( maintain | no-resign );
|
||||
file <quoted_string>;
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
inline-signing <boolean>;
|
||||
ixfr-from-differences <boolean>;
|
||||
journal <quoted_string>;
|
||||
|
|
@ -43,13 +43,13 @@ zone <string> [ <class> ] {
|
|||
max-zone-ttl ( unlimited | <duration> );
|
||||
notify ( explicit | master-only | primary-only | <boolean> );
|
||||
notify-delay <integer>;
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify-to-soa <boolean>;
|
||||
nsec3-test-zone <boolean>; // test only
|
||||
parental-agents [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
parental-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental-agents [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
parental-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
parental-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
serial-update-method ( date | increment | unixtime );
|
||||
sig-signing-nodes <integer>;
|
||||
sig-signing-signatures <integer>;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,6 @@ zone <string> [ <class> ] {
|
|||
masterfile-style ( full | relative );
|
||||
max-records <integer>;
|
||||
max-zone-ttl ( unlimited | <duration> );
|
||||
primaries [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
primaries [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
zone-statistics ( full | terse | none | <boolean> );
|
||||
};
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ options {
|
|||
};
|
||||
|
||||
server <string> {
|
||||
addresses { ( <quoted_string> [ port <integer> ] [ dscp <integer> ] | <ipv4_address> [ port <integer> ] [ dscp <integer> ] | <ipv6_address> [ port <integer> ] [ dscp <integer> ] ); ... };
|
||||
addresses { ( <quoted_string> [ port <integer> ] | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ); ... };
|
||||
key <string>;
|
||||
port <integer>;
|
||||
source-address ( <ipv4_address> | * );
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ zone <string> [ <class> ] {
|
|||
allow-query-on { <address_match_element>; ... };
|
||||
allow-transfer [ port <integer> ] [ transport <string> ] { <address_match_element>; ... };
|
||||
allow-update-forwarding { <address_match_element>; ... };
|
||||
also-notify [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt-transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
alt-transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ]; // deprecated
|
||||
also-notify [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
alt-transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
alt-transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ]; // deprecated
|
||||
auto-dnssec ( allow | maintain | off ); // deprecated
|
||||
check-names ( fail | warn | ignore );
|
||||
database <string>;
|
||||
|
|
@ -20,7 +20,7 @@ zone <string> [ <class> ] {
|
|||
dnssec-update-mode ( maintain | no-resign );
|
||||
file <quoted_string>;
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
inline-signing <boolean>;
|
||||
ixfr-from-differences <boolean>;
|
||||
journal <quoted_string>;
|
||||
|
|
@ -41,22 +41,22 @@ zone <string> [ <class> ] {
|
|||
multi-master <boolean>;
|
||||
notify ( explicit | master-only | primary-only | <boolean> );
|
||||
notify-delay <integer>;
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
notify-to-soa <boolean>;
|
||||
nsec3-test-zone <boolean>; // test only
|
||||
parental-agents [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
parental-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
parental-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
primaries [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
parental-agents [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
parental-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
parental-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
primaries [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
request-expire <boolean>;
|
||||
request-ixfr <boolean>;
|
||||
sig-signing-nodes <integer>;
|
||||
sig-signing-signatures <integer>;
|
||||
sig-signing-type <integer>;
|
||||
sig-validity-interval <integer> [ <integer> ];
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
try-tcp-refresh <boolean>;
|
||||
update-check-ksk <boolean>;
|
||||
use-alt-transfer-source <boolean>; // deprecated
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ zone <string> [ <class> ] {
|
|||
allow-query { <address_match_element>; ... };
|
||||
allow-query-on { <address_match_element>; ... };
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
max-records <integer>;
|
||||
server-addresses { ( <ipv4_address> | <ipv6_address> ); ... };
|
||||
server-names { <string>; ... };
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ zone <string> [ <class> ] {
|
|||
dialup ( notify | notify-passive | passive | refresh | <boolean> );
|
||||
file <quoted_string>;
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ dscp <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ dscp <integer> ]; ... };
|
||||
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
|
||||
masterfile-format ( raw | text );
|
||||
masterfile-style ( full | relative );
|
||||
max-records <integer>;
|
||||
|
|
@ -19,9 +19,9 @@ zone <string> [ <class> ] {
|
|||
min-refresh-time <integer>;
|
||||
min-retry-time <integer>;
|
||||
multi-master <boolean>;
|
||||
primaries [ port <integer> ] [ dscp <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ] [ dscp <integer> ];
|
||||
primaries [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
|
||||
transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];
|
||||
transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];
|
||||
use-alt-transfer-source <boolean>; // deprecated
|
||||
zone-statistics ( full | terse | none | <boolean> );
|
||||
};
|
||||
|
|
|
|||
|
|
@ -25,7 +25,11 @@ New Features
|
|||
Removed Features
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
- None.
|
||||
- The Differentiated Services Code Point (DSCP) feature in BIND
|
||||
has been non-operational since the new Network Manager was introduced
|
||||
in BIND 9.16. It is now marked as obsolete, and vestigial code
|
||||
implementing it has been removed. Configuring DSCP values in
|
||||
``named.conf`` will cause a warning to be logged. :gl:`#3773`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
|
|
|||
|
|
@ -909,28 +909,6 @@ typedef enum {
|
|||
optlevel_zone
|
||||
} optlevel_t;
|
||||
|
||||
static isc_result_t
|
||||
check_dscp(const cfg_obj_t *options, isc_log_t *logctx) {
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
const cfg_obj_t *obj = NULL;
|
||||
|
||||
/*
|
||||
* Check that DSCP setting is within range
|
||||
*/
|
||||
obj = NULL;
|
||||
(void)cfg_map_get(options, "dscp", &obj);
|
||||
if (obj != NULL) {
|
||||
uint32_t dscp = cfg_obj_asuint32(obj);
|
||||
if (dscp >= 64) {
|
||||
cfg_obj_log(obj, logctx, ISC_LOG_ERROR,
|
||||
"'dscp' out of range (0-63)");
|
||||
result = ISC_R_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
check_name(const char *str) {
|
||||
dns_fixedname_t fixed;
|
||||
|
|
@ -990,7 +968,7 @@ check_listener(const cfg_obj_t *listener, const cfg_obj_t *config,
|
|||
isc_result_t tresult, result = ISC_R_SUCCESS;
|
||||
const cfg_obj_t *ltup = NULL;
|
||||
const cfg_obj_t *tlsobj = NULL, *httpobj = NULL;
|
||||
const cfg_obj_t *portobj = NULL, *dscpobj = NULL;
|
||||
const cfg_obj_t *portobj = NULL;
|
||||
const cfg_obj_t *http_server = NULL;
|
||||
bool do_tls = false, no_tls = false;
|
||||
dns_acl_t *acl = NULL;
|
||||
|
|
@ -1056,16 +1034,6 @@ check_listener(const cfg_obj_t *listener, const cfg_obj_t *config,
|
|||
}
|
||||
}
|
||||
|
||||
dscpobj = cfg_tuple_get(ltup, "dscp");
|
||||
if (cfg_obj_isuint32(dscpobj) && cfg_obj_asuint32(dscpobj) > 63) {
|
||||
cfg_obj_log(dscpobj, logctx, ISC_LOG_ERROR,
|
||||
"dscp value '%u' is out of range",
|
||||
cfg_obj_asuint32(dscpobj));
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
result = ISC_R_RANGE;
|
||||
}
|
||||
}
|
||||
|
||||
tresult = cfg_acl_fromconfig(cfg_tuple_get(listener, "acl"), config,
|
||||
logctx, actx, mctx, 0, &acl);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
|
|
@ -1596,11 +1564,6 @@ check_options(const cfg_obj_t *options, const cfg_obj_t *config,
|
|||
}
|
||||
}
|
||||
|
||||
tresult = check_dscp(options, logctx);
|
||||
if (result == ISC_R_SUCCESS && tresult != ISC_R_SUCCESS) {
|
||||
result = tresult;
|
||||
}
|
||||
|
||||
obj = NULL;
|
||||
(void)cfg_map_get(options, "nta-lifetime", &obj);
|
||||
if (obj != NULL) {
|
||||
|
|
|
|||
|
|
@ -2015,7 +2015,6 @@ new_adbaddrinfo(dns_adb_t *adb, dns_adbentry_t *entry, in_port_t port) {
|
|||
ai->srtt = entry->srtt;
|
||||
ai->flags = entry->flags;
|
||||
ai->entry = entry;
|
||||
ai->dscp = -1;
|
||||
ISC_LINK_INIT(ai, publink);
|
||||
|
||||
return (ai);
|
||||
|
|
|
|||
|
|
@ -422,7 +422,6 @@ dns_catz_entry_cmp(const dns_catz_entry_t *ea, const dns_catz_entry_t *eb) {
|
|||
}
|
||||
}
|
||||
|
||||
/* xxxwpk TODO compare dscps! */
|
||||
return (true);
|
||||
}
|
||||
|
||||
|
|
@ -1915,7 +1914,7 @@ cleanup:
|
|||
* We have to generate a text buffer with regular zone config:
|
||||
* zone "foo.bar" {
|
||||
* type secondary;
|
||||
* primaries [ dscp X ] { ip1 port port1; ip2 port port2; };
|
||||
* primaries { ip1 port port1; ip2 port port2; };
|
||||
* }
|
||||
*/
|
||||
isc_result_t
|
||||
|
|
@ -1926,7 +1925,7 @@ dns_catz_generate_zonecfg(dns_catz_zone_t *zone, dns_catz_entry_t *entry,
|
|||
isc_result_t result;
|
||||
uint32_t i;
|
||||
isc_netaddr_t netaddr;
|
||||
char pbuf[sizeof("65535")]; /* used both for port number and DSCP */
|
||||
char pbuf[sizeof("65535")]; /* used for port number */
|
||||
char zname[DNS_NAME_FORMATSIZE];
|
||||
|
||||
REQUIRE(DNS_CATZ_ZONE_VALID(zone));
|
||||
|
|
@ -1944,20 +1943,6 @@ dns_catz_generate_zonecfg(dns_catz_zone_t *zone, dns_catz_entry_t *entry,
|
|||
dns_name_totext(&entry->name, true, buffer);
|
||||
isc_buffer_putstr(buffer, "\" { type secondary; primaries");
|
||||
|
||||
/*
|
||||
* DSCP value has no default, but when it is specified, it is
|
||||
* identical for all primaries and cannot be overridden for a
|
||||
* specific primary IP, so use the DSCP value set for the first
|
||||
* primary.
|
||||
*/
|
||||
if (entry->opts.masters.count > 0 && entry->opts.masters.dscps[0] >= 0)
|
||||
{
|
||||
isc_buffer_putstr(buffer, " dscp ");
|
||||
snprintf(pbuf, sizeof(pbuf), "%hd",
|
||||
entry->opts.masters.dscps[0]);
|
||||
isc_buffer_putstr(buffer, pbuf);
|
||||
}
|
||||
|
||||
isc_buffer_putstr(buffer, " { ");
|
||||
for (i = 0; i < entry->opts.masters.count; i++) {
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1152,15 +1152,12 @@ dispatch_allocate(dns_dispatchmgr_t *mgr, isc_socktype_t type,
|
|||
|
||||
isc_result_t
|
||||
dns_dispatch_createtcp(dns_dispatchmgr_t *mgr, const isc_sockaddr_t *localaddr,
|
||||
const isc_sockaddr_t *destaddr, isc_dscp_t dscp,
|
||||
dns_dispatch_t **dispp) {
|
||||
const isc_sockaddr_t *destaddr, dns_dispatch_t **dispp) {
|
||||
dns_dispatch_t *disp = NULL;
|
||||
|
||||
REQUIRE(VALID_DISPATCHMGR(mgr));
|
||||
REQUIRE(destaddr != NULL);
|
||||
|
||||
UNUSED(dscp);
|
||||
|
||||
LOCK(&mgr->lock);
|
||||
|
||||
dispatch_allocate(mgr, isc_socktype_tcp, &disp);
|
||||
|
|
@ -2134,28 +2131,13 @@ dns_dispatch_resume(dns_dispentry_t *resp, uint16_t timeout) {
|
|||
}
|
||||
|
||||
void
|
||||
dns_dispatch_send(dns_dispentry_t *resp, isc_region_t *r, isc_dscp_t dscp) {
|
||||
dns_dispatch_send(dns_dispentry_t *resp, isc_region_t *r) {
|
||||
REQUIRE(VALID_RESPONSE(resp));
|
||||
REQUIRE(VALID_DISPATCH(resp->disp));
|
||||
UNUSED(dscp);
|
||||
|
||||
dns_dispatch_t *disp = resp->disp;
|
||||
isc_nmhandle_t *sendhandle = NULL;
|
||||
|
||||
#if 0
|
||||
/* XXX: no DSCP support */
|
||||
if (dscp == -1) {
|
||||
sendevent->attributes &= ~ISC_SOCKEVENTATTR_DSCP;
|
||||
sendevent->dscp = 0;
|
||||
} else {
|
||||
sendevent->attributes |= ISC_SOCKEVENTATTR_DSCP;
|
||||
sendevent->dscp = dscp;
|
||||
if (tcp) {
|
||||
isc_socket_dscp(sock, dscp);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
dispentry_log(resp, LVL(90), "sending");
|
||||
switch (disp->socktype) {
|
||||
case isc_socktype_udp:
|
||||
|
|
|
|||
|
|
@ -127,7 +127,6 @@ dns_fwdtable_add(dns_fwdtable_t *fwdtable, const dns_name_t *name,
|
|||
{
|
||||
fwd = isc_mem_get(fwdtable->mctx, sizeof(dns_forwarder_t));
|
||||
fwd->addr = *sa;
|
||||
fwd->dscp = -1;
|
||||
ISC_LINK_INIT(fwd, link);
|
||||
ISC_LIST_APPEND(forwarders->fwdrs, fwd, link);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -219,7 +219,6 @@ struct dns_adbaddrinfo {
|
|||
|
||||
isc_sockaddr_t sockaddr; /*%< [rw] */
|
||||
unsigned int srtt; /*%< [rw] microsecs */
|
||||
isc_dscp_t dscp;
|
||||
|
||||
unsigned int flags; /*%< [rw] */
|
||||
dns_adbentry_t *entry; /*%< private */
|
||||
|
|
|
|||
|
|
@ -184,8 +184,7 @@ dns_dispatch_createudp(dns_dispatchmgr_t *mgr, const isc_sockaddr_t *localaddr,
|
|||
|
||||
isc_result_t
|
||||
dns_dispatch_createtcp(dns_dispatchmgr_t *mgr, const isc_sockaddr_t *localaddr,
|
||||
const isc_sockaddr_t *destaddr, isc_dscp_t dscp,
|
||||
dns_dispatch_t **dispp);
|
||||
const isc_sockaddr_t *destaddr, dns_dispatch_t **dispp);
|
||||
/*%<
|
||||
* Create a new TCP dns_dispatch.
|
||||
*
|
||||
|
|
@ -234,7 +233,7 @@ dns_dispatch_connect(dns_dispentry_t *resp);
|
|||
*/
|
||||
|
||||
void
|
||||
dns_dispatch_send(dns_dispentry_t *resp, isc_region_t *r, isc_dscp_t dscp);
|
||||
dns_dispatch_send(dns_dispentry_t *resp, isc_region_t *r);
|
||||
/*%<
|
||||
* Send region 'r' using the socket in 'resp', then run the specified
|
||||
* callback.
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ ISC_LANG_BEGINDECLS
|
|||
|
||||
struct dns_forwarder {
|
||||
isc_sockaddr_t addr;
|
||||
isc_dscp_t dscp;
|
||||
ISC_LINK(dns_forwarder_t) link;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -20,12 +20,11 @@
|
|||
#include <dns/types.h>
|
||||
|
||||
/*%
|
||||
* A structure holding a list of addresses, dscps and keys. Used to
|
||||
* store primaries for a secondary zone, created by parsing config options.
|
||||
* A structure holding a list of addresses and keys. Used to store
|
||||
* primaries for a secondary zone, created by parsing config options.
|
||||
*/
|
||||
struct dns_ipkeylist {
|
||||
isc_sockaddr_t *addrs;
|
||||
isc_dscp_t *dscps;
|
||||
dns_name_t **keys;
|
||||
dns_name_t **tlss;
|
||||
dns_name_t **labels;
|
||||
|
|
|
|||
|
|
@ -200,24 +200,6 @@ dns_peer_setquerysource(dns_peer_t *peer, const isc_sockaddr_t *query_source);
|
|||
isc_result_t
|
||||
dns_peer_getquerysource(dns_peer_t *peer, isc_sockaddr_t *query_source);
|
||||
|
||||
isc_result_t
|
||||
dns_peer_setnotifydscp(dns_peer_t *peer, isc_dscp_t dscp);
|
||||
|
||||
isc_result_t
|
||||
dns_peer_getnotifydscp(dns_peer_t *peer, isc_dscp_t *dscpp);
|
||||
|
||||
isc_result_t
|
||||
dns_peer_settransferdscp(dns_peer_t *peer, isc_dscp_t dscp);
|
||||
|
||||
isc_result_t
|
||||
dns_peer_gettransferdscp(dns_peer_t *peer, isc_dscp_t *dscpp);
|
||||
|
||||
isc_result_t
|
||||
dns_peer_setquerydscp(dns_peer_t *peer, isc_dscp_t dscp);
|
||||
|
||||
isc_result_t
|
||||
dns_peer_getquerydscp(dns_peer_t *peer, isc_dscp_t *dscpp);
|
||||
|
||||
isc_result_t
|
||||
dns_peer_setednsversion(dns_peer_t *peer, uint8_t ednsversion);
|
||||
|
||||
|
|
|
|||
|
|
@ -156,11 +156,10 @@ dns_requestmgr_detach(dns_requestmgr_t **requestmgrp);
|
|||
isc_result_t
|
||||
dns_request_create(dns_requestmgr_t *requestmgr, dns_message_t *message,
|
||||
const isc_sockaddr_t *srcaddr,
|
||||
const isc_sockaddr_t *destaddr, isc_dscp_t dscp,
|
||||
unsigned int options, dns_tsigkey_t *key,
|
||||
unsigned int timeout, unsigned int udptimeout,
|
||||
unsigned int udpretries, isc_task_t *task,
|
||||
isc_taskaction_t action, void *arg,
|
||||
const isc_sockaddr_t *destaddr, unsigned int options,
|
||||
dns_tsigkey_t *key, unsigned int timeout,
|
||||
unsigned int udptimeout, unsigned int udpretries,
|
||||
isc_task_t *task, isc_taskaction_t action, void *arg,
|
||||
dns_request_t **requestp);
|
||||
/*%<
|
||||
* Create and send a request.
|
||||
|
|
@ -200,10 +199,10 @@ dns_request_create(dns_requestmgr_t *requestmgr, dns_message_t *message,
|
|||
isc_result_t
|
||||
dns_request_createraw(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
|
||||
const isc_sockaddr_t *srcaddr,
|
||||
const isc_sockaddr_t *destaddr, isc_dscp_t dscp,
|
||||
unsigned int options, unsigned int timeout,
|
||||
unsigned int udptimeout, unsigned int udpretries,
|
||||
isc_task_t *task, isc_taskaction_t action, void *arg,
|
||||
const isc_sockaddr_t *destaddr, unsigned int options,
|
||||
unsigned int timeout, unsigned int udptimeout,
|
||||
unsigned int udpretries, isc_task_t *task,
|
||||
isc_taskaction_t action, void *arg,
|
||||
dns_request_t **requestp);
|
||||
/*!<
|
||||
* \brief Create and send a request.
|
||||
|
|
|
|||
|
|
@ -662,23 +662,6 @@ dns_resolver_printbadcache(dns_resolver_t *resolver, FILE *fp);
|
|||
* \li resolver to be valid.
|
||||
*/
|
||||
|
||||
void
|
||||
dns_resolver_setquerydscp4(dns_resolver_t *resolver, isc_dscp_t dscp);
|
||||
isc_dscp_t
|
||||
dns_resolver_getquerydscp4(dns_resolver_t *resolver);
|
||||
|
||||
void
|
||||
dns_resolver_setquerydscp6(dns_resolver_t *resolver, isc_dscp_t dscp);
|
||||
isc_dscp_t
|
||||
dns_resolver_getquerydscp6(dns_resolver_t *resolver);
|
||||
/*%
|
||||
* Get and set the DSCP values for the resolver's IPv4 and IPV6 query
|
||||
* sources.
|
||||
*
|
||||
* Requires:
|
||||
* \li resolver to be valid.
|
||||
*/
|
||||
|
||||
void
|
||||
dns_resolver_setmaxdepth(dns_resolver_t *resolver, unsigned int maxdepth);
|
||||
unsigned int
|
||||
|
|
|
|||
|
|
@ -50,10 +50,9 @@ ISC_LANG_BEGINDECLS
|
|||
isc_result_t
|
||||
dns_xfrin_create(dns_zone_t *zone, dns_rdatatype_t xfrtype,
|
||||
const isc_sockaddr_t *primaryaddr,
|
||||
const isc_sockaddr_t *sourceaddr, isc_dscp_t dscp,
|
||||
dns_tsigkey_t *tsigkey, dns_transport_t *transport,
|
||||
isc_tlsctx_cache_t *tlsctx_cache, isc_mem_t *mctx,
|
||||
isc_nm_t *netmgr, dns_xfrindone_t done,
|
||||
const isc_sockaddr_t *sourceaddr, dns_tsigkey_t *tsigkey,
|
||||
dns_transport_t *transport, isc_tlsctx_cache_t *tlsctx_cache,
|
||||
isc_mem_t *mctx, isc_nm_t *netmgr, dns_xfrindone_t done,
|
||||
dns_xfrin_ctx_t **xfrp);
|
||||
/*%<
|
||||
* Attempt to start an incoming zone transfer of 'zone'
|
||||
|
|
|
|||
|
|
@ -707,8 +707,8 @@ dns_zone_setparentals(dns_zone_t *zone, const isc_sockaddr_t *parentals,
|
|||
|
||||
void
|
||||
dns_zone_setalsonotify(dns_zone_t *zone, const isc_sockaddr_t *notify,
|
||||
const isc_dscp_t *dscps, dns_name_t **keynames,
|
||||
dns_name_t **tlsnames, uint32_t count);
|
||||
dns_name_t **keynames, dns_name_t **tlsnames,
|
||||
uint32_t count);
|
||||
/*%<
|
||||
* Set the list of additional servers to be notified when
|
||||
* a zone changes. To clear the list use 'count = 0'.
|
||||
|
|
@ -858,31 +858,6 @@ dns_zone_getaltxfrsource4(dns_zone_t *zone);
|
|||
*\li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setxfrsource4dscp(dns_zone_t *zone, isc_dscp_t dscp);
|
||||
isc_result_t
|
||||
dns_zone_setaltxfrsource4dscp(dns_zone_t *zone, isc_dscp_t dscp);
|
||||
/*%<
|
||||
* Set the DSCP value associated with the transfer/alt-transfer source.
|
||||
*
|
||||
* Require:
|
||||
*\li 'zone' to be a valid zone.
|
||||
*
|
||||
* Returns:
|
||||
*\li #ISC_R_SUCCESS
|
||||
*/
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getxfrsource4dscp(dns_zone_t *zone);
|
||||
isc_dscp_t
|
||||
dns_zone_getaltxfrsource4dscp(dns_zone_t *zone);
|
||||
/*%/
|
||||
* Get the DSCP value associated with the transfer/alt-transfer source.
|
||||
*
|
||||
* Require:
|
||||
*\li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setxfrsource6(dns_zone_t *zone, const isc_sockaddr_t *xfrsource);
|
||||
isc_result_t
|
||||
|
|
@ -910,31 +885,6 @@ dns_zone_getaltxfrsource6(dns_zone_t *zone);
|
|||
*\li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getxfrsource6dscp(dns_zone_t *zone);
|
||||
isc_dscp_t
|
||||
dns_zone_getaltxfrsource6dscp(dns_zone_t *zone);
|
||||
/*%/
|
||||
* Get the DSCP value associated with the transfer/alt-transfer source.
|
||||
*
|
||||
* Require:
|
||||
*\li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setxfrsource6dscp(dns_zone_t *zone, isc_dscp_t dscp);
|
||||
isc_result_t
|
||||
dns_zone_setaltxfrsource6dscp(dns_zone_t *zone, isc_dscp_t dscp);
|
||||
/*%<
|
||||
* Set the DSCP value associated with the transfer/alt-transfer source.
|
||||
*
|
||||
* Require:
|
||||
*\li 'zone' to be a valid zone.
|
||||
*
|
||||
* Returns:
|
||||
*\li #ISC_R_SUCCESS
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setparentalsrc4(dns_zone_t *zone, const isc_sockaddr_t *parentalsrc);
|
||||
/*%<
|
||||
|
|
@ -958,27 +908,6 @@ dns_zone_getparentalsrc4(dns_zone_t *zone);
|
|||
*\li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getparentalsrc4dscp(dns_zone_t *zone);
|
||||
/*%/
|
||||
* Get the DSCP value associated with the IPv4 parental source.
|
||||
*
|
||||
* Require:
|
||||
*\li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setparentalsrc4dscp(dns_zone_t *zone, isc_dscp_t dscp);
|
||||
/*%<
|
||||
* Set the DSCP value associated with the IPv4 parental source.
|
||||
*
|
||||
* Require:
|
||||
*\li 'zone' to be a valid zone.
|
||||
*
|
||||
* Returns:
|
||||
*\li #ISC_R_SUCCESS
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setparentalsrc6(dns_zone_t *zone, const isc_sockaddr_t *parentalsrc);
|
||||
/*%<
|
||||
|
|
@ -1002,27 +931,6 @@ dns_zone_getparentalsrc6(dns_zone_t *zone);
|
|||
*\li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getparentalsrc6dscp(dns_zone_t *zone);
|
||||
/*%/
|
||||
* Get the DSCP value associated with the IPv6 parental source.
|
||||
*
|
||||
* Require:
|
||||
*\li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setparentalsrc6dscp(dns_zone_t *zone, isc_dscp_t dscp);
|
||||
/*%<
|
||||
* Set the DSCP value associated with the IPv6 parental source.
|
||||
*
|
||||
* Require:
|
||||
*\li 'zone' to be a valid zone.
|
||||
*
|
||||
* Returns:
|
||||
*\li #ISC_R_SUCCESS
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setnotifysrc4(dns_zone_t *zone, const isc_sockaddr_t *notifysrc);
|
||||
/*%<
|
||||
|
|
@ -1046,27 +954,6 @@ dns_zone_getnotifysrc4(dns_zone_t *zone);
|
|||
*\li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getnotifysrc4dscp(dns_zone_t *zone);
|
||||
/*%/
|
||||
* Get the DSCP value associated with the IPv4 notify source.
|
||||
*
|
||||
* Require:
|
||||
*\li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setnotifysrc4dscp(dns_zone_t *zone, isc_dscp_t dscp);
|
||||
/*%<
|
||||
* Set the DSCP value associated with the IPv4 notify source.
|
||||
*
|
||||
* Require:
|
||||
*\li 'zone' to be a valid zone.
|
||||
*
|
||||
* Returns:
|
||||
*\li #ISC_R_SUCCESS
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setnotifysrc6(dns_zone_t *zone, const isc_sockaddr_t *notifysrc);
|
||||
/*%<
|
||||
|
|
@ -1090,27 +977,6 @@ dns_zone_getnotifysrc6(dns_zone_t *zone);
|
|||
*\li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getnotifysrc6dscp(dns_zone_t *zone);
|
||||
/*%/
|
||||
* Get the DSCP value associated with the IPv6 notify source.
|
||||
*
|
||||
* Require:
|
||||
*\li 'zone' to be a valid zone.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setnotifysrc6dscp(dns_zone_t *zone, isc_dscp_t dscp);
|
||||
/*%<
|
||||
* Set the DSCP value associated with the IPv6 notify source.
|
||||
*
|
||||
* Require:
|
||||
*\li 'zone' to be a valid zone.
|
||||
*
|
||||
* Returns:
|
||||
*\li #ISC_R_SUCCESS
|
||||
*/
|
||||
|
||||
void
|
||||
dns_zone_setnotifyacl(dns_zone_t *zone, dns_acl_t *acl);
|
||||
/*%<
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ dns_ipkeylist_init(dns_ipkeylist_t *ipkl) {
|
|||
ipkl->count = 0;
|
||||
ipkl->allocated = 0;
|
||||
ipkl->addrs = NULL;
|
||||
ipkl->dscps = NULL;
|
||||
ipkl->keys = NULL;
|
||||
ipkl->tlss = NULL;
|
||||
ipkl->labels = NULL;
|
||||
|
|
@ -47,11 +46,6 @@ dns_ipkeylist_clear(isc_mem_t *mctx, dns_ipkeylist_t *ipkl) {
|
|||
ipkl->allocated * sizeof(isc_sockaddr_t));
|
||||
}
|
||||
|
||||
if (ipkl->dscps != NULL) {
|
||||
isc_mem_put(mctx, ipkl->dscps,
|
||||
ipkl->allocated * sizeof(isc_dscp_t));
|
||||
}
|
||||
|
||||
if (ipkl->keys != NULL) {
|
||||
for (i = 0; i < ipkl->allocated; i++) {
|
||||
if (ipkl->keys[i] == NULL) {
|
||||
|
|
@ -118,11 +112,6 @@ dns_ipkeylist_copy(isc_mem_t *mctx, const dns_ipkeylist_t *src,
|
|||
|
||||
memmove(dst->addrs, src->addrs, src->count * sizeof(isc_sockaddr_t));
|
||||
|
||||
if (src->dscps != NULL) {
|
||||
memmove(dst->dscps, src->dscps,
|
||||
src->count * sizeof(isc_dscp_t));
|
||||
}
|
||||
|
||||
if (src->keys != NULL) {
|
||||
for (i = 0; i < src->count; i++) {
|
||||
if (src->keys[i] != NULL) {
|
||||
|
|
@ -169,7 +158,6 @@ dns_ipkeylist_copy(isc_mem_t *mctx, const dns_ipkeylist_t *src,
|
|||
isc_result_t
|
||||
dns_ipkeylist_resize(isc_mem_t *mctx, dns_ipkeylist_t *ipkl, unsigned int n) {
|
||||
isc_sockaddr_t *addrs = NULL;
|
||||
isc_dscp_t *dscps = NULL;
|
||||
dns_name_t **keys = NULL;
|
||||
dns_name_t **tlss = NULL;
|
||||
dns_name_t **labels = NULL;
|
||||
|
|
@ -182,7 +170,6 @@ dns_ipkeylist_resize(isc_mem_t *mctx, dns_ipkeylist_t *ipkl, unsigned int n) {
|
|||
}
|
||||
|
||||
addrs = isc_mem_get(mctx, n * sizeof(isc_sockaddr_t));
|
||||
dscps = isc_mem_get(mctx, n * sizeof(isc_dscp_t));
|
||||
keys = isc_mem_get(mctx, n * sizeof(dns_name_t *));
|
||||
tlss = isc_mem_get(mctx, n * sizeof(dns_name_t *));
|
||||
labels = isc_mem_get(mctx, n * sizeof(dns_name_t *));
|
||||
|
|
@ -197,16 +184,6 @@ dns_ipkeylist_resize(isc_mem_t *mctx, dns_ipkeylist_t *ipkl, unsigned int n) {
|
|||
memset(&ipkl->addrs[ipkl->allocated], 0,
|
||||
(n - ipkl->allocated) * sizeof(isc_sockaddr_t));
|
||||
|
||||
if (ipkl->dscps != NULL) {
|
||||
memmove(dscps, ipkl->dscps,
|
||||
ipkl->allocated * sizeof(isc_dscp_t));
|
||||
isc_mem_put(mctx, ipkl->dscps,
|
||||
ipkl->allocated * sizeof(isc_dscp_t));
|
||||
}
|
||||
ipkl->dscps = dscps;
|
||||
memset(&ipkl->dscps[ipkl->allocated], 0,
|
||||
(n - ipkl->allocated) * sizeof(isc_dscp_t));
|
||||
|
||||
if (ipkl->keys) {
|
||||
memmove(keys, ipkl->keys,
|
||||
ipkl->allocated * sizeof(dns_name_t *));
|
||||
|
|
@ -241,7 +218,6 @@ dns_ipkeylist_resize(isc_mem_t *mctx, dns_ipkeylist_t *ipkl, unsigned int n) {
|
|||
return (ISC_R_SUCCESS);
|
||||
|
||||
isc_mem_put(mctx, addrs, n * sizeof(isc_sockaddr_t));
|
||||
isc_mem_put(mctx, dscps, n * sizeof(isc_dscp_t));
|
||||
isc_mem_put(mctx, tlss, n * sizeof(dns_name_t *));
|
||||
isc_mem_put(mctx, keys, n * sizeof(dns_name_t *));
|
||||
isc_mem_put(mctx, labels, n * sizeof(dns_name_t *));
|
||||
|
|
|
|||
|
|
@ -62,11 +62,8 @@ struct dns_peer {
|
|||
bool check_axfr_id;
|
||||
dns_name_t *key;
|
||||
isc_sockaddr_t *transfer_source;
|
||||
isc_dscp_t transfer_dscp;
|
||||
isc_sockaddr_t *notify_source;
|
||||
isc_dscp_t notify_dscp;
|
||||
isc_sockaddr_t *query_source;
|
||||
isc_dscp_t query_dscp;
|
||||
uint16_t udpsize; /* receive size */
|
||||
uint16_t maxudp; /* transmit size */
|
||||
uint16_t padding; /* pad block size */
|
||||
|
|
@ -90,14 +87,11 @@ struct dns_peer {
|
|||
#define SERVER_MAXUDP_BIT 7
|
||||
#define REQUEST_NSID_BIT 8
|
||||
#define SEND_COOKIE_BIT 9
|
||||
#define NOTIFY_DSCP_BIT 10
|
||||
#define TRANSFER_DSCP_BIT 11
|
||||
#define QUERY_DSCP_BIT 12
|
||||
#define REQUEST_EXPIRE_BIT 13
|
||||
#define EDNS_VERSION_BIT 14
|
||||
#define FORCE_TCP_BIT 15
|
||||
#define SERVER_PADDING_BIT 16
|
||||
#define REQUEST_TCP_KEEPALIVE_BIT 17
|
||||
#define REQUEST_EXPIRE_BIT 10
|
||||
#define EDNS_VERSION_BIT 11
|
||||
#define FORCE_TCP_BIT 12
|
||||
#define SERVER_PADDING_BIT 13
|
||||
#define REQUEST_TCP_KEEPALIVE_BIT 14
|
||||
|
||||
static void
|
||||
peerlist_delete(dns_peerlist_t **list);
|
||||
|
|
@ -880,72 +874,6 @@ dns_peer_getpadding(dns_peer_t *peer, uint16_t *padding) {
|
|||
}
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_peer_setnotifydscp(dns_peer_t *peer, isc_dscp_t dscp) {
|
||||
REQUIRE(DNS_PEER_VALID(peer));
|
||||
REQUIRE(dscp < 64);
|
||||
|
||||
peer->notify_dscp = dscp;
|
||||
DNS_BIT_SET(NOTIFY_DSCP_BIT, &peer->bitflags);
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_peer_getnotifydscp(dns_peer_t *peer, isc_dscp_t *dscpp) {
|
||||
REQUIRE(DNS_PEER_VALID(peer));
|
||||
REQUIRE(dscpp != NULL);
|
||||
|
||||
if (DNS_BIT_CHECK(NOTIFY_DSCP_BIT, &peer->bitflags)) {
|
||||
*dscpp = peer->notify_dscp;
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
return (ISC_R_NOTFOUND);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_peer_settransferdscp(dns_peer_t *peer, isc_dscp_t dscp) {
|
||||
REQUIRE(DNS_PEER_VALID(peer));
|
||||
REQUIRE(dscp < 64);
|
||||
|
||||
peer->transfer_dscp = dscp;
|
||||
DNS_BIT_SET(TRANSFER_DSCP_BIT, &peer->bitflags);
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_peer_gettransferdscp(dns_peer_t *peer, isc_dscp_t *dscpp) {
|
||||
REQUIRE(DNS_PEER_VALID(peer));
|
||||
REQUIRE(dscpp != NULL);
|
||||
|
||||
if (DNS_BIT_CHECK(TRANSFER_DSCP_BIT, &peer->bitflags)) {
|
||||
*dscpp = peer->transfer_dscp;
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
return (ISC_R_NOTFOUND);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_peer_setquerydscp(dns_peer_t *peer, isc_dscp_t dscp) {
|
||||
REQUIRE(DNS_PEER_VALID(peer));
|
||||
REQUIRE(dscp < 64);
|
||||
|
||||
peer->query_dscp = dscp;
|
||||
DNS_BIT_SET(QUERY_DSCP_BIT, &peer->bitflags);
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_peer_getquerydscp(dns_peer_t *peer, isc_dscp_t *dscpp) {
|
||||
REQUIRE(DNS_PEER_VALID(peer));
|
||||
REQUIRE(dscpp != NULL);
|
||||
|
||||
if (DNS_BIT_CHECK(QUERY_DSCP_BIT, &peer->bitflags)) {
|
||||
*dscpp = peer->query_dscp;
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
return (ISC_R_NOTFOUND);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_peer_setednsversion(dns_peer_t *peer, uint8_t ednsversion) {
|
||||
REQUIRE(DNS_PEER_VALID(peer));
|
||||
|
|
|
|||
|
|
@ -83,7 +83,6 @@ struct dns_request {
|
|||
isc_sockaddr_t destaddr;
|
||||
unsigned int timeout;
|
||||
unsigned int udpcount;
|
||||
isc_dscp_t dscp;
|
||||
};
|
||||
|
||||
#define DNS_REQUEST_F_CONNECTING 0x0001
|
||||
|
|
@ -353,7 +352,7 @@ req_send(dns_request_t *request) {
|
|||
|
||||
/* detached in req_senddone() */
|
||||
req_attach(request, &(dns_request_t *){ NULL });
|
||||
dns_dispatch_send(request->dispentry, &r, request->dscp);
|
||||
dns_dispatch_send(request->dispentry, &r);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
|
|
@ -361,7 +360,7 @@ new_request(isc_mem_t *mctx, dns_request_t **requestp) {
|
|||
dns_request_t *request = NULL;
|
||||
|
||||
request = isc_mem_get(mctx, sizeof(*request));
|
||||
*request = (dns_request_t){ .dscp = -1 };
|
||||
*request = (dns_request_t){ 0 };
|
||||
ISC_LINK_INIT(request, link);
|
||||
|
||||
isc_refcount_init(&request->references, 1);
|
||||
|
|
@ -400,7 +399,7 @@ isblackholed(dns_dispatchmgr_t *dispatchmgr, const isc_sockaddr_t *destaddr) {
|
|||
static isc_result_t
|
||||
tcp_dispatch(bool newtcp, dns_requestmgr_t *requestmgr,
|
||||
const isc_sockaddr_t *srcaddr, const isc_sockaddr_t *destaddr,
|
||||
isc_dscp_t dscp, dns_dispatch_t **dispatchp) {
|
||||
dns_dispatch_t **dispatchp) {
|
||||
isc_result_t result;
|
||||
|
||||
if (!newtcp) {
|
||||
|
|
@ -417,7 +416,7 @@ tcp_dispatch(bool newtcp, dns_requestmgr_t *requestmgr,
|
|||
}
|
||||
|
||||
result = dns_dispatch_createtcp(requestmgr->dispatchmgr, srcaddr,
|
||||
destaddr, dscp, dispatchp);
|
||||
destaddr, dispatchp);
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
|
@ -453,12 +452,12 @@ udp_dispatch(dns_requestmgr_t *requestmgr, const isc_sockaddr_t *srcaddr,
|
|||
static isc_result_t
|
||||
get_dispatch(bool tcp, bool newtcp, dns_requestmgr_t *requestmgr,
|
||||
const isc_sockaddr_t *srcaddr, const isc_sockaddr_t *destaddr,
|
||||
isc_dscp_t dscp, dns_dispatch_t **dispatchp) {
|
||||
dns_dispatch_t **dispatchp) {
|
||||
isc_result_t result;
|
||||
|
||||
if (tcp) {
|
||||
result = tcp_dispatch(newtcp, requestmgr, srcaddr, destaddr,
|
||||
dscp, dispatchp);
|
||||
dispatchp);
|
||||
} else {
|
||||
result = udp_dispatch(requestmgr, srcaddr, destaddr, dispatchp);
|
||||
}
|
||||
|
|
@ -468,10 +467,10 @@ get_dispatch(bool tcp, bool newtcp, dns_requestmgr_t *requestmgr,
|
|||
isc_result_t
|
||||
dns_request_createraw(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
|
||||
const isc_sockaddr_t *srcaddr,
|
||||
const isc_sockaddr_t *destaddr, isc_dscp_t dscp,
|
||||
unsigned int options, unsigned int timeout,
|
||||
unsigned int udptimeout, unsigned int udpretries,
|
||||
isc_task_t *task, isc_taskaction_t action, void *arg,
|
||||
const isc_sockaddr_t *destaddr, unsigned int options,
|
||||
unsigned int timeout, unsigned int udptimeout,
|
||||
unsigned int udpretries, isc_task_t *task,
|
||||
isc_taskaction_t action, void *arg,
|
||||
dns_request_t **requestp) {
|
||||
dns_request_t *request = NULL;
|
||||
isc_result_t result;
|
||||
|
|
@ -512,7 +511,6 @@ dns_request_createraw(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
|
|||
}
|
||||
|
||||
request->udpcount = udpretries;
|
||||
request->dscp = dscp;
|
||||
|
||||
request->event = (dns_requestevent_t *)isc_event_allocate(
|
||||
mctx, task, DNS_EVENT_REQUESTDONE, action, arg,
|
||||
|
|
@ -552,7 +550,7 @@ dns_request_createraw(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
|
|||
|
||||
again:
|
||||
|
||||
result = get_dispatch(tcp, newtcp, requestmgr, srcaddr, destaddr, dscp,
|
||||
result = get_dispatch(tcp, newtcp, requestmgr, srcaddr, destaddr,
|
||||
&request->dispatch);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto detach;
|
||||
|
|
@ -625,11 +623,10 @@ cleanup:
|
|||
isc_result_t
|
||||
dns_request_create(dns_requestmgr_t *requestmgr, dns_message_t *message,
|
||||
const isc_sockaddr_t *srcaddr,
|
||||
const isc_sockaddr_t *destaddr, isc_dscp_t dscp,
|
||||
unsigned int options, dns_tsigkey_t *key,
|
||||
unsigned int timeout, unsigned int udptimeout,
|
||||
unsigned int udpretries, isc_task_t *task,
|
||||
isc_taskaction_t action, void *arg,
|
||||
const isc_sockaddr_t *destaddr, unsigned int options,
|
||||
dns_tsigkey_t *key, unsigned int timeout,
|
||||
unsigned int udptimeout, unsigned int udpretries,
|
||||
isc_task_t *task, isc_taskaction_t action, void *arg,
|
||||
dns_request_t **requestp) {
|
||||
dns_request_t *request = NULL;
|
||||
isc_result_t result;
|
||||
|
|
@ -671,7 +668,6 @@ dns_request_create(dns_requestmgr_t *requestmgr, dns_message_t *message,
|
|||
}
|
||||
|
||||
request->udpcount = udpretries;
|
||||
request->dscp = dscp;
|
||||
|
||||
request->event = (dns_requestevent_t *)isc_event_allocate(
|
||||
mctx, task, DNS_EVENT_REQUESTDONE, action, arg,
|
||||
|
|
@ -707,7 +703,7 @@ dns_request_create(dns_requestmgr_t *requestmgr, dns_message_t *message,
|
|||
req_attach(request, &(dns_request_t *){ NULL });
|
||||
|
||||
again:
|
||||
result = get_dispatch(tcp, false, requestmgr, srcaddr, destaddr, dscp,
|
||||
result = get_dispatch(tcp, false, requestmgr, srcaddr, destaddr,
|
||||
&request->dispatch);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto detach;
|
||||
|
|
|
|||
|
|
@ -282,7 +282,6 @@ typedef struct query {
|
|||
isc_buffer_t buffer;
|
||||
isc_buffer_t *tsig;
|
||||
dns_tsigkey_t *tsigkey;
|
||||
isc_dscp_t dscp;
|
||||
int ednsversion;
|
||||
unsigned int options;
|
||||
unsigned int attributes;
|
||||
|
|
@ -564,8 +563,6 @@ struct dns_resolver {
|
|||
dns_dispatchmgr_t *dispatchmgr;
|
||||
dns_dispatchset_t *dispatches4;
|
||||
dns_dispatchset_t *dispatches6;
|
||||
isc_dscp_t querydscp4;
|
||||
isc_dscp_t querydscp6;
|
||||
unsigned int nbuckets;
|
||||
fctxbucket_t *buckets;
|
||||
uint8_t dhashbits;
|
||||
|
|
@ -2103,7 +2100,6 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
|
|||
isc_sockaddr_t addr;
|
||||
bool have_addr = false;
|
||||
unsigned int srtt;
|
||||
isc_dscp_t dscp = -1;
|
||||
|
||||
FCTXTRACE("query");
|
||||
|
||||
|
|
@ -2139,7 +2135,6 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
|
|||
query = isc_mem_get(fctx->mctx, sizeof(*query));
|
||||
*query = (resquery_t){ .mctx = fctx->mctx,
|
||||
.options = options,
|
||||
.dscp = addrinfo->dscp,
|
||||
.addrinfo = addrinfo,
|
||||
.dispatchmgr = res->dispatchmgr };
|
||||
|
||||
|
|
@ -2171,10 +2166,6 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
|
|||
if (result == ISC_R_SUCCESS) {
|
||||
have_addr = true;
|
||||
}
|
||||
result = dns_peer_getquerydscp(peer, &dscp);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
query->dscp = dscp;
|
||||
}
|
||||
result = dns_peer_getforcetcp(peer, &usetcp);
|
||||
if (result == ISC_R_SUCCESS && usetcp) {
|
||||
query->options |= DNS_FETCHOPT_TCP;
|
||||
|
|
@ -2182,7 +2173,6 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
|
|||
}
|
||||
}
|
||||
|
||||
dscp = -1;
|
||||
if ((query->options & DNS_FETCHOPT_TCP) != 0) {
|
||||
int pf;
|
||||
|
||||
|
|
@ -2192,12 +2182,10 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
|
|||
case PF_INET:
|
||||
result = dns_dispatch_getlocaladdress(
|
||||
res->dispatches4->dispatches[0], &addr);
|
||||
dscp = dns_resolver_getquerydscp4(fctx->res);
|
||||
break;
|
||||
case PF_INET6:
|
||||
result = dns_dispatch_getlocaladdress(
|
||||
res->dispatches6->dispatches[0], &addr);
|
||||
dscp = dns_resolver_getquerydscp6(fctx->res);
|
||||
break;
|
||||
default:
|
||||
result = ISC_R_NOTIMPLEMENTED;
|
||||
|
|
@ -2208,13 +2196,10 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
|
|||
}
|
||||
}
|
||||
isc_sockaddr_setport(&addr, 0);
|
||||
if (query->dscp == -1) {
|
||||
query->dscp = dscp;
|
||||
}
|
||||
|
||||
result = dns_dispatch_createtcp(res->dispatchmgr, &addr,
|
||||
&addrinfo->sockaddr,
|
||||
query->dscp, &query->dispatch);
|
||||
&query->dispatch);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup_query;
|
||||
}
|
||||
|
|
@ -2222,17 +2207,6 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
|
|||
FCTXTRACE("connecting via TCP");
|
||||
} else {
|
||||
if (have_addr) {
|
||||
switch (isc_sockaddr_pf(&addr)) {
|
||||
case AF_INET:
|
||||
dscp = dns_resolver_getquerydscp4(fctx->res);
|
||||
break;
|
||||
case AF_INET6:
|
||||
dscp = dns_resolver_getquerydscp6(fctx->res);
|
||||
break;
|
||||
default:
|
||||
result = ISC_R_NOTIMPLEMENTED;
|
||||
goto cleanup_query;
|
||||
}
|
||||
result = dns_dispatch_createudp(res->dispatchmgr, &addr,
|
||||
&query->dispatch);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
|
|
@ -2244,13 +2218,11 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
|
|||
dns_dispatch_attach(
|
||||
dns_resolver_dispatchv4(res),
|
||||
&query->dispatch);
|
||||
dscp = dns_resolver_getquerydscp4(fctx->res);
|
||||
break;
|
||||
case PF_INET6:
|
||||
dns_dispatch_attach(
|
||||
dns_resolver_dispatchv6(res),
|
||||
&query->dispatch);
|
||||
dscp = dns_resolver_getquerydscp6(fctx->res);
|
||||
break;
|
||||
default:
|
||||
result = ISC_R_NOTIMPLEMENTED;
|
||||
|
|
@ -2258,9 +2230,6 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
|
|||
}
|
||||
}
|
||||
|
||||
if (query->dscp == -1) {
|
||||
query->dscp = dscp;
|
||||
}
|
||||
/*
|
||||
* We should always have a valid dispatcher here. If we
|
||||
* don't support a protocol family, then its dispatcher
|
||||
|
|
@ -2889,7 +2858,7 @@ resquery_send(resquery_t *query) {
|
|||
isc_buffer_usedregion(&buffer, &r);
|
||||
|
||||
resquery_attach(query, &(resquery_t *){ NULL });
|
||||
dns_dispatch_send(query->dispentry, &r, query->dscp);
|
||||
dns_dispatch_send(query->dispentry, &r);
|
||||
|
||||
QTRACE("sent");
|
||||
|
||||
|
|
@ -3697,7 +3666,6 @@ fctx_getaddresses(fetchctx_t *fctx, bool badcache) {
|
|||
if (result == ISC_R_SUCCESS) {
|
||||
dns_adbaddrinfo_t *cur;
|
||||
ai->flags |= FCTX_ADDRINFO_FORWARDER;
|
||||
ai->dscp = fwd->dscp;
|
||||
cur = ISC_LIST_HEAD(fctx->forwaddrs);
|
||||
while (cur != NULL && cur->srtt < ai->srtt) {
|
||||
cur = ISC_LIST_NEXT(cur, publink);
|
||||
|
|
@ -10374,9 +10342,7 @@ dns_resolver_create(dns_view_t *view, isc_taskmgr_t *taskmgr,
|
|||
.maxdepth = DEFAULT_RECURSION_DEPTH,
|
||||
.maxqueries = DEFAULT_MAX_QUERIES,
|
||||
.nbuckets = ntasks,
|
||||
.dhashbits = RES_DOMAIN_HASH_BITS,
|
||||
.querydscp4 = -1,
|
||||
.querydscp6 = -1 };
|
||||
.dhashbits = RES_DOMAIN_HASH_BITS };
|
||||
|
||||
atomic_init(&res->activebuckets, res->nbuckets);
|
||||
|
||||
|
|
@ -11613,32 +11579,6 @@ dns_resolver_settimeout(dns_resolver_t *resolver, unsigned int timeout) {
|
|||
resolver->query_timeout = timeout;
|
||||
}
|
||||
|
||||
void
|
||||
dns_resolver_setquerydscp4(dns_resolver_t *resolver, isc_dscp_t dscp) {
|
||||
REQUIRE(VALID_RESOLVER(resolver));
|
||||
|
||||
resolver->querydscp4 = dscp;
|
||||
}
|
||||
|
||||
isc_dscp_t
|
||||
dns_resolver_getquerydscp4(dns_resolver_t *resolver) {
|
||||
REQUIRE(VALID_RESOLVER(resolver));
|
||||
return (resolver->querydscp4);
|
||||
}
|
||||
|
||||
void
|
||||
dns_resolver_setquerydscp6(dns_resolver_t *resolver, isc_dscp_t dscp) {
|
||||
REQUIRE(VALID_RESOLVER(resolver));
|
||||
|
||||
resolver->querydscp6 = dscp;
|
||||
}
|
||||
|
||||
isc_dscp_t
|
||||
dns_resolver_getquerydscp6(dns_resolver_t *resolver) {
|
||||
REQUIRE(VALID_RESOLVER(resolver));
|
||||
return (resolver->querydscp6);
|
||||
}
|
||||
|
||||
void
|
||||
dns_resolver_setmaxdepth(dns_resolver_t *resolver, unsigned int maxdepth) {
|
||||
REQUIRE(VALID_RESOLVER(resolver));
|
||||
|
|
|
|||
|
|
@ -120,7 +120,6 @@ struct dns_xfrin_ctx {
|
|||
* may differ due to IXFR->AXFR fallback.
|
||||
*/
|
||||
dns_rdatatype_t reqtype;
|
||||
isc_dscp_t dscp;
|
||||
|
||||
isc_sockaddr_t primaryaddr;
|
||||
isc_sockaddr_t sourceaddr;
|
||||
|
|
@ -200,9 +199,9 @@ static void
|
|||
xfrin_create(isc_mem_t *mctx, dns_zone_t *zone, dns_db_t *db, isc_nm_t *netmgr,
|
||||
dns_name_t *zonename, dns_rdataclass_t rdclass,
|
||||
dns_rdatatype_t reqtype, const isc_sockaddr_t *primaryaddr,
|
||||
const isc_sockaddr_t *sourceaddr, isc_dscp_t dscp,
|
||||
dns_tsigkey_t *tsigkey, dns_transport_t *transport,
|
||||
isc_tlsctx_cache_t *tlsctx_cache, dns_xfrin_ctx_t **xfrp);
|
||||
const isc_sockaddr_t *sourceaddr, dns_tsigkey_t *tsigkey,
|
||||
dns_transport_t *transport, isc_tlsctx_cache_t *tlsctx_cache,
|
||||
dns_xfrin_ctx_t **xfrp);
|
||||
|
||||
static isc_result_t
|
||||
axfr_init(dns_xfrin_ctx_t *xfr);
|
||||
|
|
@ -695,10 +694,9 @@ failure:
|
|||
isc_result_t
|
||||
dns_xfrin_create(dns_zone_t *zone, dns_rdatatype_t xfrtype,
|
||||
const isc_sockaddr_t *primaryaddr,
|
||||
const isc_sockaddr_t *sourceaddr, isc_dscp_t dscp,
|
||||
dns_tsigkey_t *tsigkey, dns_transport_t *transport,
|
||||
isc_tlsctx_cache_t *tlsctx_cache, isc_mem_t *mctx,
|
||||
isc_nm_t *netmgr, dns_xfrindone_t done,
|
||||
const isc_sockaddr_t *sourceaddr, dns_tsigkey_t *tsigkey,
|
||||
dns_transport_t *transport, isc_tlsctx_cache_t *tlsctx_cache,
|
||||
isc_mem_t *mctx, isc_nm_t *netmgr, dns_xfrindone_t done,
|
||||
dns_xfrin_ctx_t **xfrp) {
|
||||
dns_name_t *zonename = dns_zone_getorigin(zone);
|
||||
dns_xfrin_ctx_t *xfr = NULL;
|
||||
|
|
@ -716,7 +714,7 @@ dns_xfrin_create(dns_zone_t *zone, dns_rdatatype_t xfrtype,
|
|||
}
|
||||
|
||||
xfrin_create(mctx, zone, db, netmgr, zonename, dns_zone_getclass(zone),
|
||||
xfrtype, primaryaddr, sourceaddr, dscp, tsigkey, transport,
|
||||
xfrtype, primaryaddr, sourceaddr, tsigkey, transport,
|
||||
tlsctx_cache, &xfr);
|
||||
|
||||
if (db != NULL) {
|
||||
|
|
@ -864,9 +862,9 @@ static void
|
|||
xfrin_create(isc_mem_t *mctx, dns_zone_t *zone, dns_db_t *db, isc_nm_t *netmgr,
|
||||
dns_name_t *zonename, dns_rdataclass_t rdclass,
|
||||
dns_rdatatype_t reqtype, const isc_sockaddr_t *primaryaddr,
|
||||
const isc_sockaddr_t *sourceaddr, isc_dscp_t dscp,
|
||||
dns_tsigkey_t *tsigkey, dns_transport_t *transport,
|
||||
isc_tlsctx_cache_t *tlsctx_cache, dns_xfrin_ctx_t **xfrp) {
|
||||
const isc_sockaddr_t *sourceaddr, dns_tsigkey_t *tsigkey,
|
||||
dns_transport_t *transport, isc_tlsctx_cache_t *tlsctx_cache,
|
||||
dns_xfrin_ctx_t **xfrp) {
|
||||
dns_xfrin_ctx_t *xfr = NULL;
|
||||
|
||||
xfr = isc_mem_get(mctx, sizeof(*xfr));
|
||||
|
|
@ -874,7 +872,6 @@ xfrin_create(isc_mem_t *mctx, dns_zone_t *zone, dns_db_t *db, isc_nm_t *netmgr,
|
|||
.shutdown_result = ISC_R_UNSET,
|
||||
.rdclass = rdclass,
|
||||
.reqtype = reqtype,
|
||||
.dscp = dscp,
|
||||
.id = (dns_messageid_t)isc_random16(),
|
||||
.maxrecords = dns_zone_getmaxrecords(zone),
|
||||
.primaryaddr = *primaryaddr,
|
||||
|
|
@ -1256,7 +1253,6 @@ xfrin_connect_done(isc_nmhandle_t *handle, isc_result_t result, void *cbarg) {
|
|||
xfr->handle = handle;
|
||||
sockaddr = isc_nmhandle_peeraddr(handle);
|
||||
isc_sockaddr_format(&sockaddr, sourcetext, sizeof(sourcetext));
|
||||
/* TODO set DSCP */
|
||||
|
||||
if (xfr->tsigkey != NULL && xfr->tsigkey->key != NULL) {
|
||||
dns_name_format(dst_key_name(xfr->tsigkey->key), signerbuf,
|
||||
|
|
|
|||
335
lib/dns/zone.c
335
lib/dns/zone.c
|
|
@ -311,7 +311,6 @@ struct dns_zone {
|
|||
uint32_t maxrecords;
|
||||
|
||||
isc_sockaddr_t *primaries;
|
||||
isc_dscp_t *primarydscps;
|
||||
dns_name_t **primarykeynames;
|
||||
dns_name_t **primarytlsnames;
|
||||
bool *primariesok;
|
||||
|
|
@ -320,7 +319,6 @@ struct dns_zone {
|
|||
isc_sockaddr_t primaryaddr;
|
||||
|
||||
isc_sockaddr_t *parentals;
|
||||
isc_dscp_t *parentaldscps;
|
||||
dns_name_t **parentalkeynames;
|
||||
dns_name_t **parentaltlsnames;
|
||||
dns_dnsseckeylist_t checkds_ok;
|
||||
|
|
@ -331,7 +329,6 @@ struct dns_zone {
|
|||
isc_sockaddr_t *notify;
|
||||
dns_name_t **notifykeynames;
|
||||
dns_name_t **notifytlsnames;
|
||||
isc_dscp_t *notifydscp;
|
||||
unsigned int notifycnt;
|
||||
isc_sockaddr_t notifyfrom;
|
||||
isc_task_t *task;
|
||||
|
|
@ -345,14 +342,6 @@ struct dns_zone {
|
|||
isc_sockaddr_t altxfrsource4;
|
||||
isc_sockaddr_t altxfrsource6;
|
||||
isc_sockaddr_t sourceaddr;
|
||||
isc_dscp_t notifysrc4dscp;
|
||||
isc_dscp_t notifysrc6dscp;
|
||||
isc_dscp_t parentalsrc4dscp;
|
||||
isc_dscp_t parentalsrc6dscp;
|
||||
isc_dscp_t xfrsource4dscp;
|
||||
isc_dscp_t xfrsource6dscp;
|
||||
isc_dscp_t altxfrsource4dscp;
|
||||
isc_dscp_t altxfrsource6dscp;
|
||||
dns_xfrin_ctx_t *xfr; /* task locked */
|
||||
dns_tsigkey_t *tsigkey; /* key used for xfr */
|
||||
dns_transport_t *transport; /* transport used for xfr */
|
||||
|
|
@ -679,7 +668,6 @@ struct dns_notify {
|
|||
isc_sockaddr_t dst;
|
||||
dns_tsigkey_t *key;
|
||||
dns_transport_t *transport;
|
||||
isc_dscp_t dscp;
|
||||
ISC_LINK(dns_notify_t) link;
|
||||
isc_event_t *event;
|
||||
};
|
||||
|
|
@ -699,7 +687,6 @@ struct dns_checkds {
|
|||
isc_sockaddr_t dst;
|
||||
dns_tsigkey_t *key;
|
||||
dns_transport_t *transport;
|
||||
isc_dscp_t dscp;
|
||||
ISC_LINK(dns_checkds_t) link;
|
||||
isc_event_t *event;
|
||||
};
|
||||
|
|
@ -1071,7 +1058,6 @@ struct ssevent {
|
|||
struct stub_cb_args {
|
||||
dns_stub_t *stub;
|
||||
dns_tsigkey_t *tsig_key;
|
||||
isc_dscp_t dscp;
|
||||
uint16_t udpsize;
|
||||
int timeout;
|
||||
bool reqnsid;
|
||||
|
|
@ -1118,14 +1104,6 @@ dns_zone_create(dns_zone_t **zonep, isc_mem_t *mctx) {
|
|||
.check_names = dns_severity_ignore,
|
||||
.idlein = DNS_DEFAULT_IDLEIN,
|
||||
.idleout = DNS_DEFAULT_IDLEOUT,
|
||||
.notifysrc4dscp = -1,
|
||||
.notifysrc6dscp = -1,
|
||||
.parentalsrc4dscp = -1,
|
||||
.parentalsrc6dscp = -1,
|
||||
.xfrsource4dscp = -1,
|
||||
.xfrsource6dscp = -1,
|
||||
.altxfrsource4dscp = -1,
|
||||
.altxfrsource6dscp = -1,
|
||||
.maxxfrin = MAX_XFER_TIME,
|
||||
.maxxfrout = MAX_XFER_TIME,
|
||||
.sigvalidityinterval = 30 * 24 * 3600,
|
||||
|
|
@ -1359,7 +1337,8 @@ zone_free(dns_zone_t *zone) {
|
|||
zone_freedbargs(zone);
|
||||
dns_zone_setparentals(zone, NULL, NULL, NULL, 0);
|
||||
dns_zone_setprimaries(zone, NULL, NULL, NULL, 0);
|
||||
dns_zone_setalsonotify(zone, NULL, NULL, NULL, NULL, 0);
|
||||
dns_zone_setalsonotify(zone, NULL, NULL, NULL, 0);
|
||||
|
||||
zone->check_names = dns_severity_ignore;
|
||||
if (zone->update_acl != NULL) {
|
||||
dns_acl_detach(&zone->update_acl);
|
||||
|
|
@ -5982,23 +5961,6 @@ dns_zone_getxfrsource4(dns_zone_t *zone) {
|
|||
return (&zone->xfrsource4);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setxfrsource4dscp(dns_zone_t *zone, isc_dscp_t dscp) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
zone->xfrsource4dscp = dscp;
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getxfrsource4dscp(dns_zone_t *zone) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
return (zone->xfrsource4dscp);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setxfrsource6(dns_zone_t *zone, const isc_sockaddr_t *xfrsource) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
|
@ -6016,23 +5978,6 @@ dns_zone_getxfrsource6(dns_zone_t *zone) {
|
|||
return (&zone->xfrsource6);
|
||||
}
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getxfrsource6dscp(dns_zone_t *zone) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
return (zone->xfrsource6dscp);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setxfrsource6dscp(dns_zone_t *zone, isc_dscp_t dscp) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
zone->xfrsource6dscp = dscp;
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setaltxfrsource4(dns_zone_t *zone,
|
||||
const isc_sockaddr_t *altxfrsource) {
|
||||
|
|
@ -6051,23 +5996,6 @@ dns_zone_getaltxfrsource4(dns_zone_t *zone) {
|
|||
return (&zone->altxfrsource4);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setaltxfrsource4dscp(dns_zone_t *zone, isc_dscp_t dscp) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
zone->altxfrsource4dscp = dscp;
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getaltxfrsource4dscp(dns_zone_t *zone) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
return (zone->altxfrsource4dscp);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setaltxfrsource6(dns_zone_t *zone,
|
||||
const isc_sockaddr_t *altxfrsource) {
|
||||
|
|
@ -6086,23 +6014,6 @@ dns_zone_getaltxfrsource6(dns_zone_t *zone) {
|
|||
return (&zone->altxfrsource6);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setaltxfrsource6dscp(dns_zone_t *zone, isc_dscp_t dscp) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
zone->altxfrsource6dscp = dscp;
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getaltxfrsource6dscp(dns_zone_t *zone) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
return (zone->altxfrsource6dscp);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setparentalsrc4(dns_zone_t *zone, const isc_sockaddr_t *parentalsrc) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
|
@ -6120,23 +6031,6 @@ dns_zone_getparentalsrc4(dns_zone_t *zone) {
|
|||
return (&zone->parentalsrc4);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setparentalsrc4dscp(dns_zone_t *zone, isc_dscp_t dscp) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
zone->parentalsrc4dscp = dscp;
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getparentalsrc4dscp(dns_zone_t *zone) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
return (zone->parentalsrc4dscp);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setparentalsrc6(dns_zone_t *zone, const isc_sockaddr_t *parentalsrc) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
|
@ -6154,23 +6048,6 @@ dns_zone_getparentalsrc6(dns_zone_t *zone) {
|
|||
return (&zone->parentalsrc6);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setparentalsrc6dscp(dns_zone_t *zone, isc_dscp_t dscp) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
zone->parentalsrc6dscp = dscp;
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getparentalsrc6dscp(dns_zone_t *zone) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
return (zone->parentalsrc6dscp);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setnotifysrc4(dns_zone_t *zone, const isc_sockaddr_t *notifysrc) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
|
@ -6188,23 +6065,6 @@ dns_zone_getnotifysrc4(dns_zone_t *zone) {
|
|||
return (&zone->notifysrc4);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setnotifysrc4dscp(dns_zone_t *zone, isc_dscp_t dscp) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
zone->notifysrc4dscp = dscp;
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getnotifysrc4dscp(dns_zone_t *zone) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
return (zone->notifysrc4dscp);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setnotifysrc6(dns_zone_t *zone, const isc_sockaddr_t *notifysrc) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
|
@ -6222,23 +6082,6 @@ dns_zone_getnotifysrc6(dns_zone_t *zone) {
|
|||
return (&zone->notifysrc6);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setnotifysrc6dscp(dns_zone_t *zone, isc_dscp_t dscp) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
zone->notifysrc6dscp = dscp;
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_dscp_t
|
||||
dns_zone_getnotifysrc6dscp(dns_zone_t *zone) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
return (zone->notifysrc6dscp);
|
||||
}
|
||||
|
||||
static bool
|
||||
same_addrs(isc_sockaddr_t const *oldlist, isc_sockaddr_t const *newlist,
|
||||
uint32_t count) {
|
||||
|
|
@ -6278,18 +6121,16 @@ same_names(dns_name_t *const *oldlist, dns_name_t *const *newlist,
|
|||
}
|
||||
|
||||
static void
|
||||
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) {
|
||||
clear_serverslist(isc_sockaddr_t **addrsp, 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;
|
||||
dns_name_t **keynames;
|
||||
dns_name_t **tlsnames;
|
||||
|
||||
REQUIRE(countp != NULL);
|
||||
REQUIRE(addrsp != NULL);
|
||||
REQUIRE(dscpsp != NULL);
|
||||
REQUIRE(keynamesp != NULL);
|
||||
REQUIRE(tlsnamesp != NULL);
|
||||
|
||||
|
|
@ -6297,8 +6138,6 @@ clear_serverslist(isc_sockaddr_t **addrsp, isc_dscp_t **dscpsp,
|
|||
*countp = 0;
|
||||
addrs = *addrsp;
|
||||
*addrsp = NULL;
|
||||
dscps = *dscpsp;
|
||||
*dscpsp = NULL;
|
||||
keynames = *keynamesp;
|
||||
*keynamesp = NULL;
|
||||
tlsnames = *tlsnamesp;
|
||||
|
|
@ -6308,10 +6147,6 @@ clear_serverslist(isc_sockaddr_t **addrsp, isc_dscp_t **dscpsp,
|
|||
isc_mem_put(mctx, addrs, count * sizeof(isc_sockaddr_t));
|
||||
}
|
||||
|
||||
if (dscps != NULL) {
|
||||
isc_mem_put(mctx, dscps, count * sizeof(isc_dscp_t));
|
||||
}
|
||||
|
||||
if (keynames != NULL) {
|
||||
unsigned int i;
|
||||
for (i = 0; i < count; i++) {
|
||||
|
|
@ -6341,31 +6176,21 @@ clear_serverslist(isc_sockaddr_t **addrsp, isc_dscp_t **dscpsp,
|
|||
|
||||
static void
|
||||
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,
|
||||
isc_sockaddr_t **newaddrsp, 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;
|
||||
dns_name_t **newtlsnames = NULL;
|
||||
unsigned int i;
|
||||
|
||||
REQUIRE(newaddrsp != NULL && *newaddrsp == NULL);
|
||||
REQUIRE(newdscpp != NULL && *newdscpp == NULL);
|
||||
REQUIRE(newkeynamesp != NULL && *newkeynamesp == NULL);
|
||||
REQUIRE(newtlsnamesp != NULL && *newtlsnamesp == NULL);
|
||||
|
||||
newaddrs = isc_mem_get(mctx, count * sizeof(*newaddrs));
|
||||
memmove(newaddrs, addrs, count * sizeof(*newaddrs));
|
||||
|
||||
if (dscp != NULL) {
|
||||
newdscp = isc_mem_get(mctx, count * sizeof(*newdscp));
|
||||
memmove(newdscp, dscp, count * sizeof(*newdscp));
|
||||
} else {
|
||||
newdscp = NULL;
|
||||
}
|
||||
|
||||
if (keynames != NULL) {
|
||||
newkeynames = isc_mem_get(mctx, count * sizeof(*newkeynames));
|
||||
for (i = 0; i < count; i++) {
|
||||
|
|
@ -6396,7 +6221,6 @@ set_serverslist(unsigned int count, const isc_sockaddr_t *addrs,
|
|||
}
|
||||
}
|
||||
|
||||
*newdscpp = newdscp;
|
||||
*newaddrsp = newaddrs;
|
||||
*newkeynamesp = newkeynames;
|
||||
*newtlsnamesp = newtlsnames;
|
||||
|
|
@ -6404,10 +6228,9 @@ set_serverslist(unsigned int count, const isc_sockaddr_t *addrs,
|
|||
|
||||
void
|
||||
dns_zone_setalsonotify(dns_zone_t *zone, const isc_sockaddr_t *notify,
|
||||
const isc_dscp_t *dscps, dns_name_t **keynames,
|
||||
dns_name_t **tlsnames, uint32_t count) {
|
||||
dns_name_t **keynames, dns_name_t **tlsnames,
|
||||
uint32_t count) {
|
||||
isc_sockaddr_t *newaddrs = NULL;
|
||||
isc_dscp_t *newdscps = NULL;
|
||||
dns_name_t **newkeynames = NULL;
|
||||
dns_name_t **newtlsnames = NULL;
|
||||
|
||||
|
|
@ -6427,9 +6250,8 @@ dns_zone_setalsonotify(dns_zone_t *zone, const isc_sockaddr_t *notify,
|
|||
goto unlock;
|
||||
}
|
||||
|
||||
clear_serverslist(&zone->notify, &zone->notifydscp,
|
||||
&zone->notifykeynames, &zone->notifytlsnames,
|
||||
&zone->notifycnt, zone->mctx);
|
||||
clear_serverslist(&zone->notify, &zone->notifykeynames,
|
||||
&zone->notifytlsnames, &zone->notifycnt, zone->mctx);
|
||||
|
||||
if (count == 0) {
|
||||
goto unlock;
|
||||
|
|
@ -6438,14 +6260,13 @@ dns_zone_setalsonotify(dns_zone_t *zone, const isc_sockaddr_t *notify,
|
|||
/*
|
||||
* Set up the notify and notifykey lists
|
||||
*/
|
||||
set_serverslist(count, notify, &newaddrs, dscps, &newdscps, keynames,
|
||||
&newkeynames, tlsnames, &newtlsnames, zone->mctx);
|
||||
set_serverslist(count, notify, &newaddrs, keynames, &newkeynames,
|
||||
tlsnames, &newtlsnames, zone->mctx);
|
||||
|
||||
/*
|
||||
* Everything is ok so attach to the zone.
|
||||
*/
|
||||
zone->notify = newaddrs;
|
||||
zone->notifydscp = newdscps;
|
||||
zone->notifykeynames = newkeynames;
|
||||
zone->notifytlsnames = newtlsnames;
|
||||
zone->notifycnt = count;
|
||||
|
|
@ -6458,7 +6279,6 @@ dns_zone_setprimaries(dns_zone_t *zone, const isc_sockaddr_t *primaries,
|
|||
dns_name_t **keynames, dns_name_t **tlsnames,
|
||||
uint32_t count) {
|
||||
isc_sockaddr_t *newaddrs = NULL;
|
||||
isc_dscp_t *newdscps = NULL;
|
||||
dns_name_t **newkeynames = NULL;
|
||||
dns_name_t **newtlsnames = NULL;
|
||||
bool *newok;
|
||||
|
|
@ -6498,9 +6318,9 @@ dns_zone_setprimaries(dns_zone_t *zone, const isc_sockaddr_t *primaries,
|
|||
zone->primariescnt * sizeof(bool));
|
||||
zone->primariesok = NULL;
|
||||
}
|
||||
clear_serverslist(&zone->primaries, &zone->primarydscps,
|
||||
&zone->primarykeynames, &zone->primarytlsnames,
|
||||
&zone->primariescnt, zone->mctx);
|
||||
clear_serverslist(&zone->primaries, &zone->primarykeynames,
|
||||
&zone->primarytlsnames, &zone->primariescnt,
|
||||
zone->mctx);
|
||||
/*
|
||||
* If count == 0, don't allocate any space for primaries, primariesok or
|
||||
* keynames so internally, those pointers are NULL if count == 0
|
||||
|
|
@ -6520,9 +6340,8 @@ dns_zone_setprimaries(dns_zone_t *zone, const isc_sockaddr_t *primaries,
|
|||
/*
|
||||
* Now set up the primaries and primary key lists
|
||||
*/
|
||||
set_serverslist(count, primaries, &newaddrs, NULL, &newdscps, keynames,
|
||||
&newkeynames, tlsnames, &newtlsnames, zone->mctx);
|
||||
INSIST(newdscps == NULL);
|
||||
set_serverslist(count, primaries, &newaddrs, keynames, &newkeynames,
|
||||
tlsnames, &newtlsnames, zone->mctx);
|
||||
|
||||
/*
|
||||
* Everything is ok so attach to the zone.
|
||||
|
|
@ -6530,7 +6349,6 @@ dns_zone_setprimaries(dns_zone_t *zone, const isc_sockaddr_t *primaries,
|
|||
zone->curprimary = 0;
|
||||
zone->primariesok = newok;
|
||||
zone->primaries = newaddrs;
|
||||
zone->primarydscps = newdscps;
|
||||
zone->primarykeynames = newkeynames;
|
||||
zone->primarytlsnames = newtlsnames;
|
||||
zone->primariescnt = count;
|
||||
|
|
@ -6545,7 +6363,6 @@ dns_zone_setparentals(dns_zone_t *zone, const isc_sockaddr_t *parentals,
|
|||
dns_name_t **keynames, dns_name_t **tlsnames,
|
||||
uint32_t count) {
|
||||
isc_sockaddr_t *newaddrs = NULL;
|
||||
isc_dscp_t *newdscps = NULL;
|
||||
dns_name_t **newkeynames = NULL;
|
||||
dns_name_t **newtlsnames = NULL;
|
||||
|
||||
|
|
@ -6557,9 +6374,9 @@ dns_zone_setparentals(dns_zone_t *zone, const isc_sockaddr_t *parentals,
|
|||
|
||||
LOCK_ZONE(zone);
|
||||
|
||||
clear_serverslist(&zone->parentals, &zone->parentaldscps,
|
||||
&zone->parentalkeynames, &zone->parentaltlsnames,
|
||||
&zone->parentalscnt, zone->mctx);
|
||||
clear_serverslist(&zone->parentals, &zone->parentalkeynames,
|
||||
&zone->parentaltlsnames, &zone->parentalscnt,
|
||||
zone->mctx);
|
||||
/*
|
||||
* If count == 0, don't allocate any space for parentals, or keynames
|
||||
* so internally, those pointers are NULL if count == 0
|
||||
|
|
@ -6571,15 +6388,13 @@ dns_zone_setparentals(dns_zone_t *zone, const isc_sockaddr_t *parentals,
|
|||
/*
|
||||
* Now set up the parentals and parental key lists
|
||||
*/
|
||||
set_serverslist(count, parentals, &newaddrs, NULL, &newdscps, keynames,
|
||||
&newkeynames, tlsnames, &newtlsnames, zone->mctx);
|
||||
INSIST(newdscps == NULL);
|
||||
set_serverslist(count, parentals, &newaddrs, keynames, &newkeynames,
|
||||
tlsnames, &newtlsnames, zone->mctx);
|
||||
|
||||
/*
|
||||
* Everything is ok so attach to the zone.
|
||||
*/
|
||||
zone->parentals = newaddrs;
|
||||
zone->parentaldscps = newdscps;
|
||||
zone->parentalkeynames = newkeynames;
|
||||
zone->parentaltlsnames = newtlsnames;
|
||||
zone->parentalscnt = count;
|
||||
|
|
@ -12777,8 +12592,6 @@ notify_send_toaddr(isc_task_t *task, isc_event_t *event) {
|
|||
isc_sockaddr_t src;
|
||||
unsigned int options, timeout;
|
||||
bool have_notifysource = false;
|
||||
bool have_notifydscp = false;
|
||||
isc_dscp_t dscp = -1;
|
||||
|
||||
notify = event->ev_arg;
|
||||
REQUIRE(DNS_NOTIFY_VALID(notify));
|
||||
|
|
@ -12861,10 +12674,6 @@ notify_send_toaddr(isc_task_t *task, isc_event_t *event) {
|
|||
if (result == ISC_R_SUCCESS) {
|
||||
have_notifysource = true;
|
||||
}
|
||||
dns_peer_getnotifydscp(peer, &dscp);
|
||||
if (dscp != -1) {
|
||||
have_notifydscp = true;
|
||||
}
|
||||
result = dns_peer_getforcetcp(peer, &usetcp);
|
||||
if (result == ISC_R_SUCCESS && usetcp) {
|
||||
options |= DNS_FETCHOPT_TCP;
|
||||
|
|
@ -12876,17 +12685,11 @@ notify_send_toaddr(isc_task_t *task, isc_event_t *event) {
|
|||
if (!have_notifysource) {
|
||||
src = notify->zone->notifysrc4;
|
||||
}
|
||||
if (!have_notifydscp) {
|
||||
dscp = notify->zone->notifysrc4dscp;
|
||||
}
|
||||
break;
|
||||
case PF_INET6:
|
||||
if (!have_notifysource) {
|
||||
src = notify->zone->notifysrc6;
|
||||
}
|
||||
if (!have_notifydscp) {
|
||||
dscp = notify->zone->notifysrc6dscp;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
result = ISC_R_NOTIMPLEMENTED;
|
||||
|
|
@ -12897,7 +12700,7 @@ notify_send_toaddr(isc_task_t *task, isc_event_t *event) {
|
|||
timeout = 30;
|
||||
}
|
||||
result = dns_request_create(notify->zone->view->requestmgr, message,
|
||||
&src, ¬ify->dst, dscp, options, key,
|
||||
&src, ¬ify->dst, options, key,
|
||||
timeout * 3, timeout, 2, notify->zone->task,
|
||||
notify_done, notify, ¬ify->request);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
|
|
@ -13630,8 +13433,8 @@ stub_request_nameserver_address(struct stub_cb_args *args, bool ipv4,
|
|||
|
||||
result = dns_request_create(
|
||||
zone->view->requestmgr, message, &zone->sourceaddr,
|
||||
&zone->primaryaddr, args->dscp, DNS_REQUESTOPT_TCP,
|
||||
args->tsig_key, args->timeout * 3, args->timeout, 2, zone->task,
|
||||
&zone->primaryaddr, DNS_REQUESTOPT_TCP, args->tsig_key,
|
||||
args->timeout * 3, args->timeout, 2, zone->task,
|
||||
stub_glue_response_cb, request, &request->request);
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
|
|
@ -14693,9 +14496,8 @@ soa_query(isc_task_t *task, isc_event_t *event) {
|
|||
uint32_t options;
|
||||
bool cancel = true;
|
||||
int timeout;
|
||||
bool have_xfrsource, have_xfrdscp, reqnsid, reqexpire;
|
||||
bool have_xfrsource = false, reqnsid, reqexpire;
|
||||
uint16_t udpsize = SEND_BUFFER_SIZE;
|
||||
isc_dscp_t dscp = -1;
|
||||
bool do_queue_xfrin = false;
|
||||
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
|
@ -14771,7 +14573,6 @@ again:
|
|||
|
||||
options = DNS_ZONE_FLAG(zone, DNS_ZONEFLG_USEVC) ? DNS_REQUESTOPT_TCP
|
||||
: 0;
|
||||
have_xfrsource = have_xfrdscp = false;
|
||||
reqnsid = zone->view->requestnsid;
|
||||
reqexpire = zone->requestexpire;
|
||||
if (zone->view->peers != NULL) {
|
||||
|
|
@ -14789,10 +14590,6 @@ again:
|
|||
if (result == ISC_R_SUCCESS) {
|
||||
have_xfrsource = true;
|
||||
}
|
||||
(void)dns_peer_gettransferdscp(peer, &dscp);
|
||||
if (dscp != -1) {
|
||||
have_xfrdscp = true;
|
||||
}
|
||||
if (zone->view->resolver != NULL) {
|
||||
udpsize = dns_resolver_getudpsize(
|
||||
zone->view->resolver);
|
||||
|
|
@ -14816,14 +14613,8 @@ again:
|
|||
goto skip_primary;
|
||||
}
|
||||
zone->sourceaddr = zone->altxfrsource4;
|
||||
if (!have_xfrdscp) {
|
||||
dscp = zone->altxfrsource4dscp;
|
||||
}
|
||||
} else if (!have_xfrsource) {
|
||||
zone->sourceaddr = zone->xfrsource4;
|
||||
if (!have_xfrdscp) {
|
||||
dscp = zone->xfrsource4dscp;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PF_INET6:
|
||||
|
|
@ -14834,14 +14625,8 @@ again:
|
|||
goto skip_primary;
|
||||
}
|
||||
zone->sourceaddr = zone->altxfrsource6;
|
||||
if (!have_xfrdscp) {
|
||||
dscp = zone->altxfrsource6dscp;
|
||||
}
|
||||
} else if (!have_xfrsource) {
|
||||
zone->sourceaddr = zone->xfrsource6;
|
||||
if (!have_xfrdscp) {
|
||||
dscp = zone->xfrsource6dscp;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
@ -14883,7 +14668,7 @@ again:
|
|||
}
|
||||
result = dns_request_create(
|
||||
zone->view->requestmgr, message, &zone->sourceaddr,
|
||||
&zone->primaryaddr, dscp, options, key, timeout * 3, timeout, 2,
|
||||
&zone->primaryaddr, options, key, timeout * 3, timeout, 2,
|
||||
zone->task, refresh_callback, zone, &zone->request);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
zone_idetach(&dummy);
|
||||
|
|
@ -14955,10 +14740,9 @@ ns_query(dns_zone_t *zone, dns_rdataset_t *soardataset, dns_stub_t *stub) {
|
|||
dns_tsigkey_t *key = NULL;
|
||||
dns_dbnode_t *node = NULL;
|
||||
int timeout;
|
||||
bool have_xfrsource = false, have_xfrdscp = false;
|
||||
bool have_xfrsource = false;
|
||||
bool reqnsid;
|
||||
uint16_t udpsize = SEND_BUFFER_SIZE;
|
||||
isc_dscp_t dscp = -1;
|
||||
struct stub_cb_args *cb_args;
|
||||
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
|
@ -15094,10 +14878,6 @@ ns_query(dns_zone_t *zone, dns_rdataset_t *soardataset, dns_stub_t *stub) {
|
|||
if (result == ISC_R_SUCCESS) {
|
||||
have_xfrsource = true;
|
||||
}
|
||||
result = dns_peer_gettransferdscp(peer, &dscp);
|
||||
if (result == ISC_R_SUCCESS && dscp != -1) {
|
||||
have_xfrdscp = true;
|
||||
}
|
||||
if (zone->view->resolver != NULL) {
|
||||
udpsize = dns_resolver_getudpsize(
|
||||
zone->view->resolver);
|
||||
|
|
@ -15122,27 +14902,15 @@ ns_query(dns_zone_t *zone, dns_rdataset_t *soardataset, dns_stub_t *stub) {
|
|||
case PF_INET:
|
||||
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_USEALTXFRSRC)) {
|
||||
zone->sourceaddr = zone->altxfrsource4;
|
||||
if (!have_xfrdscp) {
|
||||
dscp = zone->altxfrsource4dscp;
|
||||
}
|
||||
} else if (!have_xfrsource) {
|
||||
zone->sourceaddr = zone->xfrsource4;
|
||||
if (!have_xfrdscp) {
|
||||
dscp = zone->xfrsource4dscp;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PF_INET6:
|
||||
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_USEALTXFRSRC)) {
|
||||
zone->sourceaddr = zone->altxfrsource6;
|
||||
if (!have_xfrdscp) {
|
||||
dscp = zone->altxfrsource6dscp;
|
||||
}
|
||||
} else if (!have_xfrsource) {
|
||||
zone->sourceaddr = zone->xfrsource6;
|
||||
if (!have_xfrdscp) {
|
||||
dscp = zone->xfrsource6dscp;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
@ -15162,14 +14930,13 @@ ns_query(dns_zone_t *zone, dns_rdataset_t *soardataset, dns_stub_t *stub) {
|
|||
cb_args = isc_mem_get(zone->mctx, sizeof(*cb_args));
|
||||
cb_args->stub = stub;
|
||||
cb_args->tsig_key = key;
|
||||
cb_args->dscp = dscp;
|
||||
cb_args->udpsize = udpsize;
|
||||
cb_args->timeout = timeout;
|
||||
cb_args->reqnsid = reqnsid;
|
||||
|
||||
result = dns_request_create(
|
||||
zone->view->requestmgr, message, &zone->sourceaddr,
|
||||
&zone->primaryaddr, dscp, DNS_REQUESTOPT_TCP, key, timeout * 3,
|
||||
&zone->primaryaddr, DNS_REQUESTOPT_TCP, key, timeout * 3,
|
||||
timeout, 2, zone->task, stub_callback, cb_args, &zone->request);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
zone_debuglog(zone, me, 1, "dns_request_create() failed: %s",
|
||||
|
|
@ -18242,7 +18009,6 @@ got_transfer_quota(isc_task_t *task, isc_event_t *event) {
|
|||
isc_sockaddr_t primaryaddr;
|
||||
isc_time_t now;
|
||||
const char *soa_before = "";
|
||||
isc_dscp_t dscp = -1;
|
||||
bool loaded;
|
||||
|
||||
UNUSED(task);
|
||||
|
|
@ -18375,27 +18141,9 @@ got_transfer_quota(isc_task_t *task, isc_event_t *event) {
|
|||
isc_result_totext(result));
|
||||
}
|
||||
|
||||
if (zone->primarydscps != NULL) {
|
||||
dscp = zone->primarydscps[zone->curprimary];
|
||||
}
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
primaryaddr = zone->primaryaddr;
|
||||
sourceaddr = zone->sourceaddr;
|
||||
switch (isc_sockaddr_pf(&primaryaddr)) {
|
||||
case PF_INET:
|
||||
if (dscp == -1) {
|
||||
dscp = zone->xfrsource4dscp;
|
||||
}
|
||||
break;
|
||||
case PF_INET6:
|
||||
if (dscp == -1) {
|
||||
dscp = zone->xfrsource6dscp;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
UNLOCK_ZONE(zone);
|
||||
INSIST(isc_sockaddr_pf(&primaryaddr) == isc_sockaddr_pf(&sourceaddr));
|
||||
|
||||
|
|
@ -18403,7 +18151,7 @@ got_transfer_quota(isc_task_t *task, isc_event_t *event) {
|
|||
dns_xfrin_detach(&zone->xfr);
|
||||
}
|
||||
|
||||
CHECK(dns_xfrin_create(zone, xfrtype, &primaryaddr, &sourceaddr, dscp,
|
||||
CHECK(dns_xfrin_create(zone, xfrtype, &primaryaddr, &sourceaddr,
|
||||
zone->tsigkey, zone->transport,
|
||||
zone->zmgr->tlsctx_cache, zone->mctx,
|
||||
zone->zmgr->netmgr, zone_xfrdone, &zone->xfr));
|
||||
|
|
@ -18464,7 +18212,6 @@ static isc_result_t
|
|||
sendtoprimary(dns_forward_t *forward) {
|
||||
isc_result_t result;
|
||||
isc_sockaddr_t src;
|
||||
isc_dscp_t dscp = -1;
|
||||
|
||||
LOCK_ZONE(forward->zone);
|
||||
|
||||
|
|
@ -18488,11 +18235,9 @@ sendtoprimary(dns_forward_t *forward) {
|
|||
switch (isc_sockaddr_pf(&forward->addr)) {
|
||||
case PF_INET:
|
||||
src = forward->zone->xfrsource4;
|
||||
dscp = forward->zone->xfrsource4dscp;
|
||||
break;
|
||||
case PF_INET6:
|
||||
src = forward->zone->xfrsource6;
|
||||
dscp = forward->zone->xfrsource6dscp;
|
||||
break;
|
||||
default:
|
||||
result = ISC_R_NOTIMPLEMENTED;
|
||||
|
|
@ -18500,8 +18245,8 @@ sendtoprimary(dns_forward_t *forward) {
|
|||
}
|
||||
result = dns_request_createraw(forward->zone->view->requestmgr,
|
||||
forward->msgbuf, &src, &forward->addr,
|
||||
dscp, forward->options, 15 /* XXX */, 0,
|
||||
0, forward->zone->task, forward_callback,
|
||||
forward->options, 15 /* XXX */, 0, 0,
|
||||
forward->zone->task, forward_callback,
|
||||
forward, &forward->request);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
if (!ISC_LINK_LINKED(forward, link)) {
|
||||
|
|
@ -21347,8 +21092,6 @@ checkds_send_toaddr(isc_task_t *task, isc_event_t *event) {
|
|||
isc_sockaddr_t src;
|
||||
unsigned int options, timeout;
|
||||
bool have_checkdssource = false;
|
||||
bool have_checkdsdscp = false;
|
||||
isc_dscp_t dscp = -1;
|
||||
|
||||
checkds = event->ev_arg;
|
||||
REQUIRE(DNS_CHECKDS_VALID(checkds));
|
||||
|
|
@ -21433,10 +21176,6 @@ checkds_send_toaddr(isc_task_t *task, isc_event_t *event) {
|
|||
if (result == ISC_R_SUCCESS) {
|
||||
have_checkdssource = true;
|
||||
}
|
||||
dns_peer_getquerydscp(peer, &dscp);
|
||||
if (dscp != -1) {
|
||||
have_checkdsdscp = true;
|
||||
}
|
||||
result = dns_peer_getforcetcp(peer, &usetcp);
|
||||
if (result == ISC_R_SUCCESS && usetcp) {
|
||||
options |= DNS_FETCHOPT_TCP;
|
||||
|
|
@ -21448,17 +21187,11 @@ checkds_send_toaddr(isc_task_t *task, isc_event_t *event) {
|
|||
if (!have_checkdssource) {
|
||||
src = checkds->zone->parentalsrc4;
|
||||
}
|
||||
if (!have_checkdsdscp) {
|
||||
dscp = checkds->zone->parentalsrc4dscp;
|
||||
}
|
||||
break;
|
||||
case PF_INET6:
|
||||
if (!have_checkdssource) {
|
||||
src = checkds->zone->parentalsrc6;
|
||||
}
|
||||
if (!have_checkdsdscp) {
|
||||
dscp = checkds->zone->parentalsrc6dscp;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
result = ISC_R_NOTIMPLEMENTED;
|
||||
|
|
@ -21472,8 +21205,8 @@ checkds_send_toaddr(isc_task_t *task, isc_event_t *event) {
|
|||
options |= DNS_REQUESTOPT_TCP;
|
||||
result = dns_request_create(
|
||||
checkds->zone->view->requestmgr, message, &src, &checkds->dst,
|
||||
dscp, options, key, timeout * 3, timeout, 2,
|
||||
checkds->zone->task, checkds_done, checkds, &checkds->request);
|
||||
options, key, timeout * 3, timeout, 2, checkds->zone->task,
|
||||
checkds_done, checkds, &checkds->request);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_zone_log(checkds->zone, ISC_LOG_DEBUG(3),
|
||||
"checkds: dns_request_create() to %s failed: %s",
|
||||
|
|
|
|||
|
|
@ -272,20 +272,6 @@ isc_net_probeunix(void);
|
|||
* Returns whether UNIX domain sockets are supported.
|
||||
*/
|
||||
|
||||
#define ISC_NET_DSCPRECVV4 0x01 /* Can receive sent DSCP value IPv4 */
|
||||
#define ISC_NET_DSCPRECVV6 0x02 /* Can receive sent DSCP value IPv6 */
|
||||
#define ISC_NET_DSCPSETV4 0x04 /* Can set DSCP on socket IPv4 */
|
||||
#define ISC_NET_DSCPSETV6 0x08 /* Can set DSCP on socket IPv6 */
|
||||
#define ISC_NET_DSCPPKTV4 0x10 /* Can set DSCP on per packet IPv4 */
|
||||
#define ISC_NET_DSCPPKTV6 0x20 /* Can set DSCP on per packet IPv6 */
|
||||
#define ISC_NET_DSCPALL 0x3f /* All valid flags */
|
||||
|
||||
unsigned int
|
||||
isc_net_probedscp(void);
|
||||
/*%<
|
||||
* Probe the level of DSCP support.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
isc_net_getudpportrange(int af, in_port_t *low, in_port_t *high);
|
||||
/*%<
|
||||
|
|
|
|||
|
|
@ -41,13 +41,12 @@ typedef struct isc_constregion isc_constregion_t; /*%< Const region */
|
|||
typedef struct isc_consttextregion isc_consttextregion_t; /*%< Const Text Region
|
||||
*/
|
||||
typedef struct isc_counter isc_counter_t; /*%< Counter */
|
||||
typedef int16_t isc_dscp_t; /*%< Diffserv code point */
|
||||
typedef struct isc_event isc_event_t; /*%< Event */
|
||||
typedef ISC_LIST(isc_event_t) isc_eventlist_t; /*%< Event List */
|
||||
typedef unsigned int isc_eventtype_t; /*%< Event Type */
|
||||
typedef uint32_t isc_fsaccess_t; /*%< FS Access */
|
||||
typedef struct isc_hash isc_hash_t; /*%< Hash */
|
||||
typedef struct isc_httpd isc_httpd_t; /*%< HTTP client */
|
||||
typedef struct isc_event isc_event_t; /*%< Event */
|
||||
typedef ISC_LIST(isc_event_t) isc_eventlist_t; /*%< Event List */
|
||||
typedef unsigned int isc_eventtype_t; /*%< Event Type */
|
||||
typedef uint32_t isc_fsaccess_t; /*%< FS Access */
|
||||
typedef struct isc_hash isc_hash_t; /*%< Hash */
|
||||
typedef struct isc_httpd isc_httpd_t; /*%< HTTP client */
|
||||
typedef void(isc_httpdfree_t)(isc_buffer_t *, void *); /*%< HTTP free function
|
||||
*/
|
||||
typedef struct isc_httpdmgr isc_httpdmgr_t; /*%< HTTP manager */
|
||||
|
|
|
|||
338
lib/isc/net.c
338
lib/isc/net.c
|
|
@ -109,14 +109,12 @@ static isc_once_t once_ipv6pktinfo = ISC_ONCE_INIT;
|
|||
#endif /* ! ISC_CMSG_IP_TOS */
|
||||
|
||||
static isc_once_t once = ISC_ONCE_INIT;
|
||||
static isc_once_t once_dscp = ISC_ONCE_INIT;
|
||||
|
||||
static isc_result_t ipv4_result = ISC_R_NOTFOUND;
|
||||
static isc_result_t ipv6_result = ISC_R_NOTFOUND;
|
||||
static isc_result_t unix_result = ISC_R_NOTFOUND;
|
||||
static isc_result_t ipv6only_result = ISC_R_NOTFOUND;
|
||||
static isc_result_t ipv6pktinfo_result = ISC_R_NOTFOUND;
|
||||
static unsigned int dscp_result = 0;
|
||||
|
||||
static isc_result_t
|
||||
try_proto(int domain) {
|
||||
|
|
@ -346,342 +344,6 @@ isc_net_probe_ipv6pktinfo(void) {
|
|||
return (ipv6pktinfo_result);
|
||||
}
|
||||
|
||||
#if ISC_CMSG_IP_TOS || defined(IPV6_TCLASS)
|
||||
|
||||
static socklen_t
|
||||
cmsg_len(socklen_t len) {
|
||||
#ifdef CMSG_LEN
|
||||
return (CMSG_LEN(len));
|
||||
#else /* ifdef CMSG_LEN */
|
||||
socklen_t hdrlen;
|
||||
|
||||
/*
|
||||
* Cast NULL so that any pointer arithmetic performed by CMSG_DATA
|
||||
* is correct.
|
||||
*/
|
||||
hdrlen = (socklen_t)CMSG_DATA(((struct cmsghdr *)NULL));
|
||||
return (hdrlen + len);
|
||||
#endif /* ifdef CMSG_LEN */
|
||||
}
|
||||
|
||||
static socklen_t
|
||||
cmsg_space(socklen_t len) {
|
||||
#ifdef CMSG_SPACE
|
||||
return (CMSG_SPACE(len));
|
||||
#else /* ifdef CMSG_SPACE */
|
||||
struct msghdr msg;
|
||||
struct cmsghdr *cmsgp;
|
||||
/*
|
||||
* XXX: The buffer length is an ad-hoc value, but should be enough
|
||||
* in a practical sense.
|
||||
*/
|
||||
char dummybuf[sizeof(struct cmsghdr) + 1024];
|
||||
|
||||
memset(&msg, 0, sizeof(msg));
|
||||
msg.msg_control = dummybuf;
|
||||
msg.msg_controllen = sizeof(dummybuf);
|
||||
|
||||
cmsgp = (struct cmsghdr *)dummybuf;
|
||||
cmsgp->cmsg_len = cmsg_len(len);
|
||||
|
||||
cmsgp = CMSG_NXTHDR(&msg, cmsgp);
|
||||
if (cmsgp != NULL) {
|
||||
return ((char *)cmsgp - (char *)msg.msg_control);
|
||||
} else {
|
||||
return (0);
|
||||
}
|
||||
#endif /* ifdef CMSG_SPACE */
|
||||
}
|
||||
|
||||
/*
|
||||
* Make a fd non-blocking.
|
||||
*/
|
||||
static isc_result_t
|
||||
make_nonblock(int fd) {
|
||||
int ret;
|
||||
int flags;
|
||||
|
||||
#ifdef USE_FIONBIO_IOCTL
|
||||
flags = 1;
|
||||
ret = ioctl(fd, FIONBIO, (char *)&flags);
|
||||
#else /* ifdef USE_FIONBIO_IOCTL */
|
||||
flags = fcntl(fd, F_GETFL, 0);
|
||||
flags |= O_NONBLOCK;
|
||||
ret = fcntl(fd, F_SETFL, flags);
|
||||
#endif /* ifdef USE_FIONBIO_IOCTL */
|
||||
|
||||
if (ret == -1) {
|
||||
#ifdef USE_FIONBIO_IOCTL
|
||||
UNEXPECTED_SYSERROR(errno, "ioctl(%d, FIONBIO, &on)", fd);
|
||||
#else
|
||||
UNEXPECTED_SYSERROR(errno, "fcntl(%d, F_SETFL, %d)", fd, flags);
|
||||
#endif
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
static bool
|
||||
cmsgsend(int s, int level, int type, struct addrinfo *res) {
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
struct sockaddr_storage ss;
|
||||
socklen_t len = sizeof(ss);
|
||||
struct msghdr msg;
|
||||
union {
|
||||
struct cmsghdr h;
|
||||
unsigned char b[256];
|
||||
} control;
|
||||
struct cmsghdr *cmsgp;
|
||||
int dscp = (46 << 2); /* Expedited forwarding. */
|
||||
struct iovec iovec;
|
||||
char buf[1] = { 0 };
|
||||
isc_result_t result;
|
||||
|
||||
if (bind(s, res->ai_addr, res->ai_addrlen) < 0) {
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
ISC_LOGMODULE_SOCKET, ISC_LOG_DEBUG(10),
|
||||
"bind: %s", strbuf);
|
||||
return (false);
|
||||
}
|
||||
|
||||
if (getsockname(s, (struct sockaddr *)&ss, &len) < 0) {
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
ISC_LOGMODULE_SOCKET, ISC_LOG_DEBUG(10),
|
||||
"getsockname: %s", strbuf);
|
||||
return (false);
|
||||
}
|
||||
|
||||
iovec.iov_base = buf;
|
||||
iovec.iov_len = sizeof(buf);
|
||||
|
||||
memset(&msg, 0, sizeof(msg));
|
||||
msg.msg_name = (struct sockaddr *)&ss;
|
||||
msg.msg_namelen = len;
|
||||
msg.msg_iov = &iovec;
|
||||
msg.msg_iovlen = 1;
|
||||
msg.msg_control = (void *)&control;
|
||||
msg.msg_controllen = 0;
|
||||
msg.msg_flags = 0;
|
||||
|
||||
cmsgp = msg.msg_control;
|
||||
|
||||
switch (type) {
|
||||
#ifdef IP_TOS
|
||||
case IP_TOS:
|
||||
memset(cmsgp, 0, cmsg_space(sizeof(char)));
|
||||
cmsgp->cmsg_level = level;
|
||||
cmsgp->cmsg_type = type;
|
||||
cmsgp->cmsg_len = cmsg_len(sizeof(char));
|
||||
*(unsigned char *)CMSG_DATA(cmsgp) = dscp;
|
||||
msg.msg_controllen += cmsg_space(sizeof(char));
|
||||
break;
|
||||
#endif /* ifdef IP_TOS */
|
||||
#ifdef IPV6_TCLASS
|
||||
case IPV6_TCLASS:
|
||||
memset(cmsgp, 0, cmsg_space(sizeof(dscp)));
|
||||
cmsgp->cmsg_level = level;
|
||||
cmsgp->cmsg_type = type;
|
||||
cmsgp->cmsg_len = cmsg_len(sizeof(dscp));
|
||||
memmove(CMSG_DATA(cmsgp), &dscp, sizeof(dscp));
|
||||
msg.msg_controllen += cmsg_space(sizeof(dscp));
|
||||
break;
|
||||
#endif /* ifdef IPV6_TCLASS */
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
if (sendmsg(s, &msg, 0) < 0) {
|
||||
switch (errno) {
|
||||
#ifdef ENOPROTOOPT
|
||||
case ENOPROTOOPT:
|
||||
#endif /* ifdef ENOPROTOOPT */
|
||||
#ifdef EOPNOTSUPP
|
||||
case EOPNOTSUPP:
|
||||
#endif /* ifdef EOPNOTSUPP */
|
||||
case EINVAL:
|
||||
case EPERM:
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
ISC_LOGMODULE_SOCKET, ISC_LOG_DEBUG(10),
|
||||
"sendmsg: %s", strbuf);
|
||||
break;
|
||||
default:
|
||||
UNEXPECTED_SYSERROR(
|
||||
errno, "probing sendmsg() with %s=%02x failed",
|
||||
(type == IP_TOS) ? "IP_TOS" : "IPV6_TCLASS",
|
||||
dscp);
|
||||
break;
|
||||
}
|
||||
return (false);
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure the message actually got sent.
|
||||
*/
|
||||
result = make_nonblock(s);
|
||||
RUNTIME_CHECK(result == ISC_R_SUCCESS);
|
||||
|
||||
iovec.iov_base = buf;
|
||||
iovec.iov_len = sizeof(buf);
|
||||
|
||||
memset(&msg, 0, sizeof(msg));
|
||||
msg.msg_name = (struct sockaddr *)&ss;
|
||||
msg.msg_namelen = sizeof(ss);
|
||||
msg.msg_iov = &iovec;
|
||||
msg.msg_iovlen = 1;
|
||||
msg.msg_control = NULL;
|
||||
msg.msg_controllen = 0;
|
||||
msg.msg_flags = 0;
|
||||
|
||||
if (recvmsg(s, &msg, 0) < 0) {
|
||||
return (false);
|
||||
}
|
||||
|
||||
return (true);
|
||||
}
|
||||
#endif /* if ISC_CMSG_IP_TOS || defined(IPV6_TCLASS) */
|
||||
|
||||
static void
|
||||
try_dscp_v4(void) {
|
||||
#ifdef IP_TOS
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
struct addrinfo hints, *res0;
|
||||
int s, dscp = 0, n;
|
||||
#ifdef IP_RECVTOS
|
||||
int on = 1;
|
||||
#endif /* IP_RECVTOS */
|
||||
|
||||
memset(&hints, 0, sizeof(hints));
|
||||
hints.ai_family = AF_INET;
|
||||
hints.ai_socktype = SOCK_DGRAM;
|
||||
hints.ai_protocol = IPPROTO_UDP;
|
||||
#ifdef AI_NUMERICHOST
|
||||
hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
|
||||
#else /* ifdef AI_NUMERICHOST */
|
||||
hints.ai_flags = AI_PASSIVE;
|
||||
#endif /* ifdef AI_NUMERICHOST */
|
||||
|
||||
n = getaddrinfo("127.0.0.1", NULL, &hints, &res0);
|
||||
if (n != 0 || res0 == NULL) {
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
ISC_LOGMODULE_SOCKET, ISC_LOG_DEBUG(10),
|
||||
"getaddrinfo(127.0.0.1): %s", gai_strerror(n));
|
||||
return;
|
||||
}
|
||||
|
||||
s = socket(res0->ai_family, res0->ai_socktype, res0->ai_protocol);
|
||||
if (s == -1) {
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
ISC_LOGMODULE_SOCKET, ISC_LOG_DEBUG(10),
|
||||
"socket: %s", strbuf);
|
||||
freeaddrinfo(res0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (setsockopt(s, IPPROTO_IP, IP_TOS, &dscp, sizeof(dscp)) == 0) {
|
||||
dscp_result |= ISC_NET_DSCPSETV4;
|
||||
}
|
||||
|
||||
#ifdef IP_RECVTOS
|
||||
on = 1;
|
||||
if (setsockopt(s, IPPROTO_IP, IP_RECVTOS, &on, sizeof(on)) == 0) {
|
||||
dscp_result |= ISC_NET_DSCPRECVV4;
|
||||
}
|
||||
#endif /* IP_RECVTOS */
|
||||
|
||||
#if ISC_CMSG_IP_TOS
|
||||
if (cmsgsend(s, IPPROTO_IP, IP_TOS, res0)) {
|
||||
dscp_result |= ISC_NET_DSCPPKTV4;
|
||||
}
|
||||
#endif /* ISC_CMSG_IP_TOS */
|
||||
|
||||
freeaddrinfo(res0);
|
||||
close(s);
|
||||
|
||||
#endif /* IP_TOS */
|
||||
}
|
||||
|
||||
static void
|
||||
try_dscp_v6(void) {
|
||||
#ifdef IPV6_TCLASS
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
struct addrinfo hints, *res0;
|
||||
int s, dscp = 0, n;
|
||||
#if defined(IPV6_RECVTCLASS)
|
||||
int on = 1;
|
||||
#endif /* IPV6_RECVTCLASS */
|
||||
|
||||
memset(&hints, 0, sizeof(hints));
|
||||
hints.ai_family = AF_INET6;
|
||||
hints.ai_socktype = SOCK_DGRAM;
|
||||
hints.ai_protocol = IPPROTO_UDP;
|
||||
#ifdef AI_NUMERICHOST
|
||||
hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
|
||||
#else /* ifdef AI_NUMERICHOST */
|
||||
hints.ai_flags = AI_PASSIVE;
|
||||
#endif /* ifdef AI_NUMERICHOST */
|
||||
|
||||
n = getaddrinfo("::1", NULL, &hints, &res0);
|
||||
if (n != 0 || res0 == NULL) {
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
ISC_LOGMODULE_SOCKET, ISC_LOG_DEBUG(10),
|
||||
"getaddrinfo(::1): %s", gai_strerror(n));
|
||||
return;
|
||||
}
|
||||
|
||||
s = socket(res0->ai_family, res0->ai_socktype, res0->ai_protocol);
|
||||
if (s == -1) {
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
ISC_LOGMODULE_SOCKET, ISC_LOG_DEBUG(10),
|
||||
"socket: %s", strbuf);
|
||||
freeaddrinfo(res0);
|
||||
return;
|
||||
}
|
||||
if (setsockopt(s, IPPROTO_IPV6, IPV6_TCLASS, &dscp, sizeof(dscp)) == 0)
|
||||
{
|
||||
dscp_result |= ISC_NET_DSCPSETV6;
|
||||
}
|
||||
|
||||
#ifdef IPV6_RECVTCLASS
|
||||
on = 1;
|
||||
if (setsockopt(s, IPPROTO_IPV6, IPV6_RECVTCLASS, &on, sizeof(on)) == 0)
|
||||
{
|
||||
dscp_result |= ISC_NET_DSCPRECVV6;
|
||||
}
|
||||
#endif /* IPV6_RECVTCLASS */
|
||||
|
||||
if (cmsgsend(s, IPPROTO_IPV6, IPV6_TCLASS, res0)) {
|
||||
dscp_result |= ISC_NET_DSCPPKTV6;
|
||||
}
|
||||
|
||||
freeaddrinfo(res0);
|
||||
close(s);
|
||||
|
||||
#endif /* IPV6_TCLASS */
|
||||
}
|
||||
|
||||
static void
|
||||
try_dscp(void) {
|
||||
try_dscp_v4();
|
||||
try_dscp_v6();
|
||||
}
|
||||
|
||||
static void
|
||||
initialize_dscp(void) {
|
||||
RUNTIME_CHECK(isc_once_do(&once_dscp, try_dscp) == ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
unsigned int
|
||||
isc_net_probedscp(void) {
|
||||
initialize_dscp();
|
||||
return (dscp_result);
|
||||
}
|
||||
|
||||
#if defined(USE_SYSCTL_PORTRANGE)
|
||||
#if defined(HAVE_SYSCTLBYNAME)
|
||||
static isc_result_t
|
||||
|
|
|
|||
|
|
@ -130,13 +130,6 @@ static const isc_statscounter_t unixstatsindex[] = {
|
|||
|
||||
static thread_local int isc__nm_tid_v = ISC_NETMGR_TID_UNKNOWN;
|
||||
|
||||
/*
|
||||
* Set by the -T dscp option on the command line. If set to a value
|
||||
* other than -1, we check to make sure DSCP values match it, and
|
||||
* assert if not. (Not currently in use.)
|
||||
*/
|
||||
int isc_dscp_check_value = -1;
|
||||
|
||||
static void
|
||||
nmsocket_maybe_destroy(isc_nmsocket_t *sock FLARG);
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -406,20 +406,6 @@ cfg_obj_assockaddr(const cfg_obj_t *obj);
|
|||
* if necessary.
|
||||
*/
|
||||
|
||||
isc_dscp_t
|
||||
cfg_obj_getdscp(const cfg_obj_t *obj);
|
||||
/*%<
|
||||
* Returns the DSCP value of a configuration object representing a
|
||||
* socket address.
|
||||
*
|
||||
* Requires:
|
||||
* \li 'obj' points to a valid configuration object of a
|
||||
* socket address type.
|
||||
*
|
||||
* Returns:
|
||||
* \li DSCP value associated with a sockaddr, or -1.
|
||||
*/
|
||||
|
||||
bool
|
||||
cfg_obj_isnetprefix(const cfg_obj_t *obj);
|
||||
/*%<
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue