]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- output of newer lex 2.6.1 and bison 3.0.5.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Fri, 25 Jan 2019 13:00:09 +0000 (13:00 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Fri, 25 Jan 2019 13:00:09 +0000 (13:00 +0000)
git-svn-id: file:///svn/unbound/trunk@5078 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
util/configlexer.c
util/configparser.c
util/configparser.h

index 9cea746e4297acd698f563c350e91a8eef1af6d7..f115b79f40a309fc73d080abb70ab2166d07800a 100644 (file)
@@ -4,6 +4,7 @@
        - updated contrib/fastrpz.patch to cleanly diff.
        - no lock when threads disabled in tcp request buffer count.
        - remove compile warnings from libnettle compile.
+       - output of newer lex 2.6.1 and bison 3.0.5.
 
 24 January 2018: Wouter
        - Newer aclocal and libtoolize used for generating configure scripts,
index 7b839b3a9843a1c4ae89b12437cc20508f0a5ed7..2d9be6217a77bfcd97ea068412498751e1ee6767 100644 (file)
@@ -5430,10 +5430,10 @@ YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
        YY_BUFFER_STATE b;
        char *buf;
        yy_size_t n;
-       yy_size_t i;
+       int i;
     
        /* Get memory for full buffer, including space for trailing EOB's. */
-       n = (yy_size_t) _yybytes_len + 2;
+       n = (yy_size_t) (_yybytes_len + 2);
        buf = (char *) yyalloc(n  );
        if ( ! buf )
                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
index 18739485ae17b6079fa0a591838e3ec4cc91f966..9674aa283dc528b6e6d1699dfe6f6dad725f33c9 100644 (file)
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.0.4.  */
+/* A Bison parser, made by GNU Bison 3.0.5.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.0.4"
+#define YYBISON_VERSION "3.0.5"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -2267,6 +2267,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
       case N:                               \
         yyformat = S;                       \
       break
+    default: /* Avoid compiler warnings. */
       YYCASE_(0, YY_("syntax error"));
       YYCASE_(1, YY_("syntax error, unexpected %s"));
       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
@@ -2583,15 +2584,15 @@ yyreduce:
   switch (yyn)
     {
         case 14:
-#line 182 "./util/configparser.y" /* yacc.c:1646  */
+#line 182 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("\nP(server:)\n")); 
        }
-#line 2591 "util/configparser.c" /* yacc.c:1646  */
+#line 2592 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 206:
-#line 273 "./util/configparser.y" /* yacc.c:1646  */
+#line 273 "./util/configparser.y" /* yacc.c:1648  */
     {
                struct config_stub* s;
                OUTYY(("\nP(stub_zone:)\n")); 
@@ -2602,11 +2603,11 @@ yyreduce:
                } else 
                        yyerror("out of memory");
        }
-#line 2606 "util/configparser.c" /* yacc.c:1646  */
+#line 2607 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 216:
-#line 290 "./util/configparser.y" /* yacc.c:1646  */
+#line 290 "./util/configparser.y" /* yacc.c:1648  */
     {
                struct config_stub* s;
                OUTYY(("\nP(forward_zone:)\n")); 
@@ -2617,11 +2618,11 @@ yyreduce:
                } else 
                        yyerror("out of memory");
        }
-#line 2621 "util/configparser.c" /* yacc.c:1646  */
+#line 2622 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 225:
-#line 307 "./util/configparser.y" /* yacc.c:1646  */
+#line 307 "./util/configparser.y" /* yacc.c:1648  */
     {
                struct config_view* s;
                OUTYY(("\nP(view:)\n")); 
@@ -2634,11 +2635,11 @@ yyreduce:
                } else 
                        yyerror("out of memory");
        }
-#line 2638 "util/configparser.c" /* yacc.c:1646  */
+#line 2639 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 235:
-#line 326 "./util/configparser.y" /* yacc.c:1646  */
+#line 326 "./util/configparser.y" /* yacc.c:1648  */
     {
                struct config_auth* s;
                OUTYY(("\nP(auth_zone:)\n")); 
@@ -2653,11 +2654,11 @@ yyreduce:
                } else 
                        yyerror("out of memory");
        }
-#line 2657 "util/configparser.c" /* yacc.c:1646  */
+#line 2658 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 246:
-#line 348 "./util/configparser.y" /* yacc.c:1646  */
+#line 348 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2665,11 +2666,11 @@ yyreduce:
                else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2669 "util/configparser.c" /* yacc.c:1646  */
+#line 2670 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 247:
-#line 357 "./util/configparser.y" /* yacc.c:1646  */
+#line 357 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2677,11 +2678,11 @@ yyreduce:
                else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2681 "util/configparser.c" /* yacc.c:1646  */
+#line 2682 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 248:
-#line 366 "./util/configparser.y" /* yacc.c:1646  */
+#line 366 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); 
                if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
@@ -2691,11 +2692,11 @@ yyreduce:
                else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2695 "util/configparser.c" /* yacc.c:1646  */
+#line 2696 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 249:
-#line 377 "./util/configparser.y" /* yacc.c:1646  */
+#line 377 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2703,11 +2704,11 @@ yyreduce:
                else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2707 "util/configparser.c" /* yacc.c:1646  */
+#line 2708 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 250:
-#line 386 "./util/configparser.y" /* yacc.c:1646  */
+#line 386 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2715,11 +2716,11 @@ yyreduce:
                else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2719 "util/configparser.c" /* yacc.c:1646  */
+#line 2720 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 251:
-#line 395 "./util/configparser.y" /* yacc.c:1646  */
+#line 395 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2727,11 +2728,11 @@ yyreduce:
                else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2731 "util/configparser.c" /* yacc.c:1646  */
+#line 2732 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 252:
-#line 404 "./util/configparser.y" /* yacc.c:1646  */
+#line 404 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); 
                if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
@@ -2741,11 +2742,11 @@ yyreduce:
                else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2745 "util/configparser.c" /* yacc.c:1646  */
+#line 2746 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 253:
-#line 415 "./util/configparser.y" /* yacc.c:1646  */
+#line 415 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2753,11 +2754,11 @@ yyreduce:
                else cfg_parser->cfg->port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2757 "util/configparser.c" /* yacc.c:1646  */
+#line 2758 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 254:
-#line 424 "./util/configparser.y" /* yacc.c:1646  */
+#line 424 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef CLIENT_SUBNET
                OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str)));
@@ -2767,11 +2768,11 @@ yyreduce:
                OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
        #endif
        }
-#line 2771 "util/configparser.c" /* yacc.c:1646  */
+#line 2772 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 255:
-#line 435 "./util/configparser.y" /* yacc.c:1646  */
+#line 435 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef CLIENT_SUBNET
                OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str)));
@@ -2782,11 +2783,11 @@ yyreduce:
                OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
        #endif
        }
-#line 2786 "util/configparser.c" /* yacc.c:1646  */
+#line 2787 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 256:
-#line 448 "./util/configparser.y" /* yacc.c:1646  */
+#line 448 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef CLIENT_SUBNET
                OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str)));
@@ -2800,11 +2801,11 @@ yyreduce:
        #endif
                free((yyvsp[0].str));
        }
-#line 2804 "util/configparser.c" /* yacc.c:1646  */
+#line 2805 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 257:
-#line 463 "./util/configparser.y" /* yacc.c:1646  */
+#line 463 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef CLIENT_SUBNET
                OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str)));
@@ -2814,11 +2815,11 @@ yyreduce:
        #endif
                free((yyvsp[0].str));
        }
-#line 2818 "util/configparser.c" /* yacc.c:1646  */
+#line 2819 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 258:
-#line 474 "./util/configparser.y" /* yacc.c:1646  */
+#line 474 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef CLIENT_SUBNET
                OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
@@ -2834,11 +2835,11 @@ yyreduce:
        #endif
                free((yyvsp[0].str));
        }
-#line 2838 "util/configparser.c" /* yacc.c:1646  */
+#line 2839 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 259:
-#line 491 "./util/configparser.y" /* yacc.c:1646  */
+#line 491 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef CLIENT_SUBNET
                OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
@@ -2854,11 +2855,11 @@ yyreduce:
        #endif
                free((yyvsp[0].str));
        }
-#line 2858 "util/configparser.c" /* yacc.c:1646  */
+#line 2859 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 260:
-#line 508 "./util/configparser.y" /* yacc.c:1646  */
+#line 508 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef CLIENT_SUBNET
                OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
@@ -2874,11 +2875,11 @@ yyreduce:
        #endif
                free((yyvsp[0].str));
        }
-#line 2878 "util/configparser.c" /* yacc.c:1646  */
+#line 2879 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 261:
-#line 525 "./util/configparser.y" /* yacc.c:1646  */
+#line 525 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef CLIENT_SUBNET
                OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
@@ -2894,11 +2895,11 @@ yyreduce:
        #endif
                free((yyvsp[0].str));
        }
-#line 2898 "util/configparser.c" /* yacc.c:1646  */
+#line 2899 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 262:
-#line 542 "./util/configparser.y" /* yacc.c:1646  */
+#line 542 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef CLIENT_SUBNET
                OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str)));
@@ -2912,11 +2913,11 @@ yyreduce:
        #endif
                free((yyvsp[0].str));
        }
-#line 2916 "util/configparser.c" /* yacc.c:1646  */
+#line 2917 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 263:
-#line 557 "./util/configparser.y" /* yacc.c:1646  */
+#line 557 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef CLIENT_SUBNET
                OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str)));
