Lines Matching refs:str
3204 OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[0].str)));
3205 bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
3207 free((yyvsp[0].str));
3223 OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str)));
3224 if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 &&
3225 strcmp((yyvsp[0].str), "passthru")!=0 && strcmp((yyvsp[0].str), "drop")!=0 &&
3226 strcmp((yyvsp[0].str), "cname")!=0 && strcmp((yyvsp[0].str), "disabled")!=0) {
3229 free((yyvsp[0].str));
3233 cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str);
3242 OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str)));
3244 cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str);
3252 OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str)));
3253 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3255 else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0);
3256 free((yyvsp[0].str));
3264 OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str)));
3266 cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str);
3274 OUTYY(("P(rpz_signal_nxdomain_ra:%s)\n", (yyvsp[0].str)));
3275 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3277 else cfg_parser->cfg->auths->rpz_signal_nxdomain_ra = (strcmp((yyvsp[0].str), "yes")==0);
3278 free((yyvsp[0].str));
3308 OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str)));
3309 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3311 else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
3312 free((yyvsp[0].str));
3320 OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str)));
3321 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3323 else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
3324 free((yyvsp[0].str));
3332 OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str)));
3333 if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
3335 else if(atoi((yyvsp[0].str)) == 0)
3337 else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
3338 free((yyvsp[0].str));
3346 OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
3347 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3349 else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
3350 free((yyvsp[0].str));
3358 OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
3359 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3361 else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
3362 free((yyvsp[0].str));
3370 OUTYY(("P(server_statistics_inhibit_zero:%s)\n", (yyvsp[0].str)));
3371 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3373 else cfg_parser->cfg->stat_inhibit_zero = (strcmp((yyvsp[0].str), "yes")==0);
3374 free((yyvsp[0].str));
3382 OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str)));
3383 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3385 else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
3386 free((yyvsp[0].str));
3394 OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str)));
3395 if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
3397 else if(atoi((yyvsp[0].str)) == 0)
3399 else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
3400 free((yyvsp[0].str));
3408 OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
3409 if(atoi((yyvsp[0].str)) == 0)
3411 else cfg_parser->cfg->port = atoi((yyvsp[0].str));
3412 free((yyvsp[0].str));
3421 OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str)));
3422 if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str)))
3426 free((yyvsp[0].str));
3436 OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str)));
3438 (yyvsp[0].str)))
3442 free((yyvsp[0].str));
3452 OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str)));
3453 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3457 (strcmp((yyvsp[0].str), "yes")==0);
3461 free((yyvsp[0].str));
3470 OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str)));
3475 free((yyvsp[0].str));
3484 OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
3485 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3487 else if (atoi((yyvsp[0].str)) > 32)
3489 else if (atoi((yyvsp[0].str)) < 0)
3491 else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str));
3495 free((yyvsp[0].str));
3504 OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
3505 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3507 else if (atoi((yyvsp[0].str)) > 128)
3509 else if (atoi((yyvsp[0].str)) < 0)
3511 else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str));
3515 free((yyvsp[0].str));
3524 OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
3525 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3527 else if (atoi((yyvsp[0].str)) > 32)
3529 else if (atoi((yyvsp[0].str)) < 0)
3531 else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str));
3535 free((yyvsp[0].str));
3544 OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
3545 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3547 else if (atoi((yyvsp[0].str)) > 128)
3549 else if (atoi((yyvsp[0].str)) < 0)
3551 else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str));
3555 free((yyvsp[0].str));
3564 OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str)));
3565 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3567 else if (atoi((yyvsp[0].str)) < 0)
3569 else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi((yyvsp[0].str));
3573 free((yyvsp[0].str));
3582 OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str)));
3583 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3585 else if (atoi((yyvsp[0].str)) < 0)
3587 else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi((yyvsp[0].str));
3591 free((yyvsp[0].str));
3599 OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
3607 cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
3615 OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
3625 cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
3633 OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
3634 if(atoi((yyvsp[0].str)) == 0)
3636 else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
3637 free((yyvsp[0].str));
3645 OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
3646 if(!cfg_mark_ports((yyvsp[0].str), 1,
3649 free((yyvsp[0].str));
3657 OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
3658 if(!cfg_mark_ports((yyvsp[0].str), 0,
3661 free((yyvsp[0].str));
3669 OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
3670 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3672 else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
3673 free((yyvsp[0].str));
3681 OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
3682 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3684 else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
3685 free((yyvsp[0].str));
3693 OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
3694 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3696 else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
3697 free((yyvsp[0].str));
3705 OUTYY(("P(server_interface_automatic_ports:%s)\n", (yyvsp[0].str)));
3707 cfg_parser->cfg->if_automatic_ports = (yyvsp[0].str);
3715 OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
3716 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3718 else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
3719 free((yyvsp[0].str));
3727 OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
3728 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3730 else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
3731 free((yyvsp[0].str));
3739 OUTYY(("P(server_do_nat64:%s)\n", (yyvsp[0].str)));
3740 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3742 else cfg_parser->cfg->do_nat64 = (strcmp((yyvsp[0].str), "yes")==0);
3743 free((yyvsp[0].str));
3751 OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
3752 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3754 else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
3755 free((yyvsp[0].str));
3763 OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
3764 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3766 else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
3767 free((yyvsp[0].str));
3775 OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str)));
3776 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3778 else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
3779 free((yyvsp[0].str));
3787 OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
3788 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3790 else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
3791 free((yyvsp[0].str));
3799 OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
3800 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3802 else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
3803 free((yyvsp[0].str));
3811 OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
3812 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3814 else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
3815 free((yyvsp[0].str));
3823 OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str)));
3824 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3826 else if (atoi((yyvsp[0].str)) > 120000)
3828 else if (atoi((yyvsp[0].str)) < 1)
3830 else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str));
3831 free((yyvsp[0].str));
3839 OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str)));
3840 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3842 else if (atoi((yyvsp[0].str)) < 1)
3844 else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str));
3845 free((yyvsp[0].str));
3853 OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str)));
3854 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3856 else if (atoi((yyvsp[0].str)) < 1)
3858 else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str));
3859 free((yyvsp[0].str));
3867 OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str)));
3868 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3870 else if (atoi((yyvsp[0].str)) < 1)
3872 else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str));
3873 free((yyvsp[0].str));
3881 OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str)));
3882 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3884 else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0);
3885 free((yyvsp[0].str));
3893 OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str)));
3894 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3896 else if (atoi((yyvsp[0].str)) > 6553500)
3898 else if (atoi((yyvsp[0].str)) < 1)
3900 else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str));
3901 free((yyvsp[0].str));
3909 OUTYY(("P(server_sock_queue_timeout:%s)\n", (yyvsp[0].str)));
3910 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3912 else if (atoi((yyvsp[0].str)) > 6553500)
3914 else if (atoi((yyvsp[0].str)) < 1)
3916 else cfg_parser->cfg->sock_queue_timeout = atoi((yyvsp[0].str));
3917 free((yyvsp[0].str));
3925 OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
3926 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3928 else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
3929 free((yyvsp[0].str));
3937 OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str)));
3938 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3940 else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0);
3941 free((yyvsp[0].str));
3949 OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
3950 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3952 else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
3953 free((yyvsp[0].str));
3961 OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str)));
3963 cfg_parser->cfg->ssl_service_key = (yyvsp[0].str);
3971 OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str)));
3973 cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str);
3981 OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
3982 if(atoi((yyvsp[0].str)) == 0)
3984 else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
3985 free((yyvsp[0].str));
3993 OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
3995 cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str);
4003 OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str)));
4004 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4006 else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0);
4007 free((yyvsp[0].str));
4015 OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str)));
4017 (yyvsp[0].str)))
4026 OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str)));
4028 cfg_parser->cfg->tls_ciphers = (yyvsp[0].str);
4036 OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str)));
4038 cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str);
4046 OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str)));
4048 (yyvsp[0].str)))
4057 OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str)));
4058 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4060 else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0);
4061 free((yyvsp[0].str));
4069 OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str)));
4070 if(atoi((yyvsp[0].str)) == 0)
4072 else cfg_parser->cfg->https_port = atoi((yyvsp[0].str));
4073 free((yyvsp[0].str));
4081 OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str)));
4083 if((yyvsp[0].str) && (yyvsp[0].str)[0] != '/') {
4084 cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[0].str))+2);
4088 memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[0].str),
4089 strlen((yyvsp[0].str))+1);
4090 free((yyvsp[0].str));
4092 cfg_parser->cfg->http_endpoint = (yyvsp[0].str);
4101 OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str)));
4102 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4104 else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str));
4105 free((yyvsp[0].str));
4113 OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str)));
4114 if(!cfg_parse_memsize((yyvsp[0].str),
4117 free((yyvsp[0].str));
4125 OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str)));
4126 if(!cfg_parse_memsize((yyvsp[0].str),
4129 free((yyvsp[0].str));
4137 OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str)));
4138 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4140 else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0);
4141 free((yyvsp[0].str));
4149 OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str)));
4150 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4152 else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0);
4153 free((yyvsp[0].str));
4161 OUTYY(("P(server_quic_port:%s)\n", (yyvsp[0].str)));
4167 if(atoi((yyvsp[0].str)) == 0)
4169 else cfg_parser->cfg->quic_port = atoi((yyvsp[0].str));
4170 free((yyvsp[0].str));
4178 OUTYY(("P(server_quic_size:%s)\n", (yyvsp[0].str)));
4179 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->quic_size))
4181 free((yyvsp[0].str));
4189 OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str)));
4190 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4192 else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
4193 free((yyvsp[0].str));
4201 OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str)));
4202 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4204 else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
4205 free((yyvsp[0].str));
4213 OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
4214 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4216 else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[0].str), "yes")==0);
4218 if(strcmp((yyvsp[0].str), "yes") == 0)
4222 free((yyvsp[0].str));
4230 OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
4231 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4233 else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
4234 free((yyvsp[0].str));
4242 OUTYY(("P(server_log_time_iso:%s)\n", (yyvsp[0].str)));
4243 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4245 else cfg_parser->cfg->log_time_iso = (strcmp((yyvsp[0].str), "yes")==0);
4246 free((yyvsp[0].str));
4254 OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
4255 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4257 else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
4258 free((yyvsp[0].str));
4266 OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str)));
4267 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4269 else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
4270 free((yyvsp[0].str));
4278 OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str)));
4279 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4281 else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0);
4282 free((yyvsp[0].str));
4290 OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str)));
4291 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4293 else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0);
4294 free((yyvsp[0].str));
4302 OUTYY(("P(server_log_destaddr:%s)\n", (yyvsp[0].str)));
4303 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4305 else cfg_parser->cfg->log_destaddr = (strcmp((yyvsp[0].str), "yes")==0);
4306 free((yyvsp[0].str));
4314 OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str)));
4315 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4317 else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0);
4318 free((yyvsp[0].str));
4326 OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
4328 cfg_parser->cfg->chrootdir = (yyvsp[0].str);
4336 OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
4338 cfg_parser->cfg->username = (yyvsp[0].str);
4346 OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
4348 cfg_parser->cfg->directory = (yyvsp[0].str);
4350 if((yyvsp[0].str)[0]) {
4375 OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str)));
4377 cfg_parser->cfg->logfile = (yyvsp[0].str);
4386 OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
4388 cfg_parser->cfg->pidfile = (yyvsp[0].str);
4396 OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str)));
4397 if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str)))
4406 OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str)));
4408 free((yyvsp[0].str));
4416 OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str)));
4418 free((yyvsp[0].str));
4426 OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str)));
4428 auto_trust_anchor_file_list, (yyvsp[0].str)))
4437 OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str)));
4439 trust_anchor_file_list, (yyvsp[0].str)))
4448 OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str)));
4450 trusted_keys_file_list, (yyvsp[0].str)))
4459 OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str)));
4460 if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str)))
4469 OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str)));
4470 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4474 (strcmp((yyvsp[0].str), "yes")==0);
4475 free((yyvsp[0].str));
4483 OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str)));
4484 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4488 (strcmp((yyvsp[0].str), "yes")==0);
4489 free((yyvsp[0].str));
4497 OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str)));
4498 if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str)))
4507 OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
4508 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4510 else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
4511 free((yyvsp[0].str));
4519 OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
4520 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4522 else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
4523 free((yyvsp[0].str));
4531 OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str)));
4532 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4534 else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
4535 free((yyvsp[0].str));
4543 OUTYY(("P(server_hide_user_agent:%s)\n", (yyvsp[0].str)));
4544 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4546 else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[0].str), "yes")==0);
4547 free((yyvsp[0].str));
4555 OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
4557 cfg_parser->cfg->identity = (yyvsp[0].str);
4565 OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
4567 cfg_parser->cfg->version = (yyvsp[0].str);
4575 OUTYY(("P(server_http_user_agent:%s)\n", (yyvsp[0].str)));
4577 cfg_parser->cfg->http_user_agent = (yyvsp[0].str);
4585 OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str)));
4587 cfg_parser->cfg->nsid_cfg_str = (yyvsp[0].str);
4591 if (*(yyvsp[0].str) == 0)
4594 (yyvsp[0].str), &cfg_parser->cfg->nsid_len)))
4604 OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str)));
4605 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
4607 free((yyvsp[0].str));
4615 OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str)));
4616 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
4618 free((yyvsp[0].str));
4626 OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
4627 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4630 (strcmp((yyvsp[0].str), "yes")==0);
4631 free((yyvsp[0].str));
4639 OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
4640 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4643 (strcmp((yyvsp[0].str), "yes")==0);
4644 free((yyvsp[0].str));
4652 OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
4653 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4656 (strcmp((yyvsp[0].str), "yes")==0);
4657 free((yyvsp[0].str));
4665 OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str)));
4666 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4668 else if (atoi((yyvsp[0].str)) > 63)
4670 else if (atoi((yyvsp[0].str)) < 0)
4673 cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str));
4674 free((yyvsp[0].str));
4682 OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str)));
4683 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size))
4685 free((yyvsp[0].str));
4693 OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
4694 if(atoi((yyvsp[0].str)) == 0)
4696 else if (atoi((yyvsp[0].str)) < 12)
4698 else if (atoi((yyvsp[0].str)) > 65535)
4700 else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
4701 free((yyvsp[0].str));
4709 OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
4710 if(atoi((yyvsp[0].str)) == 0)
4712 else if (atoi((yyvsp[0].str)) < 4096)
4714 else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
4715 free((yyvsp[0].str));
4723 OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str)));
4724 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
4726 free((yyvsp[0].str));
4734 OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
4735 if(atoi((yyvsp[0].str)) == 0) {
4738 cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[0].str));
4742 free((yyvsp[0].str));
4750 OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
4751 if(atoi((yyvsp[0].str)) == 0)
4753 else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
4754 free((yyvsp[0].str));
4762 OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
4763 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4765 else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
4766 free((yyvsp[0].str));
4774 OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
4775 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4777 else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
4778 free((yyvsp[0].str));
4786 OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str)));
4787 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4789 else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0);
4790 free((yyvsp[0].str));
4798 OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
4799 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4802 (strcmp((yyvsp[0].str), "yes")==0);
4803 free((yyvsp[0].str));
4811 OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
4812 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4815 (strcmp((yyvsp[0].str), "yes")==0);
4816 free((yyvsp[0].str));
4824 OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str)));
4825 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
4827 free((yyvsp[0].str));
4835 OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
4836 if(atoi((yyvsp[0].str)) == 0) {
4839 cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[0].str));
4843 free((yyvsp[0].str));
4851 OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
4852 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4854 else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
4855 free((yyvsp[0].str));
4863 OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str)));
4865 "removed, use infra-host-ttl)", (yyvsp[0].str));
4866 free((yyvsp[0].str));
4874 OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
4875 if(atoi((yyvsp[0].str)) == 0)
4877 else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
4878 free((yyvsp[0].str));
4886 OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str)));
4888 "(option removed, use infra-cache-numhosts)", (yyvsp[0].str));
4889 free((yyvsp[0].str));
4897 OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
4898 if(atoi((yyvsp[0].str)) == 0) {
4901 cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[0].str));
4905 free((yyvsp[0].str));
4913 OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str)));
4914 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4916 else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
4917 free((yyvsp[0].str));
4925 OUTYY(("P(server_infra_cache_max_rtt:%s)\n", (yyvsp[0].str)));
4926 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4928 else cfg_parser->cfg->infra_cache_max_rtt = atoi((yyvsp[0].str));
4929 free((yyvsp[0].str));
4937 OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str)));
4938 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4941 (strcmp((yyvsp[0].str), "yes")==0);
4942 free((yyvsp[0].str));
4950 OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str)));
4952 cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str);
4960 OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str)));
4961 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4964 (strcmp((yyvsp[0].str), "yes")==0);
4965 free((yyvsp[0].str));
4973 OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str)));
4974 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4977 (strcmp((yyvsp[0].str), "yes")==0);
4978 free((yyvsp[0].str));
4986 OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str)));
4987 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4990 (strcmp((yyvsp[0].str), "yes")==0);
4991 free((yyvsp[0].str));
4999 OUTYY(("P(server_harden_unverified_glue:%s)\n", (yyvsp[0].str)));
5000 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5003 (strcmp((yyvsp[0].str), "yes")==0);
5004 free((yyvsp[0].str));
5012 OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str)));
5013 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5016 (strcmp((yyvsp[0].str), "yes")==0);
5017 free((yyvsp[0].str));
5025 OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str)));
5026 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5029 (strcmp((yyvsp[0].str), "yes")==0);
5030 free((yyvsp[0].str));
5038 OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str)));
5039 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5042 (strcmp((yyvsp[0].str), "yes")==0);
5043 free((yyvsp[0].str));
5051 OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str)));
5052 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5055 (strcmp((yyvsp[0].str), "yes")==0);
5056 free((yyvsp[0].str));
5064 OUTYY(("P(server_harden_unknown_additional:%s)\n", (yyvsp[0].str)));
5065 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5068 (strcmp((yyvsp[0].str), "yes")==0);
5069 free((yyvsp[0].str));
5077 OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str)));
5078 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5081 (strcmp((yyvsp[0].str), "yes")==0);
5082 free((yyvsp[0].str));
5090 OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str)));
5091 if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str)))
5100 OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str)));
5101 if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str)))
5110 OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str)));
5111 if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str)))
5120 OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str)));
5121 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5123 else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
5124 free((yyvsp[0].str));
5132 OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str)));
5133 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5135 else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
5136 free((yyvsp[0].str));
5144 OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str)));
5145 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5147 else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0);
5148 free((yyvsp[0].str));
5156 OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str)));
5157 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5159 else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
5160 free((yyvsp[0].str));
5168 OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str)));
5169 if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str)))
5178 OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str)));
5179 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5182 (strcmp((yyvsp[0].str), "yes")==0);
5183 free((yyvsp[0].str));
5191 OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
5192 validate_acl_action((yyvsp[0].str));
5193 if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str)))
5202 OUTYY(("P(server_interface_action:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
5203 validate_acl_action((yyvsp[0].str));
5205 &cfg_parser->cfg->interface_actions, (yyvsp[-1].str), (yyvsp[0].str)))
5214 OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str)));
5216 cfg_parser->cfg->module_conf = (yyvsp[0].str);
5224 OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str)));
5225 if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
5227 } else if(strlen((yyvsp[0].str)) == 14) {
5229 cfg_convert_timeval((yyvsp[0].str));
5233 if(atoi((yyvsp[0].str)) == 0)
5235 cfg_parser->cfg->val_date_override = atoi((yyvsp[0].str));
5237 free((yyvsp[0].str));
5245 OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str)));
5246 if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
5249 cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[0].str));
5253 free((yyvsp[0].str));
5261 OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str)));
5262 if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
5265 cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[0].str));
5269 free((yyvsp[0].str));
5277 OUTYY(("P(server_val_max_restart:%s)\n", (yyvsp[0].str)));
5278 if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
5281 cfg_parser->cfg->val_max_restart = atoi((yyvsp[0].str));
5285 free((yyvsp[0].str));
5293 OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str)));
5294 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5296 else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
5297 free((yyvsp[0].str));
5305 OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str)));
5306 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5308 else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
5309 free((yyvsp[0].str));
5317 OUTYY(("P(server_cache_min_negative_ttl:%s)\n", (yyvsp[0].str)));
5318 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5320 else cfg_parser->cfg->min_negative_ttl = atoi((yyvsp[0].str));
5321 free((yyvsp[0].str));
5329 OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str)));
5330 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5332 else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
5333 free((yyvsp[0].str));
5341 OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str)));
5342 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5344 else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
5345 free((yyvsp[0].str));
5353 OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str)));
5354 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5357 (strcmp((yyvsp[0].str), "yes")==0);
5358 free((yyvsp[0].str));
5366 OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str)));
5367 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5370 (strcmp((yyvsp[0].str), "yes")==0);
5371 free((yyvsp[0].str));
5379 OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str)));
5380 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5384 (strcmp((yyvsp[0].str), "yes")==0);
5385 free((yyvsp[0].str));
5393 OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str)));
5394 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5396 else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
5397 free((yyvsp[0].str));
5405 OUTYY(("P(server_disable_edns_do:%s)\n", (yyvsp[0].str)));
5406 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5408 else cfg_parser->cfg->disable_edns_do = (strcmp((yyvsp[0].str), "yes")==0);
5409 free((yyvsp[0].str));
5417 OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str)));
5418 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5420 else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
5421 free((yyvsp[0].str));
5429 OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str)));
5430 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5432 else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str));
5433 free((yyvsp[0].str));
5441 OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str)));
5442 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5444 else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0);
5445 free((yyvsp[0].str));
5453 OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str)));
5454 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5456 else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str));
5457 free((yyvsp[0].str));
5465 OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str)));
5466 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5468 else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str));
5469 free((yyvsp[0].str));
5477 OUTYY(("P(server_ede_serve_expired:%s)\n", (yyvsp[0].str)));
5478 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5480 else cfg_parser->cfg->ede_serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
5481 free((yyvsp[0].str));
5489 OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str)));
5490 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5492 else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0);
5493 free((yyvsp[0].str));
5501 OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str)));
5502 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5505 else fake_dsa = (strcmp((yyvsp[0].str), "yes")==0);
5509 free((yyvsp[0].str));
5517 OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str)));
5518 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5521 else fake_sha1 = (strcmp((yyvsp[0].str), "yes")==0);
5525 free((yyvsp[0].str));
5533 OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str)));
5534 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5536 else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
5537 free((yyvsp[0].str));
5545 OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str)));
5547 cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str);
5555 OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str)));
5556 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5558 else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0);
5559 free((yyvsp[0].str));
5567 OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str)));
5568 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5570 else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
5571 free((yyvsp[0].str));
5579 OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str)));
5580 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5582 else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
5583 free((yyvsp[0].str));
5591 OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str)));
5592 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5594 else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
5595 free((yyvsp[0].str));
5603 OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str)));
5604 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5607 (strcmp((yyvsp[0].str), "yes")==0);
5608 free((yyvsp[0].str));
5616 OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str)));
5617 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size))
5619 free((yyvsp[0].str));
5627 OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
5628 if(atoi((yyvsp[0].str)) == 0) {
5631 cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[0].str));
5635 free((yyvsp[0].str));
5643 OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str)));
5644 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size))
5646 free((yyvsp[0].str));
5654 OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
5655 if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
5656 strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 &&
5657 strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0
5658 && strcmp((yyvsp[0].str), "typetransparent")!=0
5659 && strcmp((yyvsp[0].str), "always_transparent")!=0
5660 && strcmp((yyvsp[0].str), "block_a")!=0
5661 && strcmp((yyvsp[0].str), "always_refuse")!=0
5662 && strcmp((yyvsp[0].str), "always_nxdomain")!=0
5663 && strcmp((yyvsp[0].str), "always_nodata")!=0
5664 && strcmp((yyvsp[0].str), "always_deny")!=0
5665 && strcmp((yyvsp[0].str), "always_null")!=0
5666 && strcmp((yyvsp[0].str), "noview")!=0
5667 && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0
5668 && strcmp((yyvsp[0].str), "inform_redirect") != 0
5669 && strcmp((yyvsp[0].str), "ipset") != 0) {
5677 free((yyvsp[-1].str));
5678 free((yyvsp[0].str));
5679 } else if(strcmp((yyvsp[0].str), "nodefault")==0) {
5681 local_zones_nodefault, (yyvsp[-1].str)))
5683 free((yyvsp[0].str));
5685 } else if(strcmp((yyvsp[0].str), "ipset")==0) {
5686 size_t len = strlen((yyvsp[-1].str));
5688 * These are str compared to domain names. */
5689 if((yyvsp[-1].str)[len-1] != '.') {
5690 if(!((yyvsp[-1].str) = realloc((yyvsp[-1].str), len+2))) {
5693 (yyvsp[-1].str)[len] = '.';
5694 (yyvsp[-1].str)[len+1] = 0;
5697 local_zones_ipset, (yyvsp[-1].str)))
5699 free((yyvsp[0].str));
5703 (yyvsp[-1].str), (yyvsp[0].str)))
5713 OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str)));
5714 if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str)))
5724 OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
5725 ptr = cfg_ptr_reverse((yyvsp[0].str));
5726 free((yyvsp[0].str));
5741 OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str)));
5742 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5745 (strcmp((yyvsp[0].str), "yes")==0);
5746 free((yyvsp[0].str));
5754 OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str)));
5755 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5758 (strcmp((yyvsp[0].str), "yes")==0);
5759 free((yyvsp[0].str));
5767 OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str)));
5768 cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str));
5769 free((yyvsp[0].str));
5777 OUTYY(("P(server_discard_timeout:%s)\n", (yyvsp[0].str)));
5778 cfg_parser->cfg->discard_timeout = atoi((yyvsp[0].str));
5779 free((yyvsp[0].str));
5787 OUTYY(("P(server_wait_limit:%s)\n", (yyvsp[0].str)));
5788 cfg_parser->cfg->wait_limit = atoi((yyvsp[0].str));
5789 free((yyvsp[0].str));
5797 OUTYY(("P(server_wait_limit_cookie:%s)\n", (yyvsp[0].str)));
5798 cfg_parser->cfg->wait_limit_cookie = atoi((yyvsp[0].str));
5799 free((yyvsp[0].str));
5807 OUTYY(("P(server_wait_limit_netblock:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
5808 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
5810 free((yyvsp[-1].str));
5811 free((yyvsp[0].str));
5814 wait_limit_netblock, (yyvsp[-1].str), (yyvsp[0].str)))
5825 OUTYY(("P(server_wait_limit_cookie_netblock:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
5826 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
5828 free((yyvsp[-1].str));
5829 free((yyvsp[0].str));
5832 wait_limit_cookie_netblock, (yyvsp[-1].str), (yyvsp[0].str)))
5843 OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str)));
5844 cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str));
5845 free((yyvsp[0].str));
5853 OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str)));
5855 cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
5863 OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str)));
5864 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5866 else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
5867 free((yyvsp[0].str));
5875 OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str)));
5877 (yyvsp[0].str)))
5886 OUTYY(("P(nat64_prefix:%s)\n", (yyvsp[0].str)));
5888 cfg_parser->cfg->nat64_prefix = (yyvsp[0].str);
5896 char* p, *s = (yyvsp[0].str);
5897 OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
5905 free((yyvsp[0].str));
5914 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
5916 free((yyvsp[0].str));
5917 OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[-1].str)));
5920 free((yyvsp[-1].str));
5925 (yyvsp[-1].str), bitlist, len)) {
5927 free((yyvsp[-1].str));
5938 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
5940 free((yyvsp[0].str));
5941 OUTYY(("P(server_access_control_tag:%s)\n", (yyvsp[-1].str)));
5944 free((yyvsp[-1].str));
5949 (yyvsp[-1].str), bitlist, len)) {
5951 free((yyvsp[-1].str));
5961 OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
5963 (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
5965 free((yyvsp[-2].str));
5966 free((yyvsp[-1].str));
5967 free((yyvsp[0].str));
5976 OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
5978 (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
5980 free((yyvsp[-2].str));
5981 free((yyvsp[-1].str));
5982 free((yyvsp[0].str));
5991 OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
5993 (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
5995 free((yyvsp[-2].str));
5996 free((yyvsp[-1].str));
5997 free((yyvsp[0].str));
6006 OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
6008 (yyvsp[-1].str), (yyvsp[0].str))) {
6019 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
6021 free((yyvsp[0].str));
6022 OUTYY(("P(server_interface_tag:%s)\n", (yyvsp[-1].str)));
6025 free((yyvsp[-1].str));
6030 (yyvsp[-1].str), bitlist, len)) {
6032 free((yyvsp[-1].str));
6042 OUTYY(("P(server_interface_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
6044 (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
6046 free((yyvsp[-2].str));
6047 free((yyvsp[-1].str));
6048 free((yyvsp[0].str));
6057 OUTYY(("P(server_interface_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
6059 (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
6061 free((yyvsp[-2].str));
6062 free((yyvsp[-1].str));
6063 free((yyvsp[0].str));
6072 OUTYY(("P(server_interface_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
6074 (yyvsp[-1].str), (yyvsp[0].str))) {
6085 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
6087 free((yyvsp[0].str));
6088 OUTYY(("P(response_ip_tag:%s)\n", (yyvsp[-1].str)));
6091 free((yyvsp[-1].str));
6096 (yyvsp[-1].str), bitlist, len)) {
6098 free((yyvsp[-1].str));
6108 OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str)));
6109 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6111 else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str));
6112 free((yyvsp[0].str));
6120 OUTYY(("P(server_ip_ratelimit_cookie:%s)\n", (yyvsp[0].str)));
6121 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6123 else cfg_parser->cfg->ip_ratelimit_cookie = atoi((yyvsp[0].str));
6124 free((yyvsp[0].str));
6132 OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str)));
6133 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6135 else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
6136 free((yyvsp[0].str));
6144 OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str)));
6145 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size))
6147 free((yyvsp[0].str));
6155 OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str)));
6156 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size))
6158 free((yyvsp[0].str));
6166 OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
6167 if(atoi((yyvsp[0].str)) == 0) {
6170 cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[0].str));
6174 free((yyvsp[0].str));
6182 OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
6183 if(atoi((yyvsp[0].str)) == 0) {
6186 cfg_parser->cfg->ratelimit_slabs = atoi((yyvsp[0].str));
6190 free((yyvsp[0].str));
6198 OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
6199 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
6201 free((yyvsp[-1].str));
6202 free((yyvsp[0].str));
6205 ratelimit_for_domain, (yyvsp[-1].str), (yyvsp[0].str)))
6216 OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
6217 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
6219 free((yyvsp[-1].str));
6220 free((yyvsp[0].str));
6223 ratelimit_below_domain, (yyvsp[-1].str), (yyvsp[0].str)))
6234 OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str)));
6235 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6237 else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str));
6238 free((yyvsp[0].str));
6246 OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str)));
6247 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6249 else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
6250 free((yyvsp[0].str));
6258 OUTYY(("P(server_ip_ratelimit_backoff:%s)\n", (yyvsp[0].str)));
6259 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6262 (strcmp((yyvsp[0].str), "yes")==0);
6263 free((yyvsp[0].str));
6271 OUTYY(("P(server_ratelimit_backoff:%s)\n", (yyvsp[0].str)));
6272 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6275 (strcmp((yyvsp[0].str), "yes")==0);
6276 free((yyvsp[0].str));
6284 OUTYY(("P(server_outbound_msg_retry:%s)\n", (yyvsp[0].str)));
6285 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6287 else cfg_parser->cfg->outbound_msg_retry = atoi((yyvsp[0].str));
6288 free((yyvsp[0].str));
6296 OUTYY(("P(server_max_sent_count:%s)\n", (yyvsp[0].str)));
6297 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6299 else cfg_parser->cfg->max_sent_count = atoi((yyvsp[0].str));
6300 free((yyvsp[0].str));
6308 OUTYY(("P(server_max_query_restarts:%s)\n", (yyvsp[0].str)));
6309 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6311 else cfg_parser->cfg->max_query_restarts = atoi((yyvsp[0].str));
6312 free((yyvsp[0].str));
6321 free((yyvsp[0].str));
6329 OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str)));
6330 if(atoi((yyvsp[0].str)) <= 0)
6332 else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str));
6333 free((yyvsp[0].str));
6341 OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str)));
6342 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6344 else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str));
6345 free((yyvsp[0].str));
6353 OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str)));
6354 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6357 (strcmp((yyvsp[0].str), "yes")==0);
6358 free((yyvsp[0].str));
6366 OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str)));
6367 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6370 (strcmp((yyvsp[0].str), "yes")==0);
6371 free((yyvsp[0].str));
6379 OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str)));
6380 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6383 (strcmp((yyvsp[0].str), "yes")==0);
6384 free((yyvsp[0].str));
6392 OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str)));
6393 if(atoi((yyvsp[0].str)) == 0)
6395 else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str));
6396 free((yyvsp[0].str));
6404 OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str)));
6405 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6408 (strcmp((yyvsp[0].str), "yes")==0);
6409 free((yyvsp[0].str));
6417 OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str)));
6418 if(atoi((yyvsp[0].str)) == 0)
6420 else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str));
6421 free((yyvsp[0].str));
6430 OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str)));
6431 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6433 else cfg_parser->cfg->ipsecmod_enabled = (strcmp((yyvsp[0].str), "yes")==0);
6437 free((yyvsp[0].str));
6446 OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str)));
6447 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6449 else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp((yyvsp[0].str), "yes")==0);
6453 free((yyvsp[0].str));
6462 OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str)));
6464 cfg_parser->cfg->ipsecmod_hook = (yyvsp[0].str);
6467 free((yyvsp[0].str));
6477 OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str)));
6478 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6480 else cfg_parser->cfg->ipsecmod_max_ttl = atoi((yyvsp[0].str));
6481 free((yyvsp[0].str));
6484 free((yyvsp[0].str));
6494 OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str)));
6495 if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[0].str)))
6499 free((yyvsp[0].str));
6509 OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str)));
6510 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6512 else cfg_parser->cfg->ipsecmod_strict = (strcmp((yyvsp[0].str), "yes")==0);
6513 free((yyvsp[0].str));
6516 free((yyvsp[0].str));
6525 OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
6527 &cfg_parser->cfg->edns_client_strings, (yyvsp[-1].str), (yyvsp[0].str)))
6537 OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str)));
6538 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6540 else if(atoi((yyvsp[0].str)) > 65535 || atoi((yyvsp[0].str)) < 0)
6542 else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[0].str));
6543 free((yyvsp[0].str));
6551 OUTYY(("P(server_ede:%s)\n", (yyvsp[0].str)));
6552 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6554 else cfg_parser->cfg->ede = (strcmp((yyvsp[0].str), "yes")==0);
6555 free((yyvsp[0].str));
6563 OUTYY(("P(server_dns_error_reporting:%s)\n", (yyvsp[0].str)));
6564 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6566 else cfg_parser->cfg->dns_error_reporting = (strcmp((yyvsp[0].str), "yes")==0);
6567 free((yyvsp[0].str));
6575 OUTYY(("P(server_proxy_protocol_port:%s)\n", (yyvsp[0].str)));
6576 if(!cfg_strlist_insert(&cfg_parser->cfg->proxy_protocol_port, (yyvsp[0].str)))
6585 OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
6590 cfg_parser->cfg->stubs->name = (yyvsp[0].str);
6598 OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str)));
6599 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str)))
6608 OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str)));
6609 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str)))
6618 OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str)));
6619 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6621 else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
6622 free((yyvsp[0].str));
6630 OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str)));
6631 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6633 else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
6634 free((yyvsp[0].str));
6642 OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str)));
6643 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6646 (strcmp((yyvsp[0].str), "yes")==0);
6647 free((yyvsp[0].str));
6655 OUTYY(("P(stub-tcp-upstream:%s)\n", (yyvsp[0].str)));
6656 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6659 (strcmp((yyvsp[0].str), "yes")==0);
6660 free((yyvsp[0].str));
6668 OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str)));
6669 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6672 (strcmp((yyvsp[0].str), "yes")==0);
6673 free((yyvsp[0].str));
6681 OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
6686 cfg_parser->cfg->forwards->name = (yyvsp[0].str);
6694 OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str)));
6695 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str)))
6704 OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str)));
6705 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str)))
6714 OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str)));
6715 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6717 else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
6718 free((yyvsp[0].str));
6726 OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str)));
6727 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6729 else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
6730 free((yyvsp[0].str));
6738 OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str)));
6739 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6742 (strcmp((yyvsp[0].str), "yes")==0);
6743 free((yyvsp[0].str));
6751 OUTYY(("P(forward-tcp-upstream:%s)\n", (yyvsp[0].str)));
6752 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6755 (strcmp((yyvsp[0].str), "yes")==0);
6756 free((yyvsp[0].str));
6764 OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
6769 cfg_parser->cfg->auths->name = (yyvsp[0].str);
6777 OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str)));
6779 cfg_parser->cfg->auths->zonefile = (yyvsp[0].str);
6787 OUTYY(("P(master:%s)\n", (yyvsp[0].str)));
6788 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str)))
6797 OUTYY(("P(url:%s)\n", (yyvsp[0].str)));
6798 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str)))
6807 OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str)));
6809 (yyvsp[0].str)))
6818 OUTYY(("P(zonemd-check:%s)\n", (yyvsp[0].str)));
6819 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6822 (strcmp((yyvsp[0].str), "yes")==0);
6823 free((yyvsp[0].str));
6831 OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str)));
6832 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6835 (strcmp((yyvsp[0].str), "yes")==0);
6836 free((yyvsp[0].str));
6844 OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str)));
6845 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6848 (strcmp((yyvsp[0].str), "yes")==0);
6849 free((yyvsp[0].str));
6857 OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str)));
6858 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6861 (strcmp((yyvsp[0].str), "yes")==0);
6862 free((yyvsp[0].str));
6870 OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str)));
6871 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6874 (strcmp((yyvsp[0].str), "yes")==0);
6875 free((yyvsp[0].str));
6883 OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
6888 cfg_parser->cfg->views->name = (yyvsp[0].str);
6896 OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
6897 if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
6898 strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 &&
6899 strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0
6900 && strcmp((yyvsp[0].str), "typetransparent")!=0
6901 && strcmp((yyvsp[0].str), "always_transparent")!=0
6902 && strcmp((yyvsp[0].str), "always_refuse")!=0
6903 && strcmp((yyvsp[0].str), "always_nxdomain")!=0
6904 && strcmp((yyvsp[0].str), "always_nodata")!=0
6905 && strcmp((yyvsp[0].str), "always_deny")!=0
6906 && strcmp((yyvsp[0].str), "always_null")!=0
6907 && strcmp((yyvsp[0].str), "noview")!=0
6908 && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0
6909 && strcmp((yyvsp[0].str), "inform_redirect") != 0
6910 && strcmp((yyvsp[0].str), "ipset") != 0) {
6918 free((yyvsp[-1].str));
6919 free((yyvsp[0].str));
6920 } else if(strcmp((yyvsp[0].str), "nodefault")==0) {
6922 local_zones_nodefault, (yyvsp[-1].str)))
6924 free((yyvsp[0].str));
6926 } else if(strcmp((yyvsp[0].str), "ipset")==0) {
6927 size_t len = strlen((yyvsp[-1].str));
6929 * These are str compared to domain names. */
6930 if((yyvsp[-1].str)[len-1] != '.') {
6931 if(!((yyvsp[-1].str) = realloc((yyvsp[-1].str), len+2))) {
6934 (yyvsp[-1].str)[len] = '.';
6935 (yyvsp[-1].str)[len+1] = 0;
6938 local_zones_ipset, (yyvsp[-1].str)))
6940 free((yyvsp[0].str));
6945 (yyvsp[-1].str), (yyvsp[0].str)))
6955 OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
6956 validate_respip_action((yyvsp[0].str));
6958 &cfg_parser->cfg->views->respip_actions, (yyvsp[-1].str), (yyvsp[0].str)))
6968 OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str)));
6970 &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str)))
6979 OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str)));
6980 if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
6991 OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str)));
6992 ptr = cfg_ptr_reverse((yyvsp[0].str));
6993 free((yyvsp[0].str));
7008 OUTYY(("P(view-first:%s)\n", (yyvsp[0].str)));
7009 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7011 else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
7012 free((yyvsp[0].str));
7029 OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str)));
7030 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7033 (strcmp((yyvsp[0].str), "yes")==0);
7034 free((yyvsp[0].str));
7042 OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
7043 if(atoi((yyvsp[0].str)) == 0)
7045 else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
7046 free((yyvsp[0].str));
7054 OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
7055 if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
7064 OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
7065 cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0);
7066 free((yyvsp[0].str));
7074 OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str)));
7076 cfg_parser->cfg->server_key_file = (yyvsp[0].str);
7084 OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str)));
7086 cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
7094 OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str)));
7096 cfg_parser->cfg->control_key_file = (yyvsp[0].str);
7104 OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str)));
7106 cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
7123 OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
7124 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7126 else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
7127 free((yyvsp[0].str));
7135 OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str)));
7136 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7139 (strcmp((yyvsp[0].str), "yes")==0);
7140 free((yyvsp[0].str));
7148 OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str)));
7150 cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
7158 OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str)));
7160 cfg_parser->cfg->dnstap_ip = (yyvsp[0].str);
7168 OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str)));
7169 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7171 else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0);
7172 free((yyvsp[0].str));
7180 OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str)));
7182 cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str);
7190 OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
7192 cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str);
7200 OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str)));
7202 cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str);
7210 OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str)));
7212 cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str);
7220 OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
7221 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7223 else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
7224 free((yyvsp[0].str));
7232 OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
7233 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7235 else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
7236 free((yyvsp[0].str));
7244 OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str)));
7246 cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
7254 OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str)));
7256 cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
7264 OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str)));
7265 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7268 (strcmp((yyvsp[0].str), "yes")==0);
7269 free((yyvsp[0].str));
7277 OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str)));
7278 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7281 (strcmp((yyvsp[0].str), "yes")==0);
7282 free((yyvsp[0].str));
7290 OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str)));
7291 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7294 (strcmp((yyvsp[0].str), "yes")==0);
7295 free((yyvsp[0].str));
7303 OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str)));
7304 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7307 (strcmp((yyvsp[0].str), "yes")==0);
7308 free((yyvsp[0].str));
7316 OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str)));
7317 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7320 (strcmp((yyvsp[0].str), "yes")==0);
7321 free((yyvsp[0].str));
7329 OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str)));
7330 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7333 (strcmp((yyvsp[0].str), "yes")==0);
7334 free((yyvsp[0].str));
7342 OUTYY(("P(dt_dnstap_sample_rate:%s)\n", (yyvsp[0].str)));
7343 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
7345 else if(atoi((yyvsp[0].str)) < 0)
7347 else cfg_parser->cfg->dnstap_sample_rate = atoi((yyvsp[0].str));
7348 free((yyvsp[0].str));
7365 OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
7366 if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str)))
7384 OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str)));
7385 if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str)))
7394 OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
7395 if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7398 (strcmp((yyvsp[0].str), "yes")==0);
7399 free((yyvsp[0].str));
7407 OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str)));
7409 cfg_parser->cfg->log_identity = (yyvsp[0].str);
7417 OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
7418 validate_respip_action((yyvsp[0].str));
7420 (yyvsp[-1].str), (yyvsp[0].str)))
7429 OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str)));
7431 (yyvsp[-1].str), (yyvsp[0].str)))
7449 OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str)));
7450 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7452 else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
7453 free((yyvsp[0].str));
7461 OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str)));
7462 if(atoi((yyvsp[0].str)) == 0)
7464 else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
7465 free((yyvsp[0].str));
7473 OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str)));
7475 cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str);
7483 OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str)));
7484 if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
7485 log_warn("dnscrypt-provider-cert %s is a duplicate", (yyvsp[0].str));
7486 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
7495 OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str)));
7496 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str)))
7505 OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str)));
7506 if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
7507 log_warn("dnscrypt-secret-key: %s is a duplicate", (yyvsp[0].str));
7508 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
7517 OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str)));
7518 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
7520 free((yyvsp[0].str));
7528 OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str)));
7529 if(atoi((yyvsp[0].str)) == 0) {
7532 cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[0].str));
7536 free((yyvsp[0].str));
7544 OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str)));
7545 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size))
7547 free((yyvsp[0].str));
7555 OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str)));
7556 if(atoi((yyvsp[0].str)) == 0) {
7559 cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi((yyvsp[0].str));
7563 free((yyvsp[0].str));
7581 OUTYY(("P(backend:%s)\n", (yyvsp[0].str)));
7583 cfg_parser->cfg->cachedb_backend = (yyvsp[0].str);
7586 free((yyvsp[0].str));
7596 OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str)));
7598 cfg_parser->cfg->cachedb_secret = (yyvsp[0].str);
7601 free((yyvsp[0].str));
7611 OUTYY(("P(cachedb_no_store:%s)\n", (yyvsp[0].str)));
7612 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7614 else cfg_parser->cfg->cachedb_no_store = (strcmp((yyvsp[0].str), "yes")==0);
7618 free((yyvsp[0].str));
7627 OUTYY(("P(cachedb_check_when_serve_expired:%s)\n", (yyvsp[0].str)));
7628 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7630 else cfg_parser->cfg->cachedb_check_when_serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
7634 free((yyvsp[0].str));
7643 OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str)));
7645 cfg_parser->cfg->redis_server_host = (yyvsp[0].str);
7648 free((yyvsp[0].str));
7658 OUTYY(("P(redis_replica_server_host:%s)\n", (yyvsp[0].str)));
7660 cfg_parser->cfg->redis_replica_server_host = (yyvsp[0].str);
7663 free((yyvsp[0].str));
7674 OUTYY(("P(redis_server_port:%s)\n", (yyvsp[0].str)));
7675 port = atoi((yyvsp[0].str));
7682 free((yyvsp[0].str));
7692 OUTYY(("P(redis_replica_server_port:%s)\n", (yyvsp[0].str)));
7693 port = atoi((yyvsp[0].str));
7700 free((yyvsp[0].str));
7709 OUTYY(("P(redis_server_path:%s)\n", (yyvsp[0].str)));
7711 cfg_parser->cfg->redis_server_path = (yyvsp[0].str);
7714 free((yyvsp[0].str));
7724 OUTYY(("P(redis_replica_server_path:%s)\n", (yyvsp[0].str)));
7726 cfg_parser->cfg->redis_replica_server_path = (yyvsp[0].str);
7729 free((yyvsp[0].str));
7739 OUTYY(("P(redis_server_password:%s)\n", (yyvsp[0].str)));
7741 cfg_parser->cfg->redis_server_password = (yyvsp[0].str);
7744 free((yyvsp[0].str));
7754 OUTYY(("P(redis_replica_server_password:%s)\n", (yyvsp[0].str)));
7756 cfg_parser->cfg->redis_replica_server_password = (yyvsp[0].str);
7759 free((yyvsp[0].str));
7769 OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str)));
7770 if(atoi((yyvsp[0].str)) == 0)
7772 else cfg_parser->cfg->redis_timeout = atoi((yyvsp[0].str));
7776 free((yyvsp[0].str));
7785 OUTYY(("P(redis_replica_timeout:%s)\n", (yyvsp[0].str)));
7786 if(atoi((yyvsp[0].str)) == 0)
7788 else cfg_parser->cfg->redis_replica_timeout = atoi((yyvsp[0].str));
7792 free((yyvsp[0].str));
7801 OUTYY(("P(redis_command_timeout:%s)\n", (yyvsp[0].str)));
7802 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
7804 else cfg_parser->cfg->redis_command_timeout = atoi((yyvsp[0].str));
7808 free((yyvsp[0].str));
7817 OUTYY(("P(redis_replica_command_timeout:%s)\n", (yyvsp[0].str)));
7818 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
7820 else cfg_parser->cfg->redis_replica_command_timeout = atoi((yyvsp[0].str));
7824 free((yyvsp[0].str));
7833 OUTYY(("P(redis_connect_timeout:%s)\n", (yyvsp[0].str)));
7834 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
7836 else cfg_parser->cfg->redis_connect_timeout = atoi((yyvsp[0].str));
7840 free((yyvsp[0].str));
7849 OUTYY(("P(redis_replica_connect_timeout:%s)\n", (yyvsp[0].str)));
7850 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
7852 else cfg_parser->cfg->redis_replica_connect_timeout = atoi((yyvsp[0].str));
7856 free((yyvsp[0].str));
7865 OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str)));
7866 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7868 else cfg_parser->cfg->redis_expire_records = (strcmp((yyvsp[0].str), "yes")==0);
7872 free((yyvsp[0].str));
7882 OUTYY(("P(redis_logical_db:%s)\n", (yyvsp[0].str)));
7883 db = atoi((yyvsp[0].str));
7884 if((db == 0 && strcmp((yyvsp[0].str), "0") != 0) || db < 0)
7890 free((yyvsp[0].str));
7900 OUTYY(("P(redis_replica_logical_db:%s)\n", (yyvsp[0].str)));
7901 db = atoi((yyvsp[0].str));
7902 if((db == 0 && strcmp((yyvsp[0].str), "0") != 0) || db < 0)
7908 free((yyvsp[0].str));
7916 OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
7917 if (atoi((yyvsp[0].str)) < 0)
7920 if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, (yyvsp[-1].str), (yyvsp[0].str)))
7930 OUTYY(("P(server_answer_cookie:%s)\n", (yyvsp[0].str)));
7931 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7933 else cfg_parser->cfg->do_answer_cookie = (strcmp((yyvsp[0].str), "yes")==0);
7934 free((yyvsp[0].str));
7945 OUTYY(("P(server_cookie_secret:%s)\n", (yyvsp[0].str)));
7946 if(sldns_str2wire_hex_buf((yyvsp[0].str), secret, &secret_len)
7953 free((yyvsp[0].str));
7961 OUTYY(("P(cookie_secret_file:%s)\n", (yyvsp[0].str)));
7963 cfg_parser->cfg->cookie_secret_file = (yyvsp[0].str);
7971 OUTYY(("P(server_iter_scrub_ns:%s)\n", (yyvsp[0].str)));
7972 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
7974 else cfg_parser->cfg->iter_scrub_ns = atoi((yyvsp[0].str));
7975 free((yyvsp[0].str));
7983 OUTYY(("P(server_iter_scrub_cname:%s)\n", (yyvsp[0].str)));
7984 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
7986 else cfg_parser->cfg->iter_scrub_cname = atoi((yyvsp[0].str));
7987 free((yyvsp[0].str));
7995 OUTYY(("P(server_max_global_quota:%s)\n", (yyvsp[0].str)));
7996 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
7998 else cfg_parser->cfg->max_global_quota = atoi((yyvsp[0].str));
7999 free((yyvsp[0].str));
8017 OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str)));
8022 cfg_parser->cfg->ipset_name_v4 = (yyvsp[0].str);
8025 free((yyvsp[0].str));
8035 OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str)));
8040 cfg_parser->cfg->ipset_name_v6 = (yyvsp[0].str);
8043 free((yyvsp[0].str));