Lines Matching refs:cfg_parser

92 extern struct config_parser_state* cfg_parser;
3077 cfg_parser->started_toplevel = 0;
3086 cfg_parser->started_toplevel = 1;
3095 if(cfg_parser->cfg->stubs &&
3096 !cfg_parser->cfg->stubs->name)
3107 cfg_parser->started_toplevel = 1;
3110 s->next = cfg_parser->cfg->stubs;
3111 cfg_parser->cfg->stubs = s;
3123 if(cfg_parser->cfg->forwards &&
3124 !cfg_parser->cfg->forwards->name)
3135 cfg_parser->started_toplevel = 1;
3138 s->next = cfg_parser->cfg->forwards;
3139 cfg_parser->cfg->forwards = s;
3151 if(cfg_parser->cfg->views &&
3152 !cfg_parser->cfg->views->name)
3163 cfg_parser->started_toplevel = 1;
3166 s->next = cfg_parser->cfg->views;
3167 cfg_parser->cfg->views = s;
3180 cfg_parser->started_toplevel = 1;
3183 s->next = cfg_parser->cfg->auths;
3184 cfg_parser->cfg->auths = s;
3205 bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
3212 cfg_parser->cfg->auths->rpz_taglist = bitlist;
3213 cfg_parser->cfg->auths->rpz_taglistlen = len;
3230 cfg_parser->cfg->auths->rpz_action_override = NULL;
3233 cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str);
3243 free(cfg_parser->cfg->auths->rpz_cname);
3244 cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str);
3255 else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0);
3265 free(cfg_parser->cfg->auths->rpz_log_name);
3266 cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str);
3277 else cfg_parser->cfg->auths->rpz_signal_nxdomain_ra = (strcmp((yyvsp[0].str), "yes")==0);
3288 cfg_parser->started_toplevel = 1;
3291 s->next = cfg_parser->cfg->auths;
3292 cfg_parser->cfg->auths = s;
3311 else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
3323 else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
3334 cfg_parser->cfg->stat_interval = 0;
3337 else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
3349 else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
3361 else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
3373 else cfg_parser->cfg->stat_inhibit_zero = (strcmp((yyvsp[0].str), "yes")==0);
3385 else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
3396 cfg_parser->cfg->shm_key = 0;
3399 else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
3411 else cfg_parser->cfg->port = atoi((yyvsp[0].str));
3422 if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str)))
3437 if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone,
3456 cfg_parser->cfg->client_subnet_always_forward =
3488 cfg_parser->cfg->max_client_subnet_ipv4 = 32;
3490 cfg_parser->cfg->max_client_subnet_ipv4 = 0;
3491 else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str));
3508 cfg_parser->cfg->max_client_subnet_ipv6 = 128;
3510 cfg_parser->cfg->max_client_subnet_ipv6 = 0;
3511 else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str));
3528 cfg_parser->cfg->min_client_subnet_ipv4 = 32;
3530 cfg_parser->cfg->min_client_subnet_ipv4 = 0;
3531 else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str));
3548 cfg_parser->cfg->min_client_subnet_ipv6 = 128;
3550 cfg_parser->cfg->min_client_subnet_ipv6 = 0;
3551 else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str));
3568 cfg_parser->cfg->max_ecs_tree_size_ipv4 = 0;
3569 else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi((yyvsp[0].str));
3586 cfg_parser->cfg->max_ecs_tree_size_ipv6 = 0;
3587 else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi((yyvsp[0].str));
3600 if(cfg_parser->cfg->num_ifs == 0)
3601 cfg_parser->cfg->ifs = calloc(1, sizeof(char*));
3602 else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs,
3603 (cfg_parser->cfg->num_ifs+1)*sizeof(char*));
3604 if(!cfg_parser->cfg->ifs)
3607 cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
3616 if(cfg_parser->cfg->num_out_ifs == 0)
3617 cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*));
3618 else cfg_parser->cfg->out_ifs = realloc(
3619 cfg_parser->cfg->out_ifs,
3620 (cfg_parser->cfg->num_out_ifs+1)*sizeof(char*));
3621 if(!cfg_parser->cfg->out_ifs)
3624 cfg_parser->cfg->out_ifs[
3625 cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
3636 else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
3647 cfg_parser->cfg->outgoing_avail_ports, 65536))
3659 cfg_parser->cfg->outgoing_avail_ports, 65536))
3672 else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
3684 else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
3696 else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
3706 free(cfg_parser->cfg->if_automatic_ports);
3707 cfg_parser->cfg->if_automatic_ports = (yyvsp[0].str);
3718 else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
3730 else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
3742 else cfg_parser->cfg->do_nat64 = (strcmp((yyvsp[0].str), "yes")==0);
3754 else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
3766 else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
3778 else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
3790 else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
3802 else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
3814 else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
3827 cfg_parser->cfg->tcp_idle_timeout = 120000;
3829 cfg_parser->cfg->tcp_idle_timeout = 1;
3830 else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str));
3843 cfg_parser->cfg->max_reuse_tcp_queries = 0;
3844 else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str));
3857 cfg_parser->cfg->tcp_reuse_timeout = 0;
3858 else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str));
3871 cfg_parser->cfg->tcp_auth_query_timeout = 0;
3872 else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str));
3884 else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0);
3897 cfg_parser->cfg->tcp_keepalive_timeout = 6553500;
3899 cfg_parser->cfg->tcp_keepalive_timeout = 0;
3900 else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str));
3913 cfg_parser->cfg->sock_queue_timeout = 6553500;
3915 cfg_parser->cfg->sock_queue_timeout = 0;
3916 else cfg_parser->cfg->sock_queue_timeout = atoi((yyvsp[0].str));
3928 else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
3940 else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0);
3952 else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
3962 free(cfg_parser->cfg->ssl_service_key);
3963 cfg_parser->cfg->ssl_service_key = (yyvsp[0].str);
3972 free(cfg_parser->cfg->ssl_service_pem);
3973 cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str);
3984 else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
3994 free(cfg_parser->cfg->tls_cert_bundle);
3995 cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str);
4006 else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0);
4016 if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port,
4027 free(cfg_parser->cfg->tls_ciphers);
4028 cfg_parser->cfg->tls_ciphers = (yyvsp[0].str);
4037 free(cfg_parser->cfg->tls_ciphersuites);
4038 cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str);
4047 if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys,
4060 else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0);
4072 else cfg_parser->cfg->https_port = atoi((yyvsp[0].str));
4082 free(cfg_parser->cfg->http_endpoint);
4084 cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[0].str))+2);
4085 if(!cfg_parser->cfg->http_endpoint)
4087 cfg_parser->cfg->http_endpoint[0] = '/';
4088 memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[0].str),
4092 cfg_parser->cfg->http_endpoint = (yyvsp[0].str);
4104 else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str));
4115 &cfg_parser->cfg->http_query_buffer_size))
4127 &cfg_parser->cfg->http_response_buffer_size))
4140 else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0);
4152 else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0);
4165 "over QUIC.", cfg_parser->filename, cfg_parser->line);
4169 else cfg_parser->cfg->quic_port = atoi((yyvsp[0].str));
4179 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->quic_size))
4192 else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
4204 else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
4216 else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[0].str), "yes")==0);
4233 else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
4245 else cfg_parser->cfg->log_time_iso = (strcmp((yyvsp[0].str), "yes")==0);
4257 else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
4269 else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
4281 else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0);
4293 else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0);
4305 else cfg_parser->cfg->log_destaddr = (strcmp((yyvsp[0].str), "yes")==0);
4317 else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0);
4327 free(cfg_parser->cfg->chrootdir);
4328 cfg_parser->cfg->chrootdir = (yyvsp[0].str);
4337 free(cfg_parser->cfg->username);
4338 cfg_parser->cfg->username = (yyvsp[0].str);
4347 free(cfg_parser->cfg->directory);
4348 cfg_parser->cfg->directory = (yyvsp[0].str);
4353 w_config_adjust_directory(cfg_parser->cfg);
4355 d = cfg_parser->cfg->directory;
4358 if(cfg_parser->chroot && cfg_parser->chroot[0] &&
4359 strncmp(d, cfg_parser->chroot, strlen(
4360 cfg_parser->chroot)) == 0)
4361 d += strlen(cfg_parser->chroot);
4376 free(cfg_parser->cfg->logfile);
4377 cfg_parser->cfg->logfile = (yyvsp[0].str);
4378 cfg_parser->cfg->use_syslog = 0;
4387 free(cfg_parser->cfg->pidfile);
4388 cfg_parser->cfg->pidfile = (yyvsp[0].str);
4397 if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str)))
4427 if(!cfg_strlist_insert(&cfg_parser->cfg->
4438 if(!cfg_strlist_insert(&cfg_parser->cfg->
4449 if(!cfg_strlist_insert(&cfg_parser->cfg->
4460 if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str)))
4473 cfg_parser->cfg->trust_anchor_signaling =
4487 cfg_parser->cfg->root_key_sentinel =
4498 if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str)))
4510 else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
4522 else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
4534 else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
4546 else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[0].str), "yes")==0);
4556 free(cfg_parser->cfg->identity);
4557 cfg_parser->cfg->identity = (yyvsp[0].str);
4566 free(cfg_parser->cfg->version);
4567 cfg_parser->cfg->version = (yyvsp[0].str);
4576 free(cfg_parser->cfg->http_user_agent);
4577 cfg_parser->cfg->http_user_agent = (yyvsp[0].str);
4586 free(cfg_parser->cfg->nsid_cfg_str);
4587 cfg_parser->cfg->nsid_cfg_str = (yyvsp[0].str);
4588 free(cfg_parser->cfg->nsid);
4589 cfg_parser->cfg->nsid = NULL;
4590 cfg_parser->cfg->nsid_len = 0;
4593 else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid(
4594 (yyvsp[0].str), &cfg_parser->cfg->nsid_len)))
4605 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
4616 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
4629 else cfg_parser->cfg->so_reuseport =
4642 else cfg_parser->cfg->ip_transparent =
4655 else cfg_parser->cfg->ip_freebind =
4673 cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str));
4683 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size))
4699 cfg_parser->cfg->edns_buffer_size = 65535;
4700 else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
4714 else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
4724 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
4738 cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[0].str));
4739 if(!is_pow2(cfg_parser->cfg->msg_cache_slabs))
4753 else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
4765 else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
4777 else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
4789 else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0);
4801 else cfg_parser->cfg->unblock_lan_zones =
4814 else cfg_parser->cfg->insecure_lan_zones =
4825 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
4839 cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[0].str));
4840 if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs))
4854 else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
4877 else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
4901 cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[0].str));
4902 if(!is_pow2(cfg_parser->cfg->infra_cache_slabs))
4916 else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
4928 else cfg_parser->cfg->infra_cache_max_rtt = atoi((yyvsp[0].str));
4940 else cfg_parser->cfg->infra_keep_probing =
4951 free(cfg_parser->cfg->target_fetch_policy);
4952 cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str);
4963 else cfg_parser->cfg->harden_short_bufsize =
4976 else cfg_parser->cfg->harden_large_queries =
4989 else cfg_parser->cfg->harden_glue =
5002 else cfg_parser->cfg->harden_unverified_glue =
5015 else cfg_parser->cfg->harden_dnssec_stripped =
5028 else cfg_parser->cfg->harden_below_nxdomain =
5041 else cfg_parser->cfg->harden_referral_path =
5054 else cfg_parser->cfg->harden_algo_downgrade =
5067 else cfg_parser->cfg->harden_unknown_additional =
5080 else cfg_parser->cfg->use_caps_bits_for_id =
5091 if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str)))
5101 if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str)))
5111 if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str)))
5123 else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
5135 else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
5147 else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0);
5159 else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
5169 if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str)))
5181 else cfg_parser->cfg->donotquery_localhost =
5193 if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str)))
5205 &cfg_parser->cfg->interface_actions, (yyvsp[-1].str), (yyvsp[0].str)))
5215 free(cfg_parser->cfg->module_conf);
5216 cfg_parser->cfg->module_conf = (yyvsp[0].str);
5226 cfg_parser->cfg->val_date_override = 0;
5228 cfg_parser->cfg->val_date_override =
5230 if(!cfg_parser->cfg->val_date_override)
5235 cfg_parser->cfg->val_date_override = atoi((yyvsp[0].str));
5247 cfg_parser->cfg->val_sig_skew_min = 0;
5249 cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[0].str));
5250 if(!cfg_parser->cfg->val_sig_skew_min)
5263 cfg_parser->cfg->val_sig_skew_max = 0;
5265 cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[0].str));
5266 if(!cfg_parser->cfg->val_sig_skew_max)
5279 cfg_parser->cfg->val_max_restart = 0;
5281 cfg_parser->cfg->val_max_restart = atoi((yyvsp[0].str));
5282 if(!cfg_parser->cfg->val_max_restart)
5296 else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
5308 else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
5320 else cfg_parser->cfg->min_negative_ttl = atoi((yyvsp[0].str));
5332 else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
5344 else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
5356 else cfg_parser->cfg->val_clean_additional =
5369 else cfg_parser->cfg->val_permissive_mode =
5383 cfg_parser->cfg->aggressive_nsec =
5396 else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
5408 else cfg_parser->cfg->disable_edns_do = (strcmp((yyvsp[0].str), "yes")==0);
5420 else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
5432 else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str));
5444 else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0);
5456 else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str));
5468 else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str));
5480 else cfg_parser->cfg->ede_serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
5492 else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0);
5536 else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
5546 free(cfg_parser->cfg->val_nsec3_key_iterations);
5547 cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str);
5558 else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0);
5570 else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
5582 else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
5594 else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
5606 else cfg_parser->cfg->permit_small_holddown =
5617 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size))
5631 cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[0].str));
5632 if(!is_pow2(cfg_parser->cfg->key_cache_slabs))
5644 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size))
5680 if(!cfg_strlist_insert(&cfg_parser->cfg->
5696 if(!cfg_strlist_insert(&cfg_parser->cfg->
5702 if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones,
5714 if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str)))
5728 if(!cfg_strlist_insert(&cfg_parser->cfg->
5744 else cfg_parser->cfg->minimal_responses =
5757 else cfg_parser->cfg->rrset_roundrobin =
5768 cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str));
5778 cfg_parser->cfg->discard_timeout = atoi((yyvsp[0].str));
5788 cfg_parser->cfg->wait_limit = atoi((yyvsp[0].str));
5798 cfg_parser->cfg->wait_limit_cookie = atoi((yyvsp[0].str));
5813 if(!cfg_str2list_insert(&cfg_parser->cfg->
5831 if(!cfg_str2list_insert(&cfg_parser->cfg->
5844 cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str));
5854 free(cfg_parser->cfg->dns64_prefix);
5855 cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
5866 else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
5876 if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa,
5887 free(cfg_parser->cfg->nat64_prefix);
5888 cfg_parser->cfg->nat64_prefix = (yyvsp[0].str);
5900 if(!config_add_tag(cfg_parser->cfg, p))
5914 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
5924 &cfg_parser->cfg->local_zone_tags,
5938 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
5948 &cfg_parser->cfg->acl_tags,
5962 if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
5977 if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
5992 if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
6007 if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
6019 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
6029 &cfg_parser->cfg->interface_tags,
6043 if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_actions,
6058 if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_datas,
6073 if(!cfg_str2list_insert(&cfg_parser->cfg->interface_view,
6085 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
6095 &cfg_parser->cfg->respip_tags,
6111 else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str));
6123 else cfg_parser->cfg->ip_ratelimit_cookie = atoi((yyvsp[0].str));
6135 else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
6145 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size))
6156 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size))
6170 cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[0].str));
6171 if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs))
6186 cfg_parser->cfg->ratelimit_slabs = atoi((yyvsp[0].str));
6187 if(!is_pow2(cfg_parser->cfg->ratelimit_slabs))
6204 if(!cfg_str2list_insert(&cfg_parser->cfg->
6222 if(!cfg_str2list_insert(&cfg_parser->cfg->
6237 else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str));
6249 else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
6261 else cfg_parser->cfg->ip_ratelimit_backoff =
6274 else cfg_parser->cfg->ratelimit_backoff =
6287 else cfg_parser->cfg->outbound_msg_retry = atoi((yyvsp[0].str));
6299 else cfg_parser->cfg->max_sent_count = atoi((yyvsp[0].str));
6311 else cfg_parser->cfg->max_query_restarts = atoi((yyvsp[0].str));
6332 else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str));
6344 else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str));
6356 else cfg_parser->cfg->qname_minimisation =
6369 else cfg_parser->cfg->qname_minimisation_strict =
6382 else cfg_parser->cfg->pad_responses =
6395 else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str));
6407 else cfg_parser->cfg->pad_queries =
6420 else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str));
6433 else cfg_parser->cfg->ipsecmod_enabled = (strcmp((yyvsp[0].str), "yes")==0);
6449 else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp((yyvsp[0].str), "yes")==0);
6463 free(cfg_parser->cfg->ipsecmod_hook);
6464 cfg_parser->cfg->ipsecmod_hook = (yyvsp[0].str);
6480 else cfg_parser->cfg->ipsecmod_max_ttl = atoi((yyvsp[0].str));
6495 if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[0].str)))
6512 else cfg_parser->cfg->ipsecmod_strict = (strcmp((yyvsp[0].str), "yes")==0);
6527 &cfg_parser->cfg->edns_client_strings, (yyvsp[-1].str), (yyvsp[0].str)))
6542 else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[0].str));
6554 else cfg_parser->cfg->ede = (strcmp((yyvsp[0].str), "yes")==0);
6566 else cfg_parser->cfg->dns_error_reporting = (strcmp((yyvsp[0].str), "yes")==0);
6576 if(!cfg_strlist_insert(&cfg_parser->cfg->proxy_protocol_port, (yyvsp[0].str)))
6586 if(cfg_parser->cfg->stubs->name)
6589 free(cfg_parser->cfg->stubs->name);
6590 cfg_parser->cfg->stubs->name = (yyvsp[0].str);
6599 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str)))
6609 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str)))
6621 else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
6633 else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
6645 else cfg_parser->cfg->stubs->ssl_upstream =
6658 else cfg_parser->cfg->stubs->tcp_upstream =
6671 else cfg_parser->cfg->stubs->isprime =
6682 if(cfg_parser->cfg->forwards->name)
6685 free(cfg_parser->cfg->forwards->name);
6686 cfg_parser->cfg->forwards->name = (yyvsp[0].str);
6695 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str)))
6705 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str)))
6717 else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
6729 else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
6741 else cfg_parser->cfg->forwards->ssl_upstream =
6754 else cfg_parser->cfg->forwards->tcp_upstream =
6765 if(cfg_parser->cfg->auths->name)
6768 free(cfg_parser->cfg->auths->name);
6769 cfg_parser->cfg->auths->name = (yyvsp[0].str);
6778 free(cfg_parser->cfg->auths->zonefile);
6779 cfg_parser->cfg->auths->zonefile = (yyvsp[0].str);
6788 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str)))
6798 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str)))
6808 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify,
6821 else cfg_parser->cfg->auths->zonemd_check =
6834 else cfg_parser->cfg->auths->zonemd_reject_absence =
6847 else cfg_parser->cfg->auths->for_downstream =
6860 else cfg_parser->cfg->auths->for_upstream =
6873 else cfg_parser->cfg->auths->fallback_enabled =
6884 if(cfg_parser->cfg->views->name)
6887 free(cfg_parser->cfg->views->name);
6888 cfg_parser->cfg->views->name = (yyvsp[0].str);
6921 if(!cfg_strlist_insert(&cfg_parser->cfg->views->
6937 if(!cfg_strlist_insert(&cfg_parser->cfg->views->
6944 &cfg_parser->cfg->views->local_zones,
6958 &cfg_parser->cfg->views->respip_actions, (yyvsp[-1].str), (yyvsp[0].str)))
6970 &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str)))
6980 if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
6995 if(!cfg_strlist_insert(&cfg_parser->cfg->views->
7011 else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
7021 cfg_parser->started_toplevel = 1;
7032 else cfg_parser->cfg->remote_control_enable =
7045 else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
7055 if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
7065 cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0);
7075 free(cfg_parser->cfg->server_key_file);
7076 cfg_parser->cfg->server_key_file = (yyvsp[0].str);
7085 free(cfg_parser->cfg->server_cert_file);
7086 cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
7095 free(cfg_parser->cfg->control_key_file);
7096 cfg_parser->cfg->control_key_file = (yyvsp[0].str);
7105 free(cfg_parser->cfg->control_cert_file);
7106 cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
7115 cfg_parser->started_toplevel = 1;
7126 else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
7138 else cfg_parser->cfg->dnstap_bidirectional =
7149 free(cfg_parser->cfg->dnstap_socket_path);
7150 cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
7159 free(cfg_parser->cfg->dnstap_ip);
7160 cfg_parser->cfg->dnstap_ip = (yyvsp[0].str);
7171 else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0);
7181 free(cfg_parser->cfg->dnstap_tls_server_name);
7182 cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str);
7191 free(cfg_parser->cfg->dnstap_tls_cert_bundle);
7192 cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str);
7201 free(cfg_parser->cfg->dnstap_tls_client_key_file);
7202 cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str);
7211 free(cfg_parser->cfg->dnstap_tls_client_cert_file);
7212 cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str);
7223 else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
7235 else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
7245 free(cfg_parser->cfg->dnstap_identity);
7246 cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
7255 free(cfg_parser->cfg->dnstap_version);
7256 cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
7267 else cfg_parser->cfg->dnstap_log_resolver_query_messages =
7280 else cfg_parser->cfg->dnstap_log_resolver_response_messages =
7293 else cfg_parser->cfg->dnstap_log_client_query_messages =
7306 else cfg_parser->cfg->dnstap_log_client_response_messages =
7319 else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
7332 else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
7347 else cfg_parser->cfg->dnstap_sample_rate = atoi((yyvsp[0].str));
7357 cfg_parser->started_toplevel = 1;
7366 if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str)))
7376 cfg_parser->started_toplevel = 1;
7385 if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str)))
7397 else cfg_parser->cfg->disable_dnssec_lame_check =
7408 free(cfg_parser->cfg->log_identity);
7409 cfg_parser->cfg->log_identity = (yyvsp[0].str);
7419 if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions,
7430 if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data,
7441 cfg_parser->started_toplevel = 1;
7452 else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
7464 else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
7474 free(cfg_parser->cfg->dnscrypt_provider);
7475 cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str);
7484 if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
7486 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
7496 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str)))
7506 if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
7508 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
7518 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
7532 cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[0].str));
7533 if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs))
7545 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size))
7559 cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi((yyvsp[0].str));
7560 if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs))
7572 cfg_parser->started_toplevel = 1;
7582 free(cfg_parser->cfg->cachedb_backend);
7583 cfg_parser->cfg->cachedb_backend = (yyvsp[0].str);
7597 free(cfg_parser->cfg->cachedb_secret);
7598 cfg_parser->cfg->cachedb_secret = (yyvsp[0].str);
7614 else cfg_parser->cfg->cachedb_no_store = (strcmp((yyvsp[0].str), "yes")==0);
7630 else cfg_parser->cfg->cachedb_check_when_serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
7644 free(cfg_parser->cfg->redis_server_host);
7645 cfg_parser->cfg->redis_server_host = (yyvsp[0].str);
7659 free(cfg_parser->cfg->redis_replica_server_host);
7660 cfg_parser->cfg->redis_replica_server_host = (yyvsp[0].str);
7678 else cfg_parser->cfg->redis_server_port = port;
7696 else cfg_parser->cfg->redis_replica_server_port = port;
7710 free(cfg_parser->cfg->redis_server_path);
7711 cfg_parser->cfg->redis_server_path = (yyvsp[0].str);
7725 free(cfg_parser->cfg->redis_replica_server_path);
7726 cfg_parser->cfg->redis_replica_server_path = (yyvsp[0].str);
7740 free(cfg_parser->cfg->redis_server_password);
7741 cfg_parser->cfg->redis_server_password = (yyvsp[0].str);
7755 free(cfg_parser->cfg->redis_replica_server_password);
7756 cfg_parser->cfg->redis_replica_server_password = (yyvsp[0].str);
7772 else cfg_parser->cfg->redis_timeout = atoi((yyvsp[0].str));
7788 else cfg_parser->cfg->redis_replica_timeout = atoi((yyvsp[0].str));
7804 else cfg_parser->cfg->redis_command_timeout = atoi((yyvsp[0].str));
7820 else cfg_parser->cfg->redis_replica_command_timeout = atoi((yyvsp[0].str));
7836 else cfg_parser->cfg->redis_connect_timeout = atoi((yyvsp[0].str));
7852 else cfg_parser->cfg->redis_replica_connect_timeout = atoi((yyvsp[0].str));
7868 else cfg_parser->cfg->redis_expire_records = (strcmp((yyvsp[0].str), "yes")==0);
7886 else cfg_parser->cfg->redis_logical_db = db;
7904 else cfg_parser->cfg->redis_replica_logical_db = db;
7920 if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, (yyvsp[-1].str), (yyvsp[0].str)))
7933 else cfg_parser->cfg->do_answer_cookie = (strcmp((yyvsp[0].str), "yes")==0);
7950 cfg_parser->cfg->cookie_secret_len = secret_len;
7951 memcpy(cfg_parser->cfg->cookie_secret, secret, sizeof(secret));
7962 free(cfg_parser->cfg->cookie_secret_file);
7963 cfg_parser->cfg->cookie_secret_file = (yyvsp[0].str);
7974 else cfg_parser->cfg->iter_scrub_ns = atoi((yyvsp[0].str));
7986 else cfg_parser->cfg->iter_scrub_cname = atoi((yyvsp[0].str));
7998 else cfg_parser->cfg->max_global_quota = atoi((yyvsp[0].str));
8008 cfg_parser->started_toplevel = 1;
8018 if(cfg_parser->cfg->ipset_name_v4)
8021 free(cfg_parser->cfg->ipset_name_v4);
8022 cfg_parser->cfg->ipset_name_v4 = (yyvsp[0].str);
8036 if(cfg_parser->cfg->ipset_name_v6)
8039 free(cfg_parser->cfg->ipset_name_v6);
8040 cfg_parser->cfg->ipset_name_v6 = (yyvsp[0].str);