@@ -2930,11 +2931,11 @@ yyreduce:
        #endif
                free((yyvsp[0].str));
        }
-#line 2934 "util/configparser.c" /* yacc.c:1646  */
+#line 2935 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 264:
-#line 572 "./util/configparser.y" /* yacc.c:1646  */
+#line 572 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->num_ifs == 0)
@@ -2946,11 +2947,11 @@ yyreduce:
                else
                        cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
        }
-#line 2950 "util/configparser.c" /* yacc.c:1646  */
+#line 2951 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 265:
-#line 585 "./util/configparser.y" /* yacc.c:1646  */
+#line 585 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->num_out_ifs == 0)
@@ -2964,11 +2965,11 @@ yyreduce:
                        cfg_parser->cfg->out_ifs[
                                cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
        }
-#line 2968 "util/configparser.c" /* yacc.c:1646  */
+#line 2969 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 266:
-#line 600 "./util/configparser.y" /* yacc.c:1646  */
+#line 600 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2976,11 +2977,11 @@ yyreduce:
                else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2980 "util/configparser.c" /* yacc.c:1646  */
+#line 2981 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 267:
-#line 609 "./util/configparser.y" /* yacc.c:1646  */
+#line 609 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
                if(!cfg_mark_ports((yyvsp[0].str), 1, 
@@ -2988,11 +2989,11 @@ yyreduce:
                        yyerror("port number or range (\"low-high\") expected");
                free((yyvsp[0].str));
        }
-#line 2992 "util/configparser.c" /* yacc.c:1646  */
+#line 2993 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 268:
-#line 618 "./util/configparser.y" /* yacc.c:1646  */
+#line 618 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
                if(!cfg_mark_ports((yyvsp[0].str), 0, 
@@ -3000,11 +3001,11 @@ yyreduce:
                        yyerror("port number or range (\"low-high\") expected");
                free((yyvsp[0].str));
        }
-#line 3004 "util/configparser.c" /* yacc.c:1646  */
+#line 3005 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 269:
-#line 627 "./util/configparser.y" /* yacc.c:1646  */
+#line 627 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3012,11 +3013,11 @@ yyreduce:
                else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3016 "util/configparser.c" /* yacc.c:1646  */
+#line 3017 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 270:
-#line 636 "./util/configparser.y" /* yacc.c:1646  */
+#line 636 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3024,11 +3025,11 @@ yyreduce:
                else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3028 "util/configparser.c" /* yacc.c:1646  */
+#line 3029 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 271:
-#line 645 "./util/configparser.y" /* yacc.c:1646  */
+#line 645 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3036,11 +3037,11 @@ yyreduce:
                else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3040 "util/configparser.c" /* yacc.c:1646  */
+#line 3041 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 272:
-#line 654 "./util/configparser.y" /* yacc.c:1646  */
+#line 654 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3048,11 +3049,11 @@ yyreduce:
                else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3052 "util/configparser.c" /* yacc.c:1646  */
+#line 3053 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 273:
-#line 663 "./util/configparser.y" /* yacc.c:1646  */
+#line 663 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3060,11 +3061,11 @@ yyreduce:
                else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3064 "util/configparser.c" /* yacc.c:1646  */
+#line 3065 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 274:
-#line 672 "./util/configparser.y" /* yacc.c:1646  */
+#line 672 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3072,11 +3073,11 @@ yyreduce:
                else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3076 "util/configparser.c" /* yacc.c:1646  */
+#line 3077 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 275:
-#line 681 "./util/configparser.y" /* yacc.c:1646  */
+#line 681 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3084,11 +3085,11 @@ yyreduce:
                else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3088 "util/configparser.c" /* yacc.c:1646  */
+#line 3089 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 276:
-#line 690 "./util/configparser.y" /* yacc.c:1646  */
+#line 690 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3096,11 +3097,11 @@ yyreduce:
                else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3100 "util/configparser.c" /* yacc.c:1646  */
+#line 3101 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 277:
-#line 699 "./util/configparser.y" /* yacc.c:1646  */
+#line 699 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
                 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3108,11 +3109,11 @@ yyreduce:
                 else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
                 free((yyvsp[0].str));
        }
-#line 3112 "util/configparser.c" /* yacc.c:1646  */
+#line 3113 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 278:
-#line 708 "./util/configparser.y" /* yacc.c:1646  */
+#line 708 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3120,11 +3121,11 @@ yyreduce:
                else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3124 "util/configparser.c" /* yacc.c:1646  */
+#line 3125 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 279:
-#line 717 "./util/configparser.y" /* yacc.c:1646  */
+#line 717 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3136,11 +3137,11 @@ yyreduce:
                else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3140 "util/configparser.c" /* yacc.c:1646  */
+#line 3141 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 280:
-#line 730 "./util/configparser.y" /* yacc.c:1646  */
+#line 730 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3148,11 +3149,11 @@ yyreduce:
                else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3152 "util/configparser.c" /* yacc.c:1646  */
+#line 3153 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 281:
-#line 739 "./util/configparser.y" /* yacc.c:1646  */
+#line 739 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3164,11 +3165,11 @@ yyreduce:
                else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3168 "util/configparser.c" /* yacc.c:1646  */
+#line 3169 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 282:
-#line 752 "./util/configparser.y" /* yacc.c:1646  */
+#line 752 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3176,11 +3177,11 @@ yyreduce:
                else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3180 "util/configparser.c" /* yacc.c:1646  */
+#line 3181 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 283:
-#line 761 "./util/configparser.y" /* yacc.c:1646  */
+#line 761 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3188,11 +3189,11 @@ yyreduce:
                else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3192 "util/configparser.c" /* yacc.c:1646  */
+#line 3193 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 284:
-#line 770 "./util/configparser.y" /* yacc.c:1646  */
+#line 770 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3200,31 +3201,31 @@ yyreduce:
                else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3204 "util/configparser.c" /* yacc.c:1646  */
+#line 3205 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 285:
-#line 779 "./util/configparser.y" /* yacc.c:1646  */
+#line 779 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->ssl_service_key);
                cfg_parser->cfg->ssl_service_key = (yyvsp[0].str);
        }
-#line 3214 "util/configparser.c" /* yacc.c:1646  */
+#line 3215 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 286:
-#line 786 "./util/configparser.y" /* yacc.c:1646  */
+#line 786 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->ssl_service_pem);
                cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str);
        }
-#line 3224 "util/configparser.c" /* yacc.c:1646  */
+#line 3225 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 287:
-#line 793 "./util/configparser.y" /* yacc.c:1646  */
+#line 793 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3232,21 +3233,21 @@ yyreduce:
                else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3236 "util/configparser.c" /* yacc.c:1646  */
+#line 3237 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 288:
-#line 802 "./util/configparser.y" /* yacc.c:1646  */
+#line 802 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->tls_cert_bundle);
                cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str);
        }
-#line 3246 "util/configparser.c" /* yacc.c:1646  */
+#line 3247 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 289:
-#line 809 "./util/configparser.y" /* yacc.c:1646  */
+#line 809 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3254,53 +3255,53 @@ yyreduce:
                else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3258 "util/configparser.c" /* yacc.c:1646  */
+#line 3259 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 290:
-#line 818 "./util/configparser.y" /* yacc.c:1646  */
+#line 818 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port,
                        (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3269 "util/configparser.c" /* yacc.c:1646  */
+#line 3270 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 291:
-#line 826 "./util/configparser.y" /* yacc.c:1646  */
+#line 826 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->tls_ciphers);
                cfg_parser->cfg->tls_ciphers = (yyvsp[0].str);
        }
-#line 3279 "util/configparser.c" /* yacc.c:1646  */
+#line 3280 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 292:
-#line 833 "./util/configparser.y" /* yacc.c:1646  */
+#line 833 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->tls_ciphersuites);
                cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str);
        }
-#line 3289 "util/configparser.c" /* yacc.c:1646  */
+#line 3290 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 293:
-#line 840 "./util/configparser.y" /* yacc.c:1646  */
+#line 840 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys,
                        (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3300 "util/configparser.c" /* yacc.c:1646  */
+#line 3301 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 294:
-#line 848 "./util/configparser.y" /* yacc.c:1646  */
+#line 848 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3308,11 +3309,11 @@ yyreduce:
                else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3312 "util/configparser.c" /* yacc.c:1646  */
+#line 3313 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 295:
-#line 857 "./util/configparser.y" /* yacc.c:1646  */
+#line 857 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3320,11 +3321,11 @@ yyreduce:
                else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3324 "util/configparser.c" /* yacc.c:1646  */
+#line 3325 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 296:
-#line 866 "./util/configparser.y" /* yacc.c:1646  */
+#line 866 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3337,11 +3338,11 @@ yyreduce:
 #endif
                free((yyvsp[0].str));
        }
-#line 3341 "util/configparser.c" /* yacc.c:1646  */
+#line 3342 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 297:
-#line 880 "./util/configparser.y" /* yacc.c:1646  */
+#line 880 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3349,11 +3350,11 @@ yyreduce:
                else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3353 "util/configparser.c" /* yacc.c:1646  */
+#line 3354 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 298:
-#line 889 "./util/configparser.y" /* yacc.c:1646  */
+#line 889 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3361,11 +3362,11 @@ yyreduce:
                else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3365 "util/configparser.c" /* yacc.c:1646  */
+#line 3366 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 299:
-#line 898 "./util/configparser.y" /* yacc.c:1646  */
+#line 898 "./util/configparser.y" /* yacc.c:1648  */
     {
        OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str)));
        if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3373,11 +3374,11 @@ yyreduce:
        else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
        free((yyvsp[0].str));
   }
