mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05:00
Merge branch 'feature/configure-outbound_msg_retry' of git://github.com/countsudoku/unbound into countsudoku-feature/configure-outbound_msg_retry
This commit is contained in:
commit
204edd229e
16 changed files with 5489 additions and 5389 deletions
|
|
@ -1,3 +1,7 @@
|
|||
8 September 2021: Wouter
|
||||
- Merged #41 from Moritz Schneider: made outbound-msg-retry
|
||||
configurable.
|
||||
|
||||
3 September 2021: Wouter
|
||||
- Fix #538: Fix subnetcache statistics.
|
||||
|
||||
|
|
|
|||
|
|
@ -1704,6 +1704,11 @@ This can make ordinary queries complete (if repeatedly queried for),
|
|||
and enter the cache, whilst also mitigating the traffic flow by the
|
||||
factor given.
|
||||
.TP 5
|
||||
.B outbound\-msg\-retry: \fI<number>
|
||||
The number of retries unbound will do in case of a non positive response is
|
||||
received. If a forward nameserver is used, this is the number of retries per
|
||||
forward nameserver in case of throwaway response.
|
||||
.TP 5
|
||||
.B fast\-server\-permil: \fI<number>
|
||||
Specify how many times out of 1000 to pick from the set of fastest servers.
|
||||
0 turns the feature off. A value of 900 would pick from the fastest
|
||||
|
|
|
|||
|
|
@ -176,6 +176,7 @@ iter_apply_cfg(struct iter_env* iter_env, struct config_file* cfg)
|
|||
}
|
||||
iter_env->supports_ipv6 = cfg->do_ip6;
|
||||
iter_env->supports_ipv4 = cfg->do_ip4;
|
||||
iter_env->outbound_msg_retry = cfg->outbound_msg_retry;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -592,7 +593,7 @@ iter_server_selection(struct iter_env* iter_env,
|
|||
|
||||
if(num == 1) {
|
||||
a = dp->result_list;
|
||||
if(++a->attempts < OUTBOUND_MSG_RETRY)
|
||||
if(++a->attempts < iter_env->outbound_msg_retry)
|
||||
return a;
|
||||
dp->result_list = a->next_result;
|
||||
return a;
|
||||
|
|
@ -612,7 +613,7 @@ iter_server_selection(struct iter_env* iter_env,
|
|||
}
|
||||
if(!a) /* robustness */
|
||||
return NULL;
|
||||
if(++a->attempts < OUTBOUND_MSG_RETRY)
|
||||
if(++a->attempts < iter_env->outbound_msg_retry)
|
||||
return a;
|
||||
/* remove it from the delegation point result list */
|
||||
if(prev)
|
||||
|
|
@ -1284,11 +1285,11 @@ iter_scrub_nxdomain(struct dns_msg* msg)
|
|||
msg->rep->an_numrrsets = 0;
|
||||
}
|
||||
|
||||
void iter_dec_attempts(struct delegpt* dp, int d)
|
||||
void iter_dec_attempts(struct delegpt* dp, int d, size_t outbound_msg_retry)
|
||||
{
|
||||
struct delegpt_addr* a;
|
||||
for(a=dp->target_list; a; a = a->next_target) {
|
||||
if(a->attempts >= OUTBOUND_MSG_RETRY) {
|
||||
if(a->attempts >= outbound_msg_retry) {
|
||||
/* add back to result list */
|
||||
a->next_result = dp->result_list;
|
||||
dp->result_list = a;
|
||||
|
|
@ -1299,7 +1300,7 @@ void iter_dec_attempts(struct delegpt* dp, int d)
|
|||
}
|
||||
}
|
||||
|
||||
void iter_merge_retry_counts(struct delegpt* dp, struct delegpt* old)
|
||||
void iter_merge_retry_counts(struct delegpt* dp, struct delegpt* old, size_t outbound_msg_retry)
|
||||
{
|
||||
struct delegpt_addr* a, *o, *prev;
|
||||
for(a=dp->target_list; a; a = a->next_target) {
|
||||
|
|
@ -1313,7 +1314,7 @@ void iter_merge_retry_counts(struct delegpt* dp, struct delegpt* old)
|
|||
prev = NULL;
|
||||
a = dp->usable_list;
|
||||
while(a) {
|
||||
if(a->attempts >= OUTBOUND_MSG_RETRY) {
|
||||
if(a->attempts >= outbound_msg_retry) {
|
||||
log_addr(VERB_ALGO, "remove from usable list dp",
|
||||
&a->addr, a->addrlen);
|
||||
/* remove from result list */
|
||||
|
|
|
|||
|
|
@ -347,16 +347,19 @@ void iter_scrub_nxdomain(struct dns_msg* msg);
|
|||
* Remove query attempts from all available ips. For 0x20.
|
||||
* @param dp: delegpt.
|
||||
* @param d: decrease.
|
||||
* @param outbound_msg_retry: number of retries of outgoing queries
|
||||
*/
|
||||
void iter_dec_attempts(struct delegpt* dp, int d);
|
||||
void iter_dec_attempts(struct delegpt* dp, int d, size_t outbound_msg_retry);
|
||||
|
||||
/**
|
||||
* Add retry counts from older delegpt to newer delegpt.
|
||||
* Does not waste time on timeout'd (or other failing) addresses.
|
||||
* @param dp: new delegationpoint.
|
||||
* @param old: old delegationpoint.
|
||||
* @param outbound_msg_retry: number of retries of outgoing queries
|
||||
*/
|
||||
void iter_merge_retry_counts(struct delegpt* dp, struct delegpt* old);
|
||||
void iter_merge_retry_counts(struct delegpt* dp, struct delegpt* old,
|
||||
size_t outbound_msg_retry);
|
||||
|
||||
/**
|
||||
* See if a DS response (type ANSWER) is too low: a nodata answer with
|
||||
|
|
|
|||
|
|
@ -2298,7 +2298,7 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
|||
iq->minimise_count++;
|
||||
iq->timeout_count = 0;
|
||||
|
||||
iter_dec_attempts(iq->dp, 1);
|
||||
iter_dec_attempts(iq->dp, 1, ie->outbound_msg_retry);
|
||||
|
||||
/* Limit number of iterations for QNAMEs with more
|
||||
* than MAX_MINIMISE_COUNT labels. Send first MINIMISE_ONE_LAB
|
||||
|
|
@ -2500,7 +2500,7 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
|||
(int)iq->caps_server+1, (int)naddr*3);
|
||||
iq->response = iq->caps_response;
|
||||
iq->caps_fallback = 0;
|
||||
iter_dec_attempts(iq->dp, 3); /* space for fallback */
|
||||
iter_dec_attempts(iq->dp, 3, ie->outbound_msg_retry); /* space for fallback */
|
||||
iq->num_current_queries++; /* RespState decrements it*/
|
||||
iq->referral_count++; /* make sure we don't loop */
|
||||
iq->sent_count = 0;
|
||||
|
|
@ -2605,7 +2605,7 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
|||
(int)iq->caps_server+1);
|
||||
iq->response = iq->caps_response;
|
||||
iq->caps_fallback = 0;
|
||||
iter_dec_attempts(iq->dp, 3); /* space for fallback */
|
||||
iter_dec_attempts(iq->dp, 3, ie->outbound_msg_retry); /* space for fallback */
|
||||
iq->num_current_queries++; /* RespState decrements it*/
|
||||
iq->referral_count++; /* make sure we don't loop */
|
||||
iq->sent_count = 0;
|
||||
|
|
@ -2732,7 +2732,7 @@ find_NS(struct reply_info* rep, size_t from, size_t to)
|
|||
*/
|
||||
static int
|
||||
processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
|
||||
int id)
|
||||
int id, size_t outbound_msg_retry)
|
||||
{
|
||||
int dnsseclame = 0;
|
||||
enum response_type type;
|
||||
|
|
@ -3002,7 +3002,7 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
|
|||
}
|
||||
if(iq->store_parent_NS && query_dname_compare(iq->dp->name,
|
||||
iq->store_parent_NS->name) == 0)
|
||||
iter_merge_retry_counts(iq->dp, iq->store_parent_NS);
|
||||
iter_merge_retry_counts(iq->dp, iq->store_parent_NS, outbound_msg_retry);
|
||||
delegpt_log(VERB_ALGO, iq->dp);
|
||||
/* Count this as a referral. */
|
||||
iq->referral_count++;
|
||||
|
|
@ -3746,7 +3746,8 @@ iter_handle(struct module_qstate* qstate, struct iter_qstate* iq,
|
|||
cont = processQueryTargets(qstate, iq, ie, id);
|
||||
break;
|
||||
case QUERY_RESP_STATE:
|
||||
cont = processQueryResponse(qstate, iq, id);
|
||||
cont = processQueryResponse(
|
||||
qstate, iq, id, ie->outbound_msg_retry);
|
||||
break;
|
||||
case PRIME_RESP_STATE:
|
||||
cont = processPrimeResponse(qstate, id);
|
||||
|
|
@ -3816,7 +3817,7 @@ process_response(struct module_qstate* qstate, struct iter_qstate* iq,
|
|||
iq->num_current_queries--;
|
||||
/* need fresh attempts for the 0x20 fallback, if
|
||||
* that was the cause for the failure */
|
||||
iter_dec_attempts(iq->dp, 3);
|
||||
iter_dec_attempts(iq->dp, 3, ie->outbound_msg_retry);
|
||||
verbose(VERB_DETAIL, "Capsforid: timeouts, starting fallback");
|
||||
goto handle_it;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,8 +94,6 @@ extern int UNKNOWN_SERVER_NICENESS;
|
|||
* Equals RTT_MAX_TIMEOUT
|
||||
*/
|
||||
#define USEFUL_SERVER_TOP_TIMEOUT 120000
|
||||
/** number of retries on outgoing queries */
|
||||
#define OUTBOUND_MSG_RETRY 5
|
||||
/** RTT band, within this amount from the best, servers are chosen randomly.
|
||||
* Chosen so that the UNKNOWN_SERVER_NICENESS falls within the band of a
|
||||
* fast server, this causes server exploration as a side benefit. msec. */
|
||||
|
|
@ -139,6 +137,9 @@ struct iter_env {
|
|||
lock_basic_type queries_ratelimit_lock;
|
||||
/** number of queries that have been ratelimited */
|
||||
size_t num_queries_ratelimited;
|
||||
|
||||
/** number of retries on outgoing queries */
|
||||
size_t outbound_msg_retry;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
2
testdata/fwd_error.rpl
vendored
2
testdata/fwd_error.rpl
vendored
|
|
@ -9,7 +9,7 @@ SECTION QUESTION
|
|||
www.example.com. IN A
|
||||
ENTRY_END
|
||||
; But the pending query fails due to error (say TCP failure or malloc or ...)
|
||||
; This is iterator/iterator.h OUTBOUND_MSG_RETRY number of errors.
|
||||
; This is util/config_file.c outbound-msg-retry number of errors.
|
||||
STEP 2 ERROR
|
||||
STEP 3 ERROR
|
||||
STEP 4 ERROR
|
||||
|
|
|
|||
27
testdata/fwd_error_retries.rpl
vendored
Normal file
27
testdata/fwd_error_retries.rpl
vendored
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
; config options
|
||||
server:
|
||||
outbound-msg-retry: 1
|
||||
|
||||
forward-zone:
|
||||
name: "."
|
||||
forward-addr: 216.0.0.1
|
||||
CONFIG_END
|
||||
SCENARIO_BEGIN Test basic forwarding with servfail and retry of 1
|
||||
STEP 1 QUERY
|
||||
ENTRY_BEGIN
|
||||
REPLY RD
|
||||
SECTION QUESTION
|
||||
www.example.com. IN A
|
||||
ENTRY_END
|
||||
; query fails with servfail, now we make only outgoing-msg-retry=1 retries
|
||||
STEP 2 ERROR
|
||||
; returns servfail
|
||||
STEP 14 CHECK_ANSWER
|
||||
ENTRY_BEGIN
|
||||
MATCH opcode qname qtype
|
||||
SECTION QUESTION
|
||||
REPLY SERVFAIL QR RD RA
|
||||
MATCH all
|
||||
www.example.com. IN A
|
||||
ENTRY_END
|
||||
SCENARIO_END
|
||||
2
testdata/fwd_timeout.rpl
vendored
2
testdata/fwd_timeout.rpl
vendored
|
|
@ -9,7 +9,7 @@ SECTION QUESTION
|
|||
www.example.com. IN A
|
||||
ENTRY_END
|
||||
; But the pending query times out!
|
||||
; OUTBOUND_MSG_RETRY times timeout.
|
||||
; outbound-msg-retry times timeout.
|
||||
STEP 2 TIMEOUT
|
||||
STEP 3 TIMEOUT
|
||||
STEP 4 TIMEOUT
|
||||
|
|
|
|||
|
|
@ -328,6 +328,7 @@ config_create(void)
|
|||
cfg->ratelimit_size = 4*1024*1024;
|
||||
cfg->ratelimit_for_domain = NULL;
|
||||
cfg->ratelimit_below_domain = NULL;
|
||||
cfg->outbound_msg_retry = 5;
|
||||
cfg->ip_ratelimit_factor = 10;
|
||||
cfg->ratelimit_factor = 10;
|
||||
cfg->qname_minimisation = 1;
|
||||
|
|
@ -752,6 +753,7 @@ int config_set_option(struct config_file* cfg, const char* opt,
|
|||
else S_POW2("ratelimit-slabs:", ratelimit_slabs)
|
||||
else S_NUMBER_OR_ZERO("ip-ratelimit-factor:", ip_ratelimit_factor)
|
||||
else S_NUMBER_OR_ZERO("ratelimit-factor:", ratelimit_factor)
|
||||
else S_SIZET_NONZERO("outbound-msg-retry", outbound_msg_retry)
|
||||
else S_SIZET_NONZERO("fast-server-num:", fast_server_num)
|
||||
else S_NUMBER_OR_ZERO("fast-server-permil:", fast_server_permil)
|
||||
else S_YNO("qname-minimisation:", qname_minimisation)
|
||||
|
|
@ -1195,6 +1197,7 @@ config_get_option(struct config_file* cfg, const char* opt,
|
|||
else O_LS2(opt, "ratelimit-below-domain", ratelimit_below_domain)
|
||||
else O_DEC(opt, "ip-ratelimit-factor", ip_ratelimit_factor)
|
||||
else O_DEC(opt, "ratelimit-factor", ratelimit_factor)
|
||||
else O_UNS(opt, "outbound-msg-retry", outbound_msg_retry)
|
||||
else O_DEC(opt, "fast-server-num", fast_server_num)
|
||||
else O_DEC(opt, "fast-server-permil", fast_server_permil)
|
||||
else O_DEC(opt, "val-sig-skew-min", val_sig_skew_min)
|
||||
|
|
|
|||
|
|
@ -578,6 +578,8 @@ struct config_file {
|
|||
struct config_str2list* ratelimit_below_domain;
|
||||
/** ratelimit factor, 0 blocks all, 10 allows 1/10 of traffic */
|
||||
int ratelimit_factor;
|
||||
/** number of retries on outgoing queries */
|
||||
size_t outbound_msg_retry;
|
||||
/** minimise outgoing QNAME and hide original QTYPE if possible */
|
||||
int qname_minimisation;
|
||||
/** minimise QNAME in strict mode, minimise according to RFC.
|
||||
|
|
|
|||
4917
util/configlexer.c
4917
util/configlexer.c
File diff suppressed because it is too large
Load diff
|
|
@ -501,6 +501,7 @@ ratelimit-for-domain{COLON} { YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
|
|||
ratelimit-below-domain{COLON} { YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
|
||||
ip-ratelimit-factor{COLON} { YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
|
||||
ratelimit-factor{COLON} { YDVAR(1, VAR_RATELIMIT_FACTOR) }
|
||||
outbound-msg-retry{COLON} { YDVAR(1, VAR_OUTBOUND_MSG_RETRY) }
|
||||
low-rtt{COLON} { YDVAR(1, VAR_LOW_RTT) }
|
||||
fast-server-num{COLON} { YDVAR(1, VAR_FAST_SERVER_NUM) }
|
||||
low-rtt-pct{COLON} { YDVAR(1, VAR_FAST_SERVER_PERMIL) }
|
||||
|
|
|
|||
4701
util/configparser.c
4701
util/configparser.c
File diff suppressed because it is too large
Load diff
|
|
@ -252,125 +252,126 @@ extern int yydebug;
|
|||
VAR_RATELIMIT = 453, /* VAR_RATELIMIT */
|
||||
VAR_RATELIMIT_SLABS = 454, /* VAR_RATELIMIT_SLABS */
|
||||
VAR_RATELIMIT_SIZE = 455, /* VAR_RATELIMIT_SIZE */
|
||||
VAR_RATELIMIT_FOR_DOMAIN = 456, /* VAR_RATELIMIT_FOR_DOMAIN */
|
||||
VAR_RATELIMIT_BELOW_DOMAIN = 457, /* VAR_RATELIMIT_BELOW_DOMAIN */
|
||||
VAR_IP_RATELIMIT_FACTOR = 458, /* VAR_IP_RATELIMIT_FACTOR */
|
||||
VAR_RATELIMIT_FACTOR = 459, /* VAR_RATELIMIT_FACTOR */
|
||||
VAR_SEND_CLIENT_SUBNET = 460, /* VAR_SEND_CLIENT_SUBNET */
|
||||
VAR_CLIENT_SUBNET_ZONE = 461, /* VAR_CLIENT_SUBNET_ZONE */
|
||||
VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 462, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */
|
||||
VAR_CLIENT_SUBNET_OPCODE = 463, /* VAR_CLIENT_SUBNET_OPCODE */
|
||||
VAR_MAX_CLIENT_SUBNET_IPV4 = 464, /* VAR_MAX_CLIENT_SUBNET_IPV4 */
|
||||
VAR_MAX_CLIENT_SUBNET_IPV6 = 465, /* VAR_MAX_CLIENT_SUBNET_IPV6 */
|
||||
VAR_MIN_CLIENT_SUBNET_IPV4 = 466, /* VAR_MIN_CLIENT_SUBNET_IPV4 */
|
||||
VAR_MIN_CLIENT_SUBNET_IPV6 = 467, /* VAR_MIN_CLIENT_SUBNET_IPV6 */
|
||||
VAR_MAX_ECS_TREE_SIZE_IPV4 = 468, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */
|
||||
VAR_MAX_ECS_TREE_SIZE_IPV6 = 469, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */
|
||||
VAR_CAPS_WHITELIST = 470, /* VAR_CAPS_WHITELIST */
|
||||
VAR_CACHE_MAX_NEGATIVE_TTL = 471, /* VAR_CACHE_MAX_NEGATIVE_TTL */
|
||||
VAR_PERMIT_SMALL_HOLDDOWN = 472, /* VAR_PERMIT_SMALL_HOLDDOWN */
|
||||
VAR_QNAME_MINIMISATION = 473, /* VAR_QNAME_MINIMISATION */
|
||||
VAR_QNAME_MINIMISATION_STRICT = 474, /* VAR_QNAME_MINIMISATION_STRICT */
|
||||
VAR_IP_FREEBIND = 475, /* VAR_IP_FREEBIND */
|
||||
VAR_DEFINE_TAG = 476, /* VAR_DEFINE_TAG */
|
||||
VAR_LOCAL_ZONE_TAG = 477, /* VAR_LOCAL_ZONE_TAG */
|
||||
VAR_ACCESS_CONTROL_TAG = 478, /* VAR_ACCESS_CONTROL_TAG */
|
||||
VAR_LOCAL_ZONE_OVERRIDE = 479, /* VAR_LOCAL_ZONE_OVERRIDE */
|
||||
VAR_ACCESS_CONTROL_TAG_ACTION = 480, /* VAR_ACCESS_CONTROL_TAG_ACTION */
|
||||
VAR_ACCESS_CONTROL_TAG_DATA = 481, /* VAR_ACCESS_CONTROL_TAG_DATA */
|
||||
VAR_VIEW = 482, /* VAR_VIEW */
|
||||
VAR_ACCESS_CONTROL_VIEW = 483, /* VAR_ACCESS_CONTROL_VIEW */
|
||||
VAR_VIEW_FIRST = 484, /* VAR_VIEW_FIRST */
|
||||
VAR_SERVE_EXPIRED = 485, /* VAR_SERVE_EXPIRED */
|
||||
VAR_SERVE_EXPIRED_TTL = 486, /* VAR_SERVE_EXPIRED_TTL */
|
||||
VAR_SERVE_EXPIRED_TTL_RESET = 487, /* VAR_SERVE_EXPIRED_TTL_RESET */
|
||||
VAR_SERVE_EXPIRED_REPLY_TTL = 488, /* VAR_SERVE_EXPIRED_REPLY_TTL */
|
||||
VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 489, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */
|
||||
VAR_SERVE_ORIGINAL_TTL = 490, /* VAR_SERVE_ORIGINAL_TTL */
|
||||
VAR_FAKE_DSA = 491, /* VAR_FAKE_DSA */
|
||||
VAR_FAKE_SHA1 = 492, /* VAR_FAKE_SHA1 */
|
||||
VAR_LOG_IDENTITY = 493, /* VAR_LOG_IDENTITY */
|
||||
VAR_HIDE_TRUSTANCHOR = 494, /* VAR_HIDE_TRUSTANCHOR */
|
||||
VAR_HIDE_HTTP_USER_AGENT = 495, /* VAR_HIDE_HTTP_USER_AGENT */
|
||||
VAR_HTTP_USER_AGENT = 496, /* VAR_HTTP_USER_AGENT */
|
||||
VAR_TRUST_ANCHOR_SIGNALING = 497, /* VAR_TRUST_ANCHOR_SIGNALING */
|
||||
VAR_AGGRESSIVE_NSEC = 498, /* VAR_AGGRESSIVE_NSEC */
|
||||
VAR_USE_SYSTEMD = 499, /* VAR_USE_SYSTEMD */
|
||||
VAR_SHM_ENABLE = 500, /* VAR_SHM_ENABLE */
|
||||
VAR_SHM_KEY = 501, /* VAR_SHM_KEY */
|
||||
VAR_ROOT_KEY_SENTINEL = 502, /* VAR_ROOT_KEY_SENTINEL */
|
||||
VAR_DNSCRYPT = 503, /* VAR_DNSCRYPT */
|
||||
VAR_DNSCRYPT_ENABLE = 504, /* VAR_DNSCRYPT_ENABLE */
|
||||
VAR_DNSCRYPT_PORT = 505, /* VAR_DNSCRYPT_PORT */
|
||||
VAR_DNSCRYPT_PROVIDER = 506, /* VAR_DNSCRYPT_PROVIDER */
|
||||
VAR_DNSCRYPT_SECRET_KEY = 507, /* VAR_DNSCRYPT_SECRET_KEY */
|
||||
VAR_DNSCRYPT_PROVIDER_CERT = 508, /* VAR_DNSCRYPT_PROVIDER_CERT */
|
||||
VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 509, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */
|
||||
VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 510, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */
|
||||
VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 511, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */
|
||||
VAR_DNSCRYPT_NONCE_CACHE_SIZE = 512, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */
|
||||
VAR_DNSCRYPT_NONCE_CACHE_SLABS = 513, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */
|
||||
VAR_PAD_RESPONSES = 514, /* VAR_PAD_RESPONSES */
|
||||
VAR_PAD_RESPONSES_BLOCK_SIZE = 515, /* VAR_PAD_RESPONSES_BLOCK_SIZE */
|
||||
VAR_PAD_QUERIES = 516, /* VAR_PAD_QUERIES */
|
||||
VAR_PAD_QUERIES_BLOCK_SIZE = 517, /* VAR_PAD_QUERIES_BLOCK_SIZE */
|
||||
VAR_IPSECMOD_ENABLED = 518, /* VAR_IPSECMOD_ENABLED */
|
||||
VAR_IPSECMOD_HOOK = 519, /* VAR_IPSECMOD_HOOK */
|
||||
VAR_IPSECMOD_IGNORE_BOGUS = 520, /* VAR_IPSECMOD_IGNORE_BOGUS */
|
||||
VAR_IPSECMOD_MAX_TTL = 521, /* VAR_IPSECMOD_MAX_TTL */
|
||||
VAR_IPSECMOD_WHITELIST = 522, /* VAR_IPSECMOD_WHITELIST */
|
||||
VAR_IPSECMOD_STRICT = 523, /* VAR_IPSECMOD_STRICT */
|
||||
VAR_CACHEDB = 524, /* VAR_CACHEDB */
|
||||
VAR_CACHEDB_BACKEND = 525, /* VAR_CACHEDB_BACKEND */
|
||||
VAR_CACHEDB_SECRETSEED = 526, /* VAR_CACHEDB_SECRETSEED */
|
||||
VAR_CACHEDB_REDISHOST = 527, /* VAR_CACHEDB_REDISHOST */
|
||||
VAR_CACHEDB_REDISPORT = 528, /* VAR_CACHEDB_REDISPORT */
|
||||
VAR_CACHEDB_REDISTIMEOUT = 529, /* VAR_CACHEDB_REDISTIMEOUT */
|
||||
VAR_CACHEDB_REDISEXPIRERECORDS = 530, /* VAR_CACHEDB_REDISEXPIRERECORDS */
|
||||
VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 531, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */
|
||||
VAR_FOR_UPSTREAM = 532, /* VAR_FOR_UPSTREAM */
|
||||
VAR_AUTH_ZONE = 533, /* VAR_AUTH_ZONE */
|
||||
VAR_ZONEFILE = 534, /* VAR_ZONEFILE */
|
||||
VAR_MASTER = 535, /* VAR_MASTER */
|
||||
VAR_URL = 536, /* VAR_URL */
|
||||
VAR_FOR_DOWNSTREAM = 537, /* VAR_FOR_DOWNSTREAM */
|
||||
VAR_FALLBACK_ENABLED = 538, /* VAR_FALLBACK_ENABLED */
|
||||
VAR_TLS_ADDITIONAL_PORT = 539, /* VAR_TLS_ADDITIONAL_PORT */
|
||||
VAR_LOW_RTT = 540, /* VAR_LOW_RTT */
|
||||
VAR_LOW_RTT_PERMIL = 541, /* VAR_LOW_RTT_PERMIL */
|
||||
VAR_FAST_SERVER_PERMIL = 542, /* VAR_FAST_SERVER_PERMIL */
|
||||
VAR_FAST_SERVER_NUM = 543, /* VAR_FAST_SERVER_NUM */
|
||||
VAR_ALLOW_NOTIFY = 544, /* VAR_ALLOW_NOTIFY */
|
||||
VAR_TLS_WIN_CERT = 545, /* VAR_TLS_WIN_CERT */
|
||||
VAR_TCP_CONNECTION_LIMIT = 546, /* VAR_TCP_CONNECTION_LIMIT */
|
||||
VAR_FORWARD_NO_CACHE = 547, /* VAR_FORWARD_NO_CACHE */
|
||||
VAR_STUB_NO_CACHE = 548, /* VAR_STUB_NO_CACHE */
|
||||
VAR_LOG_SERVFAIL = 549, /* VAR_LOG_SERVFAIL */
|
||||
VAR_DENY_ANY = 550, /* VAR_DENY_ANY */
|
||||
VAR_UNKNOWN_SERVER_TIME_LIMIT = 551, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */
|
||||
VAR_LOG_TAG_QUERYREPLY = 552, /* VAR_LOG_TAG_QUERYREPLY */
|
||||
VAR_STREAM_WAIT_SIZE = 553, /* VAR_STREAM_WAIT_SIZE */
|
||||
VAR_TLS_CIPHERS = 554, /* VAR_TLS_CIPHERS */
|
||||
VAR_TLS_CIPHERSUITES = 555, /* VAR_TLS_CIPHERSUITES */
|
||||
VAR_TLS_USE_SNI = 556, /* VAR_TLS_USE_SNI */
|
||||
VAR_IPSET = 557, /* VAR_IPSET */
|
||||
VAR_IPSET_NAME_V4 = 558, /* VAR_IPSET_NAME_V4 */
|
||||
VAR_IPSET_NAME_V6 = 559, /* VAR_IPSET_NAME_V6 */
|
||||
VAR_TLS_SESSION_TICKET_KEYS = 560, /* VAR_TLS_SESSION_TICKET_KEYS */
|
||||
VAR_RPZ = 561, /* VAR_RPZ */
|
||||
VAR_TAGS = 562, /* VAR_TAGS */
|
||||
VAR_RPZ_ACTION_OVERRIDE = 563, /* VAR_RPZ_ACTION_OVERRIDE */
|
||||
VAR_RPZ_CNAME_OVERRIDE = 564, /* VAR_RPZ_CNAME_OVERRIDE */
|
||||
VAR_RPZ_LOG = 565, /* VAR_RPZ_LOG */
|
||||
VAR_RPZ_LOG_NAME = 566, /* VAR_RPZ_LOG_NAME */
|
||||
VAR_DYNLIB = 567, /* VAR_DYNLIB */
|
||||
VAR_DYNLIB_FILE = 568, /* VAR_DYNLIB_FILE */
|
||||
VAR_EDNS_CLIENT_STRING = 569, /* VAR_EDNS_CLIENT_STRING */
|
||||
VAR_EDNS_CLIENT_STRING_OPCODE = 570, /* VAR_EDNS_CLIENT_STRING_OPCODE */
|
||||
VAR_NSID = 571, /* VAR_NSID */
|
||||
VAR_ZONEMD_PERMISSIVE_MODE = 572, /* VAR_ZONEMD_PERMISSIVE_MODE */
|
||||
VAR_ZONEMD_CHECK = 573, /* VAR_ZONEMD_CHECK */
|
||||
VAR_ZONEMD_REJECT_ABSENCE = 574 /* VAR_ZONEMD_REJECT_ABSENCE */
|
||||
VAR_OUTBOUND_MSG_RETRY = 456, /* VAR_OUTBOUND_MSG_RETRY */
|
||||
VAR_RATELIMIT_FOR_DOMAIN = 457, /* VAR_RATELIMIT_FOR_DOMAIN */
|
||||
VAR_RATELIMIT_BELOW_DOMAIN = 458, /* VAR_RATELIMIT_BELOW_DOMAIN */
|
||||
VAR_IP_RATELIMIT_FACTOR = 459, /* VAR_IP_RATELIMIT_FACTOR */
|
||||
VAR_RATELIMIT_FACTOR = 460, /* VAR_RATELIMIT_FACTOR */
|
||||
VAR_SEND_CLIENT_SUBNET = 461, /* VAR_SEND_CLIENT_SUBNET */
|
||||
VAR_CLIENT_SUBNET_ZONE = 462, /* VAR_CLIENT_SUBNET_ZONE */
|
||||
VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 463, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */
|
||||
VAR_CLIENT_SUBNET_OPCODE = 464, /* VAR_CLIENT_SUBNET_OPCODE */
|
||||
VAR_MAX_CLIENT_SUBNET_IPV4 = 465, /* VAR_MAX_CLIENT_SUBNET_IPV4 */
|
||||
VAR_MAX_CLIENT_SUBNET_IPV6 = 466, /* VAR_MAX_CLIENT_SUBNET_IPV6 */
|
||||
VAR_MIN_CLIENT_SUBNET_IPV4 = 467, /* VAR_MIN_CLIENT_SUBNET_IPV4 */
|
||||
VAR_MIN_CLIENT_SUBNET_IPV6 = 468, /* VAR_MIN_CLIENT_SUBNET_IPV6 */
|
||||
VAR_MAX_ECS_TREE_SIZE_IPV4 = 469, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */
|
||||
VAR_MAX_ECS_TREE_SIZE_IPV6 = 470, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */
|
||||
VAR_CAPS_WHITELIST = 471, /* VAR_CAPS_WHITELIST */
|
||||
VAR_CACHE_MAX_NEGATIVE_TTL = 472, /* VAR_CACHE_MAX_NEGATIVE_TTL */
|
||||
VAR_PERMIT_SMALL_HOLDDOWN = 473, /* VAR_PERMIT_SMALL_HOLDDOWN */
|
||||
VAR_QNAME_MINIMISATION = 474, /* VAR_QNAME_MINIMISATION */
|
||||
VAR_QNAME_MINIMISATION_STRICT = 475, /* VAR_QNAME_MINIMISATION_STRICT */
|
||||
VAR_IP_FREEBIND = 476, /* VAR_IP_FREEBIND */
|
||||
VAR_DEFINE_TAG = 477, /* VAR_DEFINE_TAG */
|
||||
VAR_LOCAL_ZONE_TAG = 478, /* VAR_LOCAL_ZONE_TAG */
|
||||
VAR_ACCESS_CONTROL_TAG = 479, /* VAR_ACCESS_CONTROL_TAG */
|
||||
VAR_LOCAL_ZONE_OVERRIDE = 480, /* VAR_LOCAL_ZONE_OVERRIDE */
|
||||
VAR_ACCESS_CONTROL_TAG_ACTION = 481, /* VAR_ACCESS_CONTROL_TAG_ACTION */
|
||||
VAR_ACCESS_CONTROL_TAG_DATA = 482, /* VAR_ACCESS_CONTROL_TAG_DATA */
|
||||
VAR_VIEW = 483, /* VAR_VIEW */
|
||||
VAR_ACCESS_CONTROL_VIEW = 484, /* VAR_ACCESS_CONTROL_VIEW */
|
||||
VAR_VIEW_FIRST = 485, /* VAR_VIEW_FIRST */
|
||||
VAR_SERVE_EXPIRED = 486, /* VAR_SERVE_EXPIRED */
|
||||
VAR_SERVE_EXPIRED_TTL = 487, /* VAR_SERVE_EXPIRED_TTL */
|
||||
VAR_SERVE_EXPIRED_TTL_RESET = 488, /* VAR_SERVE_EXPIRED_TTL_RESET */
|
||||
VAR_SERVE_EXPIRED_REPLY_TTL = 489, /* VAR_SERVE_EXPIRED_REPLY_TTL */
|
||||
VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 490, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */
|
||||
VAR_SERVE_ORIGINAL_TTL = 491, /* VAR_SERVE_ORIGINAL_TTL */
|
||||
VAR_FAKE_DSA = 492, /* VAR_FAKE_DSA */
|
||||
VAR_FAKE_SHA1 = 493, /* VAR_FAKE_SHA1 */
|
||||
VAR_LOG_IDENTITY = 494, /* VAR_LOG_IDENTITY */
|
||||
VAR_HIDE_TRUSTANCHOR = 495, /* VAR_HIDE_TRUSTANCHOR */
|
||||
VAR_HIDE_HTTP_USER_AGENT = 496, /* VAR_HIDE_HTTP_USER_AGENT */
|
||||
VAR_HTTP_USER_AGENT = 497, /* VAR_HTTP_USER_AGENT */
|
||||
VAR_TRUST_ANCHOR_SIGNALING = 498, /* VAR_TRUST_ANCHOR_SIGNALING */
|
||||
VAR_AGGRESSIVE_NSEC = 499, /* VAR_AGGRESSIVE_NSEC */
|
||||
VAR_USE_SYSTEMD = 500, /* VAR_USE_SYSTEMD */
|
||||
VAR_SHM_ENABLE = 501, /* VAR_SHM_ENABLE */
|
||||
VAR_SHM_KEY = 502, /* VAR_SHM_KEY */
|
||||
VAR_ROOT_KEY_SENTINEL = 503, /* VAR_ROOT_KEY_SENTINEL */
|
||||
VAR_DNSCRYPT = 504, /* VAR_DNSCRYPT */
|
||||
VAR_DNSCRYPT_ENABLE = 505, /* VAR_DNSCRYPT_ENABLE */
|
||||
VAR_DNSCRYPT_PORT = 506, /* VAR_DNSCRYPT_PORT */
|
||||
VAR_DNSCRYPT_PROVIDER = 507, /* VAR_DNSCRYPT_PROVIDER */
|
||||
VAR_DNSCRYPT_SECRET_KEY = 508, /* VAR_DNSCRYPT_SECRET_KEY */
|
||||
VAR_DNSCRYPT_PROVIDER_CERT = 509, /* VAR_DNSCRYPT_PROVIDER_CERT */
|
||||
VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 510, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */
|
||||
VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 511, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */
|
||||
VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 512, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */
|
||||
VAR_DNSCRYPT_NONCE_CACHE_SIZE = 513, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */
|
||||
VAR_DNSCRYPT_NONCE_CACHE_SLABS = 514, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */
|
||||
VAR_PAD_RESPONSES = 515, /* VAR_PAD_RESPONSES */
|
||||
VAR_PAD_RESPONSES_BLOCK_SIZE = 516, /* VAR_PAD_RESPONSES_BLOCK_SIZE */
|
||||
VAR_PAD_QUERIES = 517, /* VAR_PAD_QUERIES */
|
||||
VAR_PAD_QUERIES_BLOCK_SIZE = 518, /* VAR_PAD_QUERIES_BLOCK_SIZE */
|
||||
VAR_IPSECMOD_ENABLED = 519, /* VAR_IPSECMOD_ENABLED */
|
||||
VAR_IPSECMOD_HOOK = 520, /* VAR_IPSECMOD_HOOK */
|
||||
VAR_IPSECMOD_IGNORE_BOGUS = 521, /* VAR_IPSECMOD_IGNORE_BOGUS */
|
||||
VAR_IPSECMOD_MAX_TTL = 522, /* VAR_IPSECMOD_MAX_TTL */
|
||||
VAR_IPSECMOD_WHITELIST = 523, /* VAR_IPSECMOD_WHITELIST */
|
||||
VAR_IPSECMOD_STRICT = 524, /* VAR_IPSECMOD_STRICT */
|
||||
VAR_CACHEDB = 525, /* VAR_CACHEDB */
|
||||
VAR_CACHEDB_BACKEND = 526, /* VAR_CACHEDB_BACKEND */
|
||||
VAR_CACHEDB_SECRETSEED = 527, /* VAR_CACHEDB_SECRETSEED */
|
||||
VAR_CACHEDB_REDISHOST = 528, /* VAR_CACHEDB_REDISHOST */
|
||||
VAR_CACHEDB_REDISPORT = 529, /* VAR_CACHEDB_REDISPORT */
|
||||
VAR_CACHEDB_REDISTIMEOUT = 530, /* VAR_CACHEDB_REDISTIMEOUT */
|
||||
VAR_CACHEDB_REDISEXPIRERECORDS = 531, /* VAR_CACHEDB_REDISEXPIRERECORDS */
|
||||
VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 532, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */
|
||||
VAR_FOR_UPSTREAM = 533, /* VAR_FOR_UPSTREAM */
|
||||
VAR_AUTH_ZONE = 534, /* VAR_AUTH_ZONE */
|
||||
VAR_ZONEFILE = 535, /* VAR_ZONEFILE */
|
||||
VAR_MASTER = 536, /* VAR_MASTER */
|
||||
VAR_URL = 537, /* VAR_URL */
|
||||
VAR_FOR_DOWNSTREAM = 538, /* VAR_FOR_DOWNSTREAM */
|
||||
VAR_FALLBACK_ENABLED = 539, /* VAR_FALLBACK_ENABLED */
|
||||
VAR_TLS_ADDITIONAL_PORT = 540, /* VAR_TLS_ADDITIONAL_PORT */
|
||||
VAR_LOW_RTT = 541, /* VAR_LOW_RTT */
|
||||
VAR_LOW_RTT_PERMIL = 542, /* VAR_LOW_RTT_PERMIL */
|
||||
VAR_FAST_SERVER_PERMIL = 543, /* VAR_FAST_SERVER_PERMIL */
|
||||
VAR_FAST_SERVER_NUM = 544, /* VAR_FAST_SERVER_NUM */
|
||||
VAR_ALLOW_NOTIFY = 545, /* VAR_ALLOW_NOTIFY */
|
||||
VAR_TLS_WIN_CERT = 546, /* VAR_TLS_WIN_CERT */
|
||||
VAR_TCP_CONNECTION_LIMIT = 547, /* VAR_TCP_CONNECTION_LIMIT */
|
||||
VAR_FORWARD_NO_CACHE = 548, /* VAR_FORWARD_NO_CACHE */
|
||||
VAR_STUB_NO_CACHE = 549, /* VAR_STUB_NO_CACHE */
|
||||
VAR_LOG_SERVFAIL = 550, /* VAR_LOG_SERVFAIL */
|
||||
VAR_DENY_ANY = 551, /* VAR_DENY_ANY */
|
||||
VAR_UNKNOWN_SERVER_TIME_LIMIT = 552, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */
|
||||
VAR_LOG_TAG_QUERYREPLY = 553, /* VAR_LOG_TAG_QUERYREPLY */
|
||||
VAR_STREAM_WAIT_SIZE = 554, /* VAR_STREAM_WAIT_SIZE */
|
||||
VAR_TLS_CIPHERS = 555, /* VAR_TLS_CIPHERS */
|
||||
VAR_TLS_CIPHERSUITES = 556, /* VAR_TLS_CIPHERSUITES */
|
||||
VAR_TLS_USE_SNI = 557, /* VAR_TLS_USE_SNI */
|
||||
VAR_IPSET = 558, /* VAR_IPSET */
|
||||
VAR_IPSET_NAME_V4 = 559, /* VAR_IPSET_NAME_V4 */
|
||||
VAR_IPSET_NAME_V6 = 560, /* VAR_IPSET_NAME_V6 */
|
||||
VAR_TLS_SESSION_TICKET_KEYS = 561, /* VAR_TLS_SESSION_TICKET_KEYS */
|
||||
VAR_RPZ = 562, /* VAR_RPZ */
|
||||
VAR_TAGS = 563, /* VAR_TAGS */
|
||||
VAR_RPZ_ACTION_OVERRIDE = 564, /* VAR_RPZ_ACTION_OVERRIDE */
|
||||
VAR_RPZ_CNAME_OVERRIDE = 565, /* VAR_RPZ_CNAME_OVERRIDE */
|
||||
VAR_RPZ_LOG = 566, /* VAR_RPZ_LOG */
|
||||
VAR_RPZ_LOG_NAME = 567, /* VAR_RPZ_LOG_NAME */
|
||||
VAR_DYNLIB = 568, /* VAR_DYNLIB */
|
||||
VAR_DYNLIB_FILE = 569, /* VAR_DYNLIB_FILE */
|
||||
VAR_EDNS_CLIENT_STRING = 570, /* VAR_EDNS_CLIENT_STRING */
|
||||
VAR_EDNS_CLIENT_STRING_OPCODE = 571, /* VAR_EDNS_CLIENT_STRING_OPCODE */
|
||||
VAR_NSID = 572, /* VAR_NSID */
|
||||
VAR_ZONEMD_PERMISSIVE_MODE = 573, /* VAR_ZONEMD_PERMISSIVE_MODE */
|
||||
VAR_ZONEMD_CHECK = 574, /* VAR_ZONEMD_CHECK */
|
||||
VAR_ZONEMD_REJECT_ABSENCE = 575 /* VAR_ZONEMD_REJECT_ABSENCE */
|
||||
};
|
||||
typedef enum yytokentype yytoken_kind_t;
|
||||
#endif
|
||||
|
|
@ -576,125 +577,126 @@ extern int yydebug;
|
|||
#define VAR_RATELIMIT 453
|
||||
#define VAR_RATELIMIT_SLABS 454
|
||||
#define VAR_RATELIMIT_SIZE 455
|
||||
#define VAR_RATELIMIT_FOR_DOMAIN 456
|
||||
#define VAR_RATELIMIT_BELOW_DOMAIN 457
|
||||
#define VAR_IP_RATELIMIT_FACTOR 458
|
||||
#define VAR_RATELIMIT_FACTOR 459
|
||||
#define VAR_SEND_CLIENT_SUBNET 460
|
||||
#define VAR_CLIENT_SUBNET_ZONE 461
|
||||
#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 462
|
||||
#define VAR_CLIENT_SUBNET_OPCODE 463
|
||||
#define VAR_MAX_CLIENT_SUBNET_IPV4 464
|
||||
#define VAR_MAX_CLIENT_SUBNET_IPV6 465
|
||||
#define VAR_MIN_CLIENT_SUBNET_IPV4 466
|
||||
#define VAR_MIN_CLIENT_SUBNET_IPV6 467
|
||||
#define VAR_MAX_ECS_TREE_SIZE_IPV4 468
|
||||
#define VAR_MAX_ECS_TREE_SIZE_IPV6 469
|
||||
#define VAR_CAPS_WHITELIST 470
|
||||
#define VAR_CACHE_MAX_NEGATIVE_TTL 471
|
||||
#define VAR_PERMIT_SMALL_HOLDDOWN 472
|
||||
#define VAR_QNAME_MINIMISATION 473
|
||||
#define VAR_QNAME_MINIMISATION_STRICT 474
|
||||
#define VAR_IP_FREEBIND 475
|
||||
#define VAR_DEFINE_TAG 476
|
||||
#define VAR_LOCAL_ZONE_TAG 477
|
||||
#define VAR_ACCESS_CONTROL_TAG 478
|
||||
#define VAR_LOCAL_ZONE_OVERRIDE 479
|
||||
#define VAR_ACCESS_CONTROL_TAG_ACTION 480
|
||||
#define VAR_ACCESS_CONTROL_TAG_DATA 481
|
||||
#define VAR_VIEW 482
|
||||
#define VAR_ACCESS_CONTROL_VIEW 483
|
||||
#define VAR_VIEW_FIRST 484
|
||||
#define VAR_SERVE_EXPIRED 485
|
||||
#define VAR_SERVE_EXPIRED_TTL 486
|
||||
#define VAR_SERVE_EXPIRED_TTL_RESET 487
|
||||
#define VAR_SERVE_EXPIRED_REPLY_TTL 488
|
||||
#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 489
|
||||
#define VAR_SERVE_ORIGINAL_TTL 490
|
||||
#define VAR_FAKE_DSA 491
|
||||
#define VAR_FAKE_SHA1 492
|
||||
#define VAR_LOG_IDENTITY 493
|
||||
#define VAR_HIDE_TRUSTANCHOR 494
|
||||
#define VAR_HIDE_HTTP_USER_AGENT 495
|
||||
#define VAR_HTTP_USER_AGENT 496
|
||||
#define VAR_TRUST_ANCHOR_SIGNALING 497
|
||||
#define VAR_AGGRESSIVE_NSEC 498
|
||||
#define VAR_USE_SYSTEMD 499
|
||||
#define VAR_SHM_ENABLE 500
|
||||
#define VAR_SHM_KEY 501
|
||||
#define VAR_ROOT_KEY_SENTINEL 502
|
||||
#define VAR_DNSCRYPT 503
|
||||
#define VAR_DNSCRYPT_ENABLE 504
|
||||
#define VAR_DNSCRYPT_PORT 505
|
||||
#define VAR_DNSCRYPT_PROVIDER 506
|
||||
#define VAR_DNSCRYPT_SECRET_KEY 507
|
||||
#define VAR_DNSCRYPT_PROVIDER_CERT 508
|
||||
#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 509
|
||||
#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 510
|
||||
#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 511
|
||||
#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 512
|
||||
#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 513
|
||||
#define VAR_PAD_RESPONSES 514
|
||||
#define VAR_PAD_RESPONSES_BLOCK_SIZE 515
|
||||
#define VAR_PAD_QUERIES 516
|
||||
#define VAR_PAD_QUERIES_BLOCK_SIZE 517
|
||||
#define VAR_IPSECMOD_ENABLED 518
|
||||
#define VAR_IPSECMOD_HOOK 519
|
||||
#define VAR_IPSECMOD_IGNORE_BOGUS 520
|
||||
#define VAR_IPSECMOD_MAX_TTL 521
|
||||
#define VAR_IPSECMOD_WHITELIST 522
|
||||
#define VAR_IPSECMOD_STRICT 523
|
||||
#define VAR_CACHEDB 524
|
||||
#define VAR_CACHEDB_BACKEND 525
|
||||
#define VAR_CACHEDB_SECRETSEED 526
|
||||
#define VAR_CACHEDB_REDISHOST 527
|
||||
#define VAR_CACHEDB_REDISPORT 528
|
||||
#define VAR_CACHEDB_REDISTIMEOUT 529
|
||||
#define VAR_CACHEDB_REDISEXPIRERECORDS 530
|
||||
#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 531
|
||||
#define VAR_FOR_UPSTREAM 532
|
||||
#define VAR_AUTH_ZONE 533
|
||||
#define VAR_ZONEFILE 534
|
||||
#define VAR_MASTER 535
|
||||
#define VAR_URL 536
|
||||
#define VAR_FOR_DOWNSTREAM 537
|
||||
#define VAR_FALLBACK_ENABLED 538
|
||||
#define VAR_TLS_ADDITIONAL_PORT 539
|
||||
#define VAR_LOW_RTT 540
|
||||
#define VAR_LOW_RTT_PERMIL 541
|
||||
#define VAR_FAST_SERVER_PERMIL 542
|
||||
#define VAR_FAST_SERVER_NUM 543
|
||||
#define VAR_ALLOW_NOTIFY 544
|
||||
#define VAR_TLS_WIN_CERT 545
|
||||
#define VAR_TCP_CONNECTION_LIMIT 546
|
||||
#define VAR_FORWARD_NO_CACHE 547
|
||||
#define VAR_STUB_NO_CACHE 548
|
||||
#define VAR_LOG_SERVFAIL 549
|
||||
#define VAR_DENY_ANY 550
|
||||
#define VAR_UNKNOWN_SERVER_TIME_LIMIT 551
|
||||
#define VAR_LOG_TAG_QUERYREPLY 552
|
||||
#define VAR_STREAM_WAIT_SIZE 553
|
||||
#define VAR_TLS_CIPHERS 554
|
||||
#define VAR_TLS_CIPHERSUITES 555
|
||||
#define VAR_TLS_USE_SNI 556
|
||||
#define VAR_IPSET 557
|
||||
#define VAR_IPSET_NAME_V4 558
|
||||
#define VAR_IPSET_NAME_V6 559
|
||||
#define VAR_TLS_SESSION_TICKET_KEYS 560
|
||||
#define VAR_RPZ 561
|
||||
#define VAR_TAGS 562
|
||||
#define VAR_RPZ_ACTION_OVERRIDE 563
|
||||
#define VAR_RPZ_CNAME_OVERRIDE 564
|
||||
#define VAR_RPZ_LOG 565
|
||||
#define VAR_RPZ_LOG_NAME 566
|
||||
#define VAR_DYNLIB 567
|
||||
#define VAR_DYNLIB_FILE 568
|
||||
#define VAR_EDNS_CLIENT_STRING 569
|
||||
#define VAR_EDNS_CLIENT_STRING_OPCODE 570
|
||||
#define VAR_NSID 571
|
||||
#define VAR_ZONEMD_PERMISSIVE_MODE 572
|
||||
#define VAR_ZONEMD_CHECK 573
|
||||
#define VAR_ZONEMD_REJECT_ABSENCE 574
|
||||
#define VAR_OUTBOUND_MSG_RETRY 456
|
||||
#define VAR_RATELIMIT_FOR_DOMAIN 457
|
||||
#define VAR_RATELIMIT_BELOW_DOMAIN 458
|
||||
#define VAR_IP_RATELIMIT_FACTOR 459
|
||||
#define VAR_RATELIMIT_FACTOR 460
|
||||
#define VAR_SEND_CLIENT_SUBNET 461
|
||||
#define VAR_CLIENT_SUBNET_ZONE 462
|
||||
#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 463
|
||||
#define VAR_CLIENT_SUBNET_OPCODE 464
|
||||
#define VAR_MAX_CLIENT_SUBNET_IPV4 465
|
||||
#define VAR_MAX_CLIENT_SUBNET_IPV6 466
|
||||
#define VAR_MIN_CLIENT_SUBNET_IPV4 467
|
||||
#define VAR_MIN_CLIENT_SUBNET_IPV6 468
|
||||
#define VAR_MAX_ECS_TREE_SIZE_IPV4 469
|
||||
#define VAR_MAX_ECS_TREE_SIZE_IPV6 470
|
||||
#define VAR_CAPS_WHITELIST 471
|
||||
#define VAR_CACHE_MAX_NEGATIVE_TTL 472
|
||||
#define VAR_PERMIT_SMALL_HOLDDOWN 473
|
||||
#define VAR_QNAME_MINIMISATION 474
|
||||
#define VAR_QNAME_MINIMISATION_STRICT 475
|
||||
#define VAR_IP_FREEBIND 476
|
||||
#define VAR_DEFINE_TAG 477
|
||||
#define VAR_LOCAL_ZONE_TAG 478
|
||||
#define VAR_ACCESS_CONTROL_TAG 479
|
||||
#define VAR_LOCAL_ZONE_OVERRIDE 480
|
||||
#define VAR_ACCESS_CONTROL_TAG_ACTION 481
|
||||
#define VAR_ACCESS_CONTROL_TAG_DATA 482
|
||||
#define VAR_VIEW 483
|
||||
#define VAR_ACCESS_CONTROL_VIEW 484
|
||||
#define VAR_VIEW_FIRST 485
|
||||
#define VAR_SERVE_EXPIRED 486
|
||||
#define VAR_SERVE_EXPIRED_TTL 487
|
||||
#define VAR_SERVE_EXPIRED_TTL_RESET 488
|
||||
#define VAR_SERVE_EXPIRED_REPLY_TTL 489
|
||||
#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 490
|
||||
#define VAR_SERVE_ORIGINAL_TTL 491
|
||||
#define VAR_FAKE_DSA 492
|
||||
#define VAR_FAKE_SHA1 493
|
||||
#define VAR_LOG_IDENTITY 494
|
||||
#define VAR_HIDE_TRUSTANCHOR 495
|
||||
#define VAR_HIDE_HTTP_USER_AGENT 496
|
||||
#define VAR_HTTP_USER_AGENT 497
|
||||
#define VAR_TRUST_ANCHOR_SIGNALING 498
|
||||
#define VAR_AGGRESSIVE_NSEC 499
|
||||
#define VAR_USE_SYSTEMD 500
|
||||
#define VAR_SHM_ENABLE 501
|
||||
#define VAR_SHM_KEY 502
|
||||
#define VAR_ROOT_KEY_SENTINEL 503
|
||||
#define VAR_DNSCRYPT 504
|
||||
#define VAR_DNSCRYPT_ENABLE 505
|
||||
#define VAR_DNSCRYPT_PORT 506
|
||||
#define VAR_DNSCRYPT_PROVIDER 507
|
||||
#define VAR_DNSCRYPT_SECRET_KEY 508
|
||||
#define VAR_DNSCRYPT_PROVIDER_CERT 509
|
||||
#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 510
|
||||
#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 511
|
||||
#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 512
|
||||
#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 513
|
||||
#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 514
|
||||
#define VAR_PAD_RESPONSES 515
|
||||
#define VAR_PAD_RESPONSES_BLOCK_SIZE 516
|
||||
#define VAR_PAD_QUERIES 517
|
||||
#define VAR_PAD_QUERIES_BLOCK_SIZE 518
|
||||
#define VAR_IPSECMOD_ENABLED 519
|
||||
#define VAR_IPSECMOD_HOOK 520
|
||||
#define VAR_IPSECMOD_IGNORE_BOGUS 521
|
||||
#define VAR_IPSECMOD_MAX_TTL 522
|
||||
#define VAR_IPSECMOD_WHITELIST 523
|
||||
#define VAR_IPSECMOD_STRICT 524
|
||||
#define VAR_CACHEDB 525
|
||||
#define VAR_CACHEDB_BACKEND 526
|
||||
#define VAR_CACHEDB_SECRETSEED 527
|
||||
#define VAR_CACHEDB_REDISHOST 528
|
||||
#define VAR_CACHEDB_REDISPORT 529
|
||||
#define VAR_CACHEDB_REDISTIMEOUT 530
|
||||
#define VAR_CACHEDB_REDISEXPIRERECORDS 531
|
||||
#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 532
|
||||
#define VAR_FOR_UPSTREAM 533
|
||||
#define VAR_AUTH_ZONE 534
|
||||
#define VAR_ZONEFILE 535
|
||||
#define VAR_MASTER 536
|
||||
#define VAR_URL 537
|
||||
#define VAR_FOR_DOWNSTREAM 538
|
||||
#define VAR_FALLBACK_ENABLED 539
|
||||
#define VAR_TLS_ADDITIONAL_PORT 540
|
||||
#define VAR_LOW_RTT 541
|
||||
#define VAR_LOW_RTT_PERMIL 542
|
||||
#define VAR_FAST_SERVER_PERMIL 543
|
||||
#define VAR_FAST_SERVER_NUM 544
|
||||
#define VAR_ALLOW_NOTIFY 545
|
||||
#define VAR_TLS_WIN_CERT 546
|
||||
#define VAR_TCP_CONNECTION_LIMIT 547
|
||||
#define VAR_FORWARD_NO_CACHE 548
|
||||
#define VAR_STUB_NO_CACHE 549
|
||||
#define VAR_LOG_SERVFAIL 550
|
||||
#define VAR_DENY_ANY 551
|
||||
#define VAR_UNKNOWN_SERVER_TIME_LIMIT 552
|
||||
#define VAR_LOG_TAG_QUERYREPLY 553
|
||||
#define VAR_STREAM_WAIT_SIZE 554
|
||||
#define VAR_TLS_CIPHERS 555
|
||||
#define VAR_TLS_CIPHERSUITES 556
|
||||
#define VAR_TLS_USE_SNI 557
|
||||
#define VAR_IPSET 558
|
||||
#define VAR_IPSET_NAME_V4 559
|
||||
#define VAR_IPSET_NAME_V6 560
|
||||
#define VAR_TLS_SESSION_TICKET_KEYS 561
|
||||
#define VAR_RPZ 562
|
||||
#define VAR_TAGS 563
|
||||
#define VAR_RPZ_ACTION_OVERRIDE 564
|
||||
#define VAR_RPZ_CNAME_OVERRIDE 565
|
||||
#define VAR_RPZ_LOG 566
|
||||
#define VAR_RPZ_LOG_NAME 567
|
||||
#define VAR_DYNLIB 568
|
||||
#define VAR_DYNLIB_FILE 569
|
||||
#define VAR_EDNS_CLIENT_STRING 570
|
||||
#define VAR_EDNS_CLIENT_STRING_OPCODE 571
|
||||
#define VAR_NSID 572
|
||||
#define VAR_ZONEMD_PERMISSIVE_MODE 573
|
||||
#define VAR_ZONEMD_CHECK 574
|
||||
#define VAR_ZONEMD_REJECT_ABSENCE 575
|
||||
|
||||
/* Value type. */
|
||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||
|
|
@ -704,7 +706,7 @@ union YYSTYPE
|
|||
|
||||
char* str;
|
||||
|
||||
#line 708 "util/configparser.h"
|
||||
#line 710 "util/configparser.h"
|
||||
|
||||
};
|
||||
typedef union YYSTYPE YYSTYPE;
|
||||
|
|
|
|||
|
|
@ -139,6 +139,7 @@ extern struct config_parser_state* cfg_parser;
|
|||
%token VAR_DISABLE_DNSSEC_LAME_CHECK
|
||||
%token VAR_IP_RATELIMIT VAR_IP_RATELIMIT_SLABS VAR_IP_RATELIMIT_SIZE
|
||||
%token VAR_RATELIMIT VAR_RATELIMIT_SLABS VAR_RATELIMIT_SIZE
|
||||
%token VAR_OUTBOUND_MSG_RETRY
|
||||
%token VAR_RATELIMIT_FOR_DOMAIN VAR_RATELIMIT_BELOW_DOMAIN
|
||||
%token VAR_IP_RATELIMIT_FACTOR VAR_RATELIMIT_FACTOR
|
||||
%token VAR_SEND_CLIENT_SUBNET VAR_CLIENT_SUBNET_ZONE
|
||||
|
|
@ -270,9 +271,9 @@ content_server: server_num_threads | server_verbosity | server_port |
|
|||
server_ip_ratelimit_size | server_ratelimit_size |
|
||||
server_ratelimit_for_domain |
|
||||
server_ratelimit_below_domain | server_ratelimit_factor |
|
||||
server_ip_ratelimit_factor | server_send_client_subnet |
|
||||
server_client_subnet_zone | server_client_subnet_always_forward |
|
||||
server_client_subnet_opcode |
|
||||
server_ip_ratelimit_factor | server_outbound_msg_retry |
|
||||
server_send_client_subnet | server_client_subnet_zone |
|
||||
server_client_subnet_always_forward | server_client_subnet_opcode |
|
||||
server_max_client_subnet_ipv4 | server_max_client_subnet_ipv6 |
|
||||
server_min_client_subnet_ipv4 | server_min_client_subnet_ipv6 |
|
||||
server_max_ecs_tree_size_ipv4 | server_max_ecs_tree_size_ipv6 |
|
||||
|
|
@ -705,7 +706,7 @@ server_interface: VAR_INTERFACE STRING_ARG
|
|||
OUTYY(("P(server_interface:%s)\n", $2));
|
||||
if(cfg_parser->cfg->num_ifs == 0)
|
||||
cfg_parser->cfg->ifs = calloc(1, sizeof(char*));
|
||||
else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs,
|
||||
else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs,
|
||||
(cfg_parser->cfg->num_ifs+1)*sizeof(char*));
|
||||
if(!cfg_parser->cfg->ifs)
|
||||
yyerror("out of memory");
|
||||
|
|
@ -718,7 +719,7 @@ server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG
|
|||
OUTYY(("P(server_outgoing_interface:%s)\n", $2));
|
||||
if(cfg_parser->cfg->num_out_ifs == 0)
|
||||
cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*));
|
||||
else cfg_parser->cfg->out_ifs = realloc(
|
||||
else cfg_parser->cfg->out_ifs = realloc(
|
||||
cfg_parser->cfg->out_ifs,
|
||||
(cfg_parser->cfg->num_out_ifs+1)*sizeof(char*));
|
||||
if(!cfg_parser->cfg->out_ifs)
|
||||
|
|
@ -839,10 +840,10 @@ server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG
|
|||
server_tcp_mss: VAR_TCP_MSS STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_tcp_mss:%s)\n", $2));
|
||||
if(atoi($2) == 0 && strcmp($2, "0") != 0)
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->tcp_mss = atoi($2);
|
||||
free($2);
|
||||
if(atoi($2) == 0 && strcmp($2, "0") != 0)
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->tcp_mss = atoi($2);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG
|
||||
|
|
@ -1142,23 +1143,23 @@ server_log_queries: VAR_LOG_QUERIES STRING_ARG
|
|||
}
|
||||
;
|
||||
server_log_replies: VAR_LOG_REPLIES STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_log_replies:%s)\n", $2));
|
||||
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
|
||||
yyerror("expected yes or no.");
|
||||
else cfg_parser->cfg->log_replies = (strcmp($2, "yes")==0);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
{
|
||||
OUTYY(("P(server_log_replies:%s)\n", $2));
|
||||
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
|
||||
yyerror("expected yes or no.");
|
||||
else cfg_parser->cfg->log_replies = (strcmp($2, "yes")==0);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_log_tag_queryreply:%s)\n", $2));
|
||||
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
|
||||
yyerror("expected yes or no.");
|
||||
else cfg_parser->cfg->log_tag_queryreply = (strcmp($2, "yes")==0);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
{
|
||||
OUTYY(("P(server_log_tag_queryreply:%s)\n", $2));
|
||||
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
|
||||
yyerror("expected yes or no.");
|
||||
else cfg_parser->cfg->log_tag_queryreply = (strcmp($2, "yes")==0);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_log_servfail:%s)\n", $2));
|
||||
|
|
@ -1169,14 +1170,14 @@ server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG
|
|||
}
|
||||
;
|
||||
server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_log_local_actions:%s)\n", $2));
|
||||
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
|
||||
yyerror("expected yes or no.");
|
||||
else cfg_parser->cfg->log_local_actions = (strcmp($2, "yes")==0);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
{
|
||||
OUTYY(("P(server_log_local_actions:%s)\n", $2));
|
||||
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
|
||||
yyerror("expected yes or no.");
|
||||
else cfg_parser->cfg->log_local_actions = (strcmp($2, "yes")==0);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
server_chroot: VAR_CHROOT STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_chroot:%s)\n", $2));
|
||||
|
|
@ -1210,7 +1211,7 @@ server_directory: VAR_DIRECTORY STRING_ARG
|
|||
cfg_parser->chroot)) == 0)
|
||||
d += strlen(cfg_parser->chroot);
|
||||
if(d[0]) {
|
||||
if(chdir(d))
|
||||
if(chdir(d))
|
||||
log_err("cannot chdir to directory: %s (%s)",
|
||||
d, strerror(errno));
|
||||
}
|
||||
|
|
@ -1403,35 +1404,35 @@ server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG
|
|||
}
|
||||
;
|
||||
server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_so_reuseport:%s)\n", $2));
|
||||
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
|
||||
yyerror("expected yes or no.");
|
||||
else cfg_parser->cfg->so_reuseport =
|
||||
(strcmp($2, "yes")==0);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
{
|
||||
OUTYY(("P(server_so_reuseport:%s)\n", $2));
|
||||
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
|
||||
yyerror("expected yes or no.");
|
||||
else cfg_parser->cfg->so_reuseport =
|
||||
(strcmp($2, "yes")==0);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_ip_transparent:%s)\n", $2));
|
||||
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
|
||||
yyerror("expected yes or no.");
|
||||
else cfg_parser->cfg->ip_transparent =
|
||||
(strcmp($2, "yes")==0);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
{
|
||||
OUTYY(("P(server_ip_transparent:%s)\n", $2));
|
||||
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
|
||||
yyerror("expected yes or no.");
|
||||
else cfg_parser->cfg->ip_transparent =
|
||||
(strcmp($2, "yes")==0);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
server_ip_freebind: VAR_IP_FREEBIND STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_ip_freebind:%s)\n", $2));
|
||||
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
|
||||
yyerror("expected yes or no.");
|
||||
else cfg_parser->cfg->ip_freebind =
|
||||
(strcmp($2, "yes")==0);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
{
|
||||
OUTYY(("P(server_ip_freebind:%s)\n", $2));
|
||||
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
|
||||
yyerror("expected yes or no.");
|
||||
else cfg_parser->cfg->ip_freebind =
|
||||
(strcmp($2, "yes")==0);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
server_ip_dscp: VAR_IP_DSCP STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_ip_dscp:%s)\n", $2));
|
||||
|
|
@ -2400,13 +2401,13 @@ server_ratelimit: VAR_RATELIMIT STRING_ARG
|
|||
}
|
||||
;
|
||||
server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_ip_ratelimit_size:%s)\n", $2));
|
||||
if(!cfg_parse_memsize($2, &cfg_parser->cfg->ip_ratelimit_size))
|
||||
yyerror("memory size expected");
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
{
|
||||
OUTYY(("P(server_ip_ratelimit_size:%s)\n", $2));
|
||||
if(!cfg_parse_memsize($2, &cfg_parser->cfg->ip_ratelimit_size))
|
||||
yyerror("memory size expected");
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_ratelimit_size:%s)\n", $2));
|
||||
|
|
@ -2416,18 +2417,18 @@ server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG
|
|||
}
|
||||
;
|
||||
server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", $2));
|
||||
if(atoi($2) == 0)
|
||||
yyerror("number expected");
|
||||
else {
|
||||
cfg_parser->cfg->ip_ratelimit_slabs = atoi($2);
|
||||
if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs))
|
||||
yyerror("must be a power of 2");
|
||||
}
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
{
|
||||
OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", $2));
|
||||
if(atoi($2) == 0)
|
||||
yyerror("number expected");
|
||||
else {
|
||||
cfg_parser->cfg->ip_ratelimit_slabs = atoi($2);
|
||||
if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs))
|
||||
yyerror("must be a power of 2");
|
||||
}
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_ratelimit_slabs:%s)\n", $2));
|
||||
|
|
@ -2472,12 +2473,12 @@ server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG
|
|||
}
|
||||
;
|
||||
server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_ip_ratelimit_factor:%s)\n", $2));
|
||||
if(atoi($2) == 0 && strcmp($2, "0") != 0)
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->ip_ratelimit_factor = atoi($2);
|
||||
free($2);
|
||||
{
|
||||
OUTYY(("P(server_ip_ratelimit_factor:%s)\n", $2));
|
||||
if(atoi($2) == 0 && strcmp($2, "0") != 0)
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->ip_ratelimit_factor = atoi($2);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG
|
||||
|
|
@ -2489,6 +2490,15 @@ server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG
|
|||
free($2);
|
||||
}
|
||||
;
|
||||
server_outbound_msg_retry: VAR_OUTBOUND_MSG_RETRY STRING_ARG
|
||||
{
|
||||
OUTYY(("P(server_outbound_msg_retry:%s)\n", $2));
|
||||
if(atoi($2) == 0 && strcmp($2, "0") != 0)
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->outbound_msg_retry = atoi($2);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
server_low_rtt: VAR_LOW_RTT STRING_ARG
|
||||
{
|
||||
OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n"));
|
||||
|
|
@ -3386,44 +3396,44 @@ dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG
|
|||
;
|
||||
dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG
|
||||
{
|
||||
OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", $2));
|
||||
if(!cfg_parse_memsize($2, &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
|
||||
yyerror("memory size expected");
|
||||
free($2);
|
||||
OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", $2));
|
||||
if(!cfg_parse_memsize($2, &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
|
||||
yyerror("memory size expected");
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG
|
||||
{
|
||||
OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", $2));
|
||||
if(atoi($2) == 0)
|
||||
yyerror("number expected");
|
||||
else {
|
||||
cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi($2);
|
||||
if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs))
|
||||
yyerror("must be a power of 2");
|
||||
}
|
||||
free($2);
|
||||
OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", $2));
|
||||
if(atoi($2) == 0)
|
||||
yyerror("number expected");
|
||||
else {
|
||||
cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi($2);
|
||||
if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs))
|
||||
yyerror("must be a power of 2");
|
||||
}
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG
|
||||
{
|
||||
OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", $2));
|
||||
if(!cfg_parse_memsize($2, &cfg_parser->cfg->dnscrypt_nonce_cache_size))
|
||||
yyerror("memory size expected");
|
||||
free($2);
|
||||
OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", $2));
|
||||
if(!cfg_parse_memsize($2, &cfg_parser->cfg->dnscrypt_nonce_cache_size))
|
||||
yyerror("memory size expected");
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG
|
||||
{
|
||||
OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", $2));
|
||||
if(atoi($2) == 0)
|
||||
yyerror("number expected");
|
||||
else {
|
||||
cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi($2);
|
||||
if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs))
|
||||
yyerror("must be a power of 2");
|
||||
}
|
||||
free($2);
|
||||
OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", $2));
|
||||
if(atoi($2) == 0)
|
||||
yyerror("number expected");
|
||||
else {
|
||||
cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi($2);
|
||||
if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs))
|
||||
yyerror("must be a power of 2");
|
||||
}
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
cachedbstart: VAR_CACHEDB
|
||||
|
|
|
|||
Loading…
Reference in a new issue