From: Wouter Wijngaards Date: Wed, 20 Feb 2008 07:26:03 +0000 (+0000) Subject: do-daemonize X-Git-Tag: release-0.10~36 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0627d1a43e9b0700632c6103729873fb64518580;p=thirdparty%2Funbound.git do-daemonize git-svn-id: file:///svn/unbound/trunk@972 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/example.conf b/doc/example.conf index 8047ef4cb..00da09f4f 100644 --- a/doc/example.conf +++ b/doc/example.conf @@ -121,6 +121,9 @@ server: # Enable TCP, "yes" or "no". # do-tcp: yes + # Detach from the terminal, run in background, "yes" or "no". + # do-daemonize: yes + # control which clients are allowed to make (recursive) queries # to this server. Specify classless netblocks with /size and action. # By default everything is refused, except for localhost. diff --git a/doc/unbound.conf.5 b/doc/unbound.conf.5 index 3c154627c..4e88897a2 100644 --- a/doc/unbound.conf.5 +++ b/doc/unbound.conf.5 @@ -209,6 +209,10 @@ Enable or disable whether UDP queries are answered or issued. Default is yes. .B do\-tcp: \fI Enable or disable whether TCP queries are answered or issued. Default is yes. .TP +.B do\-daemonize: \fI +Enable or disable whether the unbound server forks into the background as +a daemon. Default is yes. +.TP .B access\-control: \fI The netblock is given as an IP4 or IP6 address with /size appended for a classless network block. The action can be deny, refuse or allow. diff --git a/util/configlexer.c b/util/configlexer.c index 4937be73a..28229877c 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 88 -#define YY_END_OF_BUFFER 89 +#define YY_NUM_RULES 89 +#define YY_END_OF_BUFFER 90 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -374,91 +374,92 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[761] = +static yyconst flex_int16_t yy_accept[771] = { 0, - 1, 1, 72, 72, 76, 76, 80, 80, 84, 84, - 89, 87, 1, 70, 71, 2, 75, 88, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 72, 73, 88, 74, 88, - 76, 77, 78, 88, 83, 80, 81, 82, 88, 84, - 85, 86, 88, 87, 0, 1, 2, 2, 2, 2, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 72, 0, - 76, 0, 83, 0, 80, 84, 0, 87, 87, 87, - - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 42, - 87, 87, 87, 87, 6, 87, 87, 87, 87, 87, - - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 18, 87, 11, 12, 87, 14, 13, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 3, 87, 87, 87, 87, 87, 87, 87, 87, - - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 79, 87, 87, 87, 87, 87, 87, 87, 87, 21, - 87, 87, 87, 87, 87, 87, 22, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 54, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 53, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 19, 87, 87, 87, 87, 87, 87, - - 87, 87, 20, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 15, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 43, 44, 41, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 5, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 68, 67, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 23, 87, 87, 87, - 87, 87, 66, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 39, 87, 87, 87, 87, - - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 4, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 46, 47, 45, 87, 87, 87, 87, 52, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 58, 87, 87, 87, 87, 87, 87, 87, 29, 87, - 87, 87, 87, 87, 51, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 55, 87, 87, 87, 87, 87, - 87, 7, 87, 87, 87, 87, 87, 87, 87, 60, - - 87, 87, 87, 87, 50, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 30, 31, 87, 63, 87, 87, - 25, 87, 87, 87, 87, 8, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 64, 24, 26, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 10, 87, 87, - 87, 87, 87, 87, 9, 27, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 32, 87, 87, 87, 28, 87, 87, 56, - - 57, 87, 87, 59, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 16, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 17, 87, 69, - 36, 87, 87, 62, 48, 87, 87, 38, 37, 87, - 33, 87, 61, 87, 87, 87, 34, 87, 87, 49, - 40, 35, 87, 87, 87, 87, 87, 87, 65, 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 } ; static yyconst flex_int32_t yy_ec[256] = @@ -501,185 +502,187 @@ static yyconst flex_int32_t yy_meta[39] = 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[772] = +static yyconst flex_int16_t yy_base[782] = { 0, 0, 0, 36, 39, 43, 50, 62, 74, 55, 67, - 1571, 1557, 49, 1572, 1572, 81, 1572, 88, 32, 83, + 1591, 1577, 49, 1592, 1592, 81, 1592, 88, 32, 83, 76, 78, 60, 89, 94, 86, 87, 95, 88, 97, - 103, 104, 112, 98, 121, 1556, 1572, 1572, 1572, 57, - 1555, 1572, 1572, 116, 1554, 1564, 1572, 1572, 136, 1552, - 1572, 1572, 127, 1551, 142, 146, 0, 149, 0, 0, + 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, 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, 1550, 207, - 1549, 210, 1548, 221, 1558, 1546, 211, 209, 208, 217, - - 218, 219, 220, 221, 222, 224, 229, 230, 236, 249, - 233, 245, 226, 253, 250, 257, 189, 254, 256, 258, - 259, 261, 262, 263, 266, 267, 274, 276, 268, 272, - 278, 279, 284, 280, 288, 289, 294, 296, 299, 305, - 301, 303, 306, 307, 309, 310, 311, 312, 314, 327, - 316, 317, 324, 319, 332, 339, 335, 337, 340, 346, - 343, 344, 347, 345, 366, 350, 351, 352, 361, 353, - 355, 378, 367, 362, 373, 382, 371, 383, 385, 387, - 389, 395, 396, 400, 408, 405, 406, 393, 409, 1545, - 397, 407, 412, 414, 1544, 418, 424, 420, 422, 427, - - 423, 434, 430, 431, 433, 438, 441, 436, 443, 444, - 446, 450, 451, 456, 453, 465, 469, 466, 471, 473, - 474, 480, 477, 479, 476, 482, 483, 486, 490, 485, - 498, 499, 505, 501, 503, 508, 492, 511, 510, 512, - 514, 519, 516, 522, 520, 525, 532, 528, 533, 530, - 531, 538, 536, 542, 544, 540, 546, 550, 551, 552, - 1543, 556, 1542, 1541, 558, 1540, 1539, 564, 561, 562, - 560, 566, 570, 571, 575, 580, 581, 583, 584, 587, - 585, 596, 597, 598, 593, 589, 602, 603, 609, 605, - 611, 1538, 613, 615, 614, 616, 617, 620, 626, 624, - - 625, 627, 636, 628, 634, 638, 639, 641, 642, 643, - 644, 645, 652, 646, 661, 648, 654, 657, 655, 664, - 1537, 674, 675, 667, 671, 676, 679, 680, 682, 1536, - 686, 687, 688, 689, 690, 701, 1535, 694, 702, 703, - 697, 704, 707, 710, 708, 709, 716, 718, 720, 721, - 726, 724, 727, 725, 1534, 729, 733, 732, 735, 739, - 737, 744, 745, 746, 747, 748, 750, 752, 1533, 754, - 757, 753, 755, 775, 773, 776, 778, 771, 779, 785, - 781, 787, 788, 782, 790, 789, 793, 795, 809, 799, - 802, 806, 812, 1532, 820, 821, 822, 804, 814, 824, - - 825, 826, 1531, 829, 827, 830, 828, 833, 834, 835, - 836, 838, 840, 837, 850, 861, 863, 859, 1530, 849, - 865, 869, 866, 875, 862, 871, 873, 874, 876, 878, - 881, 884, 885, 893, 1529, 1528, 1527, 756, 886, 877, - 895, 879, 902, 897, 904, 899, 1526, 905, 906, 909, - 910, 911, 913, 914, 916, 921, 912, 920, 923, 928, - 929, 932, 934, 935, 937, 1525, 1524, 843, 938, 941, - 947, 944, 945, 949, 954, 957, 1523, 963, 959, 965, - 960, 962, 1522, 966, 972, 969, 978, 975, 967, 979, - 987, 989, 992, 994, 995, 1521, 1001, 1002, 986, 1000, - - 1008, 1004, 1005, 1006, 1007, 1009, 1011, 1013, 1014, 1016, - 1018, 1021, 1520, 1027, 1033, 1029, 1030, 1031, 1038, 1040, - 1044, 1047, 1045, 1046, 1052, 1058, 1054, 1055, 1060, 1061, - 1519, 1518, 1517, 1068, 1057, 357, 1065, 1516, 1067, 1069, - 1071, 1074, 1077, 1078, 1079, 1082, 1081, 1095, 1080, 1092, - 1096, 1099, 1084, 1090, 1103, 1106, 1107, 1100, 1108, 1114, - 1515, 1115, 1113, 1117, 1110, 1125, 1122, 1131, 1514, 1132, - 1124, 1133, 1134, 1135, 1513, 1137, 1141, 1144, 1142, 1146, - 1148, 1149, 1158, 1150, 1512, 1159, 1163, 1152, 1160, 1165, - 1166, 1511, 1173, 1167, 1174, 1176, 1179, 1178, 1180, 1510, - - 1182, 1185, 1183, 1191, 1509, 1195, 1197, 1188, 1198, 1190, - 1202, 1204, 1205, 1206, 1508, 1507, 1210, 1506, 1215, 1219, - 1505, 1221, 1227, 1223, 1216, 1504, 1225, 1226, 1212, 1232, - 1233, 1234, 1237, 1235, 1236, 1238, 1239, 1240, 1242, 1247, - 1248, 1252, 1254, 1253, 1257, 1258, 1500, 1496, 1495, 1261, - 1262, 1269, 1271, 1263, 1272, 1273, 1274, 1278, 1276, 1284, - 1286, 1285, 1287, 1294, 1288, 1295, 1298, 1494, 1296, 1300, - 1302, 1303, 1308, 1306, 1490, 1489, 1310, 1319, 1321, 1323, - 1326, 1315, 1332, 1330, 1313, 1331, 1333, 1335, 1334, 1336, - 1337, 1338, 1485, 1340, 1342, 1345, 1484, 1347, 1348, 1483, - - 1477, 1351, 1353, 1449, 1355, 1356, 1354, 1363, 1364, 1365, - 1366, 1367, 1376, 1379, 1448, 1381, 1387, 1377, 1371, 1393, - 1395, 1383, 1397, 1399, 1404, 1400, 1407, 1447, 1408, 1446, - 1445, 1411, 1412, 1442, 1441, 1396, 1369, 1440, 1437, 1414, - 1436, 1416, 1389, 1418, 1422, 1424, 1139, 1426, 1427, 591, - 493, 458, 1419, 1430, 1429, 1431, 1432, 1434, 235, 1572, - 1463, 1469, 1475, 1481, 136, 1487, 1493, 1499, 83, 1504, - 1510 + 114, 180, 185, 183, 187, 188, 195, 194, 1570, 207, + 1569, 210, 1568, 221, 1578, 1566, 211, 209, 208, 217, + + 218, 232, 220, 221, 219, 222, 226, 227, 228, 234, + 238, 243, 230, 253, 254, 260, 189, 256, 246, 247, + 258, 257, 261, 267, 264, 268, 275, 277, 279, 273, + 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 } ; -static yyconst flex_int16_t yy_def[772] = +static yyconst flex_int16_t yy_def[782] = { 0, - 760, 1, 761, 761, 762, 762, 763, 763, 764, 764, - 760, 765, 760, 760, 760, 766, 760, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 767, 760, 760, 760, 767, - 768, 760, 760, 768, 769, 760, 760, 760, 769, 770, - 760, 760, 770, 765, 765, 760, 771, 766, 771, 766, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 767, 767, - 768, 768, 769, 769, 760, 770, 770, 765, 765, 765, - - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 0, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760 + 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 } ; -static yyconst flex_int16_t yy_nxt[1611] = +static yyconst flex_int16_t yy_nxt[1631] = { 0, 12, 13, 14, 14, 15, 16, 17, 12, 12, 12, 12, 12, 18, 19, 12, 20, 21, 12, 22, 12, @@ -703,149 +706,151 @@ static yyconst flex_int16_t yy_nxt[1611] = 104, 113, 55, 55, 55, 55, 55, 55, 55, 109, 114, 118, 55, 110, 115, 55, 116, 55, 123, 55, - 55, 55, 120, 119, 117, 127, 55, 55, 153, 122, + 55, 55, 120, 119, 117, 127, 55, 55, 154, 122, 89, 89, 125, 91, 96, 96, 91, 124, 128, 126, 55, 55, 93, 129, 93, 93, 130, 93, 131, 55, - 55, 55, 55, 55, 55, 133, 55, 139, 55, 140, - 134, 55, 55, 132, 135, 55, 147, 55, 55, 141, - 136, 137, 142, 145, 138, 143, 146, 55, 149, 144, - 150, 55, 55, 148, 152, 55, 55, 151, 55, 55, - 55, 55, 154, 55, 55, 55, 157, 160, 55, 55, - 55, 163, 166, 165, 55, 161, 55, 155, 55, 156, - 55, 55, 55, 159, 158, 169, 55, 162, 167, 171, - - 55, 55, 168, 164, 174, 170, 55, 172, 55, 176, - 175, 55, 178, 55, 173, 55, 177, 55, 55, 55, - 182, 55, 55, 55, 55, 184, 55, 190, 55, 55, - 181, 55, 179, 186, 185, 180, 55, 187, 183, 55, - 194, 188, 189, 195, 55, 191, 196, 55, 192, 55, - 193, 55, 55, 200, 198, 55, 55, 55, 55, 55, - 201, 199, 55, 55, 55, 55, 197, 55, 213, 55, - 204, 574, 211, 55, 55, 202, 210, 203, 55, 55, - 205, 206, 212, 55, 214, 55, 215, 216, 217, 219, - 55, 207, 208, 209, 55, 55, 222, 55, 218, 55, - - 220, 55, 228, 226, 223, 55, 225, 55, 55, 55, - 227, 221, 55, 230, 229, 231, 224, 55, 55, 55, - 55, 55, 235, 233, 55, 234, 55, 237, 232, 236, - 55, 241, 55, 238, 55, 55, 55, 239, 240, 55, - 244, 248, 55, 55, 251, 55, 55, 245, 55, 242, - 55, 249, 243, 55, 247, 55, 55, 259, 55, 252, - 256, 253, 55, 55, 246, 55, 250, 261, 55, 255, - 55, 254, 258, 265, 257, 260, 263, 55, 55, 262, - 264, 55, 266, 55, 267, 55, 55, 269, 55, 55, - 268, 55, 55, 270, 55, 55, 271, 55, 55, 273, - - 279, 275, 55, 278, 55, 55, 276, 272, 274, 277, - 55, 55, 283, 55, 280, 55, 282, 55, 285, 284, - 55, 287, 55, 55, 55, 286, 55, 289, 55, 291, - 292, 55, 55, 290, 55, 281, 288, 55, 294, 297, - 55, 298, 55, 55, 55, 55, 295, 293, 55, 299, - 55, 296, 55, 303, 55, 301, 55, 302, 55, 304, - 300, 305, 55, 55, 55, 310, 309, 307, 55, 306, - 55, 313, 55, 55, 55, 308, 55, 314, 55, 318, - 315, 321, 55, 55, 316, 311, 312, 55, 323, 319, - 322, 317, 55, 55, 325, 55, 55, 55, 326, 55, - - 328, 55, 320, 55, 327, 55, 324, 330, 55, 55, - 55, 329, 331, 333, 55, 55, 332, 55, 334, 335, - 337, 55, 336, 55, 339, 55, 55, 55, 55, 55, - 338, 341, 55, 346, 340, 344, 55, 55, 55, 55, - 55, 343, 348, 351, 342, 345, 55, 347, 55, 350, - 55, 55, 355, 55, 55, 55, 55, 55, 55, 349, - 55, 365, 353, 352, 55, 360, 55, 55, 356, 55, - 354, 363, 361, 55, 366, 369, 55, 359, 357, 55, - 358, 370, 367, 55, 364, 368, 55, 55, 55, 362, - 371, 55, 55, 374, 55, 373, 375, 372, 55, 55, - - 55, 55, 55, 382, 379, 380, 55, 377, 383, 55, - 381, 376, 378, 55, 55, 55, 55, 385, 386, 55, - 55, 55, 55, 391, 389, 384, 387, 390, 55, 394, - 55, 392, 55, 55, 397, 388, 55, 55, 55, 55, - 402, 55, 393, 403, 55, 55, 396, 55, 399, 55, - 395, 55, 404, 398, 401, 405, 55, 55, 55, 55, - 55, 400, 55, 406, 55, 55, 55, 55, 55, 55, - 407, 480, 417, 413, 411, 408, 410, 415, 409, 414, - 420, 412, 418, 55, 416, 55, 419, 55, 55, 421, - 55, 55, 425, 55, 55, 422, 423, 55, 426, 55, - - 55, 55, 55, 427, 435, 55, 436, 55, 424, 428, - 433, 55, 432, 429, 55, 430, 55, 431, 55, 434, - 437, 55, 439, 440, 55, 445, 55, 442, 443, 444, - 438, 441, 55, 55, 55, 447, 55, 55, 55, 55, - 55, 55, 55, 451, 446, 55, 55, 55, 55, 55, - 55, 455, 55, 453, 456, 55, 448, 449, 450, 458, - 452, 55, 55, 454, 508, 457, 459, 461, 462, 460, - 463, 55, 464, 55, 55, 55, 466, 55, 55, 465, - 467, 55, 469, 55, 468, 55, 55, 55, 55, 55, - 55, 55, 470, 55, 476, 477, 55, 55, 55, 473, - - 479, 471, 478, 472, 475, 55, 483, 55, 474, 55, - 484, 55, 481, 482, 55, 485, 55, 55, 55, 486, - 487, 55, 55, 55, 55, 55, 55, 496, 55, 488, - 494, 495, 55, 55, 489, 55, 502, 490, 497, 492, - 55, 55, 493, 498, 55, 491, 55, 55, 500, 55, - 55, 499, 501, 55, 512, 513, 55, 55, 506, 55, - 507, 55, 510, 503, 511, 504, 55, 505, 509, 55, - 518, 55, 55, 515, 55, 55, 514, 55, 55, 55, - 519, 55, 517, 516, 55, 520, 525, 55, 524, 521, - 55, 55, 522, 528, 530, 526, 527, 523, 55, 55, - - 531, 55, 529, 532, 55, 533, 55, 55, 535, 536, - 534, 538, 55, 55, 55, 539, 55, 55, 55, 55, - 55, 55, 537, 55, 547, 55, 55, 540, 55, 541, - 55, 551, 548, 55, 542, 549, 543, 544, 545, 55, - 554, 55, 55, 55, 553, 55, 546, 559, 552, 556, - 55, 560, 55, 550, 562, 561, 55, 55, 55, 55, - 555, 557, 564, 558, 55, 566, 55, 55, 563, 55, - 55, 569, 55, 55, 570, 572, 575, 55, 568, 55, - 55, 55, 577, 55, 571, 573, 55, 567, 565, 55, - 55, 55, 55, 55, 55, 584, 55, 579, 576, 583, - - 580, 581, 55, 578, 55, 582, 585, 55, 55, 587, - 588, 55, 55, 590, 592, 55, 589, 586, 55, 55, - 55, 591, 55, 593, 600, 55, 55, 55, 594, 55, - 595, 596, 598, 599, 55, 597, 55, 55, 601, 604, - 602, 603, 605, 55, 55, 55, 55, 55, 606, 55, - 607, 55, 611, 55, 55, 614, 55, 615, 55, 616, - 55, 55, 55, 608, 55, 612, 609, 610, 613, 618, - 55, 55, 55, 617, 621, 55, 620, 55, 55, 55, - 619, 625, 622, 624, 626, 55, 55, 628, 55, 623, - 55, 55, 55, 629, 55, 55, 635, 55, 636, 631, - - 55, 632, 55, 55, 627, 630, 634, 55, 641, 55, - 55, 637, 638, 633, 55, 640, 55, 55, 55, 639, - 645, 643, 55, 646, 55, 644, 647, 55, 55, 642, - 648, 55, 649, 55, 650, 55, 651, 55, 55, 55, - 654, 655, 653, 652, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 664, 55, 656, 657, 658, 659, 55, - 55, 669, 662, 668, 55, 55, 55, 661, 663, 55, - 55, 665, 660, 55, 55, 55, 666, 674, 667, 670, - 675, 55, 676, 55, 55, 55, 55, 671, 55, 672, - 55, 680, 673, 677, 679, 681, 55, 55, 55, 55, - - 55, 683, 682, 684, 686, 678, 55, 55, 55, 688, - 55, 685, 55, 693, 55, 55, 689, 687, 55, 690, - 55, 697, 55, 696, 694, 55, 691, 55, 695, 705, - 692, 55, 698, 55, 700, 55, 699, 701, 55, 703, - 702, 704, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 709, 55, 707, 55, 713, 715, 55, 711, 55, - 55, 706, 708, 55, 718, 55, 55, 55, 55, 712, - 716, 714, 720, 710, 719, 55, 55, 55, 55, 55, - 722, 55, 725, 55, 717, 746, 721, 728, 55, 55, - 723, 55, 730, 55, 724, 55, 729, 727, 731, 55, - - 732, 55, 733, 726, 734, 55, 735, 55, 55, 55, - 738, 55, 55, 736, 737, 739, 55, 740, 741, 55, - 55, 742, 743, 55, 55, 747, 55, 745, 55, 744, - 55, 55, 748, 750, 55, 751, 55, 752, 55, 55, - 753, 55, 55, 55, 55, 759, 55, 749, 55, 55, - 754, 755, 55, 55, 55, 756, 757, 55, 55, 55, - 55, 55, 758, 36, 36, 36, 36, 36, 36, 41, + 55, 55, 55, 55, 55, 133, 141, 140, 55, 55, + 55, 147, 55, 132, 55, 146, 55, 142, 134, 143, + 55, 148, 144, 135, 139, 55, 145, 136, 55, 55, + 151, 149, 150, 137, 138, 55, 55, 153, 55, 55, + 55, 152, 55, 55, 155, 158, 55, 156, 157, 55, + 55, 161, 164, 162, 166, 55, 55, 55, 55, 55, + 159, 55, 160, 167, 55, 55, 173, 55, 163, 170, + + 171, 55, 55, 169, 165, 172, 55, 55, 55, 168, + 176, 179, 174, 55, 55, 175, 180, 177, 55, 178, + 55, 55, 55, 184, 55, 55, 55, 181, 186, 55, + 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, 55, 55, 55, 55, 55, 55, 55, 55, 55, @@ -853,14 +858,14 @@ static yyconst flex_int16_t yy_nxt[1611] = 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, - 760, 11, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, + 770, 11, 770, 770, 770, 770, 770, 770, 770, 770, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760 + 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 } ; -static yyconst flex_int16_t yy_chk[1611] = +static yyconst flex_int16_t yy_chk[1631] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -870,13 +875,13 @@ static yyconst flex_int16_t yy_chk[1611] = 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, 769, 16, 16, 8, 16, 21, 18, + 8, 23, 16, 779, 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, 765, 49, 35, 49, + 53, 53, 31, 35, 35, 32, 775, 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, @@ -887,158 +892,160 @@ static yyconst flex_int16_t yy_chk[1611] = 86, 117, 80, 79, 77, 86, 88, 87, 117, 82, 90, 90, 84, 92, 97, 97, 92, 83, 87, 85, 99, 98, 94, 88, 94, 94, 98, 94, 99, 100, - 101, 102, 103, 104, 105, 101, 106, 104, 113, 105, - 102, 107, 108, 100, 102, 111, 111, 759, 109, 106, - 102, 102, 107, 109, 103, 107, 110, 112, 113, 108, - 114, 110, 115, 112, 116, 114, 118, 115, 119, 116, - 120, 121, 118, 122, 123, 124, 121, 124, 125, 126, - 129, 127, 129, 128, 130, 125, 127, 119, 128, 120, - 131, 132, 134, 123, 122, 131, 133, 126, 129, 133, - - 135, 136, 130, 127, 136, 132, 137, 134, 138, 138, - 137, 139, 140, 141, 135, 142, 139, 140, 143, 144, - 144, 145, 146, 147, 148, 146, 149, 151, 151, 152, - 143, 154, 141, 148, 147, 142, 153, 149, 145, 150, - 154, 150, 150, 155, 155, 152, 156, 157, 152, 158, - 153, 156, 159, 160, 158, 161, 162, 164, 160, 163, - 161, 159, 166, 167, 168, 170, 157, 171, 169, 536, - 164, 536, 167, 169, 174, 162, 166, 163, 165, 173, - 165, 165, 168, 177, 170, 175, 171, 172, 172, 174, - 172, 165, 165, 165, 176, 178, 177, 179, 173, 180, - - 175, 181, 182, 180, 178, 188, 179, 182, 183, 191, - 181, 176, 184, 184, 183, 185, 178, 186, 187, 192, - 185, 189, 189, 187, 193, 188, 194, 192, 186, 191, - 196, 197, 198, 193, 199, 201, 197, 194, 196, 200, - 200, 202, 203, 204, 204, 205, 202, 200, 208, 198, - 206, 202, 199, 207, 201, 209, 210, 212, 211, 205, - 209, 206, 212, 213, 200, 215, 203, 214, 214, 208, - 752, 207, 211, 218, 210, 213, 216, 216, 218, 215, - 217, 217, 219, 219, 220, 220, 221, 222, 225, 223, - 221, 224, 222, 223, 226, 227, 224, 230, 228, 226, - - 230, 228, 229, 229, 237, 751, 228, 225, 227, 228, - 231, 232, 233, 234, 231, 235, 232, 233, 235, 234, - 236, 237, 239, 238, 240, 236, 241, 239, 243, 241, - 242, 242, 245, 240, 244, 231, 238, 246, 244, 247, - 248, 248, 250, 251, 247, 249, 245, 243, 253, 249, - 252, 246, 256, 253, 254, 251, 255, 252, 257, 254, - 250, 255, 258, 259, 260, 260, 259, 257, 262, 256, - 265, 268, 271, 269, 270, 258, 268, 269, 272, 270, - 269, 273, 273, 274, 269, 262, 265, 275, 275, 271, - 274, 269, 276, 277, 277, 278, 279, 281, 278, 280, - - 280, 286, 272, 750, 279, 285, 276, 282, 282, 283, - 284, 281, 283, 285, 287, 288, 284, 290, 286, 287, - 289, 289, 288, 291, 291, 293, 295, 294, 296, 297, - 290, 294, 298, 299, 293, 297, 300, 301, 299, 302, - 304, 296, 301, 304, 295, 298, 305, 300, 303, 303, - 306, 307, 308, 308, 309, 310, 311, 312, 314, 302, - 316, 316, 306, 305, 313, 313, 317, 319, 309, 318, - 307, 314, 313, 315, 317, 320, 320, 312, 310, 324, - 311, 322, 318, 325, 315, 319, 322, 323, 326, 313, - 323, 327, 328, 326, 329, 325, 327, 324, 331, 332, - - 333, 334, 335, 335, 332, 333, 338, 329, 336, 341, - 334, 328, 331, 336, 339, 340, 342, 339, 340, 343, - 345, 346, 344, 345, 343, 338, 341, 344, 347, 348, - 348, 346, 349, 350, 351, 342, 352, 354, 351, 353, - 357, 356, 347, 358, 358, 357, 350, 359, 353, 361, - 349, 360, 359, 352, 356, 360, 362, 363, 364, 365, - 366, 354, 367, 361, 368, 372, 370, 373, 438, 371, - 362, 438, 373, 368, 366, 363, 365, 371, 364, 370, - 375, 367, 374, 378, 372, 375, 374, 374, 376, 376, - 377, 379, 380, 381, 384, 377, 378, 380, 381, 382, - - 383, 386, 385, 382, 387, 387, 388, 388, 379, 383, - 385, 390, 384, 383, 391, 383, 398, 383, 392, 386, - 389, 389, 391, 392, 393, 398, 399, 395, 396, 397, - 390, 393, 395, 396, 397, 400, 400, 401, 402, 405, - 407, 404, 406, 405, 399, 408, 409, 410, 411, 414, - 412, 409, 413, 407, 410, 468, 401, 402, 404, 412, - 406, 420, 415, 408, 468, 411, 413, 415, 416, 414, - 417, 418, 418, 416, 425, 417, 421, 421, 423, 420, - 422, 422, 424, 426, 423, 427, 428, 424, 429, 440, - 430, 442, 425, 431, 431, 432, 432, 433, 439, 428, - - 434, 426, 433, 427, 430, 434, 441, 441, 429, 444, - 442, 446, 439, 440, 443, 443, 445, 448, 449, 444, - 445, 450, 451, 452, 457, 453, 454, 455, 455, 446, - 453, 454, 458, 456, 448, 459, 461, 449, 456, 451, - 460, 461, 452, 457, 462, 450, 463, 464, 459, 465, - 469, 458, 460, 470, 471, 472, 472, 473, 465, 471, - 465, 474, 470, 462, 470, 463, 475, 464, 469, 476, - 478, 479, 481, 474, 482, 478, 473, 480, 484, 489, - 479, 486, 476, 475, 485, 480, 486, 488, 485, 481, - 487, 490, 482, 489, 491, 487, 488, 484, 499, 491, - - 492, 492, 490, 493, 493, 494, 494, 495, 497, 498, - 495, 500, 500, 497, 498, 501, 502, 503, 504, 505, - 501, 506, 499, 507, 507, 508, 509, 502, 510, 502, - 511, 511, 508, 512, 502, 509, 503, 504, 505, 514, - 515, 516, 517, 518, 514, 515, 506, 520, 512, 517, - 519, 521, 520, 510, 522, 521, 521, 523, 524, 522, - 516, 518, 524, 519, 525, 526, 527, 528, 523, 535, - 526, 529, 529, 530, 530, 534, 537, 537, 528, 539, - 534, 540, 540, 541, 530, 535, 542, 527, 525, 543, - 544, 545, 549, 547, 546, 547, 553, 542, 539, 546, - - 543, 544, 554, 541, 550, 545, 548, 548, 551, 550, - 551, 552, 558, 553, 555, 555, 552, 549, 556, 557, - 559, 554, 565, 556, 563, 563, 560, 562, 557, 564, - 557, 558, 560, 562, 567, 559, 571, 566, 564, 567, - 565, 566, 568, 568, 570, 572, 573, 574, 570, 576, - 571, 747, 576, 577, 579, 579, 578, 580, 580, 581, - 581, 582, 584, 572, 588, 577, 573, 574, 578, 583, - 583, 586, 589, 582, 587, 587, 586, 590, 591, 594, - 584, 591, 588, 590, 593, 593, 595, 595, 596, 589, - 598, 597, 599, 596, 601, 603, 603, 602, 604, 598, - - 608, 599, 610, 604, 594, 597, 602, 606, 610, 607, - 609, 606, 607, 601, 611, 609, 612, 613, 614, 608, - 614, 612, 617, 617, 629, 613, 619, 619, 625, 611, - 620, 620, 622, 622, 623, 624, 624, 627, 628, 623, - 628, 629, 627, 625, 630, 631, 632, 634, 635, 633, - 636, 637, 638, 638, 639, 630, 631, 632, 633, 640, - 641, 643, 636, 642, 642, 644, 643, 635, 637, 645, - 646, 639, 634, 650, 651, 654, 640, 651, 641, 644, - 652, 652, 653, 653, 655, 656, 657, 645, 659, 646, - 658, 657, 650, 654, 656, 658, 660, 662, 661, 663, - - 665, 660, 659, 661, 663, 655, 664, 666, 669, 665, - 667, 662, 670, 671, 671, 672, 666, 664, 674, 667, - 673, 677, 677, 674, 672, 685, 669, 682, 673, 685, - 670, 678, 678, 679, 680, 680, 679, 681, 681, 683, - 682, 684, 684, 686, 683, 687, 689, 688, 690, 691, - 692, 689, 694, 687, 695, 694, 696, 696, 691, 698, - 699, 686, 688, 702, 702, 703, 707, 705, 706, 692, - 698, 695, 705, 690, 703, 708, 709, 710, 711, 712, - 707, 737, 710, 719, 699, 737, 706, 713, 713, 718, - 708, 714, 716, 716, 709, 722, 714, 712, 717, 717, - - 718, 743, 719, 711, 720, 720, 721, 721, 736, 723, - 724, 724, 726, 722, 723, 725, 725, 726, 727, 727, - 729, 729, 732, 732, 733, 740, 740, 736, 742, 733, - 744, 753, 742, 745, 745, 746, 746, 748, 748, 749, - 749, 755, 754, 756, 757, 758, 758, 744, 741, 739, - 753, 754, 738, 735, 734, 755, 756, 731, 730, 728, - 715, 704, 757, 761, 761, 761, 761, 761, 761, 762, - 762, 762, 762, 762, 762, 763, 763, 763, 763, 763, - 763, 764, 764, 764, 764, 764, 764, 766, 766, 701, - 766, 766, 766, 767, 767, 700, 697, 693, 767, 768, - - 768, 676, 675, 768, 770, 770, 668, 649, 648, 770, - 771, 771, 647, 771, 771, 771, 626, 621, 618, 616, - 615, 605, 600, 592, 585, 575, 569, 561, 538, 533, - 532, 531, 513, 496, 483, 477, 467, 466, 447, 437, - 436, 435, 419, 403, 394, 369, 355, 337, 330, 321, - 292, 267, 266, 264, 263, 261, 195, 190, 96, 95, + 101, 105, 103, 104, 106, 101, 105, 104, 107, 108, + 109, 110, 113, 100, 102, 109, 110, 106, 102, 107, + 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, + 122, 129, 123, 129, 131, 134, 134, 135, 126, 131, + + 132, 136, 133, 130, 127, 133, 140, 137, 142, 129, + 137, 140, 135, 138, 143, 136, 141, 138, 139, 139, + 144, 141, 145, 145, 146, 147, 148, 142, 147, 149, + 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, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, + 11, 770, 770, 770, 770, 770, 770, 770, 770, 770, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760 + 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 } ; static yy_state_type yy_last_accepting_state; @@ -1144,7 +1151,7 @@ static void config_end_include(void) #endif -#line 1147 "" +#line 1154 "" #define INITIAL 0 #define quotedstring 1 @@ -1301,7 +1308,7 @@ YY_DECL #line 99 "util/configlexer.lex" -#line 1304 "" +#line 1311 "" if ( !(yy_init) ) { @@ -1360,13 +1367,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 >= 761 ) + if ( yy_current_state >= 771 ) 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] != 1572 ); + while ( yy_base[yy_current_state] != 1592 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1463,311 +1470,316 @@ YY_RULE_SETUP case 15: YY_RULE_SETUP #line 114 "util/configlexer.lex" -{ YDOUT; return VAR_INTERFACE;} +{ YDOUT; return VAR_DO_DAEMONIZE;} YY_BREAK case 16: YY_RULE_SETUP #line 115 "util/configlexer.lex" -{ YDOUT; return VAR_OUTGOING_INTERFACE;} +{ YDOUT; return VAR_INTERFACE;} YY_BREAK case 17: YY_RULE_SETUP #line 116 "util/configlexer.lex" -{ YDOUT; return VAR_INTERFACE_AUTOMATIC;} +{ YDOUT; return VAR_OUTGOING_INTERFACE;} YY_BREAK case 18: YY_RULE_SETUP #line 117 "util/configlexer.lex" -{ YDOUT; return VAR_CHROOT;} +{ YDOUT; return VAR_INTERFACE_AUTOMATIC;} YY_BREAK case 19: YY_RULE_SETUP #line 118 "util/configlexer.lex" -{ YDOUT; return VAR_USERNAME;} +{ YDOUT; return VAR_CHROOT;} YY_BREAK case 20: YY_RULE_SETUP #line 119 "util/configlexer.lex" -{ YDOUT; return VAR_DIRECTORY;} +{ YDOUT; return VAR_USERNAME;} YY_BREAK case 21: YY_RULE_SETUP #line 120 "util/configlexer.lex" -{ YDOUT; return VAR_LOGFILE;} +{ YDOUT; return VAR_DIRECTORY;} YY_BREAK case 22: YY_RULE_SETUP #line 121 "util/configlexer.lex" -{ YDOUT; return VAR_PIDFILE;} +{ YDOUT; return VAR_LOGFILE;} YY_BREAK case 23: YY_RULE_SETUP #line 122 "util/configlexer.lex" -{ YDOUT; return VAR_ROOT_HINTS;} +{ YDOUT; return VAR_PIDFILE;} YY_BREAK case 24: YY_RULE_SETUP #line 123 "util/configlexer.lex" -{ YDOUT; return VAR_MSG_BUFFER_SIZE;} +{ YDOUT; return VAR_ROOT_HINTS;} YY_BREAK case 25: YY_RULE_SETUP #line 124 "util/configlexer.lex" -{ YDOUT; return VAR_MSG_CACHE_SIZE;} +{ YDOUT; return VAR_MSG_BUFFER_SIZE;} YY_BREAK case 26: YY_RULE_SETUP #line 125 "util/configlexer.lex" -{ YDOUT; return VAR_MSG_CACHE_SLABS;} +{ YDOUT; return VAR_MSG_CACHE_SIZE;} YY_BREAK case 27: YY_RULE_SETUP #line 126 "util/configlexer.lex" -{ YDOUT; return VAR_RRSET_CACHE_SIZE;} +{ YDOUT; return VAR_MSG_CACHE_SLABS;} YY_BREAK case 28: YY_RULE_SETUP #line 127 "util/configlexer.lex" -{ YDOUT; return VAR_RRSET_CACHE_SLABS;} +{ YDOUT; return VAR_RRSET_CACHE_SIZE;} YY_BREAK case 29: YY_RULE_SETUP #line 128 "util/configlexer.lex" -{ YDOUT; return VAR_CACHE_MAX_TTL;} +{ YDOUT; return VAR_RRSET_CACHE_SLABS;} YY_BREAK case 30: YY_RULE_SETUP #line 129 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_HOST_TTL;} +{ YDOUT; return VAR_CACHE_MAX_TTL;} YY_BREAK case 31: YY_RULE_SETUP #line 130 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_LAME_TTL;} +{ YDOUT; return VAR_INFRA_HOST_TTL;} YY_BREAK case 32: YY_RULE_SETUP #line 131 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_CACHE_SLABS;} +{ YDOUT; return VAR_INFRA_LAME_TTL;} YY_BREAK case 33: YY_RULE_SETUP #line 132 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_CACHE_NUMHOSTS;} +{ YDOUT; return VAR_INFRA_CACHE_SLABS;} YY_BREAK case 34: YY_RULE_SETUP #line 133 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_CACHE_LAME_SIZE;} +{ YDOUT; return VAR_INFRA_CACHE_NUMHOSTS;} YY_BREAK case 35: YY_RULE_SETUP #line 134 "util/configlexer.lex" -{ YDOUT; return VAR_NUM_QUERIES_PER_THREAD;} +{ YDOUT; return VAR_INFRA_CACHE_LAME_SIZE;} YY_BREAK case 36: YY_RULE_SETUP #line 135 "util/configlexer.lex" -{ YDOUT; return VAR_TARGET_FETCH_POLICY;} +{ YDOUT; return VAR_NUM_QUERIES_PER_THREAD;} YY_BREAK case 37: YY_RULE_SETUP #line 136 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_SHORT_BUFSIZE;} +{ YDOUT; return VAR_TARGET_FETCH_POLICY;} YY_BREAK case 38: YY_RULE_SETUP #line 137 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_LARGE_QUERIES;} +{ YDOUT; return VAR_HARDEN_SHORT_BUFSIZE;} YY_BREAK case 39: YY_RULE_SETUP #line 138 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_GLUE;} +{ YDOUT; return VAR_HARDEN_LARGE_QUERIES;} YY_BREAK case 40: YY_RULE_SETUP #line 139 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_DNNSEC_STRIPPED;} +{ YDOUT; return VAR_HARDEN_GLUE;} YY_BREAK case 41: YY_RULE_SETUP #line 140 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_ZONE;} +{ YDOUT; return VAR_HARDEN_DNNSEC_STRIPPED;} YY_BREAK case 42: YY_RULE_SETUP #line 141 "util/configlexer.lex" -{ YDOUT; return VAR_NAME;} +{ YDOUT; return VAR_STUB_ZONE;} YY_BREAK case 43: YY_RULE_SETUP #line 142 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_ADDR;} +{ YDOUT; return VAR_NAME;} YY_BREAK case 44: YY_RULE_SETUP #line 143 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_HOST;} +{ YDOUT; return VAR_STUB_ADDR;} YY_BREAK case 45: YY_RULE_SETUP #line 144 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ZONE;} +{ YDOUT; return VAR_STUB_HOST;} YY_BREAK case 46: YY_RULE_SETUP #line 145 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ADDR;} +{ YDOUT; return VAR_FORWARD_ZONE;} YY_BREAK case 47: YY_RULE_SETUP #line 146 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_HOST;} +{ YDOUT; return VAR_FORWARD_ADDR;} YY_BREAK case 48: YY_RULE_SETUP #line 147 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} +{ YDOUT; return VAR_FORWARD_HOST;} YY_BREAK case 49: YY_RULE_SETUP #line 148 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} +{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} YY_BREAK case 50: YY_RULE_SETUP #line 149 "util/configlexer.lex" -{ YDOUT; return VAR_ACCESS_CONTROL;} +{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} YY_BREAK case 51: YY_RULE_SETUP #line 150 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_IDENTITY;} +{ YDOUT; return VAR_ACCESS_CONTROL;} YY_BREAK case 52: YY_RULE_SETUP #line 151 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_VERSION;} +{ YDOUT; return VAR_HIDE_IDENTITY;} YY_BREAK case 53: YY_RULE_SETUP #line 152 "util/configlexer.lex" -{ YDOUT; return VAR_IDENTITY;} +{ YDOUT; return VAR_HIDE_VERSION;} YY_BREAK case 54: YY_RULE_SETUP #line 153 "util/configlexer.lex" -{ YDOUT; return VAR_VERSION;} +{ YDOUT; return VAR_IDENTITY;} YY_BREAK case 55: YY_RULE_SETUP #line 154 "util/configlexer.lex" -{ YDOUT; return VAR_MODULE_CONF;} +{ YDOUT; return VAR_VERSION;} YY_BREAK case 56: YY_RULE_SETUP #line 155 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} +{ YDOUT; return VAR_MODULE_CONF;} YY_BREAK case 57: YY_RULE_SETUP #line 156 "util/configlexer.lex" -{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} +{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} YY_BREAK case 58: YY_RULE_SETUP #line 157 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR;} +{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} YY_BREAK case 59: YY_RULE_SETUP #line 158 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} +{ YDOUT; return VAR_TRUST_ANCHOR;} YY_BREAK case 60: YY_RULE_SETUP #line 159 "util/configlexer.lex" -{ YDOUT; return VAR_BOGUS_TTL;} +{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} YY_BREAK case 61: YY_RULE_SETUP #line 160 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} +{ YDOUT; return VAR_BOGUS_TTL;} YY_BREAK case 62: YY_RULE_SETUP #line 161 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} +{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} YY_BREAK case 63: YY_RULE_SETUP #line 162 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SIZE;} +{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} YY_BREAK case 64: YY_RULE_SETUP #line 163 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SLABS;} +{ YDOUT; return VAR_KEY_CACHE_SIZE;} YY_BREAK case 65: YY_RULE_SETUP #line 164 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} +{ YDOUT; return VAR_KEY_CACHE_SLABS;} YY_BREAK case 66: YY_RULE_SETUP #line 165 "util/configlexer.lex" -{ YDOUT; return VAR_USE_SYSLOG;} +{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} YY_BREAK case 67: YY_RULE_SETUP #line 166 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_ZONE;} +{ YDOUT; return VAR_USE_SYSLOG;} YY_BREAK case 68: YY_RULE_SETUP #line 167 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_DATA;} +{ YDOUT; return VAR_LOCAL_ZONE;} YY_BREAK case 69: YY_RULE_SETUP #line 168 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_INTERVAL;} +{ YDOUT; return VAR_LOCAL_DATA;} YY_BREAK case 70: -/* rule 70 can match eol */ YY_RULE_SETUP #line 169 "util/configlexer.lex" +{ YDOUT; return VAR_STATISTICS_INTERVAL;} + YY_BREAK +case 71: +/* rule 71 can match eol */ +YY_RULE_SETUP +#line 170 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 71: +case 72: YY_RULE_SETUP -#line 172 "util/configlexer.lex" +#line 173 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 173 "util/configlexer.lex" +#line 174 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 72: -YY_RULE_SETUP -#line 177 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 73: -/* rule 73 can match eol */ YY_RULE_SETUP #line 178 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ 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(); } + YY_BREAK +case 75: +YY_RULE_SETUP +#line 180 "util/configlexer.lex" { LEXOUT(("QE ")); BEGIN(INITIAL); @@ -1779,32 +1791,32 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 75: +case 76: YY_RULE_SETUP -#line 190 "util/configlexer.lex" +#line 191 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 191 "util/configlexer.lex" +#line 192 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 76: -YY_RULE_SETUP -#line 195 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 77: -/* rule 77 can match eol */ YY_RULE_SETUP #line 196 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ 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(); } + YY_BREAK +case 79: +YY_RULE_SETUP +#line 198 "util/configlexer.lex" { LEXOUT(("SQE ")); BEGIN(INITIAL); @@ -1816,37 +1828,37 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 79: +case 80: YY_RULE_SETUP -#line 208 "util/configlexer.lex" +#line 209 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 209 "util/configlexer.lex" +#line 210 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(INITIAL); } YY_BREAK -case 80: -YY_RULE_SETUP -#line 213 "util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 81: -/* rule 81 can match eol */ YY_RULE_SETUP #line 214 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 82: +/* rule 82 can match eol */ YY_RULE_SETUP #line 215 "util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 83: YY_RULE_SETUP #line 216 "util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 84: +YY_RULE_SETUP +#line 217 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); @@ -1854,26 +1866,26 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 221 "util/configlexer.lex" +#line 222 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 84: -YY_RULE_SETUP -#line 225 "util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 85: -/* rule 85 can match eol */ YY_RULE_SETUP #line 226 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ 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(); } + YY_BREAK +case 87: +YY_RULE_SETUP +#line 228 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -1882,7 +1894,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 233 "util/configlexer.lex" +#line 234 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -1893,18 +1905,18 @@ case YY_STATE_EOF(INITIAL): } } YY_BREAK -case 87: +case 88: YY_RULE_SETUP -#line 243 "util/configlexer.lex" +#line 244 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); yylval.str = strdup(yytext); return STRING; } YY_BREAK -case 88: +case 89: YY_RULE_SETUP -#line 246 "util/configlexer.lex" +#line 247 "util/configlexer.lex" ECHO; YY_BREAK -#line 1907 "" +#line 1919 "" case YY_END_OF_BUFFER: { @@ -2186,7 +2198,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 >= 761 ) + if ( yy_current_state >= 771 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2214,11 +2226,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 >= 761 ) + if ( yy_current_state >= 771 ) 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 == 760); + yy_is_jam = (yy_current_state == 770); return yy_is_jam ? 0 : yy_current_state; } @@ -2851,7 +2863,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 246 "util/configlexer.lex" +#line 247 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 7059e07f6..28d8aa0c5 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -111,6 +111,7 @@ do-ip4{COLON} { YDOUT; return VAR_DO_IP4;} do-ip6{COLON} { YDOUT; return VAR_DO_IP6;} do-udp{COLON} { YDOUT; return VAR_DO_UDP;} do-tcp{COLON} { YDOUT; return VAR_DO_TCP;} +do-daemonize{COLON} { YDOUT; return VAR_DO_DAEMONIZE;} interface{COLON} { YDOUT; return VAR_INTERFACE;} outgoing-interface{COLON} { YDOUT; return VAR_OUTGOING_INTERFACE;} interface-automatic{COLON} { YDOUT; return VAR_INTERFACE_AUTOMATIC;} diff --git a/util/configparser.c b/util/configparser.c index 5729c80a7..7054ed4fa 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -140,7 +140,8 @@ VAR_LOCAL_ZONE = 329, VAR_LOCAL_DATA = 330, VAR_INTERFACE_AUTOMATIC = 331, - VAR_STATISTICS_INTERVAL = 332 + VAR_STATISTICS_INTERVAL = 332, + VAR_DO_DAEMONIZE = 333 }; #endif /* Tokens. */ @@ -219,6 +220,7 @@ #define VAR_LOCAL_DATA 330 #define VAR_INTERFACE_AUTOMATIC 331 #define VAR_STATISTICS_INTERVAL 332 +#define VAR_DO_DAEMONIZE 333 @@ -277,7 +279,7 @@ typedef union YYSTYPE char* str; } /* Line 187 of yacc.c. */ -#line 281 "util/configparser.c" +#line 283 "util/configparser.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -290,7 +292,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 294 "util/configparser.c" +#line 296 "util/configparser.c" #ifdef short # undef short @@ -505,20 +507,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 135 +#define YYLAST 137 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 78 +#define YYNTOKENS 79 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 77 +#define YYNNTS 78 /* YYNRULES -- Number of rules. */ -#define YYNRULES 145 +#define YYNRULES 147 /* YYNRULES -- Number of states. */ -#define YYNSTATES 213 +#define YYNSTATES 216 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 332 +#define YYMAXUTOK 333 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -559,7 +561,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 + 75, 76, 77, 78 }; #if YYDEBUG @@ -574,56 +576,56 @@ 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, 145, 146, 148, 150, 152, 154, 157, 158, 160, - 162, 164, 167, 170, 173, 176, 179, 182, 185, 188, - 191, 194, 197, 200, 203, 206, 209, 212, 215, 218, - 221, 224, 227, 230, 233, 236, 239, 242, 245, 248, - 251, 254, 257, 260, 263, 266, 269, 272, 275, 278, - 281, 284, 287, 290, 293, 296, 299, 302, 305, 309, - 312, 315, 318, 321, 324, 327, 330, 333, 336, 340, - 343, 346, 349, 352, 355, 358 + 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 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 79, 0, -1, -1, 79, 80, -1, 81, 82, -1, - 84, 85, -1, 87, 88, -1, 11, -1, 82, 83, - -1, -1, 90, -1, 91, -1, 93, -1, 96, -1, - 97, -1, 101, -1, 102, -1, 103, -1, 104, -1, - 94, -1, 106, -1, 107, -1, 108, -1, 109, -1, - 110, -1, 120, -1, 121, -1, 122, -1, 123, -1, - 124, -1, 98, -1, 125, -1, 126, -1, 129, -1, - 127, -1, 128, -1, 130, -1, 131, -1, 132, -1, - 135, -1, 115, -1, 116, -1, 117, -1, 118, -1, - 133, -1, 138, -1, 112, -1, 114, -1, 139, -1, - 141, -1, 142, -1, 143, -1, 99, -1, 119, -1, - 145, -1, 146, -1, 113, -1, 144, -1, 105, -1, - 95, -1, 111, -1, 136, -1, 140, -1, 134, -1, - 137, -1, 147, -1, 148, -1, 100, -1, 92, -1, - 39, -1, 85, 86, -1, -1, 149, -1, 150, -1, - 151, -1, 45, -1, 88, 89, -1, -1, 152, -1, - 153, -1, 154, -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, 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 + 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 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -635,15 +637,15 @@ static const yytype_uint16 yyrline[] = 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 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, 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, 326, 333, 340, - 347, 355, 362, 369, 377, 385, 392, 401, 410, 417, - 424, 435, 443, 456, 465, 473, 486, 495, 504, 513, - 522, 535, 542, 552, 562, 572, 582, 589, 599, 612, - 619, 637, 646, 655, 665, 675, 682, 690, 703, 722, - 729, 736, 743, 750, 757, 764 + 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 }; #endif @@ -675,17 +677,18 @@ 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", "$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", + "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_use_syslog", - "server_chroot", "server_username", "server_directory", "server_logfile", - "server_pidfile", "server_root_hints", "server_trust_anchor_file", + "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", "server_trusted_keys_file", "server_trust_anchor", "server_hide_identity", "server_hide_version", "server_identity", "server_version", "server_msg_buffer_size", "server_msg_cache_size", @@ -719,28 +722,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 + 325, 326, 327, 328, 329, 330, 331, 332, 333 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 78, 79, 79, 80, 80, 80, 81, 82, 82, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 84, - 85, 85, 86, 86, 86, 87, 88, 88, 89, 89, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 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, 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 + 149, 150, 151, 152, 153, 154, 155, 156 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -753,14 +756,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, - 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 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, 3, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 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 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -768,41 +771,41 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 7, 69, 75, 3, 9, 71, 77, + 2, 0, 1, 7, 70, 76, 3, 9, 72, 78, 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, 8, 10, 11, 68, 12, 19, 59, 13, - 14, 30, 52, 67, 15, 16, 17, 18, 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, 70, 72, 73, 74, 0, - 0, 0, 76, 78, 79, 80, 82, 81, 84, 87, - 88, 85, 92, 93, 94, 95, 97, 98, 99, 100, - 101, 111, 112, 113, 114, 115, 89, 116, 117, 120, - 118, 119, 121, 122, 123, 126, 106, 107, 108, 109, - 124, 129, 103, 105, 130, 132, 133, 134, 90, 110, - 136, 137, 104, 135, 96, 86, 102, 127, 131, 125, - 0, 0, 139, 91, 83, 140, 141, 142, 143, 144, - 145, 128, 138 + 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 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 6, 7, 10, 72, 8, 11, 135, 9, - 12, 142, 73, 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, 136, 137, 138, 143, 144, 145 + -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 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -810,28 +813,28 @@ static const yytype_int16 yydefgoto[] = #define YYPACT_NINF -13 static const yytype_int8 yypact[] = { - -13, 66, -13, -13, -13, -13, -13, -13, -13, -13, - -12, 30, 29, 16, 17, 18, 19, 23, 24, 25, - 59, 62, 63, 64, 68, 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, 96, 97, 98, 99, 100, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, -13, -13, -13, -13, -13, -13, -13, -13, + -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, -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, 118, 119, 120, -13, -13, -13, -13, 121, - 122, 123, -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, -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, - 124, 125, -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 }; /* YYPGOTO[NTERM-NUM]. */ @@ -844,7 +847,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 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -856,18 +859,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, 146, 147, 148, 149, - 39, 40, 41, 150, 151, 152, 42, 43, 44, 45, + 33, 34, 35, 36, 37, 38, 148, 149, 150, 151, + 39, 40, 41, 152, 153, 154, 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, 2, 139, 132, 153, - 133, 134, 154, 155, 156, 140, 141, 3, 157, 158, - 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, 4, 184, 185, 186, 187, - 188, 5, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212 + 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 }; static const yytype_uint8 yycheck[] = @@ -878,42 +881,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, 0, 38, 38, 10, - 40, 41, 10, 10, 10, 46, 47, 11, 10, 10, + 72, 73, 74, 75, 76, 77, 78, 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 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 79, 0, 11, 39, 45, 80, 81, 84, 87, - 82, 85, 88, 12, 13, 14, 15, 16, 17, 18, + 0, 80, 0, 11, 39, 45, 81, 82, 85, 88, + 83, 86, 89, 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, 83, 90, 91, 92, 93, 94, 95, 96, + 76, 77, 78, 84, 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, 38, 40, 41, 86, 149, 150, 151, 38, - 46, 47, 89, 152, 153, 154, 10, 10, 10, 10, + 147, 148, 149, 150, 38, 40, 41, 87, 151, 152, + 153, 38, 46, 47, 90, 154, 155, 156, 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) @@ -1734,7 +1737,7 @@ yyreduce: } break; - case 69: + case 70: #line 134 "util/configparser.y" { struct config_stub* s; @@ -1748,7 +1751,7 @@ yyreduce: } break; - case 75: + case 76: #line 150 "util/configparser.y" { struct config_stub* s; @@ -1762,7 +1765,7 @@ yyreduce: } break; - case 81: + case 82: #line 166 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1773,7 +1776,7 @@ yyreduce: } break; - case 82: + case 83: #line 175 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1784,7 +1787,7 @@ yyreduce: } break; - case 83: + case 84: #line 184 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1797,7 +1800,7 @@ yyreduce: } break; - case 84: + case 85: #line 195 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1808,7 +1811,7 @@ yyreduce: } break; - case 85: + case 86: #line 204 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1823,7 +1826,7 @@ yyreduce: } break; - case 86: + case 87: #line 217 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1840,7 +1843,7 @@ yyreduce: } break; - case 87: + case 88: #line 232 "util/configparser.y" { OUTYY(("P(server_outgoing_port:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1851,7 +1854,7 @@ yyreduce: } break; - case 88: + case 89: #line 241 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1862,7 +1865,7 @@ yyreduce: } break; - case 89: + case 90: #line 250 "util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1873,7 +1876,7 @@ yyreduce: } break; - case 90: + case 91: #line 259 "util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1884,7 +1887,7 @@ yyreduce: } break; - case 91: + case 92: #line 268 "util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1895,7 +1898,7 @@ yyreduce: } break; - case 92: + case 93: #line 277 "util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1906,7 +1909,7 @@ yyreduce: } break; - case 93: + case 94: #line 286 "util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1917,7 +1920,7 @@ yyreduce: } break; - case 94: + case 95: #line 295 "util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1928,7 +1931,7 @@ yyreduce: } break; - case 95: + case 96: #line 304 "util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1939,8 +1942,19 @@ yyreduce: } break; - case 96: + case 97: #line 313 "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) + yyerror("expected yes or no."); + else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 98: +#line 322 "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) @@ -1955,8 +1969,8 @@ yyreduce: } break; - case 97: -#line 327 "util/configparser.y" + case 99: +#line 336 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -1964,8 +1978,8 @@ yyreduce: } break; - case 98: -#line 334 "util/configparser.y" + case 100: +#line 343 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -1973,8 +1987,8 @@ yyreduce: } break; - case 99: -#line 341 "util/configparser.y" + case 101: +#line 350 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -1982,8 +1996,8 @@ yyreduce: } break; - case 100: -#line 348 "util/configparser.y" + case 102: +#line 357 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -1992,8 +2006,8 @@ yyreduce: } break; - case 101: -#line 356 "util/configparser.y" + case 103: +#line 365 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2001,8 +2015,8 @@ yyreduce: } break; - case 102: -#line 363 "util/configparser.y" + case 104: +#line 372 "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))) @@ -2010,8 +2024,8 @@ yyreduce: } break; - case 103: -#line 370 "util/configparser.y" + case 105: +#line 379 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2020,8 +2034,8 @@ yyreduce: } break; - case 104: -#line 378 "util/configparser.y" + case 106: +#line 387 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2030,8 +2044,8 @@ yyreduce: } break; - case 105: -#line 386 "util/configparser.y" + case 107: +#line 395 "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))) @@ -2039,8 +2053,8 @@ yyreduce: } break; - case 106: -#line 393 "util/configparser.y" + case 108: +#line 402 "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) @@ -2050,8 +2064,8 @@ yyreduce: } break; - case 107: -#line 402 "util/configparser.y" + case 109: +#line 411 "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) @@ -2061,8 +2075,8 @@ yyreduce: } break; - case 108: -#line 411 "util/configparser.y" + case 110: +#line 420 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2070,8 +2084,8 @@ yyreduce: } break; - case 109: -#line 418 "util/configparser.y" + case 111: +#line 427 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2079,8 +2093,8 @@ yyreduce: } break; - case 110: -#line 425 "util/configparser.y" + case 112: +#line 434 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2092,8 +2106,8 @@ yyreduce: } break; - case 111: -#line 436 "util/configparser.y" + case 113: +#line 445 "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)) @@ -2102,8 +2116,8 @@ yyreduce: } break; - case 112: -#line 444 "util/configparser.y" + case 114: +#line 453 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2117,8 +2131,8 @@ yyreduce: } break; - case 113: -#line 457 "util/configparser.y" + case 115: +#line 466 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2128,8 +2142,8 @@ yyreduce: } break; - case 114: -#line 466 "util/configparser.y" + case 116: +#line 475 "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)) @@ -2138,8 +2152,8 @@ yyreduce: } break; - case 115: -#line 474 "util/configparser.y" + case 117: +#line 483 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2153,8 +2167,8 @@ yyreduce: } break; - case 116: -#line 487 "util/configparser.y" + case 118: +#line 496 "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) @@ -2164,8 +2178,8 @@ yyreduce: } break; - case 117: -#line 496 "util/configparser.y" + case 119: +#line 505 "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) @@ -2175,8 +2189,8 @@ yyreduce: } break; - case 118: -#line 505 "util/configparser.y" + case 120: +#line 514 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2186,8 +2200,8 @@ yyreduce: } break; - case 119: -#line 514 "util/configparser.y" + case 121: +#line 523 "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-> @@ -2197,8 +2211,8 @@ yyreduce: } break; - case 120: -#line 523 "util/configparser.y" + case 122: +#line 532 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2212,8 +2226,8 @@ yyreduce: } break; - case 121: -#line 536 "util/configparser.y" + case 123: +#line 545 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -2221,8 +2235,8 @@ yyreduce: } break; - case 122: -#line 543 "util/configparser.y" + case 124: +#line 552 "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) @@ -2233,8 +2247,8 @@ yyreduce: } break; - case 123: -#line 553 "util/configparser.y" + case 125: +#line 562 "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) @@ -2245,8 +2259,8 @@ yyreduce: } break; - case 124: -#line 563 "util/configparser.y" + case 126: +#line 572 "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) @@ -2257,8 +2271,8 @@ yyreduce: } break; - case 125: -#line 573 "util/configparser.y" + case 127: +#line 582 "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) @@ -2269,8 +2283,8 @@ yyreduce: } break; - case 126: -#line 583 "util/configparser.y" + case 128: +#line 592 "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))) @@ -2278,8 +2292,8 @@ yyreduce: } break; - case 127: -#line 590 "util/configparser.y" + case 129: +#line 599 "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) @@ -2290,8 +2304,8 @@ yyreduce: } break; - case 128: -#line 600 "util/configparser.y" + case 130: +#line 609 "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 && @@ -2305,8 +2319,8 @@ yyreduce: } break; - case 129: -#line 613 "util/configparser.y" + case 131: +#line 622 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -2314,8 +2328,8 @@ yyreduce: } break; - case 130: -#line 620 "util/configparser.y" + case 132: +#line 629 "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) { @@ -2334,8 +2348,8 @@ yyreduce: } break; - case 131: -#line 638 "util/configparser.y" + case 133: +#line 647 "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) @@ -2345,8 +2359,8 @@ yyreduce: } break; - case 132: -#line 647 "util/configparser.y" + case 134: +#line 656 "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) @@ -2356,8 +2370,8 @@ yyreduce: } break; - case 133: -#line 656 "util/configparser.y" + case 135: +#line 665 "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) @@ -2368,8 +2382,8 @@ yyreduce: } break; - case 134: -#line 666 "util/configparser.y" + case 136: +#line 675 "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) @@ -2380,8 +2394,8 @@ yyreduce: } break; - case 135: -#line 676 "util/configparser.y" + case 137: +#line 685 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -2389,8 +2403,8 @@ yyreduce: } break; - case 136: -#line 683 "util/configparser.y" + case 138: +#line 692 "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)) @@ -2399,8 +2413,8 @@ yyreduce: } break; - case 137: -#line 691 "util/configparser.y" + case 139: +#line 700 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2414,8 +2428,8 @@ yyreduce: } break; - case 138: -#line 704 "util/configparser.y" + case 140: +#line 713 "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 && @@ -2435,8 +2449,8 @@ yyreduce: } break; - case 139: -#line 723 "util/configparser.y" + case 141: +#line 732 "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))) @@ -2444,8 +2458,8 @@ yyreduce: } break; - case 140: -#line 730 "util/configparser.y" + case 142: +#line 739 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->stubs->name); @@ -2453,8 +2467,8 @@ yyreduce: } break; - case 141: -#line 737 "util/configparser.y" + case 143: +#line 746 "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))) @@ -2462,8 +2476,8 @@ yyreduce: } break; - case 142: -#line 744 "util/configparser.y" + case 144: +#line 753 "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))) @@ -2471,8 +2485,8 @@ yyreduce: } break; - case 143: -#line 751 "util/configparser.y" + case 145: +#line 760 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->forwards->name); @@ -2480,8 +2494,8 @@ yyreduce: } break; - case 144: -#line 758 "util/configparser.y" + case 146: +#line 767 "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))) @@ -2489,8 +2503,8 @@ yyreduce: } break; - case 145: -#line 765 "util/configparser.y" + case 147: +#line 774 "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))) @@ -2500,7 +2514,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2504 "util/configparser.c" +#line 2518 "util/configparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2714,7 +2728,7 @@ yyreturn: } -#line 771 "util/configparser.y" +#line 780 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 5c06c2c55..cd30d5a09 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -113,7 +113,8 @@ VAR_LOCAL_ZONE = 329, VAR_LOCAL_DATA = 330, VAR_INTERFACE_AUTOMATIC = 331, - VAR_STATISTICS_INTERVAL = 332 + VAR_STATISTICS_INTERVAL = 332, + VAR_DO_DAEMONIZE = 333 }; #endif /* Tokens. */ @@ -192,6 +193,7 @@ #define VAR_LOCAL_DATA 330 #define VAR_INTERFACE_AUTOMATIC 331 #define VAR_STATISTICS_INTERVAL 332 +#define VAR_DO_DAEMONIZE 333 @@ -203,7 +205,7 @@ typedef union YYSTYPE char* str; } /* Line 1489 of yacc.c. */ -#line 207 "util/configparser.h" +#line 209 "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 ff8776f1b..6ec7513e4 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 +%token VAR_STATISTICS_INTERVAL VAR_DO_DAEMONIZE %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -128,7 +128,7 @@ 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_statistics_interval | server_do_daemonize ; stubstart: VAR_STUB_ZONE { @@ -309,6 +309,15 @@ server_do_tcp: VAR_DO_TCP STRING free($2); } ; +server_do_daemonize: VAR_DO_DAEMONIZE STRING + { + OUTYY(("P(server_do_daemonize:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->do_daemonize = (strcmp($2, "yes")==0); + free($2); + } + ; server_use_syslog: VAR_USE_SYSLOG STRING { OUTYY(("P(server_use_syslog:%s)\n", $2));