-#line 3377 "util/configparser.c" /* yacc.c:1646  */
+#line 3378 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 300:
-#line 907 "./util/configparser.y" /* yacc.c:1646  */
+#line 907 "./util/configparser.y" /* yacc.c:1648  */
     {
        OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str)));
        if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3385,11 +3386,11 @@ yyreduce:
        else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0);
        free((yyvsp[0].str));
   }
-#line 3389 "util/configparser.c" /* yacc.c:1646  */
+#line 3390 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 301:
-#line 916 "./util/configparser.y" /* yacc.c:1646  */
+#line 916 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3397,11 +3398,11 @@ yyreduce:
                else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3401 "util/configparser.c" /* yacc.c:1646  */
+#line 3402 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 302:
-#line 925 "./util/configparser.y" /* yacc.c:1646  */
+#line 925 "./util/configparser.y" /* yacc.c:1648  */
     {
        OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str)));
        if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3409,31 +3410,31 @@ yyreduce:
        else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0);
        free((yyvsp[0].str));
   }
-#line 3413 "util/configparser.c" /* yacc.c:1646  */
+#line 3414 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 303:
-#line 934 "./util/configparser.y" /* yacc.c:1646  */
+#line 934 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->chrootdir);
                cfg_parser->cfg->chrootdir = (yyvsp[0].str);
        }
-#line 3423 "util/configparser.c" /* yacc.c:1646  */
+#line 3424 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 304:
-#line 941 "./util/configparser.y" /* yacc.c:1646  */
+#line 941 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->username);
                cfg_parser->cfg->username = (yyvsp[0].str);
        }
-#line 3433 "util/configparser.c" /* yacc.c:1646  */
+#line 3434 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 305:
-#line 948 "./util/configparser.y" /* yacc.c:1646  */
+#line 948 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->directory);
@@ -3458,105 +3459,105 @@ yyreduce:
                        }
                }
        }
-#line 3462 "util/configparser.c" /* yacc.c:1646  */
+#line 3463 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 306:
-#line 974 "./util/configparser.y" /* yacc.c:1646  */
+#line 974 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->logfile);
                cfg_parser->cfg->logfile = (yyvsp[0].str);
                cfg_parser->cfg->use_syslog = 0;
        }
-#line 3473 "util/configparser.c" /* yacc.c:1646  */
+#line 3474 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 307:
-#line 982 "./util/configparser.y" /* yacc.c:1646  */
+#line 982 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->pidfile);
                cfg_parser->cfg->pidfile = (yyvsp[0].str);
        }
-#line 3483 "util/configparser.c" /* yacc.c:1646  */
+#line 3484 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 308:
-#line 989 "./util/configparser.y" /* yacc.c:1646  */
+#line 989 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3493 "util/configparser.c" /* yacc.c:1646  */
+#line 3494 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 309:
-#line 996 "./util/configparser.y" /* yacc.c:1646  */
+#line 996 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dlv_anchor_file);
                cfg_parser->cfg->dlv_anchor_file = (yyvsp[0].str);
        }
-#line 3503 "util/configparser.c" /* yacc.c:1646  */
+#line 3504 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 310:
-#line 1003 "./util/configparser.y" /* yacc.c:1646  */
+#line 1003 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3513 "util/configparser.c" /* yacc.c:1646  */
+#line 3514 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 311:
-#line 1010 "./util/configparser.y" /* yacc.c:1646  */
+#line 1010 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
                        auto_trust_anchor_file_list, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3524 "util/configparser.c" /* yacc.c:1646  */
+#line 3525 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 312:
-#line 1018 "./util/configparser.y" /* yacc.c:1646  */
+#line 1018 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
                        trust_anchor_file_list, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3535 "util/configparser.c" /* yacc.c:1646  */
+#line 3536 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 313:
-#line 1026 "./util/configparser.y" /* yacc.c:1646  */
+#line 1026 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
                        trusted_keys_file_list, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3546 "util/configparser.c" /* yacc.c:1646  */
+#line 3547 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 314:
-#line 1034 "./util/configparser.y" /* yacc.c:1646  */
+#line 1034 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3556 "util/configparser.c" /* yacc.c:1646  */
+#line 3557 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 315:
-#line 1041 "./util/configparser.y" /* yacc.c:1646  */
+#line 1041 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3566,11 +3567,11 @@ yyreduce:
                                (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3570 "util/configparser.c" /* yacc.c:1646  */
+#line 3571 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 316:
-#line 1052 "./util/configparser.y" /* yacc.c:1646  */
+#line 1052 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3580,21 +3581,21 @@ yyreduce:
                                (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3584 "util/configparser.c" /* yacc.c:1646  */
+#line 3585 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 317:
-#line 1063 "./util/configparser.y" /* yacc.c:1646  */
+#line 1063 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3594 "util/configparser.c" /* yacc.c:1646  */
+#line 3595 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 318:
-#line 1070 "./util/configparser.y" /* yacc.c:1646  */
+#line 1070 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3602,11 +3603,11 @@ yyreduce:
                else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3606 "util/configparser.c" /* yacc.c:1646  */
+#line 3607 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 319:
-#line 1079 "./util/configparser.y" /* yacc.c:1646  */
+#line 1079 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3614,11 +3615,11 @@ yyreduce:
                else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3618 "util/configparser.c" /* yacc.c:1646  */
+#line 3619 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 320:
-#line 1088 "./util/configparser.y" /* yacc.c:1646  */
+#line 1088 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3626,53 +3627,53 @@ yyreduce:
                else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3630 "util/configparser.c" /* yacc.c:1646  */
+#line 3631 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 321:
-#line 1097 "./util/configparser.y" /* yacc.c:1646  */
+#line 1097 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->identity);
                cfg_parser->cfg->identity = (yyvsp[0].str);
        }
-#line 3640 "util/configparser.c" /* yacc.c:1646  */
+#line 3641 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 322:
-#line 1104 "./util/configparser.y" /* yacc.c:1646  */
+#line 1104 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->version);
                cfg_parser->cfg->version = (yyvsp[0].str);
        }
-#line 3650 "util/configparser.c" /* yacc.c:1646  */
+#line 3651 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 323:
-#line 1111 "./util/configparser.y" /* yacc.c:1646  */
+#line 1111 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
                        yyerror("buffer size expected");
                free((yyvsp[0].str));
        }
-#line 3661 "util/configparser.c" /* yacc.c:1646  */
+#line 3662 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 324:
-#line 1119 "./util/configparser.y" /* yacc.c:1646  */
+#line 1119 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
                        yyerror("buffer size expected");
                free((yyvsp[0].str));
        }
-#line 3672 "util/configparser.c" /* yacc.c:1646  */
+#line 3673 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 325:
-#line 1127 "./util/configparser.y" /* yacc.c:1646  */
+#line 1127 "./util/configparser.y" /* yacc.c:1648  */
     {
         OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
         if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3681,11 +3682,11 @@ yyreduce:
             (strcmp((yyvsp[0].str), "yes")==0);
         free((yyvsp[0].str));
     }
-#line 3685 "util/configparser.c" /* yacc.c:1646  */
+#line 3686 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 326:
-#line 1137 "./util/configparser.y" /* yacc.c:1646  */
+#line 1137 "./util/configparser.y" /* yacc.c:1648  */
     {
         OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
         if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3694,11 +3695,11 @@ yyreduce:
             (strcmp((yyvsp[0].str), "yes")==0);
         free((yyvsp[0].str));
     }
-#line 3698 "util/configparser.c" /* yacc.c:1646  */
+#line 3699 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 327:
-#line 1147 "./util/configparser.y" /* yacc.c:1646  */
+#line 1147 "./util/configparser.y" /* yacc.c:1648  */
     {
         OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
         if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3707,22 +3708,22 @@ yyreduce:
             (strcmp((yyvsp[0].str), "yes")==0);
         free((yyvsp[0].str));
     }
-#line 3711 "util/configparser.c" /* yacc.c:1646  */
+#line 3712 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 328:
-#line 1157 "./util/configparser.y" /* yacc.c:1646  */
+#line 1157 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size))
                        yyerror("memory size expected");
                free((yyvsp[0].str));
        }
-#line 3722 "util/configparser.c" /* yacc.c:1646  */
+#line 3723 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 329:
-#line 1165 "./util/configparser.y" /* yacc.c:1646  */
+#line 1165 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3734,11 +3735,11 @@ yyreduce:
                else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3738 "util/configparser.c" /* yacc.c:1646  */
+#line 3739 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 330:
-#line 1178 "./util/configparser.y" /* yacc.c:1646  */
+#line 1178 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3748,22 +3749,22 @@ yyreduce:
                else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3752 "util/configparser.c" /* yacc.c:1646  */
+#line 3753 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 331:
-#line 1189 "./util/configparser.y" /* yacc.c:1646  */
+#line 1189 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
                        yyerror("memory size expected");
                free((yyvsp[0].str));
        }
-#line 3763 "util/configparser.c" /* yacc.c:1646  */
+#line 3764 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 332:
-#line 1197 "./util/configparser.y" /* yacc.c:1646  */
+#line 1197 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3775,11 +3776,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3779 "util/configparser.c" /* yacc.c:1646  */
+#line 3780 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 333:
-#line 1210 "./util/configparser.y" /* yacc.c:1646  */
+#line 1210 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3787,11 +3788,11 @@ yyreduce:
                else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3791 "util/configparser.c" /* yacc.c:1646  */
