From: Wouter Wijngaards Date: Fri, 29 Aug 2008 14:46:08 +0000 (+0000) Subject: new NS queries is not an option (off by default). X-Git-Tag: release-1.1.0~132 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a66e16cb31db19e8d55d04f2947af23f6fdd192d;p=thirdparty%2Funbound.git new NS queries is not an option (off by default). git-svn-id: file:///svn/unbound/trunk@1219 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index e8ccaaa00..6c550490a 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,7 @@ 29 August 2008: Wouter - version 1.1 number in trunk. + - harden-referral-path option for query for NS records. + Default turns off expensive, experimental option. 28 August 2008: Wouter - fixup logfile handling; it is created with correct permissions diff --git a/doc/example.conf.in b/doc/example.conf.in index 0b6d2fd00..d1d8f163f 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -227,7 +227,13 @@ server: # trigger insecure mode for that zone (like without a trustanchor). # Default on, which insists on dnssec data for trust-anchored zones. # harden-dnssec-stripped: yes - + + # Harden the referral path by performing additional queries for + # infrastructure data. Validates the replies (if possible). + # Default off, because it burdens the authority servers, and it is + # not RFC standard, and could be slower. Experimental option. + # harden-referral-path: no + # Use 0x20-encoded random bits in the query to foil spoof attempts. # Disabled by default, because some caching forwarders may not # support this (if you have forward-zones). Most authority servers do. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 18837da1b..af627b37d 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -371,6 +371,16 @@ removes DNSSEC data from packets, or a zone changes from signed to unsigned to badly signed often. If turned off you run the risk of a downgrade attack that disables security for a zone. Default is on. .TP +.B harden\-referral\-path: \fI +Harden the referral path by performing additional queries for +infrastructure data. Validates the replies if trust anchors are configured +and the zones are signed. This enforces DNSSEC validation on nameserver +NS sets and the nameserver addresses that are encountered on the referral +path to the answer. +Default off, because it burdens the authority servers, and it is +not RFC standard, and could lead to performance problems because of the +extra query load that is generated. Experimental option. +.TP .B use\-caps\-for\-id: \fI Use 0x20-encoded random bits in the query to foil spoof attempts. This perturbs the lowercase and uppercase of query names sent to diff --git a/iterator/iterator.c b/iterator/iterator.c index 7ded4a3cc..de440c721 100644 --- a/iterator/iterator.c +++ b/iterator/iterator.c @@ -58,6 +58,7 @@ #include "util/data/dname.h" #include "util/data/msgencode.h" #include "util/fptr_wlist.h" +#include "util/config_file.h" int iter_init(struct module_env* env, int id) @@ -1330,7 +1331,8 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq, * got in the referral. This gets authoritative answer * (answer section trust level) rrset. * right after, we detach subs, we don't want the answer */ - generate_ns_check(qstate, iq, id, iq->qchase.qclass); + if(qstate->env->cfg->harden_referral_path) + generate_ns_check(qstate, iq, id, iq->qchase.qclass); /* stop current outstanding queries. * FIXME: should the outstanding queries be waited for and diff --git a/testdata/dlv_insecure.rpl b/testdata/dlv_insecure.rpl index 545df9580..d6b8d6a1b 100644 --- a/testdata/dlv_insecure.rpl +++ b/testdata/dlv_insecure.rpl @@ -3,6 +3,7 @@ server: dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b" val-override-date: "20070916134226" + harden-referral-path: yes stub-zone: name: "." @@ -139,22 +140,23 @@ ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 ENTRY_END ; DLV query -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NXDOMAIN -SECTION QUESTION -example.net.example.com. IN DLV -SECTION ANSWER -SECTION AUTHORITY -example.com. IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -example.com IN NSEC zazz.example.com. SOA NS RRSIG NSEC -example.com. 3600 IN RRSIG NSEC 3 2 3600 20070926135752 20070829135752 2854 example.com. AAi21jQpno6gXnrPrtK0NvNgX9B8E9U5RvTd47QiCWLF7KdtKxB7Xz0= ;{id = 2854} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854} -ENTRY_END +; picked out of the negative cache due to NS queries in between. +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NXDOMAIN +; SECTION QUESTION +; example.net.example.com. IN DLV +; SECTION ANSWER +; SECTION AUTHORITY +; example.com. IN NS ns.example.com. +; example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} +; example.com IN NSEC zazz.example.com. SOA NS RRSIG NSEC +; example.com. 3600 IN RRSIG NSEC 3 2 3600 20070926135752 20070829135752 2854 example.com. AAi21jQpno6gXnrPrtK0NvNgX9B8E9U5RvTd47QiCWLF7KdtKxB7Xz0= ;{id = 2854} +; SECTION ADDITIONAL +; ns.example.com. IN A 1.2.3.4 +; ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854} +; ENTRY_END ENTRY_BEGIN MATCH opcode qtype qname diff --git a/testdata/iter_lame_noaa.rpl b/testdata/iter_lame_noaa.rpl index 913d6c3a8..a232dbcb8 100644 --- a/testdata/iter_lame_noaa.rpl +++ b/testdata/iter_lame_noaa.rpl @@ -1,4 +1,6 @@ ; config options +server: + harden-referral-path: yes stub-zone: name: "." stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. diff --git a/testdata/iter_ns_spoof.rpl b/testdata/iter_ns_spoof.rpl index 7dd79a5b7..330141f82 100644 --- a/testdata/iter_ns_spoof.rpl +++ b/testdata/iter_ns_spoof.rpl @@ -1,4 +1,6 @@ ; config options +server: + harden-referral-path: yes stub-zone: name: "." stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. diff --git a/testdata/iter_scrub_cname_an.rpl b/testdata/iter_scrub_cname_an.rpl index 0aab60d63..fae2bfde6 100644 --- a/testdata/iter_scrub_cname_an.rpl +++ b/testdata/iter_scrub_cname_an.rpl @@ -1,4 +1,6 @@ ; config options +server: + harden-referral-path: yes stub-zone: name: "." stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. diff --git a/testdata/iter_scrub_dname_insec.rpl b/testdata/iter_scrub_dname_insec.rpl index 4cc2236c6..d7b8bc1b8 100644 --- a/testdata/iter_scrub_dname_insec.rpl +++ b/testdata/iter_scrub_dname_insec.rpl @@ -1,4 +1,6 @@ ; config options +server: + harden-referral-path: yes stub-zone: name: "." stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. diff --git a/testdata/val_referd.rpl b/testdata/val_referd.rpl index cfe8cea29..614775b14 100644 --- a/testdata/val_referd.rpl +++ b/testdata/val_referd.rpl @@ -3,6 +3,7 @@ server: trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b" val-override-date: "20070916134226" + harden-referral-path: yes stub-zone: name: "." diff --git a/util/config_file.c b/util/config_file.c index 0ef6e88c7..5f0c42c4f 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -129,6 +129,7 @@ config_create() cfg->harden_large_queries = 0; cfg->harden_glue = 1; cfg->harden_dnssec_stripped = 1; + cfg->harden_referral_path = 0; cfg->use_caps_bits_for_id = 0; cfg->hide_identity = 0; cfg->hide_version = 0; diff --git a/util/config_file.h b/util/config_file.h index eaaa9ce1d..d5cdc9b79 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -143,6 +143,8 @@ struct config_file { int harden_glue; /** harden against receiving no DNSSEC data for trust anchor */ int harden_dnssec_stripped; + /** harden the referral path, query for NS,A,AAAA and validate */ + int harden_referral_path; /** use 0x20 bits in query as random ID bits */ int use_caps_bits_for_id; diff --git a/util/configlexer.c b/util/configlexer.c index 06c04dae9..fa53792ea 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -361,8 +361,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 95 -#define YY_END_OF_BUFFER 96 +#define YY_NUM_RULES 96 +#define YY_END_OF_BUFFER 97 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -370,100 +370,101 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[837] = +static yyconst flex_int16_t yy_accept[851] = { 0, - 1, 1, 79, 79, 83, 83, 87, 87, 91, 91, - 96, 94, 1, 77, 78, 2, 82, 95, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 79, 80, 95, 81, 95, - 83, 84, 85, 95, 90, 87, 88, 89, 95, 91, - 92, 93, 95, 94, 0, 1, 2, 2, 2, 2, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 79, 0, 83, 0, 90, 0, 87, 91, 0, 94, - - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 45, 94, - - 94, 94, 94, 94, 6, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 20, 94, 94, 94, 12, - 13, 94, 15, 14, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - - 94, 94, 94, 94, 94, 94, 94, 94, 94, 3, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 86, 94, 94, 94, 94, 94, 94, 94, 94, - 23, 94, 94, 94, 94, 94, 94, 94, 24, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 57, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 56, 94, 94, 94, 94, 94, 94, - - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 21, 94, 94, 94, 94, 94, 94, 94, 94, 22, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 17, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 46, 47, 44, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 5, 94, 94, - 94, 59, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 74, - - 73, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 25, 94, 94, 94, 94, 94, 94, 72, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 41, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 4, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 16, 94, 49, 50, 48, 94, 94, 94, 94, - 55, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - - 94, 94, 94, 94, 94, 63, 94, 94, 94, 94, - 94, 94, 94, 94, 31, 94, 94, 94, 94, 94, - 94, 54, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 58, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 65, - 94, 94, 94, 94, 53, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 32, 33, 94, 68, 94, - 94, 27, 94, 70, 94, 94, 94, 94, 94, 7, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 60, 94, 94, 94, 94, 94, 94, 94, - - 94, 94, 94, 69, 26, 28, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 43, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 11, 94, - 94, 94, 94, 94, 94, 10, 94, 94, 29, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 34, 94, 94, 94, - 94, 94, 30, 94, 94, 94, 61, 62, 94, 94, - 64, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 18, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 19, 94, 9, - - 94, 94, 75, 38, 94, 94, 67, 51, 94, 94, - 40, 39, 94, 35, 94, 8, 94, 66, 94, 94, - 94, 36, 94, 76, 94, 52, 42, 37, 94, 94, - 94, 94, 94, 94, 71, 0 + 1, 1, 80, 80, 84, 84, 88, 88, 92, 92, + 97, 95, 1, 78, 79, 2, 83, 96, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 80, 81, 96, 82, 96, + 84, 85, 86, 96, 91, 88, 89, 90, 96, 92, + 93, 94, 96, 95, 0, 1, 2, 2, 2, 2, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 80, 0, 84, 0, 91, 0, 88, 92, 0, 95, + + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 46, 95, + + 95, 95, 95, 95, 6, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 20, 95, 95, 95, 12, + 13, 95, 15, 14, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + + 95, 95, 95, 95, 95, 95, 95, 95, 95, 3, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 87, 95, 95, 95, 95, 95, 95, 95, + 95, 23, 95, 95, 95, 95, 95, 95, 95, 24, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 58, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 57, 95, 95, 95, 95, + + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 21, 95, 95, 95, 95, 95, 95, 95, + 95, 22, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 17, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 47, 48, 45, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 5, 95, 95, 95, 60, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + + 95, 95, 95, 75, 74, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 25, 95, 95, 95, 95, + 95, 95, 73, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 41, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 4, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 16, 95, 50, 51, + 49, 95, 95, 95, 95, 95, 56, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 64, 95, 95, 95, 95, 95, 95, 95, 95, + 31, 95, 95, 95, 95, 95, 95, 95, 55, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 59, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 66, 95, 95, 95, + 95, 54, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 32, 33, 95, 69, 95, 95, 27, + 95, 71, 95, 95, 95, 95, 95, 7, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + + 61, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 70, 26, 28, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 44, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 11, 95, + 95, 95, 95, 95, 95, 10, 95, 95, 29, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 34, 95, 95, + 95, 95, 95, 30, 95, 95, 95, 62, 63, 95, + 95, 65, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 18, 95, 95, 95, 95, 95, 95, + + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 19, 95, 9, 95, 95, 76, 38, 95, 95, 68, + 52, 95, 95, 40, 43, 39, 95, 35, 95, 8, + 95, 67, 95, 95, 95, 36, 95, 77, 95, 53, + 42, 37, 95, 95, 95, 95, 95, 95, 72, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -506,18 +507,18 @@ static yyconst flex_int32_t yy_meta[39] = 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[848] = +static yyconst flex_int16_t yy_base[862] = { 0, 0, 0, 36, 39, 43, 50, 62, 74, 55, 67, - 1723, 1709, 49, 1724, 1724, 81, 1724, 88, 32, 83, + 1751, 1737, 49, 1752, 1752, 81, 1752, 88, 32, 83, 76, 78, 60, 89, 94, 86, 95, 96, 88, 98, - 103, 105, 114, 104, 118, 1708, 1724, 1724, 1724, 57, - 1707, 1724, 1724, 134, 1706, 1716, 1724, 1724, 138, 1704, - 1724, 1724, 142, 1703, 146, 150, 0, 153, 0, 0, + 103, 105, 114, 104, 118, 1736, 1752, 1752, 1752, 57, + 1735, 1752, 1752, 134, 1734, 1744, 1752, 1752, 138, 1732, + 1752, 1752, 142, 1731, 146, 150, 0, 153, 0, 0, 146, 148, 141, 150, 136, 111, 152, 154, 155, 121, 160, 156, 161, 170, 165, 173, 175, 176, 162, 183, 177, 178, 184, 186, 189, 191, 193, 195, 196, 197, - 1702, 207, 1701, 210, 1700, 226, 1710, 1698, 214, 211, + 1730, 207, 1729, 210, 1728, 226, 1738, 1726, 214, 211, 219, 210, 221, 228, 229, 212, 231, 225, 232, 236, 222, 241, 256, 243, 252, 237, 259, 255, 266, 267, @@ -528,179 +529,183 @@ static yyconst flex_int16_t yy_base[848] = 345, 347, 353, 350, 355, 357, 363, 359, 351, 362, 361, 381, 368, 367, 371, 377, 373, 378, 375, 385, 401, 386, 387, 391, 393, 400, 403, 407, 404, 409, - 419, 411, 420, 427, 415, 423, 425, 429, 1697, 431, + 419, 411, 420, 427, 415, 423, 425, 429, 1725, 431, - 433, 434, 435, 436, 1696, 438, 448, 437, 439, 450, + 433, 434, 435, 436, 1724, 438, 448, 437, 439, 450, 440, 460, 461, 449, 463, 452, 456, 468, 469, 471, 470, 477, 479, 472, 481, 478, 482, 483, 494, 497, 503, 500, 502, 504, 510, 507, 509, 487, 512, 513, 516, 520, 515, 525, 523, 535, 531, 533, 538, 534, 532, 540, 542, 543, 545, 555, 544, 556, 551, 557, 564, 561, 566, 558, 567, 568, 569, 572, 574, 578, - 575, 581, 582, 584, 588, 1695, 586, 591, 593, 1694, - 1693, 594, 1692, 1691, 601, 598, 606, 597, 522, 613, - 608, 617, 619, 620, 622, 623, 626, 624, 629, 632, - - 630, 634, 637, 639, 641, 640, 644, 648, 649, 1690, - 651, 600, 652, 653, 657, 654, 664, 655, 658, 671, - 662, 674, 665, 672, 678, 677, 680, 681, 683, 684, - 685, 687, 691, 693, 692, 686, 702, 704, 707, 698, - 710, 1689, 719, 721, 713, 715, 717, 723, 725, 726, - 1688, 729, 730, 732, 733, 736, 740, 747, 1687, 734, - 746, 748, 750, 752, 754, 755, 758, 756, 762, 763, - 765, 768, 769, 774, 772, 775, 773, 1686, 778, 781, - 780, 783, 785, 787, 795, 788, 790, 793, 796, 798, - 803, 801, 805, 1685, 806, 810, 807, 808, 828, 829, - - 821, 825, 831, 832, 838, 839, 835, 837, 842, 836, - 845, 843, 847, 863, 865, 848, 850, 866, 868, 869, - 1684, 875, 877, 878, 879, 880, 882, 883, 884, 1683, - 890, 886, 887, 852, 891, 892, 894, 895, 899, 893, - 907, 901, 897, 908, 919, 923, 920, 1682, 922, 925, - 927, 928, 935, 929, 931, 932, 933, 939, 936, 941, - 937, 943, 948, 959, 1681, 1680, 1679, 809, 944, 945, - 946, 962, 957, 963, 965, 966, 967, 1678, 971, 968, - 972, 1677, 974, 973, 977, 980, 981, 984, 983, 990, - 991, 992, 993, 996, 1003, 1000, 1001, 1002, 1004, 1676, - - 1675, 1005, 1007, 1012, 1009, 1029, 1017, 1026, 1027, 1030, - 1028, 1674, 1036, 1034, 1032, 1033, 1035, 1038, 1673, 1042, - 1044, 1046, 1049, 1056, 1052, 1057, 1058, 1060, 1069, 1063, - 1071, 1073, 1074, 1672, 1080, 1081, 1078, 1083, 1084, 1085, - 1086, 1087, 1088, 1089, 1090, 1092, 1095, 1093, 1100, 1094, - 1097, 1671, 1108, 1115, 1109, 1116, 1111, 1117, 1120, 1126, - 1132, 1130, 1139, 1124, 1136, 1122, 1143, 1141, 1142, 1145, - 1147, 1670, 1148, 1669, 1668, 1667, 1155, 1151, 1152, 1157, - 1666, 1160, 1163, 1161, 1165, 1166, 1169, 1168, 1170, 1171, - 1184, 1172, 1185, 1186, 1187, 1189, 1174, 1193, 1200, 1196, - - 1198, 1199, 1202, 1203, 1204, 1665, 1208, 1206, 1217, 1213, - 1205, 1220, 1225, 1227, 1664, 1228, 1231, 1229, 1219, 1232, - 1234, 1663, 1236, 1238, 1241, 1244, 1247, 1249, 1251, 1256, - 1240, 1662, 1257, 1260, 1261, 1265, 1266, 1267, 1268, 1269, - 1275, 1272, 1276, 1278, 1280, 1281, 1282, 1287, 1286, 1661, - 1288, 1292, 1293, 1304, 1660, 1303, 1305, 1308, 1300, 1310, - 1306, 1313, 1316, 1314, 1318, 1659, 1658, 1323, 1657, 1326, - 1330, 1656, 1332, 1655, 1338, 1334, 1327, 1336, 1339, 1654, - 1340, 1341, 1337, 1346, 1347, 1349, 1350, 1352, 1353, 1354, - 1355, 1356, 1653, 1359, 1364, 1366, 1367, 1369, 1371, 1377, - - 1375, 1373, 1378, 1652, 1651, 1647, 1380, 1382, 1393, 1381, - 1386, 1401, 1388, 1404, 1390, 1398, 1408, 1409, 1643, 1396, - 1412, 1415, 1402, 1418, 1419, 1422, 1424, 1425, 1642, 1421, - 1426, 1428, 1429, 1432, 1436, 1641, 1437, 1435, 1637, 1443, - 1445, 1448, 1450, 1452, 1455, 1456, 1462, 1459, 1461, 1460, - 1463, 1466, 1467, 1468, 1470, 1473, 1636, 1474, 1480, 1476, - 1482, 1485, 1632, 1487, 1484, 1483, 1631, 1630, 1488, 1490, - 1624, 1498, 1491, 1500, 1501, 1502, 1505, 1504, 1506, 1512, - 1508, 1596, 1518, 1515, 1519, 1522, 1526, 1527, 1523, 1531, - 1533, 1528, 1536, 1544, 1548, 1545, 1552, 1595, 1553, 1594, - - 1556, 1557, 1593, 1590, 1559, 1560, 1585, 1537, 1549, 1535, - 1394, 1317, 1564, 1289, 1566, 1242, 1572, 1178, 1561, 1574, - 1576, 896, 1580, 860, 1581, 688, 489, 441, 1567, 1583, - 1577, 1584, 1569, 1589, 379, 1724, 1610, 1616, 1622, 1628, - 252, 1634, 1640, 1646, 83, 1651, 1657 + 575, 581, 582, 584, 588, 1723, 586, 591, 593, 1722, + 1721, 594, 1720, 1719, 601, 611, 597, 600, 522, 605, + 606, 608, 598, 619, 621, 623, 625, 616, 633, 634, + + 635, 636, 638, 639, 640, 642, 648, 614, 650, 1718, + 643, 653, 654, 655, 658, 660, 666, 659, 663, 662, + 665, 669, 675, 671, 679, 676, 681, 682, 683, 684, + 686, 689, 687, 693, 690, 698, 704, 692, 711, 699, + 710, 714, 1717, 720, 721, 716, 717, 722, 725, 723, + 726, 1716, 731, 732, 733, 735, 741, 743, 751, 1715, + 736, 749, 753, 747, 748, 754, 757, 758, 760, 768, + 765, 772, 766, 769, 777, 774, 776, 775, 1714, 780, + 783, 787, 781, 788, 789, 792, 790, 795, 800, 801, + 802, 805, 803, 806, 807, 1713, 810, 812, 808, 824, + + 831, 833, 813, 832, 822, 834, 841, 843, 839, 842, + 840, 845, 848, 847, 859, 861, 867, 850, 854, 868, + 864, 871, 1712, 877, 879, 880, 876, 881, 883, 884, + 886, 1711, 892, 888, 889, 890, 893, 895, 896, 897, + 900, 904, 898, 901, 912, 916, 917, 923, 924, 920, + 1710, 925, 928, 930, 931, 938, 932, 934, 935, 939, + 941, 940, 942, 944, 947, 958, 964, 1709, 1708, 1707, + 948, 955, 949, 961, 966, 962, 967, 970, 972, 971, + 1706, 974, 977, 978, 1705, 982, 979, 983, 985, 988, + 990, 998, 994, 992, 986, 1001, 1002, 1006, 1012, 1008, + + 1010, 1011, 1013, 1704, 1703, 1014, 1016, 1017, 1021, 1037, + 1036, 1019, 1033, 1025, 1039, 1702, 1046, 1040, 1047, 1044, + 1048, 1050, 1701, 1051, 1053, 1054, 1058, 1056, 1060, 1062, + 1068, 1072, 1069, 1076, 1079, 1081, 1082, 1700, 1088, 1084, + 1091, 1087, 1090, 1097, 1094, 1095, 1096, 1098, 1093, 1099, + 1102, 1104, 1103, 1119, 1106, 1108, 1699, 1116, 1127, 1110, + 1125, 1124, 1126, 1130, 1138, 1140, 1141, 1149, 1134, 1147, + 1137, 1153, 1150, 1152, 1155, 1156, 1698, 1157, 1697, 1696, + 1695, 1164, 1160, 1165, 1170, 1174, 1694, 1162, 1177, 1169, + 1175, 1179, 1180, 1182, 1183, 1185, 1193, 1184, 1194, 1195, + + 1198, 1200, 1201, 1202, 1211, 1207, 1204, 1208, 1210, 1216, + 1217, 1693, 1219, 1224, 1227, 1228, 1214, 1230, 1235, 1239, + 1692, 1236, 1242, 1243, 1244, 1245, 1247, 1248, 1691, 1249, + 1251, 1254, 1255, 1260, 1270, 1261, 1272, 1264, 1690, 1274, + 1276, 1267, 1278, 1280, 1281, 1250, 1283, 1289, 1286, 1290, + 1292, 1294, 1293, 1295, 1296, 1302, 1689, 1300, 1301, 1308, + 1318, 1688, 1315, 1316, 1321, 1303, 1323, 1330, 1326, 1327, + 1329, 1331, 1333, 1687, 1686, 1336, 1685, 1341, 1344, 1684, + 1346, 1683, 1352, 1348, 1338, 1350, 1351, 1682, 1354, 1355, + 1358, 1360, 1361, 1362, 1363, 1365, 1366, 1367, 1368, 1370, + + 1678, 1376, 1378, 1380, 1381, 1384, 1383, 1386, 1394, 1388, + 1390, 1391, 1674, 1673, 1672, 1395, 1400, 1405, 1406, 1396, + 1412, 1407, 1415, 1409, 1417, 1418, 1419, 1668, 1421, 1422, + 1428, 1429, 1431, 1434, 1432, 1437, 1438, 1440, 1667, 1442, + 1444, 1448, 1450, 1453, 1451, 1663, 1454, 1452, 1662, 1458, + 1455, 1465, 1467, 1469, 1472, 1473, 1480, 1477, 1478, 1479, + 1481, 1483, 1485, 1484, 1487, 1491, 1488, 1661, 1492, 1493, + 1502, 1504, 1496, 1655, 1506, 1509, 1494, 1627, 1626, 1513, + 1516, 1625, 1517, 1511, 1519, 1521, 1523, 1524, 1526, 1527, + 1528, 1535, 1537, 1624, 1539, 1530, 1540, 1544, 1548, 1545, + + 1550, 1554, 1558, 1555, 1559, 1563, 1566, 1568, 1570, 1572, + 1623, 1576, 1621, 1579, 1580, 1620, 1619, 1582, 1583, 1618, + 1617, 1574, 1586, 1616, 1615, 1614, 1592, 1587, 1594, 1499, + 1596, 1317, 1584, 1600, 1603, 1222, 1605, 852, 1606, 815, + 489, 441, 1589, 1551, 1597, 1609, 1610, 1613, 379, 1752, + 1641, 1647, 1653, 1659, 252, 1665, 1671, 1677, 83, 1682, + 1688 } ; -static yyconst flex_int16_t yy_def[848] = +static yyconst flex_int16_t yy_def[862] = { 0, - 836, 1, 837, 837, 838, 838, 839, 839, 840, 840, - 836, 841, 836, 836, 836, 842, 836, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 843, 836, 836, 836, 843, - 844, 836, 836, 844, 845, 836, 836, 836, 845, 846, - 836, 836, 846, 841, 841, 836, 847, 842, 847, 842, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 843, 843, 844, 844, 845, 845, 836, 846, 846, 841, - - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, - 841, 841, 841, 841, 841, 0, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836 + 850, 1, 851, 851, 852, 852, 853, 853, 854, 854, + 850, 855, 850, 850, 850, 856, 850, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 857, 850, 850, 850, 857, + 858, 850, 850, 858, 859, 850, 850, 850, 859, 860, + 850, 850, 860, 855, 855, 850, 861, 856, 861, 856, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 857, 857, 858, 858, 859, 859, 850, 860, 860, 855, + + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 855, 0, + 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, + 850 } ; -static yyconst flex_int16_t yy_nxt[1763] = +static yyconst flex_int16_t yy_nxt[1791] = { 0, 12, 13, 14, 14, 15, 16, 17, 12, 12, 12, 12, 12, 18, 19, 12, 20, 21, 12, 22, 12, @@ -762,143 +767,145 @@ static yyconst flex_int16_t yy_nxt[1763] = 285, 55, 55, 287, 55, 55, 288, 55, 55, 290, 296, 292, 55, 295, 55, 55, 293, 55, 291, 294, 299, 297, 300, 55, 55, 55, 55, 55, 302, 301, - 55, 304, 55, 303, 55, 55, 55, 55, 341, 307, + 55, 304, 55, 303, 55, 55, 55, 55, 342, 307, 309, 305, 298, 55, 308, 306, 310, 55, 55, 55, 55, 315, 312, 55, 316, 311, 55, 313, 55, 55, 55, 55, 317, 314, 55, 318, 55, 55, 321, 322, 55, 323, 320, 55, 55, 324, 55, 319, 55, 328, 55, 329, 326, 55, 325, 55, 55, 327, 334, 55, - 55, 331, 55, 55, 335, 330, 363, 336, 55, 332, - 55, 337, 333, 339, 342, 55, 340, 343, 338, 55, - 344, 55, 55, 346, 55, 55, 55, 347, 55, 349, - 351, 55, 55, 348, 55, 345, 55, 352, 353, 55, - 350, 55, 55, 55, 354, 359, 55, 355, 357, 358, - 55, 55, 361, 55, 55, 55, 55, 55, 356, 55, - 55, 368, 362, 360, 55, 366, 55, 55, 365, 367, - 374, 370, 364, 55, 55, 369, 55, 373, 371, 55, - 55, 378, 55, 55, 372, 55, 55, 55, 55, 55, - - 55, 375, 376, 55, 55, 55, 385, 379, 377, 389, - 55, 382, 383, 386, 55, 390, 55, 388, 380, 55, - 381, 394, 55, 384, 391, 55, 395, 55, 393, 55, - 387, 55, 392, 55, 399, 55, 396, 55, 55, 398, - 400, 55, 55, 397, 55, 55, 55, 404, 55, 405, - 406, 402, 55, 408, 409, 403, 401, 407, 55, 55, - 55, 411, 55, 412, 55, 410, 55, 55, 55, 419, - 55, 415, 416, 417, 55, 55, 421, 55, 418, 413, - 55, 55, 424, 414, 55, 55, 55, 55, 429, 420, - 55, 430, 55, 55, 423, 55, 426, 55, 422, 55, - - 55, 425, 55, 428, 433, 55, 432, 55, 55, 427, - 55, 434, 431, 55, 435, 55, 436, 55, 55, 55, - 55, 55, 55, 437, 515, 446, 442, 439, 438, 440, - 444, 443, 441, 55, 450, 447, 449, 55, 445, 448, - 55, 55, 451, 55, 55, 454, 455, 55, 55, 55, - 55, 55, 456, 457, 55, 55, 452, 55, 465, 55, - 55, 453, 55, 458, 55, 463, 462, 459, 485, 460, - 469, 461, 55, 464, 466, 55, 467, 55, 55, 468, - 55, 55, 473, 470, 474, 475, 471, 55, 472, 55, - 55, 55, 55, 478, 55, 55, 55, 481, 55, 55, - - 476, 482, 55, 55, 55, 55, 55, 55, 55, 55, - 477, 55, 489, 55, 479, 480, 484, 487, 490, 55, - 55, 486, 491, 483, 488, 495, 496, 493, 492, 494, - 497, 55, 55, 498, 55, 55, 500, 55, 501, 55, - 55, 55, 503, 55, 55, 55, 502, 55, 55, 55, - 511, 55, 499, 55, 512, 55, 55, 55, 55, 504, - 55, 505, 506, 507, 508, 513, 514, 510, 509, 55, - 516, 55, 518, 519, 55, 55, 521, 55, 55, 55, - 55, 517, 523, 55, 55, 55, 55, 522, 520, 55, - 527, 528, 55, 55, 534, 55, 55, 524, 532, 526, - - 525, 533, 55, 55, 55, 55, 530, 535, 55, 529, - 540, 531, 55, 55, 55, 55, 55, 55, 538, 55, - 539, 55, 536, 537, 55, 544, 546, 545, 552, 55, - 550, 541, 542, 548, 543, 549, 551, 547, 55, 55, - 55, 55, 55, 557, 55, 55, 55, 55, 55, 558, - 55, 554, 560, 556, 55, 559, 55, 553, 55, 555, - 565, 55, 561, 566, 55, 562, 567, 563, 55, 55, - 55, 572, 55, 564, 574, 55, 573, 568, 569, 571, - 570, 55, 575, 55, 576, 55, 55, 578, 579, 577, - 55, 582, 55, 55, 581, 55, 55, 55, 55, 55, - - 55, 55, 55, 590, 55, 55, 55, 55, 583, 55, - 584, 591, 55, 594, 580, 585, 592, 586, 587, 588, - 55, 55, 598, 55, 596, 597, 589, 55, 55, 55, - 593, 595, 55, 604, 55, 600, 55, 607, 55, 605, - 599, 601, 55, 606, 55, 603, 608, 609, 55, 602, - 612, 55, 610, 55, 55, 55, 615, 55, 611, 55, - 55, 617, 619, 55, 55, 614, 621, 55, 622, 55, - 616, 618, 55, 55, 613, 55, 624, 55, 55, 620, - 55, 55, 55, 55, 55, 631, 55, 630, 626, 627, - 55, 623, 628, 625, 629, 632, 55, 55, 55, 55, - - 635, 55, 634, 638, 636, 55, 637, 640, 55, 633, - 55, 55, 55, 641, 55, 55, 55, 55, 55, 642, - 55, 643, 647, 644, 639, 55, 648, 649, 650, 55, - 646, 55, 55, 645, 651, 652, 653, 55, 655, 55, - 55, 55, 654, 55, 55, 656, 55, 657, 55, 659, - 55, 662, 55, 55, 55, 658, 55, 665, 666, 55, - 667, 55, 663, 55, 660, 664, 661, 669, 55, 55, - 670, 672, 55, 55, 671, 668, 674, 55, 55, 55, - 55, 55, 678, 677, 55, 676, 680, 55, 55, 682, - 55, 673, 55, 55, 55, 675, 679, 684, 55, 55, - - 55, 55, 688, 686, 55, 55, 691, 685, 687, 681, - 683, 692, 55, 690, 693, 55, 55, 55, 55, 689, - 55, 694, 55, 695, 698, 55, 55, 697, 55, 55, - 55, 696, 702, 700, 701, 55, 703, 704, 55, 55, - 699, 705, 55, 706, 55, 707, 55, 708, 55, 55, - 55, 55, 55, 55, 709, 713, 711, 712, 55, 55, - 714, 55, 55, 719, 55, 55, 55, 55, 55, 710, - 716, 55, 717, 718, 720, 715, 55, 725, 55, 55, - 723, 55, 729, 55, 730, 55, 722, 55, 724, 55, - 55, 721, 55, 55, 55, 726, 727, 735, 55, 728, - - 55, 731, 55, 732, 736, 55, 55, 737, 55, 733, - 55, 734, 739, 55, 55, 738, 55, 741, 740, 743, - 55, 55, 746, 742, 55, 744, 745, 55, 749, 747, - 55, 55, 748, 55, 55, 750, 55, 55, 55, 757, - 55, 55, 751, 752, 55, 753, 754, 55, 55, 55, - 758, 755, 759, 760, 763, 55, 756, 55, 761, 762, - 55, 765, 55, 767, 55, 766, 768, 55, 55, 770, - 771, 55, 55, 55, 55, 55, 764, 772, 55, 55, - 55, 769, 55, 774, 776, 55, 55, 782, 55, 780, - 773, 778, 55, 775, 55, 55, 55, 55, 783, 55, - - 55, 788, 55, 55, 779, 777, 784, 786, 785, 781, - 55, 789, 55, 55, 55, 790, 55, 55, 55, 787, - 55, 791, 795, 798, 55, 799, 792, 55, 793, 800, - 55, 55, 794, 803, 55, 55, 797, 804, 55, 55, - 55, 796, 807, 55, 808, 55, 801, 55, 55, 55, - 805, 821, 802, 810, 806, 811, 55, 55, 809, 812, - 55, 55, 813, 814, 55, 55, 815, 816, 55, 55, - 818, 55, 55, 55, 817, 822, 55, 819, 55, 55, - 820, 55, 823, 824, 55, 826, 55, 827, 55, 55, - 825, 828, 55, 55, 829, 55, 55, 55, 830, 834, - - 835, 55, 55, 832, 831, 55, 55, 55, 55, 833, - 36, 36, 36, 36, 36, 36, 41, 41, 41, 41, - 41, 41, 45, 45, 45, 45, 45, 45, 50, 50, - 50, 50, 50, 50, 58, 58, 55, 58, 58, 58, - 91, 91, 55, 55, 55, 91, 93, 93, 55, 55, - 93, 98, 98, 55, 55, 55, 98, 59, 59, 55, - 59, 59, 59, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 331, 55, 55, 340, 330, 343, 55, 55, 332, + 55, 345, 333, 55, 346, 344, 55, 335, 55, 341, + 336, 55, 347, 55, 337, 55, 348, 55, 350, 361, + 338, 339, 351, 349, 352, 55, 55, 55, 55, 353, + 55, 55, 55, 354, 55, 55, 355, 358, 356, 360, + 55, 359, 55, 362, 363, 55, 55, 55, 357, 364, + 55, 55, 55, 369, 55, 55, 367, 55, 55, 372, + 366, 55, 374, 55, 365, 368, 371, 55, 55, 370, + 375, 55, 379, 55, 55, 55, 55, 373, 55, 55, + + 376, 55, 55, 377, 55, 55, 386, 378, 380, 392, + 55, 55, 383, 387, 384, 389, 55, 391, 381, 385, + 382, 390, 55, 55, 394, 396, 55, 397, 55, 55, + 388, 393, 55, 55, 55, 55, 398, 55, 55, 401, + 395, 400, 402, 55, 55, 55, 399, 55, 55, 406, + 407, 404, 408, 55, 403, 55, 410, 405, 411, 55, + 55, 55, 409, 55, 413, 55, 55, 412, 414, 55, + 55, 417, 55, 419, 418, 421, 415, 55, 55, 416, + 55, 55, 420, 423, 55, 426, 55, 55, 55, 55, + 431, 422, 55, 55, 425, 55, 424, 428, 432, 55, + + 55, 55, 55, 427, 55, 430, 435, 55, 436, 434, + 433, 429, 55, 55, 55, 55, 437, 55, 55, 55, + 55, 438, 55, 442, 55, 55, 453, 55, 445, 443, + 439, 441, 447, 440, 55, 446, 55, 444, 450, 448, + 452, 449, 451, 55, 55, 55, 55, 455, 457, 454, + 458, 55, 55, 55, 55, 55, 459, 55, 460, 55, + 55, 461, 55, 456, 55, 462, 55, 463, 466, 464, + 468, 55, 469, 55, 472, 465, 55, 467, 470, 55, + 55, 471, 474, 55, 476, 473, 477, 478, 55, 55, + 475, 55, 55, 55, 481, 55, 55, 479, 55, 484, + + 55, 55, 55, 485, 55, 55, 488, 55, 55, 55, + 55, 480, 55, 55, 492, 482, 55, 483, 487, 493, + 490, 494, 496, 489, 55, 486, 491, 495, 55, 55, + 500, 501, 55, 502, 499, 55, 55, 55, 497, 504, + 55, 505, 55, 55, 55, 507, 55, 55, 498, 506, + 55, 55, 55, 55, 55, 503, 55, 515, 516, 55, + 55, 55, 508, 519, 509, 510, 512, 55, 514, 511, + 55, 518, 513, 55, 55, 517, 55, 523, 55, 55, + 525, 520, 55, 55, 55, 521, 55, 522, 527, 55, + 55, 55, 526, 524, 55, 55, 531, 55, 55, 532, + + 55, 528, 55, 529, 55, 536, 55, 537, 530, 538, + 55, 539, 534, 55, 55, 533, 535, 541, 55, 545, + 55, 540, 55, 55, 55, 55, 55, 543, 55, 55, + 544, 55, 542, 55, 549, 551, 550, 55, 553, 546, + 554, 547, 555, 548, 556, 55, 552, 557, 55, 55, + 558, 55, 55, 562, 560, 563, 55, 559, 55, 55, + 55, 564, 55, 55, 561, 55, 55, 565, 55, 570, + 55, 571, 55, 566, 55, 572, 578, 573, 567, 568, + 55, 55, 569, 577, 55, 575, 574, 579, 55, 576, + 580, 55, 581, 55, 55, 583, 55, 582, 585, 55, + + 55, 587, 55, 55, 588, 55, 55, 55, 55, 55, + 55, 55, 596, 584, 55, 55, 55, 589, 55, 590, + 55, 597, 55, 586, 591, 598, 592, 593, 55, 594, + 595, 55, 600, 603, 604, 602, 55, 55, 55, 55, + 599, 605, 55, 601, 606, 610, 55, 611, 613, 55, + 55, 612, 55, 55, 607, 609, 614, 615, 608, 55, + 618, 55, 55, 616, 55, 55, 621, 55, 55, 55, + 623, 625, 55, 617, 55, 620, 55, 55, 627, 622, + 624, 55, 55, 619, 628, 629, 55, 55, 626, 55, + 631, 55, 55, 630, 55, 55, 55, 55, 633, 638, + + 637, 632, 634, 635, 639, 55, 55, 55, 636, 642, + 55, 641, 55, 55, 55, 643, 55, 644, 647, 55, + 55, 640, 55, 55, 648, 649, 55, 650, 55, 55, + 645, 55, 651, 646, 55, 654, 55, 655, 657, 55, + 55, 652, 55, 653, 659, 656, 660, 55, 55, 658, + 662, 55, 661, 663, 55, 55, 55, 55, 664, 55, + 55, 55, 55, 55, 670, 685, 55, 55, 673, 665, + 668, 674, 55, 55, 666, 671, 55, 667, 672, 55, + 669, 675, 55, 677, 55, 676, 55, 680, 55, 682, + 55, 679, 55, 55, 678, 55, 686, 681, 55, 684, + + 688, 55, 55, 690, 55, 55, 55, 55, 55, 683, + 687, 692, 55, 55, 55, 55, 694, 695, 696, 693, + 55, 699, 698, 689, 691, 700, 701, 55, 55, 55, + 55, 697, 702, 55, 704, 55, 703, 706, 55, 55, + 705, 55, 55, 55, 707, 55, 709, 711, 55, 712, + 55, 710, 713, 55, 708, 714, 55, 715, 55, 716, + 55, 717, 55, 55, 55, 718, 55, 55, 720, 722, + 55, 721, 55, 55, 55, 55, 728, 55, 55, 55, + 55, 723, 55, 719, 725, 726, 727, 729, 55, 724, + 55, 734, 55, 55, 732, 55, 55, 739, 55, 731, + + 55, 740, 55, 55, 730, 733, 55, 55, 55, 735, + 736, 737, 55, 738, 741, 745, 746, 55, 55, 55, + 742, 55, 743, 749, 55, 748, 744, 55, 751, 55, + 55, 55, 747, 55, 55, 754, 755, 750, 753, 757, + 55, 55, 752, 55, 55, 758, 55, 756, 760, 55, + 55, 764, 55, 762, 55, 759, 55, 761, 763, 768, + 55, 765, 55, 55, 55, 55, 55, 55, 771, 774, + 55, 769, 766, 770, 767, 772, 773, 55, 776, 55, + 778, 55, 777, 779, 55, 55, 775, 781, 782, 55, + 55, 55, 55, 55, 783, 55, 55, 55, 780, 55, + + 55, 785, 787, 55, 55, 55, 55, 792, 55, 784, + 786, 55, 790, 794, 55, 788, 55, 796, 55, 791, + 795, 55, 793, 55, 789, 55, 800, 797, 55, 55, + 799, 55, 798, 55, 802, 55, 55, 801, 55, 55, + 55, 803, 55, 808, 807, 804, 811, 55, 805, 55, + 813, 55, 55, 806, 812, 816, 55, 55, 810, 817, + 55, 814, 55, 55, 809, 820, 55, 55, 818, 821, + 55, 55, 845, 815, 824, 55, 823, 825, 55, 826, + 55, 819, 55, 828, 55, 822, 55, 827, 55, 829, + 830, 55, 55, 832, 55, 55, 55, 831, 55, 55, + + 833, 55, 835, 836, 55, 834, 55, 838, 55, 55, + 837, 840, 55, 839, 841, 55, 842, 55, 55, 843, + 844, 55, 55, 846, 849, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 847, 55, 55, 55, 55, 55, + 848, 36, 36, 36, 36, 36, 36, 41, 41, 41, + 41, 41, 41, 45, 45, 45, 45, 45, 45, 50, + 50, 50, 50, 50, 50, 58, 58, 55, 58, 58, + 58, 91, 91, 55, 55, 55, 91, 93, 93, 55, + 55, 93, 98, 98, 55, 55, 55, 98, 59, 59, + 55, 59, 59, 59, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 99, 97, 96, 94, 92, 55, 99, 97, 96, 94, - 92, 55, 836, 11, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836 + 55, 55, 55, 55, 55, 55, 55, 55, 99, 97, + 96, 94, 92, 55, 99, 97, 96, 94, 92, 55, + 850, 11, 850, 850, 850, 850, 850, 850, 850, 850, + 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, + 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, + 850, 850, 850, 850, 850, 850, 850, 850, 850, 850 } ; -static yyconst flex_int16_t yy_chk[1763] = +static yyconst flex_int16_t yy_chk[1791] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -908,7 +915,7 @@ static yyconst flex_int16_t yy_chk[1763] = 13, 4, 6, 6, 13, 5, 6, 9, 9, 9, 40, 40, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 23, 23, 7, 8, 8, 8, 8, 10, - 8, 23, 16, 845, 16, 16, 8, 16, 21, 18, + 8, 23, 16, 859, 16, 16, 8, 16, 21, 18, 22, 18, 18, 16, 18, 20, 20, 21, 26, 21, 29, 24, 21, 20, 22, 24, 25, 27, 28, 28, @@ -927,7 +934,7 @@ static yyconst flex_int16_t yy_chk[1763] = 86, 85, 102, 100, 106, 87, 90, 96, 100, 96, 96, 101, 96, 103, 111, 104, 102, 108, 103, 101, 104, 105, 108, 107, 109, 105, 106, 107, 110, 116, - 105, 111, 841, 112, 105, 114, 114, 109, 112, 110, + 105, 111, 855, 112, 105, 114, 114, 109, 112, 110, 105, 105, 110, 113, 115, 123, 117, 118, 113, 116, 115, 117, 118, 119, 120, 121, 124, 122, 119, 120, 125, 126, 121, 122, 123, 125, 127, 128, 130, 128, @@ -942,20 +949,20 @@ static yyconst flex_int16_t yy_chk[1763] = 163, 159, 164, 169, 159, 163, 161, 165, 160, 166, 167, 168, 165, 171, 170, 167, 168, 170, 166, 174, 173, 164, 169, 175, 176, 177, 171, 179, 174, 176, - 178, 835, 170, 172, 173, 172, 172, 180, 182, 183, + 178, 849, 170, 172, 173, 172, 172, 180, 182, 183, 179, 175, 180, 184, 177, 185, 172, 172, 172, 178, 181, 181, 186, 181, 183, 187, 189, 182, 184, 188, 189, 190, 185, 192, 187, 186, 191, 195, 188, 192, 190, 191, 193, 193, 194, 196, 187, 197, 195, 194, 196, 198, 198, 200, 200, 201, 202, 203, 204, 208, - 206, 209, 211, 828, 202, 207, 203, 197, 206, 204, + 206, 209, 211, 842, 202, 207, 203, 197, 206, 204, 207, 214, 210, 210, 216, 201, 208, 212, 217, 209, 210, 211, 212, 213, 213, 215, 215, 212, 216, 217, 218, 219, 221, 220, 224, 214, 223, 210, 220, 222, 226, 223, 225, 225, 227, 228, 224, 227, 218, 238, - 221, 827, 219, 222, 226, 229, 229, 228, 230, 230, + 221, 841, 219, 222, 226, 229, 229, 228, 230, 230, 231, 232, 232, 233, 233, 231, 234, 235, 238, 236, 234, 237, 235, 236, 239, 240, 237, 243, 241, 239, 243, 241, 242, 242, 289, 245, 241, 244, 240, 241, @@ -966,134 +973,136 @@ static yyconst flex_int16_t yy_chk[1763] = 266, 267, 263, 260, 268, 264, 269, 271, 267, 268, 270, 269, 266, 272, 273, 270, 274, 265, 277, 274, - 275, 275, 272, 278, 271, 279, 282, 273, 285, 288, - 286, 278, 312, 285, 286, 277, 312, 286, 287, 279, - 291, 286, 282, 287, 290, 290, 288, 291, 286, 292, - 292, 293, 294, 294, 295, 296, 298, 295, 297, 297, - 299, 299, 301, 296, 300, 293, 302, 300, 301, 303, - 298, 304, 306, 305, 302, 307, 307, 303, 305, 306, - 308, 309, 309, 311, 313, 314, 316, 318, 304, 315, - 319, 317, 311, 308, 321, 315, 317, 323, 314, 316, - 323, 319, 313, 320, 324, 318, 322, 322, 320, 326, - 325, 327, 327, 328, 321, 329, 330, 331, 336, 332, - - 826, 324, 325, 333, 335, 334, 334, 328, 326, 336, - 340, 331, 332, 334, 337, 337, 338, 335, 329, 339, - 330, 341, 341, 333, 338, 345, 343, 346, 340, 347, - 334, 343, 339, 344, 347, 348, 344, 349, 350, 346, - 348, 352, 353, 345, 354, 355, 360, 353, 356, 354, - 355, 350, 357, 357, 358, 352, 349, 356, 361, 358, - 362, 361, 363, 362, 364, 360, 365, 366, 368, 369, - 367, 365, 366, 367, 369, 370, 371, 371, 368, 363, - 372, 373, 374, 364, 375, 377, 374, 376, 380, 370, - 379, 381, 381, 380, 373, 382, 376, 383, 372, 384, - - 386, 375, 387, 379, 384, 388, 383, 385, 389, 377, - 390, 385, 382, 392, 386, 391, 387, 393, 395, 397, - 398, 468, 396, 388, 468, 398, 393, 390, 389, 391, - 396, 395, 392, 401, 401, 399, 400, 402, 397, 399, - 399, 400, 402, 403, 404, 405, 406, 407, 410, 408, - 405, 406, 407, 408, 409, 412, 403, 411, 413, 413, - 416, 404, 417, 409, 434, 411, 410, 409, 434, 409, - 417, 409, 824, 412, 414, 414, 415, 415, 418, 416, - 419, 420, 422, 418, 423, 424, 419, 422, 420, 423, - 424, 425, 426, 427, 427, 428, 429, 431, 432, 433, - - 425, 431, 431, 435, 436, 440, 437, 438, 822, 443, - 426, 439, 438, 442, 428, 429, 433, 436, 439, 441, - 444, 435, 440, 432, 437, 444, 445, 442, 441, 443, - 446, 445, 447, 447, 449, 446, 450, 450, 451, 451, - 452, 454, 453, 455, 456, 457, 452, 453, 459, 461, - 461, 458, 449, 460, 462, 462, 469, 470, 471, 454, - 463, 455, 456, 457, 458, 463, 464, 460, 459, 473, - 469, 464, 471, 472, 472, 474, 474, 475, 476, 477, - 480, 470, 476, 479, 481, 484, 483, 475, 473, 485, - 481, 483, 486, 487, 489, 489, 488, 477, 487, 480, - - 479, 488, 490, 491, 492, 493, 485, 490, 494, 484, - 495, 486, 496, 497, 498, 495, 499, 502, 493, 503, - 494, 505, 491, 492, 504, 499, 502, 499, 507, 507, - 505, 496, 497, 504, 498, 504, 506, 503, 508, 509, - 511, 506, 510, 513, 515, 516, 514, 517, 513, 514, - 518, 509, 515, 511, 520, 514, 521, 508, 522, 510, - 521, 523, 516, 522, 525, 517, 523, 518, 524, 526, - 527, 528, 528, 520, 530, 530, 529, 524, 525, 527, - 526, 529, 531, 531, 532, 532, 533, 535, 536, 533, - 537, 539, 535, 536, 538, 538, 539, 540, 541, 542, - - 543, 544, 545, 545, 546, 548, 550, 547, 540, 551, - 540, 546, 549, 549, 537, 540, 547, 541, 542, 543, - 553, 555, 554, 557, 551, 553, 544, 554, 556, 558, - 548, 550, 559, 560, 566, 556, 564, 562, 560, 561, - 555, 557, 562, 561, 561, 559, 563, 564, 565, 558, - 567, 563, 565, 568, 569, 567, 570, 570, 566, 571, - 573, 573, 577, 578, 579, 569, 579, 577, 580, 580, - 571, 573, 582, 584, 568, 583, 583, 585, 586, 578, - 588, 587, 589, 590, 592, 590, 597, 589, 585, 586, - 818, 582, 587, 584, 588, 591, 591, 593, 594, 595, - - 594, 596, 593, 597, 595, 598, 596, 599, 600, 592, - 601, 602, 599, 600, 603, 604, 605, 611, 608, 601, - 607, 601, 605, 602, 598, 610, 607, 608, 609, 609, - 604, 619, 612, 603, 610, 611, 612, 613, 614, 614, - 616, 618, 613, 617, 620, 616, 621, 617, 623, 619, - 624, 623, 631, 625, 816, 618, 626, 626, 627, 627, - 628, 628, 624, 629, 620, 625, 621, 630, 630, 633, - 631, 634, 634, 635, 633, 629, 636, 636, 637, 638, - 639, 640, 640, 639, 642, 638, 641, 641, 643, 643, - 644, 635, 645, 646, 647, 637, 640, 645, 649, 648, - - 651, 814, 649, 647, 652, 653, 653, 646, 648, 642, - 644, 654, 659, 652, 656, 656, 654, 657, 661, 651, - 658, 657, 660, 658, 661, 662, 664, 660, 663, 812, - 665, 659, 665, 663, 664, 668, 668, 670, 670, 677, - 662, 671, 671, 673, 673, 675, 676, 676, 678, 683, - 675, 679, 681, 682, 677, 682, 679, 681, 684, 685, - 683, 686, 687, 688, 688, 689, 690, 691, 692, 678, - 685, 694, 686, 687, 689, 684, 695, 695, 696, 697, - 692, 698, 699, 699, 700, 702, 691, 701, 694, 700, - 703, 690, 707, 710, 708, 696, 697, 708, 711, 698, - - 713, 701, 715, 702, 709, 709, 811, 710, 720, 703, - 716, 707, 712, 712, 723, 711, 714, 714, 713, 716, - 717, 718, 720, 715, 721, 717, 718, 722, 723, 721, - 724, 725, 722, 730, 726, 724, 727, 728, 731, 732, - 732, 733, 725, 726, 734, 727, 728, 738, 735, 737, - 733, 730, 734, 735, 740, 740, 731, 741, 737, 738, - 742, 742, 743, 744, 744, 743, 745, 745, 746, 747, - 748, 748, 750, 749, 747, 751, 741, 749, 752, 753, - 754, 746, 755, 751, 753, 756, 758, 760, 760, 758, - 750, 755, 759, 752, 761, 766, 765, 762, 761, 764, - - 769, 769, 770, 773, 756, 754, 762, 765, 764, 759, - 772, 770, 774, 775, 776, 772, 778, 777, 779, 766, - 781, 773, 777, 780, 780, 781, 774, 784, 775, 783, - 783, 785, 776, 786, 786, 789, 779, 787, 787, 788, - 792, 778, 790, 790, 791, 791, 784, 810, 793, 808, - 788, 810, 785, 793, 789, 794, 794, 796, 792, 795, - 795, 809, 796, 797, 797, 799, 799, 801, 801, 802, - 805, 805, 806, 819, 802, 813, 813, 806, 815, 829, - 809, 833, 815, 817, 817, 820, 820, 821, 821, 831, - 819, 823, 823, 825, 825, 830, 832, 807, 829, 833, - - 834, 834, 804, 831, 830, 803, 800, 798, 782, 832, - 837, 837, 837, 837, 837, 837, 838, 838, 838, 838, - 838, 838, 839, 839, 839, 839, 839, 839, 840, 840, - 840, 840, 840, 840, 842, 842, 771, 842, 842, 842, - 843, 843, 768, 767, 763, 843, 844, 844, 757, 739, - 844, 846, 846, 736, 729, 719, 846, 847, 847, 706, - 847, 847, 847, 705, 704, 693, 680, 674, 672, 669, - 667, 666, 655, 650, 632, 622, 615, 606, 581, 576, - 575, 574, 572, 552, 534, 519, 512, 501, 500, 482, - 478, 467, 466, 465, 448, 430, 421, 394, 378, 359, - - 351, 342, 310, 284, 283, 281, 280, 276, 205, 199, - 98, 97, 95, 93, 91, 54, 50, 46, 45, 41, - 36, 12, 11, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, - 836, 836 + 275, 275, 272, 278, 271, 279, 282, 273, 285, 287, + 293, 278, 288, 285, 287, 277, 290, 290, 291, 279, + 292, 292, 282, 286, 293, 291, 308, 286, 298, 288, + 286, 294, 294, 295, 286, 296, 295, 297, 297, 308, + 286, 286, 298, 296, 299, 299, 300, 301, 302, 300, + 303, 304, 305, 301, 306, 311, 302, 305, 303, 307, + 307, 306, 309, 309, 311, 312, 313, 314, 304, 312, + 315, 318, 316, 317, 320, 319, 315, 321, 317, 320, + 314, 322, 322, 324, 313, 316, 319, 323, 326, 318, + 323, 325, 327, 327, 328, 329, 330, 321, 331, 333, + + 324, 332, 335, 325, 338, 334, 334, 326, 328, 338, + 336, 340, 331, 334, 332, 335, 337, 337, 329, 333, + 330, 336, 341, 339, 340, 342, 342, 344, 346, 347, + 334, 339, 344, 345, 348, 350, 345, 349, 351, 348, + 341, 347, 349, 353, 354, 355, 346, 356, 361, 354, + 355, 351, 356, 357, 350, 358, 358, 353, 359, 364, + 365, 362, 357, 359, 362, 363, 366, 361, 363, 367, + 368, 366, 369, 368, 367, 370, 364, 371, 373, 365, + 370, 374, 369, 372, 372, 375, 376, 378, 377, 375, + 381, 371, 380, 383, 374, 381, 373, 377, 382, 382, + + 384, 385, 387, 376, 386, 380, 385, 388, 386, 384, + 383, 378, 389, 390, 391, 393, 387, 392, 394, 395, + 399, 388, 397, 392, 398, 403, 403, 840, 395, 393, + 389, 391, 398, 390, 405, 397, 400, 394, 401, 399, + 402, 400, 401, 401, 404, 402, 406, 405, 407, 404, + 408, 409, 411, 407, 410, 408, 409, 412, 410, 414, + 413, 411, 418, 406, 838, 411, 419, 411, 413, 411, + 415, 415, 416, 416, 419, 412, 421, 414, 417, 417, + 420, 418, 421, 422, 424, 420, 425, 426, 427, 424, + 422, 425, 426, 428, 429, 429, 430, 427, 431, 433, + + 434, 435, 436, 433, 433, 437, 436, 438, 439, 440, + 443, 428, 441, 444, 440, 430, 442, 431, 435, 441, + 438, 442, 444, 437, 445, 434, 439, 443, 446, 447, + 448, 449, 450, 450, 447, 448, 449, 452, 445, 453, + 453, 454, 454, 455, 457, 456, 458, 459, 446, 455, + 456, 460, 462, 461, 463, 452, 464, 464, 465, 465, + 471, 473, 457, 471, 458, 459, 461, 472, 463, 460, + 466, 467, 462, 474, 476, 466, 467, 475, 475, 477, + 477, 472, 478, 480, 479, 473, 482, 474, 479, 483, + 484, 487, 478, 476, 486, 488, 484, 489, 495, 486, + + 490, 480, 491, 482, 494, 490, 493, 491, 483, 492, + 492, 493, 488, 496, 497, 487, 489, 495, 498, 499, + 500, 494, 501, 502, 499, 503, 506, 497, 507, 508, + 498, 512, 496, 509, 503, 506, 503, 514, 508, 500, + 508, 501, 509, 502, 510, 513, 507, 511, 511, 510, + 512, 515, 518, 517, 514, 518, 520, 513, 517, 519, + 521, 518, 522, 524, 515, 525, 526, 519, 528, 525, + 527, 526, 529, 520, 530, 527, 533, 528, 521, 522, + 531, 533, 524, 532, 532, 530, 529, 534, 534, 531, + 535, 535, 536, 536, 537, 539, 540, 537, 541, 542, + + 539, 543, 543, 541, 544, 549, 545, 546, 547, 544, + 548, 550, 550, 540, 551, 553, 552, 545, 555, 545, + 556, 551, 560, 542, 545, 552, 546, 547, 558, 548, + 549, 554, 554, 558, 559, 556, 562, 561, 563, 559, + 553, 560, 564, 555, 561, 565, 569, 566, 567, 571, + 565, 566, 566, 567, 562, 564, 568, 569, 563, 570, + 572, 568, 573, 570, 574, 572, 575, 575, 576, 578, + 578, 582, 583, 571, 588, 574, 582, 584, 584, 576, + 578, 590, 585, 573, 585, 586, 586, 591, 583, 589, + 589, 592, 593, 588, 594, 595, 598, 596, 591, 596, + + 595, 590, 592, 593, 597, 597, 599, 600, 594, 600, + 601, 599, 602, 603, 604, 601, 607, 602, 605, 606, + 608, 598, 609, 605, 606, 607, 617, 607, 610, 611, + 603, 613, 608, 604, 836, 611, 614, 613, 615, 615, + 616, 609, 618, 610, 617, 614, 618, 619, 622, 616, + 620, 620, 619, 622, 623, 624, 625, 626, 623, 627, + 628, 630, 646, 631, 630, 646, 632, 633, 633, 624, + 627, 634, 634, 636, 625, 631, 638, 626, 632, 642, + 628, 635, 635, 637, 637, 636, 640, 641, 641, 643, + 643, 640, 644, 645, 638, 647, 647, 642, 649, 645, + + 648, 648, 650, 650, 651, 653, 652, 654, 655, 644, + 647, 652, 658, 659, 656, 666, 654, 655, 656, 653, + 660, 660, 659, 649, 651, 661, 663, 663, 664, 832, + 661, 658, 664, 665, 666, 667, 665, 668, 669, 670, + 667, 671, 668, 672, 669, 673, 671, 673, 676, 676, + 685, 672, 678, 678, 670, 679, 679, 681, 681, 683, + 684, 684, 686, 687, 683, 685, 689, 690, 687, 690, + 691, 689, 692, 693, 694, 695, 696, 696, 697, 698, + 699, 691, 700, 686, 693, 694, 695, 697, 702, 692, + 703, 703, 704, 705, 700, 707, 706, 708, 708, 699, + + 710, 709, 711, 712, 698, 702, 709, 716, 720, 704, + 705, 706, 717, 707, 710, 717, 718, 718, 719, 722, + 711, 724, 712, 721, 721, 720, 716, 723, 723, 725, + 726, 727, 719, 729, 730, 726, 727, 722, 725, 730, + 731, 732, 724, 733, 735, 731, 734, 729, 733, 736, + 737, 737, 738, 735, 740, 732, 741, 734, 736, 742, + 742, 738, 743, 745, 748, 744, 747, 751, 745, 750, + 750, 743, 740, 744, 741, 747, 748, 752, 752, 753, + 754, 754, 753, 755, 755, 756, 751, 757, 758, 758, + 759, 760, 757, 761, 759, 762, 764, 763, 756, 765, + + 767, 761, 763, 766, 769, 770, 777, 769, 773, 760, + 762, 830, 766, 771, 771, 764, 772, 773, 775, 767, + 772, 776, 770, 784, 765, 780, 780, 775, 781, 783, + 777, 785, 776, 786, 783, 787, 788, 781, 789, 790, + 791, 784, 796, 789, 788, 785, 792, 792, 786, 793, + 795, 795, 797, 787, 793, 798, 798, 800, 791, 799, + 799, 796, 801, 844, 790, 802, 802, 804, 800, 803, + 803, 805, 844, 797, 806, 806, 805, 807, 807, 808, + 808, 801, 809, 810, 810, 804, 822, 809, 812, 812, + 814, 814, 815, 818, 818, 819, 833, 815, 823, 828, + + 819, 843, 823, 827, 827, 822, 829, 831, 831, 845, + 829, 834, 834, 833, 835, 835, 837, 837, 839, 839, + 843, 846, 847, 845, 848, 848, 826, 825, 824, 821, + 820, 817, 816, 813, 846, 811, 794, 782, 779, 778, + 847, 851, 851, 851, 851, 851, 851, 852, 852, 852, + 852, 852, 852, 853, 853, 853, 853, 853, 853, 854, + 854, 854, 854, 854, 854, 856, 856, 774, 856, 856, + 856, 857, 857, 768, 749, 746, 857, 858, 858, 739, + 728, 858, 860, 860, 715, 714, 713, 860, 861, 861, + 701, 861, 861, 861, 688, 682, 680, 677, 675, 674, + + 662, 657, 639, 629, 621, 612, 587, 581, 580, 579, + 577, 557, 538, 523, 516, 505, 504, 485, 481, 470, + 469, 468, 451, 432, 423, 396, 379, 360, 352, 343, + 310, 284, 283, 281, 280, 276, 205, 199, 98, 97, + 95, 93, 91, 54, 50, 46, 45, 41, 36, 12, + 11, 850, 850, 850, 850, 850, 850, 850, 850, 850, + 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, + 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, + 850, 850, 850, 850, 850, 850, 850, 850, 850, 850 } ; static yy_state_type yy_last_accepting_state; @@ -1205,7 +1214,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1208 "" +#line 1217 "" #define INITIAL 0 #define quotedstring 1 @@ -1391,7 +1400,7 @@ YY_DECL #line 107 "util/configlexer.lex" -#line 1394 "" +#line 1403 "" if ( !(yy_init) ) { @@ -1450,13 +1459,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 837 ) + if ( yy_current_state >= 851 ) 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] != 1724 ); + while ( yy_base[yy_current_state] != 1752 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1693,206 +1702,211 @@ YY_RULE_SETUP case 43: YY_RULE_SETUP #line 150 "util/configlexer.lex" -{ YDOUT; return VAR_USE_CAPS_FOR_ID;} +{ YDOUT; return VAR_HARDEN_REFERRAL_PATH;} YY_BREAK case 44: YY_RULE_SETUP #line 151 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_ZONE;} +{ YDOUT; return VAR_USE_CAPS_FOR_ID;} YY_BREAK case 45: YY_RULE_SETUP #line 152 "util/configlexer.lex" -{ YDOUT; return VAR_NAME;} +{ YDOUT; return VAR_STUB_ZONE;} YY_BREAK case 46: YY_RULE_SETUP #line 153 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_ADDR;} +{ YDOUT; return VAR_NAME;} YY_BREAK case 47: YY_RULE_SETUP #line 154 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_HOST;} +{ YDOUT; return VAR_STUB_ADDR;} YY_BREAK case 48: YY_RULE_SETUP #line 155 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ZONE;} +{ YDOUT; return VAR_STUB_HOST;} YY_BREAK case 49: YY_RULE_SETUP #line 156 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ADDR;} +{ YDOUT; return VAR_FORWARD_ZONE;} YY_BREAK case 50: YY_RULE_SETUP #line 157 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_HOST;} +{ YDOUT; return VAR_FORWARD_ADDR;} YY_BREAK case 51: YY_RULE_SETUP #line 158 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} +{ YDOUT; return VAR_FORWARD_HOST;} YY_BREAK case 52: YY_RULE_SETUP #line 159 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} +{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} YY_BREAK case 53: YY_RULE_SETUP #line 160 "util/configlexer.lex" -{ YDOUT; return VAR_ACCESS_CONTROL;} +{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} YY_BREAK case 54: YY_RULE_SETUP #line 161 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_IDENTITY;} +{ YDOUT; return VAR_ACCESS_CONTROL;} YY_BREAK case 55: YY_RULE_SETUP #line 162 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_VERSION;} +{ YDOUT; return VAR_HIDE_IDENTITY;} YY_BREAK case 56: YY_RULE_SETUP #line 163 "util/configlexer.lex" -{ YDOUT; return VAR_IDENTITY;} +{ YDOUT; return VAR_HIDE_VERSION;} YY_BREAK case 57: YY_RULE_SETUP #line 164 "util/configlexer.lex" -{ YDOUT; return VAR_VERSION;} +{ YDOUT; return VAR_IDENTITY;} YY_BREAK case 58: YY_RULE_SETUP #line 165 "util/configlexer.lex" -{ YDOUT; return VAR_MODULE_CONF;} +{ YDOUT; return VAR_VERSION;} YY_BREAK case 59: YY_RULE_SETUP #line 166 "util/configlexer.lex" -{ YDOUT; return VAR_DLV_ANCHOR;} +{ YDOUT; return VAR_MODULE_CONF;} YY_BREAK case 60: YY_RULE_SETUP #line 167 "util/configlexer.lex" -{ YDOUT; return VAR_DLV_ANCHOR_FILE;} +{ YDOUT; return VAR_DLV_ANCHOR;} YY_BREAK case 61: YY_RULE_SETUP #line 168 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} +{ YDOUT; return VAR_DLV_ANCHOR_FILE;} YY_BREAK case 62: YY_RULE_SETUP #line 169 "util/configlexer.lex" -{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} +{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} YY_BREAK case 63: YY_RULE_SETUP #line 170 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR;} +{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} YY_BREAK case 64: YY_RULE_SETUP #line 171 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} +{ YDOUT; return VAR_TRUST_ANCHOR;} YY_BREAK case 65: YY_RULE_SETUP #line 172 "util/configlexer.lex" -{ YDOUT; return VAR_BOGUS_TTL;} +{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} YY_BREAK case 66: YY_RULE_SETUP #line 173 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} +{ YDOUT; return VAR_BOGUS_TTL;} YY_BREAK case 67: YY_RULE_SETUP #line 174 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} +{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} YY_BREAK case 68: YY_RULE_SETUP #line 175 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SIZE;} +{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} YY_BREAK case 69: YY_RULE_SETUP #line 176 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SLABS;} +{ YDOUT; return VAR_KEY_CACHE_SIZE;} YY_BREAK case 70: YY_RULE_SETUP #line 177 "util/configlexer.lex" -{ YDOUT; return VAR_NEG_CACHE_SIZE;} +{ YDOUT; return VAR_KEY_CACHE_SLABS;} YY_BREAK case 71: YY_RULE_SETUP #line 178 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} +{ YDOUT; return VAR_NEG_CACHE_SIZE;} YY_BREAK case 72: YY_RULE_SETUP #line 179 "util/configlexer.lex" -{ YDOUT; return VAR_USE_SYSLOG;} +{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} YY_BREAK case 73: YY_RULE_SETUP #line 180 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_ZONE;} +{ YDOUT; return VAR_USE_SYSLOG;} YY_BREAK case 74: YY_RULE_SETUP #line 181 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_DATA;} +{ YDOUT; return VAR_LOCAL_ZONE;} YY_BREAK case 75: YY_RULE_SETUP #line 182 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_INTERVAL;} +{ YDOUT; return VAR_LOCAL_DATA;} YY_BREAK case 76: YY_RULE_SETUP #line 183 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_CUMULATIVE;} +{ YDOUT; return VAR_STATISTICS_INTERVAL;} YY_BREAK case 77: -/* rule 77 can match eol */ YY_RULE_SETUP #line 184 "util/configlexer.lex" +{ YDOUT; return VAR_STATISTICS_CUMULATIVE;} + YY_BREAK +case 78: +/* rule 78 can match eol */ +YY_RULE_SETUP +#line 185 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 78: +case 79: YY_RULE_SETUP -#line 187 "util/configlexer.lex" +#line 188 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 188 "util/configlexer.lex" +#line 189 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 79: -YY_RULE_SETUP -#line 192 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 80: -/* rule 80 can match eol */ YY_RULE_SETUP #line 193 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK case 81: +/* rule 81 can match eol */ YY_RULE_SETUP #line 194 "util/configlexer.lex" +{ cfg_parser->line++; yymore(); } + YY_BREAK +case 82: +YY_RULE_SETUP +#line 195 "util/configlexer.lex" { LEXOUT(("QE ")); BEGIN(INITIAL); @@ -1904,32 +1918,32 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 82: +case 83: YY_RULE_SETUP -#line 205 "util/configlexer.lex" +#line 206 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 206 "util/configlexer.lex" +#line 207 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 83: -YY_RULE_SETUP -#line 210 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 84: -/* rule 84 can match eol */ YY_RULE_SETUP #line 211 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK case 85: +/* rule 85 can match eol */ YY_RULE_SETUP #line 212 "util/configlexer.lex" +{ cfg_parser->line++; yymore(); } + YY_BREAK +case 86: +YY_RULE_SETUP +#line 213 "util/configlexer.lex" { LEXOUT(("SQE ")); BEGIN(INITIAL); @@ -1941,37 +1955,37 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 86: +case 87: YY_RULE_SETUP -#line 223 "util/configlexer.lex" +#line 224 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 224 "util/configlexer.lex" +#line 225 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(INITIAL); } YY_BREAK -case 87: -YY_RULE_SETUP -#line 228 "util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 88: -/* rule 88 can match eol */ YY_RULE_SETUP #line 229 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 89: +/* rule 89 can match eol */ YY_RULE_SETUP #line 230 "util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 90: YY_RULE_SETUP #line 231 "util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 91: +YY_RULE_SETUP +#line 232 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); @@ -1979,26 +1993,26 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 236 "util/configlexer.lex" +#line 237 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 91: -YY_RULE_SETUP -#line 240 "util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 92: -/* rule 92 can match eol */ YY_RULE_SETUP #line 241 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK case 93: +/* rule 93 can match eol */ YY_RULE_SETUP #line 242 "util/configlexer.lex" +{ cfg_parser->line++; yymore(); } + YY_BREAK +case 94: +YY_RULE_SETUP +#line 243 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -2007,7 +2021,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 248 "util/configlexer.lex" +#line 249 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -2018,18 +2032,18 @@ case YY_STATE_EOF(INITIAL): } } YY_BREAK -case 94: +case 95: YY_RULE_SETUP -#line 258 "util/configlexer.lex" +#line 259 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); yylval.str = strdup(yytext); return STRING; } YY_BREAK -case 95: +case 96: YY_RULE_SETUP -#line 261 "util/configlexer.lex" +#line 262 "util/configlexer.lex" ECHO; YY_BREAK -#line 2032 "" +#line 2046 "" case YY_END_OF_BUFFER: { @@ -2319,7 +2333,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 >= 837 ) + if ( yy_current_state >= 851 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2347,11 +2361,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 >= 837 ) + if ( yy_current_state >= 851 ) 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 == 836); + yy_is_jam = (yy_current_state == 850); return yy_is_jam ? 0 : yy_current_state; } @@ -2988,7 +3002,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 261 "util/configlexer.lex" +#line 262 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 64861a35c..a29a6e67b 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -147,6 +147,7 @@ harden-short-bufsize{COLON} { YDOUT; return VAR_HARDEN_SHORT_BUFSIZE;} harden-large-queries{COLON} { YDOUT; return VAR_HARDEN_LARGE_QUERIES;} harden-glue{COLON} { YDOUT; return VAR_HARDEN_GLUE;} harden-dnssec-stripped{COLON} { YDOUT; return VAR_HARDEN_DNNSEC_STRIPPED;} +harden-referral-path{COLON} { YDOUT; return VAR_HARDEN_REFERRAL_PATH;} use-caps-for-id{COLON} { YDOUT; return VAR_USE_CAPS_FOR_ID;} stub-zone{COLON} { YDOUT; return VAR_STUB_ZONE;} name{COLON} { YDOUT; return VAR_NAME;} diff --git a/util/configparser.c b/util/configparser.c index 745a4e77f..f98957cf6 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -147,7 +147,8 @@ VAR_OUTGOING_PORT_AVOID = 336, VAR_DLV_ANCHOR_FILE = 337, VAR_DLV_ANCHOR = 338, - VAR_NEG_CACHE_SIZE = 339 + VAR_NEG_CACHE_SIZE = 339, + VAR_HARDEN_REFERRAL_PATH = 340 }; #endif /* Tokens. */ @@ -233,6 +234,7 @@ #define VAR_DLV_ANCHOR_FILE 337 #define VAR_DLV_ANCHOR 338 #define VAR_NEG_CACHE_SIZE 339 +#define VAR_HARDEN_REFERRAL_PATH 340 @@ -291,7 +293,7 @@ typedef union YYSTYPE char* str; } /* Line 187 of yacc.c. */ -#line 295 "util/configparser.c" +#line 297 "util/configparser.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -304,7 +306,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 308 "util/configparser.c" +#line 310 "util/configparser.c" #ifdef short # undef short @@ -519,20 +521,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 149 +#define YYLAST 151 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 85 +#define YYNTOKENS 86 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 84 +#define YYNNTS 85 /* YYNRULES -- Number of rules. */ -#define YYNRULES 159 +#define YYNRULES 161 /* YYNRULES -- Number of states. */ -#define YYNSTATES 234 +#define YYNSTATES 237 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 339 +#define YYMAXUTOK 340 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -573,7 +575,8 @@ static const yytype_uint8 yytranslate[] = 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84 + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85 }; #if YYDEBUG @@ -588,60 +591,62 @@ static const yytype_uint16 yyprhs[] = 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, - 142, 144, 146, 148, 150, 152, 154, 156, 159, 160, - 162, 164, 166, 168, 171, 172, 174, 176, 178, 181, - 184, 187, 190, 193, 196, 199, 202, 205, 208, 211, - 214, 217, 220, 223, 226, 229, 232, 235, 238, 241, - 244, 247, 250, 253, 256, 259, 262, 265, 268, 271, - 274, 277, 280, 283, 286, 289, 292, 295, 298, 301, - 304, 307, 310, 313, 316, 319, 322, 325, 328, 331, - 334, 337, 341, 344, 347, 350, 353, 356, 359, 362, - 365, 368, 371, 375, 378, 381, 384, 387, 390, 393 + 142, 144, 146, 148, 150, 152, 154, 156, 158, 161, + 162, 164, 166, 168, 170, 173, 174, 176, 178, 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, + 333, 336, 339, 342, 346, 349, 352, 355, 358, 361, + 364, 367, 370, 373, 376, 380, 383, 386, 389, 392, + 395, 398 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 86, 0, -1, -1, 86, 87, -1, 88, 89, -1, - 91, 92, -1, 94, 95, -1, 11, -1, 89, 90, - -1, -1, 97, -1, 98, -1, 101, -1, 104, -1, - 110, -1, 111, -1, 112, -1, 113, -1, 102, -1, - 116, -1, 117, -1, 118, -1, 119, -1, 120, -1, - 132, -1, 133, -1, 134, -1, 135, -1, 136, -1, - 107, -1, 137, -1, 138, -1, 141, -1, 139, -1, - 140, -1, 142, -1, 143, -1, 144, -1, 148, -1, - 127, -1, 128, -1, 129, -1, 130, -1, 145, -1, - 151, -1, 124, -1, 126, -1, 152, -1, 154, -1, - 155, -1, 156, -1, 108, -1, 131, -1, 158, -1, - 159, -1, 125, -1, 157, -1, 115, -1, 103, -1, - 121, -1, 149, -1, 153, -1, 146, -1, 150, -1, - 161, -1, 162, -1, 109, -1, 99, -1, 114, -1, - 147, -1, 100, -1, 105, -1, 106, -1, 122, -1, - 123, -1, 160, -1, 38, -1, 92, 93, -1, -1, - 163, -1, 164, -1, 165, -1, 44, -1, 95, 96, - -1, -1, 166, -1, 167, -1, 168, -1, 13, 10, - -1, 12, 10, -1, 76, 10, -1, 79, 10, -1, - 14, 10, -1, 16, 10, -1, 67, 10, -1, 15, - 10, -1, 80, 10, -1, 81, 10, -1, 31, 10, - -1, 60, 10, -1, 75, 10, -1, 17, 10, -1, - 18, 10, -1, 19, 10, -1, 20, 10, -1, 77, - 10, -1, 66, 10, -1, 21, 10, -1, 22, 10, - -1, 23, 10, -1, 24, 10, -1, 25, 10, -1, - 68, 10, -1, 82, 10, -1, 83, 10, -1, 54, - 10, -1, 64, 10, -1, 55, 10, -1, 48, 10, - -1, 49, 10, -1, 50, 10, -1, 51, 10, -1, - 61, 10, -1, 26, 10, -1, 27, 10, -1, 28, - 10, -1, 29, 10, -1, 30, 10, -1, 32, 10, - -1, 33, 10, -1, 35, 10, -1, 36, 10, -1, - 34, 10, -1, 41, 10, -1, 42, 10, -1, 43, - 10, -1, 52, 10, -1, 71, 10, -1, 78, 10, - -1, 47, 10, -1, 69, 10, -1, 72, 10, 10, - -1, 53, 10, -1, 56, 10, -1, 70, 10, -1, - 57, 10, -1, 58, 10, -1, 59, 10, -1, 65, - 10, -1, 62, 10, -1, 63, 10, -1, 84, 10, - -1, 73, 10, 10, -1, 74, 10, -1, 37, 10, - -1, 39, 10, -1, 40, 10, -1, 37, 10, -1, - 45, 10, -1, 46, 10, -1 + 87, 0, -1, -1, 87, 88, -1, 89, 90, -1, + 92, 93, -1, 95, 96, -1, 11, -1, 90, 91, + -1, -1, 98, -1, 99, -1, 102, -1, 105, -1, + 111, -1, 112, -1, 113, -1, 114, -1, 103, -1, + 117, -1, 118, -1, 119, -1, 120, -1, 121, -1, + 133, -1, 134, -1, 135, -1, 136, -1, 137, -1, + 108, -1, 138, -1, 139, -1, 142, -1, 140, -1, + 141, -1, 143, -1, 144, -1, 145, -1, 150, -1, + 128, -1, 129, -1, 130, -1, 131, -1, 146, -1, + 153, -1, 125, -1, 127, -1, 154, -1, 156, -1, + 157, -1, 158, -1, 109, -1, 132, -1, 160, -1, + 161, -1, 126, -1, 159, -1, 116, -1, 104, -1, + 122, -1, 151, -1, 155, -1, 147, -1, 152, -1, + 163, -1, 164, -1, 110, -1, 100, -1, 115, -1, + 149, -1, 101, -1, 106, -1, 107, -1, 123, -1, + 124, -1, 162, -1, 148, -1, 38, -1, 93, 94, + -1, -1, 165, -1, 166, -1, 167, -1, 44, -1, + 96, 97, -1, -1, 168, -1, 169, -1, 170, -1, + 13, 10, -1, 12, 10, -1, 76, 10, -1, 79, + 10, -1, 14, 10, -1, 16, 10, -1, 67, 10, + -1, 15, 10, -1, 80, 10, -1, 81, 10, -1, + 31, 10, -1, 60, 10, -1, 75, 10, -1, 17, + 10, -1, 18, 10, -1, 19, 10, -1, 20, 10, + -1, 77, 10, -1, 66, 10, -1, 21, 10, -1, + 22, 10, -1, 23, 10, -1, 24, 10, -1, 25, + 10, -1, 68, 10, -1, 82, 10, -1, 83, 10, + -1, 54, 10, -1, 64, 10, -1, 55, 10, -1, + 48, 10, -1, 49, 10, -1, 50, 10, -1, 51, + 10, -1, 61, 10, -1, 26, 10, -1, 27, 10, + -1, 28, 10, -1, 29, 10, -1, 30, 10, -1, + 32, 10, -1, 33, 10, -1, 35, 10, -1, 36, + 10, -1, 34, 10, -1, 41, 10, -1, 42, 10, + -1, 43, 10, -1, 52, 10, -1, 71, 10, -1, + 85, 10, -1, 78, 10, -1, 47, 10, -1, 69, + 10, -1, 72, 10, 10, -1, 53, 10, -1, 56, + 10, -1, 70, 10, -1, 57, 10, -1, 58, 10, + -1, 59, 10, -1, 65, 10, -1, 62, 10, -1, + 63, 10, -1, 84, 10, -1, 73, 10, 10, -1, + 74, 10, -1, 37, 10, -1, 39, 10, -1, 40, + 10, -1, 37, 10, -1, 45, 10, -1, 46, 10, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -654,15 +659,16 @@ static const yytype_uint16 yyrline[] = 123, 123, 123, 124, 124, 124, 125, 125, 125, 126, 126, 127, 127, 128, 128, 129, 129, 130, 130, 130, 131, 131, 132, 132, 133, 133, 133, 134, 134, 135, - 135, 136, 136, 137, 137, 137, 139, 151, 152, 153, - 153, 153, 155, 167, 168, 169, 169, 169, 171, 180, - 189, 200, 209, 218, 231, 246, 255, 264, 273, 282, - 291, 300, 309, 318, 327, 336, 345, 359, 366, 373, - 380, 388, 395, 402, 409, 416, 424, 432, 439, 448, - 457, 464, 471, 482, 490, 503, 512, 520, 533, 542, - 551, 560, 569, 582, 589, 599, 609, 619, 629, 639, - 646, 656, 669, 676, 694, 703, 712, 722, 732, 739, - 747, 760, 768, 787, 794, 801, 808, 815, 822, 829 + 135, 136, 136, 137, 137, 137, 138, 140, 152, 153, + 154, 154, 154, 156, 168, 169, 170, 170, 170, 172, + 181, 190, 201, 210, 219, 232, 247, 256, 265, 274, + 283, 292, 301, 310, 319, 328, 337, 346, 360, 367, + 374, 381, 389, 396, 403, 410, 417, 425, 433, 440, + 449, 458, 465, 472, 483, 491, 504, 513, 521, 534, + 543, 552, 561, 570, 583, 590, 600, 610, 620, 630, + 640, 650, 657, 667, 680, 687, 705, 714, 723, 733, + 743, 750, 758, 771, 779, 798, 805, 812, 819, 826, + 833, 840 }; #endif @@ -697,16 +703,17 @@ static const char *const yytname[] = "VAR_STATISTICS_INTERVAL", "VAR_DO_DAEMONIZE", "VAR_USE_CAPS_FOR_ID", "VAR_STATISTICS_CUMULATIVE", "VAR_OUTGOING_PORT_PERMIT", "VAR_OUTGOING_PORT_AVOID", "VAR_DLV_ANCHOR_FILE", "VAR_DLV_ANCHOR", - "VAR_NEG_CACHE_SIZE", "$accept", "toplevelvars", "toplevelvar", - "serverstart", "contents_server", "content_server", "stubstart", - "contents_stub", "content_stub", "forwardstart", "contents_forward", - "content_forward", "server_num_threads", "server_verbosity", - "server_statistics_interval", "server_statistics_cumulative", - "server_port", "server_interface", "server_outgoing_interface", - "server_outgoing_range", "server_outgoing_port_permit", - "server_outgoing_port_avoid", "server_outgoing_num_tcp", - "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", - "server_do_ip6", "server_do_udp", "server_do_tcp", "server_do_daemonize", + "VAR_NEG_CACHE_SIZE", "VAR_HARDEN_REFERRAL_PATH", "$accept", + "toplevelvars", "toplevelvar", "serverstart", "contents_server", + "content_server", "stubstart", "contents_stub", "content_stub", + "forwardstart", "contents_forward", "content_forward", + "server_num_threads", "server_verbosity", "server_statistics_interval", + "server_statistics_cumulative", "server_port", "server_interface", + "server_outgoing_interface", "server_outgoing_range", + "server_outgoing_port_permit", "server_outgoing_port_avoid", + "server_outgoing_num_tcp", "server_incoming_num_tcp", + "server_interface_automatic", "server_do_ip4", "server_do_ip6", + "server_do_udp", "server_do_tcp", "server_do_daemonize", "server_use_syslog", "server_chroot", "server_username", "server_directory", "server_logfile", "server_pidfile", "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor", @@ -720,15 +727,16 @@ static const char *const yytname[] = "server_infra_cache_lame_size", "server_infra_cache_slabs", "server_target_fetch_policy", "server_harden_short_bufsize", "server_harden_large_queries", "server_harden_glue", - "server_harden_dnssec_stripped", "server_use_caps_for_id", - "server_do_not_query_address", "server_do_not_query_localhost", - "server_access_control", "server_module_conf", - "server_val_override_date", "server_cache_max_ttl", "server_bogus_ttl", - "server_val_clean_additional", "server_val_permissive_mode", - "server_val_nsec3_keysize_iterations", "server_key_cache_size", - "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", - "server_local_data", "stub_name", "stub_host", "stub_addr", - "forward_name", "forward_host", "forward_addr", 0 + "server_harden_dnssec_stripped", "server_harden_referral_path", + "server_use_caps_for_id", "server_do_not_query_address", + "server_do_not_query_localhost", "server_access_control", + "server_module_conf", "server_val_override_date", "server_cache_max_ttl", + "server_bogus_ttl", "server_val_clean_additional", + "server_val_permissive_mode", "server_val_nsec3_keysize_iterations", + "server_key_cache_size", "server_key_cache_slabs", + "server_neg_cache_size", "server_local_zone", "server_local_data", + "stub_name", "stub_host", "stub_addr", "forward_name", "forward_host", + "forward_addr", 0 }; #endif @@ -745,29 +753,30 @@ static const yytype_uint16 yytoknum[] = 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339 + 335, 336, 337, 338, 339, 340 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 85, 86, 86, 87, 87, 87, 88, 89, 89, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 91, 92, 92, 93, - 93, 93, 94, 95, 95, 96, 96, 96, 97, 98, + 0, 86, 87, 87, 88, 88, 88, 89, 90, 90, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 92, 93, 93, + 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168 + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -780,15 +789,16 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 2, 0, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 2, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 2, 3, 2, 2, 2, 2, 2, 2, 2 + 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, + 2, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -796,44 +806,44 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 7, 76, 82, 3, 9, 78, 84, + 2, 0, 1, 7, 77, 83, 3, 9, 79, 85, 4, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, - 10, 11, 67, 70, 12, 18, 58, 13, 71, 72, - 29, 51, 66, 14, 15, 16, 17, 68, 57, 19, - 20, 21, 22, 23, 59, 73, 74, 45, 55, 46, - 39, 40, 41, 42, 52, 24, 25, 26, 27, 28, - 30, 31, 33, 34, 32, 35, 36, 37, 43, 62, - 69, 38, 60, 63, 44, 47, 61, 48, 49, 50, - 56, 53, 54, 75, 64, 65, 0, 0, 0, 77, - 79, 80, 81, 0, 0, 0, 83, 85, 86, 87, - 89, 88, 92, 95, 93, 101, 102, 103, 104, 107, - 108, 109, 110, 111, 123, 124, 125, 126, 127, 98, - 128, 129, 132, 130, 131, 133, 134, 135, 139, 118, - 119, 120, 121, 136, 142, 115, 117, 143, 145, 146, - 147, 99, 122, 149, 150, 116, 148, 106, 94, 112, - 140, 144, 137, 0, 0, 153, 100, 90, 105, 138, - 91, 96, 97, 113, 114, 151, 154, 155, 156, 157, - 158, 159, 141, 152 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 10, 11, 67, 70, 12, 18, 58, 13, 71, + 72, 29, 51, 66, 14, 15, 16, 17, 68, 57, + 19, 20, 21, 22, 23, 59, 73, 74, 45, 55, + 46, 39, 40, 41, 42, 52, 24, 25, 26, 27, + 28, 30, 31, 33, 34, 32, 35, 36, 37, 43, + 62, 76, 69, 38, 60, 63, 44, 47, 61, 48, + 49, 50, 56, 53, 54, 75, 64, 65, 0, 0, + 0, 78, 80, 81, 82, 0, 0, 0, 84, 86, + 87, 88, 90, 89, 93, 96, 94, 102, 103, 104, + 105, 108, 109, 110, 111, 112, 124, 125, 126, 127, + 128, 99, 129, 130, 133, 131, 132, 134, 135, 136, + 141, 119, 120, 121, 122, 137, 144, 116, 118, 145, + 147, 148, 149, 100, 123, 151, 152, 117, 150, 107, + 95, 113, 142, 146, 138, 0, 0, 155, 101, 91, + 106, 140, 92, 97, 98, 114, 115, 153, 139, 156, + 157, 158, 159, 160, 161, 143, 154 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 6, 7, 10, 79, 8, 11, 149, 9, - 12, 156, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 150, 151, - 152, 157, 158, 159 + -1, 1, 6, 7, 10, 80, 8, 11, 151, 9, + 12, 158, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 152, + 153, 154, 159, 160, 161 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -841,30 +851,30 @@ static const yytype_int16 yydefgoto[] = #define YYPACT_NINF -13 static const yytype_int16 yypact[] = { - -13, 73, -13, -13, -13, -13, -13, -13, -13, -13, - -12, 38, 37, 15, 16, 17, 18, 22, 23, 24, - 66, 69, 70, 71, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, -13, + -13, 74, -13, -13, -13, -13, -13, -13, -13, -13, + -12, 39, 38, 15, 16, 17, 18, 22, 23, 24, + 67, 70, 71, 72, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 103, 104, 105, 106, 107, 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, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -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, 134, -13, - -13, -13, -13, 135, 136, 137, -13, -13, -13, -13, + -13, -13, -13, -13, -13, -13, -13, -13, 134, 135, + 136, -13, -13, -13, -13, 137, 138, 139, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, 138, 139, -13, -13, -13, -13, -13, + -13, -13, -13, -13, -13, 140, 141, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13 + -13, -13, -13, -13, -13, -13, -13 }; /* YYPGOTO[NTERM-NUM]. */ @@ -878,7 +888,7 @@ static const yytype_int8 yypgoto[] = -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13 + -13, -13, -13, -13, -13 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -890,19 +900,20 @@ 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, 160, 161, 162, 163, 38, - 39, 40, 164, 165, 166, 41, 42, 43, 44, 45, + 33, 34, 35, 36, 37, 162, 163, 164, 165, 38, + 39, 40, 166, 167, 168, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 2, 153, 146, 167, 147, 148, 168, - 169, 170, 154, 155, 3, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 4, 197, 198, 199, 200, 201, 5, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233 + 76, 77, 78, 79, 2, 155, 148, 169, 149, 150, + 170, 171, 172, 156, 157, 3, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 4, 199, 200, 201, 202, 203, 5, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236 }; static const yytype_uint8 yycheck[] = @@ -914,44 +925,45 @@ static const yytype_uint8 yycheck[] = 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 0, 37, 37, 10, 39, 40, 10, - 10, 10, 45, 46, 11, 10, 10, 10, 10, 10, + 82, 83, 84, 85, 0, 37, 37, 10, 39, 40, + 10, 10, 10, 45, 46, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 38, 10, 10, 10, 10, 10, 44, 10, 10, + 10, 10, 38, 10, 10, 10, 10, 10, 44, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 86, 0, 11, 38, 44, 87, 88, 91, 94, - 89, 92, 95, 12, 13, 14, 15, 16, 17, 18, + 0, 87, 0, 11, 38, 44, 88, 89, 92, 95, + 90, 93, 96, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 41, 42, 43, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 90, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 91, 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, 37, 39, 40, 93, - 163, 164, 165, 37, 45, 46, 96, 166, 167, 168, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 157, 158, 159, 160, 161, 162, 163, 164, 37, 39, + 40, 94, 165, 166, 167, 37, 45, 46, 97, 168, + 169, 170, 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) @@ -1772,8 +1784,8 @@ yyreduce: } break; - case 76: -#line 140 "util/configparser.y" + case 77: +#line 141 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -1786,8 +1798,8 @@ yyreduce: } break; - case 82: -#line 156 "util/configparser.y" + case 83: +#line 157 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -1800,8 +1812,8 @@ yyreduce: } break; - case 88: -#line 172 "util/configparser.y" + case 89: +#line 173 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1811,8 +1823,8 @@ yyreduce: } break; - case 89: -#line 181 "util/configparser.y" + case 90: +#line 182 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1822,8 +1834,8 @@ yyreduce: } break; - case 90: -#line 190 "util/configparser.y" + case 91: +#line 191 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) @@ -1835,8 +1847,8 @@ yyreduce: } break; - case 91: -#line 201 "util/configparser.y" + case 92: +#line 202 "util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1846,8 +1858,8 @@ yyreduce: } break; - case 92: -#line 210 "util/configparser.y" + case 93: +#line 211 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -1857,8 +1869,8 @@ yyreduce: } break; - case 93: -#line 219 "util/configparser.y" + case 94: +#line 220 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -1872,8 +1884,8 @@ yyreduce: } break; - case 94: -#line 232 "util/configparser.y" + case 95: +#line 233 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -1889,8 +1901,8 @@ yyreduce: } break; - case 95: -#line 247 "util/configparser.y" + case 96: +#line 248 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -1900,8 +1912,8 @@ yyreduce: } break; - case 96: -#line 256 "util/configparser.y" + case 97: +#line 257 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, @@ -1911,8 +1923,8 @@ yyreduce: } break; - case 97: -#line 265 "util/configparser.y" + case 98: +#line 266 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, @@ -1922,8 +1934,8 @@ yyreduce: } break; - case 98: -#line 274 "util/configparser.y" + case 99: +#line 275 "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) @@ -1933,8 +1945,8 @@ yyreduce: } break; - case 99: -#line 283 "util/configparser.y" + case 100: +#line 284 "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) @@ -1944,8 +1956,8 @@ yyreduce: } break; - case 100: -#line 292 "util/configparser.y" + case 101: +#line 293 "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) @@ -1955,8 +1967,8 @@ yyreduce: } break; - case 101: -#line 301 "util/configparser.y" + case 102: +#line 302 "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) @@ -1966,8 +1978,8 @@ yyreduce: } break; - case 102: -#line 310 "util/configparser.y" + case 103: +#line 311 "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) @@ -1977,8 +1989,8 @@ yyreduce: } break; - case 103: -#line 319 "util/configparser.y" + case 104: +#line 320 "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) @@ -1988,8 +2000,8 @@ yyreduce: } break; - case 104: -#line 328 "util/configparser.y" + case 105: +#line 329 "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) @@ -1999,8 +2011,8 @@ yyreduce: } break; - case 105: -#line 337 "util/configparser.y" + case 106: +#line 338 "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) @@ -2010,8 +2022,8 @@ yyreduce: } break; - case 106: -#line 346 "util/configparser.y" + case 107: +#line 347 "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) @@ -2026,8 +2038,8 @@ yyreduce: } break; - case 107: -#line 360 "util/configparser.y" + case 108: +#line 361 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -2035,8 +2047,8 @@ yyreduce: } break; - case 108: -#line 367 "util/configparser.y" + case 109: +#line 368 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -2044,8 +2056,8 @@ yyreduce: } break; - case 109: -#line 374 "util/configparser.y" + case 110: +#line 375 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -2053,8 +2065,8 @@ yyreduce: } break; - case 110: -#line 381 "util/configparser.y" + case 111: +#line 382 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -2063,8 +2075,8 @@ yyreduce: } break; - case 111: -#line 389 "util/configparser.y" + case 112: +#line 390 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2072,8 +2084,8 @@ yyreduce: } break; - case 112: -#line 396 "util/configparser.y" + case 113: +#line 397 "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))) @@ -2081,8 +2093,8 @@ yyreduce: } break; - case 113: -#line 403 "util/configparser.y" + case 114: +#line 404 "util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dlv_anchor_file); @@ -2090,8 +2102,8 @@ yyreduce: } break; - case 114: -#line 410 "util/configparser.y" + case 115: +#line 411 "util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2099,8 +2111,8 @@ yyreduce: } break; - case 115: -#line 417 "util/configparser.y" + case 116: +#line 418 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2109,8 +2121,8 @@ yyreduce: } break; - case 116: -#line 425 "util/configparser.y" + case 117: +#line 426 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2119,8 +2131,8 @@ yyreduce: } break; - case 117: -#line 433 "util/configparser.y" + case 118: +#line 434 "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))) @@ -2128,8 +2140,8 @@ yyreduce: } break; - case 118: -#line 440 "util/configparser.y" + case 119: +#line 441 "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) @@ -2139,8 +2151,8 @@ yyreduce: } break; - case 119: -#line 449 "util/configparser.y" + case 120: +#line 450 "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) @@ -2150,8 +2162,8 @@ yyreduce: } break; - case 120: -#line 458 "util/configparser.y" + case 121: +#line 459 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2159,8 +2171,8 @@ yyreduce: } break; - case 121: -#line 465 "util/configparser.y" + case 122: +#line 466 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2168,8 +2180,8 @@ yyreduce: } break; - case 122: -#line 472 "util/configparser.y" + case 123: +#line 473 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2181,8 +2193,8 @@ yyreduce: } break; - case 123: -#line 483 "util/configparser.y" + case 124: +#line 484 "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)) @@ -2191,8 +2203,8 @@ yyreduce: } break; - case 124: -#line 491 "util/configparser.y" + case 125: +#line 492 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2206,8 +2218,8 @@ yyreduce: } break; - case 125: -#line 504 "util/configparser.y" + case 126: +#line 505 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2217,8 +2229,8 @@ yyreduce: } break; - case 126: -#line 513 "util/configparser.y" + case 127: +#line 514 "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)) @@ -2227,8 +2239,8 @@ yyreduce: } break; - case 127: -#line 521 "util/configparser.y" + case 128: +#line 522 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2242,8 +2254,8 @@ yyreduce: } break; - case 128: -#line 534 "util/configparser.y" + case 129: +#line 535 "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) @@ -2253,8 +2265,8 @@ yyreduce: } break; - case 129: -#line 543 "util/configparser.y" + case 130: +#line 544 "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) @@ -2264,8 +2276,8 @@ yyreduce: } break; - case 130: -#line 552 "util/configparser.y" + case 131: +#line 553 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2275,8 +2287,8 @@ yyreduce: } break; - case 131: -#line 561 "util/configparser.y" + case 132: +#line 562 "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-> @@ -2286,8 +2298,8 @@ yyreduce: } break; - case 132: -#line 570 "util/configparser.y" + case 133: +#line 571 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2301,8 +2313,8 @@ yyreduce: } break; - case 133: -#line 583 "util/configparser.y" + case 134: +#line 584 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -2310,8 +2322,8 @@ yyreduce: } break; - case 134: -#line 590 "util/configparser.y" + case 135: +#line 591 "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) @@ -2322,8 +2334,8 @@ yyreduce: } break; - case 135: -#line 600 "util/configparser.y" + case 136: +#line 601 "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) @@ -2334,8 +2346,8 @@ yyreduce: } break; - case 136: -#line 610 "util/configparser.y" + case 137: +#line 611 "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) @@ -2346,8 +2358,8 @@ yyreduce: } break; - case 137: -#line 620 "util/configparser.y" + case 138: +#line 621 "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) @@ -2358,8 +2370,20 @@ yyreduce: } break; - case 138: -#line 630 "util/configparser.y" + case 139: +#line 631 "util/configparser.y" + { + OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->harden_referral_path = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 140: +#line 641 "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) @@ -2370,8 +2394,8 @@ yyreduce: } break; - case 139: -#line 640 "util/configparser.y" + case 141: +#line 651 "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))) @@ -2379,8 +2403,8 @@ yyreduce: } break; - case 140: -#line 647 "util/configparser.y" + case 142: +#line 658 "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) @@ -2391,8 +2415,8 @@ yyreduce: } break; - case 141: -#line 657 "util/configparser.y" + case 143: +#line 668 "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 && @@ -2406,8 +2430,8 @@ yyreduce: } break; - case 142: -#line 670 "util/configparser.y" + case 144: +#line 681 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -2415,8 +2439,8 @@ yyreduce: } break; - case 143: -#line 677 "util/configparser.y" + case 145: +#line 688 "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) { @@ -2435,8 +2459,8 @@ yyreduce: } break; - case 144: -#line 695 "util/configparser.y" + case 146: +#line 706 "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) @@ -2446,8 +2470,8 @@ yyreduce: } break; - case 145: -#line 704 "util/configparser.y" + case 147: +#line 715 "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) @@ -2457,8 +2481,8 @@ yyreduce: } break; - case 146: -#line 713 "util/configparser.y" + case 148: +#line 724 "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) @@ -2469,8 +2493,8 @@ yyreduce: } break; - case 147: -#line 723 "util/configparser.y" + case 149: +#line 734 "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) @@ -2481,8 +2505,8 @@ yyreduce: } break; - case 148: -#line 733 "util/configparser.y" + case 150: +#line 744 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -2490,8 +2514,8 @@ yyreduce: } break; - case 149: -#line 740 "util/configparser.y" + case 151: +#line 751 "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)) @@ -2500,8 +2524,8 @@ yyreduce: } break; - case 150: -#line 748 "util/configparser.y" + case 152: +#line 759 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2515,8 +2539,8 @@ yyreduce: } break; - case 151: -#line 761 "util/configparser.y" + case 153: +#line 772 "util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) @@ -2525,8 +2549,8 @@ yyreduce: } break; - case 152: -#line 769 "util/configparser.y" + case 154: +#line 780 "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 && @@ -2546,8 +2570,8 @@ yyreduce: } break; - case 153: -#line 788 "util/configparser.y" + case 155: +#line 799 "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))) @@ -2555,8 +2579,8 @@ yyreduce: } break; - case 154: -#line 795 "util/configparser.y" + case 156: +#line 806 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->stubs->name); @@ -2564,8 +2588,8 @@ yyreduce: } break; - case 155: -#line 802 "util/configparser.y" + case 157: +#line 813 "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))) @@ -2573,8 +2597,8 @@ yyreduce: } break; - case 156: -#line 809 "util/configparser.y" + case 158: +#line 820 "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))) @@ -2582,8 +2606,8 @@ yyreduce: } break; - case 157: -#line 816 "util/configparser.y" + case 159: +#line 827 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->forwards->name); @@ -2591,8 +2615,8 @@ yyreduce: } break; - case 158: -#line 823 "util/configparser.y" + case 160: +#line 834 "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))) @@ -2600,8 +2624,8 @@ yyreduce: } break; - case 159: -#line 830 "util/configparser.y" + case 161: +#line 841 "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))) @@ -2611,7 +2635,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2615 "util/configparser.c" +#line 2639 "util/configparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2825,7 +2849,7 @@ yyreturn: } -#line 836 "util/configparser.y" +#line 847 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index e308d9154..45ecd8f35 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -120,7 +120,8 @@ VAR_OUTGOING_PORT_AVOID = 336, VAR_DLV_ANCHOR_FILE = 337, VAR_DLV_ANCHOR = 338, - VAR_NEG_CACHE_SIZE = 339 + VAR_NEG_CACHE_SIZE = 339, + VAR_HARDEN_REFERRAL_PATH = 340 }; #endif /* Tokens. */ @@ -206,6 +207,7 @@ #define VAR_DLV_ANCHOR_FILE 337 #define VAR_DLV_ANCHOR 338 #define VAR_NEG_CACHE_SIZE 339 +#define VAR_HARDEN_REFERRAL_PATH 340 @@ -217,7 +219,7 @@ typedef union YYSTYPE char* str; } /* Line 1489 of yacc.c. */ -#line 221 "util/configparser.h" +#line 223 "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 8f9cf6169..785652676 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -91,7 +91,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_STATISTICS_INTERVAL VAR_DO_DAEMONIZE VAR_USE_CAPS_FOR_ID %token VAR_STATISTICS_CUMULATIVE VAR_OUTGOING_PORT_PERMIT %token VAR_OUTGOING_PORT_AVOID VAR_DLV_ANCHOR_FILE VAR_DLV_ANCHOR -%token VAR_NEG_CACHE_SIZE +%token VAR_NEG_CACHE_SIZE VAR_HARDEN_REFERRAL_PATH %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -134,7 +134,8 @@ content_server: server_num_threads | server_verbosity | server_port | server_statistics_interval | server_do_daemonize | server_use_caps_for_id | server_statistics_cumulative | server_outgoing_port_permit | server_outgoing_port_avoid | - server_dlv_anchor_file | server_dlv_anchor | server_neg_cache_size + server_dlv_anchor_file | server_dlv_anchor | server_neg_cache_size | + server_harden_referral_path ; stubstart: VAR_STUB_ZONE { @@ -626,6 +627,16 @@ server_harden_dnssec_stripped: VAR_HARDEN_DNNSEC_STRIPPED STRING free($2); } ; +server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING + { + OUTYY(("P(server_harden_referral_path:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->harden_referral_path = + (strcmp($2, "yes")==0); + free($2); + } + ; server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING { OUTYY(("P(server_use_caps_for_id:%s)\n", $2));