aboutsummaryrefslogtreecommitdiff
path: root/contrib/unbound/util/configparser.y
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/unbound/util/configparser.y')
-rw-r--r--contrib/unbound/util/configparser.y25
1 files changed, 19 insertions, 6 deletions
diff --git a/contrib/unbound/util/configparser.y b/contrib/unbound/util/configparser.y
index ebb23f41cbd3..bef1fd38d1dd 100644
--- a/contrib/unbound/util/configparser.y
+++ b/contrib/unbound/util/configparser.y
@@ -215,6 +215,7 @@ extern struct config_parser_state* cfg_parser;
%token VAR_LOG_DESTADDR VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED
%token VAR_COOKIE_SECRET_FILE VAR_ITER_SCRUB_NS VAR_ITER_SCRUB_CNAME
%token VAR_MAX_GLOBAL_QUOTA VAR_HARDEN_UNVERIFIED_GLUE VAR_LOG_TIME_ISO
+%token VAR_ITER_SCRUB_PROMISCUOUS
%%
toplevelvars: /* empty */ | toplevelvars toplevelvar ;
@@ -356,7 +357,7 @@ content_server: server_num_threads | server_verbosity | server_port |
server_harden_unknown_additional | server_disable_edns_do |
server_log_destaddr | server_cookie_secret_file |
server_iter_scrub_ns | server_iter_scrub_cname | server_max_global_quota |
- server_harden_unverified_glue | server_log_time_iso
+ server_harden_unverified_glue | server_log_time_iso | server_iter_scrub_promiscuous
;
stub_clause: stubstart contents_stub
{
@@ -954,7 +955,7 @@ 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");
+ yyerror("number expected");
else cfg_parser->cfg->tcp_mss = atoi($2);
free($2);
}
@@ -1168,11 +1169,13 @@ server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG
free(cfg_parser->cfg->http_endpoint);
if($2 && $2[0] != '/') {
cfg_parser->cfg->http_endpoint = malloc(strlen($2)+2);
- if(!cfg_parser->cfg->http_endpoint)
+ if(cfg_parser->cfg->http_endpoint) {
+ cfg_parser->cfg->http_endpoint[0] = '/';
+ memmove(cfg_parser->cfg->http_endpoint+1, $2,
+ strlen($2)+1);
+ } else {
yyerror("out of memory");
- cfg_parser->cfg->http_endpoint[0] = '/';
- memmove(cfg_parser->cfg->http_endpoint+1, $2,
- strlen($2)+1);
+ }
free($2);
} else {
cfg_parser->cfg->http_endpoint = $2;
@@ -4238,6 +4241,16 @@ server_max_global_quota: VAR_MAX_GLOBAL_QUOTA STRING_ARG
free($2);
}
;
+server_iter_scrub_promiscuous: VAR_ITER_SCRUB_PROMISCUOUS STRING_ARG
+ {
+ OUTYY(("P(server_iter_scrub_promiscuous:%s)\n", $2));
+ if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->iter_scrub_promiscuous =
+ (strcmp($2, "yes")==0);
+ free($2);
+ }
+ ;
ipsetstart: VAR_IPSET
{
OUTYY(("\nP(ipset:)\n"));