+#line 3792 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 334:
-#line 1219 "./util/configparser.y" /* yacc.c:1646  */
+#line 1219 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3799,11 +3800,11 @@ yyreduce:
                else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3803 "util/configparser.c" /* yacc.c:1646  */
+#line 3804 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 335:
-#line 1228 "./util/configparser.y" /* yacc.c:1646  */
+#line 1228 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3811,11 +3812,11 @@ yyreduce:
                else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3815 "util/configparser.c" /* yacc.c:1646  */
+#line 3816 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 336:
-#line 1237 "./util/configparser.y" /* yacc.c:1646  */
+#line 1237 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3824,11 +3825,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3828 "util/configparser.c" /* yacc.c:1646  */
+#line 3829 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 337:
-#line 1247 "./util/configparser.y" /* yacc.c:1646  */
+#line 1247 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3837,22 +3838,22 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3841 "util/configparser.c" /* yacc.c:1646  */
+#line 3842 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 338:
-#line 1257 "./util/configparser.y" /* yacc.c:1646  */
+#line 1257 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
                        yyerror("memory size expected");
                free((yyvsp[0].str));
        }
-#line 3852 "util/configparser.c" /* yacc.c:1646  */
+#line 3853 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 339:
-#line 1265 "./util/configparser.y" /* yacc.c:1646  */
+#line 1265 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3864,11 +3865,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3868 "util/configparser.c" /* yacc.c:1646  */
+#line 3869 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 340:
-#line 1278 "./util/configparser.y" /* yacc.c:1646  */
+#line 1278 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3876,22 +3877,22 @@ yyreduce:
                else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3880 "util/configparser.c" /* yacc.c:1646  */
+#line 3881 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 341:
-#line 1287 "./util/configparser.y" /* yacc.c:1646  */
+#line 1287 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str)));
                verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
                        "removed, use infra-host-ttl)", (yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3891 "util/configparser.c" /* yacc.c:1646  */
+#line 3892 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 342:
-#line 1295 "./util/configparser.y" /* yacc.c:1646  */
+#line 1295 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3899,22 +3900,22 @@ yyreduce:
                else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3903 "util/configparser.c" /* yacc.c:1646  */
+#line 3904 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 343:
-#line 1304 "./util/configparser.y" /* yacc.c:1646  */
+#line 1304 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str)));
                verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
                        "(option removed, use infra-cache-numhosts)", (yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3914 "util/configparser.c" /* yacc.c:1646  */
+#line 3915 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 344:
-#line 1312 "./util/configparser.y" /* yacc.c:1646  */
+#line 1312 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3926,11 +3927,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3930 "util/configparser.c" /* yacc.c:1646  */
+#line 3931 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 345:
-#line 1325 "./util/configparser.y" /* yacc.c:1646  */
+#line 1325 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3938,21 +3939,21 @@ yyreduce:
                else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3942 "util/configparser.c" /* yacc.c:1646  */
+#line 3943 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 346:
-#line 1334 "./util/configparser.y" /* yacc.c:1646  */
+#line 1334 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->target_fetch_policy);
                cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str);
        }
-#line 3952 "util/configparser.c" /* yacc.c:1646  */
+#line 3953 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 347:
-#line 1341 "./util/configparser.y" /* yacc.c:1646  */
+#line 1341 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3961,11 +3962,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3965 "util/configparser.c" /* yacc.c:1646  */
+#line 3966 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 348:
-#line 1351 "./util/configparser.y" /* yacc.c:1646  */
+#line 1351 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3974,11 +3975,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3978 "util/configparser.c" /* yacc.c:1646  */
+#line 3979 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 349:
-#line 1361 "./util/configparser.y" /* yacc.c:1646  */
+#line 1361 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3987,11 +3988,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3991 "util/configparser.c" /* yacc.c:1646  */
+#line 3992 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 350:
-#line 1371 "./util/configparser.y" /* yacc.c:1646  */
+#line 1371 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4000,11 +4001,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4004 "util/configparser.c" /* yacc.c:1646  */
+#line 4005 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 351:
-#line 1381 "./util/configparser.y" /* yacc.c:1646  */
+#line 1381 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4013,11 +4014,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4017 "util/configparser.c" /* yacc.c:1646  */
+#line 4018 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 352:
-#line 1391 "./util/configparser.y" /* yacc.c:1646  */
+#line 1391 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4026,11 +4027,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4030 "util/configparser.c" /* yacc.c:1646  */
+#line 4031 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 353:
-#line 1401 "./util/configparser.y" /* yacc.c:1646  */
+#line 1401 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4039,11 +4040,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4043 "util/configparser.c" /* yacc.c:1646  */
+#line 4044 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 354:
-#line 1411 "./util/configparser.y" /* yacc.c:1646  */
+#line 1411 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4052,41 +4053,41 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4056 "util/configparser.c" /* yacc.c:1646  */
+#line 4057 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 355:
-#line 1421 "./util/configparser.y" /* yacc.c:1646  */
+#line 1421 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 4066 "util/configparser.c" /* yacc.c:1646  */
+#line 4067 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 356:
-#line 1428 "./util/configparser.y" /* yacc.c:1646  */
+#line 1428 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 4076 "util/configparser.c" /* yacc.c:1646  */
+#line 4077 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 357:
-#line 1435 "./util/configparser.y" /* yacc.c:1646  */
+#line 1435 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 4086 "util/configparser.c" /* yacc.c:1646  */
+#line 4087 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 358:
-#line 1442 "./util/configparser.y" /* yacc.c:1646  */
+#line 1442 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4094,11 +4095,11 @@ yyreduce:
                else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4098 "util/configparser.c" /* yacc.c:1646  */
+#line 4099 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 359:
-#line 1451 "./util/configparser.y" /* yacc.c:1646  */
+#line 1451 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4106,11 +4107,11 @@ yyreduce:
                else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4110 "util/configparser.c" /* yacc.c:1646  */
+#line 4111 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 360:
-#line 1460 "./util/configparser.y" /* yacc.c:1646  */
+#line 1460 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4118,11 +4119,11 @@ yyreduce:
                else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4122 "util/configparser.c" /* yacc.c:1646  */
+#line 4123 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 361:
-#line 1469 "./util/configparser.y" /* yacc.c:1646  */
+#line 1469 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4130,21 +4131,21 @@ yyreduce:
                else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4134 "util/configparser.c" /* yacc.c:1646  */
+#line 4135 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 362:
-#line 1478 "./util/configparser.y" /* yacc.c:1646  */
+#line 1478 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 4144 "util/configparser.c" /* yacc.c:1646  */
+#line 4145 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 363:
-#line 1485 "./util/configparser.y" /* yacc.c:1646  */
+#line 1485 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4153,11 +4154,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4157 "util/configparser.c" /* yacc.c:1646  */
+#line 4158 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 364:
-#line 1495 "./util/configparser.y" /* yacc.c:1646  */
+#line 1495 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 &&
@@ -4176,21 +4177,21 @@ yyreduce:
                                fatal_exit("out of memory adding acl");
                }
        }
-#line 4180 "util/configparser.c" /* yacc.c:1646  */
+#line 4181 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 365:
-#line 1515 "./util/configparser.y" /* yacc.c:1646  */
+#line 1515 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->module_conf);
                cfg_parser->cfg->module_conf = (yyvsp[0].str);
        }
-#line 4190 "util/configparser.c" /* yacc.c:1646  */
+#line 4191 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 366:
-#line 1522 "./util/configparser.y" /* yacc.c:1646  */
+#line 1522 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str)));
                if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -4207,11 +4208,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 4211 "util/configparser.c" /* yacc.c:1646  */
+#line 4212 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 367:
-#line 1540 "./util/configparser.y" /* yacc.c:1646  */
+#line 1540 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str)));
                if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -4223,11 +4224,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 4227 "util/configparser.c" /* yacc.c:1646  */
+#line 4228 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 368:
-#line 1553 "./util/configparser.y" /* yacc.c:1646  */
+#line 1553 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str)));
                if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -4239,11 +4240,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 4243 "util/configparser.c" /* yacc.c:1646  */
+#line 4244 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 369:
-#line 1566 "./util/configparser.y" /* yacc.c:1646  */
+#line 1566 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4251,11 +4252,11 @@ yyreduce:
                else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4255 "util/configparser.c" /* yacc.c:1646  */
+#line 4256 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 370:
-#line 1575 "./util/configparser.y" /* yacc.c:1646  */
+#line 1575 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4263,11 +4264,11 @@ yyreduce:
                else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4267 "util/configparser.c" /* yacc.c:1646  */
+#line 4268 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 371:
-#line 1584 "./util/configparser.y" /* yacc.c:1646  */
+#line 1584 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4275,11 +4276,11 @@ yyreduce:
                else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4279 "util/configparser.c" /* yacc.c:1646  */
+#line 4280 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 372:
-#line 1593 "./util/configparser.y" /* yacc.c:1646  */
+#line 1593 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4287,11 +4288,11 @@ yyreduce:
                else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4291 "util/configparser.c" /* yacc.c:1646  */
