diff options
Diffstat (limited to 'contrib/unbound/util/configparser.y')
| -rw-r--r-- | contrib/unbound/util/configparser.y | 25 |
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")); |
