From 21cd9936d8e7f604182952ec6f427f60436cdfb5 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Wed, 27 Aug 2008 13:02:22 +0000 Subject: [PATCH] dlv negative cache size option. git-svn-id: file:///svn/unbound/trunk@1213 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 5 +- doc/example.conf.in | 4 + doc/unbound.conf.5.in | 6 + util/config_file.c | 4 + util/config_file.h | 2 + util/configlexer.c | 1298 +++++++++++++++++++++-------------------- util/configlexer.lex | 1 + util/configparser.c | 636 ++++++++++---------- util/configparser.h | 6 +- util/configparser.y | 11 +- validator/val_neg.c | 10 +- validator/val_neg.h | 11 +- validator/validator.c | 6 +- 13 files changed, 1021 insertions(+), 979 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index cebba1e6d..3af9f647c 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,8 +1,11 @@ 27 August 2008: Wouter - daemon(3) is causing problems for people. Reverting the patch. bug#200, and 199 and 203 contain sideline discussion on it. - - bug#199: pidfile can be outside chroot. openlog is done before + - bug#199 fixed: pidfile can be outside chroot. openlog is done before chroot and drop permissions. + - config option to set size of aggressive negative cache, + neg-cache-size. + - bug#203 fixed: dlv has been implemented. 26 August 2008: Wouter - test for insecure zone when DLV is in use, also does negative cache. diff --git a/doc/example.conf.in b/doc/example.conf.in index 9a5b02000..0b6d2fd00 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -307,6 +307,10 @@ server: # the number of slabs must be a power of 2. # more slabs reduce lock contention, but fragment memory usage. # key-cache-slabs: 4 + + # the amount of memory to use for the negative cache (used for DLV). + # plain value in bytes or you can append k, m or G. default is "1Mb". + # neg-cache-size: 1m # a number of locally served zones can be configured. # local-zone: diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 15a8badfe..18837da1b 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -472,6 +472,11 @@ Number of slabs in the key cache. Slabs reduce lock contention by threads. Must be set to a power of 2. Setting (close) to the number of cpus is a reasonable guess. .TP +.B neg\-cache\-size: \fI +Number of bytes size of the aggressive negative cache. Default is 1 megabyte. +A plain number is in bytes, append 'k', 'm' or 'g' for kilobytes, megabytes +or gigabytes (1024*1024 bytes in a megabyte). +.TP .B local\-zone: \fI Configure a local zone. The type determines the answer to give if there is no match from local\-data. The types are deny, refuse, static, transparent, @@ -689,6 +694,7 @@ server: infra\-cache\-lame\-size: 1k key\-cache\-size: 100k key\-cache\-slabs: 1 + neg\-cache\-size: 10k num\-queries\-per\-thread: 30 target\-fetch\-policy: "2 1 0 0 0 0" harden\-large\-queries: "yes" diff --git a/util/config_file.c b/util/config_file.c index 287b234c3..0ef6e88c7 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -144,6 +144,7 @@ config_create() cfg->val_permissive_mode = 0; cfg->key_cache_size = 4 * 1024 * 1024; cfg->key_cache_slabs = 4; + cfg->neg_cache_size = 1 * 1024 * 1024; cfg->local_zones = NULL; cfg->local_zones_nodefault = NULL; cfg->local_data = NULL; @@ -175,6 +176,7 @@ struct config_file* config_create_forlib() cfg->use_syslog = 0; cfg->key_cache_size = 1024*1024; cfg->key_cache_slabs = 1; + cfg->neg_cache_size = 100 * 1024; cfg->donotquery_localhost = 0; /* allow, so that you can ask a forward nameserver running on localhost */ return cfg; @@ -339,6 +341,8 @@ int config_set_option(struct config_file* cfg, const char* opt, } else if(strcmp(opt, "key-cache-slabs:") == 0) { IS_POW2_NUMBER; cfg->key_cache_slabs = (size_t)atoi(val); + } else if(strcmp(opt, "neg-cache-size:") == 0) { + return cfg_parse_memsize(val, &cfg->neg_cache_size); } else if(strcmp(opt, "local-data:") == 0) { return cfg_strlist_insert(&cfg->local_data, strdup(val)); } else if(strcmp(opt, "module-config:") == 0) { diff --git a/util/config_file.h b/util/config_file.h index 40fbb08f0..eaaa9ce1d 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -200,6 +200,8 @@ struct config_file { size_t key_cache_size; /** slabs in the key cache. */ size_t key_cache_slabs; + /** size of the neg cache */ + size_t neg_cache_size; /** local zones config */ struct config_str2list* local_zones; diff --git a/util/configlexer.c b/util/configlexer.c index 320e2db3a..06c04dae9 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -361,8 +361,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 94 -#define YY_END_OF_BUFFER 95 +#define YY_NUM_RULES 95 +#define YY_END_OF_BUFFER 96 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -370,99 +370,100 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[823] = +static yyconst flex_int16_t yy_accept[837] = { 0, - 1, 1, 78, 78, 82, 82, 86, 86, 90, 90, - 95, 93, 1, 76, 77, 2, 81, 94, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 78, 79, 94, 80, 94, - 82, 83, 84, 94, 89, 86, 87, 88, 94, 90, - 91, 92, 94, 93, 0, 1, 2, 2, 2, 2, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 78, - 0, 82, 0, 89, 0, 86, 90, 0, 93, 93, + 1, 1, 79, 79, 83, 83, 87, 87, 91, 91, + 96, 94, 1, 77, 78, 2, 82, 95, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 79, 80, 95, 81, 95, + 83, 84, 85, 95, 90, 87, 88, 89, 95, 91, + 92, 93, 95, 94, 0, 1, 2, 2, 2, 2, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 79, 0, 83, 0, 90, 0, 87, 91, 0, 94, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 45, 93, 93, 93, 93, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 45, 94, - 6, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 20, 93, 93, 93, 12, 13, 93, 15, 14, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, + 94, 94, 94, 94, 6, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 20, 94, 94, 94, 12, + 13, 94, 15, 14, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 93, 93, 93, 3, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 85, 93, 93, 93, 93, - 93, 93, 93, 93, 23, 93, 93, 93, 93, 93, - 93, 24, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 57, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 56, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 3, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 86, 94, 94, 94, 94, 94, 94, 94, 94, + 23, 94, 94, 94, 94, 94, 94, 94, 24, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 57, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 56, 94, 94, 94, 94, 94, 94, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 21, 93, 93, 93, 93, 93, 93, 93, - 93, 22, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 17, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 46, 47, 44, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 5, 93, - 93, 93, 59, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 73, 72, 93, 93, 93, 93, 93, 93, 93, 93, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 21, 94, 94, 94, 94, 94, 94, 94, 94, 22, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 17, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 46, 47, 44, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 5, 94, 94, + 94, 59, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 74, - 93, 25, 93, 93, 93, 93, 93, 93, 71, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 41, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 4, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 16, 93, 49, 50, 48, 93, 93, 93, 93, 55, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 63, 93, 93, 93, 93, 93, 93, + 73, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 25, 94, 94, 94, 94, 94, 94, 72, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 41, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 4, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 16, 94, 49, 50, 48, 94, 94, 94, 94, + 55, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 93, 93, 31, 93, 93, 93, 93, 93, 93, 54, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 58, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 65, 93, 93, 93, - 93, 53, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 32, 33, 93, 68, 93, 93, 27, 93, - 93, 93, 93, 93, 93, 7, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 60, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 69, - 26, 28, 93, 93, 93, 93, 93, 93, 93, 93, + 94, 94, 94, 94, 94, 63, 94, 94, 94, 94, + 94, 94, 94, 94, 31, 94, 94, 94, 94, 94, + 94, 54, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 58, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 65, + 94, 94, 94, 94, 53, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 32, 33, 94, 68, 94, + 94, 27, 94, 70, 94, 94, 94, 94, 94, 7, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 60, 94, 94, 94, 94, 94, 94, 94, - 93, 93, 93, 93, 43, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 11, 93, 93, 93, 93, 93, - 93, 10, 93, 93, 29, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 34, 93, 93, 93, 93, 93, 30, 93, - 93, 93, 61, 62, 93, 93, 64, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 18, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 19, 93, 9, 93, 93, 74, 38, - 93, 93, 67, 51, 93, 93, 40, 39, 93, 35, + 94, 94, 94, 69, 26, 28, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 43, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 11, 94, + 94, 94, 94, 94, 94, 10, 94, 94, 29, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 34, 94, 94, 94, + 94, 94, 30, 94, 94, 94, 61, 62, 94, 94, + 64, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 18, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 19, 94, 9, - 93, 8, 93, 66, 93, 93, 93, 36, 93, 75, - 93, 52, 42, 37, 93, 93, 93, 93, 93, 93, - 70, 0 + 94, 94, 75, 38, 94, 94, 67, 51, 94, 94, + 40, 39, 94, 35, 94, 8, 94, 66, 94, 94, + 94, 36, 94, 76, 94, 52, 42, 37, 94, 94, + 94, 94, 94, 94, 71, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -505,199 +506,201 @@ static yyconst flex_int32_t yy_meta[39] = 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[834] = +static yyconst flex_int16_t yy_base[848] = { 0, 0, 0, 36, 39, 43, 50, 62, 74, 55, 67, - 1695, 1681, 49, 1696, 1696, 81, 1696, 88, 32, 83, + 1723, 1709, 49, 1724, 1724, 81, 1724, 88, 32, 83, 76, 78, 60, 89, 94, 86, 95, 96, 88, 98, - 101, 105, 103, 111, 121, 1680, 1696, 1696, 1696, 57, - 1679, 1696, 1696, 123, 1678, 1688, 1696, 1696, 136, 1676, - 1696, 1696, 140, 1675, 144, 130, 0, 148, 0, 0, - 141, 143, 134, 145, 147, 154, 150, 152, 153, 155, - 158, 156, 163, 171, 165, 173, 174, 159, 179, 176, - 181, 182, 184, 187, 189, 190, 191, 192, 194, 1674, - 206, 1673, 208, 1672, 223, 1682, 1670, 213, 208, 216, + 103, 105, 114, 104, 118, 1708, 1724, 1724, 1724, 57, + 1707, 1724, 1724, 134, 1706, 1716, 1724, 1724, 138, 1704, + 1724, 1724, 142, 1703, 146, 150, 0, 153, 0, 0, + 146, 148, 141, 150, 136, 111, 152, 154, 155, 121, + 160, 156, 161, 170, 165, 173, 175, 176, 162, 183, + 177, 178, 184, 186, 189, 191, 193, 195, 196, 197, + 1702, 207, 1701, 210, 1700, 226, 1710, 1698, 214, 211, - 209, 220, 226, 227, 219, 218, 228, 229, 234, 232, - 230, 243, 250, 252, 237, 244, 254, 260, 256, 261, - 253, 262, 264, 265, 266, 268, 271, 273, 279, 280, - 282, 276, 283, 287, 289, 297, 302, 290, 293, 306, - 295, 310, 308, 317, 304, 314, 315, 318, 316, 321, - 320, 326, 325, 337, 329, 322, 330, 342, 346, 348, - 347, 349, 350, 357, 353, 355, 360, 356, 379, 361, - 362, 365, 372, 368, 370, 364, 380, 398, 384, 373, - 376, 390, 386, 397, 400, 401, 402, 413, 404, 414, - 417, 416, 419, 420, 421, 1669, 423, 425, 426, 428, + 219, 210, 221, 228, 229, 212, 231, 225, 232, 236, + 222, 241, 256, 243, 252, 237, 259, 255, 266, 267, + 263, 265, 253, 264, 268, 269, 274, 275, 278, 276, + 284, 286, 280, 287, 291, 288, 289, 299, 303, 295, + 297, 306, 308, 313, 315, 321, 307, 317, 318, 322, + 319, 324, 328, 325, 329, 341, 332, 335, 333, 342, + 345, 347, 353, 350, 355, 357, 363, 359, 351, 362, + 361, 381, 368, 367, 371, 377, 373, 378, 375, 385, + 401, 386, 387, 391, 393, 400, 403, 407, 404, 409, + 419, 411, 420, 427, 415, 423, 425, 429, 1697, 431, - 1668, 429, 436, 430, 432, 441, 434, 451, 444, 438, - 454, 457, 448, 452, 458, 460, 463, 461, 469, 468, - 473, 474, 482, 477, 484, 487, 495, 492, 494, 496, - 502, 499, 501, 498, 504, 505, 508, 512, 507, 520, - 521, 527, 523, 525, 530, 514, 533, 532, 467, 536, - 541, 515, 538, 543, 544, 552, 548, 550, 551, 553, - 555, 556, 559, 560, 568, 561, 570, 562, 569, 576, - 1667, 574, 580, 581, 1666, 1665, 582, 1664, 1663, 589, - 583, 592, 585, 586, 600, 596, 604, 593, 608, 611, - 612, 615, 613, 618, 619, 623, 624, 621, 625, 626, + 433, 434, 435, 436, 1696, 438, 448, 437, 439, 450, + 440, 460, 461, 449, 463, 452, 456, 468, 469, 471, + 470, 477, 479, 472, 481, 478, 482, 483, 494, 497, + 503, 500, 502, 504, 510, 507, 509, 487, 512, 513, + 516, 520, 515, 525, 523, 535, 531, 533, 538, 534, + 532, 540, 542, 543, 545, 555, 544, 556, 551, 557, + 564, 561, 566, 558, 567, 568, 569, 572, 574, 578, + 575, 581, 582, 584, 588, 1695, 586, 591, 593, 1694, + 1693, 594, 1692, 1691, 601, 598, 606, 597, 522, 613, + 608, 617, 619, 620, 622, 623, 626, 624, 629, 632, - 635, 628, 636, 1662, 631, 639, 642, 644, 645, 646, - 652, 648, 650, 649, 653, 655, 662, 658, 664, 663, - 668, 669, 670, 671, 672, 674, 677, 680, 678, 679, - 684, 692, 689, 694, 699, 1661, 701, 703, 704, 707, - 708, 709, 710, 711, 1660, 716, 715, 718, 717, 727, - 736, 1659, 721, 732, 734, 725, 733, 738, 739, 745, - 741, 754, 746, 756, 747, 750, 757, 758, 759, 761, - 1658, 764, 767, 770, 766, 771, 773, 772, 774, 779, - 781, 782, 784, 786, 787, 789, 1657, 790, 796, 791, - 792, 812, 813, 794, 809, 805, 815, 821, 817, 819, + 630, 634, 637, 639, 641, 640, 644, 648, 649, 1690, + 651, 600, 652, 653, 657, 654, 664, 655, 658, 671, + 662, 674, 665, 672, 678, 677, 680, 681, 683, 684, + 685, 687, 691, 693, 692, 686, 702, 704, 707, 698, + 710, 1689, 719, 721, 713, 715, 717, 723, 725, 726, + 1688, 729, 730, 732, 733, 736, 740, 747, 1687, 734, + 746, 748, 750, 752, 754, 755, 758, 756, 762, 763, + 765, 768, 769, 774, 772, 775, 773, 1686, 778, 781, + 780, 783, 785, 787, 795, 788, 790, 793, 796, 798, + 803, 801, 805, 1685, 806, 810, 807, 808, 828, 829, - 820, 824, 826, 825, 828, 831, 839, 836, 840, 841, - 844, 845, 1656, 854, 856, 858, 857, 847, 860, 861, - 862, 1655, 868, 864, 869, 870, 872, 871, 873, 877, - 876, 875, 878, 879, 885, 894, 900, 901, 897, 1654, - 888, 903, 908, 904, 914, 911, 912, 913, 915, 916, - 918, 919, 922, 933, 939, 1653, 1652, 1651, 923, 927, - 924, 935, 943, 925, 945, 937, 950, 940, 1650, 951, - 952, 953, 1649, 955, 956, 957, 962, 961, 964, 973, - 965, 963, 967, 975, 977, 983, 976, 979, 984, 985, - 1648, 1647, 990, 987, 991, 997, 1007, 993, 1001, 1003, + 821, 825, 831, 832, 838, 839, 835, 837, 842, 836, + 845, 843, 847, 863, 865, 848, 850, 866, 868, 869, + 1684, 875, 877, 878, 879, 880, 882, 883, 884, 1683, + 890, 886, 887, 852, 891, 892, 894, 895, 899, 893, + 907, 901, 897, 908, 919, 923, 920, 1682, 922, 925, + 927, 928, 935, 929, 931, 932, 933, 939, 936, 941, + 937, 943, 948, 959, 1681, 1680, 1679, 809, 944, 945, + 946, 962, 957, 963, 965, 966, 967, 1678, 971, 968, + 972, 1677, 974, 973, 977, 980, 981, 984, 983, 990, + 991, 992, 993, 996, 1003, 1000, 1001, 1002, 1004, 1676, - 1008, 1646, 1014, 1015, 1011, 1010, 1016, 1022, 1645, 1017, - 1025, 1023, 1026, 1032, 1030, 1035, 1033, 1038, 1045, 1048, - 1050, 1052, 1053, 1644, 1059, 1060, 1043, 1058, 1066, 1062, - 1063, 1064, 1065, 1068, 1069, 1071, 1072, 1074, 1076, 1079, - 1643, 1085, 1091, 1087, 1088, 1089, 1092, 1096, 1102, 1105, - 1103, 1113, 1110, 1111, 1101, 1119, 1116, 1117, 1123, 1118, - 1642, 1130, 1641, 1640, 1639, 1132, 1120, 1124, 1134, 1638, - 1135, 1138, 1140, 1142, 1144, 1145, 1143, 1146, 1147, 1159, - 1148, 1161, 1150, 1162, 1163, 1164, 1170, 1169, 1168, 1172, - 1171, 1176, 1175, 1637, 1182, 1178, 1186, 1189, 1192, 1193, + 1675, 1005, 1007, 1012, 1009, 1029, 1017, 1026, 1027, 1030, + 1028, 1674, 1036, 1034, 1032, 1033, 1035, 1038, 1673, 1042, + 1044, 1046, 1049, 1056, 1052, 1057, 1058, 1060, 1069, 1063, + 1071, 1073, 1074, 1672, 1080, 1081, 1078, 1083, 1084, 1085, + 1086, 1087, 1088, 1089, 1090, 1092, 1095, 1093, 1100, 1094, + 1097, 1671, 1108, 1115, 1109, 1116, 1111, 1117, 1120, 1126, + 1132, 1130, 1139, 1124, 1136, 1122, 1143, 1141, 1142, 1145, + 1147, 1670, 1148, 1669, 1668, 1667, 1155, 1151, 1152, 1157, + 1666, 1160, 1163, 1161, 1165, 1166, 1169, 1168, 1170, 1171, + 1184, 1172, 1185, 1186, 1187, 1189, 1174, 1193, 1200, 1196, - 1194, 1196, 1636, 1200, 1202, 1201, 1203, 1204, 1207, 1635, - 1208, 1213, 1214, 1216, 1219, 1223, 1220, 1229, 1212, 1634, - 1231, 1234, 1235, 1237, 1238, 1239, 1240, 1246, 1243, 1247, - 1249, 1251, 1250, 1252, 1257, 1258, 1633, 1259, 1263, 1270, - 1265, 1632, 1274, 1275, 1277, 1267, 1276, 1282, 1283, 1284, - 1285, 1290, 1631, 1630, 1294, 1629, 1297, 1300, 1628, 1302, - 1308, 1304, 1291, 1307, 1309, 1627, 1310, 1311, 1312, 1316, - 1318, 1319, 1320, 1322, 1317, 1324, 1325, 1327, 1626, 1334, - 1335, 1337, 1338, 1332, 1341, 1347, 1343, 1345, 1346, 1625, - 1624, 1623, 1348, 1353, 1359, 1352, 1360, 1362, 1364, 1368, + 1198, 1199, 1202, 1203, 1204, 1665, 1208, 1206, 1217, 1213, + 1205, 1220, 1225, 1227, 1664, 1228, 1231, 1229, 1219, 1232, + 1234, 1663, 1236, 1238, 1241, 1244, 1247, 1249, 1251, 1256, + 1240, 1662, 1257, 1260, 1261, 1265, 1266, 1267, 1268, 1269, + 1275, 1272, 1276, 1278, 1280, 1281, 1282, 1287, 1286, 1661, + 1288, 1292, 1293, 1304, 1660, 1303, 1305, 1308, 1300, 1310, + 1306, 1313, 1316, 1314, 1318, 1659, 1658, 1323, 1657, 1326, + 1330, 1656, 1332, 1655, 1338, 1334, 1327, 1336, 1339, 1654, + 1340, 1341, 1337, 1346, 1347, 1349, 1350, 1352, 1353, 1354, + 1355, 1356, 1653, 1359, 1364, 1366, 1367, 1369, 1371, 1377, - 1370, 1371, 1373, 1374, 1622, 1372, 1376, 1383, 1375, 1385, - 1384, 1387, 1392, 1393, 1621, 1394, 1397, 1399, 1400, 1403, - 1405, 1620, 1404, 1406, 1616, 1408, 1414, 1416, 1419, 1421, - 1424, 1425, 1431, 1428, 1430, 1429, 1432, 1435, 1436, 1437, - 1439, 1442, 1612, 1443, 1449, 1445, 1451, 1454, 1611, 1456, - 1453, 1452, 1610, 1606, 1457, 1459, 1605, 1467, 1460, 1469, - 1470, 1471, 1474, 1473, 1475, 1481, 1477, 1601, 1487, 1484, - 1488, 1491, 1495, 1496, 1492, 1500, 1502, 1497, 1505, 1513, - 1517, 1514, 1521, 1600, 1522, 1599, 1525, 1526, 1593, 1565, - 1528, 1529, 1564, 1563, 1518, 1504, 1562, 1559, 1533, 1554, + 1375, 1373, 1378, 1652, 1651, 1647, 1380, 1382, 1393, 1381, + 1386, 1401, 1388, 1404, 1390, 1398, 1408, 1409, 1643, 1396, + 1412, 1415, 1402, 1418, 1419, 1422, 1424, 1425, 1642, 1421, + 1426, 1428, 1429, 1432, 1436, 1641, 1437, 1435, 1637, 1443, + 1445, 1448, 1450, 1452, 1455, 1456, 1462, 1459, 1461, 1460, + 1463, 1466, 1467, 1468, 1470, 1473, 1636, 1474, 1480, 1476, + 1482, 1485, 1632, 1487, 1484, 1483, 1631, 1630, 1488, 1490, + 1624, 1498, 1491, 1500, 1501, 1502, 1505, 1504, 1506, 1512, + 1508, 1596, 1518, 1515, 1519, 1522, 1526, 1527, 1523, 1531, + 1533, 1528, 1536, 1544, 1548, 1545, 1552, 1595, 1553, 1594, - 1535, 1506, 1541, 1287, 1530, 1543, 1545, 1209, 1549, 917, - 1550, 606, 478, 332, 1536, 1552, 1546, 1553, 1538, 1558, - 277, 1696, 1579, 1585, 1591, 1597, 118, 1603, 1609, 1615, - 83, 1620, 1626 + 1556, 1557, 1593, 1590, 1559, 1560, 1585, 1537, 1549, 1535, + 1394, 1317, 1564, 1289, 1566, 1242, 1572, 1178, 1561, 1574, + 1576, 896, 1580, 860, 1581, 688, 489, 441, 1567, 1583, + 1577, 1584, 1569, 1589, 379, 1724, 1610, 1616, 1622, 1628, + 252, 1634, 1640, 1646, 83, 1651, 1657 } ; -static yyconst flex_int16_t yy_def[834] = +static yyconst flex_int16_t yy_def[848] = { 0, - 822, 1, 823, 823, 824, 824, 825, 825, 826, 826, - 822, 827, 822, 822, 822, 828, 822, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 829, 822, 822, 822, 829, - 830, 822, 822, 830, 831, 822, 822, 822, 831, 832, - 822, 822, 832, 827, 827, 822, 833, 828, 833, 828, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 829, - 829, 830, 830, 831, 831, 822, 832, 832, 827, 827, + 836, 1, 837, 837, 838, 838, 839, 839, 840, 840, + 836, 841, 836, 836, 836, 842, 836, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 843, 836, 836, 836, 843, + 844, 836, 836, 844, 845, 836, 836, 836, 845, 846, + 836, 836, 846, 841, 841, 836, 847, 842, 847, 842, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 843, 843, 844, 844, 845, 845, 836, 846, 846, 841, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 827, 0, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822 + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 0, 836, 836, 836, 836, + 836, 836, 836, 836, 836, 836, 836 } ; -static yyconst flex_int16_t yy_nxt[1735] = +static yyconst flex_int16_t yy_nxt[1763] = { 0, 12, 13, 14, 14, 15, 16, 17, 12, 12, 12, 12, 12, 18, 19, 12, 20, 21, 12, 22, 12, @@ -705,194 +708,197 @@ static yyconst flex_int16_t yy_nxt[1735] = 32, 33, 34, 35, 12, 12, 12, 12, 37, 38, 39, 37, 38, 39, 55, 42, 38, 61, 40, 43, 56, 40, 42, 38, 57, 44, 43, 51, 51, 52, - 90, 90, 44, 46, 47, 47, 48, 53, 38, 51, + 91, 91, 44, 46, 47, 47, 48, 53, 38, 51, 51, 52, 55, 68, 49, 46, 47, 47, 48, 53, - 38, 69, 59, 94, 59, 59, 49, 59, 55, 54, + 38, 69, 59, 95, 59, 59, 49, 59, 55, 54, 55, 54, 54, 60, 54, 55, 62, 64, 55, 65, 55, 55, 66, 63, 67, 70, 55, 55, 55, 76, - 55, 72, 73, 55, 71, 55, 85, 55, 54, 79, - 78, 74, 83, 55, 80, 75, 92, 81, 77, 92, - 82, 56, 86, 55, 88, 57, 84, 94, 89, 94, - 94, 87, 94, 97, 97, 54, 55, 54, 54, 59, - 54, 59, 59, 55, 59, 55, 99, 55, 100, 55, - 60, 104, 55, 101, 55, 55, 55, 55, 55, 107, - 55, 55, 108, 109, 102, 55, 110, 55, 113, 105, - 103, 106, 114, 55, 116, 55, 55, 115, 55, 111, - 119, 55, 112, 55, 55, 120, 55, 117, 118, 55, + 55, 72, 73, 77, 71, 55, 55, 55, 105, 80, + 79, 74, 84, 55, 81, 75, 55, 86, 78, 82, + 55, 89, 83, 55, 88, 90, 85, 93, 109, 95, + 93, 95, 95, 87, 95, 98, 98, 54, 55, 54, + 54, 56, 54, 55, 59, 57, 59, 59, 55, 59, + 55, 100, 55, 101, 55, 60, 55, 55, 55, 104, + 102, 108, 55, 55, 55, 110, 114, 55, 111, 103, + 115, 106, 55, 107, 117, 55, 116, 55, 55, 55, + 55, 112, 113, 121, 119, 55, 55, 118, 55, 122, - 125, 55, 55, 55, 55, 121, 55, 122, 129, 90, - 90, 92, 123, 124, 92, 130, 97, 97, 127, 126, - 55, 55, 128, 131, 94, 132, 94, 94, 55, 94, - 55, 55, 55, 136, 143, 134, 133, 135, 55, 55, - 55, 55, 55, 137, 55, 144, 55, 149, 138, 55, - 150, 154, 139, 142, 145, 55, 55, 146, 140, 141, - 147, 148, 55, 151, 55, 55, 55, 156, 55, 153, - 152, 155, 55, 55, 55, 157, 55, 55, 55, 158, - 55, 161, 164, 55, 159, 55, 167, 169, 55, 55, - 165, 55, 55, 160, 55, 55, 170, 163, 162, 55, + 120, 55, 127, 55, 124, 55, 123, 55, 55, 55, + 91, 91, 131, 93, 125, 126, 93, 98, 98, 132, + 129, 128, 55, 55, 55, 130, 133, 95, 134, 95, + 95, 55, 95, 55, 55, 138, 136, 55, 137, 135, + 55, 55, 146, 55, 55, 139, 144, 145, 55, 55, + 140, 150, 54, 55, 141, 55, 153, 147, 151, 148, + 142, 143, 149, 152, 55, 55, 156, 55, 55, 155, + 154, 55, 157, 158, 159, 55, 55, 55, 55, 55, + 55, 55, 160, 161, 162, 164, 55, 55, 55, 167, + 55, 170, 55, 172, 173, 163, 55, 168, 55, 55, - 173, 55, 55, 166, 175, 55, 172, 55, 168, 55, - 176, 181, 171, 174, 55, 177, 55, 178, 55, 179, - 55, 180, 55, 182, 184, 183, 55, 55, 55, 55, - 55, 188, 55, 55, 55, 185, 190, 55, 55, 187, - 196, 55, 55, 191, 55, 189, 186, 192, 193, 55, - 197, 194, 195, 198, 55, 202, 199, 201, 55, 55, - 55, 55, 55, 200, 206, 55, 204, 55, 55, 55, - 207, 205, 55, 55, 55, 209, 55, 55, 203, 220, - 55, 211, 55, 218, 55, 55, 208, 217, 55, 223, - 210, 55, 55, 212, 213, 219, 55, 224, 55, 221, + 55, 55, 165, 55, 178, 166, 169, 55, 176, 55, + 174, 55, 179, 171, 177, 55, 180, 175, 55, 55, + 55, 183, 181, 182, 184, 55, 185, 55, 187, 55, + 55, 55, 186, 55, 55, 191, 55, 55, 188, 193, + 55, 55, 190, 199, 55, 55, 195, 55, 192, 189, + 200, 194, 196, 55, 55, 197, 198, 55, 205, 55, + 206, 201, 55, 55, 202, 55, 204, 55, 203, 55, + 210, 55, 208, 55, 55, 55, 211, 213, 209, 55, + 55, 207, 212, 55, 224, 55, 215, 55, 222, 55, + 55, 55, 214, 55, 221, 216, 217, 55, 55, 55, - 228, 222, 55, 229, 214, 215, 216, 225, 226, 55, - 55, 231, 55, 55, 55, 227, 55, 235, 232, 230, - 237, 234, 238, 236, 240, 55, 55, 239, 55, 55, - 233, 55, 55, 55, 244, 55, 242, 55, 55, 241, - 55, 55, 55, 250, 55, 246, 55, 247, 55, 249, - 55, 248, 243, 55, 253, 245, 55, 259, 257, 251, - 55, 254, 252, 55, 55, 256, 55, 261, 258, 55, - 55, 263, 55, 55, 260, 55, 269, 266, 255, 55, - 55, 55, 264, 262, 271, 55, 55, 268, 302, 55, - 55, 265, 270, 267, 55, 275, 55, 273, 276, 55, + 227, 223, 228, 55, 225, 55, 218, 219, 220, 226, + 229, 230, 55, 55, 232, 55, 55, 231, 233, 55, + 239, 55, 234, 55, 236, 235, 241, 55, 238, 242, + 240, 55, 55, 243, 244, 55, 237, 55, 245, 55, + 246, 55, 248, 55, 249, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 251, 255, 252, 247, 254, 253, + 55, 55, 55, 258, 55, 250, 256, 262, 55, 257, + 259, 261, 55, 55, 264, 55, 266, 263, 267, 268, + 55, 55, 55, 55, 55, 265, 274, 260, 271, 55, + 55, 55, 276, 55, 55, 55, 275, 278, 269, 55, - 272, 274, 277, 278, 55, 279, 55, 55, 55, 281, - 55, 55, 280, 55, 55, 282, 55, 55, 283, 55, - 55, 285, 291, 287, 55, 290, 55, 55, 288, 284, - 286, 289, 55, 55, 295, 55, 292, 55, 294, 55, - 297, 296, 55, 299, 55, 55, 305, 298, 55, 301, - 55, 303, 304, 55, 306, 55, 55, 293, 300, 309, - 55, 310, 55, 55, 55, 55, 311, 55, 55, 307, - 308, 55, 55, 55, 55, 315, 316, 317, 312, 314, - 55, 55, 55, 313, 322, 318, 55, 321, 55, 323, - 319, 320, 55, 55, 55, 55, 328, 55, 55, 329, + 272, 55, 270, 273, 277, 280, 55, 279, 281, 55, + 282, 283, 55, 284, 55, 55, 55, 286, 289, 55, + 285, 55, 55, 287, 55, 55, 288, 55, 55, 290, + 296, 292, 55, 295, 55, 55, 293, 55, 291, 294, + 299, 297, 300, 55, 55, 55, 55, 55, 302, 301, + 55, 304, 55, 303, 55, 55, 55, 55, 341, 307, + 309, 305, 298, 55, 308, 306, 310, 55, 55, 55, + 55, 315, 312, 55, 316, 311, 55, 313, 55, 55, + 55, 55, 317, 314, 55, 318, 55, 55, 321, 322, + 55, 323, 320, 55, 55, 324, 55, 319, 55, 328, - 325, 55, 330, 324, 55, 55, 331, 326, 55, 333, - 327, 336, 55, 332, 334, 337, 55, 338, 55, 339, - 55, 340, 335, 55, 55, 55, 341, 55, 343, 345, - 55, 55, 342, 55, 346, 55, 55, 55, 55, 344, - 55, 347, 350, 55, 348, 351, 352, 55, 55, 354, - 349, 55, 355, 353, 55, 356, 55, 55, 55, 361, - 55, 55, 55, 359, 55, 55, 364, 55, 366, 358, - 55, 360, 357, 363, 55, 55, 55, 367, 362, 371, - 55, 55, 55, 55, 55, 365, 55, 368, 369, 55, - 55, 55, 55, 378, 370, 372, 55, 383, 375, 376, + 55, 329, 326, 55, 325, 55, 55, 327, 334, 55, + 55, 331, 55, 55, 335, 330, 363, 336, 55, 332, + 55, 337, 333, 339, 342, 55, 340, 343, 338, 55, + 344, 55, 55, 346, 55, 55, 55, 347, 55, 349, + 351, 55, 55, 348, 55, 345, 55, 352, 353, 55, + 350, 55, 55, 55, 354, 359, 55, 355, 357, 358, + 55, 55, 361, 55, 55, 55, 55, 55, 356, 55, + 55, 368, 362, 360, 55, 366, 55, 55, 365, 367, + 374, 370, 364, 55, 55, 369, 55, 373, 371, 55, + 55, 378, 55, 55, 372, 55, 55, 55, 55, 55, - 379, 55, 382, 381, 55, 373, 55, 374, 388, 377, - 387, 55, 384, 55, 385, 55, 55, 380, 389, 55, - 55, 55, 55, 55, 386, 392, 393, 55, 55, 55, - 55, 391, 397, 55, 390, 398, 395, 55, 399, 55, - 400, 394, 396, 401, 55, 55, 55, 403, 55, 404, - 55, 55, 402, 55, 405, 407, 408, 55, 55, 55, - 409, 411, 55, 410, 406, 416, 55, 413, 55, 55, - 55, 55, 412, 55, 421, 415, 55, 414, 55, 55, - 418, 422, 55, 55, 55, 55, 55, 417, 426, 420, - 425, 55, 424, 55, 55, 423, 55, 419, 55, 55, + 55, 375, 376, 55, 55, 55, 385, 379, 377, 389, + 55, 382, 383, 386, 55, 390, 55, 388, 380, 55, + 381, 394, 55, 384, 391, 55, 395, 55, 393, 55, + 387, 55, 392, 55, 399, 55, 396, 55, 55, 398, + 400, 55, 55, 397, 55, 55, 55, 404, 55, 405, + 406, 402, 55, 408, 409, 403, 401, 407, 55, 55, + 55, 411, 55, 412, 55, 410, 55, 55, 55, 419, + 55, 415, 416, 417, 55, 55, 421, 55, 418, 413, + 55, 55, 424, 414, 55, 55, 55, 55, 429, 420, + 55, 430, 55, 55, 423, 55, 426, 55, 422, 55, - 427, 55, 55, 55, 55, 428, 55, 442, 55, 438, - 434, 429, 432, 431, 430, 435, 436, 55, 433, 439, - 441, 55, 437, 440, 55, 55, 443, 55, 446, 55, - 444, 55, 55, 55, 447, 448, 55, 55, 55, 456, - 55, 449, 457, 55, 445, 450, 454, 451, 55, 452, - 458, 55, 55, 55, 453, 455, 55, 55, 461, 55, - 460, 464, 462, 465, 463, 466, 55, 459, 55, 55, - 55, 469, 55, 55, 55, 472, 55, 468, 467, 473, - 55, 55, 55, 55, 55, 55, 476, 55, 55, 55, - 55, 55, 470, 471, 480, 481, 478, 55, 475, 483, + 55, 425, 55, 428, 433, 55, 432, 55, 55, 427, + 55, 434, 431, 55, 435, 55, 436, 55, 55, 55, + 55, 55, 55, 437, 515, 446, 442, 439, 438, 440, + 444, 443, 441, 55, 450, 447, 449, 55, 445, 448, + 55, 55, 451, 55, 55, 454, 455, 55, 55, 55, + 55, 55, 456, 457, 55, 55, 452, 55, 465, 55, + 55, 453, 55, 458, 55, 463, 462, 459, 485, 460, + 469, 461, 55, 464, 466, 55, 467, 55, 55, 468, + 55, 55, 473, 470, 474, 475, 471, 55, 472, 55, + 55, 55, 55, 478, 55, 55, 55, 481, 55, 55, - 55, 474, 477, 479, 482, 484, 55, 487, 488, 55, - 489, 486, 55, 55, 491, 55, 55, 485, 490, 492, - 55, 494, 493, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 501, 502, 55, 55, 55, 55, 505, 55, - 498, 495, 496, 497, 500, 55, 504, 55, 499, 55, - 503, 55, 55, 506, 509, 55, 510, 55, 511, 512, - 507, 508, 55, 55, 55, 55, 513, 55, 55, 55, - 514, 517, 518, 55, 55, 55, 55, 55, 522, 55, - 515, 523, 525, 516, 524, 55, 520, 55, 55, 55, - 530, 55, 519, 521, 526, 55, 55, 55, 527, 55, + 476, 482, 55, 55, 55, 55, 55, 55, 55, 55, + 477, 55, 489, 55, 479, 480, 484, 487, 490, 55, + 55, 486, 491, 483, 488, 495, 496, 493, 492, 494, + 497, 55, 55, 498, 55, 55, 500, 55, 501, 55, + 55, 55, 503, 55, 55, 55, 502, 55, 55, 55, + 511, 55, 499, 55, 512, 55, 55, 55, 55, 504, + 55, 505, 506, 507, 508, 513, 514, 510, 509, 55, + 516, 55, 518, 519, 55, 55, 521, 55, 55, 55, + 55, 517, 523, 55, 55, 55, 55, 522, 520, 55, + 527, 528, 55, 55, 534, 55, 55, 524, 532, 526, - 528, 529, 55, 55, 540, 55, 534, 531, 535, 55, - 532, 536, 538, 55, 539, 55, 533, 537, 541, 55, - 55, 546, 55, 55, 542, 543, 55, 55, 55, 55, - 547, 549, 544, 545, 55, 55, 548, 55, 55, 550, - 555, 554, 55, 556, 55, 55, 551, 55, 553, 561, - 55, 552, 562, 557, 560, 55, 558, 55, 559, 563, - 55, 564, 55, 565, 55, 55, 567, 568, 566, 570, - 55, 55, 55, 571, 55, 55, 55, 55, 55, 569, - 55, 55, 579, 55, 55, 572, 55, 573, 55, 583, - 580, 55, 574, 581, 575, 576, 577, 55, 586, 55, + 525, 533, 55, 55, 55, 55, 530, 535, 55, 529, + 540, 531, 55, 55, 55, 55, 55, 55, 538, 55, + 539, 55, 536, 537, 55, 544, 546, 545, 552, 55, + 550, 541, 542, 548, 543, 549, 551, 547, 55, 55, + 55, 55, 55, 557, 55, 55, 55, 55, 55, 558, + 55, 554, 560, 556, 55, 559, 55, 553, 55, 555, + 565, 55, 561, 566, 55, 562, 567, 563, 55, 55, + 55, 572, 55, 564, 574, 55, 573, 568, 569, 571, + 570, 55, 575, 55, 576, 55, 55, 578, 579, 577, + 55, 582, 55, 55, 581, 55, 55, 55, 55, 55, - 55, 55, 585, 55, 55, 578, 584, 588, 55, 592, - 595, 582, 593, 55, 55, 55, 594, 55, 587, 589, - 596, 591, 55, 55, 590, 55, 600, 598, 55, 55, - 55, 55, 55, 597, 603, 55, 55, 599, 609, 607, - 602, 604, 55, 605, 55, 610, 55, 55, 608, 601, - 55, 612, 55, 606, 55, 55, 55, 55, 55, 55, - 55, 619, 55, 618, 623, 614, 611, 615, 616, 617, - 620, 55, 613, 55, 55, 55, 55, 627, 622, 624, - 55, 55, 55, 55, 55, 621, 628, 55, 55, 629, - 55, 630, 625, 634, 55, 626, 631, 637, 55, 636, + 55, 55, 55, 590, 55, 55, 55, 55, 583, 55, + 584, 591, 55, 594, 580, 585, 592, 586, 587, 588, + 55, 55, 598, 55, 596, 597, 589, 55, 55, 55, + 593, 595, 55, 604, 55, 600, 55, 607, 55, 605, + 599, 601, 55, 606, 55, 603, 608, 609, 55, 602, + 612, 55, 610, 55, 55, 55, 615, 55, 611, 55, + 55, 617, 619, 55, 55, 614, 621, 55, 622, 55, + 616, 618, 55, 55, 613, 55, 624, 55, 55, 620, + 55, 55, 55, 55, 55, 631, 55, 630, 626, 627, + 55, 623, 628, 625, 629, 632, 55, 55, 55, 55, - 635, 55, 632, 633, 55, 55, 55, 642, 55, 640, - 638, 641, 55, 55, 55, 55, 55, 643, 644, 55, - 55, 55, 639, 649, 55, 55, 55, 645, 55, 652, - 653, 55, 55, 646, 654, 55, 647, 650, 651, 648, - 656, 55, 657, 55, 655, 659, 55, 55, 658, 55, - 55, 55, 55, 664, 663, 55, 662, 666, 55, 55, - 668, 55, 55, 55, 55, 660, 661, 665, 670, 55, - 55, 55, 678, 672, 674, 55, 671, 55, 673, 55, - 667, 669, 55, 677, 676, 679, 55, 55, 55, 55, - 675, 680, 681, 683, 55, 55, 55, 55, 682, 55, + 635, 55, 634, 638, 636, 55, 637, 640, 55, 633, + 55, 55, 55, 641, 55, 55, 55, 55, 55, 642, + 55, 643, 647, 644, 639, 55, 648, 649, 650, 55, + 646, 55, 55, 645, 651, 652, 653, 55, 655, 55, + 55, 55, 654, 55, 55, 656, 55, 657, 55, 659, + 55, 662, 55, 55, 55, 658, 55, 665, 666, 55, + 667, 55, 663, 55, 660, 664, 661, 669, 55, 55, + 670, 672, 55, 55, 671, 668, 674, 55, 55, 55, + 55, 55, 678, 677, 55, 676, 680, 55, 55, 682, + 55, 673, 55, 55, 55, 675, 679, 684, 55, 55, - 684, 686, 55, 55, 688, 687, 55, 689, 690, 55, - 685, 691, 55, 692, 55, 693, 55, 694, 695, 55, - 55, 55, 55, 55, 55, 699, 697, 698, 55, 55, - 55, 55, 55, 705, 55, 700, 55, 55, 706, 55, - 696, 702, 703, 704, 55, 701, 55, 55, 711, 55, - 55, 709, 715, 55, 716, 55, 708, 55, 55, 55, - 55, 707, 714, 710, 55, 55, 712, 713, 721, 717, - 722, 55, 55, 725, 55, 718, 55, 719, 723, 720, - 55, 727, 55, 55, 55, 55, 55, 55, 55, 724, - 730, 731, 729, 733, 726, 55, 55, 55, 732, 55, + 55, 55, 688, 686, 55, 55, 691, 685, 687, 681, + 683, 692, 55, 690, 693, 55, 55, 55, 55, 689, + 55, 694, 55, 695, 698, 55, 55, 697, 55, 55, + 55, 696, 702, 700, 701, 55, 703, 704, 55, 55, + 699, 705, 55, 706, 55, 707, 55, 708, 55, 55, + 55, 55, 55, 55, 709, 713, 711, 712, 55, 55, + 714, 55, 55, 719, 55, 55, 55, 55, 55, 710, + 716, 55, 717, 718, 720, 715, 55, 725, 55, 55, + 723, 55, 729, 55, 730, 55, 722, 55, 724, 55, + 55, 721, 55, 55, 55, 726, 727, 735, 55, 728, - 734, 735, 736, 728, 55, 55, 55, 737, 738, 55, - 743, 55, 55, 739, 740, 55, 55, 55, 55, 749, - 55, 744, 746, 745, 741, 747, 55, 742, 55, 751, - 748, 55, 753, 55, 752, 754, 55, 55, 756, 757, - 55, 55, 55, 55, 55, 750, 758, 55, 55, 55, - 755, 55, 760, 762, 55, 55, 768, 55, 766, 759, - 764, 55, 761, 55, 55, 55, 55, 769, 55, 55, - 774, 55, 55, 765, 763, 770, 772, 771, 767, 55, - 775, 55, 55, 55, 776, 55, 55, 55, 773, 55, - 777, 781, 784, 55, 785, 778, 55, 779, 786, 55, + 55, 731, 55, 732, 736, 55, 55, 737, 55, 733, + 55, 734, 739, 55, 55, 738, 55, 741, 740, 743, + 55, 55, 746, 742, 55, 744, 745, 55, 749, 747, + 55, 55, 748, 55, 55, 750, 55, 55, 55, 757, + 55, 55, 751, 752, 55, 753, 754, 55, 55, 55, + 758, 755, 759, 760, 763, 55, 756, 55, 761, 762, + 55, 765, 55, 767, 55, 766, 768, 55, 55, 770, + 771, 55, 55, 55, 55, 55, 764, 772, 55, 55, + 55, 769, 55, 774, 776, 55, 55, 782, 55, 780, + 773, 778, 55, 775, 55, 55, 55, 55, 783, 55, - 55, 780, 789, 55, 55, 783, 790, 55, 55, 55, - 782, 793, 55, 794, 55, 787, 55, 55, 55, 791, - 807, 788, 796, 792, 797, 55, 55, 795, 798, 55, - 55, 799, 800, 55, 55, 801, 802, 55, 55, 804, - 55, 55, 55, 803, 808, 55, 805, 55, 55, 806, - 55, 809, 810, 55, 812, 55, 813, 55, 55, 811, - 814, 55, 55, 815, 55, 55, 55, 816, 820, 821, - 55, 55, 818, 817, 55, 55, 55, 55, 819, 36, - 36, 36, 36, 36, 36, 41, 41, 41, 41, 41, - 41, 45, 45, 45, 45, 45, 45, 50, 50, 50, + 55, 788, 55, 55, 779, 777, 784, 786, 785, 781, + 55, 789, 55, 55, 55, 790, 55, 55, 55, 787, + 55, 791, 795, 798, 55, 799, 792, 55, 793, 800, + 55, 55, 794, 803, 55, 55, 797, 804, 55, 55, + 55, 796, 807, 55, 808, 55, 801, 55, 55, 55, + 805, 821, 802, 810, 806, 811, 55, 55, 809, 812, + 55, 55, 813, 814, 55, 55, 815, 816, 55, 55, + 818, 55, 55, 55, 817, 822, 55, 819, 55, 55, + 820, 55, 823, 824, 55, 826, 55, 827, 55, 55, + 825, 828, 55, 55, 829, 55, 55, 55, 830, 834, - 50, 50, 50, 58, 58, 55, 58, 58, 58, 90, - 90, 55, 55, 55, 90, 92, 92, 55, 55, 92, - 97, 97, 55, 55, 55, 97, 59, 59, 55, 59, - 59, 59, 55, 55, 55, 55, 55, 55, 55, 55, + 835, 55, 55, 832, 831, 55, 55, 55, 55, 833, + 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, + 91, 91, 55, 55, 55, 91, 93, 93, 55, 55, + 93, 98, 98, 55, 55, 55, 98, 59, 59, 55, + 59, 59, 59, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 98, 96, 95, 93, 91, 55, 98, 96, - 95, 93, 91, 55, 822, 11, 822, 822, 822, 822, - 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 822 + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 99, 97, 96, 94, 92, 55, 99, 97, 96, 94, + 92, 55, 836, 11, 836, 836, 836, 836, 836, 836, + 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, + 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, + 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, + 836, 836 } ; -static yyconst flex_int16_t yy_chk[1735] = +static yyconst flex_int16_t yy_chk[1763] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -902,189 +908,192 @@ static yyconst flex_int16_t yy_chk[1735] = 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, 831, 16, 16, 8, 16, 21, 18, + 8, 23, 16, 845, 16, 16, 8, 16, 21, 18, 22, 18, 18, 16, 18, 20, 20, 21, 26, 21, 29, 24, 21, 20, 22, 24, 25, 27, 28, 28, - 30, 25, 26, 31, 24, 33, 33, 32, 827, 30, - 29, 27, 32, 34, 30, 27, 44, 31, 28, 44, - 31, 56, 33, 35, 35, 56, 32, 49, 35, 49, - 49, 34, 49, 53, 53, 55, 63, 55, 55, 58, - 55, 58, 58, 61, 58, 62, 61, 64, 62, 65, - 58, 66, 67, 63, 68, 69, 66, 70, 72, 69, - 71, 78, 70, 71, 64, 73, 71, 75, 73, 67, - 65, 68, 73, 74, 75, 76, 77, 74, 80, 71, - 78, 79, 72, 81, 82, 79, 83, 76, 77, 84, + 30, 25, 26, 28, 24, 31, 34, 32, 66, 30, + 29, 27, 32, 66, 30, 27, 33, 33, 28, 31, + 35, 35, 31, 70, 34, 35, 32, 44, 70, 49, + 44, 49, 49, 33, 49, 53, 53, 55, 65, 55, + 55, 56, 55, 63, 58, 56, 58, 58, 61, 58, + 62, 61, 64, 62, 67, 58, 68, 69, 72, 65, + 63, 69, 71, 73, 79, 71, 73, 75, 71, 64, + 73, 67, 74, 68, 75, 76, 74, 77, 78, 81, + 82, 71, 72, 79, 77, 80, 83, 76, 84, 80, - 84, 85, 86, 87, 88, 80, 89, 81, 87, 91, - 91, 93, 82, 83, 93, 88, 98, 98, 85, 84, - 99, 101, 86, 89, 95, 99, 95, 95, 100, 95, - 106, 105, 102, 103, 106, 101, 100, 102, 103, 104, - 107, 108, 111, 104, 110, 107, 109, 111, 104, 115, - 112, 116, 104, 105, 108, 112, 116, 109, 104, 104, - 109, 110, 113, 113, 114, 121, 117, 118, 119, 115, - 114, 117, 118, 120, 122, 119, 123, 124, 125, 120, - 126, 123, 126, 127, 121, 128, 129, 130, 132, 821, - 127, 129, 130, 122, 131, 133, 131, 125, 124, 134, + 78, 85, 85, 86, 82, 87, 81, 88, 89, 90, + 92, 92, 88, 94, 83, 84, 94, 99, 99, 89, + 86, 85, 102, 100, 106, 87, 90, 96, 100, 96, + 96, 101, 96, 103, 111, 104, 102, 108, 103, 101, + 104, 105, 108, 107, 109, 105, 106, 107, 110, 116, + 105, 111, 841, 112, 105, 114, 114, 109, 112, 110, + 105, 105, 110, 113, 115, 123, 117, 118, 113, 116, + 115, 117, 118, 119, 120, 121, 124, 122, 119, 120, + 125, 126, 121, 122, 123, 125, 127, 128, 130, 128, + 129, 131, 133, 132, 133, 124, 131, 129, 132, 134, - 133, 135, 138, 128, 135, 139, 132, 141, 129, 136, - 136, 141, 131, 134, 137, 137, 145, 138, 140, 139, - 143, 140, 142, 142, 144, 143, 146, 147, 149, 144, - 148, 148, 151, 150, 156, 145, 150, 153, 152, 147, - 155, 155, 157, 151, 814, 149, 146, 152, 153, 154, - 156, 154, 154, 156, 158, 160, 157, 159, 159, 161, - 160, 162, 163, 158, 164, 165, 162, 166, 168, 164, - 165, 163, 167, 170, 171, 167, 176, 172, 161, 173, - 174, 168, 175, 171, 173, 180, 166, 170, 181, 176, - 167, 169, 177, 169, 169, 172, 179, 177, 183, 174, + 136, 137, 126, 135, 137, 127, 130, 140, 135, 141, + 133, 138, 138, 131, 136, 139, 139, 134, 142, 147, + 143, 142, 140, 141, 143, 144, 144, 145, 146, 148, + 149, 151, 145, 146, 150, 150, 152, 154, 147, 152, + 153, 155, 149, 157, 157, 159, 154, 158, 151, 148, + 158, 153, 155, 156, 160, 156, 156, 161, 162, 162, + 163, 159, 164, 169, 159, 163, 161, 165, 160, 166, + 167, 168, 165, 171, 170, 167, 168, 170, 166, 174, + 173, 164, 169, 175, 176, 177, 171, 179, 174, 176, + 178, 835, 170, 172, 173, 172, 172, 180, 182, 183, - 180, 175, 182, 181, 169, 169, 169, 178, 178, 184, - 178, 183, 185, 186, 187, 179, 189, 186, 184, 182, - 188, 185, 189, 187, 191, 188, 190, 190, 192, 191, - 184, 193, 194, 195, 195, 197, 193, 198, 199, 192, - 200, 202, 204, 203, 205, 198, 207, 199, 203, 202, - 210, 200, 194, 206, 206, 197, 209, 209, 208, 204, - 213, 206, 205, 208, 214, 207, 211, 211, 208, 212, - 215, 213, 216, 218, 210, 217, 219, 216, 206, 249, - 220, 219, 214, 212, 221, 221, 222, 218, 249, 224, - 813, 215, 220, 217, 223, 225, 225, 223, 226, 226, + 179, 175, 180, 184, 177, 185, 172, 172, 172, 178, + 181, 181, 186, 181, 183, 187, 189, 182, 184, 188, + 189, 190, 185, 192, 187, 186, 191, 195, 188, 192, + 190, 191, 193, 193, 194, 196, 187, 197, 195, 194, + 196, 198, 198, 200, 200, 201, 202, 203, 204, 208, + 206, 209, 211, 828, 202, 207, 203, 197, 206, 204, + 207, 214, 210, 210, 216, 201, 208, 212, 217, 209, + 210, 211, 212, 213, 213, 215, 215, 212, 216, 217, + 218, 219, 221, 220, 224, 214, 223, 210, 220, 222, + 226, 223, 225, 225, 227, 228, 224, 227, 218, 238, - 222, 224, 227, 228, 228, 229, 229, 227, 230, 231, - 234, 232, 230, 233, 231, 232, 235, 236, 233, 239, - 237, 235, 239, 237, 238, 238, 246, 252, 237, 234, - 236, 237, 240, 241, 242, 243, 240, 244, 241, 242, - 244, 243, 245, 246, 248, 247, 252, 245, 250, 248, - 253, 250, 251, 251, 253, 254, 255, 240, 247, 256, - 257, 257, 258, 259, 256, 260, 258, 261, 262, 254, - 255, 263, 264, 266, 268, 262, 263, 264, 259, 261, - 265, 269, 267, 260, 269, 265, 272, 268, 270, 270, - 266, 267, 273, 274, 277, 281, 280, 283, 284, 281, + 221, 827, 219, 222, 226, 229, 229, 228, 230, 230, + 231, 232, 232, 233, 233, 231, 234, 235, 238, 236, + 234, 237, 235, 236, 239, 240, 237, 243, 241, 239, + 243, 241, 242, 242, 289, 245, 241, 244, 240, 241, + 245, 244, 246, 247, 251, 248, 250, 246, 248, 247, + 249, 250, 252, 249, 253, 254, 257, 255, 289, 253, + 255, 251, 244, 259, 254, 252, 256, 256, 258, 260, + 264, 261, 258, 262, 262, 257, 261, 259, 263, 265, + 266, 267, 263, 260, 268, 264, 269, 271, 267, 268, + 270, 269, 266, 272, 273, 270, 274, 265, 277, 274, - 273, 280, 281, 272, 282, 288, 281, 274, 286, 282, - 277, 285, 285, 281, 283, 286, 287, 287, 812, 288, - 289, 289, 284, 290, 291, 293, 290, 292, 292, 294, - 294, 295, 291, 298, 295, 296, 297, 299, 300, 293, - 302, 296, 299, 305, 297, 300, 301, 301, 303, 303, - 298, 306, 305, 302, 307, 306, 308, 309, 310, 311, - 312, 314, 313, 309, 311, 315, 314, 316, 316, 308, - 318, 310, 307, 313, 317, 320, 319, 317, 312, 321, - 321, 322, 323, 324, 325, 315, 326, 318, 319, 327, - 329, 330, 328, 328, 320, 322, 331, 331, 325, 326, + 275, 275, 272, 278, 271, 279, 282, 273, 285, 288, + 286, 278, 312, 285, 286, 277, 312, 286, 287, 279, + 291, 286, 282, 287, 290, 290, 288, 291, 286, 292, + 292, 293, 294, 294, 295, 296, 298, 295, 297, 297, + 299, 299, 301, 296, 300, 293, 302, 300, 301, 303, + 298, 304, 306, 305, 302, 307, 307, 303, 305, 306, + 308, 309, 309, 311, 313, 314, 316, 318, 304, 315, + 319, 317, 311, 308, 321, 315, 317, 323, 314, 316, + 323, 319, 313, 320, 324, 318, 322, 322, 320, 326, + 325, 327, 327, 328, 321, 329, 330, 331, 336, 332, - 328, 333, 330, 329, 332, 323, 334, 324, 337, 327, - 335, 335, 332, 337, 333, 338, 339, 328, 338, 340, - 341, 342, 343, 344, 334, 341, 342, 347, 346, 349, - 348, 340, 347, 353, 339, 348, 344, 356, 349, 350, - 350, 343, 346, 351, 354, 357, 355, 354, 351, 355, - 358, 359, 353, 361, 356, 358, 359, 360, 363, 365, - 360, 362, 366, 361, 357, 367, 362, 364, 364, 367, - 368, 369, 363, 370, 373, 366, 372, 365, 375, 373, - 369, 374, 374, 376, 378, 377, 379, 368, 378, 372, - 377, 380, 376, 381, 382, 375, 383, 370, 384, 385, + 826, 324, 325, 333, 335, 334, 334, 328, 326, 336, + 340, 331, 332, 334, 337, 337, 338, 335, 329, 339, + 330, 341, 341, 333, 338, 345, 343, 346, 340, 347, + 334, 343, 339, 344, 347, 348, 344, 349, 350, 346, + 348, 352, 353, 345, 354, 355, 360, 353, 356, 354, + 355, 350, 357, 357, 358, 352, 349, 356, 361, 358, + 362, 361, 363, 362, 364, 360, 365, 366, 368, 369, + 367, 365, 366, 367, 369, 370, 371, 371, 368, 363, + 372, 373, 374, 364, 375, 377, 374, 376, 380, 370, + 379, 381, 381, 380, 373, 382, 376, 383, 372, 384, - 379, 386, 388, 390, 391, 380, 394, 394, 389, 391, - 386, 381, 384, 383, 382, 388, 389, 396, 385, 392, - 393, 395, 390, 392, 392, 393, 395, 397, 398, 399, - 396, 400, 401, 398, 399, 400, 402, 404, 403, 405, - 405, 401, 406, 406, 397, 401, 403, 401, 408, 401, - 407, 407, 409, 410, 402, 404, 411, 412, 410, 418, - 409, 414, 411, 415, 412, 416, 414, 408, 415, 417, - 416, 419, 419, 420, 421, 423, 424, 418, 417, 423, - 423, 425, 426, 428, 427, 429, 426, 432, 431, 430, - 433, 434, 420, 421, 430, 431, 428, 435, 425, 433, + 386, 375, 387, 379, 384, 388, 383, 385, 389, 377, + 390, 385, 382, 392, 386, 391, 387, 393, 395, 397, + 398, 468, 396, 388, 468, 398, 393, 390, 389, 391, + 396, 395, 392, 401, 401, 399, 400, 402, 397, 399, + 399, 400, 402, 403, 404, 405, 406, 407, 410, 408, + 405, 406, 407, 408, 409, 412, 403, 411, 413, 413, + 416, 404, 417, 409, 434, 411, 410, 409, 434, 409, + 417, 409, 824, 412, 414, 414, 415, 415, 418, 416, + 419, 420, 422, 418, 423, 424, 419, 422, 420, 423, + 424, 425, 426, 427, 427, 428, 429, 431, 432, 433, - 441, 424, 427, 429, 432, 434, 436, 437, 438, 439, - 439, 436, 437, 438, 442, 442, 444, 435, 441, 443, - 443, 445, 444, 446, 447, 448, 445, 449, 450, 810, - 451, 452, 452, 453, 453, 459, 461, 464, 459, 460, - 449, 446, 447, 448, 451, 454, 455, 462, 450, 466, - 454, 455, 468, 460, 463, 463, 464, 465, 465, 466, - 461, 462, 467, 470, 471, 472, 467, 474, 475, 476, - 468, 472, 474, 478, 477, 482, 479, 481, 478, 483, - 470, 479, 481, 471, 480, 480, 476, 484, 487, 485, - 486, 488, 475, 477, 482, 486, 489, 490, 483, 494, + 425, 431, 431, 435, 436, 440, 437, 438, 822, 443, + 426, 439, 438, 442, 428, 429, 433, 436, 439, 441, + 444, 435, 440, 432, 437, 444, 445, 442, 441, 443, + 446, 445, 447, 447, 449, 446, 450, 450, 451, 451, + 452, 454, 453, 455, 456, 457, 452, 453, 459, 461, + 461, 458, 449, 460, 462, 462, 469, 470, 471, 454, + 463, 455, 456, 457, 458, 463, 464, 460, 459, 473, + 469, 464, 471, 472, 472, 474, 474, 475, 476, 477, + 480, 470, 476, 479, 481, 484, 483, 475, 473, 485, + 481, 483, 486, 487, 489, 489, 488, 477, 487, 480, - 484, 485, 493, 495, 496, 498, 490, 487, 490, 496, - 488, 493, 495, 499, 495, 500, 489, 494, 497, 497, - 501, 503, 506, 505, 498, 499, 503, 504, 507, 510, - 504, 505, 500, 501, 508, 512, 504, 511, 513, 506, - 512, 511, 515, 513, 514, 517, 507, 516, 510, 518, - 518, 508, 519, 514, 517, 527, 515, 519, 516, 520, - 520, 521, 521, 522, 522, 523, 525, 526, 523, 528, - 528, 525, 526, 529, 530, 531, 532, 533, 529, 527, - 534, 535, 535, 536, 537, 530, 538, 530, 539, 539, - 536, 540, 530, 537, 531, 532, 533, 542, 543, 544, + 479, 488, 490, 491, 492, 493, 485, 490, 494, 484, + 495, 486, 496, 497, 498, 495, 499, 502, 493, 503, + 494, 505, 491, 492, 504, 499, 502, 499, 507, 507, + 505, 496, 497, 504, 498, 504, 506, 503, 508, 509, + 511, 506, 510, 513, 515, 516, 514, 517, 513, 514, + 518, 509, 515, 511, 520, 514, 521, 508, 522, 510, + 521, 523, 516, 522, 525, 517, 523, 518, 524, 526, + 527, 528, 528, 520, 530, 530, 529, 524, 525, 527, + 526, 529, 531, 531, 532, 532, 533, 535, 536, 533, + 537, 539, 535, 536, 538, 538, 539, 540, 541, 542, - 545, 546, 542, 543, 547, 534, 540, 545, 548, 549, - 551, 538, 550, 555, 549, 551, 550, 550, 544, 546, - 552, 548, 553, 554, 547, 552, 556, 554, 557, 558, - 560, 556, 567, 553, 559, 559, 568, 555, 568, 566, - 558, 560, 562, 562, 566, 569, 569, 571, 567, 557, - 572, 572, 573, 562, 574, 577, 575, 576, 578, 579, - 581, 579, 583, 578, 583, 574, 571, 575, 576, 577, - 580, 580, 573, 582, 584, 585, 586, 587, 582, 584, - 589, 588, 587, 591, 590, 581, 588, 593, 592, 589, - 596, 589, 585, 593, 595, 586, 590, 597, 597, 596, + 543, 544, 545, 545, 546, 548, 550, 547, 540, 551, + 540, 546, 549, 549, 537, 540, 547, 541, 542, 543, + 553, 555, 554, 557, 551, 553, 544, 554, 556, 558, + 548, 550, 559, 560, 566, 556, 564, 562, 560, 561, + 555, 557, 562, 561, 561, 559, 563, 564, 565, 558, + 567, 563, 565, 568, 569, 567, 570, 570, 566, 571, + 573, 573, 577, 578, 579, 569, 579, 577, 580, 580, + 571, 573, 582, 584, 568, 583, 583, 585, 586, 578, + 588, 587, 589, 590, 592, 590, 597, 589, 585, 586, + 818, 582, 587, 584, 588, 591, 591, 593, 594, 595, - 595, 598, 591, 592, 599, 600, 601, 602, 602, 600, - 598, 601, 604, 606, 605, 607, 608, 604, 605, 609, - 611, 808, 599, 611, 619, 612, 613, 606, 614, 614, - 615, 615, 617, 607, 616, 616, 608, 612, 613, 609, - 618, 618, 619, 621, 617, 622, 622, 623, 621, 624, - 625, 626, 627, 627, 626, 629, 625, 628, 628, 630, - 630, 631, 633, 632, 634, 623, 624, 627, 632, 635, - 636, 638, 641, 634, 636, 639, 633, 641, 635, 646, - 629, 631, 640, 640, 639, 643, 643, 644, 647, 645, - 638, 644, 645, 647, 648, 649, 650, 651, 646, 804, + 594, 596, 593, 597, 595, 598, 596, 599, 600, 592, + 601, 602, 599, 600, 603, 604, 605, 611, 608, 601, + 607, 601, 605, 602, 598, 610, 607, 608, 609, 609, + 604, 619, 612, 603, 610, 611, 612, 613, 614, 614, + 616, 618, 613, 617, 620, 616, 621, 617, 623, 619, + 624, 623, 631, 625, 816, 618, 626, 626, 627, 627, + 628, 628, 624, 629, 620, 625, 621, 630, 630, 633, + 631, 634, 634, 635, 633, 629, 636, 636, 637, 638, + 639, 640, 640, 639, 642, 638, 641, 641, 643, 643, + 644, 635, 645, 646, 647, 637, 640, 645, 649, 648, - 648, 650, 652, 663, 652, 651, 655, 655, 657, 657, - 649, 658, 658, 660, 660, 661, 662, 662, 663, 664, - 661, 665, 667, 668, 669, 668, 665, 667, 670, 675, - 671, 672, 673, 674, 674, 669, 676, 677, 675, 678, - 664, 671, 672, 673, 684, 670, 680, 681, 681, 682, - 683, 678, 685, 685, 686, 687, 677, 688, 689, 686, - 693, 676, 684, 680, 696, 694, 682, 683, 694, 687, - 695, 695, 697, 698, 698, 688, 699, 689, 696, 693, - 700, 700, 701, 702, 706, 703, 704, 709, 707, 697, - 703, 704, 702, 707, 699, 708, 711, 710, 706, 712, + 651, 814, 649, 647, 652, 653, 653, 646, 648, 642, + 644, 654, 659, 652, 656, 656, 654, 657, 661, 651, + 658, 657, 660, 658, 661, 662, 664, 660, 663, 812, + 665, 659, 665, 663, 664, 668, 668, 670, 670, 677, + 662, 671, 671, 673, 673, 675, 676, 676, 678, 683, + 675, 679, 681, 682, 677, 682, 679, 681, 684, 685, + 683, 686, 687, 688, 688, 689, 690, 691, 692, 678, + 685, 694, 686, 687, 689, 684, 695, 695, 696, 697, + 692, 698, 699, 699, 700, 702, 691, 701, 694, 700, + 703, 690, 707, 710, 708, 696, 697, 708, 711, 698, - 708, 709, 710, 701, 713, 714, 716, 711, 712, 717, - 718, 718, 719, 713, 714, 720, 723, 721, 724, 726, - 726, 719, 721, 720, 716, 723, 727, 717, 728, 728, - 724, 729, 730, 730, 729, 731, 731, 732, 733, 734, - 734, 736, 735, 733, 737, 727, 735, 738, 739, 740, - 732, 741, 737, 739, 742, 744, 746, 746, 744, 736, - 741, 745, 738, 747, 752, 751, 748, 747, 750, 755, - 755, 756, 759, 742, 740, 748, 751, 750, 745, 758, - 756, 760, 761, 762, 758, 764, 763, 765, 752, 767, - 759, 763, 766, 766, 767, 760, 770, 761, 769, 769, + 713, 701, 715, 702, 709, 709, 811, 710, 720, 703, + 716, 707, 712, 712, 723, 711, 714, 714, 713, 716, + 717, 718, 720, 715, 721, 717, 718, 722, 723, 721, + 724, 725, 722, 730, 726, 724, 727, 728, 731, 732, + 732, 733, 725, 726, 734, 727, 728, 738, 735, 737, + 733, 730, 734, 735, 740, 740, 731, 741, 737, 738, + 742, 742, 743, 744, 744, 743, 745, 745, 746, 747, + 748, 748, 750, 749, 747, 751, 741, 749, 752, 753, + 754, 746, 755, 751, 753, 756, 758, 760, 760, 758, + 750, 755, 759, 752, 761, 766, 765, 762, 761, 764, - 771, 762, 772, 772, 775, 765, 773, 773, 774, 778, - 764, 776, 776, 777, 777, 770, 796, 779, 802, 774, - 796, 771, 779, 775, 780, 780, 782, 778, 781, 781, - 795, 782, 783, 783, 785, 785, 787, 787, 788, 791, - 791, 792, 805, 788, 799, 799, 792, 801, 815, 795, - 819, 801, 803, 803, 806, 806, 807, 807, 817, 805, - 809, 809, 811, 811, 816, 818, 800, 815, 819, 820, - 820, 798, 817, 816, 797, 794, 793, 790, 818, 823, - 823, 823, 823, 823, 823, 824, 824, 824, 824, 824, - 824, 825, 825, 825, 825, 825, 825, 826, 826, 826, + 769, 769, 770, 773, 756, 754, 762, 765, 764, 759, + 772, 770, 774, 775, 776, 772, 778, 777, 779, 766, + 781, 773, 777, 780, 780, 781, 774, 784, 775, 783, + 783, 785, 776, 786, 786, 789, 779, 787, 787, 788, + 792, 778, 790, 790, 791, 791, 784, 810, 793, 808, + 788, 810, 785, 793, 789, 794, 794, 796, 792, 795, + 795, 809, 796, 797, 797, 799, 799, 801, 801, 802, + 805, 805, 806, 819, 802, 813, 813, 806, 815, 829, + 809, 833, 815, 817, 817, 820, 820, 821, 821, 831, + 819, 823, 823, 825, 825, 830, 832, 807, 829, 833, - 826, 826, 826, 828, 828, 789, 828, 828, 828, 829, - 829, 786, 784, 768, 829, 830, 830, 757, 754, 830, - 832, 832, 753, 749, 743, 832, 833, 833, 725, 833, - 833, 833, 722, 715, 705, 692, 691, 690, 679, 666, - 659, 656, 654, 653, 642, 637, 620, 610, 603, 594, - 570, 565, 564, 563, 561, 541, 524, 509, 502, 492, - 491, 473, 469, 458, 457, 456, 440, 422, 413, 387, - 371, 352, 345, 336, 304, 279, 278, 276, 275, 271, - 201, 196, 97, 96, 94, 92, 90, 54, 50, 46, - 45, 41, 36, 12, 11, 822, 822, 822, 822, 822, + 834, 834, 804, 831, 830, 803, 800, 798, 782, 832, + 837, 837, 837, 837, 837, 837, 838, 838, 838, 838, + 838, 838, 839, 839, 839, 839, 839, 839, 840, 840, + 840, 840, 840, 840, 842, 842, 771, 842, 842, 842, + 843, 843, 768, 767, 763, 843, 844, 844, 757, 739, + 844, 846, 846, 736, 729, 719, 846, 847, 847, 706, + 847, 847, 847, 705, 704, 693, 680, 674, 672, 669, + 667, 666, 655, 650, 632, 622, 615, 606, 581, 576, + 575, 574, 572, 552, 534, 519, 512, 501, 500, 482, + 478, 467, 466, 465, 448, 430, 421, 394, 378, 359, - 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 822 + 351, 342, 310, 284, 283, 281, 280, 276, 205, 199, + 98, 97, 95, 93, 91, 54, 50, 46, 45, 41, + 36, 12, 11, 836, 836, 836, 836, 836, 836, 836, + 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, + 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, + 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, + 836, 836 } ; static yy_state_type yy_last_accepting_state; @@ -1196,7 +1205,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1199 "" +#line 1208 "" #define INITIAL 0 #define quotedstring 1 @@ -1382,7 +1391,7 @@ YY_DECL #line 107 "util/configlexer.lex" -#line 1385 "" +#line 1394 "" if ( !(yy_init) ) { @@ -1441,13 +1450,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 >= 823 ) + if ( yy_current_state >= 837 ) 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] != 1696 ); + while ( yy_base[yy_current_state] != 1724 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1819,66 +1828,71 @@ YY_RULE_SETUP case 70: YY_RULE_SETUP #line 177 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} +{ YDOUT; return VAR_NEG_CACHE_SIZE;} YY_BREAK case 71: YY_RULE_SETUP #line 178 "util/configlexer.lex" -{ YDOUT; return VAR_USE_SYSLOG;} +{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} YY_BREAK case 72: YY_RULE_SETUP #line 179 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_ZONE;} +{ YDOUT; return VAR_USE_SYSLOG;} YY_BREAK case 73: YY_RULE_SETUP #line 180 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_DATA;} +{ YDOUT; return VAR_LOCAL_ZONE;} YY_BREAK case 74: YY_RULE_SETUP #line 181 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_INTERVAL;} +{ YDOUT; return VAR_LOCAL_DATA;} YY_BREAK case 75: YY_RULE_SETUP #line 182 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_CUMULATIVE;} +{ YDOUT; return VAR_STATISTICS_INTERVAL;} YY_BREAK case 76: -/* rule 76 can match eol */ YY_RULE_SETUP #line 183 "util/configlexer.lex" +{ YDOUT; return VAR_STATISTICS_CUMULATIVE;} + YY_BREAK +case 77: +/* rule 77 can match eol */ +YY_RULE_SETUP +#line 184 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 77: +case 78: YY_RULE_SETUP -#line 186 "util/configlexer.lex" +#line 187 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 187 "util/configlexer.lex" +#line 188 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 78: -YY_RULE_SETUP -#line 191 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 79: -/* rule 79 can match eol */ YY_RULE_SETUP #line 192 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK case 80: +/* rule 80 can match eol */ YY_RULE_SETUP #line 193 "util/configlexer.lex" +{ cfg_parser->line++; yymore(); } + YY_BREAK +case 81: +YY_RULE_SETUP +#line 194 "util/configlexer.lex" { LEXOUT(("QE ")); BEGIN(INITIAL); @@ -1890,32 +1904,32 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 81: +case 82: YY_RULE_SETUP -#line 204 "util/configlexer.lex" +#line 205 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 205 "util/configlexer.lex" +#line 206 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 82: -YY_RULE_SETUP -#line 209 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 83: -/* rule 83 can match eol */ YY_RULE_SETUP #line 210 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK case 84: +/* rule 84 can match eol */ YY_RULE_SETUP #line 211 "util/configlexer.lex" +{ cfg_parser->line++; yymore(); } + YY_BREAK +case 85: +YY_RULE_SETUP +#line 212 "util/configlexer.lex" { LEXOUT(("SQE ")); BEGIN(INITIAL); @@ -1927,37 +1941,37 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 85: +case 86: YY_RULE_SETUP -#line 222 "util/configlexer.lex" +#line 223 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 223 "util/configlexer.lex" +#line 224 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(INITIAL); } YY_BREAK -case 86: -YY_RULE_SETUP -#line 227 "util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 87: -/* rule 87 can match eol */ YY_RULE_SETUP #line 228 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 88: +/* rule 88 can match eol */ YY_RULE_SETUP #line 229 "util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 89: YY_RULE_SETUP #line 230 "util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 90: +YY_RULE_SETUP +#line 231 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); @@ -1965,26 +1979,26 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 235 "util/configlexer.lex" +#line 236 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 90: -YY_RULE_SETUP -#line 239 "util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 91: -/* rule 91 can match eol */ YY_RULE_SETUP #line 240 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK case 92: +/* rule 92 can match eol */ YY_RULE_SETUP #line 241 "util/configlexer.lex" +{ cfg_parser->line++; yymore(); } + YY_BREAK +case 93: +YY_RULE_SETUP +#line 242 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -1993,7 +2007,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 247 "util/configlexer.lex" +#line 248 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -2004,18 +2018,18 @@ case YY_STATE_EOF(INITIAL): } } YY_BREAK -case 93: +case 94: YY_RULE_SETUP -#line 257 "util/configlexer.lex" +#line 258 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); yylval.str = strdup(yytext); return STRING; } YY_BREAK -case 94: +case 95: YY_RULE_SETUP -#line 260 "util/configlexer.lex" +#line 261 "util/configlexer.lex" ECHO; YY_BREAK -#line 2018 "" +#line 2032 "" case YY_END_OF_BUFFER: { @@ -2305,7 +2319,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 >= 823 ) + if ( yy_current_state >= 837 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2333,11 +2347,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 >= 823 ) + if ( yy_current_state >= 837 ) 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 == 822); + yy_is_jam = (yy_current_state == 836); return yy_is_jam ? 0 : yy_current_state; } @@ -2974,7 +2988,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 260 "util/configlexer.lex" +#line 261 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 0eab8661b..64861a35c 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -174,6 +174,7 @@ val-clean-additional{COLON} { YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} val-permissive-mode{COLON} { YDOUT; return VAR_VAL_PERMISSIVE_MODE;} key-cache-size{COLON} { YDOUT; return VAR_KEY_CACHE_SIZE;} key-cache-slabs{COLON} { YDOUT; return VAR_KEY_CACHE_SLABS;} +neg-cache-size{COLON} { YDOUT; return VAR_NEG_CACHE_SIZE;} val-nsec3-keysize-iterations{COLON} { YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} use-syslog{COLON} { YDOUT; return VAR_USE_SYSLOG;} local-zone{COLON} { YDOUT; return VAR_LOCAL_ZONE;} diff --git a/util/configparser.c b/util/configparser.c index b1898083e..745a4e77f 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -146,7 +146,8 @@ VAR_OUTGOING_PORT_PERMIT = 335, VAR_OUTGOING_PORT_AVOID = 336, VAR_DLV_ANCHOR_FILE = 337, - VAR_DLV_ANCHOR = 338 + VAR_DLV_ANCHOR = 338, + VAR_NEG_CACHE_SIZE = 339 }; #endif /* Tokens. */ @@ -231,6 +232,7 @@ #define VAR_OUTGOING_PORT_AVOID 336 #define VAR_DLV_ANCHOR_FILE 337 #define VAR_DLV_ANCHOR 338 +#define VAR_NEG_CACHE_SIZE 339 @@ -289,7 +291,7 @@ typedef union YYSTYPE char* str; } /* Line 187 of yacc.c. */ -#line 293 "util/configparser.c" +#line 295 "util/configparser.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -302,7 +304,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 306 "util/configparser.c" +#line 308 "util/configparser.c" #ifdef short # undef short @@ -517,20 +519,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 147 +#define YYLAST 149 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 84 +#define YYNTOKENS 85 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 83 +#define YYNNTS 84 /* YYNRULES -- Number of rules. */ -#define YYNRULES 157 +#define YYNRULES 159 /* YYNRULES -- Number of states. */ -#define YYNSTATES 231 +#define YYNSTATES 234 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 338 +#define YYMAXUTOK 339 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -571,7 +573,7 @@ static const yytype_uint8 yytranslate[] = 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83 + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84 }; #if YYDEBUG @@ -586,81 +588,81 @@ static const yytype_uint16 yyprhs[] = 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, - 142, 144, 146, 148, 150, 152, 154, 157, 158, 160, - 162, 164, 166, 169, 170, 172, 174, 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, 308, 311, 314, 317, 320, 323, 326, 329, 332, - 335, 339, 342, 345, 348, 351, 354, 357, 360, 363, - 366, 370, 373, 376, 379, 382, 385, 388 + 142, 144, 146, 148, 150, 152, 154, 156, 159, 160, + 162, 164, 166, 168, 171, 172, 174, 176, 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, 313, 316, 319, 322, 325, 328, 331, + 334, 337, 341, 344, 347, 350, 353, 356, 359, 362, + 365, 368, 371, 375, 378, 381, 384, 387, 390, 393 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 85, 0, -1, -1, 85, 86, -1, 87, 88, -1, - 90, 91, -1, 93, 94, -1, 11, -1, 88, 89, - -1, -1, 96, -1, 97, -1, 100, -1, 103, -1, - 109, -1, 110, -1, 111, -1, 112, -1, 101, -1, - 115, -1, 116, -1, 117, -1, 118, -1, 119, -1, - 131, -1, 132, -1, 133, -1, 134, -1, 135, -1, - 106, -1, 136, -1, 137, -1, 140, -1, 138, -1, - 139, -1, 141, -1, 142, -1, 143, -1, 147, -1, - 126, -1, 127, -1, 128, -1, 129, -1, 144, -1, - 150, -1, 123, -1, 125, -1, 151, -1, 153, -1, - 154, -1, 155, -1, 107, -1, 130, -1, 157, -1, - 158, -1, 124, -1, 156, -1, 114, -1, 102, -1, - 120, -1, 148, -1, 152, -1, 145, -1, 149, -1, - 159, -1, 160, -1, 108, -1, 98, -1, 113, -1, - 146, -1, 99, -1, 104, -1, 105, -1, 121, -1, - 122, -1, 38, -1, 91, 92, -1, -1, 161, -1, - 162, -1, 163, -1, 44, -1, 94, 95, -1, -1, - 164, -1, 165, -1, 166, -1, 13, 10, -1, 12, - 10, -1, 76, 10, -1, 79, 10, -1, 14, 10, - -1, 16, 10, -1, 67, 10, -1, 15, 10, -1, - 80, 10, -1, 81, 10, -1, 31, 10, -1, 60, - 10, -1, 75, 10, -1, 17, 10, -1, 18, 10, - -1, 19, 10, -1, 20, 10, -1, 77, 10, -1, - 66, 10, -1, 21, 10, -1, 22, 10, -1, 23, - 10, -1, 24, 10, -1, 25, 10, -1, 68, 10, - -1, 82, 10, -1, 83, 10, -1, 54, 10, -1, - 64, 10, -1, 55, 10, -1, 48, 10, -1, 49, - 10, -1, 50, 10, -1, 51, 10, -1, 61, 10, - -1, 26, 10, -1, 27, 10, -1, 28, 10, -1, - 29, 10, -1, 30, 10, -1, 32, 10, -1, 33, - 10, -1, 35, 10, -1, 36, 10, -1, 34, 10, - -1, 41, 10, -1, 42, 10, -1, 43, 10, -1, - 52, 10, -1, 71, 10, -1, 78, 10, -1, 47, - 10, -1, 69, 10, -1, 72, 10, 10, -1, 53, - 10, -1, 56, 10, -1, 70, 10, -1, 57, 10, - -1, 58, 10, -1, 59, 10, -1, 65, 10, -1, - 62, 10, -1, 63, 10, -1, 73, 10, 10, -1, - 74, 10, -1, 37, 10, -1, 39, 10, -1, 40, - 10, -1, 37, 10, -1, 45, 10, -1, 46, 10, - -1 + 86, 0, -1, -1, 86, 87, -1, 88, 89, -1, + 91, 92, -1, 94, 95, -1, 11, -1, 89, 90, + -1, -1, 97, -1, 98, -1, 101, -1, 104, -1, + 110, -1, 111, -1, 112, -1, 113, -1, 102, -1, + 116, -1, 117, -1, 118, -1, 119, -1, 120, -1, + 132, -1, 133, -1, 134, -1, 135, -1, 136, -1, + 107, -1, 137, -1, 138, -1, 141, -1, 139, -1, + 140, -1, 142, -1, 143, -1, 144, -1, 148, -1, + 127, -1, 128, -1, 129, -1, 130, -1, 145, -1, + 151, -1, 124, -1, 126, -1, 152, -1, 154, -1, + 155, -1, 156, -1, 108, -1, 131, -1, 158, -1, + 159, -1, 125, -1, 157, -1, 115, -1, 103, -1, + 121, -1, 149, -1, 153, -1, 146, -1, 150, -1, + 161, -1, 162, -1, 109, -1, 99, -1, 114, -1, + 147, -1, 100, -1, 105, -1, 106, -1, 122, -1, + 123, -1, 160, -1, 38, -1, 92, 93, -1, -1, + 163, -1, 164, -1, 165, -1, 44, -1, 95, 96, + -1, -1, 166, -1, 167, -1, 168, -1, 13, 10, + -1, 12, 10, -1, 76, 10, -1, 79, 10, -1, + 14, 10, -1, 16, 10, -1, 67, 10, -1, 15, + 10, -1, 80, 10, -1, 81, 10, -1, 31, 10, + -1, 60, 10, -1, 75, 10, -1, 17, 10, -1, + 18, 10, -1, 19, 10, -1, 20, 10, -1, 77, + 10, -1, 66, 10, -1, 21, 10, -1, 22, 10, + -1, 23, 10, -1, 24, 10, -1, 25, 10, -1, + 68, 10, -1, 82, 10, -1, 83, 10, -1, 54, + 10, -1, 64, 10, -1, 55, 10, -1, 48, 10, + -1, 49, 10, -1, 50, 10, -1, 51, 10, -1, + 61, 10, -1, 26, 10, -1, 27, 10, -1, 28, + 10, -1, 29, 10, -1, 30, 10, -1, 32, 10, + -1, 33, 10, -1, 35, 10, -1, 36, 10, -1, + 34, 10, -1, 41, 10, -1, 42, 10, -1, 43, + 10, -1, 52, 10, -1, 71, 10, -1, 78, 10, + -1, 47, 10, -1, 69, 10, -1, 72, 10, 10, + -1, 53, 10, -1, 56, 10, -1, 70, 10, -1, + 57, 10, -1, 58, 10, -1, 59, 10, -1, 65, + 10, -1, 62, 10, -1, 63, 10, -1, 84, 10, + -1, 73, 10, 10, -1, 74, 10, -1, 37, 10, + -1, 39, 10, -1, 40, 10, -1, 37, 10, -1, + 45, 10, -1, 46, 10, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 96, 96, 96, 97, 97, 98, 102, 107, 108, - 109, 109, 109, 110, 110, 111, 111, 111, 112, 112, - 112, 113, 113, 113, 114, 114, 115, 115, 116, 116, - 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, - 122, 122, 122, 123, 123, 123, 124, 124, 124, 125, - 125, 126, 126, 127, 127, 128, 128, 129, 129, 129, - 130, 130, 131, 131, 132, 132, 132, 133, 133, 134, - 134, 135, 135, 136, 136, 138, 150, 151, 152, 152, - 152, 154, 166, 167, 168, 168, 168, 170, 179, 188, - 199, 208, 217, 230, 245, 254, 263, 272, 281, 290, - 299, 308, 317, 326, 335, 344, 358, 365, 372, 379, - 387, 394, 401, 408, 415, 423, 431, 438, 447, 456, - 463, 470, 481, 489, 502, 511, 519, 532, 541, 550, - 559, 568, 581, 588, 598, 608, 618, 628, 638, 645, - 655, 668, 675, 693, 702, 711, 721, 731, 738, 746, - 759, 778, 785, 792, 799, 806, 813, 820 + 0, 97, 97, 97, 98, 98, 99, 103, 108, 109, + 110, 110, 110, 111, 111, 112, 112, 112, 113, 113, + 113, 114, 114, 114, 115, 115, 116, 116, 117, 117, + 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, + 123, 123, 123, 124, 124, 124, 125, 125, 125, 126, + 126, 127, 127, 128, 128, 129, 129, 130, 130, 130, + 131, 131, 132, 132, 133, 133, 133, 134, 134, 135, + 135, 136, 136, 137, 137, 137, 139, 151, 152, 153, + 153, 153, 155, 167, 168, 169, 169, 169, 171, 180, + 189, 200, 209, 218, 231, 246, 255, 264, 273, 282, + 291, 300, 309, 318, 327, 336, 345, 359, 366, 373, + 380, 388, 395, 402, 409, 416, 424, 432, 439, 448, + 457, 464, 471, 482, 490, 503, 512, 520, 533, 542, + 551, 560, 569, 582, 589, 599, 609, 619, 629, 639, + 646, 656, 669, 676, 694, 703, 712, 722, 732, 739, + 747, 760, 768, 787, 794, 801, 808, 815, 822, 829 }; #endif @@ -695,16 +697,16 @@ static const char *const yytname[] = "VAR_STATISTICS_INTERVAL", "VAR_DO_DAEMONIZE", "VAR_USE_CAPS_FOR_ID", "VAR_STATISTICS_CUMULATIVE", "VAR_OUTGOING_PORT_PERMIT", "VAR_OUTGOING_PORT_AVOID", "VAR_DLV_ANCHOR_FILE", "VAR_DLV_ANCHOR", - "$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_statistics_cumulative", "server_port", "server_interface", - "server_outgoing_interface", "server_outgoing_range", - "server_outgoing_port_permit", "server_outgoing_port_avoid", - "server_outgoing_num_tcp", "server_incoming_num_tcp", - "server_interface_automatic", "server_do_ip4", "server_do_ip6", - "server_do_udp", "server_do_tcp", "server_do_daemonize", + "VAR_NEG_CACHE_SIZE", "$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_statistics_cumulative", + "server_port", "server_interface", "server_outgoing_interface", + "server_outgoing_range", "server_outgoing_port_permit", + "server_outgoing_port_avoid", "server_outgoing_num_tcp", + "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", + "server_do_ip6", "server_do_udp", "server_do_tcp", "server_do_daemonize", "server_use_syslog", "server_chroot", "server_username", "server_directory", "server_logfile", "server_pidfile", "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor", @@ -724,9 +726,9 @@ static const char *const yytname[] = "server_val_override_date", "server_cache_max_ttl", "server_bogus_ttl", "server_val_clean_additional", "server_val_permissive_mode", "server_val_nsec3_keysize_iterations", "server_key_cache_size", - "server_key_cache_slabs", "server_local_zone", "server_local_data", - "stub_name", "stub_host", "stub_addr", "forward_name", "forward_host", - "forward_addr", 0 + "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", + "server_local_data", "stub_name", "stub_host", "stub_addr", + "forward_name", "forward_host", "forward_addr", 0 }; #endif @@ -743,29 +745,29 @@ static const yytype_uint16 yytoknum[] = 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338 + 335, 336, 337, 338, 339 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 84, 85, 85, 86, 86, 86, 87, 88, 88, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, - 92, 93, 94, 94, 95, 95, 95, 96, 97, 98, + 0, 85, 86, 86, 87, 87, 87, 88, 89, 89, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 91, 92, 92, 93, + 93, 93, 94, 95, 95, 96, 96, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166 + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -778,15 +780,15 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, - 1, 1, 2, 0, 1, 1, 1, 2, 2, 2, + 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, 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, 3, 2, 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 @@ -794,44 +796,44 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 7, 75, 81, 3, 9, 77, 83, + 2, 0, 1, 7, 76, 82, 3, 9, 78, 84, 4, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, - 11, 67, 70, 12, 18, 58, 13, 71, 72, 29, - 51, 66, 14, 15, 16, 17, 68, 57, 19, 20, - 21, 22, 23, 59, 73, 74, 45, 55, 46, 39, - 40, 41, 42, 52, 24, 25, 26, 27, 28, 30, - 31, 33, 34, 32, 35, 36, 37, 43, 62, 69, - 38, 60, 63, 44, 47, 61, 48, 49, 50, 56, - 53, 54, 64, 65, 0, 0, 0, 76, 78, 79, - 80, 0, 0, 0, 82, 84, 85, 86, 88, 87, - 91, 94, 92, 100, 101, 102, 103, 106, 107, 108, - 109, 110, 122, 123, 124, 125, 126, 97, 127, 128, - 131, 129, 130, 132, 133, 134, 138, 117, 118, 119, - 120, 135, 141, 114, 116, 142, 144, 145, 146, 98, - 121, 148, 149, 115, 147, 105, 93, 111, 139, 143, - 136, 0, 0, 151, 99, 89, 104, 137, 90, 95, - 96, 112, 113, 152, 153, 154, 155, 156, 157, 140, - 150 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, + 10, 11, 67, 70, 12, 18, 58, 13, 71, 72, + 29, 51, 66, 14, 15, 16, 17, 68, 57, 19, + 20, 21, 22, 23, 59, 73, 74, 45, 55, 46, + 39, 40, 41, 42, 52, 24, 25, 26, 27, 28, + 30, 31, 33, 34, 32, 35, 36, 37, 43, 62, + 69, 38, 60, 63, 44, 47, 61, 48, 49, 50, + 56, 53, 54, 75, 64, 65, 0, 0, 0, 77, + 79, 80, 81, 0, 0, 0, 83, 85, 86, 87, + 89, 88, 92, 95, 93, 101, 102, 103, 104, 107, + 108, 109, 110, 111, 123, 124, 125, 126, 127, 98, + 128, 129, 132, 130, 131, 133, 134, 135, 139, 118, + 119, 120, 121, 136, 142, 115, 117, 143, 145, 146, + 147, 99, 122, 149, 150, 116, 148, 106, 94, 112, + 140, 144, 137, 0, 0, 153, 100, 90, 105, 138, + 91, 96, 97, 113, 114, 151, 154, 155, 156, 157, + 158, 159, 141, 152 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 6, 7, 10, 78, 8, 11, 147, 9, - 12, 154, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 148, 149, 150, - 155, 156, 157 + -1, 1, 6, 7, 10, 79, 8, 11, 149, 9, + 12, 156, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 150, 151, + 152, 157, 158, 159 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -839,30 +841,30 @@ static const yytype_int16 yydefgoto[] = #define YYPACT_NINF -13 static const yytype_int16 yypact[] = { - -13, 72, -13, -13, -13, -13, -13, -13, -13, -13, - -12, 37, 36, 15, 16, 17, 18, 22, 23, 24, - 65, 68, 69, 70, 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, - 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, -13, -13, + -13, 73, -13, -13, -13, -13, -13, -13, -13, -13, + -12, 38, 37, 15, 16, 17, 18, 22, 23, 24, + 66, 69, 70, 71, 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, + 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, 130, 131, 132, -13, -13, -13, - -13, 133, 134, 135, -13, -13, -13, -13, -13, -13, + -13, -13, -13, -13, -13, -13, 132, 133, 134, -13, + -13, -13, -13, 135, 136, 137, -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, 136, 137, -13, -13, -13, -13, -13, -13, -13, + -13, -13, -13, 138, 139, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13 + -13, -13, -13, -13 }; /* YYPGOTO[NTERM-NUM]. */ @@ -876,7 +878,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 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -888,19 +890,19 @@ 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, 158, 159, 160, 161, 38, - 39, 40, 162, 163, 164, 41, 42, 43, 44, 45, + 33, 34, 35, 36, 37, 160, 161, 162, 163, 38, + 39, 40, 164, 165, 166, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 2, 151, 144, 165, 145, 146, 166, 167, - 168, 152, 153, 3, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 4, 195, 196, 197, 198, 199, 5, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230 + 76, 77, 78, 2, 153, 146, 167, 147, 148, 168, + 169, 170, 154, 155, 3, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 4, 197, 198, 199, 200, 201, 5, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233 }; static const yytype_uint8 yycheck[] = @@ -912,36 +914,36 @@ static const yytype_uint8 yycheck[] = 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 0, 37, 37, 10, 39, 40, 10, 10, - 10, 45, 46, 11, 10, 10, 10, 10, 10, 10, + 82, 83, 84, 0, 37, 37, 10, 39, 40, 10, + 10, 10, 45, 46, 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, - 38, 10, 10, 10, 10, 10, 44, 10, 10, 10, + 10, 38, 10, 10, 10, 10, 10, 44, 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 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 85, 0, 11, 38, 44, 86, 87, 90, 93, - 88, 91, 94, 12, 13, 14, 15, 16, 17, 18, + 0, 86, 0, 11, 38, 44, 87, 88, 91, 94, + 89, 92, 95, 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, 41, 42, 43, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 89, 96, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 37, 39, 40, 92, 161, 162, - 163, 37, 45, 46, 95, 164, 165, 166, 10, 10, + 157, 158, 159, 160, 161, 162, 37, 39, 40, 93, + 163, 164, 165, 37, 45, 46, 96, 166, 167, 168, 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, @@ -949,7 +951,7 @@ static const yytype_uint8 yystos[] = 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) @@ -1764,14 +1766,14 @@ yyreduce: switch (yyn) { case 7: -#line 103 "util/configparser.y" +#line 104 "util/configparser.y" { OUTYY(("\nP(server:)\n")); } break; - case 75: -#line 139 "util/configparser.y" + case 76: +#line 140 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -1784,8 +1786,8 @@ yyreduce: } break; - case 81: -#line 155 "util/configparser.y" + case 82: +#line 156 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -1798,8 +1800,8 @@ yyreduce: } break; - case 87: -#line 171 "util/configparser.y" + case 88: +#line 172 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1809,8 +1811,8 @@ yyreduce: } break; - case 88: -#line 180 "util/configparser.y" + case 89: +#line 181 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1820,8 +1822,8 @@ yyreduce: } break; - case 89: -#line 189 "util/configparser.y" + case 90: +#line 190 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) @@ -1833,8 +1835,8 @@ yyreduce: } break; - case 90: -#line 200 "util/configparser.y" + case 91: +#line 201 "util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1844,8 +1846,8 @@ yyreduce: } break; - case 91: -#line 209 "util/configparser.y" + case 92: +#line 210 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -1855,8 +1857,8 @@ yyreduce: } break; - case 92: -#line 218 "util/configparser.y" + case 93: +#line 219 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -1870,8 +1872,8 @@ yyreduce: } break; - case 93: -#line 231 "util/configparser.y" + case 94: +#line 232 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -1887,8 +1889,8 @@ yyreduce: } break; - case 94: -#line 246 "util/configparser.y" + case 95: +#line 247 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -1898,8 +1900,8 @@ yyreduce: } break; - case 95: -#line 255 "util/configparser.y" + case 96: +#line 256 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, @@ -1909,8 +1911,8 @@ yyreduce: } break; - case 96: -#line 264 "util/configparser.y" + case 97: +#line 265 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, @@ -1920,8 +1922,8 @@ yyreduce: } break; - case 97: -#line 273 "util/configparser.y" + case 98: +#line 274 "util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1931,8 +1933,8 @@ yyreduce: } break; - case 98: -#line 282 "util/configparser.y" + case 99: +#line 283 "util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1942,8 +1944,8 @@ yyreduce: } break; - case 99: -#line 291 "util/configparser.y" + case 100: +#line 292 "util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1953,8 +1955,8 @@ yyreduce: } break; - case 100: -#line 300 "util/configparser.y" + case 101: +#line 301 "util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1964,8 +1966,8 @@ yyreduce: } break; - case 101: -#line 309 "util/configparser.y" + case 102: +#line 310 "util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1975,8 +1977,8 @@ yyreduce: } break; - case 102: -#line 318 "util/configparser.y" + case 103: +#line 319 "util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1986,8 +1988,8 @@ yyreduce: } break; - case 103: -#line 327 "util/configparser.y" + case 104: +#line 328 "util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1997,8 +1999,8 @@ yyreduce: } break; - case 104: -#line 336 "util/configparser.y" + case 105: +#line 337 "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) @@ -2008,8 +2010,8 @@ yyreduce: } break; - case 105: -#line 345 "util/configparser.y" + case 106: +#line 346 "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) @@ -2024,8 +2026,8 @@ yyreduce: } break; - case 106: -#line 359 "util/configparser.y" + case 107: +#line 360 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -2033,8 +2035,8 @@ yyreduce: } break; - case 107: -#line 366 "util/configparser.y" + case 108: +#line 367 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -2042,8 +2044,8 @@ yyreduce: } break; - case 108: -#line 373 "util/configparser.y" + case 109: +#line 374 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -2051,8 +2053,8 @@ yyreduce: } break; - case 109: -#line 380 "util/configparser.y" + case 110: +#line 381 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -2061,8 +2063,8 @@ yyreduce: } break; - case 110: -#line 388 "util/configparser.y" + case 111: +#line 389 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2070,8 +2072,8 @@ yyreduce: } break; - case 111: -#line 395 "util/configparser.y" + case 112: +#line 396 "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))) @@ -2079,8 +2081,8 @@ yyreduce: } break; - case 112: -#line 402 "util/configparser.y" + case 113: +#line 403 "util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dlv_anchor_file); @@ -2088,8 +2090,8 @@ yyreduce: } break; - case 113: -#line 409 "util/configparser.y" + case 114: +#line 410 "util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2097,8 +2099,8 @@ yyreduce: } break; - case 114: -#line 416 "util/configparser.y" + case 115: +#line 417 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2107,8 +2109,8 @@ yyreduce: } break; - case 115: -#line 424 "util/configparser.y" + case 116: +#line 425 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2117,8 +2119,8 @@ yyreduce: } break; - case 116: -#line 432 "util/configparser.y" + case 117: +#line 433 "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))) @@ -2126,8 +2128,8 @@ yyreduce: } break; - case 117: -#line 439 "util/configparser.y" + case 118: +#line 440 "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) @@ -2137,8 +2139,8 @@ yyreduce: } break; - case 118: -#line 448 "util/configparser.y" + case 119: +#line 449 "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) @@ -2148,8 +2150,8 @@ yyreduce: } break; - case 119: -#line 457 "util/configparser.y" + case 120: +#line 458 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2157,8 +2159,8 @@ yyreduce: } break; - case 120: -#line 464 "util/configparser.y" + case 121: +#line 465 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2166,8 +2168,8 @@ yyreduce: } break; - case 121: -#line 471 "util/configparser.y" + case 122: +#line 472 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2179,8 +2181,8 @@ yyreduce: } break; - case 122: -#line 482 "util/configparser.y" + case 123: +#line 483 "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)) @@ -2189,8 +2191,8 @@ yyreduce: } break; - case 123: -#line 490 "util/configparser.y" + case 124: +#line 491 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2204,8 +2206,8 @@ yyreduce: } break; - case 124: -#line 503 "util/configparser.y" + case 125: +#line 504 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2215,8 +2217,8 @@ yyreduce: } break; - case 125: -#line 512 "util/configparser.y" + case 126: +#line 513 "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)) @@ -2225,8 +2227,8 @@ yyreduce: } break; - case 126: -#line 520 "util/configparser.y" + case 127: +#line 521 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2240,8 +2242,8 @@ yyreduce: } break; - case 127: -#line 533 "util/configparser.y" + case 128: +#line 534 "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) @@ -2251,8 +2253,8 @@ yyreduce: } break; - case 128: -#line 542 "util/configparser.y" + case 129: +#line 543 "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) @@ -2262,8 +2264,8 @@ yyreduce: } break; - case 129: -#line 551 "util/configparser.y" + case 130: +#line 552 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2273,8 +2275,8 @@ yyreduce: } break; - case 130: -#line 560 "util/configparser.y" + case 131: +#line 561 "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-> @@ -2284,8 +2286,8 @@ yyreduce: } break; - case 131: -#line 569 "util/configparser.y" + case 132: +#line 570 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2299,8 +2301,8 @@ yyreduce: } break; - case 132: -#line 582 "util/configparser.y" + case 133: +#line 583 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -2308,8 +2310,8 @@ yyreduce: } break; - case 133: -#line 589 "util/configparser.y" + case 134: +#line 590 "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) @@ -2320,8 +2322,8 @@ yyreduce: } break; - case 134: -#line 599 "util/configparser.y" + case 135: +#line 600 "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) @@ -2332,8 +2334,8 @@ yyreduce: } break; - case 135: -#line 609 "util/configparser.y" + case 136: +#line 610 "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) @@ -2344,8 +2346,8 @@ yyreduce: } break; - case 136: -#line 619 "util/configparser.y" + case 137: +#line 620 "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) @@ -2356,8 +2358,8 @@ yyreduce: } break; - case 137: -#line 629 "util/configparser.y" + case 138: +#line 630 "util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2368,8 +2370,8 @@ yyreduce: } break; - case 138: -#line 639 "util/configparser.y" + case 139: +#line 640 "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))) @@ -2377,8 +2379,8 @@ yyreduce: } break; - case 139: -#line 646 "util/configparser.y" + case 140: +#line 647 "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) @@ -2389,8 +2391,8 @@ yyreduce: } break; - case 140: -#line 656 "util/configparser.y" + case 141: +#line 657 "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 && @@ -2404,8 +2406,8 @@ yyreduce: } break; - case 141: -#line 669 "util/configparser.y" + case 142: +#line 670 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -2413,8 +2415,8 @@ yyreduce: } break; - case 142: -#line 676 "util/configparser.y" + case 143: +#line 677 "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) { @@ -2433,8 +2435,8 @@ yyreduce: } break; - case 143: -#line 694 "util/configparser.y" + case 144: +#line 695 "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) @@ -2444,8 +2446,8 @@ yyreduce: } break; - case 144: -#line 703 "util/configparser.y" + case 145: +#line 704 "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) @@ -2455,8 +2457,8 @@ yyreduce: } break; - case 145: -#line 712 "util/configparser.y" + case 146: +#line 713 "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) @@ -2467,8 +2469,8 @@ yyreduce: } break; - case 146: -#line 722 "util/configparser.y" + case 147: +#line 723 "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) @@ -2479,8 +2481,8 @@ yyreduce: } break; - case 147: -#line 732 "util/configparser.y" + case 148: +#line 733 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -2488,8 +2490,8 @@ yyreduce: } break; - case 148: -#line 739 "util/configparser.y" + case 149: +#line 740 "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)) @@ -2498,8 +2500,8 @@ yyreduce: } break; - case 149: -#line 747 "util/configparser.y" + case 150: +#line 748 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2513,8 +2515,18 @@ yyreduce: } break; - case 150: -#line 760 "util/configparser.y" + case 151: +#line 761 "util/configparser.y" + { + OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) + yyerror("memory size expected"); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 152: +#line 769 "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 && @@ -2534,8 +2546,8 @@ yyreduce: } break; - case 151: -#line 779 "util/configparser.y" + case 153: +#line 788 "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))) @@ -2543,8 +2555,8 @@ yyreduce: } break; - case 152: -#line 786 "util/configparser.y" + case 154: +#line 795 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->stubs->name); @@ -2552,8 +2564,8 @@ yyreduce: } break; - case 153: -#line 793 "util/configparser.y" + case 155: +#line 802 "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))) @@ -2561,8 +2573,8 @@ yyreduce: } break; - case 154: -#line 800 "util/configparser.y" + case 156: +#line 809 "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))) @@ -2570,8 +2582,8 @@ yyreduce: } break; - case 155: -#line 807 "util/configparser.y" + case 157: +#line 816 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->forwards->name); @@ -2579,8 +2591,8 @@ yyreduce: } break; - case 156: -#line 814 "util/configparser.y" + case 158: +#line 823 "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))) @@ -2588,8 +2600,8 @@ yyreduce: } break; - case 157: -#line 821 "util/configparser.y" + case 159: +#line 830 "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))) @@ -2599,7 +2611,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2603 "util/configparser.c" +#line 2615 "util/configparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2813,7 +2825,7 @@ yyreturn: } -#line 827 "util/configparser.y" +#line 836 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 316743577..e308d9154 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -119,7 +119,8 @@ VAR_OUTGOING_PORT_PERMIT = 335, VAR_OUTGOING_PORT_AVOID = 336, VAR_DLV_ANCHOR_FILE = 337, - VAR_DLV_ANCHOR = 338 + VAR_DLV_ANCHOR = 338, + VAR_NEG_CACHE_SIZE = 339 }; #endif /* Tokens. */ @@ -204,6 +205,7 @@ #define VAR_OUTGOING_PORT_AVOID 336 #define VAR_DLV_ANCHOR_FILE 337 #define VAR_DLV_ANCHOR 338 +#define VAR_NEG_CACHE_SIZE 339 @@ -215,7 +217,7 @@ typedef union YYSTYPE char* str; } /* Line 1489 of yacc.c. */ -#line 219 "util/configparser.h" +#line 221 "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 c06ad0173..8f9cf6169 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -91,6 +91,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_STATISTICS_INTERVAL VAR_DO_DAEMONIZE VAR_USE_CAPS_FOR_ID %token VAR_STATISTICS_CUMULATIVE VAR_OUTGOING_PORT_PERMIT %token VAR_OUTGOING_PORT_AVOID VAR_DLV_ANCHOR_FILE VAR_DLV_ANCHOR +%token VAR_NEG_CACHE_SIZE %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -133,7 +134,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_statistics_interval | server_do_daemonize | server_use_caps_for_id | server_statistics_cumulative | server_outgoing_port_permit | server_outgoing_port_avoid | - server_dlv_anchor_file | server_dlv_anchor + server_dlv_anchor_file | server_dlv_anchor | server_neg_cache_size ; stubstart: VAR_STUB_ZONE { @@ -756,6 +757,14 @@ server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING free($2); } ; +server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING + { + OUTYY(("P(server_neg_cache_size:%s)\n", $2)); + if(!cfg_parse_memsize($2, &cfg_parser->cfg->neg_cache_size)) + yyerror("memory size expected"); + free($2); + } + ; server_local_zone: VAR_LOCAL_ZONE STRING STRING { OUTYY(("P(server_local_zone:%s %s)\n", $2, $3)); diff --git a/validator/val_neg.c b/validator/val_neg.c index 29fd2d006..3184ef5a5 100644 --- a/validator/val_neg.c +++ b/validator/val_neg.c @@ -48,6 +48,7 @@ #include "util/data/msgreply.h" #include "util/log.h" #include "util/net_help.h" +#include "util/config_file.h" #include "services/cache/rrset.h" int val_neg_data_compare(const void* a, const void* b) @@ -71,7 +72,7 @@ int val_neg_zone_compare(const void* a, const void* b) return dname_canon_lab_cmp(x->name, x->labs, y->name, y->labs, &m); } -struct val_neg_cache* val_neg_create() +struct val_neg_cache* val_neg_create(struct config_file* cfg) { struct val_neg_cache* neg = (struct val_neg_cache*)calloc(1, sizeof(*neg)); @@ -80,18 +81,13 @@ struct val_neg_cache* val_neg_create() return NULL; } neg->max = 1024*1024; /* 1 M is thousands of entries */ + if(cfg) neg->max = cfg->neg_cache_size; rbtree_init(&neg->tree, &val_neg_zone_compare); lock_basic_init(&neg->lock); lock_protect(&neg->lock, neg, sizeof(*neg)); return neg; } -int val_neg_apply_cfg(struct val_neg_cache* neg, struct config_file* cfg) -{ - /* TODO read max mem size from cfg */ - return 1; -} - size_t val_neg_get_mem(struct val_neg_cache* neg) { size_t result; diff --git a/validator/val_neg.h b/validator/val_neg.h index 13600a45e..2bbf1118a 100644 --- a/validator/val_neg.h +++ b/validator/val_neg.h @@ -151,17 +151,10 @@ struct val_neg_data { /** * Create negative cache + * @param cfg: config options. * @return neg cache, empty or NULL on failure. */ -struct val_neg_cache* val_neg_create(); - -/** - * Apply configuration settings to negative cache - * @param neg: negative cache. - * @param cfg: config options. - * @return false on error. - */ -int val_neg_apply_cfg(struct val_neg_cache* neg, struct config_file* cfg); +struct val_neg_cache* val_neg_create(struct config_file* cfg); /** * see how much memory is in use by the negative cache. diff --git a/validator/validator.c b/validator/validator.c index 48013ddf0..90770312b 100644 --- a/validator/validator.c +++ b/validator/validator.c @@ -122,15 +122,11 @@ val_apply_cfg(struct module_env* env, struct val_env* val_env, return 0; } if(!val_env->neg_cache) - val_env->neg_cache = val_neg_create(); + val_env->neg_cache = val_neg_create(cfg); if(!val_env->neg_cache) { log_err("out of memory"); return 0; } - if(!val_neg_apply_cfg(val_env->neg_cache, cfg)) { - log_err("validator: error in negative cache config"); - return 0; - } val_env->date_override = cfg->val_date_override; c = cfg_count_numbers(cfg->val_nsec3_key_iterations); if(c < 1 || (c&1)) {