From 0f80e5e78a293cf71a7229ab4d3517b145621ef1 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Fri, 11 Apr 2008 14:10:16 +0000 Subject: [PATCH] - removed base_port. - created 256-port ephemeral space for the OS, 59802 available. git-svn-id: file:///svn/unbound/trunk@1030 be551aaa-1e26-0410-a405-d3ace91eadb9 --- daemon/daemon.c | 1 + daemon/unbound.c | 9 +- daemon/worker.c | 5 +- doc/Changelog | 2 + doc/example.conf | 11 +- doc/unbound.conf.5 | 16 +- libunbound/libworker.c | 2 +- services/outside_network.c | 4 +- services/outside_network.h | 8 +- testcode/fake_event.c | 4 +- util/config_file.c | 14 +- util/config_file.h | 4 +- util/configlexer.c | 975 ++++++++++++++++++------------------- util/configlexer.lex | 1 - util/configparser.c | 870 ++++++++++++++++----------------- util/configparser.h | 272 +++++------ util/configparser.y | 13 +- 17 files changed, 1083 insertions(+), 1128 deletions(-) diff --git a/daemon/daemon.c b/daemon/daemon.c index 0a0fd37e5..7c0c6c71c 100644 --- a/daemon/daemon.c +++ b/daemon/daemon.c @@ -228,6 +228,7 @@ daemon_create_workers(struct daemon* daemon) if(!shufport) fatal_exit("out of memory during daemon init"); numport = daemon_get_shufport(daemon, shufport); + verbose(VERB_ALGO, "total of %d outgoing ports available", numport); daemon->num = daemon->cfg->num_threads; daemon->workers = (struct worker**)calloc((size_t)daemon->num, diff --git a/daemon/unbound.c b/daemon/unbound.c index 17b837c96..7f352696f 100644 --- a/daemon/unbound.c +++ b/daemon/unbound.c @@ -91,9 +91,7 @@ checkrlimits(struct config_file* cfg) (int)cfg->incoming_num_tcp:0)); size_t ifs = (size_t)(cfg->num_ifs==0?1:cfg->num_ifs); size_t listen_num = list*ifs; - size_t out_ifs = (size_t)(cfg->num_out_ifs==0? - ( (cfg->do_ip4?1:0) + (cfg->do_ip6?1:0) ) :cfg->num_out_ifs); - size_t outudpnum = cfg->outgoing_num_ports*out_ifs; + size_t outudpnum = (size_t)cfg->outgoing_num_ports; size_t outtcpnum = cfg->outgoing_num_tcp; size_t misc = 4; /* logfile, pidfile, stdout... */ size_t perthread_noudp = listen_num + outtcpnum + @@ -109,8 +107,6 @@ checkrlimits(struct config_file* cfg) size_t avail; struct rlimit rlim; - verbose(VERB_ALGO, "%d ports available in config", - cfg_scan_ports(cfg->outgoing_avail_ports, 65536)); if(getrlimit(RLIMIT_NOFILE, &rlim) < 0) { log_warn("getrlimit: %s", strerror(errno)); return; @@ -127,8 +123,7 @@ checkrlimits(struct config_file* cfg) (unsigned)avail, (unsigned)total+10); cfg->outgoing_num_ports = (int)((avail - numthread*perthread_noudp - - 10 /* safety margin */) - /(numthread*out_ifs)); + - 10 /* safety margin */) /numthread); log_warn("continuing with less udp ports: %u", cfg->outgoing_num_ports); log_warn("increase ulimit or decrease threads, ports in config to remove this warning"); diff --git a/daemon/worker.c b/daemon/worker.c index 578c5355c..23ad65338 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -933,7 +933,6 @@ worker_init(struct worker* worker, struct config_file *cfg, struct listen_port* ports, int do_sigs) { unsigned int seed; - int startport; worker->need_to_exit = 0; worker->base = comm_base_create(); if(!worker->base) { @@ -979,12 +978,10 @@ worker_init(struct worker* worker, struct config_file *cfg, worker_delete(worker); return 0; } - startport = cfg->outgoing_base_port + - cfg->outgoing_num_ports * worker->thread_num; worker->back = outside_network_create(worker->base, cfg->msg_buffer_size, (size_t)cfg->outgoing_num_ports, cfg->out_ifs, cfg->num_out_ifs, cfg->do_ip4, cfg->do_ip6, - startport, cfg->do_tcp?cfg->outgoing_num_tcp:0, + cfg->do_tcp?cfg->outgoing_num_tcp:0, worker->daemon->env->infra_cache, worker->rndstate, cfg->use_caps_bits_for_id, worker->ports, worker->numports); if(!worker->back) { diff --git a/doc/Changelog b/doc/Changelog index 192fd492c..45bbbcce9 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,8 @@ 11 April 2008: Wouter - random port selection out of the configged ports. - fixup threadsafety for libevent-1.4.3+ (event_base_get_method). + - removed base_port. + - created 256-port ephemeral space for the OS, 59802 available. 10 April 2008: Wouter - --with-libevent works with latest libevent 1.4.99-trunk. diff --git a/doc/example.conf b/doc/example.conf index c68a2dc55..2d6e42af9 100644 --- a/doc/example.conf +++ b/doc/example.conf @@ -48,15 +48,8 @@ server: # outgoing-interface: 2001:DB8::5 # outgoing-interface: 2001:DB8::6 - # unbound needs to send packets to authoritative nameservers. - # it uses a range of ports for that. - # the start number of the port range - # outgoing-port: 1053 - - # number of port to allocate per thread, determines the size of the - # port range. A larger port range gives more resistance to certain - # spoof attacks, as it gets harder to guess which port is used. - # But also takes more system resources (for open sockets). + # number of ports to allocate per thread, determines the size of the + # port range that can be open simultaneously. # outgoing-range: 256 # permit unbound to use this port number or port range for diff --git a/doc/unbound.conf.5 b/doc/unbound.conf.5 index 8cd7594e8..5d43de9ce 100644 --- a/doc/unbound.conf.5 +++ b/doc/unbound.conf.5 @@ -122,20 +122,16 @@ and lines, the interfaces are then used for both purposes. Outgoing queries are sent via a random outgoing interface to counter spoofing. .TP -.B outgoing\-port: \fI -The starting port number where the outgoing query port range is allocated. -Default is 1053. -.TP .B outgoing\-range: \fI -Number of ports to open. This number is opened per thread for every outgoing -query interface. Must be at least 1. Default is 256. -Larger numbers give more protection against spoofing attempts, but need -extra resources from the operating system. +Number of ports to open. This number of file descriptors can be opened per +thread. Must be at least 1. Default is 256. Larger numbers need extra +resources from the operating system. .TP .B outgoing\-port\-permit: \fI Permit unbound to open this port or range of ports for use to send queries. -Make sure these ports are not needed by other daemons. By default only -ports above 1024 that have not been assigned by IANA are used. +A larger number of permitted outgoing ports increases resilience against +spoofing attempts. Make sure these ports are not needed by other daemons. +By default only ports above 1024 that have not been assigned by IANA are used. Give a port number or a range of the form "low-high", without spaces. .TP .B outgoing\-port\-avoid: \fI diff --git a/libunbound/libworker.c b/libunbound/libworker.c index 01c4067b2..151b15c92 100644 --- a/libunbound/libworker.c +++ b/libunbound/libworker.c @@ -158,7 +158,7 @@ libworker_setup(struct ub_ctx* ctx, int is_bg) } w->back = outside_network_create(w->base, cfg->msg_buffer_size, (size_t)cfg->outgoing_num_ports, cfg->out_ifs, - cfg->num_out_ifs, cfg->do_ip4, cfg->do_ip6, -1, + cfg->num_out_ifs, cfg->do_ip4, cfg->do_ip6, cfg->do_tcp?cfg->outgoing_num_tcp:0, w->env->infra_cache, w->env->rnd, cfg->use_caps_bits_for_id, ports, numports); diff --git a/services/outside_network.c b/services/outside_network.c index 6756b5774..586400e1c 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -62,7 +62,7 @@ /** number of times to retry making a random ID that is unique. */ #define MAX_ID_RETRY 1000 /** number of times to retry finding interface, port that can be opened. */ -#define MAX_PORT_RETRY 1000 +#define MAX_PORT_RETRY 10000 /** number of retries on outgoing UDP queries */ #define OUTBOUND_UDP_RETRY 1 @@ -422,7 +422,7 @@ static int setup_if(struct port_if* pif, const char* addrstr, struct outside_network* outside_network_create(struct comm_base *base, size_t bufsize, size_t num_ports, char** ifs, int num_ifs, int do_ip4, - int do_ip6, int port_base, size_t num_tcp, struct infra_cache* infra, + int do_ip6, size_t num_tcp, struct infra_cache* infra, struct ub_randstate* rnd, int use_caps_for_id, int* availports, int numavailports) { diff --git a/services/outside_network.h b/services/outside_network.h index 9c304efc6..bb3aa8840 100644 --- a/services/outside_network.h +++ b/services/outside_network.h @@ -320,8 +320,6 @@ struct serviced_query { * @param num_ifs: number of names in array ifs. * @param do_ip4: service IP4. * @param do_ip6: service IP6. - * @param port_base: if -1 system assigns ports, otherwise try to get - * the ports numbered from this starting number. * @param num_tcp: number of outgoing tcp buffers to preallocate. * @param infra: pointer to infra cached used for serviced queries. * @param rnd: stored to create random numbers for serviced queries. @@ -332,9 +330,9 @@ struct serviced_query { */ struct outside_network* outside_network_create(struct comm_base* base, size_t bufsize, size_t num_ports, char** ifs, int num_ifs, - int do_ip4, int do_ip6, int port_base, size_t num_tcp, - struct infra_cache* infra, struct ub_randstate* rnd, - int use_caps_for_id, int* availports, int numavailports); + int do_ip4, int do_ip6, size_t num_tcp, struct infra_cache* infra, + struct ub_randstate* rnd, int use_caps_for_id, int* availports, + int numavailports); /** * Delete outside_network structure. diff --git a/testcode/fake_event.c b/testcode/fake_event.c index ed1105a5f..f68772918 100644 --- a/testcode/fake_event.c +++ b/testcode/fake_event.c @@ -684,8 +684,8 @@ struct outside_network* outside_network_create(struct comm_base* base, size_t bufsize, size_t ATTR_UNUSED(num_ports), char** ATTR_UNUSED(ifs), int ATTR_UNUSED(num_ifs), int ATTR_UNUSED(do_ip4), - int ATTR_UNUSED(do_ip6), int ATTR_UNUSED(port_base), - size_t ATTR_UNUSED(num_tcp), struct infra_cache* ATTR_UNUSED(infra), + int ATTR_UNUSED(do_ip6), size_t ATTR_UNUSED(num_tcp), + struct infra_cache* ATTR_UNUSED(infra), struct ub_randstate* ATTR_UNUSED(rnd), int ATTR_UNUSED(use_caps_for_id), int* ATTR_UNUSED(availports), int ATTR_UNUSED(numavailports)) diff --git a/util/config_file.c b/util/config_file.c index 1e231612f..36e0b8b8e 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -82,7 +82,6 @@ config_create() cfg->do_udp = 1; cfg->do_tcp = 1; cfg->use_syslog = 1; - cfg->outgoing_base_port = cfg->port + 2000; cfg->outgoing_num_ports = 256; cfg->outgoing_num_tcp = 10; cfg->incoming_num_tcp = 10; @@ -213,12 +212,15 @@ int config_set_option(struct config_file* cfg, const char* opt, } else if(strcmp(opt, "do-tcp:") == 0) { IS_YES_OR_NO; cfg->do_tcp = (strcmp(val, "yes") == 0); - } else if(strcmp(opt, "outgoing-port:") == 0) { - IS_NUMBER_OR_ZERO; - cfg->outgoing_base_port = atoi(val); } else if(strcmp(opt, "outgoing-range:") == 0) { IS_NONZERO_NUMBER; cfg->outgoing_num_ports = atoi(val); + } else if(strcmp(opt, "outgoing-port-permit:") == 0) { + return cfg_mark_ports(val, 1, + cfg->outgoing_avail_ports, 65536); + } else if(strcmp(opt, "outgoing-port-avoid:") == 0) { + return cfg_mark_ports(val, 0, + cfg->outgoing_avail_ports, 65536); } else if(strcmp(opt, "outgoing-num-tcp:") == 0) { IS_NUMBER_OR_ZERO; cfg->outgoing_num_tcp = (size_t)atoi(val); @@ -465,6 +467,10 @@ init_outgoing_availports(int* a, int num) for(i=1024; i= 808 ) + if ( yy_current_state >= 807 ) 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] != 1666 ); + while ( yy_base[yy_current_state] != 1664 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1461,376 +1461,371 @@ YY_RULE_SETUP case 7: YY_RULE_SETUP #line 106 "util/configlexer.lex" -{ YDOUT; return VAR_OUTGOING_PORT;} +{ YDOUT; return VAR_OUTGOING_RANGE;} YY_BREAK case 8: YY_RULE_SETUP #line 107 "util/configlexer.lex" -{ YDOUT; return VAR_OUTGOING_RANGE;} +{ YDOUT; return VAR_OUTGOING_PORT_PERMIT;} YY_BREAK case 9: YY_RULE_SETUP #line 108 "util/configlexer.lex" -{ YDOUT; return VAR_OUTGOING_PORT_PERMIT;} +{ YDOUT; return VAR_OUTGOING_PORT_AVOID;} YY_BREAK case 10: YY_RULE_SETUP #line 109 "util/configlexer.lex" -{ YDOUT; return VAR_OUTGOING_PORT_AVOID;} +{ YDOUT; return VAR_OUTGOING_NUM_TCP;} YY_BREAK case 11: YY_RULE_SETUP #line 110 "util/configlexer.lex" -{ YDOUT; return VAR_OUTGOING_NUM_TCP;} +{ YDOUT; return VAR_INCOMING_NUM_TCP;} YY_BREAK case 12: YY_RULE_SETUP #line 111 "util/configlexer.lex" -{ YDOUT; return VAR_INCOMING_NUM_TCP;} +{ YDOUT; return VAR_DO_IP4;} YY_BREAK case 13: YY_RULE_SETUP #line 112 "util/configlexer.lex" -{ YDOUT; return VAR_DO_IP4;} +{ YDOUT; return VAR_DO_IP6;} YY_BREAK case 14: YY_RULE_SETUP #line 113 "util/configlexer.lex" -{ YDOUT; return VAR_DO_IP6;} +{ YDOUT; return VAR_DO_UDP;} YY_BREAK case 15: YY_RULE_SETUP #line 114 "util/configlexer.lex" -{ YDOUT; return VAR_DO_UDP;} +{ YDOUT; return VAR_DO_TCP;} YY_BREAK case 16: YY_RULE_SETUP #line 115 "util/configlexer.lex" -{ YDOUT; return VAR_DO_TCP;} +{ YDOUT; return VAR_DO_DAEMONIZE;} YY_BREAK case 17: YY_RULE_SETUP #line 116 "util/configlexer.lex" -{ YDOUT; return VAR_DO_DAEMONIZE;} +{ YDOUT; return VAR_INTERFACE;} YY_BREAK case 18: YY_RULE_SETUP #line 117 "util/configlexer.lex" -{ YDOUT; return VAR_INTERFACE;} +{ YDOUT; return VAR_OUTGOING_INTERFACE;} YY_BREAK case 19: YY_RULE_SETUP #line 118 "util/configlexer.lex" -{ YDOUT; return VAR_OUTGOING_INTERFACE;} +{ YDOUT; return VAR_INTERFACE_AUTOMATIC;} YY_BREAK case 20: YY_RULE_SETUP #line 119 "util/configlexer.lex" -{ YDOUT; return VAR_INTERFACE_AUTOMATIC;} +{ YDOUT; return VAR_CHROOT;} YY_BREAK case 21: YY_RULE_SETUP #line 120 "util/configlexer.lex" -{ YDOUT; return VAR_CHROOT;} +{ YDOUT; return VAR_USERNAME;} YY_BREAK case 22: YY_RULE_SETUP #line 121 "util/configlexer.lex" -{ YDOUT; return VAR_USERNAME;} +{ YDOUT; return VAR_DIRECTORY;} YY_BREAK case 23: YY_RULE_SETUP #line 122 "util/configlexer.lex" -{ YDOUT; return VAR_DIRECTORY;} +{ YDOUT; return VAR_LOGFILE;} YY_BREAK case 24: YY_RULE_SETUP #line 123 "util/configlexer.lex" -{ YDOUT; return VAR_LOGFILE;} +{ YDOUT; return VAR_PIDFILE;} YY_BREAK case 25: YY_RULE_SETUP #line 124 "util/configlexer.lex" -{ YDOUT; return VAR_PIDFILE;} +{ YDOUT; return VAR_ROOT_HINTS;} YY_BREAK case 26: YY_RULE_SETUP #line 125 "util/configlexer.lex" -{ YDOUT; return VAR_ROOT_HINTS;} +{ YDOUT; return VAR_MSG_BUFFER_SIZE;} YY_BREAK case 27: YY_RULE_SETUP #line 126 "util/configlexer.lex" -{ YDOUT; return VAR_MSG_BUFFER_SIZE;} +{ YDOUT; return VAR_MSG_CACHE_SIZE;} YY_BREAK case 28: YY_RULE_SETUP #line 127 "util/configlexer.lex" -{ YDOUT; return VAR_MSG_CACHE_SIZE;} +{ YDOUT; return VAR_MSG_CACHE_SLABS;} YY_BREAK case 29: YY_RULE_SETUP #line 128 "util/configlexer.lex" -{ YDOUT; return VAR_MSG_CACHE_SLABS;} +{ YDOUT; return VAR_RRSET_CACHE_SIZE;} YY_BREAK case 30: YY_RULE_SETUP #line 129 "util/configlexer.lex" -{ YDOUT; return VAR_RRSET_CACHE_SIZE;} +{ YDOUT; return VAR_RRSET_CACHE_SLABS;} YY_BREAK case 31: YY_RULE_SETUP #line 130 "util/configlexer.lex" -{ YDOUT; return VAR_RRSET_CACHE_SLABS;} +{ YDOUT; return VAR_CACHE_MAX_TTL;} YY_BREAK case 32: YY_RULE_SETUP #line 131 "util/configlexer.lex" -{ YDOUT; return VAR_CACHE_MAX_TTL;} +{ YDOUT; return VAR_INFRA_HOST_TTL;} YY_BREAK case 33: YY_RULE_SETUP #line 132 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_HOST_TTL;} +{ YDOUT; return VAR_INFRA_LAME_TTL;} YY_BREAK case 34: YY_RULE_SETUP #line 133 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_LAME_TTL;} +{ YDOUT; return VAR_INFRA_CACHE_SLABS;} YY_BREAK case 35: YY_RULE_SETUP #line 134 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_CACHE_SLABS;} +{ YDOUT; return VAR_INFRA_CACHE_NUMHOSTS;} YY_BREAK case 36: YY_RULE_SETUP #line 135 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_CACHE_NUMHOSTS;} +{ YDOUT; return VAR_INFRA_CACHE_LAME_SIZE;} YY_BREAK case 37: YY_RULE_SETUP #line 136 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_CACHE_LAME_SIZE;} +{ YDOUT; return VAR_NUM_QUERIES_PER_THREAD;} YY_BREAK case 38: YY_RULE_SETUP #line 137 "util/configlexer.lex" -{ YDOUT; return VAR_NUM_QUERIES_PER_THREAD;} +{ YDOUT; return VAR_TARGET_FETCH_POLICY;} YY_BREAK case 39: YY_RULE_SETUP #line 138 "util/configlexer.lex" -{ YDOUT; return VAR_TARGET_FETCH_POLICY;} +{ YDOUT; return VAR_HARDEN_SHORT_BUFSIZE;} YY_BREAK case 40: YY_RULE_SETUP #line 139 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_SHORT_BUFSIZE;} +{ YDOUT; return VAR_HARDEN_LARGE_QUERIES;} YY_BREAK case 41: YY_RULE_SETUP #line 140 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_LARGE_QUERIES;} +{ YDOUT; return VAR_HARDEN_GLUE;} YY_BREAK case 42: YY_RULE_SETUP #line 141 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_GLUE;} +{ YDOUT; return VAR_HARDEN_DNNSEC_STRIPPED;} YY_BREAK case 43: YY_RULE_SETUP #line 142 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_DNNSEC_STRIPPED;} +{ YDOUT; return VAR_USE_CAPS_FOR_ID;} YY_BREAK case 44: YY_RULE_SETUP #line 143 "util/configlexer.lex" -{ YDOUT; return VAR_USE_CAPS_FOR_ID;} +{ YDOUT; return VAR_STUB_ZONE;} YY_BREAK case 45: YY_RULE_SETUP #line 144 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_ZONE;} +{ YDOUT; return VAR_NAME;} YY_BREAK case 46: YY_RULE_SETUP #line 145 "util/configlexer.lex" -{ YDOUT; return VAR_NAME;} +{ YDOUT; return VAR_STUB_ADDR;} YY_BREAK case 47: YY_RULE_SETUP #line 146 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_ADDR;} +{ YDOUT; return VAR_STUB_HOST;} YY_BREAK case 48: YY_RULE_SETUP #line 147 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_HOST;} +{ YDOUT; return VAR_FORWARD_ZONE;} YY_BREAK case 49: YY_RULE_SETUP #line 148 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ZONE;} +{ YDOUT; return VAR_FORWARD_ADDR;} YY_BREAK case 50: YY_RULE_SETUP #line 149 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ADDR;} +{ YDOUT; return VAR_FORWARD_HOST;} YY_BREAK case 51: YY_RULE_SETUP #line 150 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_HOST;} +{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} YY_BREAK case 52: YY_RULE_SETUP #line 151 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} +{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} YY_BREAK case 53: YY_RULE_SETUP #line 152 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} +{ YDOUT; return VAR_ACCESS_CONTROL;} YY_BREAK case 54: YY_RULE_SETUP #line 153 "util/configlexer.lex" -{ YDOUT; return VAR_ACCESS_CONTROL;} +{ YDOUT; return VAR_HIDE_IDENTITY;} YY_BREAK case 55: YY_RULE_SETUP #line 154 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_IDENTITY;} +{ YDOUT; return VAR_HIDE_VERSION;} YY_BREAK case 56: YY_RULE_SETUP #line 155 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_VERSION;} +{ YDOUT; return VAR_IDENTITY;} YY_BREAK case 57: YY_RULE_SETUP #line 156 "util/configlexer.lex" -{ YDOUT; return VAR_IDENTITY;} +{ YDOUT; return VAR_VERSION;} YY_BREAK case 58: YY_RULE_SETUP #line 157 "util/configlexer.lex" -{ YDOUT; return VAR_VERSION;} +{ YDOUT; return VAR_MODULE_CONF;} YY_BREAK case 59: YY_RULE_SETUP #line 158 "util/configlexer.lex" -{ YDOUT; return VAR_MODULE_CONF;} +{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} YY_BREAK case 60: YY_RULE_SETUP #line 159 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} +{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} YY_BREAK case 61: YY_RULE_SETUP #line 160 "util/configlexer.lex" -{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} +{ YDOUT; return VAR_TRUST_ANCHOR;} YY_BREAK case 62: YY_RULE_SETUP #line 161 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR;} +{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} YY_BREAK case 63: YY_RULE_SETUP #line 162 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} +{ YDOUT; return VAR_BOGUS_TTL;} YY_BREAK case 64: YY_RULE_SETUP #line 163 "util/configlexer.lex" -{ YDOUT; return VAR_BOGUS_TTL;} +{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} YY_BREAK case 65: YY_RULE_SETUP #line 164 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} +{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} YY_BREAK case 66: YY_RULE_SETUP #line 165 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} +{ YDOUT; return VAR_KEY_CACHE_SIZE;} YY_BREAK case 67: YY_RULE_SETUP #line 166 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SIZE;} +{ YDOUT; return VAR_KEY_CACHE_SLABS;} YY_BREAK case 68: YY_RULE_SETUP #line 167 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SLABS;} +{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} YY_BREAK case 69: YY_RULE_SETUP #line 168 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} +{ YDOUT; return VAR_USE_SYSLOG;} YY_BREAK case 70: YY_RULE_SETUP #line 169 "util/configlexer.lex" -{ YDOUT; return VAR_USE_SYSLOG;} +{ YDOUT; return VAR_LOCAL_ZONE;} YY_BREAK case 71: YY_RULE_SETUP #line 170 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_ZONE;} +{ YDOUT; return VAR_LOCAL_DATA;} YY_BREAK case 72: YY_RULE_SETUP #line 171 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_DATA;} +{ YDOUT; return VAR_STATISTICS_INTERVAL;} YY_BREAK case 73: YY_RULE_SETUP #line 172 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_INTERVAL;} +{ YDOUT; return VAR_STATISTICS_CUMULATIVE;} YY_BREAK case 74: +/* rule 74 can match eol */ YY_RULE_SETUP #line 173 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_CUMULATIVE;} - YY_BREAK -case 75: -/* rule 75 can match eol */ -YY_RULE_SETUP -#line 174 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 76: +case 75: YY_RULE_SETUP -#line 177 "util/configlexer.lex" +#line 176 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 178 "util/configlexer.lex" +#line 177 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 77: +case 76: YY_RULE_SETUP -#line 182 "util/configlexer.lex" +#line 181 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 78: -/* rule 78 can match eol */ +case 77: +/* rule 77 can match eol */ YY_RULE_SETUP -#line 183 "util/configlexer.lex" +#line 182 "util/configlexer.lex" { cfg_parser->line++; yymore(); } YY_BREAK -case 79: +case 78: YY_RULE_SETUP -#line 184 "util/configlexer.lex" +#line 183 "util/configlexer.lex" { LEXOUT(("QE ")); BEGIN(INITIAL); @@ -1842,32 +1837,32 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 80: +case 79: YY_RULE_SETUP -#line 195 "util/configlexer.lex" +#line 194 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 196 "util/configlexer.lex" +#line 195 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 81: +case 80: YY_RULE_SETUP -#line 200 "util/configlexer.lex" +#line 199 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 82: -/* rule 82 can match eol */ +case 81: +/* rule 81 can match eol */ YY_RULE_SETUP -#line 201 "util/configlexer.lex" +#line 200 "util/configlexer.lex" { cfg_parser->line++; yymore(); } YY_BREAK -case 83: +case 82: YY_RULE_SETUP -#line 202 "util/configlexer.lex" +#line 201 "util/configlexer.lex" { LEXOUT(("SQE ")); BEGIN(INITIAL); @@ -1879,37 +1874,37 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 84: +case 83: YY_RULE_SETUP -#line 213 "util/configlexer.lex" +#line 212 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 214 "util/configlexer.lex" +#line 213 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(INITIAL); } YY_BREAK +case 84: +YY_RULE_SETUP +#line 217 "util/configlexer.lex" +{ LEXOUT(("ISP ")); /* ignore */ } + YY_BREAK case 85: +/* rule 85 can match eol */ YY_RULE_SETUP #line 218 "util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 86: -/* rule 86 can match eol */ YY_RULE_SETUP #line 219 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK case 87: YY_RULE_SETUP #line 220 "util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } - YY_BREAK -case 88: -YY_RULE_SETUP -#line 221 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); @@ -1917,26 +1912,26 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 226 "util/configlexer.lex" +#line 225 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 89: +case 88: YY_RULE_SETUP -#line 230 "util/configlexer.lex" +#line 229 "util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 90: -/* rule 90 can match eol */ +case 89: +/* rule 89 can match eol */ YY_RULE_SETUP -#line 231 "util/configlexer.lex" +#line 230 "util/configlexer.lex" { cfg_parser->line++; yymore(); } YY_BREAK -case 91: +case 90: YY_RULE_SETUP -#line 232 "util/configlexer.lex" +#line 231 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -1945,7 +1940,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 238 "util/configlexer.lex" +#line 237 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -1956,18 +1951,18 @@ case YY_STATE_EOF(INITIAL): } } YY_BREAK -case 92: +case 91: YY_RULE_SETUP -#line 248 "util/configlexer.lex" +#line 247 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); yylval.str = strdup(yytext); return STRING; } YY_BREAK -case 93: +case 92: YY_RULE_SETUP -#line 251 "util/configlexer.lex" +#line 250 "util/configlexer.lex" ECHO; YY_BREAK -#line 1970 "" +#line 1965 "" case YY_END_OF_BUFFER: { @@ -2249,7 +2244,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 >= 808 ) + if ( yy_current_state >= 807 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2277,11 +2272,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 >= 808 ) + if ( yy_current_state >= 807 ) 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 == 807); + yy_is_jam = (yy_current_state == 806); return yy_is_jam ? 0 : yy_current_state; } @@ -2914,7 +2909,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 251 "util/configlexer.lex" +#line 250 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index b4d55d955..7b4823eed 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -103,7 +103,6 @@ server{COLON} { YDOUT; return VAR_SERVER;} num-threads{COLON} { YDOUT; return VAR_NUM_THREADS;} verbosity{COLON} { YDOUT; return VAR_VERBOSITY;} port{COLON} { YDOUT; return VAR_PORT;} -outgoing-port{COLON} { YDOUT; return VAR_OUTGOING_PORT;} outgoing-range{COLON} { YDOUT; return VAR_OUTGOING_RANGE;} outgoing-port-permit{COLON} { YDOUT; return VAR_OUTGOING_PORT_PERMIT;} outgoing-port-avoid{COLON} { YDOUT; return VAR_OUTGOING_PORT_AVOID;} diff --git a/util/configparser.c b/util/configparser.c index f2681c7f3..93e2d72dd 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -78,74 +78,73 @@ VAR_VERBOSITY = 267, VAR_NUM_THREADS = 268, VAR_PORT = 269, - VAR_OUTGOING_PORT = 270, - VAR_OUTGOING_RANGE = 271, - VAR_INTERFACE = 272, - VAR_DO_IP4 = 273, - VAR_DO_IP6 = 274, - VAR_DO_UDP = 275, - VAR_DO_TCP = 276, - VAR_CHROOT = 277, - VAR_USERNAME = 278, - VAR_DIRECTORY = 279, - VAR_LOGFILE = 280, - VAR_PIDFILE = 281, - VAR_MSG_CACHE_SIZE = 282, - VAR_MSG_CACHE_SLABS = 283, - VAR_NUM_QUERIES_PER_THREAD = 284, - VAR_RRSET_CACHE_SIZE = 285, - VAR_RRSET_CACHE_SLABS = 286, - VAR_OUTGOING_NUM_TCP = 287, - VAR_INFRA_HOST_TTL = 288, - VAR_INFRA_LAME_TTL = 289, - VAR_INFRA_CACHE_SLABS = 290, - VAR_INFRA_CACHE_NUMHOSTS = 291, - VAR_INFRA_CACHE_LAME_SIZE = 292, - VAR_NAME = 293, - VAR_STUB_ZONE = 294, - VAR_STUB_HOST = 295, - VAR_STUB_ADDR = 296, - VAR_TARGET_FETCH_POLICY = 297, - VAR_HARDEN_SHORT_BUFSIZE = 298, - VAR_HARDEN_LARGE_QUERIES = 299, - VAR_FORWARD_ZONE = 300, - VAR_FORWARD_HOST = 301, - VAR_FORWARD_ADDR = 302, - VAR_DO_NOT_QUERY_ADDRESS = 303, - VAR_HIDE_IDENTITY = 304, - VAR_HIDE_VERSION = 305, - VAR_IDENTITY = 306, - VAR_VERSION = 307, - VAR_HARDEN_GLUE = 308, - VAR_MODULE_CONF = 309, - VAR_TRUST_ANCHOR_FILE = 310, - VAR_TRUST_ANCHOR = 311, - VAR_VAL_OVERRIDE_DATE = 312, - VAR_BOGUS_TTL = 313, - VAR_VAL_CLEAN_ADDITIONAL = 314, - VAR_VAL_PERMISSIVE_MODE = 315, - VAR_INCOMING_NUM_TCP = 316, - VAR_MSG_BUFFER_SIZE = 317, - VAR_KEY_CACHE_SIZE = 318, - VAR_KEY_CACHE_SLABS = 319, - VAR_TRUSTED_KEYS_FILE = 320, - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 321, - VAR_USE_SYSLOG = 322, - VAR_OUTGOING_INTERFACE = 323, - VAR_ROOT_HINTS = 324, - VAR_DO_NOT_QUERY_LOCALHOST = 325, - VAR_CACHE_MAX_TTL = 326, - VAR_HARDEN_DNNSEC_STRIPPED = 327, - VAR_ACCESS_CONTROL = 328, - VAR_LOCAL_ZONE = 329, - VAR_LOCAL_DATA = 330, - VAR_INTERFACE_AUTOMATIC = 331, - VAR_STATISTICS_INTERVAL = 332, - VAR_DO_DAEMONIZE = 333, - VAR_USE_CAPS_FOR_ID = 334, - VAR_STATISTICS_CUMULATIVE = 335, - VAR_OUTGOING_PORT_PERMIT = 336, - VAR_OUTGOING_PORT_AVOID = 337 + VAR_OUTGOING_RANGE = 270, + VAR_INTERFACE = 271, + VAR_DO_IP4 = 272, + VAR_DO_IP6 = 273, + VAR_DO_UDP = 274, + VAR_DO_TCP = 275, + VAR_CHROOT = 276, + VAR_USERNAME = 277, + VAR_DIRECTORY = 278, + VAR_LOGFILE = 279, + VAR_PIDFILE = 280, + VAR_MSG_CACHE_SIZE = 281, + VAR_MSG_CACHE_SLABS = 282, + VAR_NUM_QUERIES_PER_THREAD = 283, + VAR_RRSET_CACHE_SIZE = 284, + VAR_RRSET_CACHE_SLABS = 285, + VAR_OUTGOING_NUM_TCP = 286, + VAR_INFRA_HOST_TTL = 287, + VAR_INFRA_LAME_TTL = 288, + VAR_INFRA_CACHE_SLABS = 289, + VAR_INFRA_CACHE_NUMHOSTS = 290, + VAR_INFRA_CACHE_LAME_SIZE = 291, + VAR_NAME = 292, + VAR_STUB_ZONE = 293, + VAR_STUB_HOST = 294, + VAR_STUB_ADDR = 295, + VAR_TARGET_FETCH_POLICY = 296, + VAR_HARDEN_SHORT_BUFSIZE = 297, + VAR_HARDEN_LARGE_QUERIES = 298, + VAR_FORWARD_ZONE = 299, + VAR_FORWARD_HOST = 300, + VAR_FORWARD_ADDR = 301, + VAR_DO_NOT_QUERY_ADDRESS = 302, + VAR_HIDE_IDENTITY = 303, + VAR_HIDE_VERSION = 304, + VAR_IDENTITY = 305, + VAR_VERSION = 306, + VAR_HARDEN_GLUE = 307, + VAR_MODULE_CONF = 308, + VAR_TRUST_ANCHOR_FILE = 309, + VAR_TRUST_ANCHOR = 310, + VAR_VAL_OVERRIDE_DATE = 311, + VAR_BOGUS_TTL = 312, + VAR_VAL_CLEAN_ADDITIONAL = 313, + VAR_VAL_PERMISSIVE_MODE = 314, + VAR_INCOMING_NUM_TCP = 315, + VAR_MSG_BUFFER_SIZE = 316, + VAR_KEY_CACHE_SIZE = 317, + VAR_KEY_CACHE_SLABS = 318, + VAR_TRUSTED_KEYS_FILE = 319, + VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320, + VAR_USE_SYSLOG = 321, + VAR_OUTGOING_INTERFACE = 322, + VAR_ROOT_HINTS = 323, + VAR_DO_NOT_QUERY_LOCALHOST = 324, + VAR_CACHE_MAX_TTL = 325, + VAR_HARDEN_DNNSEC_STRIPPED = 326, + VAR_ACCESS_CONTROL = 327, + VAR_LOCAL_ZONE = 328, + VAR_LOCAL_DATA = 329, + VAR_INTERFACE_AUTOMATIC = 330, + VAR_STATISTICS_INTERVAL = 331, + VAR_DO_DAEMONIZE = 332, + VAR_USE_CAPS_FOR_ID = 333, + VAR_STATISTICS_CUMULATIVE = 334, + VAR_OUTGOING_PORT_PERMIT = 335, + VAR_OUTGOING_PORT_AVOID = 336 }; #endif /* Tokens. */ @@ -161,74 +160,73 @@ #define VAR_VERBOSITY 267 #define VAR_NUM_THREADS 268 #define VAR_PORT 269 -#define VAR_OUTGOING_PORT 270 -#define VAR_OUTGOING_RANGE 271 -#define VAR_INTERFACE 272 -#define VAR_DO_IP4 273 -#define VAR_DO_IP6 274 -#define VAR_DO_UDP 275 -#define VAR_DO_TCP 276 -#define VAR_CHROOT 277 -#define VAR_USERNAME 278 -#define VAR_DIRECTORY 279 -#define VAR_LOGFILE 280 -#define VAR_PIDFILE 281 -#define VAR_MSG_CACHE_SIZE 282 -#define VAR_MSG_CACHE_SLABS 283 -#define VAR_NUM_QUERIES_PER_THREAD 284 -#define VAR_RRSET_CACHE_SIZE 285 -#define VAR_RRSET_CACHE_SLABS 286 -#define VAR_OUTGOING_NUM_TCP 287 -#define VAR_INFRA_HOST_TTL 288 -#define VAR_INFRA_LAME_TTL 289 -#define VAR_INFRA_CACHE_SLABS 290 -#define VAR_INFRA_CACHE_NUMHOSTS 291 -#define VAR_INFRA_CACHE_LAME_SIZE 292 -#define VAR_NAME 293 -#define VAR_STUB_ZONE 294 -#define VAR_STUB_HOST 295 -#define VAR_STUB_ADDR 296 -#define VAR_TARGET_FETCH_POLICY 297 -#define VAR_HARDEN_SHORT_BUFSIZE 298 -#define VAR_HARDEN_LARGE_QUERIES 299 -#define VAR_FORWARD_ZONE 300 -#define VAR_FORWARD_HOST 301 -#define VAR_FORWARD_ADDR 302 -#define VAR_DO_NOT_QUERY_ADDRESS 303 -#define VAR_HIDE_IDENTITY 304 -#define VAR_HIDE_VERSION 305 -#define VAR_IDENTITY 306 -#define VAR_VERSION 307 -#define VAR_HARDEN_GLUE 308 -#define VAR_MODULE_CONF 309 -#define VAR_TRUST_ANCHOR_FILE 310 -#define VAR_TRUST_ANCHOR 311 -#define VAR_VAL_OVERRIDE_DATE 312 -#define VAR_BOGUS_TTL 313 -#define VAR_VAL_CLEAN_ADDITIONAL 314 -#define VAR_VAL_PERMISSIVE_MODE 315 -#define VAR_INCOMING_NUM_TCP 316 -#define VAR_MSG_BUFFER_SIZE 317 -#define VAR_KEY_CACHE_SIZE 318 -#define VAR_KEY_CACHE_SLABS 319 -#define VAR_TRUSTED_KEYS_FILE 320 -#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 321 -#define VAR_USE_SYSLOG 322 -#define VAR_OUTGOING_INTERFACE 323 -#define VAR_ROOT_HINTS 324 -#define VAR_DO_NOT_QUERY_LOCALHOST 325 -#define VAR_CACHE_MAX_TTL 326 -#define VAR_HARDEN_DNNSEC_STRIPPED 327 -#define VAR_ACCESS_CONTROL 328 -#define VAR_LOCAL_ZONE 329 -#define VAR_LOCAL_DATA 330 -#define VAR_INTERFACE_AUTOMATIC 331 -#define VAR_STATISTICS_INTERVAL 332 -#define VAR_DO_DAEMONIZE 333 -#define VAR_USE_CAPS_FOR_ID 334 -#define VAR_STATISTICS_CUMULATIVE 335 -#define VAR_OUTGOING_PORT_PERMIT 336 -#define VAR_OUTGOING_PORT_AVOID 337 +#define VAR_OUTGOING_RANGE 270 +#define VAR_INTERFACE 271 +#define VAR_DO_IP4 272 +#define VAR_DO_IP6 273 +#define VAR_DO_UDP 274 +#define VAR_DO_TCP 275 +#define VAR_CHROOT 276 +#define VAR_USERNAME 277 +#define VAR_DIRECTORY 278 +#define VAR_LOGFILE 279 +#define VAR_PIDFILE 280 +#define VAR_MSG_CACHE_SIZE 281 +#define VAR_MSG_CACHE_SLABS 282 +#define VAR_NUM_QUERIES_PER_THREAD 283 +#define VAR_RRSET_CACHE_SIZE 284 +#define VAR_RRSET_CACHE_SLABS 285 +#define VAR_OUTGOING_NUM_TCP 286 +#define VAR_INFRA_HOST_TTL 287 +#define VAR_INFRA_LAME_TTL 288 +#define VAR_INFRA_CACHE_SLABS 289 +#define VAR_INFRA_CACHE_NUMHOSTS 290 +#define VAR_INFRA_CACHE_LAME_SIZE 291 +#define VAR_NAME 292 +#define VAR_STUB_ZONE 293 +#define VAR_STUB_HOST 294 +#define VAR_STUB_ADDR 295 +#define VAR_TARGET_FETCH_POLICY 296 +#define VAR_HARDEN_SHORT_BUFSIZE 297 +#define VAR_HARDEN_LARGE_QUERIES 298 +#define VAR_FORWARD_ZONE 299 +#define VAR_FORWARD_HOST 300 +#define VAR_FORWARD_ADDR 301 +#define VAR_DO_NOT_QUERY_ADDRESS 302 +#define VAR_HIDE_IDENTITY 303 +#define VAR_HIDE_VERSION 304 +#define VAR_IDENTITY 305 +#define VAR_VERSION 306 +#define VAR_HARDEN_GLUE 307 +#define VAR_MODULE_CONF 308 +#define VAR_TRUST_ANCHOR_FILE 309 +#define VAR_TRUST_ANCHOR 310 +#define VAR_VAL_OVERRIDE_DATE 311 +#define VAR_BOGUS_TTL 312 +#define VAR_VAL_CLEAN_ADDITIONAL 313 +#define VAR_VAL_PERMISSIVE_MODE 314 +#define VAR_INCOMING_NUM_TCP 315 +#define VAR_MSG_BUFFER_SIZE 316 +#define VAR_KEY_CACHE_SIZE 317 +#define VAR_KEY_CACHE_SLABS 318 +#define VAR_TRUSTED_KEYS_FILE 319 +#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 320 +#define VAR_USE_SYSLOG 321 +#define VAR_OUTGOING_INTERFACE 322 +#define VAR_ROOT_HINTS 323 +#define VAR_DO_NOT_QUERY_LOCALHOST 324 +#define VAR_CACHE_MAX_TTL 325 +#define VAR_HARDEN_DNNSEC_STRIPPED 326 +#define VAR_ACCESS_CONTROL 327 +#define VAR_LOCAL_ZONE 328 +#define VAR_LOCAL_DATA 329 +#define VAR_INTERFACE_AUTOMATIC 330 +#define VAR_STATISTICS_INTERVAL 331 +#define VAR_DO_DAEMONIZE 332 +#define VAR_USE_CAPS_FOR_ID 333 +#define VAR_STATISTICS_CUMULATIVE 334 +#define VAR_OUTGOING_PORT_PERMIT 335 +#define VAR_OUTGOING_PORT_AVOID 336 @@ -287,7 +285,7 @@ typedef union YYSTYPE char* str; } /* Line 187 of yacc.c. */ -#line 291 "util/configparser.c" +#line 289 "util/configparser.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -300,7 +298,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 304 "util/configparser.c" +#line 302 "util/configparser.c" #ifdef short # undef short @@ -515,20 +513,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 145 +#define YYLAST 143 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 83 +#define YYNTOKENS 82 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 82 +#define YYNNTS 81 /* YYNRULES -- Number of rules. */ -#define YYNRULES 155 +#define YYNRULES 153 /* YYNRULES -- Number of states. */ -#define YYNSTATES 228 +#define YYNSTATES 225 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 337 +#define YYMAXUTOK 336 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -569,7 +567,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 + 75, 76, 77, 78, 79, 80, 81 }; #if YYDEBUG @@ -584,80 +582,80 @@ 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, 155, 156, 158, 160, - 162, 164, 167, 168, 170, 172, 174, 177, 180, 183, - 186, 189, 192, 195, 198, 201, 204, 207, 210, 213, - 216, 219, 222, 225, 228, 231, 234, 237, 240, 243, - 246, 249, 252, 255, 258, 261, 264, 267, 270, 273, - 276, 279, 282, 285, 288, 291, 294, 297, 300, 303, - 306, 309, 312, 315, 318, 321, 324, 327, 330, 334, - 337, 340, 343, 346, 349, 352, 355, 358, 361, 365, - 368, 371, 374, 377, 380, 383 + 142, 144, 146, 148, 150, 153, 154, 156, 158, 160, + 162, 165, 166, 168, 170, 172, 175, 178, 181, 184, + 187, 190, 193, 196, 199, 202, 205, 208, 211, 214, + 217, 220, 223, 226, 229, 232, 235, 238, 241, 244, + 247, 250, 253, 256, 259, 262, 265, 268, 271, 274, + 277, 280, 283, 286, 289, 292, 295, 298, 301, 304, + 307, 310, 313, 316, 319, 322, 325, 329, 332, 335, + 338, 341, 344, 347, 350, 353, 356, 360, 363, 366, + 369, 372, 375, 378 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 84, 0, -1, -1, 84, 85, -1, 86, 87, -1, - 89, 90, -1, 92, 93, -1, 11, -1, 87, 88, - -1, -1, 95, -1, 96, -1, 99, -1, 102, -1, - 103, -1, 109, -1, 110, -1, 111, -1, 112, -1, - 100, -1, 115, -1, 116, -1, 117, -1, 118, -1, - 119, -1, 129, -1, 130, -1, 131, -1, 132, -1, - 133, -1, 106, -1, 134, -1, 135, -1, 138, -1, - 136, -1, 137, -1, 139, -1, 140, -1, 141, -1, - 145, -1, 124, -1, 125, -1, 126, -1, 127, -1, - 142, -1, 148, -1, 121, -1, 123, -1, 149, -1, - 151, -1, 152, -1, 153, -1, 107, -1, 128, -1, - 155, -1, 156, -1, 122, -1, 154, -1, 114, -1, - 101, -1, 120, -1, 146, -1, 150, -1, 143, -1, - 147, -1, 157, -1, 158, -1, 108, -1, 97, -1, - 113, -1, 144, -1, 98, -1, 104, -1, 105, -1, - 39, -1, 90, 91, -1, -1, 159, -1, 160, -1, - 161, -1, 45, -1, 93, 94, -1, -1, 162, -1, - 163, -1, 164, -1, 13, 10, -1, 12, 10, -1, - 77, 10, -1, 80, 10, -1, 14, 10, -1, 17, - 10, -1, 68, 10, -1, 15, 10, -1, 16, 10, - -1, 81, 10, -1, 82, 10, -1, 32, 10, -1, - 61, 10, -1, 76, 10, -1, 18, 10, -1, 19, - 10, -1, 20, 10, -1, 21, 10, -1, 78, 10, - -1, 67, 10, -1, 22, 10, -1, 23, 10, -1, - 24, 10, -1, 25, 10, -1, 26, 10, -1, 69, - 10, -1, 55, 10, -1, 65, 10, -1, 56, 10, - -1, 49, 10, -1, 50, 10, -1, 51, 10, -1, - 52, 10, -1, 62, 10, -1, 27, 10, -1, 28, - 10, -1, 29, 10, -1, 30, 10, -1, 31, 10, - -1, 33, 10, -1, 34, 10, -1, 36, 10, -1, - 37, 10, -1, 35, 10, -1, 42, 10, -1, 43, - 10, -1, 44, 10, -1, 53, 10, -1, 72, 10, - -1, 79, 10, -1, 48, 10, -1, 70, 10, -1, - 73, 10, 10, -1, 54, 10, -1, 57, 10, -1, - 71, 10, -1, 58, 10, -1, 59, 10, -1, 60, - 10, -1, 66, 10, -1, 63, 10, -1, 64, 10, - -1, 74, 10, 10, -1, 75, 10, -1, 38, 10, - -1, 40, 10, -1, 41, 10, -1, 38, 10, -1, - 46, 10, -1, 47, 10, -1 + 83, 0, -1, -1, 83, 84, -1, 85, 86, -1, + 88, 89, -1, 91, 92, -1, 11, -1, 86, 87, + -1, -1, 94, -1, 95, -1, 98, -1, 101, -1, + 107, -1, 108, -1, 109, -1, 110, -1, 99, -1, + 113, -1, 114, -1, 115, -1, 116, -1, 117, -1, + 127, -1, 128, -1, 129, -1, 130, -1, 131, -1, + 104, -1, 132, -1, 133, -1, 136, -1, 134, -1, + 135, -1, 137, -1, 138, -1, 139, -1, 143, -1, + 122, -1, 123, -1, 124, -1, 125, -1, 140, -1, + 146, -1, 119, -1, 121, -1, 147, -1, 149, -1, + 150, -1, 151, -1, 105, -1, 126, -1, 153, -1, + 154, -1, 120, -1, 152, -1, 112, -1, 100, -1, + 118, -1, 144, -1, 148, -1, 141, -1, 145, -1, + 155, -1, 156, -1, 106, -1, 96, -1, 111, -1, + 142, -1, 97, -1, 102, -1, 103, -1, 38, -1, + 89, 90, -1, -1, 157, -1, 158, -1, 159, -1, + 44, -1, 92, 93, -1, -1, 160, -1, 161, -1, + 162, -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, 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 }; /* 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, 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, 137, 149, 150, 151, 151, 151, - 153, 165, 166, 167, 167, 167, 169, 178, 187, 198, - 207, 216, 229, 244, 253, 262, 271, 280, 289, 298, - 307, 316, 325, 334, 343, 352, 366, 373, 380, 387, - 395, 402, 409, 417, 425, 432, 441, 450, 457, 464, - 475, 483, 496, 505, 513, 526, 535, 544, 553, 562, - 575, 582, 592, 602, 612, 622, 632, 639, 649, 662, - 669, 687, 696, 705, 715, 725, 732, 740, 753, 772, - 779, 786, 793, 800, 807, 814 + 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, 137, 149, 150, 151, 151, 151, 153, + 165, 166, 167, 167, 167, 169, 178, 187, 198, 207, + 216, 229, 244, 253, 262, 271, 280, 289, 298, 307, + 316, 325, 334, 343, 357, 364, 371, 378, 386, 393, + 400, 408, 416, 423, 432, 441, 448, 455, 466, 474, + 487, 496, 504, 517, 526, 535, 544, 553, 566, 573, + 583, 593, 603, 613, 623, 630, 640, 653, 660, 678, + 687, 696, 706, 716, 723, 731, 744, 763, 770, 777, + 784, 791, 798, 805 }; #endif @@ -668,10 +666,10 @@ static const char *const yytname[] = { "$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT", "COLON", "ANY", "ZONESTR", "STRING", "VAR_SERVER", "VAR_VERBOSITY", - "VAR_NUM_THREADS", "VAR_PORT", "VAR_OUTGOING_PORT", "VAR_OUTGOING_RANGE", - "VAR_INTERFACE", "VAR_DO_IP4", "VAR_DO_IP6", "VAR_DO_UDP", "VAR_DO_TCP", - "VAR_CHROOT", "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", - "VAR_PIDFILE", "VAR_MSG_CACHE_SIZE", "VAR_MSG_CACHE_SLABS", + "VAR_NUM_THREADS", "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE", + "VAR_DO_IP4", "VAR_DO_IP6", "VAR_DO_UDP", "VAR_DO_TCP", "VAR_CHROOT", + "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE", + "VAR_MSG_CACHE_SIZE", "VAR_MSG_CACHE_SLABS", "VAR_NUM_QUERIES_PER_THREAD", "VAR_RRSET_CACHE_SIZE", "VAR_RRSET_CACHE_SLABS", "VAR_OUTGOING_NUM_TCP", "VAR_INFRA_HOST_TTL", "VAR_INFRA_LAME_TTL", "VAR_INFRA_CACHE_SLABS", @@ -697,11 +695,10 @@ static const char *const yytname[] = "content_forward", "server_num_threads", "server_verbosity", "server_statistics_interval", "server_statistics_cumulative", "server_port", "server_interface", "server_outgoing_interface", - "server_outgoing_port", "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_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_trust_anchor_file", @@ -739,29 +736,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 + 335, 336 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 83, 84, 84, 85, 85, 85, 86, 87, 87, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 89, 90, 90, 91, 91, 91, - 92, 93, 93, 94, 94, 94, 95, 96, 97, 98, + 0, 82, 83, 83, 84, 84, 84, 85, 86, 86, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 88, 89, 89, 90, 90, 90, 91, + 92, 92, 93, 93, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164 + 159, 160, 161, 162 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -774,15 +771,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, 2, 0, 1, 1, 1, - 1, 2, 0, 1, 1, 1, 2, 2, 2, 2, + 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, 2, 3, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, - 2, 2, 2, 2, 2, 2 + 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, + 2, 2, 2, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -790,43 +787,43 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 7, 74, 80, 3, 9, 76, 82, + 2, 0, 1, 7, 73, 79, 3, 9, 75, 81, 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, 8, 10, 11, - 68, 71, 12, 19, 59, 13, 14, 72, 73, 30, - 52, 67, 15, 16, 17, 18, 69, 58, 20, 21, - 22, 23, 24, 60, 46, 56, 47, 40, 41, 42, - 43, 53, 25, 26, 27, 28, 29, 31, 32, 34, - 35, 33, 36, 37, 38, 44, 63, 70, 39, 61, - 64, 45, 48, 62, 49, 50, 51, 57, 54, 55, - 65, 66, 0, 0, 0, 75, 77, 78, 79, 0, - 0, 0, 81, 83, 84, 85, 87, 86, 90, 93, - 94, 91, 100, 101, 102, 103, 106, 107, 108, 109, - 110, 120, 121, 122, 123, 124, 97, 125, 126, 129, - 127, 128, 130, 131, 132, 136, 115, 116, 117, 118, - 133, 139, 112, 114, 140, 142, 143, 144, 98, 119, - 146, 147, 113, 145, 105, 92, 111, 137, 141, 134, - 0, 0, 149, 99, 88, 104, 135, 89, 95, 96, - 150, 151, 152, 153, 154, 155, 138, 148 + 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, 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, 74, 76, 77, 78, 0, 0, 0, + 80, 82, 83, 84, 86, 85, 89, 92, 90, 98, + 99, 100, 101, 104, 105, 106, 107, 108, 118, 119, + 120, 121, 122, 95, 123, 124, 127, 125, 126, 128, + 129, 130, 134, 113, 114, 115, 116, 131, 137, 110, + 112, 138, 140, 141, 142, 96, 117, 144, 145, 111, + 143, 103, 91, 109, 135, 139, 132, 0, 0, 147, + 97, 87, 102, 133, 88, 93, 94, 148, 149, 150, + 151, 152, 153, 136, 146 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 6, 7, 10, 77, 8, 11, 145, 9, - 12, 152, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 146, 147, 148, 153, - 154, 155 + -1, 1, 6, 7, 10, 76, 8, 11, 143, 9, + 12, 150, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 144, 145, 146, 151, 152, + 153 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -834,29 +831,29 @@ static const yytype_int16 yydefgoto[] = #define YYPACT_NINF -13 static const yytype_int16 yypact[] = { - -13, 71, -13, -13, -13, -13, -13, -13, -13, -13, - -12, 35, 34, 16, 17, 18, 19, 23, 24, 25, - 64, 67, 68, 69, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 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, -13, -13, -13, + -13, 70, -13, -13, -13, -13, -13, -13, -13, -13, + -12, 35, 34, 15, 16, 17, 18, 22, 23, 24, + 63, 66, 67, 68, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, 128, 129, 130, -13, -13, -13, -13, 131, - 132, 133, -13, -13, -13, -13, -13, -13, -13, -13, + 126, 127, 128, -13, -13, -13, -13, 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, - 134, 135, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13 + -13, -13, -13, -13, -13, -13, -13, 132, 133, -13, + -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, + -13, -13, -13, -13, -13 }; /* YYPGOTO[NTERM-NUM]. */ @@ -870,7 +867,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 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -882,67 +879,67 @@ static const yytype_uint8 yytable[] = { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 156, 157, 158, 159, - 39, 40, 41, 160, 161, 162, 42, 43, 44, 45, + 33, 34, 35, 36, 37, 154, 155, 156, 157, 38, + 39, 40, 158, 159, 160, 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, 2, 149, 142, 163, 143, 144, 164, 165, 166, - 150, 151, 3, 167, 168, 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, - 4, 194, 195, 196, 197, 198, 5, 199, 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 + 2, 147, 140, 161, 141, 142, 162, 163, 164, 148, + 149, 3, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 4, 191, + 192, 193, 194, 195, 5, 196, 197, 198, 199, 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 }; static const yytype_uint8 yycheck[] = { 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 10, 10, 10, 10, - 42, 43, 44, 10, 10, 10, 48, 49, 50, 51, + 32, 33, 34, 35, 36, 10, 10, 10, 10, 41, + 42, 43, 10, 10, 10, 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, 0, 38, 38, 10, 40, 41, 10, 10, 10, - 46, 47, 11, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 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, - 39, 10, 10, 10, 10, 10, 45, 10, 10, 10, + 10, 10, 10, 10, 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 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 84, 0, 11, 39, 45, 85, 86, 89, 92, - 87, 90, 93, 12, 13, 14, 15, 16, 17, 18, + 0, 83, 0, 11, 38, 44, 84, 85, 88, 91, + 86, 89, 92, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 42, - 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, + 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, 88, 95, 96, + 76, 77, 78, 79, 80, 81, 87, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 38, 40, 41, 91, 159, 160, 161, 38, - 46, 47, 94, 162, 163, 164, 10, 10, 10, 10, + 37, 39, 40, 90, 157, 158, 159, 37, 45, 46, + 93, 160, 161, 162, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10 }; #define yyerrok (yyerrstatus = 0) @@ -1763,7 +1760,7 @@ yyreduce: } break; - case 74: + case 73: #line 138 "util/configparser.y" { struct config_stub* s; @@ -1777,7 +1774,7 @@ yyreduce: } break; - case 80: + case 79: #line 154 "util/configparser.y" { struct config_stub* s; @@ -1791,7 +1788,7 @@ yyreduce: } break; - case 86: + case 85: #line 170 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1802,7 +1799,7 @@ yyreduce: } break; - case 87: + case 86: #line 179 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1813,7 +1810,7 @@ yyreduce: } break; - case 88: + case 87: #line 188 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1826,7 +1823,7 @@ yyreduce: } break; - case 89: + case 88: #line 199 "util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1837,7 +1834,7 @@ yyreduce: } break; - case 90: + case 89: #line 208 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1848,7 +1845,7 @@ yyreduce: } break; - case 91: + case 90: #line 217 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1863,7 +1860,7 @@ yyreduce: } break; - case 92: + case 91: #line 230 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1880,19 +1877,8 @@ yyreduce: } break; - case 93: + case 92: #line 245 "util/configparser.y" - { - OUTYY(("P(server_outgoing_port:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) - yyerror("port number expected"); - else cfg_parser->cfg->outgoing_base_port = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); - } - break; - - case 94: -#line 254 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -1902,8 +1888,8 @@ yyreduce: } break; - case 95: -#line 263 "util/configparser.y" + case 93: +#line 254 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, @@ -1913,8 +1899,8 @@ yyreduce: } break; - case 96: -#line 272 "util/configparser.y" + case 94: +#line 263 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, @@ -1924,8 +1910,8 @@ yyreduce: } break; - case 97: -#line 281 "util/configparser.y" + case 95: +#line 272 "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) @@ -1935,8 +1921,8 @@ yyreduce: } break; - case 98: -#line 290 "util/configparser.y" + case 96: +#line 281 "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) @@ -1946,8 +1932,8 @@ yyreduce: } break; - case 99: -#line 299 "util/configparser.y" + case 97: +#line 290 "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) @@ -1957,8 +1943,8 @@ yyreduce: } break; - case 100: -#line 308 "util/configparser.y" + case 98: +#line 299 "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) @@ -1968,8 +1954,8 @@ yyreduce: } break; - case 101: -#line 317 "util/configparser.y" + case 99: +#line 308 "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) @@ -1979,8 +1965,8 @@ yyreduce: } break; - case 102: -#line 326 "util/configparser.y" + case 100: +#line 317 "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) @@ -1990,8 +1976,8 @@ yyreduce: } break; - case 103: -#line 335 "util/configparser.y" + case 101: +#line 326 "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) @@ -2001,8 +1987,8 @@ yyreduce: } break; - case 104: -#line 344 "util/configparser.y" + case 102: +#line 335 "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) @@ -2012,8 +1998,8 @@ yyreduce: } break; - case 105: -#line 353 "util/configparser.y" + case 103: +#line 344 "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) @@ -2028,8 +2014,8 @@ yyreduce: } break; - case 106: -#line 367 "util/configparser.y" + case 104: +#line 358 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -2037,8 +2023,8 @@ yyreduce: } break; - case 107: -#line 374 "util/configparser.y" + case 105: +#line 365 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -2046,8 +2032,8 @@ yyreduce: } break; - case 108: -#line 381 "util/configparser.y" + case 106: +#line 372 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -2055,8 +2041,8 @@ yyreduce: } break; - case 109: -#line 388 "util/configparser.y" + case 107: +#line 379 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -2065,8 +2051,8 @@ yyreduce: } break; - case 110: -#line 396 "util/configparser.y" + case 108: +#line 387 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2074,8 +2060,8 @@ yyreduce: } break; - case 111: -#line 403 "util/configparser.y" + case 109: +#line 394 "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))) @@ -2083,8 +2069,8 @@ yyreduce: } break; - case 112: -#line 410 "util/configparser.y" + case 110: +#line 401 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2093,8 +2079,8 @@ yyreduce: } break; - case 113: -#line 418 "util/configparser.y" + case 111: +#line 409 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2103,8 +2089,8 @@ yyreduce: } break; - case 114: -#line 426 "util/configparser.y" + case 112: +#line 417 "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))) @@ -2112,8 +2098,8 @@ yyreduce: } break; - case 115: -#line 433 "util/configparser.y" + case 113: +#line 424 "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) @@ -2123,8 +2109,8 @@ yyreduce: } break; - case 116: -#line 442 "util/configparser.y" + case 114: +#line 433 "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) @@ -2134,8 +2120,8 @@ yyreduce: } break; - case 117: -#line 451 "util/configparser.y" + case 115: +#line 442 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2143,8 +2129,8 @@ yyreduce: } break; - case 118: -#line 458 "util/configparser.y" + case 116: +#line 449 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2152,8 +2138,8 @@ yyreduce: } break; - case 119: -#line 465 "util/configparser.y" + case 117: +#line 456 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2165,8 +2151,8 @@ yyreduce: } break; - case 120: -#line 476 "util/configparser.y" + case 118: +#line 467 "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)) @@ -2175,8 +2161,8 @@ yyreduce: } break; - case 121: -#line 484 "util/configparser.y" + case 119: +#line 475 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2190,8 +2176,8 @@ yyreduce: } break; - case 122: -#line 497 "util/configparser.y" + case 120: +#line 488 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2201,8 +2187,8 @@ yyreduce: } break; - case 123: -#line 506 "util/configparser.y" + case 121: +#line 497 "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)) @@ -2211,8 +2197,8 @@ yyreduce: } break; - case 124: -#line 514 "util/configparser.y" + case 122: +#line 505 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2226,8 +2212,8 @@ yyreduce: } break; - case 125: -#line 527 "util/configparser.y" + case 123: +#line 518 "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) @@ -2237,8 +2223,8 @@ yyreduce: } break; - case 126: -#line 536 "util/configparser.y" + case 124: +#line 527 "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) @@ -2248,8 +2234,8 @@ yyreduce: } break; - case 127: -#line 545 "util/configparser.y" + case 125: +#line 536 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2259,8 +2245,8 @@ yyreduce: } break; - case 128: -#line 554 "util/configparser.y" + case 126: +#line 545 "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-> @@ -2270,8 +2256,8 @@ yyreduce: } break; - case 129: -#line 563 "util/configparser.y" + case 127: +#line 554 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2285,8 +2271,8 @@ yyreduce: } break; - case 130: -#line 576 "util/configparser.y" + case 128: +#line 567 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -2294,8 +2280,8 @@ yyreduce: } break; - case 131: -#line 583 "util/configparser.y" + case 129: +#line 574 "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) @@ -2306,8 +2292,8 @@ yyreduce: } break; - case 132: -#line 593 "util/configparser.y" + case 130: +#line 584 "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) @@ -2318,8 +2304,8 @@ yyreduce: } break; - case 133: -#line 603 "util/configparser.y" + case 131: +#line 594 "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) @@ -2330,8 +2316,8 @@ yyreduce: } break; - case 134: -#line 613 "util/configparser.y" + case 132: +#line 604 "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) @@ -2342,8 +2328,8 @@ yyreduce: } break; - case 135: -#line 623 "util/configparser.y" + case 133: +#line 614 "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) @@ -2354,8 +2340,8 @@ yyreduce: } break; - case 136: -#line 633 "util/configparser.y" + case 134: +#line 624 "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))) @@ -2363,8 +2349,8 @@ yyreduce: } break; - case 137: -#line 640 "util/configparser.y" + case 135: +#line 631 "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) @@ -2375,8 +2361,8 @@ yyreduce: } break; - case 138: -#line 650 "util/configparser.y" + case 136: +#line 641 "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 && @@ -2390,8 +2376,8 @@ yyreduce: } break; - case 139: -#line 663 "util/configparser.y" + case 137: +#line 654 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -2399,8 +2385,8 @@ yyreduce: } break; - case 140: -#line 670 "util/configparser.y" + case 138: +#line 661 "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) { @@ -2419,8 +2405,8 @@ yyreduce: } break; - case 141: -#line 688 "util/configparser.y" + case 139: +#line 679 "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) @@ -2430,8 +2416,8 @@ yyreduce: } break; - case 142: -#line 697 "util/configparser.y" + case 140: +#line 688 "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) @@ -2441,8 +2427,8 @@ yyreduce: } break; - case 143: -#line 706 "util/configparser.y" + case 141: +#line 697 "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) @@ -2453,8 +2439,8 @@ yyreduce: } break; - case 144: -#line 716 "util/configparser.y" + case 142: +#line 707 "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) @@ -2465,8 +2451,8 @@ yyreduce: } break; - case 145: -#line 726 "util/configparser.y" + case 143: +#line 717 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -2474,8 +2460,8 @@ yyreduce: } break; - case 146: -#line 733 "util/configparser.y" + case 144: +#line 724 "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)) @@ -2484,8 +2470,8 @@ yyreduce: } break; - case 147: -#line 741 "util/configparser.y" + case 145: +#line 732 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2499,8 +2485,8 @@ yyreduce: } break; - case 148: -#line 754 "util/configparser.y" + case 146: +#line 745 "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 && @@ -2520,8 +2506,8 @@ yyreduce: } break; - case 149: -#line 773 "util/configparser.y" + case 147: +#line 764 "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))) @@ -2529,8 +2515,8 @@ yyreduce: } break; - case 150: -#line 780 "util/configparser.y" + case 148: +#line 771 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->stubs->name); @@ -2538,8 +2524,8 @@ yyreduce: } break; - case 151: -#line 787 "util/configparser.y" + case 149: +#line 778 "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))) @@ -2547,8 +2533,8 @@ yyreduce: } break; - case 152: -#line 794 "util/configparser.y" + case 150: +#line 785 "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))) @@ -2556,8 +2542,8 @@ yyreduce: } break; - case 153: -#line 801 "util/configparser.y" + case 151: +#line 792 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->forwards->name); @@ -2565,8 +2551,8 @@ yyreduce: } break; - case 154: -#line 808 "util/configparser.y" + case 152: +#line 799 "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))) @@ -2574,8 +2560,8 @@ yyreduce: } break; - case 155: -#line 815 "util/configparser.y" + case 153: +#line 806 "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))) @@ -2585,7 +2571,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2589 "util/configparser.c" +#line 2575 "util/configparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2799,7 +2785,7 @@ yyreturn: } -#line 821 "util/configparser.y" +#line 812 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 9ddff4f6a..682a315b1 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -51,74 +51,73 @@ VAR_VERBOSITY = 267, VAR_NUM_THREADS = 268, VAR_PORT = 269, - VAR_OUTGOING_PORT = 270, - VAR_OUTGOING_RANGE = 271, - VAR_INTERFACE = 272, - VAR_DO_IP4 = 273, - VAR_DO_IP6 = 274, - VAR_DO_UDP = 275, - VAR_DO_TCP = 276, - VAR_CHROOT = 277, - VAR_USERNAME = 278, - VAR_DIRECTORY = 279, - VAR_LOGFILE = 280, - VAR_PIDFILE = 281, - VAR_MSG_CACHE_SIZE = 282, - VAR_MSG_CACHE_SLABS = 283, - VAR_NUM_QUERIES_PER_THREAD = 284, - VAR_RRSET_CACHE_SIZE = 285, - VAR_RRSET_CACHE_SLABS = 286, - VAR_OUTGOING_NUM_TCP = 287, - VAR_INFRA_HOST_TTL = 288, - VAR_INFRA_LAME_TTL = 289, - VAR_INFRA_CACHE_SLABS = 290, - VAR_INFRA_CACHE_NUMHOSTS = 291, - VAR_INFRA_CACHE_LAME_SIZE = 292, - VAR_NAME = 293, - VAR_STUB_ZONE = 294, - VAR_STUB_HOST = 295, - VAR_STUB_ADDR = 296, - VAR_TARGET_FETCH_POLICY = 297, - VAR_HARDEN_SHORT_BUFSIZE = 298, - VAR_HARDEN_LARGE_QUERIES = 299, - VAR_FORWARD_ZONE = 300, - VAR_FORWARD_HOST = 301, - VAR_FORWARD_ADDR = 302, - VAR_DO_NOT_QUERY_ADDRESS = 303, - VAR_HIDE_IDENTITY = 304, - VAR_HIDE_VERSION = 305, - VAR_IDENTITY = 306, - VAR_VERSION = 307, - VAR_HARDEN_GLUE = 308, - VAR_MODULE_CONF = 309, - VAR_TRUST_ANCHOR_FILE = 310, - VAR_TRUST_ANCHOR = 311, - VAR_VAL_OVERRIDE_DATE = 312, - VAR_BOGUS_TTL = 313, - VAR_VAL_CLEAN_ADDITIONAL = 314, - VAR_VAL_PERMISSIVE_MODE = 315, - VAR_INCOMING_NUM_TCP = 316, - VAR_MSG_BUFFER_SIZE = 317, - VAR_KEY_CACHE_SIZE = 318, - VAR_KEY_CACHE_SLABS = 319, - VAR_TRUSTED_KEYS_FILE = 320, - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 321, - VAR_USE_SYSLOG = 322, - VAR_OUTGOING_INTERFACE = 323, - VAR_ROOT_HINTS = 324, - VAR_DO_NOT_QUERY_LOCALHOST = 325, - VAR_CACHE_MAX_TTL = 326, - VAR_HARDEN_DNNSEC_STRIPPED = 327, - VAR_ACCESS_CONTROL = 328, - VAR_LOCAL_ZONE = 329, - VAR_LOCAL_DATA = 330, - VAR_INTERFACE_AUTOMATIC = 331, - VAR_STATISTICS_INTERVAL = 332, - VAR_DO_DAEMONIZE = 333, - VAR_USE_CAPS_FOR_ID = 334, - VAR_STATISTICS_CUMULATIVE = 335, - VAR_OUTGOING_PORT_PERMIT = 336, - VAR_OUTGOING_PORT_AVOID = 337 + VAR_OUTGOING_RANGE = 270, + VAR_INTERFACE = 271, + VAR_DO_IP4 = 272, + VAR_DO_IP6 = 273, + VAR_DO_UDP = 274, + VAR_DO_TCP = 275, + VAR_CHROOT = 276, + VAR_USERNAME = 277, + VAR_DIRECTORY = 278, + VAR_LOGFILE = 279, + VAR_PIDFILE = 280, + VAR_MSG_CACHE_SIZE = 281, + VAR_MSG_CACHE_SLABS = 282, + VAR_NUM_QUERIES_PER_THREAD = 283, + VAR_RRSET_CACHE_SIZE = 284, + VAR_RRSET_CACHE_SLABS = 285, + VAR_OUTGOING_NUM_TCP = 286, + VAR_INFRA_HOST_TTL = 287, + VAR_INFRA_LAME_TTL = 288, + VAR_INFRA_CACHE_SLABS = 289, + VAR_INFRA_CACHE_NUMHOSTS = 290, + VAR_INFRA_CACHE_LAME_SIZE = 291, + VAR_NAME = 292, + VAR_STUB_ZONE = 293, + VAR_STUB_HOST = 294, + VAR_STUB_ADDR = 295, + VAR_TARGET_FETCH_POLICY = 296, + VAR_HARDEN_SHORT_BUFSIZE = 297, + VAR_HARDEN_LARGE_QUERIES = 298, + VAR_FORWARD_ZONE = 299, + VAR_FORWARD_HOST = 300, + VAR_FORWARD_ADDR = 301, + VAR_DO_NOT_QUERY_ADDRESS = 302, + VAR_HIDE_IDENTITY = 303, + VAR_HIDE_VERSION = 304, + VAR_IDENTITY = 305, + VAR_VERSION = 306, + VAR_HARDEN_GLUE = 307, + VAR_MODULE_CONF = 308, + VAR_TRUST_ANCHOR_FILE = 309, + VAR_TRUST_ANCHOR = 310, + VAR_VAL_OVERRIDE_DATE = 311, + VAR_BOGUS_TTL = 312, + VAR_VAL_CLEAN_ADDITIONAL = 313, + VAR_VAL_PERMISSIVE_MODE = 314, + VAR_INCOMING_NUM_TCP = 315, + VAR_MSG_BUFFER_SIZE = 316, + VAR_KEY_CACHE_SIZE = 317, + VAR_KEY_CACHE_SLABS = 318, + VAR_TRUSTED_KEYS_FILE = 319, + VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320, + VAR_USE_SYSLOG = 321, + VAR_OUTGOING_INTERFACE = 322, + VAR_ROOT_HINTS = 323, + VAR_DO_NOT_QUERY_LOCALHOST = 324, + VAR_CACHE_MAX_TTL = 325, + VAR_HARDEN_DNNSEC_STRIPPED = 326, + VAR_ACCESS_CONTROL = 327, + VAR_LOCAL_ZONE = 328, + VAR_LOCAL_DATA = 329, + VAR_INTERFACE_AUTOMATIC = 330, + VAR_STATISTICS_INTERVAL = 331, + VAR_DO_DAEMONIZE = 332, + VAR_USE_CAPS_FOR_ID = 333, + VAR_STATISTICS_CUMULATIVE = 334, + VAR_OUTGOING_PORT_PERMIT = 335, + VAR_OUTGOING_PORT_AVOID = 336 }; #endif /* Tokens. */ @@ -134,74 +133,73 @@ #define VAR_VERBOSITY 267 #define VAR_NUM_THREADS 268 #define VAR_PORT 269 -#define VAR_OUTGOING_PORT 270 -#define VAR_OUTGOING_RANGE 271 -#define VAR_INTERFACE 272 -#define VAR_DO_IP4 273 -#define VAR_DO_IP6 274 -#define VAR_DO_UDP 275 -#define VAR_DO_TCP 276 -#define VAR_CHROOT 277 -#define VAR_USERNAME 278 -#define VAR_DIRECTORY 279 -#define VAR_LOGFILE 280 -#define VAR_PIDFILE 281 -#define VAR_MSG_CACHE_SIZE 282 -#define VAR_MSG_CACHE_SLABS 283 -#define VAR_NUM_QUERIES_PER_THREAD 284 -#define VAR_RRSET_CACHE_SIZE 285 -#define VAR_RRSET_CACHE_SLABS 286 -#define VAR_OUTGOING_NUM_TCP 287 -#define VAR_INFRA_HOST_TTL 288 -#define VAR_INFRA_LAME_TTL 289 -#define VAR_INFRA_CACHE_SLABS 290 -#define VAR_INFRA_CACHE_NUMHOSTS 291 -#define VAR_INFRA_CACHE_LAME_SIZE 292 -#define VAR_NAME 293 -#define VAR_STUB_ZONE 294 -#define VAR_STUB_HOST 295 -#define VAR_STUB_ADDR 296 -#define VAR_TARGET_FETCH_POLICY 297 -#define VAR_HARDEN_SHORT_BUFSIZE 298 -#define VAR_HARDEN_LARGE_QUERIES 299 -#define VAR_FORWARD_ZONE 300 -#define VAR_FORWARD_HOST 301 -#define VAR_FORWARD_ADDR 302 -#define VAR_DO_NOT_QUERY_ADDRESS 303 -#define VAR_HIDE_IDENTITY 304 -#define VAR_HIDE_VERSION 305 -#define VAR_IDENTITY 306 -#define VAR_VERSION 307 -#define VAR_HARDEN_GLUE 308 -#define VAR_MODULE_CONF 309 -#define VAR_TRUST_ANCHOR_FILE 310 -#define VAR_TRUST_ANCHOR 311 -#define VAR_VAL_OVERRIDE_DATE 312 -#define VAR_BOGUS_TTL 313 -#define VAR_VAL_CLEAN_ADDITIONAL 314 -#define VAR_VAL_PERMISSIVE_MODE 315 -#define VAR_INCOMING_NUM_TCP 316 -#define VAR_MSG_BUFFER_SIZE 317 -#define VAR_KEY_CACHE_SIZE 318 -#define VAR_KEY_CACHE_SLABS 319 -#define VAR_TRUSTED_KEYS_FILE 320 -#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 321 -#define VAR_USE_SYSLOG 322 -#define VAR_OUTGOING_INTERFACE 323 -#define VAR_ROOT_HINTS 324 -#define VAR_DO_NOT_QUERY_LOCALHOST 325 -#define VAR_CACHE_MAX_TTL 326 -#define VAR_HARDEN_DNNSEC_STRIPPED 327 -#define VAR_ACCESS_CONTROL 328 -#define VAR_LOCAL_ZONE 329 -#define VAR_LOCAL_DATA 330 -#define VAR_INTERFACE_AUTOMATIC 331 -#define VAR_STATISTICS_INTERVAL 332 -#define VAR_DO_DAEMONIZE 333 -#define VAR_USE_CAPS_FOR_ID 334 -#define VAR_STATISTICS_CUMULATIVE 335 -#define VAR_OUTGOING_PORT_PERMIT 336 -#define VAR_OUTGOING_PORT_AVOID 337 +#define VAR_OUTGOING_RANGE 270 +#define VAR_INTERFACE 271 +#define VAR_DO_IP4 272 +#define VAR_DO_IP6 273 +#define VAR_DO_UDP 274 +#define VAR_DO_TCP 275 +#define VAR_CHROOT 276 +#define VAR_USERNAME 277 +#define VAR_DIRECTORY 278 +#define VAR_LOGFILE 279 +#define VAR_PIDFILE 280 +#define VAR_MSG_CACHE_SIZE 281 +#define VAR_MSG_CACHE_SLABS 282 +#define VAR_NUM_QUERIES_PER_THREAD 283 +#define VAR_RRSET_CACHE_SIZE 284 +#define VAR_RRSET_CACHE_SLABS 285 +#define VAR_OUTGOING_NUM_TCP 286 +#define VAR_INFRA_HOST_TTL 287 +#define VAR_INFRA_LAME_TTL 288 +#define VAR_INFRA_CACHE_SLABS 289 +#define VAR_INFRA_CACHE_NUMHOSTS 290 +#define VAR_INFRA_CACHE_LAME_SIZE 291 +#define VAR_NAME 292 +#define VAR_STUB_ZONE 293 +#define VAR_STUB_HOST 294 +#define VAR_STUB_ADDR 295 +#define VAR_TARGET_FETCH_POLICY 296 +#define VAR_HARDEN_SHORT_BUFSIZE 297 +#define VAR_HARDEN_LARGE_QUERIES 298 +#define VAR_FORWARD_ZONE 299 +#define VAR_FORWARD_HOST 300 +#define VAR_FORWARD_ADDR 301 +#define VAR_DO_NOT_QUERY_ADDRESS 302 +#define VAR_HIDE_IDENTITY 303 +#define VAR_HIDE_VERSION 304 +#define VAR_IDENTITY 305 +#define VAR_VERSION 306 +#define VAR_HARDEN_GLUE 307 +#define VAR_MODULE_CONF 308 +#define VAR_TRUST_ANCHOR_FILE 309 +#define VAR_TRUST_ANCHOR 310 +#define VAR_VAL_OVERRIDE_DATE 311 +#define VAR_BOGUS_TTL 312 +#define VAR_VAL_CLEAN_ADDITIONAL 313 +#define VAR_VAL_PERMISSIVE_MODE 314 +#define VAR_INCOMING_NUM_TCP 315 +#define VAR_MSG_BUFFER_SIZE 316 +#define VAR_KEY_CACHE_SIZE 317 +#define VAR_KEY_CACHE_SLABS 318 +#define VAR_TRUSTED_KEYS_FILE 319 +#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 320 +#define VAR_USE_SYSLOG 321 +#define VAR_OUTGOING_INTERFACE 322 +#define VAR_ROOT_HINTS 323 +#define VAR_DO_NOT_QUERY_LOCALHOST 324 +#define VAR_CACHE_MAX_TTL 325 +#define VAR_HARDEN_DNNSEC_STRIPPED 326 +#define VAR_ACCESS_CONTROL 327 +#define VAR_LOCAL_ZONE 328 +#define VAR_LOCAL_DATA 329 +#define VAR_INTERFACE_AUTOMATIC 330 +#define VAR_STATISTICS_INTERVAL 331 +#define VAR_DO_DAEMONIZE 332 +#define VAR_USE_CAPS_FOR_ID 333 +#define VAR_STATISTICS_CUMULATIVE 334 +#define VAR_OUTGOING_PORT_PERMIT 335 +#define VAR_OUTGOING_PORT_AVOID 336 @@ -213,7 +211,7 @@ typedef union YYSTYPE char* str; } /* Line 1489 of yacc.c. */ -#line 217 "util/configparser.h" +#line 215 "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 a6b2d8ddb..32a5a28bb 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -68,7 +68,7 @@ extern struct config_parser_state* cfg_parser; %token SPACE LETTER NEWLINE COMMENT COLON ANY ZONESTR %token STRING %token VAR_SERVER VAR_VERBOSITY VAR_NUM_THREADS VAR_PORT -%token VAR_OUTGOING_PORT VAR_OUTGOING_RANGE VAR_INTERFACE +%token VAR_OUTGOING_RANGE VAR_INTERFACE %token VAR_DO_IP4 VAR_DO_IP6 VAR_DO_UDP VAR_DO_TCP %token VAR_CHROOT VAR_USERNAME VAR_DIRECTORY VAR_LOGFILE VAR_PIDFILE %token VAR_MSG_CACHE_SIZE VAR_MSG_CACHE_SLABS VAR_NUM_QUERIES_PER_THREAD @@ -107,7 +107,7 @@ serverstart: VAR_SERVER contents_server: contents_server content_server | ; content_server: server_num_threads | server_verbosity | server_port | - server_outgoing_port | server_outgoing_range | server_do_ip4 | + server_outgoing_range | server_do_ip4 | server_do_ip6 | server_do_udp | server_do_tcp | server_interface | server_chroot | server_username | server_directory | server_logfile | server_pidfile | @@ -241,15 +241,6 @@ server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING cfg_parser->cfg->num_out_ifs++] = $2; } ; -server_outgoing_port: VAR_OUTGOING_PORT STRING - { - OUTYY(("P(server_outgoing_port:%s)\n", $2)); - if(atoi($2) == 0) - yyerror("port number expected"); - else cfg_parser->cfg->outgoing_base_port = atoi($2); - free($2); - } - ; server_outgoing_range: VAR_OUTGOING_RANGE STRING { OUTYY(("P(server_outgoing_range:%s)\n", $2)); -- 2.47.2