Lines Matching refs:cfg_parser
92 extern struct config_parser_state* cfg_parser;
3074 cfg_parser->started_toplevel = 0;
3083 cfg_parser->started_toplevel = 1;
3092 if(cfg_parser->cfg->stubs &&
3093 !cfg_parser->cfg->stubs->name)
3104 cfg_parser->started_toplevel = 1;
3107 s->next = cfg_parser->cfg->stubs;
3108 cfg_parser->cfg->stubs = s;
3120 if(cfg_parser->cfg->forwards &&
3121 !cfg_parser->cfg->forwards->name)
3132 cfg_parser->started_toplevel = 1;
3135 s->next = cfg_parser->cfg->forwards;
3136 cfg_parser->cfg->forwards = s;
3148 if(cfg_parser->cfg->views &&
3149 !cfg_parser->cfg->views->name)
3160 cfg_parser->started_toplevel = 1;
3163 s->next = cfg_parser->cfg->views;
3164 cfg_parser->cfg->views = s;
3177 cfg_parser->started_toplevel = 1;
3180 s->next = cfg_parser->cfg->auths;
3181 cfg_parser->cfg->auths = s;
3204 bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
3211 cfg_parser->cfg->auths->rpz_taglist = bitlist;
3212 cfg_parser->cfg->auths->rpz_taglistlen = len;
3229 cfg_parser->cfg->auths->rpz_action_override = NULL;
3232 cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str);
3242 free(cfg_parser->cfg->auths->rpz_cname);
3243 cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str);
3254 else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0);
3264 free(cfg_parser->cfg->auths->rpz_log_name);
3265 cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str);
3276 else cfg_parser->cfg->auths->rpz_signal_nxdomain_ra = (strcmp((yyvsp[0].str), "yes")==0);
3287 cfg_parser->started_toplevel = 1;
3290 s->next = cfg_parser->cfg->auths;
3291 cfg_parser->cfg->auths = s;
3312 else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
3324 else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
3335 cfg_parser->cfg->stat_interval = 0;
3338 else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
3350 else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
3362 else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
3374 else cfg_parser->cfg->stat_inhibit_zero = (strcmp((yyvsp[0].str), "yes")==0);
3386 else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
3397 cfg_parser->cfg->shm_key = 0;
3400 else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
3412 else cfg_parser->cfg->port = atoi((yyvsp[0].str));
3423 if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str)))
3438 if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone,
3457 cfg_parser->cfg->client_subnet_always_forward =
3489 cfg_parser->cfg->max_client_subnet_ipv4 = 32;
3491 cfg_parser->cfg->max_client_subnet_ipv4 = 0;
3492 else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str));
3509 cfg_parser->cfg->max_client_subnet_ipv6 = 128;
3511 cfg_parser->cfg->max_client_subnet_ipv6 = 0;
3512 else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str));
3529 cfg_parser->cfg->min_client_subnet_ipv4 = 32;
3531 cfg_parser->cfg->min_client_subnet_ipv4 = 0;
3532 else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str));
3549 cfg_parser->cfg->min_client_subnet_ipv6 = 128;
3551 cfg_parser->cfg->min_client_subnet_ipv6 = 0;
3552 else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str));
3569 cfg_parser->cfg->max_ecs_tree_size_ipv4 = 0;
3570 else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi((yyvsp[0].str));
3587 cfg_parser->cfg->max_ecs_tree_size_ipv6 = 0;
3588 else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi((yyvsp[0].str));
3601 if(cfg_parser->cfg->num_ifs == 0)
3602 cfg_parser->cfg->ifs = calloc(1, sizeof(char*));
3603 else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs,
3604 (cfg_parser->cfg->num_ifs+1)*sizeof(char*));
3605 if(!cfg_parser->cfg->ifs)
3608 cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
3617 if(cfg_parser->cfg->num_out_ifs == 0)
3618 cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*));
3619 else cfg_parser->cfg->out_ifs = realloc(
3620 cfg_parser->cfg->out_ifs,
3621 (cfg_parser->cfg->num_out_ifs+1)*sizeof(char*));
3622 if(!cfg_parser->cfg->out_ifs)
3625 cfg_parser->cfg->out_ifs[
3626 cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
3637 else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
3648 cfg_parser->cfg->outgoing_avail_ports, 65536))
3660 cfg_parser->cfg->outgoing_avail_ports, 65536))
3673 else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
3685 else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
3697 else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
3707 free(cfg_parser->cfg->if_automatic_ports);
3708 cfg_parser->cfg->if_automatic_ports = (yyvsp[0].str);
3719 else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
3731 else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
3743 else cfg_parser->cfg->do_nat64 = (strcmp((yyvsp[0].str), "yes")==0);
3755 else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
3767 else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
3779 else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
3791 else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
3803 else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
3815 else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
3828 cfg_parser->cfg->tcp_idle_timeout = 120000;
3830 cfg_parser->cfg->tcp_idle_timeout = 1;
3831 else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str));
3844 cfg_parser->cfg->max_reuse_tcp_queries = 0;
3845 else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str));
3858 cfg_parser->cfg->tcp_reuse_timeout = 0;
3859 else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str));
3872 cfg_parser->cfg->tcp_auth_query_timeout = 0;
3873 else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str));
3885 else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0);
3898 cfg_parser->cfg->tcp_keepalive_timeout = 6553500;
3900 cfg_parser->cfg->tcp_keepalive_timeout = 0;
3901 else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str));
3914 cfg_parser->cfg->sock_queue_timeout = 6553500;
3916 cfg_parser->cfg->sock_queue_timeout = 0;
3917 else cfg_parser->cfg->sock_queue_timeout = atoi((yyvsp[0].str));
3929 else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
3941 else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0);
3953 else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
3963 free(cfg_parser->cfg->ssl_service_key);
3964 cfg_parser->cfg->ssl_service_key = (yyvsp[0].str);
3973 free(cfg_parser->cfg->ssl_service_pem);
3974 cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str);
3985 else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
3995 free(cfg_parser->cfg->tls_cert_bundle);
3996 cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str);
4007 else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0);
4017 if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port,
4028 free(cfg_parser->cfg->tls_ciphers);
4029 cfg_parser->cfg->tls_ciphers = (yyvsp[0].str);
4038 free(cfg_parser->cfg->tls_ciphersuites);
4039 cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str);
4048 if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys,
4061 else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0);
4073 free(cfg_parser->cfg->tls_protocols);
4074 cfg_parser->cfg->tls_protocols = (yyvsp[0].str);
4085 else cfg_parser->cfg->https_port = atoi((yyvsp[0].str));
4095 free(cfg_parser->cfg->http_endpoint);
4097 cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[0].str))+2);
4098 if(cfg_parser->cfg->http_endpoint) {
4099 cfg_parser->cfg->http_endpoint[0] = '/';
4100 memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[0].str),
4107 cfg_parser->cfg->http_endpoint = (yyvsp[0].str);
4119 else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str));
4130 &cfg_parser->cfg->http_query_buffer_size))
4142 &cfg_parser->cfg->http_response_buffer_size))
4155 else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0);
4167 else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0);
4180 cfg_parser->cfg->quic_port = atoi((yyvsp[0].str));
4182 if (cfg_parser->cfg->quic_port != 0)
4185 "over QUIC.", cfg_parser->filename, cfg_parser->line);
4197 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->quic_size))
4210 else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
4222 else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
4234 else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[0].str), "yes")==0);
4251 else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
4263 else cfg_parser->cfg->log_time_iso = (strcmp((yyvsp[0].str), "yes")==0);
4275 else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
4287 else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
4299 else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0);
4311 else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0);
4323 else cfg_parser->cfg->log_destaddr = (strcmp((yyvsp[0].str), "yes")==0);
4335 else cfg_parser->cfg->log_thread_id = (strcmp((yyvsp[0].str), "yes")==0);
4347 else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0);
4357 free(cfg_parser->cfg->chrootdir);
4358 cfg_parser->cfg->chrootdir = (yyvsp[0].str);
4367 free(cfg_parser->cfg->username);
4368 cfg_parser->cfg->username = (yyvsp[0].str);
4377 free(cfg_parser->cfg->directory);
4378 cfg_parser->cfg->directory = (yyvsp[0].str);
4383 w_config_adjust_directory(cfg_parser->cfg);
4385 d = cfg_parser->cfg->directory;
4388 if(cfg_parser->chroot && cfg_parser->chroot[0] &&
4389 strncmp(d, cfg_parser->chroot, strlen(
4390 cfg_parser->chroot)) == 0)
4391 d += strlen(cfg_parser->chroot);
4406 free(cfg_parser->cfg->logfile);
4407 cfg_parser->cfg->logfile = (yyvsp[0].str);
4408 cfg_parser->cfg->use_syslog = 0;
4417 free(cfg_parser->cfg->pidfile);
4418 cfg_parser->cfg->pidfile = (yyvsp[0].str);
4427 if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str)))
4457 if(!cfg_strlist_insert(&cfg_parser->cfg->
4468 if(!cfg_strlist_insert(&cfg_parser->cfg->
4479 if(!cfg_strlist_insert(&cfg_parser->cfg->
4490 if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str)))
4503 cfg_parser->cfg->trust_anchor_signaling =
4517 cfg_parser->cfg->root_key_sentinel =
4528 if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str)))
4540 else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
4552 else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
4564 else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
4576 else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[0].str), "yes")==0);
4586 free(cfg_parser->cfg->identity);
4587 cfg_parser->cfg->identity = (yyvsp[0].str);
4596 free(cfg_parser->cfg->version);
4597 cfg_parser->cfg->version = (yyvsp[0].str);
4606 free(cfg_parser->cfg->http_user_agent);
4607 cfg_parser->cfg->http_user_agent = (yyvsp[0].str);
4616 free(cfg_parser->cfg->nsid_cfg_str);
4617 cfg_parser->cfg->nsid_cfg_str = (yyvsp[0].str);
4618 free(cfg_parser->cfg->nsid);
4619 cfg_parser->cfg->nsid = NULL;
4620 cfg_parser->cfg->nsid_len = 0;
4623 else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid(
4624 (yyvsp[0].str), &cfg_parser->cfg->nsid_len)))
4635 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
4646 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
4659 else cfg_parser->cfg->so_reuseport =
4672 else cfg_parser->cfg->ip_transparent =
4685 else cfg_parser->cfg->ip_freebind =
4703 cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str));
4713 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size))
4729 cfg_parser->cfg->edns_buffer_size = 65535;
4730 else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
4744 else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
4754 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
4768 cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[0].str));
4769 if(!is_pow2(cfg_parser->cfg->msg_cache_slabs))
4783 else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
4795 else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
4807 else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
4819 else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0);
4831 else cfg_parser->cfg->unblock_lan_zones =
4844 else cfg_parser->cfg->insecure_lan_zones =
4855 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
4869 cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[0].str));
4870 if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs))
4884 else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
4907 else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
4931 cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[0].str));
4932 if(!is_pow2(cfg_parser->cfg->infra_cache_slabs))
4946 else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
4958 else cfg_parser->cfg->infra_cache_max_rtt = atoi((yyvsp[0].str));
4970 else cfg_parser->cfg->infra_keep_probing =
4981 free(cfg_parser->cfg->target_fetch_policy);
4982 cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str);
4993 else cfg_parser->cfg->harden_short_bufsize =
5006 else cfg_parser->cfg->harden_large_queries =
5019 else cfg_parser->cfg->harden_glue =
5032 else cfg_parser->cfg->harden_unverified_glue =
5045 else cfg_parser->cfg->harden_dnssec_stripped =
5058 else cfg_parser->cfg->harden_below_nxdomain =
5071 else cfg_parser->cfg->harden_referral_path =
5084 else cfg_parser->cfg->harden_algo_downgrade =
5097 else cfg_parser->cfg->harden_unknown_additional =
5110 else cfg_parser->cfg->use_caps_bits_for_id =
5121 if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str)))
5131 if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str)))
5141 if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str)))
5153 else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
5165 else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
5177 else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0);
5189 else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
5199 if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str)))
5211 else cfg_parser->cfg->donotquery_localhost =
5223 if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str)))
5235 &cfg_parser->cfg->interface_actions, (yyvsp[-1].str), (yyvsp[0].str)))
5245 free(cfg_parser->cfg->module_conf);
5246 cfg_parser->cfg->module_conf = (yyvsp[0].str);
5256 cfg_parser->cfg->val_date_override = 0;
5258 cfg_parser->cfg->val_date_override =
5260 if(!cfg_parser->cfg->val_date_override)
5265 cfg_parser->cfg->val_date_override = atoi((yyvsp[0].str));
5277 cfg_parser->cfg->val_sig_skew_min = 0;
5279 cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[0].str));
5280 if(!cfg_parser->cfg->val_sig_skew_min)
5293 cfg_parser->cfg->val_sig_skew_max = 0;
5295 cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[0].str));
5296 if(!cfg_parser->cfg->val_sig_skew_max)
5309 cfg_parser->cfg->val_max_restart = 0;
5311 cfg_parser->cfg->val_max_restart = atoi((yyvsp[0].str));
5312 if(!cfg_parser->cfg->val_max_restart)
5326 else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
5338 else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
5350 else cfg_parser->cfg->min_negative_ttl = atoi((yyvsp[0].str));
5362 else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
5374 else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
5386 else cfg_parser->cfg->val_clean_additional =
5399 else cfg_parser->cfg->val_permissive_mode =
5413 cfg_parser->cfg->aggressive_nsec =
5426 else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
5438 else cfg_parser->cfg->disable_edns_do = (strcmp((yyvsp[0].str), "yes")==0);
5450 else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
5462 else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str));
5474 else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0);
5486 else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str));
5498 else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str));
5510 else cfg_parser->cfg->ede_serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
5522 else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0);
5566 else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
5576 free(cfg_parser->cfg->val_nsec3_key_iterations);
5577 cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str);
5588 else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0);
5600 else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
5612 else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
5624 else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
5636 else cfg_parser->cfg->permit_small_holddown =
5647 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size))
5661 cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[0].str));
5662 if(!is_pow2(cfg_parser->cfg->key_cache_slabs))
5674 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size))
5715 if(!cfg_strlist_insert(&cfg_parser->cfg->
5734 if(!cfg_strlist_insert(&cfg_parser->cfg->
5740 if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones,
5752 if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str)))
5766 if(!cfg_strlist_insert(&cfg_parser->cfg->
5782 else cfg_parser->cfg->minimal_responses =
5795 else cfg_parser->cfg->rrset_roundrobin =
5806 cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str));
5816 cfg_parser->cfg->discard_timeout = atoi((yyvsp[0].str));
5826 cfg_parser->cfg->wait_limit = atoi((yyvsp[0].str));
5836 cfg_parser->cfg->wait_limit_cookie = atoi((yyvsp[0].str));
5851 if(!cfg_str2list_insert(&cfg_parser->cfg->
5868 if(!cfg_str2list_insert(&cfg_parser->cfg->
5880 cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str));
5890 free(cfg_parser->cfg->dns64_prefix);
5891 cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
5902 else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
5912 if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa,
5923 free(cfg_parser->cfg->nat64_prefix);
5924 cfg_parser->cfg->nat64_prefix = (yyvsp[0].str);
5936 if(!config_add_tag(cfg_parser->cfg, p))
5950 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
5960 &cfg_parser->cfg->local_zone_tags,
5974 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
5984 &cfg_parser->cfg->acl_tags,
5998 if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
6013 if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
6028 if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
6043 if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
6055 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
6065 &cfg_parser->cfg->interface_tags,
6079 if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_actions,
6094 if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_datas,
6109 if(!cfg_str2list_insert(&cfg_parser->cfg->interface_view,
6121 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
6131 &cfg_parser->cfg->respip_tags,
6147 else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str));
6159 else cfg_parser->cfg->ip_ratelimit_cookie = atoi((yyvsp[0].str));
6171 else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
6181 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size))
6192 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size))
6206 cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[0].str));
6207 if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs))
6222 cfg_parser->cfg->ratelimit_slabs = atoi((yyvsp[0].str));
6223 if(!is_pow2(cfg_parser->cfg->ratelimit_slabs))
6240 if(!cfg_str2list_insert(&cfg_parser->cfg->
6257 if(!cfg_str2list_insert(&cfg_parser->cfg->
6271 else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str));
6283 else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
6295 else cfg_parser->cfg->ip_ratelimit_backoff =
6308 else cfg_parser->cfg->ratelimit_backoff =
6321 else cfg_parser->cfg->outbound_msg_retry = atoi((yyvsp[0].str));
6333 else cfg_parser->cfg->max_sent_count = atoi((yyvsp[0].str));
6345 else cfg_parser->cfg->max_query_restarts = atoi((yyvsp[0].str));
6366 else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str));
6378 else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str));
6390 else cfg_parser->cfg->qname_minimisation =
6403 else cfg_parser->cfg->qname_minimisation_strict =
6416 else cfg_parser->cfg->pad_responses =
6429 else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str));
6441 else cfg_parser->cfg->pad_queries =
6454 else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str));
6467 else cfg_parser->cfg->ipsecmod_enabled = (strcmp((yyvsp[0].str), "yes")==0);
6483 else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp((yyvsp[0].str), "yes")==0);
6497 free(cfg_parser->cfg->ipsecmod_hook);
6498 cfg_parser->cfg->ipsecmod_hook = (yyvsp[0].str);
6514 else cfg_parser->cfg->ipsecmod_max_ttl = atoi((yyvsp[0].str));
6529 if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[0].str)))
6546 else cfg_parser->cfg->ipsecmod_strict = (strcmp((yyvsp[0].str), "yes")==0);
6561 &cfg_parser->cfg->edns_client_strings, (yyvsp[-1].str), (yyvsp[0].str)))
6575 else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[0].str));
6587 else cfg_parser->cfg->ede = (strcmp((yyvsp[0].str), "yes")==0);
6599 else cfg_parser->cfg->dns_error_reporting = (strcmp((yyvsp[0].str), "yes")==0);
6609 if(!cfg_strlist_insert(&cfg_parser->cfg->proxy_protocol_port, (yyvsp[0].str)))
6619 if(cfg_parser->cfg->stubs->name)
6622 free(cfg_parser->cfg->stubs->name);
6623 cfg_parser->cfg->stubs->name = (yyvsp[0].str);
6632 if(!cfg_strlist_insert(&cfg_parser
6642 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str)))
6654 else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
6666 else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
6678 else cfg_parser->cfg->stubs->ssl_upstream =
6691 else cfg_parser->cfg->stubs->tcp_upstream =
6704 else cfg_parser->cfg->stubs->isprime =
6715 if(cfg_parser->cfg->forwards->name)
6718 free(cfg_parser->cfg->forwards->name);
6719 cfg_parser->cfg->forwards->name = (yyvsp[0].str);
6728 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str)))
6738 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str)))
6750 else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
6762 else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
6774 else cfg_parser->cfg->forwards->ssl_upstream =
6787 else cfg_parser->cfg->forwards->tcp_upstream =
6798 if(cfg_parser->cfg->auths->name)
6801 free(cfg_parser->cfg->auths->name);
6802 cfg_parser->cfg->auths->name = (yyvsp[0].str);
6811 free(cfg_parser->cfg->auths->zonefile);
6812 cfg_parser->cfg->auths->zonefile = (yyvsp[0].str);
6821 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str)))
6831 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str)))
6841 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify,
6854 else cfg_parser->cfg->auths->zonemd_check =
6867 else cfg_parser->cfg->auths->zonemd_reject_absence =
6880 else cfg_parser->cfg->auths->for_downstream =
6893 else cfg_parser->cfg->auths->for_upstream =
6906 else cfg_parser->cfg->auths->fallback_enabled =
6917 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->auths->max_transfer_size))
6930 else cfg_parser->cfg->auths->max_transfer_time = atoi((yyvsp[0].str));
6940 if(cfg_parser->cfg->views->name)
6943 free(cfg_parser->cfg->views->name);
6944 cfg_parser->cfg->views->name = (yyvsp[0].str);
6977 if(!cfg_strlist_insert(&cfg_parser->cfg->views->
6996 if(!cfg_strlist_insert(&cfg_parser->cfg->views->
7003 &cfg_parser->cfg->views->local_zones,
7017 &cfg_parser->cfg->views->respip_actions, (yyvsp[-1].str), (yyvsp[0].str)))
7028 &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str)))
7038 if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
7053 if(!cfg_strlist_insert(&cfg_parser->cfg->views->
7069 else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
7079 cfg_parser->started_toplevel = 1;
7090 else cfg_parser->cfg->remote_control_enable =
7103 else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
7113 if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
7123 cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0);
7133 free(cfg_parser->cfg->server_key_file);
7134 cfg_parser->cfg->server_key_file = (yyvsp[0].str);
7143 free(cfg_parser->cfg->server_cert_file);
7144 cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
7153 free(cfg_parser->cfg->control_key_file);
7154 cfg_parser->cfg->control_key_file = (yyvsp[0].str);
7163 free(cfg_parser->cfg->control_cert_file);
7164 cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
7173 cfg_parser->started_toplevel = 1;
7184 else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
7196 else cfg_parser->cfg->dnstap_bidirectional =
7207 free(cfg_parser->cfg->dnstap_socket_path);
7208 cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
7217 free(cfg_parser->cfg->dnstap_ip);
7218 cfg_parser->cfg->dnstap_ip = (yyvsp[0].str);
7229 else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0);
7239 free(cfg_parser->cfg->dnstap_tls_server_name);
7240 cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str);
7249 free(cfg_parser->cfg->dnstap_tls_cert_bundle);
7250 cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str);
7259 free(cfg_parser->cfg->dnstap_tls_client_key_file);
7260 cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str);
7269 free(cfg_parser->cfg->dnstap_tls_client_cert_file);
7270 cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str);
7281 else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
7293 else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
7303 free(cfg_parser->cfg->dnstap_identity);
7304 cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
7313 free(cfg_parser->cfg->dnstap_version);
7314 cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
7325 else cfg_parser->cfg->dnstap_log_resolver_query_messages =
7338 else cfg_parser->cfg->dnstap_log_resolver_response_messages =
7351 else cfg_parser->cfg->dnstap_log_client_query_messages =
7364 else cfg_parser->cfg->dnstap_log_client_response_messages =
7377 else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
7390 else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
7405 else cfg_parser->cfg->dnstap_sample_rate = atoi((yyvsp[0].str));
7415 cfg_parser->started_toplevel = 1;
7424 if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str)))
7434 cfg_parser->started_toplevel = 1;
7443 if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str)))
7455 else cfg_parser->cfg->disable_dnssec_lame_check =
7466 free(cfg_parser->cfg->log_identity);
7467 cfg_parser->cfg->log_identity = (yyvsp[0].str);
7477 if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions,
7488 if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data,
7499 cfg_parser->started_toplevel = 1;
7510 else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
7522 else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
7532 free(cfg_parser->cfg->dnscrypt_provider);
7533 cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str);
7542 if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) {
7545 } else if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) {
7556 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str)))
7566 if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) {
7569 } else if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) {
7580 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
7594 cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[0].str));
7595 if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs))
7607 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size))
7621 cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi((yyvsp[0].str));
7622 if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs))
7634 cfg_parser->started_toplevel = 1;
7644 free(cfg_parser->cfg->cachedb_backend);
7645 cfg_parser->cfg->cachedb_backend = (yyvsp[0].str);
7659 free(cfg_parser->cfg->cachedb_secret);
7660 cfg_parser->cfg->cachedb_secret = (yyvsp[0].str);
7676 else cfg_parser->cfg->cachedb_no_store = (strcmp((yyvsp[0].str), "yes")==0);
7692 else cfg_parser->cfg->cachedb_check_when_serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
7706 free(cfg_parser->cfg->redis_server_host);
7707 cfg_parser->cfg->redis_server_host = (yyvsp[0].str);
7721 free(cfg_parser->cfg->redis_replica_server_host);
7722 cfg_parser->cfg->redis_replica_server_host = (yyvsp[0].str);
7740 else cfg_parser->cfg->redis_server_port = port;
7758 else cfg_parser->cfg->redis_replica_server_port = port;
7772 free(cfg_parser->cfg->redis_server_path);
7773 cfg_parser->cfg->redis_server_path = (yyvsp[0].str);
7787 free(cfg_parser->cfg->redis_replica_server_path);
7788 cfg_parser->cfg->redis_replica_server_path = (yyvsp[0].str);
7802 free(cfg_parser->cfg->redis_server_password);
7803 cfg_parser->cfg->redis_server_password = (yyvsp[0].str);
7817 free(cfg_parser->cfg->redis_replica_server_password);
7818 cfg_parser->cfg->redis_replica_server_password = (yyvsp[0].str);
7834 else cfg_parser->cfg->redis_timeout = atoi((yyvsp[0].str));
7850 else cfg_parser->cfg->redis_replica_timeout = atoi((yyvsp[0].str));
7866 else cfg_parser->cfg->redis_command_timeout = atoi((yyvsp[0].str));
7882 else cfg_parser->cfg->redis_replica_command_timeout = atoi((yyvsp[0].str));
7898 else cfg_parser->cfg->redis_connect_timeout = atoi((yyvsp[0].str));
7914 else cfg_parser->cfg->redis_replica_connect_timeout = atoi((yyvsp[0].str));
7930 else cfg_parser->cfg->redis_expire_records = (strcmp((yyvsp[0].str), "yes")==0);
7948 else cfg_parser->cfg->redis_logical_db = db;
7966 else cfg_parser->cfg->redis_replica_logical_db = db;
7982 if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, (yyvsp[-1].str), (yyvsp[0].str)))
7995 else cfg_parser->cfg->do_answer_cookie = (strcmp((yyvsp[0].str), "yes")==0);
8012 cfg_parser->cfg->cookie_secret_len = secret_len;
8013 memcpy(cfg_parser->cfg->cookie_secret, secret, sizeof(secret));
8024 free(cfg_parser->cfg->cookie_secret_file);
8025 cfg_parser->cfg->cookie_secret_file = (yyvsp[0].str);
8036 else cfg_parser->cfg->iter_scrub_ns = atoi((yyvsp[0].str));
8048 else cfg_parser->cfg->iter_scrub_cname = atoi((yyvsp[0].str));
8060 else cfg_parser->cfg->iter_scrub_rrsig = atoi((yyvsp[0].str));
8072 else cfg_parser->cfg->max_global_quota = atoi((yyvsp[0].str));
8084 else cfg_parser->cfg->iter_scrub_promiscuous =
8097 else cfg_parser->cfg->val_validation_attempts = atoi((yyvsp[0].str));
8109 else cfg_parser->cfg->val_hash_attempts = atoi((yyvsp[0].str));
8119 cfg_parser->started_toplevel = 1;
8129 if(cfg_parser->cfg->ipset_name_v4)
8132 free(cfg_parser->cfg->ipset_name_v4);
8133 cfg_parser->cfg->ipset_name_v4 = (yyvsp[0].str);
8147 if(cfg_parser->cfg->ipset_name_v6)
8150 free(cfg_parser->cfg->ipset_name_v6);
8151 cfg_parser->cfg->ipset_name_v6 = (yyvsp[0].str);