From d90c162edf488843d70b8adc72506996aad478ab Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Wed, 27 Feb 2008 09:39:27 +0000 Subject: [PATCH] config file option for draft-0x20. git-svn-id: file:///svn/unbound/trunk@995 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 1 + doc/example.conf | 6 + doc/unbound.conf.5 | 10 + util/configlexer.c | 1245 +++++++++++++++++++++--------------------- util/configlexer.lex | 1 + util/configparser.c | 600 ++++++++++---------- util/configparser.h | 6 +- util/configparser.y | 15 +- 8 files changed, 974 insertions(+), 910 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 8ff1dc5e8..ae2069ebb 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,6 @@ 27 February 2008: Wouter - option to use caps for id randomness. + - config file option use-caps-for-id: yes 26 February 2008: Wouter - delay utility delays TCP as well. If the server that is forwarded diff --git a/doc/example.conf b/doc/example.conf index 00da09f4f..77328607a 100644 --- a/doc/example.conf +++ b/doc/example.conf @@ -200,6 +200,12 @@ server: # Default on, which insists on dnssec data for trust-anchored zones. # harden-dnssec-stripped: yes + # Use 0x20-encoded random bits in the query to foil spoof attempts. + # Disabled by default, because some caching forwarders may not + # support this (if you have forward-zones). Most authority servers do. + # This feature is an experimental implementation of draft dns-0x20. + # use-caps-for-id: no + # Do not query the following addresses. No DNS queries are sent there. # List one address per entry. List classless netblocks with /size, # do-not-query-address: 127.0.0.1/8 diff --git a/doc/unbound.conf.5 b/doc/unbound.conf.5 index 4e88897a2..c7576f713 100644 --- a/doc/unbound.conf.5 +++ b/doc/unbound.conf.5 @@ -328,6 +328,16 @@ removes DNSSEC data from packets, or a zone changes from signed to unsigned to badly signed often. If turned off you run the risk of a downgrade attack that disables security for a zone. Default is on. .TP +.B use\-caps\-for\-id: \fI +Use 0x20-encoded random bits in the query to foil spoof attempts. +This perturbs the lowercase and uppercase of query names sent to +authority servers and checks if the reply still has the correct casing. +Use together with a large outgoing port range to obtain a high spoof resistance. +Disabled by default, because some caching forwarders may not +support this. If you have no forward\-zones it should be possible to enable +this without problem, it works with most authority servers. +This feature is an experimental implementation of draft dns\-0x20. +.TP .B do\-not\-query\-address: \fI Do not query the given IP address. Can be IP4 or IP6. Append /num to indicate a classless delegation netblock, for example like diff --git a/util/configlexer.c b/util/configlexer.c index 28229877c..fdcdfa3f5 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -365,8 +365,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 89 -#define YY_END_OF_BUFFER 90 +#define YY_NUM_RULES 90 +#define YY_END_OF_BUFFER 91 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -374,92 +374,94 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[771] = +static yyconst flex_int16_t yy_accept[783] = { 0, - 1, 1, 73, 73, 77, 77, 81, 81, 85, 85, - 90, 88, 1, 71, 72, 2, 76, 89, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 73, 74, 89, 75, 89, - 77, 78, 79, 89, 84, 81, 82, 83, 89, 85, - 86, 87, 89, 88, 0, 1, 2, 2, 2, 2, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 73, 0, - 77, 0, 84, 0, 81, 85, 0, 88, 88, 88, - - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 43, 88, 88, 88, 88, 6, 88, 88, 88, - - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 19, 88, 88, 11, 12, 88, 14, - 13, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 3, 88, 88, 88, 88, - - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 80, 88, 88, 88, 88, - 88, 88, 88, 88, 22, 88, 88, 88, 88, 88, - 88, 23, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 55, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 54, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 20, - - 88, 88, 88, 88, 88, 88, 88, 88, 21, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 16, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 44, 45, 42, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 5, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 69, 68, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 24, 88, 88, 88, 88, 88, - 67, 88, 88, 88, 88, 88, 88, 88, 88, 88, - - 88, 88, 88, 88, 40, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 4, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 15, 88, - 47, 48, 46, 88, 88, 88, 88, 53, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 59, 88, 88, 88, 88, 88, 88, 88, 30, 88, - 88, 88, 88, 88, 52, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 56, 88, 88, 88, 88, 88, - - 88, 7, 88, 88, 88, 88, 88, 88, 88, 61, - 88, 88, 88, 88, 51, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 31, 32, 88, 64, 88, 88, - 26, 88, 88, 88, 88, 8, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 65, 25, 27, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 10, 88, 88, - 88, 88, 88, 88, 9, 28, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - - 88, 88, 33, 88, 88, 88, 29, 88, 88, 57, - 58, 88, 88, 60, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 17, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 18, 88, 70, - 37, 88, 88, 63, 49, 88, 88, 39, 38, 88, - 34, 88, 62, 88, 88, 88, 35, 88, 88, 50, - 41, 36, 88, 88, 88, 88, 88, 88, 66, 0 + 1, 1, 74, 74, 78, 78, 82, 82, 86, 86, + 91, 89, 1, 72, 73, 2, 77, 90, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 74, 75, 90, 76, 90, + 78, 79, 80, 90, 85, 82, 83, 84, 90, 86, + 87, 88, 90, 89, 0, 1, 2, 2, 2, 2, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 74, 0, + 78, 0, 85, 0, 82, 86, 0, 89, 89, 89, + + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 44, 89, 89, 89, 89, 6, 89, 89, 89, + + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 19, 89, 89, 11, 12, + 89, 14, 13, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 3, 89, 89, + + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 81, 89, + 89, 89, 89, 89, 89, 89, 89, 22, 89, 89, + 89, 89, 89, 89, 23, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 56, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 55, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + + 89, 89, 89, 89, 20, 89, 89, 89, 89, 89, + 89, 89, 89, 21, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 16, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 45, 46, 43, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 5, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 70, + 69, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 24, 89, 89, 89, 89, 89, 89, 68, 89, 89, + + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 40, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 4, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 15, 89, 48, 49, + 47, 89, 89, 89, 89, 54, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 60, 89, + 89, 89, 89, 89, 89, 89, 89, 30, 89, 89, + 89, 89, 89, 53, 89, 89, 89, 89, 89, 89, + + 89, 89, 89, 57, 89, 89, 89, 89, 89, 89, + 7, 89, 89, 89, 89, 89, 89, 89, 89, 62, + 89, 89, 89, 89, 52, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 31, 32, 89, 65, 89, 89, + 26, 89, 89, 89, 89, 8, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 66, 25, 27, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 42, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 10, + 89, 89, 89, 89, 89, 89, 9, 28, 89, 89, + + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 33, 89, 89, 89, 29, 89, + 89, 58, 59, 89, 89, 61, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 17, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 18, + 89, 71, 37, 89, 89, 64, 50, 89, 89, 39, + 38, 89, 34, 89, 63, 89, 89, 89, 35, 89, + 89, 51, 41, 36, 89, 89, 89, 89, 89, 89, + 67, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -502,18 +504,18 @@ static yyconst flex_int32_t yy_meta[39] = 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[782] = +static yyconst flex_int16_t yy_base[794] = { 0, 0, 0, 36, 39, 43, 50, 62, 74, 55, 67, - 1591, 1577, 49, 1592, 1592, 81, 1592, 88, 32, 83, + 1615, 1601, 49, 1616, 1616, 81, 1616, 88, 32, 83, 76, 78, 60, 89, 94, 86, 87, 95, 88, 97, - 103, 104, 112, 98, 121, 1576, 1592, 1592, 1592, 57, - 1575, 1592, 1592, 116, 1574, 1584, 1592, 1592, 136, 1572, - 1592, 1592, 127, 1571, 142, 146, 0, 149, 0, 0, + 103, 104, 112, 98, 121, 1600, 1616, 1616, 1616, 57, + 1599, 1616, 1616, 116, 1598, 1608, 1616, 1616, 136, 1596, + 1616, 1616, 127, 1595, 142, 146, 0, 149, 0, 0, 142, 144, 137, 146, 153, 150, 151, 152, 155, 158, 157, 159, 165, 171, 170, 172, 173, 175, 174, 176, - 114, 180, 185, 183, 187, 188, 195, 194, 1570, 207, - 1569, 210, 1568, 221, 1578, 1566, 211, 209, 208, 217, + 114, 180, 185, 183, 187, 188, 195, 194, 1594, 207, + 1593, 210, 1592, 221, 1602, 1590, 211, 209, 208, 217, 218, 232, 220, 221, 219, 222, 226, 227, 228, 234, 238, 243, 230, 253, 254, 260, 189, 256, 246, 247, @@ -521,168 +523,172 @@ static yyconst flex_int16_t yy_base[782] = 282, 274, 290, 283, 285, 289, 295, 301, 306, 294, 309, 296, 302, 308, 310, 312, 313, 314, 317, 319, 321, 328, 318, 331, 332, 336, 338, 339, 342, 340, - 348, 346, 344, 350, 352, 369, 353, 355, 356, 359, - 357, 360, 361, 380, 362, 370, 373, 375, 386, 387, - 389, 390, 391, 402, 395, 403, 410, 406, 407, 393, - 414, 1565, 409, 411, 416, 420, 1564, 418, 427, 421, - - 423, 432, 424, 439, 428, 435, 437, 442, 430, 445, - 449, 446, 447, 455, 456, 459, 460, 463, 470, 472, - 467, 477, 479, 480, 486, 483, 485, 473, 488, 482, - 491, 496, 498, 500, 503, 510, 506, 511, 513, 507, - 509, 515, 517, 516, 528, 521, 529, 523, 530, 536, - 534, 538, 532, 539, 541, 547, 549, 553, 543, 546, - 556, 559, 563, 1563, 557, 561, 1562, 1561, 565, 1560, - 1559, 571, 572, 568, 567, 465, 578, 580, 585, 582, - 588, 591, 592, 597, 593, 602, 603, 599, 604, 608, - 609, 610, 616, 611, 618, 1558, 613, 623, 620, 621, - - 626, 628, 635, 629, 631, 633, 642, 644, 637, 639, - 645, 649, 646, 650, 652, 655, 657, 658, 656, 661, - 662, 667, 665, 670, 680, 1557, 686, 671, 682, 684, - 685, 687, 689, 691, 1556, 693, 694, 697, 701, 705, - 703, 1555, 695, 709, 713, 711, 715, 717, 718, 721, - 719, 725, 727, 720, 730, 735, 732, 733, 736, 1554, - 737, 745, 747, 744, 751, 748, 741, 754, 757, 758, - 759, 763, 761, 762, 1553, 766, 764, 765, 769, 786, - 787, 788, 790, 770, 791, 797, 793, 796, 794, 799, - 802, 801, 805, 813, 815, 806, 816, 818, 820, 1552, - - 826, 833, 834, 822, 830, 836, 832, 837, 1551, 545, - 838, 839, 840, 841, 842, 844, 845, 846, 850, 847, - 853, 857, 869, 870, 866, 1550, 868, 872, 875, 767, - 881, 877, 878, 879, 880, 882, 884, 887, 890, 894, - 905, 1549, 1548, 1547, 901, 892, 883, 909, 891, 911, - 903, 914, 915, 1546, 917, 916, 919, 920, 921, 922, - 923, 925, 927, 931, 929, 932, 937, 940, 947, 939, - 943, 945, 946, 1545, 1544, 954, 949, 959, 961, 972, - 960, 964, 966, 969, 1543, 978, 975, 977, 974, 980, - 1542, 981, 986, 987, 988, 994, 995, 996, 1002, 1004, - - 1006, 1011, 1013, 1014, 1541, 1020, 1021, 1008, 1019, 1027, - 1023, 1024, 1025, 1026, 1028, 1029, 1031, 1033, 1035, 1039, - 1037, 1540, 1046, 1054, 1047, 1048, 1050, 1056, 1062, 1064, - 1070, 1061, 1067, 1058, 1078, 1074, 1075, 1077, 1539, 1079, - 1538, 1537, 1536, 1088, 1081, 1085, 1092, 1535, 1084, 1093, - 1089, 1096, 1099, 1100, 1098, 1101, 1102, 1114, 1105, 1115, - 1116, 1117, 1108, 1119, 1124, 1121, 1128, 1127, 1129, 1134, - 1534, 1135, 1132, 1133, 1136, 1143, 1145, 1149, 1533, 1151, - 1152, 1153, 1156, 1157, 1532, 1158, 1160, 1162, 1163, 1168, - 1170, 1173, 1179, 1165, 1531, 1175, 1182, 1184, 1186, 1187, - - 1188, 1530, 1190, 1192, 1194, 1196, 1197, 1198, 1199, 1529, - 1200, 1204, 1205, 1214, 1528, 1212, 1215, 1210, 1220, 1221, - 1222, 1223, 989, 1224, 1527, 1526, 1230, 1525, 1233, 1235, - 1524, 1239, 1241, 1242, 1240, 1520, 1244, 1245, 1246, 1248, - 1250, 1251, 1256, 1252, 1253, 1254, 1257, 1267, 1258, 1264, - 1260, 1270, 1276, 1273, 1279, 1280, 1516, 1515, 1514, 1282, - 1283, 1285, 1289, 1290, 1291, 1293, 1295, 1298, 1292, 1304, - 1305, 1307, 1311, 1313, 1314, 1317, 1318, 1510, 1315, 1319, - 1329, 1322, 1330, 1320, 1509, 1505, 1335, 1339, 1341, 1343, - 1346, 1336, 1352, 1351, 1353, 1348, 1354, 1355, 1356, 1358, - - 1359, 1360, 1504, 1364, 1363, 1372, 1503, 1365, 1369, 1497, - 1469, 1373, 1375, 1467, 1377, 1378, 1381, 1385, 1386, 1387, - 1388, 1389, 1391, 1394, 1464, 1398, 1402, 1403, 1405, 1409, - 1411, 1412, 1415, 1417, 1419, 1421, 1423, 1463, 1427, 1462, - 1461, 1432, 1429, 1460, 1458, 1406, 1433, 1457, 1332, 1436, - 1296, 1438, 1294, 1439, 1441, 1444, 1159, 1446, 1447, 953, - 885, 595, 1449, 1450, 1451, 1453, 1452, 1455, 276, 1592, - 1483, 1489, 1495, 1501, 136, 1507, 1513, 1519, 83, 1524, - 1530 + 348, 346, 344, 350, 352, 369, 356, 355, 357, 359, + 360, 361, 362, 376, 366, 377, 378, 381, 386, 387, + 388, 390, 391, 406, 389, 402, 409, 405, 407, 410, + 413, 1589, 411, 415, 417, 418, 1588, 419, 425, 421, + + 422, 433, 424, 437, 435, 428, 444, 439, 446, 447, + 448, 449, 450, 456, 460, 451, 462, 459, 464, 467, + 472, 479, 478, 481, 482, 488, 485, 487, 475, 490, + 484, 493, 498, 500, 502, 505, 512, 508, 513, 515, + 509, 511, 517, 519, 518, 530, 523, 531, 525, 532, + 538, 536, 540, 534, 541, 543, 545, 548, 551, 557, + 547, 554, 558, 565, 560, 1587, 550, 566, 1586, 1585, + 569, 1584, 1583, 575, 572, 573, 574, 577, 582, 586, + 587, 584, 594, 589, 596, 599, 597, 603, 605, 606, + 607, 609, 613, 610, 620, 614, 621, 1582, 616, 624, + + 623, 629, 630, 631, 637, 633, 634, 635, 638, 646, + 649, 639, 643, 648, 654, 650, 657, 659, 660, 661, + 662, 665, 666, 668, 671, 672, 674, 676, 1581, 689, + 688, 682, 686, 690, 694, 693, 696, 1580, 697, 701, + 702, 704, 714, 708, 1579, 705, 716, 717, 710, 718, + 721, 723, 722, 729, 735, 731, 733, 734, 736, 742, + 740, 741, 743, 1578, 746, 753, 755, 747, 758, 760, + 751, 761, 744, 766, 768, 769, 770, 771, 1577, 774, + 773, 772, 777, 793, 784, 794, 796, 790, 797, 804, + 800, 798, 806, 807, 808, 809, 811, 813, 818, 820, + + 822, 824, 826, 828, 1576, 836, 838, 842, 834, 840, + 845, 841, 846, 1575, 847, 849, 848, 850, 851, 853, + 854, 855, 856, 861, 863, 867, 869, 880, 881, 878, + 1574, 882, 884, 886, 888, 895, 889, 891, 892, 893, + 896, 897, 898, 902, 903, 917, 1573, 1572, 1571, 915, + 905, 904, 913, 921, 914, 922, 924, 925, 926, 1570, + 930, 931, 932, 935, 936, 938, 940, 941, 943, 949, + 939, 948, 951, 956, 960, 952, 961, 962, 963, 1569, + 1568, 966, 965, 970, 978, 977, 969, 984, 985, 986, + 1567, 992, 989, 993, 990, 991, 994, 1566, 995, 1000, + + 1003, 1005, 997, 1012, 1013, 1016, 1022, 1019, 1021, 1028, + 1029, 1565, 1030, 1036, 1023, 1034, 1040, 1037, 1038, 1039, + 1041, 1042, 1043, 1045, 1053, 1046, 1063, 1051, 1564, 1049, + 1061, 1059, 1065, 1068, 1069, 1075, 1081, 1079, 1088, 1073, + 1085, 1077, 1092, 1090, 1091, 1094, 1563, 1095, 1562, 1561, + 1560, 1103, 1097, 776, 1100, 1559, 1104, 1107, 1105, 1109, + 1110, 1115, 1114, 1112, 1116, 1130, 1119, 1122, 1131, 1132, + 1124, 1134, 1136, 1138, 1139, 1140, 1142, 1145, 1558, 1146, + 1147, 1155, 1149, 1160, 1161, 1162, 1164, 1557, 1166, 1168, + 1169, 1171, 1172, 1556, 1173, 1174, 1177, 1179, 1184, 1194, + + 1185, 1196, 1181, 1555, 1198, 1201, 1188, 1190, 1202, 1209, + 1554, 1205, 1210, 1213, 1211, 1215, 1217, 1218, 1219, 1553, + 1220, 1221, 1224, 1233, 1552, 1232, 1231, 1222, 1237, 1238, + 1240, 1243, 1245, 1247, 1548, 1544, 1250, 1543, 1257, 1259, + 1542, 1261, 1267, 1263, 1254, 1538, 1265, 1266, 1271, 1272, + 1273, 1274, 1276, 1277, 1278, 1279, 1280, 1282, 1289, 1287, + 1291, 1293, 1295, 1301, 1300, 1297, 1302, 1537, 1533, 1532, + 1305, 1306, 1313, 1317, 1307, 1310, 1318, 1323, 1329, 1531, + 1319, 1330, 1332, 1322, 1338, 1339, 1340, 1342, 1344, 1525, + 1341, 1345, 1347, 1348, 1352, 1356, 1497, 1496, 1355, 1364, + + 1366, 1368, 1371, 1362, 1377, 1374, 1376, 1378, 1379, 1382, + 1381, 1358, 1384, 1385, 1495, 1388, 1389, 1395, 1492, 1390, + 1392, 1491, 1490, 1398, 1400, 1489, 1402, 1403, 1405, 1408, + 1410, 1412, 1411, 1413, 1415, 1420, 1488, 1427, 1430, 1422, + 1418, 1435, 1439, 1424, 1440, 1444, 1447, 1448, 1450, 1487, + 1451, 1486, 1485, 1455, 1456, 1484, 1432, 1441, 1458, 1326, + 1320, 1464, 1281, 1465, 1252, 1457, 1467, 1471, 1246, 1473, + 1475, 1175, 857, 491, 1459, 1468, 1479, 1481, 1480, 1483, + 276, 1616, 1511, 1517, 1523, 1529, 136, 1535, 1541, 1547, + 83, 1552, 1558 + } ; -static yyconst flex_int16_t yy_def[782] = +static yyconst flex_int16_t yy_def[794] = { 0, - 770, 1, 771, 771, 772, 772, 773, 773, 774, 774, - 770, 775, 770, 770, 770, 776, 770, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 777, 770, 770, 770, 777, - 778, 770, 770, 778, 779, 770, 770, 770, 779, 780, - 770, 770, 780, 775, 775, 770, 781, 776, 781, 776, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 777, 777, - 778, 778, 779, 779, 770, 780, 780, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 0, - 770, 770, 770, 770, 770, 770, 770, 770, 770, 770, - 770 + 782, 1, 783, 783, 784, 784, 785, 785, 786, 786, + 782, 787, 782, 782, 782, 788, 782, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 789, 782, 782, 782, 789, + 790, 782, 782, 790, 791, 782, 782, 782, 791, 792, + 782, 782, 792, 787, 787, 782, 793, 788, 793, 788, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 789, 789, + 790, 790, 791, 791, 782, 792, 792, 787, 787, 787, + + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 0, 782, 782, 782, 782, 782, 782, 782, 782, + 782, 782, 782 + } ; -static yyconst flex_int16_t yy_nxt[1631] = +static yyconst flex_int16_t yy_nxt[1655] = { 0, 12, 13, 14, 14, 15, 16, 17, 12, 12, 12, 12, 12, 18, 19, 12, 20, 21, 12, 22, 12, @@ -723,149 +729,152 @@ static yyconst flex_int16_t yy_nxt[1631] = 55, 55, 183, 55, 182, 190, 191, 187, 188, 192, 55, 185, 189, 55, 55, 198, 193, 197, 55, 194, 55, 55, 55, 196, 55, 202, 55, 195, 55, 200, - 55, 201, 55, 203, 55, 55, 215, 55, 55, 55, - 199, 55, 55, 55, 55, 204, 213, 206, 218, 212, - 205, 55, 55, 207, 208, 55, 214, 55, 216, 219, - 220, 217, 55, 221, 209, 210, 211, 222, 55, 55, - - 223, 55, 55, 55, 224, 55, 229, 55, 226, 231, - 228, 225, 230, 232, 55, 55, 233, 234, 55, 55, - 227, 55, 55, 55, 236, 237, 55, 238, 55, 235, - 55, 240, 55, 55, 244, 55, 55, 241, 243, 55, - 55, 239, 55, 242, 55, 247, 251, 55, 254, 55, - 245, 55, 248, 246, 55, 250, 252, 55, 55, 55, - 257, 55, 262, 255, 253, 256, 259, 55, 55, 249, - 264, 55, 55, 261, 269, 55, 260, 55, 258, 55, - 263, 267, 55, 268, 55, 55, 265, 266, 270, 55, - 271, 55, 55, 273, 55, 55, 272, 55, 55, 274, - - 55, 325, 275, 55, 276, 277, 279, 278, 55, 282, - 55, 280, 55, 283, 281, 55, 284, 287, 55, 55, - 286, 55, 55, 55, 288, 55, 289, 55, 55, 55, - 290, 295, 293, 55, 292, 55, 291, 285, 294, 296, - 55, 55, 55, 301, 55, 298, 55, 302, 55, 299, - 55, 55, 297, 55, 303, 55, 300, 55, 55, 55, - 306, 55, 304, 305, 307, 55, 308, 311, 55, 55, - 309, 55, 310, 55, 313, 55, 314, 55, 318, 55, - 55, 312, 457, 55, 55, 323, 315, 316, 319, 326, - 55, 320, 55, 317, 55, 321, 324, 55, 328, 327, - - 55, 330, 322, 55, 55, 55, 331, 55, 329, 55, - 333, 55, 332, 335, 55, 55, 55, 337, 336, 334, - 55, 55, 55, 55, 338, 55, 340, 342, 55, 341, - 55, 344, 55, 55, 345, 55, 343, 339, 55, 346, - 55, 55, 351, 55, 349, 55, 348, 55, 353, 55, - 347, 55, 352, 350, 55, 355, 55, 55, 55, 356, - 360, 55, 55, 358, 55, 354, 357, 55, 55, 55, - 55, 366, 361, 55, 55, 371, 359, 55, 367, 55, - 364, 369, 55, 55, 370, 362, 377, 372, 363, 365, - 373, 375, 55, 376, 55, 368, 55, 55, 55, 55, - - 374, 55, 380, 55, 381, 55, 55, 55, 379, 55, - 389, 385, 378, 55, 386, 55, 383, 55, 388, 384, - 382, 55, 387, 55, 391, 55, 390, 55, 392, 55, - 55, 55, 55, 55, 395, 396, 397, 55, 400, 55, - 393, 398, 55, 403, 55, 55, 394, 55, 55, 55, - 401, 399, 408, 55, 405, 402, 55, 55, 409, 55, - 55, 404, 407, 55, 412, 410, 55, 413, 411, 55, - 55, 55, 406, 55, 55, 55, 55, 55, 55, 55, - 414, 55, 55, 420, 422, 476, 424, 415, 417, 418, - 416, 421, 419, 425, 427, 430, 423, 426, 55, 55, - - 55, 428, 55, 55, 432, 55, 55, 429, 55, 55, - 433, 55, 434, 55, 55, 435, 442, 55, 55, 436, - 431, 437, 440, 438, 443, 55, 444, 55, 55, 439, - 55, 441, 55, 449, 55, 447, 446, 445, 55, 448, - 450, 451, 55, 452, 55, 55, 55, 454, 55, 55, - 55, 55, 55, 55, 55, 459, 55, 55, 55, 55, - 453, 463, 55, 455, 464, 55, 461, 458, 456, 55, - 460, 466, 462, 467, 469, 465, 470, 471, 55, 472, - 55, 55, 55, 474, 55, 468, 475, 55, 477, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 473, 55, - - 484, 485, 55, 55, 55, 481, 55, 478, 479, 480, - 483, 486, 487, 55, 482, 55, 488, 55, 489, 490, - 491, 55, 492, 55, 493, 494, 55, 55, 55, 55, - 495, 55, 55, 55, 55, 55, 499, 55, 505, 55, - 503, 55, 504, 55, 55, 496, 497, 498, 506, 55, - 501, 55, 55, 502, 511, 55, 500, 55, 55, 55, - 507, 55, 509, 508, 510, 55, 55, 515, 521, 516, - 512, 55, 55, 55, 513, 517, 55, 514, 55, 518, - 519, 55, 520, 522, 55, 527, 55, 55, 524, 55, - 55, 523, 55, 55, 526, 525, 528, 529, 55, 55, - - 55, 55, 533, 530, 534, 535, 55, 55, 55, 654, - 531, 540, 532, 539, 55, 536, 55, 541, 55, 538, - 55, 537, 542, 55, 543, 55, 55, 545, 546, 544, - 548, 55, 55, 55, 549, 55, 55, 55, 55, 55, - 55, 55, 557, 55, 547, 55, 550, 55, 551, 55, - 558, 55, 561, 552, 559, 553, 554, 555, 55, 55, - 55, 564, 55, 563, 562, 556, 55, 566, 55, 569, - 55, 570, 560, 55, 55, 571, 55, 572, 565, 55, - 567, 568, 55, 574, 573, 576, 55, 55, 579, 55, - 55, 55, 580, 55, 575, 582, 55, 55, 578, 584, - - 55, 55, 581, 585, 55, 55, 587, 577, 55, 583, - 55, 55, 55, 55, 55, 586, 594, 55, 593, 589, - 55, 588, 590, 591, 592, 595, 55, 55, 55, 55, - 598, 55, 597, 55, 599, 602, 55, 600, 603, 55, - 55, 55, 596, 610, 55, 55, 55, 55, 55, 604, - 601, 605, 608, 609, 611, 55, 607, 55, 606, 613, - 615, 55, 614, 55, 55, 55, 612, 616, 55, 55, - 55, 55, 55, 621, 55, 55, 624, 55, 617, 625, - 55, 626, 55, 618, 622, 55, 623, 55, 619, 620, - 628, 55, 630, 631, 55, 629, 55, 627, 55, 55, - - 55, 636, 55, 635, 55, 634, 55, 638, 55, 55, - 55, 55, 55, 639, 632, 633, 55, 55, 645, 641, - 642, 646, 55, 640, 55, 644, 55, 55, 647, 637, - 648, 643, 55, 55, 55, 55, 55, 650, 655, 651, - 653, 649, 55, 656, 657, 55, 658, 55, 660, 652, - 659, 55, 55, 55, 55, 661, 55, 55, 55, 664, - 55, 663, 55, 55, 55, 55, 55, 662, 55, 55, - 55, 666, 55, 667, 668, 665, 55, 669, 672, 55, - 674, 678, 55, 679, 671, 55, 673, 675, 55, 670, - 677, 55, 55, 676, 55, 55, 685, 55, 684, 680, - - 686, 55, 55, 55, 55, 55, 55, 55, 55, 681, - 55, 682, 690, 683, 689, 691, 55, 55, 692, 55, - 687, 693, 694, 55, 688, 55, 55, 55, 696, 55, - 55, 55, 55, 695, 55, 698, 697, 706, 699, 700, - 703, 55, 55, 704, 55, 701, 707, 55, 55, 702, - 705, 55, 708, 55, 710, 55, 709, 711, 55, 713, - 55, 712, 714, 55, 55, 55, 55, 55, 55, 715, - 55, 55, 55, 719, 717, 55, 55, 55, 716, 723, - 721, 55, 718, 725, 55, 55, 728, 55, 726, 55, - 55, 722, 724, 55, 730, 720, 729, 55, 55, 55, - - 55, 55, 738, 55, 735, 727, 55, 732, 731, 740, - 55, 739, 733, 741, 55, 55, 734, 55, 55, 737, - 744, 55, 745, 55, 55, 736, 742, 55, 748, 55, - 749, 55, 747, 55, 751, 55, 743, 755, 750, 55, - 752, 55, 746, 753, 55, 55, 754, 757, 55, 756, - 55, 55, 760, 55, 758, 761, 55, 762, 55, 55, - 763, 55, 55, 55, 55, 55, 769, 55, 759, 55, - 55, 765, 55, 55, 55, 55, 55, 766, 767, 55, - 764, 55, 768, 36, 36, 36, 36, 36, 36, 41, - 41, 41, 41, 41, 41, 45, 45, 45, 45, 45, - - 45, 50, 50, 50, 50, 50, 50, 58, 58, 55, - 58, 58, 58, 89, 89, 55, 55, 55, 89, 91, - 91, 55, 55, 91, 96, 96, 55, 55, 55, 96, - 59, 59, 55, 59, 59, 59, 55, 55, 55, 55, + 55, 201, 55, 203, 55, 205, 216, 55, 55, 55, + 199, 55, 55, 55, 55, 204, 214, 207, 55, 219, + 206, 55, 213, 208, 209, 220, 221, 215, 55, 55, + 55, 217, 218, 55, 210, 211, 212, 222, 55, 55, + + 55, 55, 55, 55, 223, 224, 230, 233, 227, 229, + 225, 226, 231, 232, 55, 234, 235, 55, 55, 55, + 228, 55, 55, 55, 237, 55, 239, 55, 236, 55, + 55, 55, 245, 55, 55, 241, 55, 55, 242, 244, + 55, 243, 238, 240, 252, 55, 248, 55, 254, 55, + 246, 55, 247, 249, 253, 251, 55, 256, 55, 55, + 55, 55, 55, 55, 255, 257, 261, 264, 55, 258, + 250, 55, 55, 266, 55, 265, 55, 259, 269, 55, + 262, 260, 263, 270, 55, 267, 271, 55, 268, 272, + 55, 55, 273, 55, 55, 275, 55, 55, 274, 55, + + 55, 276, 55, 55, 277, 55, 278, 279, 281, 280, + 55, 284, 55, 282, 55, 285, 283, 55, 286, 289, + 55, 55, 288, 55, 55, 55, 290, 55, 291, 55, + 55, 55, 292, 297, 295, 55, 294, 55, 293, 287, + 296, 298, 55, 55, 55, 303, 55, 300, 55, 304, + 55, 301, 55, 55, 299, 55, 305, 55, 302, 55, + 55, 306, 55, 55, 309, 310, 55, 308, 311, 55, + 55, 307, 55, 317, 312, 314, 313, 55, 55, 318, + 316, 55, 321, 315, 55, 55, 55, 55, 322, 55, + 326, 323, 319, 329, 55, 324, 55, 320, 55, 55, + + 331, 55, 325, 327, 334, 330, 55, 333, 55, 55, + 332, 55, 336, 328, 338, 55, 335, 55, 55, 55, + 339, 55, 55, 337, 340, 55, 55, 341, 55, 344, + 343, 345, 55, 55, 347, 55, 55, 348, 342, 346, + 349, 55, 55, 55, 354, 55, 55, 55, 352, 55, + 55, 55, 357, 350, 351, 55, 353, 356, 55, 359, + 55, 55, 55, 355, 360, 364, 55, 362, 361, 55, + 358, 55, 55, 55, 55, 370, 365, 55, 55, 363, + 55, 375, 371, 55, 55, 368, 55, 379, 55, 374, + 373, 376, 366, 369, 55, 367, 380, 377, 55, 372, + + 55, 55, 55, 381, 378, 55, 55, 384, 55, 55, + 383, 385, 382, 55, 55, 393, 55, 55, 389, 390, + 55, 387, 55, 388, 386, 391, 55, 392, 55, 55, + 55, 395, 396, 55, 55, 55, 394, 401, 399, 397, + 400, 55, 403, 55, 405, 55, 55, 55, 55, 398, + 408, 402, 55, 55, 55, 55, 55, 404, 55, 55, + 413, 407, 410, 55, 406, 55, 414, 55, 415, 409, + 55, 412, 55, 55, 420, 416, 417, 418, 55, 411, + 55, 55, 55, 55, 55, 55, 55, 419, 55, 55, + 593, 432, 425, 427, 429, 423, 55, 422, 421, 426, + + 430, 424, 55, 428, 431, 55, 55, 433, 55, 55, + 55, 437, 55, 434, 439, 435, 55, 438, 55, 55, + 55, 55, 447, 55, 448, 55, 436, 440, 445, 449, + 55, 441, 55, 442, 55, 443, 55, 444, 55, 446, + 55, 452, 451, 455, 453, 456, 55, 454, 55, 457, + 55, 450, 55, 55, 55, 458, 460, 55, 55, 55, + 55, 55, 55, 55, 465, 55, 55, 55, 55, 55, + 459, 469, 461, 55, 470, 55, 467, 462, 464, 55, + 466, 55, 472, 468, 463, 471, 475, 476, 477, 473, + 55, 478, 55, 55, 55, 480, 55, 481, 55, 474, + + 55, 55, 483, 55, 55, 55, 482, 55, 55, 55, + 55, 490, 479, 491, 55, 55, 55, 55, 487, 484, + 492, 485, 486, 489, 493, 55, 55, 55, 488, 55, + 494, 495, 498, 55, 55, 500, 55, 55, 55, 497, + 496, 502, 55, 55, 55, 499, 501, 55, 55, 506, + 55, 55, 55, 55, 512, 55, 503, 510, 511, 504, + 55, 55, 505, 55, 55, 508, 513, 518, 55, 509, + 514, 507, 55, 55, 55, 55, 516, 55, 55, 515, + 517, 55, 55, 519, 522, 528, 523, 524, 529, 55, + 55, 526, 520, 527, 521, 525, 55, 55, 55, 534, + + 530, 55, 55, 55, 55, 55, 55, 55, 531, 55, + 535, 533, 55, 536, 532, 55, 541, 55, 544, 537, + 542, 538, 543, 539, 55, 55, 540, 547, 55, 548, + 549, 55, 550, 55, 55, 55, 546, 553, 545, 551, + 55, 55, 55, 554, 552, 556, 55, 557, 55, 55, + 55, 55, 55, 55, 55, 55, 565, 55, 55, 555, + 558, 55, 559, 55, 566, 55, 571, 560, 572, 561, + 562, 55, 563, 55, 567, 55, 569, 55, 570, 564, + 55, 55, 577, 568, 574, 55, 580, 55, 578, 55, + 573, 55, 579, 55, 576, 581, 582, 55, 575, 585, + + 55, 583, 55, 55, 55, 588, 55, 55, 589, 55, + 591, 594, 55, 584, 587, 55, 55, 55, 590, 55, + 596, 55, 55, 586, 55, 592, 55, 55, 55, 602, + 603, 55, 598, 599, 55, 595, 55, 597, 600, 606, + 601, 604, 55, 55, 55, 607, 55, 611, 55, 608, + 55, 55, 55, 609, 55, 612, 605, 55, 55, 55, + 613, 55, 614, 617, 618, 610, 620, 55, 619, 616, + 621, 615, 55, 55, 55, 625, 55, 623, 55, 624, + 55, 55, 626, 55, 55, 55, 55, 55, 631, 55, + 622, 55, 634, 55, 627, 635, 55, 55, 632, 628, + + 55, 633, 55, 629, 630, 636, 55, 638, 55, 637, + 55, 639, 641, 55, 55, 640, 646, 55, 642, 643, + 644, 55, 55, 55, 645, 55, 648, 55, 649, 55, + 55, 55, 55, 55, 55, 653, 55, 656, 651, 652, + 657, 650, 655, 55, 55, 55, 659, 647, 658, 55, + 55, 654, 55, 660, 661, 55, 662, 55, 55, 55, + 664, 666, 55, 667, 55, 665, 55, 663, 668, 55, + 669, 55, 670, 55, 671, 55, 672, 55, 55, 55, + 675, 673, 674, 55, 55, 55, 55, 680, 55, 55, + 55, 55, 55, 55, 55, 677, 678, 679, 681, 55, + + 676, 55, 686, 55, 684, 55, 690, 55, 691, 55, + 683, 685, 55, 55, 55, 682, 687, 55, 55, 55, + 688, 696, 55, 689, 697, 55, 692, 693, 698, 55, + 55, 55, 55, 694, 55, 55, 695, 699, 55, 701, + 702, 55, 55, 700, 55, 704, 703, 705, 707, 706, + 55, 55, 55, 55, 55, 708, 55, 55, 715, 55, + 55, 710, 709, 711, 55, 712, 719, 55, 55, 716, + 55, 713, 717, 718, 55, 714, 55, 720, 55, 722, + 55, 721, 723, 55, 725, 726, 55, 724, 55, 55, + 55, 55, 727, 55, 55, 732, 55, 55, 731, 729, + + 55, 55, 55, 735, 55, 733, 737, 55, 728, 730, + 55, 740, 55, 738, 55, 55, 734, 55, 736, 742, + 55, 741, 55, 55, 55, 55, 750, 55, 739, 747, + 55, 744, 55, 743, 55, 745, 55, 751, 752, 55, + 746, 753, 55, 749, 55, 754, 756, 55, 748, 755, + 757, 55, 55, 55, 758, 760, 55, 759, 761, 55, + 55, 763, 55, 55, 764, 762, 765, 55, 55, 55, + 55, 55, 767, 766, 768, 769, 55, 55, 772, 55, + 55, 770, 773, 55, 774, 55, 771, 55, 775, 777, + 776, 55, 55, 55, 781, 55, 55, 55, 55, 55, + + 55, 55, 55, 55, 55, 778, 779, 55, 55, 55, + 780, 36, 36, 36, 36, 36, 36, 41, 41, 41, + 41, 41, 41, 45, 45, 45, 45, 45, 45, 50, + 50, 50, 50, 50, 50, 58, 58, 55, 58, 58, + 58, 89, 89, 55, 55, 55, 89, 91, 91, 55, + 55, 91, 96, 96, 55, 55, 55, 96, 59, 59, + 55, 59, 59, 59, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 97, 95, - 94, 92, 90, 55, 97, 95, 94, 92, 90, 55, - 770, 11, 770, 770, 770, 770, 770, 770, 770, 770, - 770, 770, 770, 770, 770, 770, 770, 770, 770, 770, - 770, 770, 770, 770, 770, 770, 770, 770, 770, 770, - 770, 770, 770, 770, 770, 770, 770, 770, 770, 770 + 55, 55, 97, 95, 94, 92, 90, 55, 97, 95, + 94, 92, 90, 55, 782, 11, 782, 782, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, + 782, 782, 782, 782 } ; -static yyconst flex_int16_t yy_chk[1631] = +static yyconst flex_int16_t yy_chk[1655] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -875,13 +884,13 @@ static yyconst flex_int16_t yy_chk[1631] = 13, 4, 6, 6, 13, 5, 6, 9, 9, 9, 40, 40, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 23, 23, 7, 8, 8, 8, 8, 10, - 8, 23, 16, 779, 16, 16, 8, 16, 21, 18, + 8, 23, 16, 791, 16, 16, 8, 16, 21, 18, 22, 18, 18, 16, 18, 20, 20, 21, 26, 27, 29, 24, 21, 20, 22, 24, 25, 28, 28, 30, 34, 25, 26, 27, 24, 31, 32, 27, 30, 44, 29, 32, 44, 30, 33, 33, 81, 28, 34, 31, - 53, 53, 31, 35, 35, 32, 775, 49, 35, 49, + 53, 53, 31, 35, 35, 32, 787, 49, 35, 49, 49, 33, 49, 55, 81, 55, 55, 56, 55, 63, 58, 56, 58, 58, 61, 58, 62, 61, 64, 62, 65, 58, 66, 67, 68, 65, 63, 69, 68, 71, @@ -897,7 +906,7 @@ static yyconst flex_int16_t yy_chk[1631] = 111, 111, 107, 102, 103, 112, 108, 102, 119, 120, 114, 112, 113, 102, 102, 114, 115, 116, 118, 122, 121, 115, 116, 123, 118, 121, 125, 119, 120, 124, - 126, 124, 127, 125, 128, 130, 132, 127, 769, 128, + 126, 124, 127, 125, 128, 130, 132, 127, 781, 128, 122, 129, 123, 129, 131, 134, 134, 135, 126, 131, 132, 136, 133, 130, 127, 133, 140, 137, 142, 129, @@ -906,146 +915,149 @@ static yyconst flex_int16_t yy_chk[1631] = 153, 150, 144, 151, 143, 151, 151, 148, 149, 152, 152, 146, 150, 154, 155, 157, 153, 156, 156, 153, 157, 158, 160, 155, 159, 161, 163, 154, 162, 159, - 161, 160, 164, 162, 165, 167, 170, 168, 169, 171, - 158, 170, 172, 173, 175, 163, 168, 165, 173, 167, - 164, 166, 176, 166, 166, 177, 169, 178, 171, 174, - 174, 172, 174, 175, 166, 166, 166, 176, 179, 180, - - 177, 181, 182, 183, 178, 190, 182, 185, 180, 184, - 181, 179, 183, 185, 184, 186, 186, 187, 188, 189, - 180, 193, 187, 194, 189, 190, 191, 191, 195, 188, - 198, 194, 196, 200, 199, 201, 203, 195, 198, 199, - 205, 193, 209, 196, 202, 202, 204, 206, 206, 207, - 200, 204, 202, 201, 208, 203, 204, 210, 212, 213, - 209, 211, 214, 207, 205, 208, 211, 214, 215, 202, - 216, 216, 217, 213, 221, 218, 212, 276, 210, 221, - 215, 219, 219, 220, 220, 228, 217, 218, 222, 222, - 223, 223, 224, 225, 230, 226, 224, 227, 225, 226, - - 229, 276, 227, 231, 228, 229, 231, 230, 232, 232, - 233, 231, 234, 233, 231, 235, 234, 236, 237, 240, - 235, 241, 236, 238, 237, 239, 238, 242, 244, 243, - 239, 244, 242, 246, 241, 248, 240, 234, 243, 245, - 245, 247, 249, 250, 253, 247, 251, 251, 250, 248, - 252, 254, 246, 255, 252, 259, 249, 410, 260, 256, - 255, 257, 253, 254, 256, 258, 257, 260, 261, 265, - 258, 262, 259, 266, 262, 263, 263, 269, 272, 275, - 274, 261, 410, 272, 273, 274, 265, 266, 273, 277, - 277, 273, 278, 269, 280, 273, 275, 279, 279, 278, - - 281, 281, 273, 282, 283, 285, 282, 762, 280, 284, - 284, 288, 283, 286, 286, 287, 289, 288, 287, 285, - 290, 291, 292, 294, 289, 297, 291, 293, 293, 292, - 295, 295, 299, 300, 297, 298, 294, 290, 301, 298, - 302, 304, 303, 305, 301, 306, 300, 303, 305, 309, - 299, 310, 304, 302, 307, 307, 308, 311, 313, 308, - 312, 312, 314, 310, 315, 306, 309, 316, 319, 317, - 318, 318, 313, 320, 321, 321, 311, 323, 318, 322, - 316, 319, 324, 328, 320, 314, 328, 322, 315, 317, - 323, 325, 325, 327, 329, 318, 330, 331, 327, 332, - - 324, 333, 331, 334, 332, 336, 337, 343, 330, 338, - 341, 337, 329, 339, 338, 341, 334, 340, 340, 336, - 333, 344, 339, 346, 344, 345, 343, 347, 345, 348, - 349, 351, 354, 350, 348, 349, 350, 352, 353, 353, - 346, 351, 355, 356, 357, 358, 347, 356, 359, 361, - 354, 352, 362, 367, 358, 355, 364, 362, 363, 363, - 366, 357, 361, 365, 366, 364, 368, 367, 365, 369, - 370, 371, 359, 373, 374, 372, 377, 378, 376, 430, - 368, 379, 384, 374, 377, 430, 379, 369, 371, 372, - 370, 376, 373, 380, 381, 384, 378, 380, 380, 381, - - 382, 382, 383, 385, 386, 387, 389, 383, 388, 386, - 387, 390, 388, 392, 391, 389, 393, 393, 396, 389, - 385, 389, 391, 389, 394, 394, 395, 395, 397, 390, - 398, 392, 399, 401, 404, 398, 397, 396, 401, 399, - 402, 403, 405, 404, 407, 402, 403, 406, 406, 408, - 411, 412, 413, 414, 415, 412, 416, 417, 418, 420, - 405, 416, 419, 407, 417, 421, 414, 411, 408, 422, - 413, 419, 415, 420, 422, 418, 423, 424, 425, 425, - 427, 423, 424, 428, 428, 421, 429, 429, 431, 432, - 433, 434, 435, 431, 436, 447, 437, 761, 427, 438, - - 438, 439, 439, 449, 446, 435, 440, 432, 433, 434, - 437, 440, 441, 445, 436, 451, 445, 441, 446, 447, - 448, 448, 449, 450, 450, 451, 452, 453, 456, 455, - 452, 457, 458, 459, 460, 461, 457, 462, 463, 463, - 461, 465, 462, 464, 466, 453, 455, 456, 464, 467, - 459, 470, 468, 460, 469, 471, 458, 472, 473, 469, - 465, 477, 467, 466, 468, 760, 476, 473, 479, 473, - 470, 478, 481, 479, 471, 476, 482, 472, 483, 477, - 478, 484, 478, 480, 480, 486, 489, 487, 482, 488, - 486, 481, 490, 492, 484, 483, 487, 488, 493, 494, - - 495, 623, 493, 489, 494, 495, 496, 497, 498, 623, - 490, 500, 492, 499, 499, 496, 500, 501, 501, 498, - 508, 497, 502, 502, 503, 503, 504, 506, 507, 504, - 509, 509, 506, 507, 510, 511, 512, 513, 514, 510, - 515, 516, 516, 517, 508, 518, 511, 519, 511, 521, - 517, 520, 520, 511, 518, 512, 513, 514, 523, 525, - 526, 524, 527, 523, 521, 515, 524, 526, 528, 529, - 534, 530, 519, 532, 529, 530, 530, 531, 525, 533, - 527, 528, 531, 533, 532, 535, 536, 537, 538, 538, - 535, 540, 540, 545, 534, 544, 549, 546, 537, 546, - - 544, 551, 540, 547, 547, 550, 550, 536, 552, 545, - 555, 553, 554, 556, 557, 549, 557, 559, 556, 552, - 563, 551, 553, 554, 555, 558, 558, 560, 561, 562, - 561, 564, 560, 566, 562, 565, 565, 563, 566, 568, - 567, 569, 559, 573, 573, 574, 570, 572, 575, 567, - 564, 567, 570, 572, 574, 576, 569, 577, 568, 576, - 578, 578, 577, 580, 581, 582, 575, 580, 583, 584, - 586, 757, 587, 586, 588, 589, 589, 594, 581, 590, - 590, 591, 591, 582, 587, 592, 588, 596, 583, 584, - 593, 593, 596, 597, 597, 594, 598, 592, 599, 600, - - 601, 603, 603, 601, 604, 600, 605, 605, 606, 607, - 608, 609, 611, 606, 598, 599, 612, 613, 613, 608, - 609, 614, 618, 607, 616, 612, 614, 617, 616, 604, - 617, 611, 619, 620, 621, 622, 624, 619, 624, 620, - 622, 618, 627, 627, 629, 629, 630, 630, 633, 621, - 632, 632, 635, 633, 634, 634, 637, 638, 639, 638, - 640, 637, 641, 642, 644, 645, 646, 635, 643, 647, - 649, 640, 651, 641, 642, 639, 650, 643, 646, 648, - 648, 652, 652, 653, 645, 654, 647, 649, 653, 644, - 651, 655, 656, 650, 660, 661, 662, 662, 661, 654, - - 663, 663, 664, 665, 669, 666, 753, 667, 751, 655, - 668, 656, 667, 660, 666, 668, 670, 671, 669, 672, - 664, 670, 671, 673, 665, 674, 675, 679, 673, 676, - 677, 680, 684, 672, 682, 675, 674, 684, 676, 677, - 681, 681, 683, 682, 749, 679, 687, 687, 692, 680, - 683, 688, 688, 689, 690, 690, 689, 691, 691, 693, - 696, 692, 694, 694, 693, 695, 697, 698, 699, 695, - 700, 701, 702, 699, 697, 705, 704, 708, 696, 704, - 701, 709, 698, 706, 706, 712, 712, 713, 708, 715, - 716, 702, 705, 717, 715, 700, 713, 718, 719, 720, - - 721, 722, 723, 723, 720, 709, 724, 717, 716, 726, - 726, 724, 718, 727, 727, 728, 719, 729, 746, 722, - 730, 730, 731, 731, 732, 721, 728, 733, 734, 734, - 735, 735, 733, 736, 737, 737, 729, 746, 736, 739, - 739, 743, 732, 742, 742, 747, 743, 750, 750, 747, - 752, 754, 755, 755, 752, 756, 756, 758, 758, 759, - 759, 763, 764, 765, 767, 766, 768, 768, 754, 748, - 745, 764, 744, 741, 740, 738, 725, 765, 766, 714, - 763, 711, 767, 771, 771, 771, 771, 771, 771, 772, - 772, 772, 772, 772, 772, 773, 773, 773, 773, 773, - - 773, 774, 774, 774, 774, 774, 774, 776, 776, 710, - 776, 776, 776, 777, 777, 707, 703, 686, 777, 778, - 778, 685, 678, 778, 780, 780, 659, 658, 657, 780, - 781, 781, 636, 781, 781, 781, 631, 628, 626, 625, - 615, 610, 602, 595, 585, 579, 571, 548, 543, 542, - 541, 539, 522, 505, 491, 485, 475, 474, 454, 444, - 443, 442, 426, 409, 400, 375, 360, 342, 335, 326, - 296, 271, 270, 268, 267, 264, 197, 192, 96, 95, - 93, 91, 89, 54, 50, 46, 45, 41, 36, 12, - 11, 770, 770, 770, 770, 770, 770, 770, 770, 770, - - 770, 770, 770, 770, 770, 770, 770, 770, 770, 770, - 770, 770, 770, 770, 770, 770, 770, 770, 770, 770, - 770, 770, 770, 770, 770, 770, 770, 770, 770, 770 + 161, 160, 164, 162, 165, 164, 170, 168, 167, 169, + 158, 170, 171, 172, 173, 163, 168, 165, 175, 173, + 164, 166, 167, 166, 166, 174, 174, 169, 174, 176, + 177, 171, 172, 178, 166, 166, 166, 175, 179, 180, + + 181, 185, 182, 183, 176, 177, 182, 185, 180, 181, + 178, 179, 183, 184, 186, 186, 187, 188, 184, 189, + 180, 187, 190, 193, 189, 191, 191, 194, 188, 195, + 196, 198, 199, 200, 201, 194, 203, 199, 195, 198, + 206, 196, 190, 193, 204, 202, 202, 205, 205, 204, + 200, 208, 201, 202, 204, 203, 207, 207, 209, 210, + 211, 212, 213, 216, 206, 208, 212, 215, 214, 209, + 202, 218, 215, 217, 217, 216, 219, 210, 220, 220, + 213, 211, 214, 221, 221, 218, 222, 229, 219, 223, + 223, 222, 224, 224, 225, 226, 231, 227, 225, 228, + + 226, 227, 230, 774, 228, 232, 229, 230, 232, 231, + 233, 233, 234, 232, 235, 234, 232, 236, 235, 237, + 238, 241, 236, 242, 237, 239, 238, 240, 239, 243, + 245, 244, 240, 245, 243, 247, 242, 249, 241, 235, + 244, 246, 246, 248, 250, 251, 254, 248, 252, 252, + 251, 249, 253, 255, 247, 256, 253, 257, 250, 261, + 258, 254, 267, 259, 257, 258, 262, 256, 259, 260, + 263, 255, 265, 265, 260, 262, 261, 264, 268, 267, + 264, 271, 274, 263, 275, 276, 277, 274, 275, 278, + 276, 275, 268, 279, 279, 275, 282, 271, 280, 281, + + 281, 284, 275, 277, 284, 280, 283, 283, 285, 287, + 282, 286, 286, 278, 288, 288, 285, 289, 290, 291, + 289, 292, 294, 287, 290, 293, 296, 291, 299, 294, + 293, 295, 295, 297, 297, 301, 300, 299, 292, 296, + 300, 302, 303, 304, 305, 306, 307, 308, 303, 305, + 309, 312, 308, 301, 302, 313, 304, 307, 310, 310, + 314, 311, 316, 306, 311, 315, 315, 313, 312, 317, + 309, 318, 319, 320, 321, 321, 316, 322, 323, 314, + 324, 324, 321, 325, 326, 319, 327, 328, 328, 323, + 322, 325, 317, 320, 332, 318, 330, 326, 333, 321, + + 331, 330, 334, 331, 327, 336, 335, 334, 337, 339, + 333, 335, 332, 340, 341, 344, 342, 346, 340, 341, + 344, 337, 349, 339, 336, 342, 343, 343, 347, 348, + 350, 347, 348, 351, 353, 352, 346, 353, 351, 349, + 352, 354, 355, 356, 357, 357, 358, 355, 359, 350, + 360, 354, 361, 362, 360, 363, 373, 356, 365, 368, + 366, 359, 362, 371, 358, 366, 367, 367, 368, 361, + 369, 365, 370, 372, 373, 369, 370, 371, 374, 363, + 375, 376, 377, 378, 382, 381, 380, 372, 554, 383, + 554, 385, 378, 381, 383, 376, 385, 375, 374, 380, + + 384, 377, 388, 382, 384, 384, 386, 386, 387, 389, + 392, 390, 391, 387, 392, 388, 390, 391, 393, 394, + 395, 396, 397, 397, 398, 398, 389, 393, 395, 399, + 399, 393, 400, 393, 401, 393, 402, 394, 403, 396, + 404, 402, 401, 406, 403, 407, 409, 404, 406, 408, + 407, 400, 410, 412, 408, 409, 411, 411, 413, 415, + 417, 416, 418, 419, 417, 420, 421, 422, 423, 773, + 410, 421, 412, 424, 422, 425, 419, 413, 416, 426, + 418, 427, 424, 420, 415, 423, 427, 428, 429, 425, + 430, 430, 428, 429, 432, 433, 433, 434, 434, 426, + + 435, 437, 436, 438, 439, 440, 435, 436, 441, 442, + 443, 443, 432, 444, 444, 445, 452, 451, 440, 437, + 445, 438, 439, 442, 446, 453, 455, 450, 441, 446, + 450, 451, 454, 454, 456, 456, 457, 458, 459, 453, + 452, 458, 461, 462, 463, 455, 457, 464, 465, 463, + 466, 471, 467, 468, 469, 469, 459, 467, 468, 461, + 472, 470, 462, 473, 476, 465, 470, 475, 474, 466, + 471, 464, 475, 477, 478, 479, 473, 483, 482, 472, + 474, 487, 484, 476, 479, 485, 479, 482, 486, 486, + 485, 484, 477, 484, 478, 483, 488, 489, 490, 492, + + 487, 493, 495, 496, 492, 494, 497, 499, 488, 503, + 493, 490, 500, 494, 489, 501, 500, 502, 503, 495, + 501, 496, 502, 497, 504, 505, 499, 506, 506, 507, + 508, 508, 509, 509, 507, 515, 505, 513, 504, 510, + 510, 511, 513, 514, 511, 516, 516, 517, 514, 518, + 519, 520, 517, 521, 522, 523, 523, 524, 526, 515, + 518, 530, 518, 528, 524, 525, 530, 518, 531, 519, + 520, 532, 521, 531, 525, 527, 527, 533, 528, 522, + 534, 535, 536, 526, 533, 540, 538, 536, 537, 542, + 532, 538, 537, 537, 535, 539, 540, 541, 534, 543, + + 539, 541, 544, 545, 543, 546, 546, 548, 548, 553, + 552, 555, 555, 542, 545, 552, 557, 559, 548, 558, + 558, 560, 561, 544, 564, 553, 563, 562, 565, 564, + 565, 567, 560, 561, 568, 557, 571, 559, 562, 568, + 563, 566, 566, 569, 570, 569, 572, 573, 573, 570, + 574, 575, 576, 571, 577, 574, 567, 578, 580, 581, + 575, 583, 575, 578, 580, 572, 582, 582, 581, 577, + 583, 576, 584, 585, 586, 587, 587, 585, 589, 586, + 590, 591, 589, 592, 593, 595, 596, 772, 595, 597, + 584, 598, 598, 603, 590, 599, 599, 601, 596, 591, + + 607, 597, 608, 592, 593, 600, 600, 602, 602, 601, + 605, 603, 606, 606, 609, 605, 612, 612, 607, 608, + 609, 610, 613, 615, 610, 614, 614, 616, 615, 617, + 618, 619, 621, 622, 628, 619, 623, 623, 617, 618, + 624, 616, 622, 627, 626, 624, 627, 613, 626, 629, + 630, 621, 631, 628, 629, 632, 630, 633, 769, 634, + 632, 634, 637, 637, 765, 633, 645, 631, 639, 639, + 640, 640, 642, 642, 643, 644, 644, 647, 648, 643, + 648, 645, 647, 649, 650, 651, 652, 653, 653, 654, + 655, 656, 657, 763, 658, 650, 651, 652, 654, 660, + + 649, 659, 659, 661, 657, 662, 663, 663, 664, 666, + 656, 658, 665, 664, 667, 655, 660, 671, 672, 675, + 661, 672, 676, 662, 673, 673, 665, 666, 674, 674, + 677, 681, 761, 667, 684, 678, 671, 675, 760, 677, + 678, 679, 682, 676, 683, 681, 679, 682, 684, 683, + 685, 686, 687, 691, 688, 685, 689, 692, 693, 693, + 694, 687, 686, 688, 695, 689, 699, 699, 696, 694, + 712, 691, 695, 696, 704, 692, 700, 700, 701, 702, + 702, 701, 703, 703, 705, 706, 706, 704, 707, 705, + 708, 709, 707, 711, 710, 712, 713, 714, 711, 709, + + 716, 717, 720, 716, 721, 713, 718, 718, 708, 710, + 724, 724, 725, 720, 727, 728, 714, 729, 717, 727, + 730, 725, 731, 733, 732, 734, 735, 735, 721, 732, + 741, 729, 736, 728, 740, 730, 744, 736, 738, 738, + 731, 739, 739, 734, 757, 740, 742, 742, 733, 741, + 743, 743, 745, 758, 744, 746, 746, 745, 747, 747, + 748, 749, 749, 751, 751, 748, 754, 754, 755, 766, + 759, 775, 758, 755, 759, 762, 762, 764, 767, 767, + 776, 764, 768, 768, 770, 770, 766, 771, 771, 776, + 775, 777, 779, 778, 780, 780, 756, 753, 752, 750, + + 737, 726, 723, 722, 719, 777, 778, 715, 698, 697, + 779, 783, 783, 783, 783, 783, 783, 784, 784, 784, + 784, 784, 784, 785, 785, 785, 785, 785, 785, 786, + 786, 786, 786, 786, 786, 788, 788, 690, 788, 788, + 788, 789, 789, 680, 670, 669, 789, 790, 790, 668, + 646, 790, 792, 792, 641, 638, 636, 792, 793, 793, + 635, 793, 793, 793, 625, 620, 611, 604, 594, 588, + 579, 556, 551, 550, 549, 547, 529, 512, 498, 491, + 481, 480, 460, 449, 448, 447, 431, 414, 405, 379, + 364, 345, 338, 329, 298, 273, 272, 270, 269, 266, + + 197, 192, 96, 95, 93, 91, 89, 54, 50, 46, + 45, 41, 36, 12, 11, 782, 782, 782, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, + 782, 782, 782, 782 } ; static yy_state_type yy_last_accepting_state; @@ -1151,7 +1163,7 @@ static void config_end_include(void) #endif -#line 1154 "" +#line 1166 "" #define INITIAL 0 #define quotedstring 1 @@ -1308,7 +1320,7 @@ YY_DECL #line 99 "util/configlexer.lex" -#line 1311 "" +#line 1323 "" if ( !(yy_init) ) { @@ -1367,13 +1379,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 771 ) + if ( yy_current_state >= 783 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 1592 ); + while ( yy_base[yy_current_state] != 1616 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1605,181 +1617,186 @@ YY_RULE_SETUP case 42: YY_RULE_SETUP #line 141 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_ZONE;} +{ YDOUT; return VAR_USE_CAPS_FOR_ID;} YY_BREAK case 43: YY_RULE_SETUP #line 142 "util/configlexer.lex" -{ YDOUT; return VAR_NAME;} +{ YDOUT; return VAR_STUB_ZONE;} YY_BREAK case 44: YY_RULE_SETUP #line 143 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_ADDR;} +{ YDOUT; return VAR_NAME;} YY_BREAK case 45: YY_RULE_SETUP #line 144 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_HOST;} +{ YDOUT; return VAR_STUB_ADDR;} YY_BREAK case 46: YY_RULE_SETUP #line 145 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ZONE;} +{ YDOUT; return VAR_STUB_HOST;} YY_BREAK case 47: YY_RULE_SETUP #line 146 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ADDR;} +{ YDOUT; return VAR_FORWARD_ZONE;} YY_BREAK case 48: YY_RULE_SETUP #line 147 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_HOST;} +{ YDOUT; return VAR_FORWARD_ADDR;} YY_BREAK case 49: YY_RULE_SETUP #line 148 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} +{ YDOUT; return VAR_FORWARD_HOST;} YY_BREAK case 50: YY_RULE_SETUP #line 149 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} +{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} YY_BREAK case 51: YY_RULE_SETUP #line 150 "util/configlexer.lex" -{ YDOUT; return VAR_ACCESS_CONTROL;} +{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} YY_BREAK case 52: YY_RULE_SETUP #line 151 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_IDENTITY;} +{ YDOUT; return VAR_ACCESS_CONTROL;} YY_BREAK case 53: YY_RULE_SETUP #line 152 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_VERSION;} +{ YDOUT; return VAR_HIDE_IDENTITY;} YY_BREAK case 54: YY_RULE_SETUP #line 153 "util/configlexer.lex" -{ YDOUT; return VAR_IDENTITY;} +{ YDOUT; return VAR_HIDE_VERSION;} YY_BREAK case 55: YY_RULE_SETUP #line 154 "util/configlexer.lex" -{ YDOUT; return VAR_VERSION;} +{ YDOUT; return VAR_IDENTITY;} YY_BREAK case 56: YY_RULE_SETUP #line 155 "util/configlexer.lex" -{ YDOUT; return VAR_MODULE_CONF;} +{ YDOUT; return VAR_VERSION;} YY_BREAK case 57: YY_RULE_SETUP #line 156 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} +{ YDOUT; return VAR_MODULE_CONF;} YY_BREAK case 58: YY_RULE_SETUP #line 157 "util/configlexer.lex" -{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} +{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} YY_BREAK case 59: YY_RULE_SETUP #line 158 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR;} +{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} YY_BREAK case 60: YY_RULE_SETUP #line 159 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} +{ YDOUT; return VAR_TRUST_ANCHOR;} YY_BREAK case 61: YY_RULE_SETUP #line 160 "util/configlexer.lex" -{ YDOUT; return VAR_BOGUS_TTL;} +{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} YY_BREAK case 62: YY_RULE_SETUP #line 161 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} +{ YDOUT; return VAR_BOGUS_TTL;} YY_BREAK case 63: YY_RULE_SETUP #line 162 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} +{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} YY_BREAK case 64: YY_RULE_SETUP #line 163 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SIZE;} +{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} YY_BREAK case 65: YY_RULE_SETUP #line 164 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SLABS;} +{ YDOUT; return VAR_KEY_CACHE_SIZE;} YY_BREAK case 66: YY_RULE_SETUP #line 165 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} +{ YDOUT; return VAR_KEY_CACHE_SLABS;} YY_BREAK case 67: YY_RULE_SETUP #line 166 "util/configlexer.lex" -{ YDOUT; return VAR_USE_SYSLOG;} +{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} YY_BREAK case 68: YY_RULE_SETUP #line 167 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_ZONE;} +{ YDOUT; return VAR_USE_SYSLOG;} YY_BREAK case 69: YY_RULE_SETUP #line 168 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_DATA;} +{ YDOUT; return VAR_LOCAL_ZONE;} YY_BREAK case 70: YY_RULE_SETUP #line 169 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_INTERVAL;} +{ YDOUT; return VAR_LOCAL_DATA;} YY_BREAK case 71: -/* rule 71 can match eol */ YY_RULE_SETUP #line 170 "util/configlexer.lex" +{ YDOUT; return VAR_STATISTICS_INTERVAL;} + YY_BREAK +case 72: +/* rule 72 can match eol */ +YY_RULE_SETUP +#line 171 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 72: +case 73: YY_RULE_SETUP -#line 173 "util/configlexer.lex" +#line 174 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 174 "util/configlexer.lex" +#line 175 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 73: -YY_RULE_SETUP -#line 178 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 74: -/* rule 74 can match eol */ YY_RULE_SETUP #line 179 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK case 75: +/* rule 75 can match eol */ YY_RULE_SETUP #line 180 "util/configlexer.lex" +{ cfg_parser->line++; yymore(); } + YY_BREAK +case 76: +YY_RULE_SETUP +#line 181 "util/configlexer.lex" { LEXOUT(("QE ")); BEGIN(INITIAL); @@ -1791,32 +1808,32 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 76: +case 77: YY_RULE_SETUP -#line 191 "util/configlexer.lex" +#line 192 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 192 "util/configlexer.lex" +#line 193 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 77: -YY_RULE_SETUP -#line 196 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 78: -/* rule 78 can match eol */ YY_RULE_SETUP #line 197 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK case 79: +/* rule 79 can match eol */ YY_RULE_SETUP #line 198 "util/configlexer.lex" +{ cfg_parser->line++; yymore(); } + YY_BREAK +case 80: +YY_RULE_SETUP +#line 199 "util/configlexer.lex" { LEXOUT(("SQE ")); BEGIN(INITIAL); @@ -1828,37 +1845,37 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 80: +case 81: YY_RULE_SETUP -#line 209 "util/configlexer.lex" +#line 210 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 210 "util/configlexer.lex" +#line 211 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(INITIAL); } YY_BREAK -case 81: -YY_RULE_SETUP -#line 214 "util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 82: -/* rule 82 can match eol */ YY_RULE_SETUP #line 215 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 83: +/* rule 83 can match eol */ YY_RULE_SETUP #line 216 "util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 84: YY_RULE_SETUP #line 217 "util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 85: +YY_RULE_SETUP +#line 218 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); @@ -1866,26 +1883,26 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 222 "util/configlexer.lex" +#line 223 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 85: -YY_RULE_SETUP -#line 226 "util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 86: -/* rule 86 can match eol */ YY_RULE_SETUP #line 227 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK case 87: +/* rule 87 can match eol */ YY_RULE_SETUP #line 228 "util/configlexer.lex" +{ cfg_parser->line++; yymore(); } + YY_BREAK +case 88: +YY_RULE_SETUP +#line 229 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -1894,7 +1911,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 234 "util/configlexer.lex" +#line 235 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -1905,18 +1922,18 @@ case YY_STATE_EOF(INITIAL): } } YY_BREAK -case 88: +case 89: YY_RULE_SETUP -#line 244 "util/configlexer.lex" +#line 245 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); yylval.str = strdup(yytext); return STRING; } YY_BREAK -case 89: +case 90: YY_RULE_SETUP -#line 247 "util/configlexer.lex" +#line 248 "util/configlexer.lex" ECHO; YY_BREAK -#line 1919 "" +#line 1936 "" case YY_END_OF_BUFFER: { @@ -2198,7 +2215,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 771 ) + if ( yy_current_state >= 783 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2226,11 +2243,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 771 ) + if ( yy_current_state >= 783 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 770); + yy_is_jam = (yy_current_state == 782); return yy_is_jam ? 0 : yy_current_state; } @@ -2863,7 +2880,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 247 "util/configlexer.lex" +#line 248 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 28d8aa0c5..3d29a5440 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -138,6 +138,7 @@ harden-short-bufsize{COLON} { YDOUT; return VAR_HARDEN_SHORT_BUFSIZE;} harden-large-queries{COLON} { YDOUT; return VAR_HARDEN_LARGE_QUERIES;} harden-glue{COLON} { YDOUT; return VAR_HARDEN_GLUE;} harden-dnssec-stripped{COLON} { YDOUT; return VAR_HARDEN_DNNSEC_STRIPPED;} +use-caps-for-id{COLON} { YDOUT; return VAR_USE_CAPS_FOR_ID;} stub-zone{COLON} { YDOUT; return VAR_STUB_ZONE;} name{COLON} { YDOUT; return VAR_NAME;} stub-addr{COLON} { YDOUT; return VAR_STUB_ADDR;} diff --git a/util/configparser.c b/util/configparser.c index 7054ed4fa..6f8d528c9 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -141,7 +141,8 @@ VAR_LOCAL_DATA = 330, VAR_INTERFACE_AUTOMATIC = 331, VAR_STATISTICS_INTERVAL = 332, - VAR_DO_DAEMONIZE = 333 + VAR_DO_DAEMONIZE = 333, + VAR_USE_CAPS_FOR_ID = 334 }; #endif /* Tokens. */ @@ -221,6 +222,7 @@ #define VAR_INTERFACE_AUTOMATIC 331 #define VAR_STATISTICS_INTERVAL 332 #define VAR_DO_DAEMONIZE 333 +#define VAR_USE_CAPS_FOR_ID 334 @@ -279,7 +281,7 @@ typedef union YYSTYPE char* str; } /* Line 187 of yacc.c. */ -#line 283 "util/configparser.c" +#line 285 "util/configparser.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -292,7 +294,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 296 "util/configparser.c" +#line 298 "util/configparser.c" #ifdef short # undef short @@ -507,20 +509,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 137 +#define YYLAST 139 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 79 +#define YYNTOKENS 80 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 78 +#define YYNNTS 79 /* YYNRULES -- Number of rules. */ -#define YYNRULES 147 +#define YYNRULES 149 /* YYNRULES -- Number of states. */ -#define YYNSTATES 216 +#define YYNSTATES 219 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 333 +#define YYMAXUTOK 334 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -561,7 +563,7 @@ static const yytype_uint8 yytranslate[] = 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78 + 75, 76, 77, 78, 79 }; #if YYDEBUG @@ -576,56 +578,57 @@ static const yytype_uint16 yyprhs[] = 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, - 142, 144, 147, 148, 150, 152, 154, 156, 159, 160, - 162, 164, 166, 169, 172, 175, 178, 181, 184, 187, - 190, 193, 196, 199, 202, 205, 208, 211, 214, 217, - 220, 223, 226, 229, 232, 235, 238, 241, 244, 247, - 250, 253, 256, 259, 262, 265, 268, 271, 274, 277, - 280, 283, 286, 289, 292, 295, 298, 301, 304, 307, - 310, 314, 317, 320, 323, 326, 329, 332, 335, 338, - 341, 345, 348, 351, 354, 357, 360, 363 + 142, 144, 146, 149, 150, 152, 154, 156, 158, 161, + 162, 164, 166, 168, 171, 174, 177, 180, 183, 186, + 189, 192, 195, 198, 201, 204, 207, 210, 213, 216, + 219, 222, 225, 228, 231, 234, 237, 240, 243, 246, + 249, 252, 255, 258, 261, 264, 267, 270, 273, 276, + 279, 282, 285, 288, 291, 294, 297, 300, 303, 306, + 309, 312, 315, 319, 322, 325, 328, 331, 334, 337, + 340, 343, 346, 350, 353, 356, 359, 362, 365, 368 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 80, 0, -1, -1, 80, 81, -1, 82, 83, -1, - 85, 86, -1, 88, 89, -1, 11, -1, 83, 84, - -1, -1, 91, -1, 92, -1, 94, -1, 97, -1, - 98, -1, 102, -1, 103, -1, 104, -1, 105, -1, - 95, -1, 108, -1, 109, -1, 110, -1, 111, -1, - 112, -1, 122, -1, 123, -1, 124, -1, 125, -1, - 126, -1, 99, -1, 127, -1, 128, -1, 131, -1, - 129, -1, 130, -1, 132, -1, 133, -1, 134, -1, - 137, -1, 117, -1, 118, -1, 119, -1, 120, -1, - 135, -1, 140, -1, 114, -1, 116, -1, 141, -1, - 143, -1, 144, -1, 145, -1, 100, -1, 121, -1, - 147, -1, 148, -1, 115, -1, 146, -1, 107, -1, - 96, -1, 113, -1, 138, -1, 142, -1, 136, -1, - 139, -1, 149, -1, 150, -1, 101, -1, 93, -1, - 106, -1, 39, -1, 86, 87, -1, -1, 151, -1, - 152, -1, 153, -1, 45, -1, 89, 90, -1, -1, - 154, -1, 155, -1, 156, -1, 13, 10, -1, 12, - 10, -1, 77, 10, -1, 14, 10, -1, 17, 10, - -1, 68, 10, -1, 15, 10, -1, 16, 10, -1, - 32, 10, -1, 61, 10, -1, 76, 10, -1, 18, - 10, -1, 19, 10, -1, 20, 10, -1, 21, 10, - -1, 78, 10, -1, 67, 10, -1, 22, 10, -1, - 23, 10, -1, 24, 10, -1, 25, 10, -1, 26, - 10, -1, 69, 10, -1, 55, 10, -1, 65, 10, - -1, 56, 10, -1, 49, 10, -1, 50, 10, -1, - 51, 10, -1, 52, 10, -1, 62, 10, -1, 27, - 10, -1, 28, 10, -1, 29, 10, -1, 30, 10, - -1, 31, 10, -1, 33, 10, -1, 34, 10, -1, - 36, 10, -1, 37, 10, -1, 35, 10, -1, 42, - 10, -1, 43, 10, -1, 44, 10, -1, 53, 10, - -1, 72, 10, -1, 48, 10, -1, 70, 10, -1, - 73, 10, 10, -1, 54, 10, -1, 57, 10, -1, - 71, 10, -1, 58, 10, -1, 59, 10, -1, 60, - 10, -1, 66, 10, -1, 63, 10, -1, 64, 10, - -1, 74, 10, 10, -1, 75, 10, -1, 38, 10, - -1, 40, 10, -1, 41, 10, -1, 38, 10, -1, - 46, 10, -1, 47, 10, -1 + 81, 0, -1, -1, 81, 82, -1, 83, 84, -1, + 86, 87, -1, 89, 90, -1, 11, -1, 84, 85, + -1, -1, 92, -1, 93, -1, 95, -1, 98, -1, + 99, -1, 103, -1, 104, -1, 105, -1, 106, -1, + 96, -1, 109, -1, 110, -1, 111, -1, 112, -1, + 113, -1, 123, -1, 124, -1, 125, -1, 126, -1, + 127, -1, 100, -1, 128, -1, 129, -1, 132, -1, + 130, -1, 131, -1, 133, -1, 134, -1, 135, -1, + 139, -1, 118, -1, 119, -1, 120, -1, 121, -1, + 136, -1, 142, -1, 115, -1, 117, -1, 143, -1, + 145, -1, 146, -1, 147, -1, 101, -1, 122, -1, + 149, -1, 150, -1, 116, -1, 148, -1, 108, -1, + 97, -1, 114, -1, 140, -1, 144, -1, 137, -1, + 141, -1, 151, -1, 152, -1, 102, -1, 94, -1, + 107, -1, 138, -1, 39, -1, 87, 88, -1, -1, + 153, -1, 154, -1, 155, -1, 45, -1, 90, 91, + -1, -1, 156, -1, 157, -1, 158, -1, 13, 10, + -1, 12, 10, -1, 77, 10, -1, 14, 10, -1, + 17, 10, -1, 68, 10, -1, 15, 10, -1, 16, + 10, -1, 32, 10, -1, 61, 10, -1, 76, 10, + -1, 18, 10, -1, 19, 10, -1, 20, 10, -1, + 21, 10, -1, 78, 10, -1, 67, 10, -1, 22, + 10, -1, 23, 10, -1, 24, 10, -1, 25, 10, + -1, 26, 10, -1, 69, 10, -1, 55, 10, -1, + 65, 10, -1, 56, 10, -1, 49, 10, -1, 50, + 10, -1, 51, 10, -1, 52, 10, -1, 62, 10, + -1, 27, 10, -1, 28, 10, -1, 29, 10, -1, + 30, 10, -1, 31, 10, -1, 33, 10, -1, 34, + 10, -1, 36, 10, -1, 37, 10, -1, 35, 10, + -1, 42, 10, -1, 43, 10, -1, 44, 10, -1, + 53, 10, -1, 72, 10, -1, 79, 10, -1, 48, + 10, -1, 70, 10, -1, 73, 10, 10, -1, 54, + 10, -1, 57, 10, -1, 71, 10, -1, 58, 10, + -1, 59, 10, -1, 60, 10, -1, 66, 10, -1, + 63, 10, -1, 64, 10, -1, 74, 10, 10, -1, + 75, 10, -1, 38, 10, -1, 40, 10, -1, 41, + 10, -1, 38, 10, -1, 46, 10, -1, 47, 10, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -638,14 +641,14 @@ static const yytype_uint16 yyrline[] = 119, 120, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, 127, 128, 128, 129, 129, 130, 130, 130, 131, 131, - 133, 145, 146, 147, 147, 147, 149, 161, 162, 163, - 163, 163, 165, 174, 183, 194, 203, 216, 231, 240, - 249, 258, 267, 276, 285, 294, 303, 312, 321, 335, - 342, 349, 356, 364, 371, 378, 386, 394, 401, 410, - 419, 426, 433, 444, 452, 465, 474, 482, 495, 504, - 513, 522, 531, 544, 551, 561, 571, 581, 591, 598, - 608, 621, 628, 646, 655, 664, 674, 684, 691, 699, - 712, 731, 738, 745, 752, 759, 766, 773 + 132, 134, 146, 147, 148, 148, 148, 150, 162, 163, + 164, 164, 164, 166, 175, 184, 195, 204, 217, 232, + 241, 250, 259, 268, 277, 286, 295, 304, 313, 322, + 336, 343, 350, 357, 365, 372, 379, 387, 395, 402, + 411, 420, 427, 434, 445, 453, 466, 475, 483, 496, + 505, 514, 523, 532, 545, 552, 562, 572, 582, 592, + 602, 609, 619, 632, 639, 657, 666, 675, 685, 695, + 702, 710, 723, 742, 749, 756, 763, 770, 777, 784 }; #endif @@ -677,15 +680,16 @@ static const char *const yytname[] = "VAR_OUTGOING_INTERFACE", "VAR_ROOT_HINTS", "VAR_DO_NOT_QUERY_LOCALHOST", "VAR_CACHE_MAX_TTL", "VAR_HARDEN_DNNSEC_STRIPPED", "VAR_ACCESS_CONTROL", "VAR_LOCAL_ZONE", "VAR_LOCAL_DATA", "VAR_INTERFACE_AUTOMATIC", - "VAR_STATISTICS_INTERVAL", "VAR_DO_DAEMONIZE", "$accept", "toplevelvars", - "toplevelvar", "serverstart", "contents_server", "content_server", - "stubstart", "contents_stub", "content_stub", "forwardstart", - "contents_forward", "content_forward", "server_num_threads", - "server_verbosity", "server_statistics_interval", "server_port", - "server_interface", "server_outgoing_interface", "server_outgoing_port", - "server_outgoing_range", "server_outgoing_num_tcp", - "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", - "server_do_ip6", "server_do_udp", "server_do_tcp", "server_do_daemonize", + "VAR_STATISTICS_INTERVAL", "VAR_DO_DAEMONIZE", "VAR_USE_CAPS_FOR_ID", + "$accept", "toplevelvars", "toplevelvar", "serverstart", + "contents_server", "content_server", "stubstart", "contents_stub", + "content_stub", "forwardstart", "contents_forward", "content_forward", + "server_num_threads", "server_verbosity", "server_statistics_interval", + "server_port", "server_interface", "server_outgoing_interface", + "server_outgoing_port", "server_outgoing_range", + "server_outgoing_num_tcp", "server_incoming_num_tcp", + "server_interface_automatic", "server_do_ip4", "server_do_ip6", + "server_do_udp", "server_do_tcp", "server_do_daemonize", "server_use_syslog", "server_chroot", "server_username", "server_directory", "server_logfile", "server_pidfile", "server_root_hints", "server_trust_anchor_file", @@ -699,14 +703,14 @@ static const char *const yytname[] = "server_infra_cache_slabs", "server_target_fetch_policy", "server_harden_short_bufsize", "server_harden_large_queries", "server_harden_glue", "server_harden_dnssec_stripped", - "server_do_not_query_address", "server_do_not_query_localhost", - "server_access_control", "server_module_conf", - "server_val_override_date", "server_cache_max_ttl", "server_bogus_ttl", - "server_val_clean_additional", "server_val_permissive_mode", - "server_val_nsec3_keysize_iterations", "server_key_cache_size", - "server_key_cache_slabs", "server_local_zone", "server_local_data", - "stub_name", "stub_host", "stub_addr", "forward_name", "forward_host", - "forward_addr", 0 + "server_use_caps_for_id", "server_do_not_query_address", + "server_do_not_query_localhost", "server_access_control", + "server_module_conf", "server_val_override_date", "server_cache_max_ttl", + "server_bogus_ttl", "server_val_clean_additional", + "server_val_permissive_mode", "server_val_nsec3_keysize_iterations", + "server_key_cache_size", "server_key_cache_slabs", "server_local_zone", + "server_local_data", "stub_name", "stub_host", "stub_addr", + "forward_name", "forward_host", "forward_addr", 0 }; #endif @@ -722,28 +726,28 @@ static const yytype_uint16 yytoknum[] = 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333 + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 79, 80, 80, 81, 81, 81, 82, 83, 83, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 85, 86, 86, 87, 87, 87, 88, 89, 89, 90, - 90, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 0, 80, 81, 81, 82, 82, 82, 83, 84, 84, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 86, 87, 87, 88, 88, 88, 89, 90, 90, + 91, 91, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156 + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -756,14 +760,14 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 0, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 2, 0, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 2, 2, 2, 2, 2, 2, 2 + 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 2, 2, 2, 2, 2, 2, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -771,70 +775,70 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 7, 70, 76, 3, 9, 72, 78, + 2, 0, 1, 7, 71, 77, 3, 9, 73, 79, 4, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 10, 11, 68, 12, 19, 59, - 13, 14, 30, 52, 67, 15, 16, 17, 18, 69, - 58, 20, 21, 22, 23, 24, 60, 46, 56, 47, - 40, 41, 42, 43, 53, 25, 26, 27, 28, 29, - 31, 32, 34, 35, 33, 36, 37, 38, 44, 63, - 39, 61, 64, 45, 48, 62, 49, 50, 51, 57, - 54, 55, 65, 66, 0, 0, 0, 71, 73, 74, - 75, 0, 0, 0, 77, 79, 80, 81, 83, 82, - 85, 88, 89, 86, 93, 94, 95, 96, 99, 100, - 101, 102, 103, 113, 114, 115, 116, 117, 90, 118, - 119, 122, 120, 121, 123, 124, 125, 128, 108, 109, - 110, 111, 126, 131, 105, 107, 132, 134, 135, 136, - 91, 112, 138, 139, 106, 137, 98, 87, 104, 129, - 133, 127, 0, 0, 141, 92, 84, 97, 142, 143, - 144, 145, 146, 147, 130, 140 + 0, 0, 0, 0, 8, 10, 11, 68, 12, 19, + 59, 13, 14, 30, 52, 67, 15, 16, 17, 18, + 69, 58, 20, 21, 22, 23, 24, 60, 46, 56, + 47, 40, 41, 42, 43, 53, 25, 26, 27, 28, + 29, 31, 32, 34, 35, 33, 36, 37, 38, 44, + 63, 70, 39, 61, 64, 45, 48, 62, 49, 50, + 51, 57, 54, 55, 65, 66, 0, 0, 0, 72, + 74, 75, 76, 0, 0, 0, 78, 80, 81, 82, + 84, 83, 86, 89, 90, 87, 94, 95, 96, 97, + 100, 101, 102, 103, 104, 114, 115, 116, 117, 118, + 91, 119, 120, 123, 121, 122, 124, 125, 126, 130, + 109, 110, 111, 112, 127, 133, 106, 108, 134, 136, + 137, 138, 92, 113, 140, 141, 107, 139, 99, 88, + 105, 131, 135, 128, 0, 0, 143, 93, 85, 98, + 129, 144, 145, 146, 147, 148, 149, 132, 142 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 6, 7, 10, 73, 8, 11, 137, 9, - 12, 144, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 138, 139, 140, 145, 146, 147 + -1, 1, 6, 7, 10, 74, 8, 11, 139, 9, + 12, 146, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 140, 141, 142, 147, 148, 149 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -13 -static const yytype_int8 yypact[] = +static const yytype_int16 yypact[] = { - -13, 67, -13, -13, -13, -13, -13, -13, -13, -13, - -12, 31, 30, 16, 17, 18, 19, 23, 24, 25, - 60, 63, 64, 65, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 97, 98, 99, 100, 101, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, -13, -13, -13, -13, -13, -13, -13, + -13, 68, -13, -13, -13, -13, -13, -13, -13, -13, + -12, 32, 31, 16, 17, 18, 19, 23, 24, 25, + 61, 64, 65, 66, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 98, 99, 100, 101, 102, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, 120, 121, 122, -13, -13, -13, - -13, 123, 124, 125, -13, -13, -13, -13, -13, -13, + -13, -13, -13, -13, -13, -13, 122, 123, 124, -13, + -13, -13, -13, 125, 126, 127, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, 126, 127, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13 + -13, -13, -13, -13, 128, 129, -13, -13, -13, -13, + -13, -13, -13, -13, -13, -13, -13, -13, -13 }; /* YYPGOTO[NTERM-NUM]. */ @@ -847,7 +851,7 @@ static const yytype_int8 yypgoto[] = -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13 + -13, -13, -13, -13, -13, -13, -13, -13, -13 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -859,18 +863,18 @@ static const yytype_uint8 yytable[] = { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 148, 149, 150, 151, - 39, 40, 41, 152, 153, 154, 42, 43, 44, 45, + 33, 34, 35, 36, 37, 38, 150, 151, 152, 153, + 39, 40, 41, 154, 155, 156, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 2, 141, 134, - 155, 135, 136, 156, 157, 158, 142, 143, 3, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 4, 186, 187, 188, - 189, 190, 5, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215 + 66, 67, 68, 69, 70, 71, 72, 73, 2, 143, + 136, 157, 137, 138, 158, 159, 160, 144, 145, 3, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 4, 188, 189, + 190, 191, 192, 5, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218 }; static const yytype_uint8 yycheck[] = @@ -881,42 +885,42 @@ static const yytype_uint8 yycheck[] = 42, 43, 44, 10, 10, 10, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 0, 38, 38, - 10, 40, 41, 10, 10, 10, 46, 47, 11, 10, + 72, 73, 74, 75, 76, 77, 78, 79, 0, 38, + 38, 10, 40, 41, 10, 10, 10, 46, 47, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 39, 10, 10, 10, - 10, 10, 45, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 39, 10, 10, + 10, 10, 10, 45, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 80, 0, 11, 39, 45, 81, 82, 85, 88, - 83, 86, 89, 12, 13, 14, 15, 16, 17, 18, + 0, 81, 0, 11, 39, 45, 82, 83, 86, 89, + 84, 87, 90, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 84, 91, 92, 93, 94, 95, 96, + 76, 77, 78, 79, 85, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 38, 40, 41, 87, 151, 152, - 153, 38, 46, 47, 90, 154, 155, 156, 10, 10, + 147, 148, 149, 150, 151, 152, 38, 40, 41, 88, + 153, 154, 155, 38, 46, 47, 91, 156, 157, 158, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10 }; #define yyerrok (yyerrstatus = 0) @@ -1737,8 +1741,8 @@ yyreduce: } break; - case 70: -#line 134 "util/configparser.y" + case 71: +#line 135 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -1751,8 +1755,8 @@ yyreduce: } break; - case 76: -#line 150 "util/configparser.y" + case 77: +#line 151 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -1765,8 +1769,8 @@ yyreduce: } break; - case 82: -#line 166 "util/configparser.y" + case 83: +#line 167 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1776,8 +1780,8 @@ yyreduce: } break; - case 83: -#line 175 "util/configparser.y" + case 84: +#line 176 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1787,8 +1791,8 @@ yyreduce: } break; - case 84: -#line 184 "util/configparser.y" + case 85: +#line 185 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) @@ -1800,8 +1804,8 @@ yyreduce: } break; - case 85: -#line 195 "util/configparser.y" + case 86: +#line 196 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -1811,8 +1815,8 @@ yyreduce: } break; - case 86: -#line 204 "util/configparser.y" + case 87: +#line 205 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -1826,8 +1830,8 @@ yyreduce: } break; - case 87: -#line 217 "util/configparser.y" + case 88: +#line 218 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -1843,8 +1847,8 @@ yyreduce: } break; - case 88: -#line 232 "util/configparser.y" + case 89: +#line 233 "util/configparser.y" { OUTYY(("P(server_outgoing_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -1854,8 +1858,8 @@ yyreduce: } break; - case 89: -#line 241 "util/configparser.y" + case 90: +#line 242 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -1865,8 +1869,8 @@ yyreduce: } break; - case 90: -#line 250 "util/configparser.y" + case 91: +#line 251 "util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1876,8 +1880,8 @@ yyreduce: } break; - case 91: -#line 259 "util/configparser.y" + case 92: +#line 260 "util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1887,8 +1891,8 @@ yyreduce: } break; - case 92: -#line 268 "util/configparser.y" + case 93: +#line 269 "util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1898,8 +1902,8 @@ yyreduce: } break; - case 93: -#line 277 "util/configparser.y" + case 94: +#line 278 "util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1909,8 +1913,8 @@ yyreduce: } break; - case 94: -#line 286 "util/configparser.y" + case 95: +#line 287 "util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1920,8 +1924,8 @@ yyreduce: } break; - case 95: -#line 295 "util/configparser.y" + case 96: +#line 296 "util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1931,8 +1935,8 @@ yyreduce: } break; - case 96: -#line 304 "util/configparser.y" + case 97: +#line 305 "util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1942,8 +1946,8 @@ yyreduce: } break; - case 97: -#line 313 "util/configparser.y" + case 98: +#line 314 "util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1953,8 +1957,8 @@ yyreduce: } break; - case 98: -#line 322 "util/configparser.y" + case 99: +#line 323 "util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1969,8 +1973,8 @@ yyreduce: } break; - case 99: -#line 336 "util/configparser.y" + case 100: +#line 337 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -1978,8 +1982,8 @@ yyreduce: } break; - case 100: -#line 343 "util/configparser.y" + case 101: +#line 344 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -1987,8 +1991,8 @@ yyreduce: } break; - case 101: -#line 350 "util/configparser.y" + case 102: +#line 351 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -1996,8 +2000,8 @@ yyreduce: } break; - case 102: -#line 357 "util/configparser.y" + case 103: +#line 358 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -2006,8 +2010,8 @@ yyreduce: } break; - case 103: -#line 365 "util/configparser.y" + case 104: +#line 366 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2015,8 +2019,8 @@ yyreduce: } break; - case 104: -#line 372 "util/configparser.y" + case 105: +#line 373 "util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) @@ -2024,8 +2028,8 @@ yyreduce: } break; - case 105: -#line 379 "util/configparser.y" + case 106: +#line 380 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2034,8 +2038,8 @@ yyreduce: } break; - case 106: -#line 387 "util/configparser.y" + case 107: +#line 388 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2044,8 +2048,8 @@ yyreduce: } break; - case 107: -#line 395 "util/configparser.y" + case 108: +#line 396 "util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2053,8 +2057,8 @@ yyreduce: } break; - case 108: -#line 402 "util/configparser.y" + case 109: +#line 403 "util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2064,8 +2068,8 @@ yyreduce: } break; - case 109: -#line 411 "util/configparser.y" + case 110: +#line 412 "util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2075,8 +2079,8 @@ yyreduce: } break; - case 110: -#line 420 "util/configparser.y" + case 111: +#line 421 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2084,8 +2088,8 @@ yyreduce: } break; - case 111: -#line 427 "util/configparser.y" + case 112: +#line 428 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2093,8 +2097,8 @@ yyreduce: } break; - case 112: -#line 434 "util/configparser.y" + case 113: +#line 435 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2106,8 +2110,8 @@ yyreduce: } break; - case 113: -#line 445 "util/configparser.y" + case 114: +#line 446 "util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) @@ -2116,8 +2120,8 @@ yyreduce: } break; - case 114: -#line 453 "util/configparser.y" + case 115: +#line 454 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2131,8 +2135,8 @@ yyreduce: } break; - case 115: -#line 466 "util/configparser.y" + case 116: +#line 467 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2142,8 +2146,8 @@ yyreduce: } break; - case 116: -#line 475 "util/configparser.y" + case 117: +#line 476 "util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size)) @@ -2152,8 +2156,8 @@ yyreduce: } break; - case 117: -#line 483 "util/configparser.y" + case 118: +#line 484 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2167,8 +2171,8 @@ yyreduce: } break; - case 118: -#line 496 "util/configparser.y" + case 119: +#line 497 "util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2178,8 +2182,8 @@ yyreduce: } break; - case 119: -#line 505 "util/configparser.y" + case 120: +#line 506 "util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2189,8 +2193,8 @@ yyreduce: } break; - case 120: -#line 514 "util/configparser.y" + case 121: +#line 515 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2200,8 +2204,8 @@ yyreduce: } break; - case 121: -#line 523 "util/configparser.y" + case 122: +#line 524 "util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg-> @@ -2211,8 +2215,8 @@ yyreduce: } break; - case 122: -#line 532 "util/configparser.y" + case 123: +#line 533 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2226,8 +2230,8 @@ yyreduce: } break; - case 123: -#line 545 "util/configparser.y" + case 124: +#line 546 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -2235,8 +2239,8 @@ yyreduce: } break; - case 124: -#line 552 "util/configparser.y" + case 125: +#line 553 "util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2247,8 +2251,8 @@ yyreduce: } break; - case 125: -#line 562 "util/configparser.y" + case 126: +#line 563 "util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2259,8 +2263,8 @@ yyreduce: } break; - case 126: -#line 572 "util/configparser.y" + case 127: +#line 573 "util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2271,8 +2275,8 @@ yyreduce: } break; - case 127: -#line 582 "util/configparser.y" + case 128: +#line 583 "util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2283,8 +2287,20 @@ yyreduce: } break; - case 128: -#line 592 "util/configparser.y" + case 129: +#line 593 "util/configparser.y" + { + OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->use_caps_bits_for_id = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 130: +#line 603 "util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) @@ -2292,8 +2308,8 @@ yyreduce: } break; - case 129: -#line 599 "util/configparser.y" + case 131: +#line 610 "util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2304,8 +2320,8 @@ yyreduce: } break; - case 130: -#line 609 "util/configparser.y" + case 132: +#line 620 "util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && @@ -2319,8 +2335,8 @@ yyreduce: } break; - case 131: -#line 622 "util/configparser.y" + case 133: +#line 633 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -2328,8 +2344,8 @@ yyreduce: } break; - case 132: -#line 629 "util/configparser.y" + case 134: +#line 640 "util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2348,8 +2364,8 @@ yyreduce: } break; - case 133: -#line 647 "util/configparser.y" + case 135: +#line 658 "util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2359,8 +2375,8 @@ yyreduce: } break; - case 134: -#line 656 "util/configparser.y" + case 136: +#line 667 "util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2370,8 +2386,8 @@ yyreduce: } break; - case 135: -#line 665 "util/configparser.y" + case 137: +#line 676 "util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2382,8 +2398,8 @@ yyreduce: } break; - case 136: -#line 675 "util/configparser.y" + case 138: +#line 686 "util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2394,8 +2410,8 @@ yyreduce: } break; - case 137: -#line 685 "util/configparser.y" + case 139: +#line 696 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -2403,8 +2419,8 @@ yyreduce: } break; - case 138: -#line 692 "util/configparser.y" + case 140: +#line 703 "util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size)) @@ -2413,8 +2429,8 @@ yyreduce: } break; - case 139: -#line 700 "util/configparser.y" + case 141: +#line 711 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2428,8 +2444,8 @@ yyreduce: } break; - case 140: -#line 713 "util/configparser.y" + case 142: +#line 724 "util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && @@ -2449,8 +2465,8 @@ yyreduce: } break; - case 141: -#line 732 "util/configparser.y" + case 143: +#line 743 "util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str))) @@ -2458,8 +2474,8 @@ yyreduce: } break; - case 142: -#line 739 "util/configparser.y" + case 144: +#line 750 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->stubs->name); @@ -2467,8 +2483,8 @@ yyreduce: } break; - case 143: -#line 746 "util/configparser.y" + case 145: +#line 757 "util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str))) @@ -2476,8 +2492,8 @@ yyreduce: } break; - case 144: -#line 753 "util/configparser.y" + case 146: +#line 764 "util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str))) @@ -2485,8 +2501,8 @@ yyreduce: } break; - case 145: -#line 760 "util/configparser.y" + case 147: +#line 771 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->forwards->name); @@ -2494,8 +2510,8 @@ yyreduce: } break; - case 146: -#line 767 "util/configparser.y" + case 148: +#line 778 "util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str))) @@ -2503,8 +2519,8 @@ yyreduce: } break; - case 147: -#line 774 "util/configparser.y" + case 149: +#line 785 "util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str))) @@ -2514,7 +2530,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2518 "util/configparser.c" +#line 2534 "util/configparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2728,7 +2744,7 @@ yyreturn: } -#line 780 "util/configparser.y" +#line 791 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index cd30d5a09..e8ef803dc 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -114,7 +114,8 @@ VAR_LOCAL_DATA = 330, VAR_INTERFACE_AUTOMATIC = 331, VAR_STATISTICS_INTERVAL = 332, - VAR_DO_DAEMONIZE = 333 + VAR_DO_DAEMONIZE = 333, + VAR_USE_CAPS_FOR_ID = 334 }; #endif /* Tokens. */ @@ -194,6 +195,7 @@ #define VAR_INTERFACE_AUTOMATIC 331 #define VAR_STATISTICS_INTERVAL 332 #define VAR_DO_DAEMONIZE 333 +#define VAR_USE_CAPS_FOR_ID 334 @@ -205,7 +207,7 @@ typedef union YYSTYPE char* str; } /* Line 1489 of yacc.c. */ -#line 209 "util/configparser.h" +#line 211 "util/configparser.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/util/configparser.y b/util/configparser.y index 6ec7513e4..4f77b5569 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -88,7 +88,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_OUTGOING_INTERFACE VAR_ROOT_HINTS VAR_DO_NOT_QUERY_LOCALHOST %token VAR_CACHE_MAX_TTL VAR_HARDEN_DNNSEC_STRIPPED VAR_ACCESS_CONTROL %token VAR_LOCAL_ZONE VAR_LOCAL_DATA VAR_INTERFACE_AUTOMATIC -%token VAR_STATISTICS_INTERVAL VAR_DO_DAEMONIZE +%token VAR_STATISTICS_INTERVAL VAR_DO_DAEMONIZE VAR_USE_CAPS_FOR_ID %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -128,7 +128,8 @@ content_server: server_num_threads | server_verbosity | server_port | server_do_not_query_localhost | server_cache_max_ttl | server_harden_dnssec_stripped | server_access_control | server_local_zone | server_local_data | server_interface_automatic | - server_statistics_interval | server_do_daemonize + server_statistics_interval | server_do_daemonize | + server_use_caps_for_id ; stubstart: VAR_STUB_ZONE { @@ -588,6 +589,16 @@ server_harden_dnssec_stripped: VAR_HARDEN_DNNSEC_STRIPPED STRING free($2); } ; +server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING + { + OUTYY(("P(server_use_caps_for_id:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->use_caps_bits_for_id = + (strcmp($2, "yes")==0); + free($2); + } + ; server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING { OUTYY(("P(server_do_not_query_address:%s)\n", $2)); -- 2.47.2