"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 "
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;
.. 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
.section_authority = true,
.section_additional = true,
.ednsneg = true,
- .dscp = -1,
};
dns_fixedname_init(&looknew->fdomain);
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;
&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)
char *cookie;
dns_ednsopt_t *ednsopts;
unsigned int ednsoptscnt;
- isc_dscp_t dscp;
unsigned int ednsflags;
dns_opcode_t opcode;
int rrcomments;
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");
}
}
- 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;
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);
}
*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
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);
REQUIRE(ipkl->addrs == NULL);
REQUIRE(ipkl->keys == NULL);
REQUIRE(ipkl->tlss == NULL);
- REQUIRE(ipkl->dscps == NULL);
REQUIRE(ipkl->labels == NULL);
REQUIRE(ipkl->allocated == 0);
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);
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);
*/
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) {
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);
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;
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) {
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 {
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,
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);
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);
#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;
/*
* 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")) {
*/
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:
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!
*/
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));
}
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));
}
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));
}
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;
* 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"
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.
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);
}
}
- /*
- * 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");
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);
}
"port");
}
- /*
- * Determining the default DSCP code point.
- */
- CHECKM(named_config_getdscp(config, &named_g_dscp), "dscp");
-
/*
* Find the listen queue depth.
*/
* 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,
* 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,
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,
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,
#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,
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;
}
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) {
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));
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));
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));
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));
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));
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));
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) {
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);
}
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");
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);
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:");
dialup \
dlzexternal \
dns64 \
- dscp \
dsdigest \
dupsigs \
dyndb \
options {
port 999999;
- dscp 222;
- listen-on port 100 dscp 444 {
- 127.0.0.1/32;
- };
-};
-
-zone "example" {
- type primary;
- file "example.db";
};
digdelv
dlz
dns64
-dscp
dsdigest
ecdsa
eddsa
};
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; };
*/
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; };
};
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; };
*/
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; };
*/
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; };
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
// 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; };
// 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; };
+++ /dev/null
-#!/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*
+++ /dev/null
--m record -c named.conf -d 99 -D dscp-ns1 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
+++ /dev/null
-/*
- * 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";
-};
+++ /dev/null
-; 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
+++ /dev/null
--m record -c named.conf -d 99 -D dscp-ns2 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
+++ /dev/null
-/*
- * 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; };
-};
+++ /dev/null
-; 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
+++ /dev/null
--m record -c named.conf -d 99 -D dscp-ns3 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
+++ /dev/null
-/*
- * 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";
-};
+++ /dev/null
--m record -c named.conf -d 99 -D dscp-ns4 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
+++ /dev/null
-/*
- * 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";
-};
+++ /dev/null
-; 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
+++ /dev/null
--m record -c named.conf -d 99 -D dscp-ns5 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
+++ /dev/null
-/*
- * 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; };
-};
+++ /dev/null
-; 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
+++ /dev/null
--m record -c named.conf -d 99 -D dscp-ns6 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
+++ /dev/null
-/*
- * 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";
-};
+++ /dev/null
--m record -c named.conf -d 99 -D dscp-ns7 -X named.lock -g -U 4 -T maxcachesize=2097152 -T dscp=46
+++ /dev/null
-/*
- * 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; };
-};
+++ /dev/null
-#!/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
+++ /dev/null
-#!/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
};
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; };
};
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; };
*/
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";
*/
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; };
// 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; };
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);
*/
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; };
// 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; };
// 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; };
// 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; };
// 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; };
// 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; };
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);
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);
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];
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);
" -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"
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;
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
``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.
.. 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
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.
+++ /dev/null
-<!--
-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.
.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
.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
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>;
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 );
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>;
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
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>;
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 {
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>;
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>;
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>;
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
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 );
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>;
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>;
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>;
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>;
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>;
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
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>;
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>;
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>;
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>;
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>;
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
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>;
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>;
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
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> );
};
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>; ... };
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>;
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> );
};
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> ]; ... };
};
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>;
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>;
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>;
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 );
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>;
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
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>;
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 {
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>;
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>;
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>;
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
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 );
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>;
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>;
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>;
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>;
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>;
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
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>;
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>;
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>;
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> );
};
};
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> | * );
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>;
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>;
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
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>; ... };
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>;
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> );
};
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;
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;
}
}
- 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) {
}
}
- 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) {
ai->srtt = entry->srtt;
ai->flags = entry->flags;
ai->entry = entry;
- ai->dscp = -1;
ISC_LINK_INIT(ai, publink);
return (ai);
}
}
- /* xxxwpk TODO compare dscps! */
return (true);
}
* 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
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));
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++) {
/*
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);
}
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:
{
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);
}
isc_sockaddr_t sockaddr; /*%< [rw] */
unsigned int srtt; /*%< [rw] microsecs */
- isc_dscp_t dscp;
unsigned int flags; /*%< [rw] */
dns_adbentry_t *entry; /*%< private */
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.
*
*/
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.
struct dns_forwarder {
isc_sockaddr_t addr;
- isc_dscp_t dscp;
ISC_LINK(dns_forwarder_t) link;
};
#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;
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);
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.
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.
* \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
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'
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'.
*\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
*\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);
/*%<
*\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);
/*%<
*\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);
/*%<
*\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);
/*%<
*\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);
/*%<
ipkl->count = 0;
ipkl->allocated = 0;
ipkl->addrs = NULL;
- ipkl->dscps = NULL;
ipkl->keys = NULL;
ipkl->tlss = NULL;
ipkl->labels = NULL;
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) {
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) {
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;
}
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 *));
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 *));
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 *));
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 */
#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);
}
}
-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));
isc_sockaddr_t destaddr;
unsigned int timeout;
unsigned int udpcount;
- isc_dscp_t dscp;
};
#define DNS_REQUEST_F_CONNECTING 0x0001
/* 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
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);
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) {
}
result = dns_dispatch_createtcp(requestmgr->dispatchmgr, srcaddr,
- destaddr, dscp, dispatchp);
+ destaddr, dispatchp);
return (result);
}
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);
}
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;
}
request->udpcount = udpretries;
- request->dscp = dscp;
request->event = (dns_requestevent_t *)isc_event_allocate(
mctx, task, DNS_EVENT_REQUESTDONE, action, arg,
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;
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;
}
request->udpcount = udpretries;
- request->dscp = dscp;
request->event = (dns_requestevent_t *)isc_event_allocate(
mctx, task, DNS_EVENT_REQUESTDONE, action, arg,
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;
isc_buffer_t buffer;
isc_buffer_t *tsig;
dns_tsigkey_t *tsigkey;
- isc_dscp_t dscp;
int ednsversion;
unsigned int options;
unsigned int attributes;
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;
isc_sockaddr_t addr;
bool have_addr = false;
unsigned int srtt;
- isc_dscp_t dscp = -1;
FCTXTRACE("query");
query = isc_mem_get(fctx->mctx, sizeof(*query));
*query = (resquery_t){ .mctx = fctx->mctx,
.options = options,
- .dscp = addrinfo->dscp,
.addrinfo = addrinfo,
.dispatchmgr = res->dispatchmgr };
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;
}
}
- dscp = -1;
if ((query->options & DNS_FETCHOPT_TCP) != 0) {
int pf;
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;
}
}
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;
}
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) {
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;
}
}
- 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
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");
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);
.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);
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));
* may differ due to IXFR->AXFR fallback.
*/
dns_rdatatype_t reqtype;
- isc_dscp_t dscp;
isc_sockaddr_t primaryaddr;
isc_sockaddr_t sourceaddr;
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);
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;
}
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) {
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));
.shutdown_result = ISC_R_UNSET,
.rdclass = rdclass,
.reqtype = reqtype,
- .dscp = dscp,
.id = (dns_messageid_t)isc_random16(),
.maxrecords = dns_zone_getmaxrecords(zone),
.primaryaddr = *primaryaddr,
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,
uint32_t maxrecords;
isc_sockaddr_t *primaries;
- isc_dscp_t *primarydscps;
dns_name_t **primarykeynames;
dns_name_t **primarytlsnames;
bool *primariesok;
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;
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;
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 */
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;
};
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;
};
struct stub_cb_args {
dns_stub_t *stub;
dns_tsigkey_t *tsig_key;
- isc_dscp_t dscp;
uint16_t udpsize;
int timeout;
bool reqnsid;
.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,
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);
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));
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) {
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) {
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));
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));
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));
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));
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) {
}
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);
*countp = 0;
addrs = *addrsp;
*addrsp = NULL;
- dscps = *dscpsp;
- *dscpsp = NULL;
keynames = *keynamesp;
*keynamesp = NULL;
tlsnames = *tlsnamesp;
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++) {
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++) {
}
}
- *newdscpp = newdscp;
*newaddrsp = newaddrs;
*newkeynamesp = newkeynames;
*newtlsnamesp = newtlsnames;
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;
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;
/*
* 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;
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;
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
/*
* 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.
zone->curprimary = 0;
zone->primariesok = newok;
zone->primaries = newaddrs;
- zone->primarydscps = newdscps;
zone->primarykeynames = newkeynames;
zone->primarytlsnames = newtlsnames;
zone->primariescnt = 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;
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
/*
* 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;
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));
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;
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;
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) {
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) {
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));
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) {
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);
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:
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:
}
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);
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));
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);
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:
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",
isc_sockaddr_t primaryaddr;
isc_time_t now;
const char *soa_before = "";
- isc_dscp_t dscp = -1;
bool loaded;
UNUSED(task);
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));
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));
sendtoprimary(dns_forward_t *forward) {
isc_result_t result;
isc_sockaddr_t src;
- isc_dscp_t dscp = -1;
LOCK_ZONE(forward->zone);
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;
}
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)) {
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));
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;
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;
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",
* 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);
/*%<
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 */
#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) {
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
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
* 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);
/*%<
isc_sockaddr_t sockaddr;
struct {
isc_sockaddr_t sockaddr;
- isc_dscp_t dscp;
+ int32_t dscp;
} sockaddrdscp;
cfg_netprefix_t netprefix;
isccfg_duration_t duration;
isc_result_t
cfg_parse_rawport(cfg_parser_t *pctx, unsigned int flags, in_port_t *port);
-isc_result_t
-cfg_parse_dscp(cfg_parser_t *pctx, isc_dscp_t *dscp);
-
isc_result_t
cfg_parse_sockaddr(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret);
static cfg_tuplefielddef_t listenon_tuple_fields[] = {
{ "port", &cfg_type_optional_port, 0 },
- { "dscp", &cfg_type_uint32, 0 },
+ { "dscp", &cfg_type_uint32,
+ CFG_CLAUSEFLAG_OBSOLETE | CFG_CLAUSEFLAG_NODOC },
{ "tls", &cfg_type_astring, 0 },
#if HAVE_LIBNGHTTP2
{ "http", &cfg_type_astring, 0 },
static cfg_tuplefielddef_t remotes_fields[] = {
{ "name", &cfg_type_astring, 0 },
{ "port", &cfg_type_optional_port, 0 },
- { "dscp", &cfg_type_optional_dscp, 0 },
+ { "dscp", &cfg_type_optional_dscp, CFG_CLAUSEFLAG_OBSOLETE },
{ "addresses", &cfg_type_bracketed_namesockaddrkeylist, 0 },
{ NULL, NULL, 0 }
};
static cfg_tuplefielddef_t namesockaddrkeylist_fields[] = {
{ "port", &cfg_type_optional_port, 0 },
- { "dscp", &cfg_type_optional_dscp, 0 },
+ { "dscp", &cfg_type_optional_dscp, CFG_CLAUSEFLAG_OBSOLETE },
{ "addresses", &cfg_type_bracketed_namesockaddrkeylist, 0 },
{ NULL, NULL, 0 }
};
*/
static cfg_tuplefielddef_t portiplist_fields[] = {
{ "port", &cfg_type_optional_port, 0 },
- { "dscp", &cfg_type_optional_dscp, 0 },
+ { "dscp", &cfg_type_optional_dscp, CFG_CLAUSEFLAG_OBSOLETE },
{ "addresses", &cfg_type_bracketed_dscpsockaddrlist, 0 },
{ NULL, NULL, 0 }
};
static keyword_type_t dscp_kw = { "dscp", &cfg_type_uint32 };
static cfg_type_t cfg_type_optional_dscp = {
- "optional_dscp", parse_optional_keyvalue, print_keyvalue,
- doc_optional_keyvalue, &cfg_rep_uint32, &dscp_kw
+ "optional_dscp", parse_optional_keyvalue, print_keyvalue,
+ cfg_doc_void, &cfg_rep_uint32, &dscp_kw
};
static keyword_type_t port_kw = { "port", &cfg_type_uint32 };
{ "dnstap-version", &cfg_type_qstringornone,
CFG_CLAUSEFLAG_NOTCONFIGURED },
#endif /* ifdef HAVE_DNSTAP */
- { "dscp", &cfg_type_uint32, 0 },
+ { "dscp", &cfg_type_uint32, CFG_CLAUSEFLAG_OBSOLETE },
{ "dump-file", &cfg_type_qstring, 0 },
{ "fake-iquery", NULL, CFG_CLAUSEFLAG_ANCIENT },
{ "files", &cfg_type_size, CFG_CLAUSEFLAG_DEPRECATED },
cfg_obj_t *obj = NULL;
isc_netaddr_t netaddr;
in_port_t port = 0;
- isc_dscp_t dscp = -1;
unsigned int have_address = 0;
unsigned int have_port = 0;
unsigned int have_dscp = 0;
const unsigned int *flagp = type->of;
+ int dscp = -1;
if ((*flagp & CFG_ADDR_V4OK) != 0) {
isc_netaddr_any(&netaddr);
} else if (strcasecmp(TOKEN_STRING(pctx), "dscp") == 0)
{
/* read "dscp" */
+ cfg_parser_warning(pctx, 0,
+ "'dscp' is obsolete and "
+ "should be removed");
CHECK(cfg_gettoken(pctx, 0));
- CHECK(cfg_parse_dscp(pctx, &dscp));
+ CHECK(cfg_parse_uint32(pctx, NULL, &obj));
+ dscp = cfg_obj_asuint32(obj);
+ cfg_obj_destroy(pctx, &obj);
have_dscp++;
} else if (have_port == 0 && have_dscp == 0 &&
have_address == 0)
return (cfg_parse_sockaddr(pctx, type, ret));
} else {
cfg_parser_error(pctx, CFG_LOG_NEAR,
- "expected 'address', 'port', "
- "or 'dscp'");
+ "expected 'address' "
+ "or 'port'");
return (ISC_R_UNEXPECTEDTOKEN);
}
} else {
} else {
UNREACHABLE();
}
- cfg_print_cstr(pctx, " | * ) ] port ( <integer> | * ) ) )"
- " [ dscp <integer> ]");
+ cfg_print_cstr(pctx, " | * ) ] port ( <integer> | * ) ) )");
}
static unsigned int sockaddr4wild_flags = CFG_ADDR_WILDOK | CFG_ADDR_V4OK |
print_logfile, doc_logfile,
&cfg_rep_tuple, logfile_fields };
-/*% An IPv4 address with optional dscp and port, "*" accepted as wildcard. */
+/*% An IPv4 address with optional port, "*" accepted as wildcard. */
static cfg_type_t cfg_type_sockaddr4wild = {
"sockaddr4wild", cfg_parse_sockaddr, cfg_print_sockaddr,
cfg_doc_sockaddr, &cfg_rep_sockaddr, &sockaddr4wild_flags
static cfg_tuplefielddef_t nameport_fields[] = {
{ "name", &cfg_type_astring, 0 },
{ "port", &cfg_type_optional_port, 0 },
- { "dscp", &cfg_type_optional_dscp, 0 },
+ { "dscp", &cfg_type_optional_dscp, CFG_CLAUSEFLAG_OBSOLETE },
{ NULL, NULL, 0 }
};
cfg_print_cstr(pctx, "<quoted_string>");
cfg_print_cstr(pctx, " ");
cfg_print_cstr(pctx, "[ port <integer> ]");
- cfg_print_cstr(pctx, " ");
- cfg_print_cstr(pctx, "[ dscp <integer> ]");
cfg_print_cstr(pctx, " | ");
cfg_print_cstr(pctx, "<ipv4_address>");
cfg_print_cstr(pctx, " ");
cfg_print_cstr(pctx, "[ port <integer> ]");
- cfg_print_cstr(pctx, " ");
- cfg_print_cstr(pctx, "[ dscp <integer> ]");
cfg_print_cstr(pctx, " | ");
cfg_print_cstr(pctx, "<ipv6_address>");
cfg_print_cstr(pctx, " ");
cfg_print_cstr(pctx, "[ port <integer> ]");
- cfg_print_cstr(pctx, " ");
- cfg_print_cstr(pctx, "[ dscp <integer> ]");
cfg_print_cstr(pctx, " )");
}
isc_buffer_usedlength(&buf));
}
-isc_result_t
-cfg_parse_dscp(cfg_parser_t *pctx, isc_dscp_t *dscp) {
- isc_result_t result;
-
- REQUIRE(pctx != NULL);
- REQUIRE(dscp != NULL);
-
- CHECK(cfg_gettoken(pctx, ISC_LEXOPT_NUMBER | ISC_LEXOPT_CNUMBER));
-
- if (pctx->token.type != isc_tokentype_number) {
- cfg_parser_error(pctx, CFG_LOG_NEAR, "expected number");
- return (ISC_R_UNEXPECTEDTOKEN);
- }
- if (pctx->token.value.as_ulong > 63U) {
- cfg_parser_error(pctx, CFG_LOG_NEAR, "dscp out of range");
- return (ISC_R_RANGE);
- }
- *dscp = (isc_dscp_t)(pctx->token.value.as_ulong);
- return (ISC_R_SUCCESS);
-cleanup:
- return (result);
-}
-
/* netaddr */
static unsigned int netaddr_flags = CFG_ADDR_V4OK | CFG_ADDR_V6OK;
isc_result_t result;
isc_netaddr_t netaddr;
in_port_t port = 0;
- isc_dscp_t dscp = -1;
cfg_obj_t *obj = NULL;
int have_port = 0, have_dscp = 0;
+ cfg_obj_t *dscp = NULL;
CHECK(cfg_create_obj(pctx, type, &obj));
CHECK(cfg_parse_rawaddr(pctx, flags, &netaddr));
+ obj->value.sockaddrdscp.dscp = -1;
for (;;) {
CHECK(cfg_peektoken(pctx, 0));
if (pctx->token.type == isc_tokentype_string) {
} else if ((flags & CFG_ADDR_DSCPOK) != 0 &&
strcasecmp(TOKEN_STRING(pctx), "dscp") == 0)
{
+ cfg_parser_warning(pctx, 0,
+ "'dscp' is obsolete and "
+ "should be removed");
CHECK(cfg_gettoken(pctx, 0)); /* read "dscp" */
- CHECK(cfg_parse_dscp(pctx, &dscp));
+ CHECK(cfg_parse_uint32(pctx, NULL, &dscp));
+ obj->value.sockaddrdscp.dscp =
+ cfg_obj_asuint32(dscp);
+ cfg_obj_destroy(pctx, &dscp);
++have_dscp;
} else {
break;
goto cleanup;
}
isc_sockaddr_fromnetaddr(&obj->value.sockaddr, &netaddr, port);
- obj->value.sockaddrdscp.dscp = dscp;
*ret = obj;
return (ISC_R_SUCCESS);
} else {
cfg_print_cstr(pctx, "[ port <integer> ]");
}
- if ((*flagp & CFG_ADDR_DSCPOK) != 0) {
- cfg_print_cstr(pctx, " [ dscp <integer> ]");
- }
}
bool
return (&obj->value.sockaddr);
}
-isc_dscp_t
-cfg_obj_getdscp(const cfg_obj_t *obj) {
- REQUIRE(obj != NULL && obj->type->rep == &cfg_rep_sockaddr);
- return (obj->value.sockaddrdscp.dscp);
-}
-
isc_result_t
cfg_gettoken(cfg_parser_t *pctx, int options) {
isc_result_t result;
dns_ecs_t ecs; /*%< EDNS client subnet sent by client */
struct in6_pktinfo pktinfo;
- isc_dscp_t dscp;
/*%
* Information about recent FORMERR response(s), for
* FORMERR loop avoidance. This is separate for each
isc_nmsocket_t *http_listensocket;
isc_nmsocket_t *http_secure_listensocket;
isc_quota_t *http_quota;
- isc_dscp_t dscp; /*%< "listen-on" DSCP value */
isc_refcount_t ntcpaccepting; /*%< Number of clients
* ready to accept new
* TCP connections on this
isc_mem_t *mctx;
in_port_t port;
bool is_http;
- isc_dscp_t dscp; /* -1 = not set, 0..63 */
dns_acl_t *acl;
isc_tlsctx_t *sslctx;
isc_tlsctx_cache_t *sslctx_cache;
***/
isc_result_t
-ns_listenelt_create(isc_mem_t *mctx, in_port_t port, isc_dscp_t dscp,
- dns_acl_t *acl, const uint16_t family, bool tls,
+ns_listenelt_create(isc_mem_t *mctx, in_port_t port, dns_acl_t *acl,
+ const uint16_t family, bool tls,
const ns_listen_tls_params_t *tls_params,
isc_tlsctx_cache_t *tlsctx_cache, ns_listenelt_t **target);
/*%<
*/
isc_result_t
-ns_listenelt_create_http(isc_mem_t *mctx, in_port_t http_port, isc_dscp_t dscp,
- dns_acl_t *acl, const uint16_t family, bool tls,
+ns_listenelt_create_http(isc_mem_t *mctx, in_port_t http_port, dns_acl_t *acl,
+ const uint16_t family, bool tls,
const ns_listen_tls_params_t *tls_params,
isc_tlsctx_cache_t *tlsctx_cache, char **endpoints,
size_t nendpoints, const uint32_t max_clients,
*/
isc_result_t
-ns_listenlist_default(isc_mem_t *mctx, in_port_t port, isc_dscp_t dscp,
- bool enabled, const uint16_t family,
- ns_listenlist_t **target);
+ns_listenlist_default(isc_mem_t *mctx, in_port_t port, bool enabled,
+ const uint16_t family, ns_listenlist_t **target);
/*%<
* Create a listen-on list with default contents, matching
* all addresses with port 'port' (if 'enabled' is true),
REQUIRE(NS_INTERFACEMGR_VALID(mgr));
ifp = isc_mem_get(mgr->mctx, sizeof(*ifp));
- *ifp = (ns_interface_t){ .generation = mgr->generation,
- .addr = *addr,
- .dscp = -1 };
+ *ifp = (ns_interface_t){ .generation = mgr->generation, .addr = *addr };
strlcpy(ifp->name, name, sizeof(ifp->name));
isc_result_totext(result));
}
-#if 0
- if (ifp->dscp != -1) {
- isc_socket_dscp(ifp->tcpsocket,ifp->dscp);
- }
-
- (void)isc_socket_filter(ifp->tcpsocket,"dataready");
-#endif /* if 0 */
return (result);
}
REQUIRE(!LISTENING(ifp));
}
- ifp->dscp = elt->dscp;
ifp->flags |= NS_INTERFACEFLAG_LISTENING;
if (elt->is_http) {
ifp = find_matching_interface(mgr, &listen_addr);
if (ifp != NULL) {
ifp->generation = mgr->generation;
- if (le->dscp != -1 && ifp->dscp == -1) {
- ifp->dscp = le->dscp;
- } else if (le->dscp != ifp->dscp) {
- isc_sockaddr_format(&listen_addr, sabuf,
- sizeof(sabuf));
- isc_log_write(IFMGR_COMMON_LOGARGS,
- ISC_LOG_WARNING,
- "%s: conflicting DSCP "
- "values, using %d",
- sabuf, ifp->dscp);
- }
if (LISTENING(ifp)) {
if (config) {
update_listener_configuration(
ifp = find_matching_interface(mgr, &listen_sockaddr);
if (ifp != NULL) {
ifp->generation = mgr->generation;
- if (le->dscp != -1 && ifp->dscp == -1) {
- ifp->dscp = le->dscp;
- } else if (le->dscp != ifp->dscp) {
- isc_sockaddr_format(&listen_sockaddr,
- sabuf,
- sizeof(sabuf));
- isc_log_write(IFMGR_COMMON_LOGARGS,
- ISC_LOG_WARNING,
- "%s: conflicting DSCP "
- "values, using %d",
- sabuf, ifp->dscp);
- }
if (LISTENING(ifp)) {
if (config) {
update_listener_configuration(
destroy(ns_listenlist_t *list);
static isc_result_t
-listenelt_create(isc_mem_t *mctx, in_port_t port, isc_dscp_t dscp,
- dns_acl_t *acl, const uint16_t family, const bool is_http,
- bool tls, const ns_listen_tls_params_t *tls_params,
+listenelt_create(isc_mem_t *mctx, in_port_t port, dns_acl_t *acl,
+ const uint16_t family, const bool is_http, bool tls,
+ const ns_listen_tls_params_t *tls_params,
isc_tlsctx_cache_t *tlsctx_cache, ns_listenelt_t **target) {
ns_listenelt_t *elt = NULL;
isc_result_t result = ISC_R_SUCCESS;
ISC_LINK_INIT(elt, link);
elt->port = port;
elt->is_http = false;
- elt->dscp = dscp;
elt->acl = acl;
elt->sslctx = sslctx;
elt->sslctx_cache = NULL;
}
isc_result_t
-ns_listenelt_create(isc_mem_t *mctx, in_port_t port, isc_dscp_t dscp,
- dns_acl_t *acl, const uint16_t family, bool tls,
+ns_listenelt_create(isc_mem_t *mctx, in_port_t port, dns_acl_t *acl,
+ const uint16_t family, bool tls,
const ns_listen_tls_params_t *tls_params,
isc_tlsctx_cache_t *tlsctx_cache, ns_listenelt_t **target) {
- return listenelt_create(mctx, port, dscp, acl, family, false, tls,
- tls_params, tlsctx_cache, target);
+ return listenelt_create(mctx, port, acl, family, false, tls, tls_params,
+ tlsctx_cache, target);
}
isc_result_t
-ns_listenelt_create_http(isc_mem_t *mctx, in_port_t http_port, isc_dscp_t dscp,
- dns_acl_t *acl, const uint16_t family, bool tls,
+ns_listenelt_create_http(isc_mem_t *mctx, in_port_t http_port, dns_acl_t *acl,
+ const uint16_t family, bool tls,
const ns_listen_tls_params_t *tls_params,
isc_tlsctx_cache_t *tlsctx_cache, char **endpoints,
size_t nendpoints, const uint32_t max_clients,
REQUIRE(endpoints != NULL && *endpoints != NULL);
REQUIRE(nendpoints > 0);
- result = listenelt_create(mctx, http_port, dscp, acl, family, true, tls,
+ result = listenelt_create(mctx, http_port, acl, family, true, tls,
tls_params, tlsctx_cache, target);
if (result == ISC_R_SUCCESS) {
(*target)->is_http = true;
}
isc_result_t
-ns_listenlist_default(isc_mem_t *mctx, in_port_t port, isc_dscp_t dscp,
- bool enabled, const uint16_t family,
- ns_listenlist_t **target) {
+ns_listenlist_default(isc_mem_t *mctx, in_port_t port, bool enabled,
+ const uint16_t family, ns_listenlist_t **target) {
isc_result_t result;
dns_acl_t *acl = NULL;
ns_listenelt_t *elt = NULL;
goto cleanup;
}
- result = ns_listenelt_create(mctx, port, dscp, acl, family, false, NULL,
- NULL, &elt);
+ result = ns_listenelt_create(mctx, port, acl, family, false, NULL, NULL,
+ &elt);
if (result != ISC_R_SUCCESS) {
goto cleanup_acl;
}
name_test \
nsec3_test \
nsec3param_test \
- peer_test \
private_test \
rbt_test \
rbtdb_test \
UNUSED(eresult);
UNUSED(region);
- dns_dispatch_send(dispentry, r, -1);
+ dns_dispatch_send(dispentry, r);
}
static void
assert_int_equal(result, ISC_R_SUCCESS);
result = dns_dispatch_createtcp(dispatchmgr, &tcp_connect_addr,
- &tcp_server_addr, -1, &dispatch);
+ &tcp_server_addr, &dispatch);
assert_int_equal(result, ISC_R_SUCCESS);
region.base = rbuf;
assert_int_equal(result, ISC_R_SUCCESS);
result = dns_dispatch_createtcp(dispatchmgr, &tcp_connect_addr,
- &tcp_server_addr, -1, &dispatch);
+ &tcp_server_addr, &dispatch);
assert_int_equal(result, ISC_R_SUCCESS);
result = isc_nm_listentcpdns(netmgr, &tcp_server_addr, noop_nameserver,
assert_int_equal(result, ISC_R_SUCCESS);
result = dns_dispatch_createtcp(dispatchmgr, &tcp_connect_addr,
- &tcp_server_addr, -1, &dispatch);
+ &tcp_server_addr, &dispatch);
assert_int_equal(result, ISC_R_SUCCESS);
result = isc_nm_listentcpdns(netmgr, &tcp_server_addr, nameserver, NULL,
+++ /dev/null
-/*
- * 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.
- */
-
-#include <sched.h> /* IWYU pragma: keep */
-#include <setjmp.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#define UNIT_TESTING
-#include <cmocka.h>
-
-#include <isc/util.h>
-
-#include <dns/peer.h>
-
-#include <tests/dns.h>
-
-/* Test DSCP set/get functions */
-ISC_RUN_TEST_IMPL(dscp) {
- isc_result_t result;
- isc_netaddr_t netaddr;
- struct in_addr ina;
- dns_peer_t *peer = NULL;
- isc_dscp_t dscp;
-
- /*
- * Create peer structure for the loopback address.
- */
- ina.s_addr = INADDR_LOOPBACK;
- isc_netaddr_fromin(&netaddr, &ina);
- result = dns_peer_new(mctx, &netaddr, &peer);
- assert_int_equal(result, ISC_R_SUCCESS);
-
- /*
- * All should be not set on creation.
- * 'dscp' should remain unchanged.
- */
- dscp = 100;
- result = dns_peer_getquerydscp(peer, &dscp);
- assert_int_equal(result, ISC_R_NOTFOUND);
- assert_int_equal(dscp, 100);
-
- result = dns_peer_getnotifydscp(peer, &dscp);
- assert_int_equal(result, ISC_R_NOTFOUND);
- assert_int_equal(dscp, 100);
-
- result = dns_peer_gettransferdscp(peer, &dscp);
- assert_int_equal(result, ISC_R_NOTFOUND);
- assert_int_equal(dscp, 100);
-
- /*
- * Test that setting query dscp does not affect the other
- * dscp values. 'dscp' should remain unchanged until
- * dns_peer_getquerydscp is called.
- */
- dscp = 100;
- result = dns_peer_setquerydscp(peer, 1);
- assert_int_equal(result, ISC_R_SUCCESS);
-
- result = dns_peer_getnotifydscp(peer, &dscp);
- assert_int_equal(result, ISC_R_NOTFOUND);
- assert_int_equal(dscp, 100);
-
- result = dns_peer_gettransferdscp(peer, &dscp);
- assert_int_equal(result, ISC_R_NOTFOUND);
- assert_int_equal(dscp, 100);
-
- result = dns_peer_getquerydscp(peer, &dscp);
- assert_int_equal(result, ISC_R_SUCCESS);
- assert_int_equal(dscp, 1);
-
- /*
- * Test that setting notify dscp does not affect the other
- * dscp values. 'dscp' should remain unchanged until
- * dns_peer_getquerydscp is called then should change again
- * on dns_peer_getnotifydscp.
- */
- dscp = 100;
- result = dns_peer_setnotifydscp(peer, 2);
- assert_int_equal(result, ISC_R_SUCCESS);
-
- result = dns_peer_gettransferdscp(peer, &dscp);
- assert_int_equal(result, ISC_R_NOTFOUND);
- assert_int_equal(dscp, 100);
-
- result = dns_peer_getquerydscp(peer, &dscp);
- assert_int_equal(result, ISC_R_SUCCESS);
- assert_int_equal(dscp, 1);
-
- result = dns_peer_getnotifydscp(peer, &dscp);
- assert_int_equal(result, ISC_R_SUCCESS);
- assert_int_equal(dscp, 2);
-
- /*
- * Test that setting notify dscp does not affect the other
- * dscp values. Check that appropriate values are returned.
- */
- dscp = 100;
- result = dns_peer_settransferdscp(peer, 3);
- assert_int_equal(result, ISC_R_SUCCESS);
-
- result = dns_peer_getquerydscp(peer, &dscp);
- assert_int_equal(result, ISC_R_SUCCESS);
- assert_int_equal(dscp, 1);
-
- result = dns_peer_getnotifydscp(peer, &dscp);
- assert_int_equal(result, ISC_R_SUCCESS);
- assert_int_equal(dscp, 2);
-
- result = dns_peer_gettransferdscp(peer, &dscp);
- assert_int_equal(result, ISC_R_SUCCESS);
- assert_int_equal(dscp, 3);
-
- dns_peer_detach(&peer);
-}
-
-ISC_TEST_LIST_START
-
-ISC_TEST_ENTRY(dscp)
-
-ISC_TEST_LIST_END
-
-ISC_TEST_MAIN
return (-1);
}
- result = ns_listenlist_default(mctx, port, -1, true, AF_INET,
- &listenon);
+ result = ns_listenlist_default(mctx, port, true, AF_INET, &listenon);
if (result != ISC_R_SUCCESS) {
return (-1);
}
UNUSED(state);
- result = ns_listenlist_default(mctx, port, -1, false, AF_INET, &list);
+ result = ns_listenlist_default(mctx, port, false, AF_INET, &list);
assert_int_equal(result, ISC_R_SUCCESS);
assert_non_null(list);
ns_listenlist_detach(&list);
- result = ns_listenlist_default(mctx, port, -1, true, AF_INET, &list);
+ result = ns_listenlist_default(mctx, port, true, AF_INET, &list);
assert_int_equal(result, ISC_R_SUCCESS);
assert_false(ISC_LIST_EMPTY(list->elts));