mirror of
https://github.com/NLnetLabs/unbound.git
synced 2026-01-07 07:19:35 -05:00
Nicer sizes possible in config file.
git-svn-id: file:///svn/unbound/trunk@843 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
97f5d3d28e
commit
1315edc5e9
8 changed files with 175 additions and 70 deletions
|
|
@ -3,6 +3,7 @@
|
|||
- added text describing the use of stub zones for private zones.
|
||||
- checkconf tests for bad hostnames (IP address), and for doubled
|
||||
interface lines.
|
||||
- memory sizes can be given with 'k', 'Kb', or M or G appended.
|
||||
|
||||
10 January 2008: Wouter
|
||||
- typo in example.conf.
|
||||
|
|
|
|||
|
|
@ -59,8 +59,8 @@ server:
|
|||
# msg-buffer-size: 65552
|
||||
|
||||
# the amount of memory to use for the message cache.
|
||||
# in bytes. default is 4 Mb
|
||||
# msg-cache-size: 4194304
|
||||
# plain value in bytes or you can append k, m or G. default is "4Mb".
|
||||
# msg-cache-size: 4m
|
||||
|
||||
# the number of slabs to use for the message cache.
|
||||
# the number of slabs must be a power of 2.
|
||||
|
|
@ -71,8 +71,8 @@ server:
|
|||
# num-queries-per-thread: 1024
|
||||
|
||||
# the amount of memory to use for the RRset cache.
|
||||
# in bytes. default is 4 Mb
|
||||
# rrset-cache-size: 4194304
|
||||
# plain value in bytes or you can append k, m or G. default is "4Mb".
|
||||
# rrset-cache-size: 4m
|
||||
|
||||
# the number of slabs to use for the RRset cache.
|
||||
# the number of slabs must be a power of 2.
|
||||
|
|
@ -99,7 +99,7 @@ server:
|
|||
# infra-cache-numhosts: 10000
|
||||
|
||||
# the maximum size of the lame zones cached per host. in bytes.
|
||||
# infra-cache-lame-size: 10240
|
||||
# infra-cache-lame-size: 10k
|
||||
|
||||
# Enable IPv4, "yes" or "no".
|
||||
# do-ip4: yes
|
||||
|
|
@ -247,8 +247,8 @@ server:
|
|||
# val-nsec3-keysize-iterations: "1024 150 2048 500 4096 2500"
|
||||
|
||||
# the amount of memory to use for the key cache.
|
||||
# in bytes. default is 4 Mb
|
||||
# key-cache-size: 4194304
|
||||
# plain value in bytes or you can append k, m or G. default is "4Mb".
|
||||
# key-cache-size: 4m
|
||||
|
||||
# the number of slabs to use for the key cache.
|
||||
# the number of slabs must be a power of 2.
|
||||
|
|
|
|||
|
|
@ -134,6 +134,8 @@ reply to the client.
|
|||
.TP
|
||||
.B msg\-cache\-size: \fI<number>
|
||||
Number of bytes size of the message cache. Default is 4 megabytes.
|
||||
A plain number is in bytes, append 'k', 'm' or 'g' for kilobytes, megabytes
|
||||
or gigabytes (1024*1024 bytes in a megabyte).
|
||||
.TP
|
||||
.B msg\-cache\-slabs: \fI<number>
|
||||
Number of slabs in the message cache. Slabs reduce lock contention by threads.
|
||||
|
|
@ -148,6 +150,8 @@ the existing queries. Default 1024.
|
|||
.TP
|
||||
.B rrset\-cache\-size: \fI<number>
|
||||
Number of bytes size of the RRset cache. Default is 4 megabytes.
|
||||
A plain number is in bytes, append 'k', 'm' or 'g' for kilobytes, megabytes
|
||||
or gigabytes (1024*1024 bytes in a megabyte).
|
||||
.TP
|
||||
.B rrset\-cache\-slabs: \fI<number>
|
||||
Number of slabs in the RRset cache. Slabs reduce lock contention by threads.
|
||||
|
|
@ -383,6 +387,8 @@ This table must be kept short; a very long list could cause slower operation.
|
|||
.TP
|
||||
.B key\-cache\-size: \fI<number>
|
||||
Number of bytes size of the key cache. Default is 4 megabytes.
|
||||
A plain number is in bytes, append 'k', 'm' or 'g' for kilobytes, megabytes
|
||||
or gigabytes (1024*1024 bytes in a megabyte).
|
||||
.TP
|
||||
.B key\-cache\-slabs: \fI<number>
|
||||
Number of slabs in the key cache. Slabs reduce lock contention by threads.
|
||||
|
|
|
|||
|
|
@ -240,6 +240,44 @@ net_test()
|
|||
}
|
||||
}
|
||||
|
||||
#include "util/config_file.h"
|
||||
/** test config_file: cfg_parse_memsize */
|
||||
static void
|
||||
config_memsize_test()
|
||||
{
|
||||
size_t v = 0;
|
||||
if(0) {
|
||||
/* these emit errors */
|
||||
unit_assert( cfg_parse_memsize("", &v) == 0);
|
||||
unit_assert( cfg_parse_memsize("bla", &v) == 0);
|
||||
unit_assert( cfg_parse_memsize("nop", &v) == 0);
|
||||
unit_assert( cfg_parse_memsize("n0b", &v) == 0);
|
||||
unit_assert( cfg_parse_memsize("gb", &v) == 0);
|
||||
unit_assert( cfg_parse_memsize("b", &v) == 0);
|
||||
unit_assert( cfg_parse_memsize("kb", &v) == 0);
|
||||
unit_assert( cfg_parse_memsize("kk kb", &v) == 0);
|
||||
}
|
||||
unit_assert( cfg_parse_memsize("0", &v) && v==0);
|
||||
unit_assert( cfg_parse_memsize("1", &v) && v==1);
|
||||
unit_assert( cfg_parse_memsize("10", &v) && v==10);
|
||||
unit_assert( cfg_parse_memsize("10b", &v) && v==10);
|
||||
unit_assert( cfg_parse_memsize("5b", &v) && v==5);
|
||||
unit_assert( cfg_parse_memsize("1024", &v) && v==1024);
|
||||
unit_assert( cfg_parse_memsize("1k", &v) && v==1024);
|
||||
unit_assert( cfg_parse_memsize("1K", &v) && v==1024);
|
||||
unit_assert( cfg_parse_memsize("1Kb", &v) && v==1024);
|
||||
unit_assert( cfg_parse_memsize("1kb", &v) && v==1024);
|
||||
unit_assert( cfg_parse_memsize("1 kb", &v) && v==1024);
|
||||
unit_assert( cfg_parse_memsize("10 kb", &v) && v==10240);
|
||||
unit_assert( cfg_parse_memsize("2k", &v) && v==2048);
|
||||
unit_assert( cfg_parse_memsize("2m", &v) && v==2048*1024);
|
||||
unit_assert( cfg_parse_memsize("3M", &v) && v==3072*1024);
|
||||
unit_assert( cfg_parse_memsize("40m", &v) && v==40960*1024);
|
||||
unit_assert( cfg_parse_memsize("1G", &v) && v==1024*1024*1024);
|
||||
unit_assert( cfg_parse_memsize("1 Gb", &v) && v==1024*1024*1024);
|
||||
unit_assert( cfg_parse_memsize("0 Gb", &v) && v==0*1024*1024);
|
||||
}
|
||||
|
||||
#include "util/rtt.h"
|
||||
/** test RTT code */
|
||||
static void
|
||||
|
|
@ -360,6 +398,7 @@ main(int argc, char* argv[])
|
|||
rnd_test();
|
||||
verify_test();
|
||||
net_test();
|
||||
config_memsize_test();
|
||||
dname_test();
|
||||
anchors_test();
|
||||
rtt_test();
|
||||
|
|
|
|||
|
|
@ -386,6 +386,60 @@ cfg_count_numbers(const char* s)
|
|||
return num;
|
||||
}
|
||||
|
||||
/** all digit number */
|
||||
static int isalldigit(const char* str, size_t l)
|
||||
{
|
||||
size_t i;
|
||||
for(i=0; i<l; i++)
|
||||
if(!isdigit(str[i]))
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
cfg_parse_memsize(const char* str, size_t* res)
|
||||
{
|
||||
size_t len = (size_t)strlen(str);
|
||||
size_t mult = 1;
|
||||
if(!str || len == 0) {
|
||||
log_err("not a size: '%s'", str);
|
||||
return 0;
|
||||
}
|
||||
if(isalldigit(str, len)) {
|
||||
*res = (size_t)atol(str);
|
||||
return 1;
|
||||
}
|
||||
/* check appended num */
|
||||
while(len>0 && str[len-1]==' ')
|
||||
len--;
|
||||
if(len > 1 && str[len-1] == 'b')
|
||||
len--;
|
||||
else if(len > 1 && str[len-1] == 'B')
|
||||
len--;
|
||||
|
||||
if(len > 1 && tolower(str[len-1]) == 'g')
|
||||
mult = 1024*1024*1024;
|
||||
else if(len > 1 && tolower(str[len-1]) == 'm')
|
||||
mult = 1024*1024;
|
||||
else if(len > 1 && tolower(str[len-1]) == 'k')
|
||||
mult = 1024;
|
||||
else if(len > 0 && isdigit(str[len-1]))
|
||||
mult = 1;
|
||||
else {
|
||||
log_err("unknown size specifier: '%s'", str);
|
||||
return 0;
|
||||
}
|
||||
while(len>1 && str[len-2]==' ')
|
||||
len--;
|
||||
|
||||
if(!isalldigit(str, len-1)) {
|
||||
log_err("unknown size specifier: '%s'", str);
|
||||
return 0;
|
||||
}
|
||||
*res = ((size_t)atol(str)) * mult;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/** the MAX_TTL global */
|
||||
extern uint32_t MAX_TTL;
|
||||
|
||||
|
|
|
|||
|
|
@ -313,6 +313,17 @@ uint32_t cfg_convert_timeval(const char* str);
|
|||
*/
|
||||
int cfg_count_numbers(const char* str);
|
||||
|
||||
/**
|
||||
* Convert a 'nice' memory or file size into a bytecount
|
||||
* From '100k' to 102400. and so on. Understands kKmMgG.
|
||||
* k=1024, m=1024*1024, g=1024*1024*1024.
|
||||
* @param str: string
|
||||
* @param res: result is stored here, size in bytes.
|
||||
* @return: true if parsed correctly, or 0 on a parse error (and an error
|
||||
* is logged).
|
||||
*/
|
||||
int cfg_parse_memsize(const char* str, size_t* res);
|
||||
|
||||
/**
|
||||
* Used during options parsing
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -634,11 +634,11 @@ static const yytype_uint16 yyrline[] =
|
|||
145, 145, 145, 147, 159, 160, 161, 161, 161, 163,
|
||||
172, 181, 190, 203, 218, 227, 236, 245, 254, 263,
|
||||
272, 281, 290, 304, 311, 318, 325, 333, 340, 347,
|
||||
355, 363, 370, 379, 388, 395, 402, 413, 422, 435,
|
||||
444, 453, 466, 475, 484, 493, 502, 515, 522, 532,
|
||||
542, 552, 562, 569, 579, 592, 599, 617, 626, 635,
|
||||
645, 655, 662, 671, 684, 703, 710, 717, 724, 731,
|
||||
738, 745
|
||||
355, 363, 370, 379, 388, 395, 402, 413, 421, 434,
|
||||
443, 451, 464, 473, 482, 491, 500, 513, 520, 530,
|
||||
540, 550, 560, 567, 577, 590, 597, 615, 624, 633,
|
||||
643, 653, 660, 668, 681, 700, 707, 714, 721, 728,
|
||||
735, 742
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
@ -2063,15 +2063,14 @@ yyreduce:
|
|||
#line 414 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
if(atoi((yyvsp[(2) - (2)].str)) == 0)
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->msg_cache_size = atoi((yyvsp[(2) - (2)].str));
|
||||
if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size))
|
||||
yyerror("memory size expected");
|
||||
free((yyvsp[(2) - (2)].str));
|
||||
}
|
||||
break;
|
||||
|
||||
case 108:
|
||||
#line 423 "util/configparser.y"
|
||||
#line 422 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
if(atoi((yyvsp[(2) - (2)].str)) == 0)
|
||||
|
|
@ -2086,7 +2085,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 109:
|
||||
#line 436 "util/configparser.y"
|
||||
#line 435 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
if(atoi((yyvsp[(2) - (2)].str)) == 0)
|
||||
|
|
@ -2097,18 +2096,17 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 110:
|
||||
#line 445 "util/configparser.y"
|
||||
#line 444 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
if(atoi((yyvsp[(2) - (2)].str)) == 0)
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->rrset_cache_size = atoi((yyvsp[(2) - (2)].str));
|
||||
if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size))
|
||||
yyerror("memory size expected");
|
||||
free((yyvsp[(2) - (2)].str));
|
||||
}
|
||||
break;
|
||||
|
||||
case 111:
|
||||
#line 454 "util/configparser.y"
|
||||
#line 452 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
if(atoi((yyvsp[(2) - (2)].str)) == 0)
|
||||
|
|
@ -2123,7 +2121,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 112:
|
||||
#line 467 "util/configparser.y"
|
||||
#line 465 "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)
|
||||
|
|
@ -2134,7 +2132,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 113:
|
||||
#line 476 "util/configparser.y"
|
||||
#line 474 "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)
|
||||
|
|
@ -2145,7 +2143,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 114:
|
||||
#line 485 "util/configparser.y"
|
||||
#line 483 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
if(atoi((yyvsp[(2) - (2)].str)) == 0)
|
||||
|
|
@ -2156,18 +2154,18 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 115:
|
||||
#line 494 "util/configparser.y"
|
||||
#line 492 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
if(atoi((yyvsp[(2) - (2)].str)) == 0)
|
||||
if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->
|
||||
infra_cache_lame_size))
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->infra_cache_lame_size = atoi((yyvsp[(2) - (2)].str));
|
||||
free((yyvsp[(2) - (2)].str));
|
||||
}
|
||||
break;
|
||||
|
||||
case 116:
|
||||
#line 503 "util/configparser.y"
|
||||
#line 501 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
if(atoi((yyvsp[(2) - (2)].str)) == 0)
|
||||
|
|
@ -2182,7 +2180,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 117:
|
||||
#line 516 "util/configparser.y"
|
||||
#line 514 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
free(cfg_parser->cfg->target_fetch_policy);
|
||||
|
|
@ -2191,7 +2189,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 118:
|
||||
#line 523 "util/configparser.y"
|
||||
#line 521 "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)
|
||||
|
|
@ -2203,7 +2201,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 119:
|
||||
#line 533 "util/configparser.y"
|
||||
#line 531 "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)
|
||||
|
|
@ -2215,7 +2213,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 120:
|
||||
#line 543 "util/configparser.y"
|
||||
#line 541 "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)
|
||||
|
|
@ -2227,7 +2225,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 121:
|
||||
#line 553 "util/configparser.y"
|
||||
#line 551 "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)
|
||||
|
|
@ -2239,7 +2237,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 122:
|
||||
#line 563 "util/configparser.y"
|
||||
#line 561 "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)))
|
||||
|
|
@ -2248,7 +2246,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 123:
|
||||
#line 570 "util/configparser.y"
|
||||
#line 568 "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)
|
||||
|
|
@ -2260,7 +2258,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 124:
|
||||
#line 580 "util/configparser.y"
|
||||
#line 578 "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 &&
|
||||
|
|
@ -2275,7 +2273,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 125:
|
||||
#line 593 "util/configparser.y"
|
||||
#line 591 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
free(cfg_parser->cfg->module_conf);
|
||||
|
|
@ -2284,7 +2282,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 126:
|
||||
#line 600 "util/configparser.y"
|
||||
#line 598 "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) {
|
||||
|
|
@ -2304,7 +2302,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 127:
|
||||
#line 618 "util/configparser.y"
|
||||
#line 616 "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)
|
||||
|
|
@ -2315,7 +2313,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 128:
|
||||
#line 627 "util/configparser.y"
|
||||
#line 625 "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)
|
||||
|
|
@ -2326,7 +2324,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 129:
|
||||
#line 636 "util/configparser.y"
|
||||
#line 634 "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)
|
||||
|
|
@ -2338,7 +2336,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 130:
|
||||
#line 646 "util/configparser.y"
|
||||
#line 644 "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)
|
||||
|
|
@ -2350,7 +2348,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 131:
|
||||
#line 656 "util/configparser.y"
|
||||
#line 654 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
free(cfg_parser->cfg->val_nsec3_key_iterations);
|
||||
|
|
@ -2359,18 +2357,17 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 132:
|
||||
#line 663 "util/configparser.y"
|
||||
#line 661 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
if(atoi((yyvsp[(2) - (2)].str)) == 0)
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->key_cache_size = atoi((yyvsp[(2) - (2)].str));
|
||||
if(cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size))
|
||||
yyerror("memory size expected");
|
||||
free((yyvsp[(2) - (2)].str));
|
||||
}
|
||||
break;
|
||||
|
||||
case 133:
|
||||
#line 672 "util/configparser.y"
|
||||
#line 669 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
if(atoi((yyvsp[(2) - (2)].str)) == 0)
|
||||
|
|
@ -2385,7 +2382,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 134:
|
||||
#line 685 "util/configparser.y"
|
||||
#line 682 "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 &&
|
||||
|
|
@ -2406,7 +2403,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 135:
|
||||
#line 704 "util/configparser.y"
|
||||
#line 701 "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)))
|
||||
|
|
@ -2415,7 +2412,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 136:
|
||||
#line 711 "util/configparser.y"
|
||||
#line 708 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
free(cfg_parser->cfg->stubs->name);
|
||||
|
|
@ -2424,7 +2421,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 137:
|
||||
#line 718 "util/configparser.y"
|
||||
#line 715 "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)))
|
||||
|
|
@ -2433,7 +2430,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 138:
|
||||
#line 725 "util/configparser.y"
|
||||
#line 722 "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)))
|
||||
|
|
@ -2442,7 +2439,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 139:
|
||||
#line 732 "util/configparser.y"
|
||||
#line 729 "util/configparser.y"
|
||||
{
|
||||
OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
|
||||
free(cfg_parser->cfg->forwards->name);
|
||||
|
|
@ -2451,7 +2448,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 140:
|
||||
#line 739 "util/configparser.y"
|
||||
#line 736 "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)))
|
||||
|
|
@ -2460,7 +2457,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 141:
|
||||
#line 746 "util/configparser.y"
|
||||
#line 743 "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)))
|
||||
|
|
@ -2470,7 +2467,7 @@ yyreduce:
|
|||
|
||||
|
||||
/* Line 1267 of yacc.c. */
|
||||
#line 2474 "util/configparser.c"
|
||||
#line 2471 "util/configparser.c"
|
||||
default: break;
|
||||
}
|
||||
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
|
||||
|
|
@ -2684,7 +2681,7 @@ yyreturn:
|
|||
}
|
||||
|
||||
|
||||
#line 752 "util/configparser.y"
|
||||
#line 749 "util/configparser.y"
|
||||
|
||||
|
||||
/* parse helper routines could be here */
|
||||
|
|
|
|||
|
|
@ -413,9 +413,8 @@ server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING
|
|||
server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING
|
||||
{
|
||||
OUTYY(("P(server_msg_cache_size:%s)\n", $2));
|
||||
if(atoi($2) == 0)
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->msg_cache_size = atoi($2);
|
||||
if(!cfg_parse_memsize($2, &cfg_parser->cfg->msg_cache_size))
|
||||
yyerror("memory size expected");
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
|
|
@ -444,9 +443,8 @@ server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING
|
|||
server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING
|
||||
{
|
||||
OUTYY(("P(server_rrset_cache_size:%s)\n", $2));
|
||||
if(atoi($2) == 0)
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->rrset_cache_size = atoi($2);
|
||||
if(!cfg_parse_memsize($2, &cfg_parser->cfg->rrset_cache_size))
|
||||
yyerror("memory size expected");
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
|
|
@ -493,9 +491,9 @@ server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING
|
|||
server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING
|
||||
{
|
||||
OUTYY(("P(server_infra_cache_lame_size:%s)\n", $2));
|
||||
if(atoi($2) == 0)
|
||||
if(!cfg_parse_memsize($2, &cfg_parser->cfg->
|
||||
infra_cache_lame_size))
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->infra_cache_lame_size = atoi($2);
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
|
|
@ -662,9 +660,8 @@ server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING
|
|||
server_key_cache_size: VAR_KEY_CACHE_SIZE STRING
|
||||
{
|
||||
OUTYY(("P(server_key_cache_size:%s)\n", $2));
|
||||
if(atoi($2) == 0)
|
||||
yyerror("number expected");
|
||||
else cfg_parser->cfg->key_cache_size = atoi($2);
|
||||
if(cfg_parse_memsize($2, &cfg_parser->cfg->key_cache_size))
|
||||
yyerror("memory size expected");
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
|
|
|
|||
Loading…
Reference in a new issue