+#line 4292 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 373:
-#line 1602 "./util/configparser.y" /* yacc.c:1646  */
+#line 1602 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4300,11 +4301,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4304 "util/configparser.c" /* yacc.c:1646  */
+#line 4305 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 374:
-#line 1612 "./util/configparser.y" /* yacc.c:1646  */
+#line 1612 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4313,11 +4314,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4317 "util/configparser.c" /* yacc.c:1646  */
+#line 4318 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 375:
-#line 1622 "./util/configparser.y" /* yacc.c:1646  */
+#line 1622 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4327,11 +4328,11 @@ yyreduce:
                                (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4331 "util/configparser.c" /* yacc.c:1646  */
+#line 4332 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 376:
-#line 1633 "./util/configparser.y" /* yacc.c:1646  */
+#line 1633 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4339,11 +4340,11 @@ yyreduce:
                else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4343 "util/configparser.c" /* yacc.c:1646  */
+#line 4344 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 377:
-#line 1642 "./util/configparser.y" /* yacc.c:1646  */
+#line 1642 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4351,11 +4352,11 @@ yyreduce:
                else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4355 "util/configparser.c" /* yacc.c:1646  */
+#line 4356 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 378:
-#line 1651 "./util/configparser.y" /* yacc.c:1646  */
+#line 1651 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4363,11 +4364,11 @@ yyreduce:
                else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4367 "util/configparser.c" /* yacc.c:1646  */
+#line 4368 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 379:
-#line 1660 "./util/configparser.y" /* yacc.c:1646  */
+#line 1660 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4375,11 +4376,11 @@ yyreduce:
                else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4379 "util/configparser.c" /* yacc.c:1646  */
+#line 4380 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 380:
-#line 1669 "./util/configparser.y" /* yacc.c:1646  */
+#line 1669 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4391,11 +4392,11 @@ yyreduce:
 #endif
                free((yyvsp[0].str));
        }
-#line 4395 "util/configparser.c" /* yacc.c:1646  */
+#line 4396 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 381:
-#line 1682 "./util/configparser.y" /* yacc.c:1646  */
+#line 1682 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4407,11 +4408,11 @@ yyreduce:
 #endif
                free((yyvsp[0].str));
        }
-#line 4411 "util/configparser.c" /* yacc.c:1646  */
+#line 4412 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 382:
-#line 1695 "./util/configparser.y" /* yacc.c:1646  */
+#line 1695 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4419,21 +4420,21 @@ yyreduce:
                else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4423 "util/configparser.c" /* yacc.c:1646  */
+#line 4424 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 383:
-#line 1704 "./util/configparser.y" /* yacc.c:1646  */
+#line 1704 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->val_nsec3_key_iterations);
                cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str);
        }
-#line 4433 "util/configparser.c" /* yacc.c:1646  */
+#line 4434 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 384:
-#line 1711 "./util/configparser.y" /* yacc.c:1646  */
+#line 1711 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4441,11 +4442,11 @@ yyreduce:
                else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4445 "util/configparser.c" /* yacc.c:1646  */
+#line 4446 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 385:
-#line 1720 "./util/configparser.y" /* yacc.c:1646  */
+#line 1720 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4453,11 +4454,11 @@ yyreduce:
                else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4457 "util/configparser.c" /* yacc.c:1646  */
+#line 4458 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 386:
-#line 1729 "./util/configparser.y" /* yacc.c:1646  */
+#line 1729 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4465,11 +4466,11 @@ yyreduce:
                else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4469 "util/configparser.c" /* yacc.c:1646  */
+#line 4470 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 387:
-#line 1738 "./util/configparser.y" /* yacc.c:1646  */
+#line 1738 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4478,22 +4479,22 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4482 "util/configparser.c" /* yacc.c:1646  */
+#line 4483 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 388:
-#line 1747 "./util/configparser.y" /* yacc.c:1646  */
+#line 1747 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size))
                        yyerror("memory size expected");
                free((yyvsp[0].str));
        }
-#line 4493 "util/configparser.c" /* yacc.c:1646  */
+#line 4494 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 389:
-#line 1755 "./util/configparser.y" /* yacc.c:1646  */
+#line 1755 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -4505,22 +4506,22 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 4509 "util/configparser.c" /* yacc.c:1646  */
+#line 4510 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 390:
-#line 1768 "./util/configparser.y" /* yacc.c:1646  */
+#line 1768 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size))
                        yyerror("memory size expected");
                free((yyvsp[0].str));
        }
-#line 4520 "util/configparser.c" /* yacc.c:1646  */
+#line 4521 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 391:
-#line 1776 "./util/configparser.y" /* yacc.c:1646  */
+#line 1776 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
@@ -4550,21 +4551,21 @@ yyreduce:
                                fatal_exit("out of memory adding local-zone");
                }
        }
-#line 4554 "util/configparser.c" /* yacc.c:1646  */
+#line 4555 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 392:
-#line 1807 "./util/configparser.y" /* yacc.c:1646  */
+#line 1807 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str)))
                        fatal_exit("out of memory adding local-data");
        }
-#line 4564 "util/configparser.c" /* yacc.c:1646  */
+#line 4565 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 393:
-#line 1814 "./util/configparser.y" /* yacc.c:1646  */
+#line 1814 "./util/configparser.y" /* yacc.c:1648  */
     {
                char* ptr;
                OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -4578,11 +4579,11 @@ yyreduce:
                        yyerror("local-data-ptr could not be reversed");
                }
        }
-#line 4582 "util/configparser.c" /* yacc.c:1646  */
+#line 4583 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 394:
-#line 1829 "./util/configparser.y" /* yacc.c:1646  */
+#line 1829 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4591,11 +4592,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4595 "util/configparser.c" /* yacc.c:1646  */
+#line 4596 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 395:
-#line 1839 "./util/configparser.y" /* yacc.c:1646  */
+#line 1839 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4604,41 +4605,41 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4608 "util/configparser.c" /* yacc.c:1646  */
+#line 4609 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 396:
-#line 1849 "./util/configparser.y" /* yacc.c:1646  */
+#line 1849 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str)));
                cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4618 "util/configparser.c" /* yacc.c:1646  */
+#line 4619 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 397:
-#line 1856 "./util/configparser.y" /* yacc.c:1646  */
+#line 1856 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str)));
                cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4628 "util/configparser.c" /* yacc.c:1646  */
+#line 4629 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 398:
-#line 1863 "./util/configparser.y" /* yacc.c:1646  */
+#line 1863 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dns64_prefix);
                cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
        }
-#line 4638 "util/configparser.c" /* yacc.c:1646  */
+#line 4639 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 399:
-#line 1870 "./util/configparser.y" /* yacc.c:1646  */
+#line 1870 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4646,22 +4647,22 @@ yyreduce:
                else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4650 "util/configparser.c" /* yacc.c:1646  */
+#line 4651 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 400:
-#line 1879 "./util/configparser.y" /* yacc.c:1646  */
+#line 1879 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa,
                        (yyvsp[0].str)))
                        fatal_exit("out of memory adding dns64-ignore-aaaa");
        }
-#line 4661 "util/configparser.c" /* yacc.c:1646  */
+#line 4662 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 401:
-#line 1887 "./util/configparser.y" /* yacc.c:1646  */
+#line 1887 "./util/configparser.y" /* yacc.c:1648  */
     {
                char* p, *s = (yyvsp[0].str);
                OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
@@ -4674,11 +4675,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 4678 "util/configparser.c" /* yacc.c:1646  */
+#line 4679 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 402:
-#line 1901 "./util/configparser.y" /* yacc.c:1646  */
+#line 1901 "./util/configparser.y" /* yacc.c:1648  */
     {
                size_t len = 0;
                uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -4698,11 +4699,11 @@ yyreduce:
                        }
                }
        }
-#line 4702 "util/configparser.c" /* yacc.c:1646  */
+#line 4703 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 403:
-#line 1922 "./util/configparser.y" /* yacc.c:1646  */
+#line 1922 "./util/configparser.y" /* yacc.c:1648  */
     {
                size_t len = 0;
                uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -4722,11 +4723,11 @@ yyreduce:
                        }
                }
        }
-#line 4726 "util/configparser.c" /* yacc.c:1646  */
+#line 4727 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 404:
-#line 1943 "./util/configparser.y" /* yacc.c:1646  */
+#line 1943 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
                if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
@@ -4737,11 +4738,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 4741 "util/configparser.c" /* yacc.c:1646  */
+#line 4742 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 405:
-#line 1955 "./util/configparser.y" /* yacc.c:1646  */
+#line 1955 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
                if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
@@ -4752,11 +4753,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 4756 "util/configparser.c" /* yacc.c:1646  */
+#line 4757 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 406:
-#line 1967 "./util/configparser.y" /* yacc.c:1646  */
+#line 1967 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
                if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
@@ -4767,11 +4768,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 4771 "util/configparser.c" /* yacc.c:1646  */
+#line 4772 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 407:
-#line 1979 "./util/configparser.y" /* yacc.c:1646  */
+#line 1979 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
@@ -4779,11 +4780,11 @@ yyreduce:
                        yyerror("out of memory");
                }
        }
-#line 4783 "util/configparser.c" /* yacc.c:1646  */
+#line 4784 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 408:
-#line 1988 "./util/configparser.y" /* yacc.c:1646  */
+#line 1988 "./util/configparser.y" /* yacc.c:1648  */
     {
                size_t len = 0;
                uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -4803,11 +4804,11 @@ yyreduce:
                        }
                }
        }
-#line 4807 "util/configparser.c" /* yacc.c:1646  */
+#line 4808 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 409:
-#line 2009 "./util/configparser.y" /* yacc.c:1646  */
+#line 2009 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4815,11 +4816,11 @@ yyreduce:
                else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4819 "util/configparser.c" /* yacc.c:1646  */
+#line 4820 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 410:
-#line 2019 "./util/configparser.y" /* yacc.c:1646  */
+#line 2019 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4827,33 +4828,33 @@ yyreduce:
                else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4831 "util/configparser.c" /* yacc.c:1646  */
+#line 4832 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 411:
-#line 2028 "./util/configparser.y" /* yacc.c:1646  */
+#line 2028 "./util/configparser.y" /* yacc.c:1648  */
     {
        OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str)));
        if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size))
                yyerror("memory size expected");
        free((yyvsp[0].str));
   }
-#line 4842 "util/configparser.c" /* yacc.c:1646  */
+#line 4843 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 412:
-#line 2036 "./util/configparser.y" /* yacc.c:1646  */
+#line 2036 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size))
                        yyerror("memory size expected");
                free((yyvsp[0].str));
        }
-#line 4853 "util/configparser.c" /* yacc.c:1646  */
+#line 4854 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 413:
-#line 2044 "./util/configparser.y" /* yacc.c:1646  */
+#line 2044 "./util/configparser.y" /* yacc.c:1648  */
     {
        OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
        if(atoi((yyvsp[0].str)) == 0)
@@ -4865,11 +4866,11 @@ yyreduce:
        }
        free((yyvsp[0].str));
   }
-#line 4869 "util/configparser.c" /* yacc.c:1646  */
+#line 4870 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 414:
-#line 2057 "./util/configparser.y" /* yacc.c:1646  */
+#line 2057 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -4881,11 +4882,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 4885 "util/configparser.c" /* yacc.c:1646  */
+#line 4886 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 415:
-#line 2070 "./util/configparser.y" /* yacc.c:1646  */
+#line 2070 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
@@ -4899,11 +4900,11 @@ yyreduce:
                                        "ratelimit-for-domain");
                }
        }
-#line 4903 "util/configparser.c" /* yacc.c:1646  */
+#line 4904 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 416:
-#line 2085 "./util/configparser.y" /* yacc.c:1646  */
+#line 2085 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
@@ -4917,11 +4918,11 @@ yyreduce:
                                        "ratelimit-below-domain");
                }
        }
-#line 4921 "util/configparser.c" /* yacc.c:1646  */
+#line 4922 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 417:
-#line 2100 "./util/configparser.y" /* yacc.c:1646  */
+#line 2100 "./util/configparser.y" /* yacc.c:1648  */
     { 
        OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); 
        if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4929,11 +4930,11 @@ yyreduce:
        else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str));
        free((yyvsp[0].str));
        }
-#line 4933 "util/configparser.c" /* yacc.c:1646  */
+#line 4934 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 418:
-#line 2109 "./util/configparser.y" /* yacc.c:1646  */
+#line 2109 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4941,20 +4942,20 @@ yyreduce:
                else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4945 "util/configparser.c" /* yacc.c:1646  */
+#line 4946 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 419:
-#line 2118 "./util/configparser.y" /* yacc.c:1646  */
+#line 2118 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n"));
                free((yyvsp[0].str));
        }
-#line 4954 "util/configparser.c" /* yacc.c:1646  */
+#line 4955 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 420:
-#line 2124 "./util/configparser.y" /* yacc.c:1646  */
+#line 2124 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) <= 0)
@@ -4962,11 +4963,11 @@ yyreduce:
                else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4966 "util/configparser.c" /* yacc.c:1646  */
+#line 4967 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 421:
-#line 2133 "./util/configparser.y" /* yacc.c:1646  */
+#line 2133 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4974,11 +4975,11 @@ yyreduce:
                else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4978 "util/configparser.c" /* yacc.c:1646  */
+#line 4979 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 422:
-#line 2142 "./util/configparser.y" /* yacc.c:1646  */
+#line 2142 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4987,11 +4988,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4991 "util/configparser.c" /* yacc.c:1646  */
+#line 4992 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 423:
-#line 2152 "./util/configparser.y" /* yacc.c:1646  */
+#line 2152 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5000,11 +5001,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5004 "util/configparser.c" /* yacc.c:1646  */
+#line 5005 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 424:
-#line 2162 "./util/configparser.y" /* yacc.c:1646  */
+#line 2162 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef USE_IPSECMOD
                OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str)));
@@ -5016,11 +5017,11 @@ yyreduce:
        #endif
                free((yyvsp[0].str));
        }
-#line 5020 "util/configparser.c" /* yacc.c:1646  */
+#line 5021 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 425:
-#line 2175 "./util/configparser.y" /* yacc.c:1646  */
+#line 2175 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef USE_IPSECMOD
                OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str)));
@@ -5032,11 +5033,11 @@ yyreduce:
        #endif
                free((yyvsp[0].str));
        }
-#line 5036 "util/configparser.c" /* yacc.c:1646  */
+#line 5037 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 426:
-#line 2188 "./util/configparser.y" /* yacc.c:1646  */
+#line 2188 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef USE_IPSECMOD
                OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str)));
@@ -5047,11 +5048,11 @@ yyreduce:
                free((yyvsp[0].str));
        #endif
        }
-#line 5051 "util/configparser.c" /* yacc.c:1646  */
+#line 5052 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 427:
-#line 2200 "./util/configparser.y" /* yacc.c:1646  */
+#line 2200 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef USE_IPSECMOD
                OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str)));
@@ -5064,11 +5065,11 @@ yyreduce:
                free((yyvsp[0].str));
        #endif
        }
-#line 5068 "util/configparser.c" /* yacc.c:1646  */
+#line 5069 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 428:
-#line 2214 "./util/configparser.y" /* yacc.c:1646  */
+#line 2214 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef USE_IPSECMOD
                OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str)));
@@ -5079,11 +5080,11 @@ yyreduce:
                free((yyvsp[0].str));
        #endif
        }
-#line 5083 "util/configparser.c" /* yacc.c:1646  */
+#line 5084 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 429:
-#line 2226 "./util/configparser.y" /* yacc.c:1646  */
+#line 2226 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef USE_IPSECMOD
                OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str)));
@@ -5096,11 +5097,11 @@ yyreduce:
                free((yyvsp[0].str));
        #endif
        }
-#line 5100 "util/configparser.c" /* yacc.c:1646  */
+#line 5101 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 430:
-#line 2240 "./util/configparser.y" /* yacc.c:1646  */
+#line 2240 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->stubs->name)
@@ -5109,31 +5110,31 @@ yyreduce:
                free(cfg_parser->cfg->stubs->name);
                cfg_parser->cfg->stubs->name = (yyvsp[0].str);
        }
-#line 5113 "util/configparser.c" /* yacc.c:1646  */
+#line 5114 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 431:
-#line 2250 "./util/configparser.y" /* yacc.c:1646  */
+#line 2250 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 5123 "util/configparser.c" /* yacc.c:1646  */
+#line 5124 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 432:
-#line 2257 "./util/configparser.y" /* yacc.c:1646  */
+#line 2257 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 5133 "util/configparser.c" /* yacc.c:1646  */
+#line 5134 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 433:
-#line 2264 "./util/configparser.y" /* yacc.c:1646  */
+#line 2264 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5141,11 +5142,11 @@ yyreduce:
                else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5145 "util/configparser.c" /* yacc.c:1646  */
+#line 5146 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 434:
-#line 2273 "./util/configparser.y" /* yacc.c:1646  */
+#line 2273 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5153,11 +5154,11 @@ yyreduce:
                else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5157 "util/configparser.c" /* yacc.c:1646  */
+#line 5158 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 435:
-#line 2282 "./util/configparser.y" /* yacc.c:1646  */
+#line 2282 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5166,11 +5167,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5170 "util/configparser.c" /* yacc.c:1646  */
+#line 5171 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 436:
-#line 2292 "./util/configparser.y" /* yacc.c:1646  */
+#line 2292 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5179,11 +5180,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5183 "util/configparser.c" /* yacc.c:1646  */
+#line 5184 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 437:
-#line 2302 "./util/configparser.y" /* yacc.c:1646  */
+#line 2302 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->forwards->name)
@@ -5192,31 +5193,31 @@ yyreduce:
                free(cfg_parser->cfg->forwards->name);
                cfg_parser->cfg->forwards->name = (yyvsp[0].str);
        }
-#line 5196 "util/configparser.c" /* yacc.c:1646  */
+#line 5197 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 438:
-#line 2312 "./util/configparser.y" /* yacc.c:1646  */
+#line 2312 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 5206 "util/configparser.c" /* yacc.c:1646  */
+#line 5207 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 439:
-#line 2319 "./util/configparser.y" /* yacc.c:1646  */
+#line 2319 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 5216 "util/configparser.c" /* yacc.c:1646  */
+#line 5217 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 440:
-#line 2326 "./util/configparser.y" /* yacc.c:1646  */
+#line 2326 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5224,11 +5225,11 @@ yyreduce:
                else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5228 "util/configparser.c" /* yacc.c:1646  */
+#line 5229 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 441:
-#line 2335 "./util/configparser.y" /* yacc.c:1646  */
+#line 2335 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5236,11 +5237,11 @@ yyreduce:
                else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5240 "util/configparser.c" /* yacc.c:1646  */
+#line 5241 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 442:
-#line 2344 "./util/configparser.y" /* yacc.c:1646  */
+#line 2344 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5249,11 +5250,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5253 "util/configparser.c" /* yacc.c:1646  */
+#line 5254 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 443:
-#line 2354 "./util/configparser.y" /* yacc.c:1646  */
+#line 2354 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->auths->name)
@@ -5262,52 +5263,52 @@ yyreduce:
                free(cfg_parser->cfg->auths->name);
                cfg_parser->cfg->auths->name = (yyvsp[0].str);
        }
-#line 5266 "util/configparser.c" /* yacc.c:1646  */
+#line 5267 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 444:
-#line 2364 "./util/configparser.y" /* yacc.c:1646  */
+#line 2364 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->auths->zonefile);
                cfg_parser->cfg->auths->zonefile = (yyvsp[0].str);
        }
-#line 5276 "util/configparser.c" /* yacc.c:1646  */
+#line 5277 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 445:
-#line 2371 "./util/configparser.y" /* yacc.c:1646  */
+#line 2371 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(master:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 5286 "util/configparser.c" /* yacc.c:1646  */
+#line 5287 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 446:
-#line 2378 "./util/configparser.y" /* yacc.c:1646  */
+#line 2378 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(url:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 5296 "util/configparser.c" /* yacc.c:1646  */
+#line 5297 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 447:
-#line 2385 "./util/configparser.y" /* yacc.c:1646  */
+#line 2385 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify,
                        (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 5307 "util/configparser.c" /* yacc.c:1646  */
+#line 5308 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 448:
-#line 2393 "./util/configparser.y" /* yacc.c:1646  */
+#line 2393 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5316,11 +5317,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5320 "util/configparser.c" /* yacc.c:1646  */
+#line 5321 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 449:
-#line 2403 "./util/configparser.y" /* yacc.c:1646  */
+#line 2403 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5329,11 +5330,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5333 "util/configparser.c" /* yacc.c:1646  */
+#line 5334 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 450:
-#line 2413 "./util/configparser.y" /* yacc.c:1646  */
+#line 2413 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5342,11 +5343,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5346 "util/configparser.c" /* yacc.c:1646  */
+#line 5347 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 451:
-#line 2423 "./util/configparser.y" /* yacc.c:1646  */
+#line 2423 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->views->name)
@@ -5355,11 +5356,11 @@ yyreduce:
                free(cfg_parser->cfg->views->name);
                cfg_parser->cfg->views->name = (yyvsp[0].str);
        }
-#line 5359 "util/configparser.c" /* yacc.c:1646  */
+#line 5360 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 452:
-#line 2433 "./util/configparser.y" /* yacc.c:1646  */
+#line 2433 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
@@ -5390,11 +5391,11 @@ yyreduce:
                                fatal_exit("out of memory adding local-zone");
                }
        }
-#line 5394 "util/configparser.c" /* yacc.c:1646  */
+#line 5395 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 453:
-#line 2465 "./util/configparser.y" /* yacc.c:1646  */
+#line 2465 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                validate_respip_action((yyvsp[0].str));
@@ -5403,33 +5404,33 @@ yyreduce:
                        fatal_exit("out of memory adding per-view "
                                "response-ip action");
        }
-#line 5407 "util/configparser.c" /* yacc.c:1646  */
+#line 5408 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 454:
-#line 2475 "./util/configparser.y" /* yacc.c:1646  */
+#line 2475 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str)));
                if(!cfg_str2list_insert(
                        &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str)))
                        fatal_exit("out of memory adding response-ip-data");
        }
-#line 5418 "util/configparser.c" /* yacc.c:1646  */
+#line 5419 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 455:
-#line 2483 "./util/configparser.y" /* yacc.c:1646  */
+#line 2483 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
                        fatal_exit("out of memory adding local-data");
                }
        }
-#line 5429 "util/configparser.c" /* yacc.c:1646  */
+#line 5430 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 456:
-#line 2491 "./util/configparser.y" /* yacc.c:1646  */
+#line 2491 "./util/configparser.y" /* yacc.c:1648  */
     {
                char* ptr;
                OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -5443,11 +5444,11 @@ yyreduce:
                        yyerror("local-data-ptr could not be reversed");
                }
        }
-#line 5447 "util/configparser.c" /* yacc.c:1646  */
+#line 5448 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 457:
-#line 2506 "./util/configparser.y" /* yacc.c:1646  */
+#line 2506 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(view-first:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5455,19 +5456,19 @@ yyreduce:
                else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5459 "util/configparser.c" /* yacc.c:1646  */
+#line 5460 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 458:
-#line 2515 "./util/configparser.y" /* yacc.c:1646  */
+#line 2515 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("\nP(remote-control:)\n")); 
        }
-#line 5467 "util/configparser.c" /* yacc.c:1646  */
+#line 5468 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 469:
-#line 2526 "./util/configparser.y" /* yacc.c:1646  */
+#line 2526 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5476,11 +5477,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5480 "util/configparser.c" /* yacc.c:1646  */
+#line 5481 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 470:
-#line 2536 "./util/configparser.y" /* yacc.c:1646  */
+#line 2536 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -5488,79 +5489,79 @@ yyreduce:
                else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 5492 "util/configparser.c" /* yacc.c:1646  */
+#line 5493 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 471:
-#line 2545 "./util/configparser.y" /* yacc.c:1646  */
+#line 2545 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 5502 "util/configparser.c" /* yacc.c:1646  */
+#line 5503 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 472:
-#line 2552 "./util/configparser.y" /* yacc.c:1646  */
+#line 2552 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
                cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5512 "util/configparser.c" /* yacc.c:1646  */
+#line 5513 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 473:
-#line 2559 "./util/configparser.y" /* yacc.c:1646  */
+#line 2559 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->server_key_file);
                cfg_parser->cfg->server_key_file = (yyvsp[0].str);
        }
-#line 5522 "util/configparser.c" /* yacc.c:1646  */
+#line 5523 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 474:
-#line 2566 "./util/configparser.y" /* yacc.c:1646  */
+#line 2566 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->server_cert_file);
                cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
        }
-#line 5532 "util/configparser.c" /* yacc.c:1646  */
+#line 5533 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 475:
-#line 2573 "./util/configparser.y" /* yacc.c:1646  */
+#line 2573 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->control_key_file);
                cfg_parser->cfg->control_key_file = (yyvsp[0].str);
        }
-#line 5542 "util/configparser.c" /* yacc.c:1646  */
+#line 5543 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 476:
-#line 2580 "./util/configparser.y" /* yacc.c:1646  */
+#line 2580 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->control_cert_file);
                cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
        }
-#line 5552 "util/configparser.c" /* yacc.c:1646  */
+#line 5553 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 477:
-#line 2587 "./util/configparser.y" /* yacc.c:1646  */
+#line 2587 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("\nP(dnstap:)\n"));
        }
-#line 5560 "util/configparser.c" /* yacc.c:1646  */
+#line 5561 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 492:
-#line 2604 "./util/configparser.y" /* yacc.c:1646  */
+#line 2604 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5568,21 +5569,21 @@ yyreduce:
                else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5572 "util/configparser.c" /* yacc.c:1646  */
+#line 5573 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 493:
-#line 2613 "./util/configparser.y" /* yacc.c:1646  */
+#line 2613 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dnstap_socket_path);
                cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
        }
-#line 5582 "util/configparser.c" /* yacc.c:1646  */
+#line 5583 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 494:
-#line 2620 "./util/configparser.y" /* yacc.c:1646  */
+#line 2620 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5590,11 +5591,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5594 "util/configparser.c" /* yacc.c:1646  */
+#line 5595 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 495:
-#line 2629 "./util/configparser.y" /* yacc.c:1646  */
+#line 2629 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5602,31 +5603,31 @@ yyreduce:
                else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5606 "util/configparser.c" /* yacc.c:1646  */
+#line 5607 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 496:
-#line 2638 "./util/configparser.y" /* yacc.c:1646  */
+#line 2638 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dnstap_identity);
                cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
        }
-#line 5616 "util/configparser.c" /* yacc.c:1646  */
+#line 5617 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 497:
-#line 2645 "./util/configparser.y" /* yacc.c:1646  */
+#line 2645 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dnstap_version);
                cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
        }
-#line 5626 "util/configparser.c" /* yacc.c:1646  */
+#line 5627 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 498:
-#line 2652 "./util/configparser.y" /* yacc.c:1646  */
+#line 2652 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5635,11 +5636,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5639 "util/configparser.c" /* yacc.c:1646  */
+#line 5640 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 499:
-#line 2662 "./util/configparser.y" /* yacc.c:1646  */
+#line 2662 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5648,11 +5649,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5652 "util/configparser.c" /* yacc.c:1646  */
+#line 5653 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 500:
-#line 2672 "./util/configparser.y" /* yacc.c:1646  */
+#line 2672 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5661,11 +5662,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5665 "util/configparser.c" /* yacc.c:1646  */
+#line 5666 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 501:
-#line 2682 "./util/configparser.y" /* yacc.c:1646  */
+#line 2682 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5674,11 +5675,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5678 "util/configparser.c" /* yacc.c:1646  */
+#line 5679 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 502:
-#line 2692 "./util/configparser.y" /* yacc.c:1646  */
+#line 2692 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5687,11 +5688,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5691 "util/configparser.c" /* yacc.c:1646  */
+#line 5692 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 503:
-#line 2702 "./util/configparser.y" /* yacc.c:1646  */
+#line 2702 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5700,29 +5701,29 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5704 "util/configparser.c" /* yacc.c:1646  */
+#line 5705 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 504:
-#line 2712 "./util/configparser.y" /* yacc.c:1646  */
+#line 2712 "./util/configparser.y" /* yacc.c:1648  */
     { 
                OUTYY(("\nP(python:)\n")); 
        }
-#line 5712 "util/configparser.c" /* yacc.c:1646  */
+#line 5713 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 508:
-#line 2721 "./util/configparser.y" /* yacc.c:1646  */
+#line 2721 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->python_script);
                cfg_parser->cfg->python_script = (yyvsp[0].str);
        }
-#line 5722 "util/configparser.c" /* yacc.c:1646  */
+#line 5723 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 509:
-#line 2727 "./util/configparser.y" /* yacc.c:1646  */
+#line 2727 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
                if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5731,21 +5732,21 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5735 "util/configparser.c" /* yacc.c:1646  */
+#line 5736 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 510:
-#line 2737 "./util/configparser.y" /* yacc.c:1646  */
+#line 2737 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->log_identity);
                cfg_parser->cfg->log_identity = (yyvsp[0].str);
        }
-#line 5745 "util/configparser.c" /* yacc.c:1646  */
+#line 5746 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 511:
-#line 2744 "./util/configparser.y" /* yacc.c:1646  */
+#line 2744 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                validate_respip_action((yyvsp[0].str));
@@ -5753,30 +5754,30 @@ yyreduce:
                        (yyvsp[-1].str), (yyvsp[0].str)))
                        fatal_exit("out of memory adding response-ip");
        }
-#line 5757 "util/configparser.c" /* yacc.c:1646  */
+#line 5758 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 512:
-#line 2753 "./util/configparser.y" /* yacc.c:1646  */
+#line 2753 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str)));
                if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data,
                        (yyvsp[-1].str), (yyvsp[0].str)))
                        fatal_exit("out of memory adding response-ip-data");
        }
-#line 5768 "util/configparser.c" /* yacc.c:1646  */
+#line 5769 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 513:
-#line 2761 "./util/configparser.y" /* yacc.c:1646  */
+#line 2761 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("\nP(dnscrypt:)\n"));
        }
-#line 5776 "util/configparser.c" /* yacc.c:1646  */
+#line 5777 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 526:
-#line 2777 "./util/configparser.y" /* yacc.c:1646  */
+#line 2777 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5784,11 +5785,11 @@ yyreduce:
                else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 5788 "util/configparser.c" /* yacc.c:1646  */
+#line 5789 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 527:
-#line 2787 "./util/configparser.y" /* yacc.c:1646  */
+#line 2787 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -5796,21 +5797,21 @@ yyreduce:
                else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 5800 "util/configparser.c" /* yacc.c:1646  */
+#line 5801 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 528:
-#line 2796 "./util/configparser.y" /* yacc.c:1646  */
+#line 2796 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dnscrypt_provider);
                cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str);
        }
-#line 5810 "util/configparser.c" /* yacc.c:1646  */
+#line 5811 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 529:
-#line 2803 "./util/configparser.y" /* yacc.c:1646  */
+#line 2803 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str)));
                if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
@@ -5818,21 +5819,21 @@ yyreduce:
                if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
                        fatal_exit("out of memory adding dnscrypt-provider-cert");
        }
-#line 5822 "util/configparser.c" /* yacc.c:1646  */
+#line 5823 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 530:
-#line 2812 "./util/configparser.y" /* yacc.c:1646  */
+#line 2812 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str)))
                        fatal_exit("out of memory adding dnscrypt-provider-cert-rotated");
        }
-#line 5832 "util/configparser.c" /* yacc.c:1646  */
+#line 5833 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 531:
-#line 2819 "./util/configparser.y" /* yacc.c:1646  */
+#line 2819 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str)));
                if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
@@ -5840,22 +5841,22 @@ yyreduce:
                if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
                        fatal_exit("out of memory adding dnscrypt-secret-key");
        }
-#line 5844 "util/configparser.c" /* yacc.c:1646  */
+#line 5845 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 532:
-#line 2828 "./util/configparser.y" /* yacc.c:1646  */
+#line 2828 "./util/configparser.y" /* yacc.c:1648  */
     {
        OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str)));
        if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
                yyerror("memory size expected");
        free((yyvsp[0].str));
   }
-#line 5855 "util/configparser.c" /* yacc.c:1646  */
+#line 5856 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 533:
-#line 2836 "./util/configparser.y" /* yacc.c:1646  */
+#line 2836 "./util/configparser.y" /* yacc.c:1648  */
     {
        OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str)));
        if(atoi((yyvsp[0].str)) == 0)
@@ -5867,22 +5868,22 @@ yyreduce:
        }
        free((yyvsp[0].str));
   }
-#line 5871 "util/configparser.c" /* yacc.c:1646  */
+#line 5872 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 534:
-#line 2849 "./util/configparser.y" /* yacc.c:1646  */
+#line 2849 "./util/configparser.y" /* yacc.c:1648  */
     {
        OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str)));
        if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size))
                yyerror("memory size expected");
        free((yyvsp[0].str));
   }
-#line 5882 "util/configparser.c" /* yacc.c:1646  */
+#line 5883 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 535:
-#line 2857 "./util/configparser.y" /* yacc.c:1646  */
+#line 2857 "./util/configparser.y" /* yacc.c:1648  */
     {
        OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str)));
        if(atoi((yyvsp[0].str)) == 0)
@@ -5894,19 +5895,19 @@ yyreduce:
        }
        free((yyvsp[0].str));
   }
-#line 5898 "util/configparser.c" /* yacc.c:1646  */
+#line 5899 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 536:
-#line 2870 "./util/configparser.y" /* yacc.c:1646  */
+#line 2870 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("\nP(cachedb:)\n"));
        }
-#line 5906 "util/configparser.c" /* yacc.c:1646  */
+#line 5907 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 544:
-#line 2880 "./util/configparser.y" /* yacc.c:1646  */
+#line 2880 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef USE_CACHEDB
                OUTYY(("P(backend:%s)\n", (yyvsp[0].str)));
@@ -5920,11 +5921,11 @@ yyreduce:
                free((yyvsp[0].str));
        #endif
        }
-#line 5924 "util/configparser.c" /* yacc.c:1646  */
+#line 5925 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 545:
-#line 2895 "./util/configparser.y" /* yacc.c:1646  */
+#line 2895 "./util/configparser.y" /* yacc.c:1648  */
     {
        #ifdef USE_CACHEDB
                OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str)));
@@ -5938,11 +5939,11 @@ yyreduce:
                free((yyvsp[0].str));
        #endif
        }
-#line 5942 "util/configparser.c" /* yacc.c:1646  */
+#line 5943 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 546:
-#line 2910 "./util/configparser.y" /* yacc.c:1646  */
+#line 2910 "./util/configparser.y" /* yacc.c:1648  */
     {
        #if defined(USE_CACHEDB) && defined(USE_REDIS)
                OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str)));
@@ -5953,11 +5954,11 @@ yyreduce:
                free((yyvsp[0].str));
        #endif
        }
-#line 5957 "util/configparser.c" /* yacc.c:1646  */
+#line 5958 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 547:
-#line 2922 "./util/configparser.y" /* yacc.c:1646  */
+#line 2922 "./util/configparser.y" /* yacc.c:1648  */
     {
        #if defined(USE_CACHEDB) && defined(USE_REDIS)
                int port;
@@ -5971,11 +5972,11 @@ yyreduce:
        #endif
                free((yyvsp[0].str));
        }
-#line 5975 "util/configparser.c" /* yacc.c:1646  */
+#line 5976 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 548:
-#line 2937 "./util/configparser.y" /* yacc.c:1646  */
+#line 2937 "./util/configparser.y" /* yacc.c:1648  */
     {
        #if defined(USE_CACHEDB) && defined(USE_REDIS)
                OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str)));
@@ -5987,11 +5988,11 @@ yyreduce:
        #endif
                free((yyvsp[0].str));
        }
-#line 5991 "util/configparser.c" /* yacc.c:1646  */
+#line 5992 "util/configparser.c" /* yacc.c:1648  */
     break;
 
   case 549:
-#line 2950 "./util/configparser.y" /* yacc.c:1646  */
+#line 2950 "./util/configparser.y" /* yacc.c:1648  */
     {
                OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if (atoi((yyvsp[0].str)) < 0)
@@ -6001,11 +6002,11 @@ yyreduce:
                                fatal_exit("out of memory adding tcp connection limit");
                }
        }
-#line 6005 "util/configparser.c" /* yacc.c:1646  */
+#line 6006 "util/configparser.c" /* yacc.c:1648  */
     break;
 
 
-#line 6009 "util/configparser.c" /* yacc.c:1646  */
+#line 6010 "util/configparser.c" /* yacc.c:1648  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -6233,7 +6234,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 2960 "./util/configparser.y" /* yacc.c:1906  */
+#line 2960 "./util/configparser.y" /* yacc.c:1907  */
 
 
 /* parse helper routines could be here */
index 0235e6ed2ca6fdf58610329a990c14e18600795c..db6e94714b01f23b6065e7e8eb64d5f4f5be9fc5 100644 (file)
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.0.4.  */
+/* A Bison parser, made by GNU Bison 3.0.5.  */
 
 /* Bison interface for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -582,11 +582,11 @@ extern int yydebug;
 
 union YYSTYPE
 {
-#line 66 "./util/configparser.y" /* yacc.c:1909  */
+#line 66 "./util/configparser.y" /* yacc.c:1910  */
 
        char*   str;
 
-#line 590 "util/configparser.h" /* yacc.c:1909  */
+#line 590 "util/configparser.h" /* yacc.c:1910  */
 };
 
 typedef union YYSTYPE YYSTYPE;