From: Wouter Wijngaards Date: Mon, 6 Jun 2016 13:47:24 +0000 (+0000) Subject: - access-control-tag-action and access-control-tag-data config X-Git-Tag: release-1.5.10~105 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0e973744667d8d7d815257912af42d1d24ceedb3;p=thirdparty%2Funbound.git - access-control-tag-action and access-control-tag-data config directives. - make depend git-svn-id: file:///svn/unbound/trunk@3759 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/Makefile.in b/Makefile.in index b064e655d..de5768b3a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -704,11 +704,12 @@ listen_dnsport.lo listen_dnsport.o: $(srcdir)/services/listen_dnsport.c config.h $(srcdir)/util/rbtree.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \ $(srcdir)/util/net_help.h $(srcdir)/sldns/sbuffer.h localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h $(srcdir)/services/localzone.h \ - $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/util/as112.h + $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/regional.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/util/as112.h mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/netevent.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h \ @@ -759,7 +760,7 @@ fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \ $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ - $(srcdir)/services/localzone.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/cache/infra.h \ $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h \ $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \ @@ -956,7 +957,8 @@ unitldns.lo unitldns.o: $(srcdir)/testcode/unitldns.c config.h $(srcdir)/util/lo $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h $(srcdir)/util/locks.h \ + $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h $(srcdir)/daemon/cachedump.h \ $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ @@ -1063,7 +1065,8 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(sr $(srcdir)/libunbound/libworker.h acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h $(srcdir)/util/locks.h \ + $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ @@ -1134,8 +1137,8 @@ context.lo context.o: $(srcdir)/libunbound/context.c config.h $(srcdir)/libunbou $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/util/storage/dnstree.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/sldns/sbuffer.h libunbound.lo libunbound.o: $(srcdir)/libunbound/libunbound.c $(srcdir)/libunbound/unbound.h \ $(srcdir)/libunbound/unbound-event.h config.h $(srcdir)/libunbound/context.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ @@ -1143,7 +1146,7 @@ libunbound.lo libunbound.o: $(srcdir)/libunbound/libunbound.c $(srcdir)/libunbou $(srcdir)/util/config_file.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h \ $(srcdir)/util/random.h $(srcdir)/util/net_help.h $(srcdir)/util/tube.h $(srcdir)/util/ub_event.h \ - $(srcdir)/services/localzone.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/cache/infra.h \ $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ $(srcdir)/sldns/sbuffer.h libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h $(srcdir)/libunbound/libworker.h \ @@ -1153,11 +1156,12 @@ libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h $(srcdir)/li $(srcdir)/libunbound/unbound-event.h $(srcdir)/services/outside_network.h $(srcdir)/util/netevent.h \ $(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/services/localzone.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/services/outbound_list.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/regional.h \ - $(srcdir)/util/random.h $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h \ - $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/sldns/str2wire.h + $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ + $(srcdir)/sldns/str2wire.h unbound-host.lo unbound-host.o: $(srcdir)/smallapp/unbound-host.c config.h $(srcdir)/libunbound/unbound.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libunbound/unbound.h \ @@ -1225,7 +1229,6 @@ snprintf.lo snprintf.o: $(srcdir)/compat/snprintf.c config.h strlcat.lo strlcat.o: $(srcdir)/compat/strlcat.c config.h strlcpy.lo strlcpy.o: $(srcdir)/compat/strlcpy.c config.h strptime.lo strptime.o: $(srcdir)/compat/strptime.c config.h -strsep.lo strsep.o: $(srcdir)/compat/strsep.c config.h getentropy_linux.lo getentropy_linux.o: $(srcdir)/compat/getentropy_linux.c config.h getentropy_osx.lo getentropy_osx.o: $(srcdir)/compat/getentropy_osx.c config.h getentropy_solaris.lo getentropy_solaris.o: $(srcdir)/compat/getentropy_solaris.c config.h @@ -1237,3 +1240,4 @@ arc4_lock.lo arc4_lock.o: $(srcdir)/compat/arc4_lock.c config.h $(srcdir)/util/l sha512.lo sha512.o: $(srcdir)/compat/sha512.c config.h reallocarray.lo reallocarray.o: $(srcdir)/compat/reallocarray.c config.h isblank.lo isblank.o: $(srcdir)/compat/isblank.c config.h +strsep.lo strsep.o: $(srcdir)/compat/strsep.c config.h diff --git a/daemon/acl_list.c b/daemon/acl_list.c index d663295bd..b2b66ceef 100644 --- a/daemon/acl_list.c +++ b/daemon/acl_list.c @@ -45,6 +45,8 @@ #include "util/log.h" #include "util/config_file.h" #include "util/net_help.h" +#include "services/localzone.h" +#include "sldns/str2wire.h" struct acl_list* acl_list_create(void) @@ -76,13 +78,11 @@ acl_list_insert(struct acl_list* acl, struct sockaddr_storage* addr, socklen_t addrlen, int net, enum acl_access control, int complain_duplicates) { - struct acl_addr* node = regional_alloc(acl->region, + struct acl_addr* node = regional_alloc_zero(acl->region, sizeof(struct acl_addr)); if(!node) return NULL; node->control = control; - node->taglist = NULL; - node->taglen = 0; if(!addr_tree_insert(&acl->tree, &node->node, addr, addrlen, net)) { if(complain_duplicates) verbose(VERB_QUERY, "duplicate acl address ignored."); @@ -127,18 +127,17 @@ acl_list_str_cfg(struct acl_list* acl, const char* str, const char* s2, return 1; } -/** apply acl_tag string */ -static int -acl_list_tags_cfg(struct acl_list* acl, const char* str, uint8_t* bitmap, - size_t bitmaplen) +/** find or create node (NULL on parse or error) */ +static struct acl_addr* +acl_find_or_create(struct acl_list* acl, const char* str) { + struct acl_addr* node; struct sockaddr_storage addr; int net; socklen_t addrlen; - struct acl_addr* node; if(!netblockstrtoaddr(str, UNBOUND_DNS_PORT, &addr, &addrlen, &net)) { - log_err("cannot parse netblock in access-control-tag: %s", str); - return 0; + log_err("cannot parse netblock: %s", str); + return NULL; } /* find or create node */ if(!(node=(struct acl_addr*)addr_tree_find(&acl->tree, &addr, @@ -148,10 +147,20 @@ acl_list_tags_cfg(struct acl_list* acl, const char* str, uint8_t* bitmap, if(!(node=(struct acl_addr*)acl_list_insert(acl, &addr, addrlen, net, acl_allow, 1))) { log_err("out of memory"); - return 0; + return NULL; } } - log_assert(node); + return node; +} + +/** apply acl_tag string */ +static int +acl_list_tags_cfg(struct acl_list* acl, const char* str, uint8_t* bitmap, + size_t bitmaplen) +{ + struct acl_addr* node; + if(!(node=acl_find_or_create(acl, str))) + return 0; node->taglen = bitmaplen; node->taglist = regional_alloc_init(acl->region, bitmap, bitmaplen); if(!node->taglist) { @@ -161,6 +170,113 @@ acl_list_tags_cfg(struct acl_list* acl, const char* str, uint8_t* bitmap, return 1; } +/** apply acl_tag_action string */ +static int +acl_list_tag_action_cfg(struct acl_list* acl, struct config_file* cfg, + const char* str, const char* tag, const char* action) +{ + struct acl_addr* node; + int tagid; + enum localzone_type t; + if(!(node=acl_find_or_create(acl, str))) + return 0; + /* allocate array if not yet */ + if(!node->tag_actions) { + node->tag_actions = (uint8_t*)regional_alloc_zero(acl->region, + sizeof(*node->tag_actions)*cfg->num_tags); + if(!node->tag_actions) { + log_err("out of memory"); + return 0; + } + node->tag_actions_size = cfg->num_tags; + } + /* parse tag */ + if((tagid=find_tag_id(cfg, tag)) == -1) { + log_err("cannot parse tag (define-tag it): %s %s", str, tag); + return 0; + } + if((size_t)tagid >= node->tag_actions_size) { + log_err("tagid too large for array %s %s", str, tag); + return 0; + } + if(!local_zone_str2type(action, &t)) { + log_err("cannot parse access control action type: %s %s %s", + str, tag, action); + return 0; + } + node->tag_actions[tagid] = (uint8_t)t; + return 1; +} + +/** check wire data parse */ +static int +check_data(const char* data) +{ + char buf[65536]; + uint8_t rr[LDNS_RR_BUF_SIZE]; + size_t len = sizeof(rr); + int res; + snprintf(buf, sizeof(buf), "%s %s", "example.com.", data); + res = sldns_str2wire_rr_buf(buf, rr, &len, NULL, 3600, NULL, 0, + NULL, 0); + if(res == 0) + return 1; + log_err("rr data [char %d] parse error %s", + (int)LDNS_WIREPARSE_OFFSET(res)-13, + sldns_get_errorstr_parse(res)); + return 0; +} + +/** apply acl_tag_data string */ +static int +acl_list_tag_data_cfg(struct acl_list* acl, struct config_file* cfg, + const char* str, const char* tag, const char* data) +{ + struct acl_addr* node; + int tagid; + char* dupdata; + if(!(node=acl_find_or_create(acl, str))) + return 0; + /* allocate array if not yet */ + if(!node->tag_datas) { + node->tag_datas = (struct config_strlist**)regional_alloc_zero( + acl->region, sizeof(*node->tag_datas)*cfg->num_tags); + if(!node->tag_datas) { + log_err("out of memory"); + return 0; + } + node->tag_datas_size = cfg->num_tags; + } + /* parse tag */ + if((tagid=find_tag_id(cfg, tag)) == -1) { + log_err("cannot parse tag (define-tag it): %s %s", str, tag); + return 0; + } + if((size_t)tagid >= node->tag_datas_size) { + log_err("tagid too large for array %s %s", str, tag); + return 0; + } + + /* check data? */ + if(!check_data(data)) { + log_err("cannot parse access-control-tag data: %s %s '%s'", + str, tag, data); + return 0; + } + + dupdata = regional_strdup(acl->region, data); + if(!dupdata) { + log_err("out of memory"); + return 0; + } + if(!cfg_region_strlist_insert(acl->region, + &(node->tag_datas[tagid]), dupdata)) { + log_err("out of memory"); + return 0; + } + return 1; +} + /** read acl_list config */ static int read_acl_list(struct acl_list* acl, struct config_file* cfg) @@ -187,6 +303,33 @@ read_acl_tags(struct acl_list* acl, struct config_file* cfg) return 1; } +/** read acl tag actions config */ +static int +read_acl_tag_actions(struct acl_list* acl, struct config_file* cfg) +{ + struct config_str3list* p; + for(p = cfg->acl_tag_actions; p; p = p->next) { + log_assert(p->str && p->str2 && p->str3); + if(!acl_list_tag_action_cfg(acl, cfg, p->str, p->str2, + p->str3)) + return 0; + } + return 1; +} + +/** read acl tag datas config */ +static int +read_acl_tag_datas(struct acl_list* acl, struct config_file* cfg) +{ + struct config_str3list* p; + for(p = cfg->acl_tag_datas; p; p = p->next) { + log_assert(p->str && p->str2 && p->str3); + if(!acl_list_tag_data_cfg(acl, cfg, p->str, p->str2, p->str3)) + return 0; + } + return 1; +} + int acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg) { @@ -196,6 +339,10 @@ acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg) return 0; if(!read_acl_tags(acl, cfg)) return 0; + if(!read_acl_tag_actions(acl, cfg)) + return 0; + if(!read_acl_tag_datas(acl, cfg)) + return 0; /* insert defaults, with '0' to ignore them if they are duplicates */ if(!acl_list_str_cfg(acl, "0.0.0.0/0", "refuse", 0)) return 0; diff --git a/daemon/acl_list.h b/daemon/acl_list.h index c3f033f2a..fd4374d8f 100644 --- a/daemon/acl_list.h +++ b/daemon/acl_list.h @@ -91,6 +91,15 @@ struct acl_addr { uint8_t* taglist; /** length of the taglist (in bytes) */ size_t taglen; + /** array per tagnumber of localzonetype(in one byte). NULL if none. */ + uint8_t* tag_actions; + /** size of the tag_actions_array */ + size_t tag_actions_size; + /** array per tagnumber, with per tag a list of rdata strings. + * NULL if none. strings are like 'A 127.0.0.1' 'AAAA ::1' */ + struct config_strlist** tag_datas; + /** size of the tag_datas array */ + size_t tag_datas_size; }; /** diff --git a/doc/Changelog b/doc/Changelog index b6a6b6bc4..98d42f0e2 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -2,6 +2,8 @@ - Better help text from -h (from Ray Griffith). - access-control-tag config directive. - local-zone-override config directive. + - access-control-tag-action and access-control-tag-data config + directives. 3 June 2016: Wouter - Fix to not ignore return value of chown() in daemon startup. diff --git a/doc/example.conf.in b/doc/example.conf.in index ee2976970..48f260746 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -212,6 +212,12 @@ server: # are tagged with one of these tags. # access-control-tag: 192.0.2.0/24 "tag2 tag3" + # set action for particular tag for given access control element + # access-control-tag-action: 192.0.2.0/24 tag3 refuse + + # set redirect data for particular tag for access control element + # access-control-tag-data: 192.0.2.0/24 tag2 "A 127.0.0.1" + # if given, a chroot(2) is done to the given directory. # i.e. you can chroot to the working directory, for example, # for extra security, but make sure all files are in that directory. diff --git a/util/config_file.c b/util/config_file.c index 35ca00bd1..90ab61d8c 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -795,6 +795,8 @@ config_get_option(struct config_file* cfg, const char* opt, else O_LTG(opt, "local-zone-tag", local_zone_tags) else O_LTG(opt, "access-control-tag", acl_tags) else O_LS3(opt, "local-zone-override", local_zone_overrides) + else O_LS3(opt, "access-control-tag-action", acl_tag_actions) + else O_LS3(opt, "access-control-tag-data", acl_tag_datas) /* not here: * outgoing-permit, outgoing-avoid - have list of ports * local-zone - zones and nodefault variables @@ -1049,6 +1051,8 @@ config_delete(struct config_file* cfg) config_del_strarray(cfg->tagname, cfg->num_tags); config_del_strbytelist(cfg->local_zone_tags); config_del_strbytelist(cfg->acl_tags); + config_deltrplstrlist(cfg->acl_tag_actions); + config_deltrplstrlist(cfg->acl_tag_datas); config_delstrlist(cfg->control_ifs); free(cfg->server_key_file); free(cfg->server_cert_file); @@ -1206,6 +1210,23 @@ int cfg_strlist_append(struct config_strlist_head* list, char* item) return 1; } +int +cfg_region_strlist_insert(struct regional* region, + struct config_strlist** head, char* item) +{ + struct config_strlist *s; + if(!item || !head) + return 0; + s = (struct config_strlist*)regional_alloc_zero(region, + sizeof(struct config_strlist)); + if(!s) + return 0; + s->str = item; + s->next = *head; + *head = s; + return 1; +} + int cfg_strlist_insert(struct config_strlist** head, char* item) { diff --git a/util/config_file.h b/util/config_file.h index c68421681..2483581e6 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -49,6 +49,7 @@ struct config_strbytelist; struct module_qstate; struct sock_list; struct ub_packed_rrset_key; +struct regional; /** * The configuration options. @@ -303,6 +304,10 @@ struct config_file { struct config_strbytelist* local_zone_tags; /** list of aclname, tagbitlist */ struct config_strbytelist* acl_tags; + /** list of aclname, tagname, localzonetype */ + struct config_str3list* acl_tag_actions; + /** list of aclname, tagname, redirectdata */ + struct config_str3list* acl_tag_datas; /** tag list, array with tagname[i] is malloced string */ char** tagname; /** number of items in the taglist */ @@ -595,6 +600,10 @@ int cfg_strlist_append(struct config_strlist_head* list, char* item); */ int cfg_strlist_insert(struct config_strlist** head, char* item); +/** insert with region for allocation. */ +int cfg_region_strlist_insert(struct regional* region, + struct config_strlist** head, char* item); + /** * Insert string into str2list. * @param head: pointer to str2list head variable. diff --git a/util/configlexer.c b/util/configlexer.c index 88de2d8b7..bef608070 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -378,8 +378,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 185 -#define YY_END_OF_BUFFER 186 +#define YY_NUM_RULES 187 +#define YY_END_OF_BUFFER 188 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -387,212 +387,214 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1861] = +static yyconst flex_int16_t yy_accept[1874] = { 0, - 1, 1, 167, 167, 171, 171, 175, 175, 179, 179, - 1, 1, 186, 183, 1, 165, 165, 184, 2, 184, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 167, 168, 168, 169, 184, 171, 172, 172, 173, 184, - 178, 175, 176, 176, 177, 184, 179, 180, 180, 181, - 184, 182, 166, 2, 170, 184, 182, 183, 0, 1, - 2, 2, 2, 2, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 167, 0, 171, 0, - 178, 0, 175, 179, 0, 182, 0, 2, 2, 182, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 182, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 182, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 74, 183, 183, 183, 183, 183, 183, 7, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 182, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 182, 183, 183, 183, 183, 183, 34, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 145, 183, - 13, 14, 183, 16, 15, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 134, 183, 183, 183, - 183, 183, 183, 183, 3, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 182, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 174, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 37, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 38, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 18, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 89, 174, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 88, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 72, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 23, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 35, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 36, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 25, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 159, 183, 183, 183, 183, 183, 183, 29, - 183, 30, 183, 183, 183, 75, 183, 76, 183, 73, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 6, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 141, - 183, 183, 183, 183, 91, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 26, 183, - 183, 183, 183, 183, 183, 117, 183, 116, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 39, 183, 183, 183, 183, 183, 183, - 183, 183, 78, 77, 183, 183, 183, 183, 183, 183, - 183, 113, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 57, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 61, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 33, 183, 183, 183, 183, 183, 183, 183, 183, - 115, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 5, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 109, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 127, 183, 110, 183, 183, 139, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 24, 183, - 183, 183, 183, 80, 183, 81, 79, 183, 183, 183, - 183, 183, 183, 183, 87, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 111, 183, 183, - - 183, 183, 183, 183, 138, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 71, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 31, 183, 183, 20, 183, 183, 183, - 17, 183, 96, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 46, 48, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 146, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 82, 183, 183, 183, 183, 183, 183, 86, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 90, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 133, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 100, 183, 104, 183, - 183, 183, 183, 183, 85, 183, 183, 67, 183, 125, - 183, 183, 183, 183, 183, 140, 183, 183, 183, 183, - 183, 183, 183, 151, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 103, 183, 183, 183, 183, - 183, 49, 50, 183, 183, 32, 56, 105, 183, 118, - - 183, 142, 114, 183, 183, 42, 183, 107, 183, 183, - 183, 183, 183, 8, 183, 183, 183, 70, 183, 183, - 183, 183, 161, 183, 124, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 92, 150, 183, 183, 183, 183, - 183, 183, 183, 183, 135, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 106, 183, 183, 41, 43, 183, 183, 183, 183, 183, - 183, 183, 69, 183, 183, 183, 183, 160, 183, 183, - - 183, 183, 129, 21, 22, 183, 183, 183, 183, 183, - 183, 183, 66, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 131, 128, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 40, 183, 183, 183, 183, - 183, 183, 183, 12, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 11, 183, 183, 19, 183, 183, - 183, 164, 183, 44, 183, 137, 130, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 99, 98, - 183, 183, 183, 132, 126, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 51, 183, 183, 183, 136, 183, - 183, 183, 183, 183, 183, 183, 183, 45, 183, 183, - 183, 93, 95, 119, 183, 183, 183, 97, 183, 143, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 147, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 120, 183, 183, 183, 27, 183, 183, 183, - 4, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 149, 183, - 183, 123, 183, 183, 183, 183, 183, 183, 183, 54, - 183, 28, 144, 183, 10, 183, 183, 183, 183, 183, - - 121, 58, 183, 183, 183, 102, 183, 183, 183, 183, - 183, 183, 183, 183, 148, 83, 183, 183, 183, 183, - 60, 64, 59, 183, 52, 183, 9, 183, 183, 162, - 183, 183, 101, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 65, 63, 183, 53, 183, 112, - 183, 122, 183, 183, 94, 47, 183, 183, 183, 183, - 183, 183, 183, 84, 62, 55, 163, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 68, 183, 158, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 108, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 154, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 152, 183, - 155, 156, 183, 183, 183, 183, 183, 153, 157, 0 + 1, 1, 169, 169, 173, 173, 177, 177, 181, 181, + 1, 1, 188, 185, 1, 167, 167, 186, 2, 186, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 169, 170, 170, 171, 186, 173, 174, 174, 175, 186, + 180, 177, 178, 178, 179, 186, 181, 182, 182, 183, + 186, 184, 168, 2, 172, 186, 184, 185, 0, 1, + 2, 2, 2, 2, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 169, 0, 173, 0, + 180, 0, 177, 181, 0, 184, 0, 2, 2, 184, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 184, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 184, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 74, 185, 185, 185, 185, 185, 185, 7, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 184, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 184, 185, 185, 185, 185, 185, 34, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 147, 185, + 13, 14, 185, 16, 15, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 134, 185, 185, 185, + 185, 185, 185, 185, 3, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 184, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 176, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 37, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 38, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 18, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 89, 176, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 88, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 72, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 23, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 35, 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 36, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 25, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 161, 185, 185, 185, 185, 185, 185, 29, + 185, 30, 185, 185, 185, 75, 185, 76, 185, 73, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 6, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 141, + 185, 185, 185, 185, 91, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 26, 185, + 185, 185, 185, 185, 185, 117, 185, 116, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 39, 185, 185, 185, 185, 185, 185, + 185, 185, 78, 77, 185, 185, 185, 185, 185, 185, + 185, 113, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 57, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 61, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 33, 185, 185, 185, 185, 185, 185, 185, 185, + 115, 185, 185, 185, 185, 185, 185, 185, 185, 185, + + 5, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 109, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 127, 185, 110, 185, 185, 139, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 24, 185, + 185, 185, 185, 80, 185, 81, 79, 185, 185, 185, + 185, 185, 185, 185, 87, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 111, 185, 185, + + 185, 185, 185, 185, 138, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 71, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 31, 185, 185, 20, 185, 185, 185, + 17, 185, 96, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 46, 48, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 148, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 82, 185, 185, 185, 185, 185, 185, 86, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 90, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 133, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 100, 185, 104, 185, + 185, 185, 185, 185, 85, 185, 185, 67, 185, 125, + 185, 185, 185, 185, 185, 140, 185, 185, 185, 185, + 185, 185, 185, 153, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 103, 185, 185, 185, 185, + 185, 49, 50, 185, 185, 32, 56, 105, 185, 118, + + 185, 142, 114, 185, 185, 42, 185, 107, 185, 185, + 185, 185, 185, 8, 185, 185, 185, 70, 185, 185, + 185, 185, 163, 185, 124, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 92, 152, 185, 185, 185, 185, + 185, 185, 185, 185, 135, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 106, 185, 185, 41, 43, 185, 185, 185, 185, 185, + 185, 185, 69, 185, 185, 185, 185, 162, 185, 185, + + 185, 185, 129, 21, 22, 185, 185, 185, 185, 185, + 185, 185, 66, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 131, 128, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 40, 185, 185, 185, 185, + 185, 185, 185, 12, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 11, 185, 185, 19, 185, 185, + 185, 166, 185, 44, 185, 137, 130, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 99, 98, + 185, 185, 185, 132, 126, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 51, 185, 185, 185, 136, 185, + 185, 185, 185, 185, 185, 185, 185, 45, 185, 185, + 185, 93, 95, 119, 185, 185, 185, 97, 185, 185, + 143, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 149, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 120, 185, 185, 185, 27, 185, 185, + 185, 4, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 151, 185, 185, 123, 185, 185, 185, 185, 185, + 185, 185, 54, 185, 28, 146, 185, 10, 185, 185, + + 185, 185, 185, 121, 58, 185, 185, 185, 102, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 150, + 83, 185, 185, 185, 185, 60, 64, 59, 185, 52, + 185, 9, 185, 185, 164, 185, 185, 101, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 65, 63, 185, 53, 185, 112, 185, 122, 185, + 185, 185, 185, 94, 47, 185, 185, 185, 185, 185, + 185, 185, 84, 62, 55, 165, 185, 185, 185, 145, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 68, 185, 144, + + 160, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 108, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 156, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 154, 185, 157, 158, 185, 185, 185, 185, 185, + 155, 159, 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -635,15 +637,15 @@ static yyconst YY_CHAR yy_meta[40] = 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_uint16_t yy_base[1875] = +static yyconst flex_uint16_t yy_base[1888] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 87, 108, 2327, 2209, 50, 3682, 3682, 3682, 129, 94, + 87, 108, 2327, 2209, 50, 3703, 3703, 3703, 129, 94, 70, 104, 130, 90, 92, 115, 127, 95, 84, 111, 137, 148, 50, 170, 122, 150, 157, 160, 140, 166, - 2199, 3682, 3682, 3682, 70, 2123, 3682, 3682, 3682, 42, - 2030, 1970, 3682, 3682, 3682, 192, 1217, 3682, 3682, 3682, - 141, 1000, 3682, 198, 3682, 202, 197, 956, 210, 120, + 2199, 3703, 3703, 3703, 70, 2123, 3703, 3703, 3703, 42, + 2030, 1970, 3703, 3703, 3703, 192, 1217, 3703, 3703, 3703, + 141, 1000, 3703, 198, 3703, 202, 197, 956, 210, 120, 0, 223, 0, 0, 103, 203, 180, 205, 164, 206, 213, 210, 125, 216, 231, 218, 227, 224, 230, 233, 234, 236, 240, 254, 238, 251, 255, 241, 252, 263, @@ -673,7 +675,7 @@ static yyconst flex_uint16_t yy_base[1875] = 684, 686, 687, 692, 694, 695, 689, 697, 700, 701, 708, 712, 705, 720, 698, 717, 721, 724, 726, 728, 718, 734, 737, 730, 736, 738, 739, 740, 742, 744, - 748, 3682, 752, 746, 754, 755, 756, 757, 3682, 758, + 748, 3703, 752, 746, 754, 755, 756, 757, 3703, 758, 759, 760, 766, 763, 768, 775, 782, 770, 771, 780, 781, 784, 786, 787, 789, 809, 792, 794, 790, 800, 804, 796, 797, 802, 818, 811, 820, 814, 821, 822, @@ -688,15 +690,15 @@ static yyconst flex_uint16_t yy_base[1875] = 972, 983, 984, 985, 987, 988, 989, 990, 992, 993, 995, 996, 1004, 997, 998, 1014, 1006, 1012, 1019, 1018, 1020, 1022, 1021, 1025, 1026, 1027, 1031, 1029, 1037, 1040, - 1038, 1041, 1042, 1050, 1043, 1056, 1051, 3682, 1053, 1055, - 1058, 1059, 1061, 1068, 1066, 1067, 1069, 1095, 3682, 1072, - 3682, 3682, 1073, 3682, 3682, 1077, 1070, 1078, 1088, 1118, + 1038, 1041, 1042, 1050, 1043, 1056, 1051, 3703, 1053, 1055, + 1058, 1059, 1061, 1068, 1066, 1067, 1069, 1095, 3703, 1072, + 3703, 3703, 1073, 3703, 3703, 1077, 1070, 1078, 1088, 1118, 1084, 1080, 1081, 1093, 1092, 1101, 1102, 1097, 1109, 1111, 1121, 1123, 1113, 1126, 1127, 1129, 1131, 1132, 1134, 1135, 1138, 1141, 1151, 1155, 1154, 1099, 1144, 1156, 1142, 1158, - 1159, 1161, 1168, 1162, 1174, 1165, 3682, 1172, 1173, 1175, - 1171, 1176, 1179, 1186, 3682, 1183, 1187, 1188, 1190, 1191, + 1159, 1161, 1168, 1162, 1174, 1165, 3703, 1172, 1173, 1175, + 1171, 1176, 1179, 1186, 3703, 1183, 1187, 1188, 1190, 1191, 1195, 1193, 1196, 1198, 1199, 1203, 1205, 1201, 1221, 1206, 1208, 1228, 1229, 1227, 1211, 1225, 1233, 1214, 1239, 1241, 1242, 1232, 1234, 1248, 1244, 1252, 1254, 1246, 1255, 1249, @@ -704,358 +706,360 @@ static yyconst flex_uint16_t yy_base[1875] = 1272, 1273, 1279, 1285, 1283, 1294, 1295, 1296, 1301, 1303, 1305, 1312, 1313, 1276, 1315, 1304, 1316, 1323, 1325, 1326, - 1327, 1329, 1332, 1333, 3682, 1340, 1342, 1336, 1338, 1349, + 1327, 1329, 1332, 1333, 3703, 1340, 1342, 1336, 1338, 1349, 1347, 1343, 1350, 1353, 1354, 1346, 1356, 1357, 1358, 1364, - 1371, 3682, 1360, 1367, 1368, 1370, 1376, 1382, 1380, 1390, - 1393, 1384, 3682, 1399, 1400, 1392, 1396, 1386, 1402, 1403, + 1371, 3703, 1360, 1367, 1368, 1370, 1376, 1382, 1380, 1390, + 1393, 1384, 3703, 1399, 1400, 1392, 1396, 1386, 1402, 1403, 1405, 1407, 1409, 1411, 1412, 1413, 1415, 1420, 1422, 1424, - 1427, 1425, 1426, 1432, 1433, 1434, 1435, 3682, 1436, 1438, + 1427, 1425, 1426, 1432, 1433, 1434, 1435, 3703, 1436, 1438, 1437, 1444, 1455, 1458, 1447, 1460, 1449, 1451, 1457, 1378, - 1461, 1463, 1464, 1466, 3682, 158, 1467, 1470, 1473, 1476, + 1461, 1463, 1464, 1466, 3703, 158, 1467, 1470, 1473, 1476, 1480, 1477, 1484, 1474, 1478, 1490, 1486, 1487, 1496, 1494, 1497, 1499, 1500, 1502, 1504, 1505, 1507, 1512, 1511, 1513, 1519, 1515, 1521, 1523, 1524, 1526, 1529, 1532, 1535, 1534, 1537, 1538, 1539, 1540, 1541, 1542, 1547, 1546, 1550, 1554, - 3682, 1569, 1557, 1558, 1555, 1567, 1556, 1578, 1565, 1574, + 3703, 1569, 1557, 1558, 1555, 1567, 1556, 1578, 1565, 1574, 1579, 1576, 1581, 1587, 1585, 1591, 1592, 1593, 1595, 1598, - 1599, 1583, 1605, 1607, 1606, 1608, 1614, 1609, 1615, 3682, + 1599, 1583, 1605, 1607, 1606, 1608, 1614, 1609, 1615, 3703, 1616, 1618, 1617, 1622, 1641, 1624, 1625, 1619, 1629, 1621, - 1637, 1646, 1642, 1648, 3682, 1649, 1650, 1651, 1654, 1656, + 1637, 1646, 1642, 1648, 3703, 1649, 1650, 1651, 1654, 1656, 1659, 1660, 1664, 1661, 1666, 1667, 1668, 1677, 1669, 1674, - 1672, 3682, 1688, 1689, 1685, 1691, 1692, 1693, 1694, 1696, + 1672, 3703, 1688, 1689, 1685, 1691, 1692, 1693, 1694, 1696, 1682, 1697, 1703, 1699, 1704, 1706, 1707, 1708, 1710, 1711, - 1714, 1716, 1723, 1715, 1726, 3682, 1727, 1734, 1728, 1735, + 1714, 1716, 1723, 1715, 1726, 3703, 1727, 1734, 1728, 1735, 1306, 1739, 1745, 1744, 1741, 1742, 1747, 1749, 1750, 1751, 1754, 1756, 1757, 1758, 1762, 1763, 1764, 1765, 1766, 1780, 1781, 1770, 1759, 1782, 1783, 1772, 1785, 1796, 1799, 1800, - 1802, 3682, 1805, 1806, 1795, 1807, 1808, 1792, 1819, 1821, + 1802, 3703, 1805, 1806, 1795, 1807, 1808, 1792, 1819, 1821, 1798, 1809, 1815, 1823, 1824, 1831, 1825, 1827, 1829, 1832, 1833, 1834, 1835, 1836, 1840, 1845, 1849, 1852, 1853, 1858, - 1859, 1862, 3682, 1860, 1839, 1865, 1869, 1863, 1876, 3682, - 1861, 3682, 1877, 1874, 1889, 3682, 1886, 3682, 1888, 3682, + 1859, 1862, 3703, 1860, 1839, 1865, 1869, 1863, 1876, 3703, + 1861, 3703, 1877, 1874, 1889, 3703, 1886, 3703, 1888, 3703, 1890, 1891, 1894, 1878, 1896, 1895, 1897, 1899, 1901, 1904, - 1902, 1906, 1907, 1908, 1913, 3682, 1914, 1915, 1919, 1923, - 1916, 1922, 1925, 1926, 1931, 1930, 1943, 1937, 1944, 3682, - 1940, 1948, 1941, 1945, 3682, 1949, 1952, 1950, 1955, 1958, + 1902, 1906, 1907, 1908, 1913, 3703, 1914, 1915, 1919, 1923, + 1916, 1922, 1925, 1926, 1931, 1930, 1943, 1937, 1944, 3703, + 1940, 1948, 1941, 1945, 3703, 1949, 1952, 1950, 1955, 1958, 1968, 1965, 1969, 1966, 1956, 1974, 1972, 1979, 1982, 1983, 1984, 1985, 1991, 1987, 1988, 1995, 1992, 1989, 1996, 1998, - 1999, 2003, 2001, 2011, 2005, 2008, 2009, 2012, 3682, 2020, - 2017, 2021, 2024, 2026, 2027, 3682, 2029, 3682, 2040, 2034, + 1999, 2003, 2001, 2011, 2005, 2008, 2009, 2012, 3703, 2020, + 2017, 2021, 2024, 2026, 2027, 3703, 2029, 3703, 2040, 2034, 2041, 2032, 2042, 2045, 2047, 2052, 2055, 2054, 2057, 2058, 2060, 2062, 2063, 2068, 2065, 2066, 2069, 2067, 2072, 2082, - 2073, 2085, 2075, 3682, 2091, 2089, 2100, 2092, 2096, 2104, - 2101, 2102, 3682, 3682, 2109, 2106, 2103, 2108, 2115, 2112, - 2113, 3682, 2118, 2120, 2125, 2129, 2132, 2126, 2122, 2133, + 2073, 2085, 2075, 3703, 2091, 2089, 2100, 2092, 2096, 2104, + 2101, 2102, 3703, 3703, 2109, 2106, 2103, 2108, 2115, 2112, + 2113, 3703, 2118, 2120, 2125, 2129, 2132, 2126, 2122, 2133, 2140, 2136, 2142, 2141, 2143, 2144, 2151, 2147, 2152, 2154, - 2157, 2158, 2165, 3682, 2162, 2166, 2169, 2171, 2172, 2173, + 2157, 2158, 2165, 3703, 2162, 2166, 2169, 2171, 2172, 2173, 2174, 2176, 2179, 2178, 2181, 2180, 2189, 2190, 2192, 2193, - 2194, 2197, 2198, 2203, 2205, 2206, 2216, 2217, 3682, 2224, + 2194, 2197, 2198, 2203, 2205, 2206, 2216, 2217, 3703, 2224, 2207, 2226, 2208, 2223, 2227, 2234, 2230, 2215, 2231, 2237, - 2236, 3682, 2238, 2239, 2241, 2245, 2246, 2248, 2250, 2253, - 3682, 2255, 2258, 2259, 2262, 2261, 2263, 2265, 2267, 2275, + 2236, 3703, 2238, 2239, 2241, 2245, 2246, 2248, 2250, 2253, + 3703, 2255, 2258, 2259, 2262, 2261, 2263, 2265, 2267, 2275, - 3682, 2273, 2281, 2277, 2279, 2285, 2287, 2284, 2290, 2292, + 3703, 2273, 2281, 2277, 2279, 2285, 2287, 2284, 2290, 2292, 2288, 2294, 2298, 2296, 2300, 2302, 2303, 2305, 2306, 2307, 2309, 2312, 2317, 2319, 2324, 2311, 2326, 2334, 2337, 2343, 2344, 2327, 2333, 2346, 2347, 2348, 2349, 2331, 2355, 2351, - 2362, 2354, 3682, 2360, 2364, 2368, 2370, 2358, 2371, 2374, - 2375, 2376, 3682, 2382, 3682, 2380, 2372, 3682, 2386, 2389, - 2390, 2391, 2393, 2394, 2392, 2397, 2404, 2395, 3682, 2405, - 2401, 2403, 2407, 3682, 2415, 3682, 3682, 2408, 2418, 2425, - 1700, 2421, 2424, 2428, 3682, 2429, 2430, 2433, 2431, 2435, - 2437, 2439, 2441, 2438, 2442, 2443, 2445, 3682, 2447, 2444, - - 2448, 2454, 2455, 2458, 3682, 2460, 2469, 2461, 2470, 2471, - 2472, 2476, 2478, 2479, 2485, 2483, 2482, 2484, 3682, 2486, + 2362, 2354, 3703, 2360, 2364, 2368, 2370, 2358, 2371, 2374, + 2375, 2376, 3703, 2382, 3703, 2380, 2372, 3703, 2386, 2389, + 2390, 2391, 2393, 2394, 2392, 2397, 2404, 2395, 3703, 2405, + 2401, 2403, 2407, 3703, 2415, 3703, 3703, 2408, 2418, 2425, + 1700, 2421, 2424, 2428, 3703, 2429, 2430, 2433, 2431, 2435, + 2437, 2439, 2441, 2438, 2442, 2443, 2445, 3703, 2447, 2444, + + 2448, 2454, 2455, 2458, 3703, 2460, 2469, 2461, 2470, 2471, + 2472, 2476, 2478, 2479, 2485, 2483, 2482, 2484, 3703, 2486, 2489, 2491, 2493, 2497, 2498, 2506, 2502, 2508, 2504, 2511, - 2513, 2500, 2514, 3682, 2517, 2519, 3682, 2521, 2525, 2527, - 3682, 2529, 3682, 2530, 2531, 2528, 2532, 2538, 2533, 2540, - 2544, 2547, 2549, 2548, 2557, 2550, 2555, 3682, 3682, 2560, - 2562, 2565, 2566, 2568, 2569, 2577, 2573, 2582, 3682, 2570, + 2513, 2500, 2514, 3703, 2517, 2519, 3703, 2521, 2525, 2527, + 3703, 2529, 3703, 2530, 2531, 2528, 2532, 2538, 2533, 2540, + 2544, 2547, 2549, 2548, 2557, 2550, 2555, 3703, 3703, 2560, + 2562, 2565, 2566, 2568, 2569, 2577, 2573, 2582, 3703, 2570, 2574, 2576, 2583, 2584, 2585, 2586, 2591, 2588, 2593, 2596, - 2594, 2597, 3682, 2600, 2604, 2605, 2606, 2607, 2609, 3682, + 2594, 2597, 3703, 2600, 2604, 2605, 2606, 2607, 2609, 3703, 2611, 2612, 2613, 2617, 2621, 2632, 2636, 2638, 2614, 2639, - 2641, 2643, 2645, 2646, 2648, 2649, 2651, 2654, 2655, 3682, + 2641, 2643, 2645, 2646, 2648, 2649, 2651, 2654, 2655, 3703, 2656, 2658, 2659, 2663, 2664, 2660, 2622, 2668, 2671, 2672, - 2673, 2675, 2677, 3682, 2679, 2680, 2681, 2683, 2686, 2689, + 2673, 2675, 2677, 3703, 2679, 2680, 2681, 2683, 2686, 2689, 2693, 2690, 2697, 2695, 2700, 2701, 2702, 2705, 2707, 2709, - 2710, 2711, 2713, 2715, 2724, 2717, 3682, 2723, 3682, 2726, - 2730, 2737, 2733, 2736, 3682, 2738, 2739, 3682, 2740, 3682, - 2741, 2745, 2746, 2747, 2755, 3682, 2758, 2749, 2760, 2762, - 2751, 2764, 2767, 3682, 2769, 2772, 2771, 2776, 2777, 2778, - 2780, 2779, 2782, 2790, 2788, 3682, 2786, 2791, 2798, 2795, - 2804, 3682, 3682, 2800, 2807, 3682, 3682, 3682, 2810, 3682, - - 2801, 3682, 3682, 2811, 2813, 3682, 2818, 3682, 2820, 2821, - 2789, 2823, 2824, 3682, 2825, 2826, 2828, 3682, 2830, 2836, - 2832, 2833, 3682, 2835, 3682, 2837, 2841, 2840, 2846, 2853, + 2710, 2711, 2713, 2715, 2724, 2717, 3703, 2723, 3703, 2726, + 2730, 2737, 2733, 2736, 3703, 2738, 2739, 3703, 2740, 3703, + 2741, 2745, 2746, 2747, 2755, 3703, 2758, 2749, 2760, 2762, + 2751, 2764, 2767, 3703, 2769, 2772, 2771, 2776, 2777, 2778, + 2780, 2779, 2782, 2790, 2788, 3703, 2786, 2791, 2798, 2795, + 2804, 3703, 3703, 2800, 2807, 3703, 3703, 3703, 2810, 3703, + + 2801, 3703, 3703, 2811, 2813, 3703, 2818, 3703, 2820, 2821, + 2789, 2823, 2824, 3703, 2825, 2826, 2828, 3703, 2830, 2836, + 2832, 2833, 3703, 2835, 3703, 2837, 2841, 2840, 2846, 2853, 2856, 2858, 2847, 2849, 2860, 2861, 2862, 2863, 2864, 2866, 2869, 2870, 2871, 2875, 2876, 2879, 2880, 2877, 2882, 2885, - 2887, 2898, 2902, 2905, 3682, 3682, 2883, 2889, 2886, 2894, - 2909, 2899, 2910, 2911, 3682, 2916, 2913, 2917, 2920, 2921, + 2887, 2898, 2902, 2905, 3703, 3703, 2883, 2889, 2886, 2894, + 2909, 2899, 2910, 2911, 3703, 2916, 2913, 2917, 2920, 2921, 2923, 2926, 2925, 2930, 2932, 2931, 2933, 2934, 2938, 2936, - 3682, 2937, 2940, 3682, 3682, 2945, 2947, 2952, 2954, 2955, - 2958, 2960, 3682, 2961, 2962, 2968, 2970, 3682, 2972, 2963, - - 2975, 2978, 3682, 3682, 3682, 2979, 2981, 2984, 2985, 2986, - 2987, 2988, 3682, 2989, 2992, 2994, 2995, 3001, 3008, 2998, - 3014, 3011, 3013, 3018, 3682, 3682, 3002, 3024, 3021, 3022, - 3020, 3023, 3026, 3028, 3030, 3682, 3032, 3031, 3037, 3036, - 3039, 3040, 3043, 3682, 3044, 3046, 3051, 3054, 3055, 3047, - 3057, 3059, 3060, 3062, 3682, 3064, 3065, 3682, 3071, 3069, - 3072, 3682, 3076, 3682, 3080, 3682, 3682, 3081, 3084, 3086, - 3091, 3093, 3095, 3082, 3088, 3103, 3097, 3104, 3682, 3682, - 3106, 3107, 3114, 3682, 3682, 3110, 3099, 3118, 3111, 3112, - 3119, 3121, 3122, 3126, 3124, 3127, 3130, 3135, 3137, 3125, - - 3136, 3138, 3139, 3140, 3682, 3149, 3150, 3152, 3682, 3146, - 3155, 3161, 3158, 3156, 3169, 3163, 3166, 3682, 3170, 3172, - 3173, 3682, 3682, 3682, 3177, 3180, 3174, 3682, 3185, 3682, - 3178, 3186, 3193, 3189, 3191, 3194, 3197, 3195, 3200, 3682, - 3202, 3201, 3204, 3205, 3208, 3207, 3211, 3214, 3213, 3215, - 3225, 3219, 3682, 3227, 3229, 3231, 3682, 3233, 3234, 3235, - 3682, 3239, 3237, 3242, 3244, 3246, 3247, 3248, 3249, 3253, - 3250, 3255, 3256, 3263, 3257, 3270, 3261, 3272, 3682, 3274, - 3267, 3682, 3277, 3280, 3283, 3285, 3290, 3292, 3293, 3682, - 3296, 3682, 3682, 3299, 3682, 3302, 3297, 3303, 3305, 3308, - - 3682, 3682, 3306, 3310, 3315, 3682, 3316, 3307, 3317, 3318, - 3322, 3323, 3324, 3326, 3682, 3682, 3327, 3329, 3333, 3330, - 3682, 3682, 3682, 3343, 3682, 3335, 3682, 3349, 3337, 3682, - 3353, 3344, 3682, 3346, 3355, 3357, 3358, 3350, 3361, 3360, - 3362, 3365, 3366, 3369, 3682, 3682, 3372, 3682, 3374, 3682, - 3378, 3682, 3379, 3382, 3682, 3682, 3384, 3393, 3380, 3390, - 3386, 3389, 3392, 3682, 3682, 3682, 3682, 3396, 3397, 3398, - 3399, 3401, 3403, 3402, 3404, 3410, 3414, 3406, 3423, 3411, - 3419, 3426, 3427, 3433, 3430, 3682, 3431, 3682, 3434, 3437, - 3440, 3436, 3439, 3438, 3441, 3443, 3445, 3447, 3448, 3449, - - 3456, 3459, 3463, 3465, 3466, 3468, 3469, 3477, 3475, 3476, - 3479, 3480, 3486, 3482, 3484, 3682, 3485, 3487, 3489, 3491, - 3492, 3495, 3494, 3502, 3509, 3507, 3511, 3496, 3517, 3514, - 3519, 3505, 3520, 3522, 3682, 3523, 3527, 3529, 3530, 3533, - 3531, 3535, 3536, 3539, 3540, 3543, 3545, 3546, 3682, 3551, - 3682, 3682, 3552, 3555, 3558, 3560, 3562, 3682, 3682, 3682, - 3590, 3597, 3604, 3611, 3618, 94, 3625, 3632, 3639, 3646, - 3653, 3660, 3667, 3674 + 3703, 2937, 2940, 3703, 3703, 2945, 2947, 2952, 2954, 2955, + 2958, 2960, 3703, 2961, 2962, 2968, 2970, 3703, 2972, 2963, + + 2975, 2978, 3703, 3703, 3703, 2979, 2981, 2984, 2985, 2986, + 2987, 2988, 3703, 2989, 2992, 2994, 2995, 3001, 3008, 2998, + 3014, 3011, 3013, 3018, 3703, 3703, 3002, 3024, 3021, 3022, + 3020, 3023, 3026, 3028, 3030, 3703, 3032, 3031, 3037, 3036, + 3039, 3040, 3043, 3703, 3044, 3046, 3051, 3054, 3055, 3047, + 3057, 3059, 3060, 3062, 3703, 3064, 3065, 3703, 3071, 3069, + 3072, 3703, 3076, 3703, 3080, 3703, 3703, 3081, 3084, 3086, + 3091, 3093, 3095, 3082, 3088, 3103, 3097, 3104, 3703, 3703, + 3110, 3106, 3116, 3703, 3703, 3113, 3107, 3114, 3099, 3115, + 3120, 3122, 3123, 3128, 3126, 3129, 3131, 3127, 3133, 3137, + + 3139, 3140, 3141, 3144, 3703, 3147, 3148, 3150, 3703, 3152, + 3154, 3156, 3158, 3159, 3163, 3166, 3168, 3703, 3169, 3171, + 3172, 3703, 3703, 3703, 3175, 3181, 3176, 3703, 3184, 3186, + 3703, 3191, 3173, 3199, 3188, 3196, 3192, 3203, 3195, 3205, + 3703, 3202, 3207, 3212, 3213, 3206, 3208, 3214, 3218, 3223, + 3216, 3230, 3219, 3703, 3232, 3235, 3236, 3703, 3240, 3225, + 3227, 3703, 3243, 3237, 3246, 3248, 3253, 3254, 3249, 3255, + 3257, 3259, 3263, 3258, 3260, 3266, 3267, 3265, 3276, 3274, + 3278, 3703, 3282, 3279, 3703, 3283, 3285, 3289, 3287, 3296, + 3301, 3297, 3703, 3304, 3703, 3703, 3305, 3703, 3308, 3309, + + 3310, 3312, 3313, 3703, 3703, 3314, 3316, 3320, 3703, 3317, + 3321, 3324, 3326, 3327, 3328, 3331, 3332, 3330, 3334, 3703, + 3703, 3333, 3343, 3345, 3336, 3703, 3703, 3703, 3355, 3703, + 3348, 3703, 3357, 3358, 3703, 3360, 3361, 3703, 3362, 3364, + 3365, 3368, 3370, 3374, 3363, 3371, 3375, 3377, 3378, 3381, + 3385, 3703, 3703, 3390, 3703, 3392, 3703, 3394, 3703, 3387, + 3397, 3395, 3402, 3703, 3703, 3290, 3408, 3404, 3406, 3405, + 3407, 3412, 3703, 3703, 3703, 3703, 3409, 3414, 3415, 3703, + 3416, 3417, 3419, 3421, 3420, 3422, 3426, 3432, 3433, 3444, + 3446, 3435, 3448, 3437, 3449, 3455, 3451, 3703, 3452, 3703, + + 3703, 3454, 3461, 3463, 3457, 3459, 3460, 3466, 3468, 3469, + 3470, 3474, 3476, 3484, 3475, 3477, 3485, 3486, 3492, 3488, + 3500, 3499, 3496, 3501, 3502, 3509, 3505, 3506, 3703, 3508, + 3510, 3511, 3512, 3514, 3517, 3516, 3526, 3531, 3518, 3533, + 3528, 3537, 3534, 3538, 3539, 3543, 3542, 3703, 3544, 3546, + 3550, 3552, 3553, 3555, 3556, 3559, 3563, 3557, 3566, 3568, + 3570, 3703, 3573, 3703, 3703, 3576, 3572, 3579, 3583, 3585, + 3703, 3703, 3703, 3611, 3618, 3625, 3632, 3639, 94, 3646, + 3653, 3660, 3667, 3674, 3681, 3688, 3695 } ; -static yyconst flex_int16_t yy_def[1875] = +static yyconst flex_int16_t yy_def[1888] = { 0, - 1860, 1, 1861, 1861, 1862, 1862, 1863, 1863, 1864, 1864, - 1865, 1865, 1860, 1866, 1860, 1860, 1860, 1860, 1867, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1868, 1860, 1860, 1860, 1868, 1869, 1860, 1860, 1860, 1869, - 1870, 1860, 1860, 1860, 1860, 1870, 1871, 1860, 1860, 1860, - 1871, 1872, 1860, 1873, 1860, 1872, 1872, 1866, 1866, 1860, - 1874, 1867, 1874, 1867, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1868, 1868, 1869, 1869, - 1870, 1870, 1860, 1871, 1871, 1872, 1872, 1873, 1873, 1872, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - - 1866, 1866, 1866, 1866, 1872, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1872, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1872, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1872, 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, - 1860, 1860, 1866, 1860, 1860, 1866, 1866, 1866, 1866, 1866, - - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1872, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1860, 1872, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1860, - 1866, 1860, 1866, 1866, 1866, 1860, 1866, 1860, 1866, 1860, - - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, - 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, - 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1860, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - - 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - - 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1860, 1866, 1860, 1866, 1866, 1860, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, - 1866, 1866, 1866, 1860, 1866, 1860, 1860, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, - - 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1860, 1866, 1866, 1860, 1866, 1866, 1866, - 1860, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1860, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1860, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1860, 1866, - 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1860, 1866, 1860, - 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, - 1866, 1860, 1860, 1866, 1866, 1860, 1860, 1860, 1866, 1860, - - 1866, 1860, 1860, 1866, 1866, 1860, 1866, 1860, 1866, 1866, - 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1860, 1866, 1866, - 1866, 1866, 1860, 1866, 1860, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1860, 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1860, 1866, 1866, - - 1866, 1866, 1860, 1860, 1860, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1860, 1866, 1866, - 1866, 1860, 1866, 1860, 1866, 1860, 1860, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1860, - 1866, 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - - 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1860, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, - 1866, 1860, 1860, 1860, 1866, 1866, 1866, 1860, 1866, 1860, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1860, 1866, 1866, 1866, 1860, 1866, 1866, 1866, - 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, - 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, - 1866, 1860, 1860, 1866, 1860, 1866, 1866, 1866, 1866, 1866, - - 1860, 1860, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, - 1860, 1860, 1860, 1866, 1860, 1866, 1860, 1866, 1866, 1860, - 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1860, 1860, 1866, 1860, 1866, 1860, - 1866, 1860, 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1860, 1860, 1860, 1860, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1860, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, - 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, - 1860, 1860, 1866, 1866, 1866, 1866, 1866, 1860, 1860, 0, - 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, - 1860, 1860, 1860, 1860 + 1873, 1, 1874, 1874, 1875, 1875, 1876, 1876, 1877, 1877, + 1878, 1878, 1873, 1879, 1873, 1873, 1873, 1873, 1880, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1881, 1873, 1873, 1873, 1881, 1882, 1873, 1873, 1873, 1882, + 1883, 1873, 1873, 1873, 1873, 1883, 1884, 1873, 1873, 1873, + 1884, 1885, 1873, 1886, 1873, 1885, 1885, 1879, 1879, 1873, + 1887, 1880, 1887, 1880, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1881, 1881, 1882, 1882, + 1883, 1883, 1873, 1884, 1884, 1885, 1885, 1886, 1886, 1885, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + + 1879, 1879, 1879, 1879, 1885, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1885, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1885, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1885, 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, + 1873, 1873, 1879, 1873, 1873, 1879, 1879, 1879, 1879, 1879, + + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1885, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1873, 1885, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1873, + 1879, 1873, 1879, 1879, 1879, 1873, 1879, 1873, 1879, 1873, + + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, + 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, + 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1873, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + + 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1873, 1873, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + + 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1873, 1879, 1873, 1879, 1879, 1873, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, + 1879, 1879, 1879, 1873, 1879, 1873, 1873, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1879, + + 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1873, 1879, 1879, 1873, 1879, 1879, 1879, + 1873, 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1873, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1873, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1873, 1879, + 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1873, 1879, 1873, + 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, + 1879, 1873, 1873, 1879, 1879, 1873, 1873, 1873, 1879, 1873, + + 1879, 1873, 1873, 1879, 1879, 1873, 1879, 1873, 1879, 1879, + 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1873, 1879, 1879, + 1879, 1879, 1873, 1879, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1873, 1873, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1873, 1879, 1879, 1873, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1873, 1879, 1879, + + 1879, 1879, 1873, 1873, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1873, 1873, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1873, 1879, 1879, + 1879, 1873, 1879, 1873, 1879, 1873, 1873, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1873, + 1879, 1879, 1879, 1873, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + + 1879, 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1873, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1879, + 1879, 1873, 1873, 1873, 1879, 1879, 1879, 1873, 1879, 1879, + 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1873, 1879, 1879, 1879, 1873, 1879, 1879, + 1879, 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1873, 1879, 1879, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1873, 1879, 1873, 1873, 1879, 1873, 1879, 1879, + + 1879, 1879, 1879, 1873, 1873, 1879, 1879, 1879, 1873, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, + 1873, 1879, 1879, 1879, 1879, 1873, 1873, 1873, 1879, 1873, + 1879, 1873, 1879, 1879, 1873, 1879, 1879, 1873, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1873, 1873, 1879, 1873, 1879, 1873, 1879, 1873, 1879, + 1879, 1879, 1879, 1873, 1873, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1873, 1873, 1873, 1873, 1879, 1879, 1879, 1873, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1873, + + 1873, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1873, 1879, 1879, + 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, + 1879, 1873, 1879, 1873, 1873, 1879, 1879, 1879, 1879, 1879, + 1873, 1873, 0, 1873, 1873, 1873, 1873, 1873, 1873, 1873, + 1873, 1873, 1873, 1873, 1873, 1873, 1873 } ; -static yyconst flex_uint16_t yy_nxt[3722] = +static yyconst flex_uint16_t yy_nxt[3743] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 18, 20, 21, 14, 22, 23, 24, 25, 14, @@ -1312,7 +1316,7 @@ static yyconst flex_uint16_t yy_nxt[3722] = 69, 1209, 69, 1212, 69, 1211, 69, 1220, 69, 1215, 69, 1225, 69, 1221, 69, 69, 1228, 69, 69, 69, - 1222, 69, 1224, 69, 69, 1223, 1860, 1232, 1234, 69, + 1222, 69, 1224, 69, 69, 1223, 1873, 1232, 1234, 69, 1226, 69, 1229, 1233, 1231, 1237, 69, 1230, 69, 69, 1227, 1240, 1235, 69, 1238, 69, 69, 1236, 1241, 69, 1242, 1244, 1239, 1247, 1243, 69, 69, 1246, 69, 69, @@ -1346,7 +1350,7 @@ static yyconst flex_uint16_t yy_nxt[3722] = 69, 1371, 1374, 69, 1375, 69, 69, 1367, 69, 69, 1370, 1369, 69, 1377, 1373, 1372, 69, 69, 69, 69, 1376, 69, 1386, 69, 69, 69, 69, 1387, 1379, 69, - 1860, 1384, 1378, 69, 69, 1380, 1382, 1411, 1388, 1383, + 1873, 1384, 1378, 69, 69, 1380, 1382, 1411, 1388, 1383, 1381, 1394, 1385, 1389, 69, 1391, 1390, 1392, 69, 1393, 69, 69, 1396, 69, 1397, 69, 1398, 69, 69, 1400, 69, 69, 1402, 69, 1395, 1403, 69, 69, 69, 1406, @@ -1400,76 +1404,78 @@ static yyconst flex_uint16_t yy_nxt[3722] = 69, 1621, 1622, 69, 1623, 69, 1624, 69, 1628, 69, 1627, 69, 1625, 1619, 1626, 69, 69, 1630, 69, 69, - 1629, 1632, 69, 69, 69, 1631, 69, 1633, 1634, 1635, - 69, 69, 1640, 69, 69, 1636, 69, 69, 69, 69, - 1644, 1637, 69, 1645, 1638, 1639, 1642, 69, 69, 69, - 69, 69, 69, 1641, 1647, 1643, 1860, 1648, 69, 1650, - 1653, 69, 69, 1646, 69, 1654, 1657, 69, 69, 1655, - 69, 1651, 1652, 69, 1649, 69, 1656, 1658, 69, 1659, - 1661, 69, 69, 1660, 69, 69, 69, 1663, 1662, 69, - 69, 1664, 69, 1668, 1667, 1669, 1665, 69, 69, 1671, - - 1673, 69, 1670, 69, 1677, 69, 69, 69, 1675, 69, - 1666, 1679, 69, 69, 69, 1682, 69, 69, 1672, 69, - 69, 1683, 1674, 69, 1676, 69, 69, 69, 1681, 1684, - 1688, 69, 1678, 1680, 1687, 1685, 1690, 69, 1692, 69, - 1693, 69, 1686, 69, 1695, 69, 69, 69, 1694, 69, - 1691, 69, 1698, 1689, 69, 1701, 69, 1702, 69, 69, - 69, 69, 69, 1699, 1706, 69, 1696, 69, 69, 69, - 1697, 1709, 1704, 69, 1707, 69, 1700, 1712, 1703, 69, - 1710, 1705, 69, 1715, 69, 1716, 69, 1708, 1711, 69, - 1713, 1714, 69, 1860, 1718, 69, 1721, 69, 1717, 1860, - - 1720, 1722, 69, 1723, 69, 69, 1719, 1725, 69, 69, - 1724, 69, 1726, 1727, 69, 69, 1730, 69, 69, 69, - 69, 1733, 69, 1728, 1729, 1731, 1732, 69, 69, 69, - 69, 1736, 1734, 1735, 69, 69, 69, 1737, 69, 69, - 1745, 69, 69, 1743, 1746, 69, 1747, 69, 1738, 69, - 1739, 1749, 1740, 1741, 1748, 69, 69, 1742, 69, 1744, - 1750, 69, 69, 1751, 1752, 69, 1755, 69, 1756, 69, - 69, 1753, 69, 69, 69, 1757, 1754, 69, 69, 1761, - 1764, 69, 1762, 1765, 69, 1766, 69, 1758, 1759, 1767, - 69, 69, 69, 1760, 69, 1769, 69, 1763, 69, 1770, - - 1771, 69, 69, 1768, 69, 69, 1772, 1773, 69, 69, - 69, 69, 1777, 69, 69, 69, 69, 1774, 69, 1775, - 1776, 1779, 69, 69, 1780, 1786, 69, 1787, 1789, 1778, - 1783, 69, 1781, 1782, 1788, 69, 1790, 1785, 69, 69, - 1793, 1784, 69, 69, 1797, 69, 69, 1798, 69, 69, - 69, 69, 69, 69, 1792, 69, 1794, 69, 1795, 69, - 69, 69, 1799, 1791, 1800, 1796, 1807, 1802, 69, 1801, - 1804, 69, 1805, 1808, 1803, 69, 1810, 69, 69, 1806, - 69, 69, 1811, 1812, 1815, 1813, 1816, 69, 69, 69, - 1809, 69, 69, 1820, 69, 1817, 69, 69, 69, 69, - - 1814, 69, 1823, 69, 69, 1827, 69, 69, 69, 1822, - 1818, 1819, 1828, 1821, 69, 1830, 1826, 69, 1824, 69, - 1825, 69, 1831, 69, 1832, 1829, 69, 1834, 1835, 69, - 1833, 69, 69, 1836, 69, 69, 1838, 1839, 1837, 69, - 1841, 69, 69, 69, 1842, 69, 1845, 69, 69, 1848, - 1849, 69, 69, 1840, 1851, 69, 1852, 69, 69, 1850, - 1843, 1844, 1846, 69, 69, 1853, 1847, 69, 1854, 1855, - 69, 1858, 69, 1859, 69, 1860, 1860, 1860, 1860, 1860, - 1860, 1860, 1860, 1860, 1860, 1860, 1856, 1860, 1860, 1857, - 41, 41, 41, 41, 41, 41, 41, 46, 46, 46, - - 46, 46, 46, 46, 51, 51, 51, 51, 51, 51, - 51, 57, 57, 57, 57, 57, 57, 57, 62, 62, - 62, 62, 62, 62, 62, 72, 72, 1860, 72, 72, - 72, 72, 127, 127, 1860, 1860, 1860, 127, 127, 129, - 129, 1860, 1860, 129, 1860, 129, 131, 1860, 1860, 1860, - 1860, 1860, 131, 134, 134, 1860, 1860, 1860, 134, 134, - 136, 1860, 1860, 1860, 1860, 1860, 136, 138, 138, 1860, - 138, 138, 138, 138, 73, 73, 1860, 73, 73, 73, - 73, 13, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, - 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, - - 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, - 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, - 1860 + 1629, 1631, 69, 1633, 1632, 69, 69, 69, 69, 1638, + 1634, 1637, 69, 1641, 69, 69, 1635, 1636, 69, 69, + 69, 69, 1645, 69, 1646, 69, 1640, 1639, 1643, 69, + 1648, 69, 69, 69, 1642, 1647, 69, 1644, 1654, 69, + 69, 1651, 69, 1655, 69, 1658, 69, 1656, 69, 1649, + 69, 69, 1659, 1652, 1662, 69, 1653, 1650, 69, 1660, + 69, 69, 1657, 69, 69, 69, 1661, 69, 69, 1664, + 1665, 1663, 1668, 69, 1669, 1666, 69, 1670, 69, 1672, + + 69, 1671, 1673, 69, 69, 1675, 1676, 69, 69, 1667, + 1680, 69, 1674, 1678, 69, 69, 1682, 69, 69, 69, + 69, 1677, 1679, 1685, 69, 69, 69, 1687, 69, 1686, + 69, 69, 1681, 1683, 1684, 69, 1688, 69, 1690, 69, + 1691, 1693, 69, 1695, 69, 1689, 1696, 69, 69, 69, + 1694, 1698, 69, 1697, 1692, 69, 1701, 1699, 69, 1704, + 69, 69, 1700, 1702, 1705, 69, 69, 69, 1709, 69, + 69, 69, 69, 1707, 1710, 69, 1711, 69, 69, 69, + 1703, 1714, 1712, 1717, 1715, 1706, 69, 1708, 69, 1720, + 69, 69, 1713, 1721, 69, 69, 1716, 69, 1726, 69, + + 1723, 69, 69, 1718, 1719, 1781, 1725, 1727, 69, 69, + 1722, 1724, 1728, 69, 1729, 1730, 69, 69, 1731, 1732, + 69, 69, 69, 1735, 69, 69, 69, 1738, 69, 69, + 1736, 1734, 69, 69, 1737, 1733, 69, 1739, 69, 69, + 69, 1742, 69, 69, 69, 69, 69, 1744, 69, 1740, + 1743, 1750, 1754, 1741, 1752, 69, 1753, 69, 1745, 1746, + 69, 1747, 1748, 1749, 1756, 1751, 1755, 69, 1757, 69, + 69, 1759, 69, 69, 69, 69, 69, 69, 1763, 1764, + 69, 1765, 69, 69, 1758, 1762, 69, 69, 1760, 69, + 69, 1766, 1761, 69, 1770, 1771, 1773, 69, 1768, 69, + + 1767, 1774, 69, 1775, 69, 1776, 69, 69, 1769, 69, + 1778, 1777, 1772, 1780, 69, 1782, 69, 69, 69, 69, + 69, 69, 1779, 1784, 69, 1788, 69, 69, 69, 69, + 1783, 69, 69, 69, 69, 1873, 1785, 1786, 69, 1791, + 1787, 1790, 1792, 1798, 69, 69, 1789, 69, 1795, 69, + 1793, 1794, 1802, 1797, 1799, 1800, 69, 1801, 69, 1796, + 69, 69, 1806, 69, 69, 1803, 69, 69, 1810, 69, + 1811, 69, 69, 69, 1804, 69, 1805, 1807, 69, 1808, + 69, 69, 69, 1812, 1813, 1809, 69, 69, 69, 69, + 1823, 1814, 1815, 1820, 1817, 1818, 69, 69, 69, 1816, + + 69, 1821, 1824, 1825, 69, 1819, 1822, 1828, 69, 1826, + 1829, 69, 69, 69, 69, 1830, 1833, 69, 69, 1827, + 69, 69, 69, 69, 69, 1836, 69, 1840, 69, 69, + 69, 1835, 1831, 1832, 1841, 1845, 1834, 1839, 69, 1843, + 69, 1837, 1838, 69, 1844, 69, 69, 1842, 1848, 69, + 69, 69, 1846, 1849, 69, 69, 69, 1850, 69, 1847, + 1852, 1854, 69, 1855, 69, 69, 1858, 69, 69, 69, + 1851, 69, 1861, 1853, 1862, 69, 1863, 1864, 69, 1865, + 69, 1856, 69, 1857, 69, 69, 1859, 1860, 69, 1866, + 1867, 69, 1873, 1868, 1871, 69, 1872, 69, 1873, 1873, + + 1873, 1873, 1873, 1869, 1873, 1873, 1873, 1873, 1873, 1873, + 1870, 41, 41, 41, 41, 41, 41, 41, 46, 46, + 46, 46, 46, 46, 46, 51, 51, 51, 51, 51, + 51, 51, 57, 57, 57, 57, 57, 57, 57, 62, + 62, 62, 62, 62, 62, 62, 72, 72, 1873, 72, + 72, 72, 72, 127, 127, 1873, 1873, 1873, 127, 127, + 129, 129, 1873, 1873, 129, 1873, 129, 131, 1873, 1873, + 1873, 1873, 1873, 131, 134, 134, 1873, 1873, 1873, 134, + 134, 136, 1873, 1873, 1873, 1873, 1873, 136, 138, 138, + 1873, 138, 138, 138, 138, 73, 73, 1873, 73, 73, + + 73, 73, 13, 1873, 1873, 1873, 1873, 1873, 1873, 1873, + 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, + 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, + 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, + 1873, 1873 } ; -static yyconst flex_int16_t yy_chk[3722] = +static yyconst flex_int16_t yy_chk[3743] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1480,7 +1486,7 @@ static yyconst flex_int16_t yy_chk[3722] = 9, 158, 33, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 45, 45, 7, 8, 8, 8, 8, 10, 8, 21, 33, 158, 21, 21, 8, 11, 11, - 11, 11, 11, 11, 1866, 20, 29, 20, 20, 11, + 11, 11, 11, 11, 1879, 20, 29, 20, 20, 11, 20, 29, 24, 21, 25, 20, 24, 28, 11, 12, 12, 12, 12, 12, 12, 75, 22, 22, 75, 25, @@ -1813,74 +1819,76 @@ static yyconst flex_int16_t yy_chk[3722] = 1557, 1565, 1565, 1568, 1574, 1560, 1569, 1569, 1570, 1561, 1575, 1570, 1571, 1571, 1572, 1572, 1573, 1573, 1577, 1577, - 1576, 1587, 1574, 1568, 1575, 1576, 1578, 1581, 1581, 1582, - 1578, 1583, 1586, 1589, 1590, 1582, 1583, 1586, 1587, 1587, - 1588, 1591, 1592, 1592, 1593, 1588, 1595, 1600, 1594, 1596, - 1596, 1589, 1597, 1597, 1590, 1591, 1594, 1598, 1601, 1599, - 1602, 1603, 1604, 1593, 1599, 1595, 0, 1600, 1610, 1602, - 1606, 1606, 1607, 1598, 1608, 1607, 1611, 1611, 1614, 1608, - 1613, 1603, 1604, 1612, 1601, 1616, 1610, 1612, 1617, 1613, - 1615, 1615, 1619, 1614, 1620, 1621, 1627, 1617, 1616, 1625, - 1631, 1619, 1626, 1626, 1625, 1627, 1620, 1629, 1632, 1631, - - 1633, 1634, 1629, 1635, 1637, 1633, 1636, 1638, 1635, 1637, - 1621, 1639, 1639, 1642, 1641, 1643, 1643, 1644, 1632, 1646, - 1645, 1644, 1634, 1647, 1636, 1649, 1648, 1650, 1642, 1645, - 1649, 1652, 1638, 1641, 1648, 1646, 1651, 1651, 1654, 1654, - 1655, 1655, 1647, 1656, 1658, 1658, 1659, 1660, 1656, 1663, - 1652, 1662, 1662, 1650, 1664, 1665, 1665, 1666, 1666, 1667, - 1668, 1669, 1671, 1663, 1670, 1670, 1659, 1672, 1673, 1675, - 1660, 1673, 1668, 1677, 1671, 1674, 1664, 1676, 1667, 1681, - 1674, 1669, 1676, 1678, 1678, 1680, 1680, 1672, 1675, 1683, - 1677, 1677, 1684, 0, 1683, 1685, 1686, 1686, 1681, 0, - - 1685, 1687, 1687, 1688, 1688, 1689, 1684, 1691, 1691, 1697, - 1689, 1694, 1694, 1696, 1696, 1698, 1699, 1699, 1703, 1708, - 1700, 1704, 1704, 1697, 1698, 1700, 1703, 1705, 1707, 1709, - 1710, 1708, 1705, 1707, 1711, 1712, 1713, 1709, 1714, 1717, - 1718, 1718, 1720, 1714, 1719, 1719, 1720, 1726, 1710, 1729, - 1711, 1726, 1712, 1712, 1724, 1724, 1732, 1713, 1734, 1717, - 1728, 1728, 1738, 1729, 1731, 1731, 1735, 1735, 1736, 1736, - 1737, 1732, 1740, 1739, 1741, 1737, 1734, 1742, 1743, 1741, - 1744, 1744, 1742, 1747, 1747, 1749, 1749, 1738, 1739, 1751, - 1751, 1753, 1759, 1740, 1754, 1754, 1757, 1743, 1761, 1757, - - 1758, 1762, 1760, 1753, 1763, 1758, 1759, 1760, 1768, 1769, - 1770, 1771, 1768, 1772, 1774, 1773, 1775, 1761, 1778, 1762, - 1763, 1770, 1776, 1780, 1771, 1777, 1777, 1778, 1780, 1769, - 1774, 1781, 1772, 1773, 1779, 1779, 1781, 1776, 1782, 1783, - 1784, 1775, 1785, 1787, 1790, 1784, 1789, 1791, 1792, 1790, - 1794, 1793, 1791, 1795, 1783, 1796, 1785, 1797, 1787, 1798, - 1799, 1800, 1792, 1782, 1793, 1789, 1800, 1795, 1801, 1794, - 1797, 1802, 1798, 1801, 1796, 1803, 1803, 1804, 1805, 1799, - 1806, 1807, 1804, 1805, 1808, 1806, 1809, 1809, 1810, 1808, - 1802, 1811, 1812, 1813, 1814, 1810, 1815, 1817, 1813, 1818, - - 1807, 1819, 1817, 1820, 1821, 1821, 1823, 1822, 1828, 1815, - 1811, 1812, 1822, 1814, 1824, 1824, 1820, 1832, 1818, 1826, - 1819, 1825, 1825, 1827, 1826, 1823, 1830, 1828, 1829, 1829, - 1827, 1831, 1833, 1830, 1834, 1836, 1832, 1833, 1831, 1837, - 1836, 1838, 1839, 1841, 1837, 1840, 1840, 1842, 1843, 1843, - 1844, 1844, 1845, 1834, 1846, 1846, 1847, 1847, 1848, 1845, - 1838, 1839, 1841, 1850, 1853, 1848, 1842, 1854, 1850, 1853, - 1855, 1856, 1856, 1857, 1857, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1854, 0, 0, 1855, - 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1862, 1862, 1862, - - 1862, 1862, 1862, 1862, 1863, 1863, 1863, 1863, 1863, 1863, - 1863, 1864, 1864, 1864, 1864, 1864, 1864, 1864, 1865, 1865, - 1865, 1865, 1865, 1865, 1865, 1867, 1867, 0, 1867, 1867, - 1867, 1867, 1868, 1868, 0, 0, 0, 1868, 1868, 1869, - 1869, 0, 0, 1869, 0, 1869, 1870, 0, 0, 0, - 0, 0, 1870, 1871, 1871, 0, 0, 0, 1871, 1871, - 1872, 0, 0, 0, 0, 0, 1872, 1873, 1873, 0, - 1873, 1873, 1873, 1873, 1874, 1874, 0, 1874, 1874, 1874, - 1874, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, - 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, - - 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, - 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, - 1860 + 1576, 1589, 1574, 1568, 1575, 1576, 1578, 1581, 1582, 1587, + 1578, 1581, 1581, 1583, 1582, 1586, 1588, 1590, 1583, 1589, + 1586, 1588, 1591, 1592, 1592, 1593, 1587, 1587, 1595, 1598, + 1594, 1596, 1596, 1597, 1597, 1599, 1591, 1590, 1594, 1600, + 1599, 1601, 1602, 1603, 1593, 1598, 1604, 1595, 1606, 1606, + 1607, 1602, 1608, 1607, 1610, 1611, 1611, 1608, 1612, 1600, + 1613, 1614, 1612, 1603, 1615, 1615, 1604, 1601, 1616, 1613, + 1617, 1619, 1610, 1620, 1621, 1633, 1614, 1625, 1627, 1617, + 1619, 1616, 1625, 1626, 1626, 1620, 1629, 1627, 1630, 1630, + + 1635, 1629, 1630, 1632, 1637, 1633, 1634, 1639, 1636, 1621, + 1638, 1634, 1632, 1636, 1642, 1638, 1640, 1640, 1646, 1643, + 1647, 1635, 1637, 1644, 1644, 1645, 1648, 1646, 1651, 1645, + 1649, 1653, 1639, 1642, 1643, 1650, 1647, 1660, 1649, 1661, + 1650, 1652, 1652, 1655, 1655, 1648, 1656, 1656, 1657, 1664, + 1653, 1659, 1659, 1657, 1651, 1663, 1663, 1660, 1665, 1666, + 1666, 1669, 1661, 1664, 1667, 1667, 1668, 1670, 1671, 1671, + 1674, 1672, 1675, 1669, 1672, 1673, 1673, 1678, 1676, 1677, + 1665, 1676, 1674, 1679, 1677, 1668, 1680, 1670, 1679, 1681, + 1681, 1684, 1675, 1683, 1683, 1686, 1678, 1687, 1689, 1689, + + 1686, 1688, 1766, 1680, 1680, 1766, 1688, 1690, 1690, 1692, + 1684, 1687, 1691, 1691, 1692, 1694, 1694, 1697, 1697, 1699, + 1699, 1700, 1701, 1702, 1702, 1703, 1706, 1707, 1707, 1710, + 1703, 1701, 1708, 1711, 1706, 1700, 1712, 1708, 1713, 1714, + 1715, 1712, 1718, 1716, 1717, 1722, 1719, 1714, 1725, 1710, + 1713, 1719, 1725, 1711, 1723, 1723, 1724, 1724, 1715, 1716, + 1731, 1717, 1717, 1718, 1731, 1722, 1729, 1729, 1733, 1733, + 1734, 1736, 1736, 1737, 1739, 1745, 1740, 1741, 1741, 1742, + 1742, 1743, 1743, 1746, 1734, 1740, 1744, 1747, 1737, 1748, + 1749, 1744, 1739, 1750, 1748, 1749, 1751, 1751, 1746, 1760, + + 1745, 1754, 1754, 1756, 1756, 1758, 1758, 1762, 1747, 1761, + 1761, 1760, 1750, 1763, 1763, 1767, 1768, 1770, 1769, 1771, + 1767, 1777, 1762, 1769, 1772, 1777, 1778, 1779, 1781, 1782, + 1768, 1783, 1785, 1784, 1786, 0, 1770, 1771, 1787, 1781, + 1772, 1779, 1782, 1788, 1788, 1789, 1778, 1792, 1785, 1794, + 1783, 1784, 1792, 1787, 1789, 1790, 1790, 1791, 1791, 1786, + 1793, 1795, 1796, 1797, 1799, 1793, 1802, 1796, 1803, 1805, + 1804, 1806, 1807, 1803, 1794, 1804, 1795, 1797, 1808, 1799, + 1809, 1810, 1811, 1805, 1806, 1802, 1812, 1815, 1813, 1816, + 1816, 1807, 1808, 1813, 1810, 1811, 1814, 1817, 1818, 1809, + + 1820, 1814, 1817, 1818, 1819, 1812, 1815, 1821, 1823, 1819, + 1822, 1822, 1821, 1824, 1825, 1823, 1826, 1827, 1828, 1820, + 1830, 1826, 1831, 1832, 1833, 1830, 1834, 1834, 1836, 1835, + 1839, 1828, 1824, 1825, 1835, 1839, 1827, 1833, 1837, 1837, + 1841, 1831, 1832, 1838, 1838, 1840, 1843, 1836, 1842, 1842, + 1844, 1845, 1840, 1843, 1847, 1846, 1849, 1844, 1850, 1841, + 1846, 1849, 1851, 1850, 1852, 1853, 1853, 1854, 1855, 1858, + 1845, 1856, 1856, 1847, 1857, 1857, 1858, 1859, 1859, 1860, + 1860, 1851, 1861, 1852, 1867, 1863, 1854, 1855, 1866, 1861, + 1863, 1868, 0, 1866, 1869, 1869, 1870, 1870, 0, 0, + + 0, 0, 0, 1867, 0, 0, 0, 0, 0, 0, + 1868, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1875, 1875, + 1875, 1875, 1875, 1875, 1875, 1876, 1876, 1876, 1876, 1876, + 1876, 1876, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1878, + 1878, 1878, 1878, 1878, 1878, 1878, 1880, 1880, 0, 1880, + 1880, 1880, 1880, 1881, 1881, 0, 0, 0, 1881, 1881, + 1882, 1882, 0, 0, 1882, 0, 1882, 1883, 0, 0, + 0, 0, 0, 1883, 1884, 1884, 0, 0, 0, 1884, + 1884, 1885, 0, 0, 0, 0, 0, 1885, 1886, 1886, + 0, 1886, 1886, 1886, 1886, 1887, 1887, 0, 1887, 1887, + + 1887, 1887, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, + 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, + 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, + 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, + 1873, 1873 } ; static yy_state_type yy_last_accepting_state; @@ -2085,7 +2093,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 2087 "" +#line 2095 "" #define INITIAL 0 #define quotedstring 1 @@ -2308,7 +2316,7 @@ YY_DECL { #line 201 "./util/configlexer.lex" -#line 2310 "" +#line 2318 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2341,13 +2349,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 >= 1861 ) + if ( yy_current_state >= 1874 ) 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] != 3682 ); + while ( yy_base[yy_current_state] != 3703 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -3093,149 +3101,159 @@ YY_RULE_SETUP case 144: YY_RULE_SETUP #line 349 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 145: YY_RULE_SETUP #line 350 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 146: YY_RULE_SETUP #line 351 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 147: YY_RULE_SETUP #line 352 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 148: YY_RULE_SETUP #line 353 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 149: YY_RULE_SETUP #line 354 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 150: YY_RULE_SETUP #line 355 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 151: YY_RULE_SETUP #line 356 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 152: YY_RULE_SETUP #line 357 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 153: YY_RULE_SETUP -#line 359 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } +#line 358 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 154: YY_RULE_SETUP -#line 361 "./util/configlexer.lex" +#line 359 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 155: YY_RULE_SETUP -#line 363 "./util/configlexer.lex" +#line 361 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 156: YY_RULE_SETUP -#line 365 "./util/configlexer.lex" +#line 363 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 157: YY_RULE_SETUP -#line 367 "./util/configlexer.lex" +#line 365 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 158: YY_RULE_SETUP -#line 369 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 367 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 159: YY_RULE_SETUP -#line 370 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +#line 369 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 160: YY_RULE_SETUP #line 371 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 161: YY_RULE_SETUP #line 372 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 162: YY_RULE_SETUP #line 373 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 163: YY_RULE_SETUP #line 374 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 164: YY_RULE_SETUP #line 375 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 165: -/* rule 165 can match eol */ YY_RULE_SETUP #line 376 "./util/configlexer.lex" +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } + YY_BREAK +case 166: +YY_RULE_SETUP +#line 377 "./util/configlexer.lex" +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } + YY_BREAK +case 167: +/* rule 167 can match eol */ +YY_RULE_SETUP +#line 378 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 166: +case 168: YY_RULE_SETUP -#line 379 "./util/configlexer.lex" +#line 381 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 380 "./util/configlexer.lex" +#line 382 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 167: +case 169: YY_RULE_SETUP -#line 385 "./util/configlexer.lex" +#line 387 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 168: -/* rule 168 can match eol */ +case 170: +/* rule 170 can match eol */ YY_RULE_SETUP -#line 386 "./util/configlexer.lex" +#line 388 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 169: +case 171: YY_RULE_SETUP -#line 388 "./util/configlexer.lex" +#line 390 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3248,34 +3266,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 170: +case 172: YY_RULE_SETUP -#line 400 "./util/configlexer.lex" +#line 402 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 401 "./util/configlexer.lex" +#line 403 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 171: +case 173: YY_RULE_SETUP -#line 406 "./util/configlexer.lex" +#line 408 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 172: -/* rule 172 can match eol */ +case 174: +/* rule 174 can match eol */ YY_RULE_SETUP -#line 407 "./util/configlexer.lex" +#line 409 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 173: +case 175: YY_RULE_SETUP -#line 409 "./util/configlexer.lex" +#line 411 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3288,38 +3306,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 174: +case 176: YY_RULE_SETUP -#line 421 "./util/configlexer.lex" +#line 423 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 423 "./util/configlexer.lex" +#line 425 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 175: +case 177: YY_RULE_SETUP -#line 427 "./util/configlexer.lex" +#line 429 "./util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK -case 176: -/* rule 176 can match eol */ +case 178: +/* rule 178 can match eol */ YY_RULE_SETUP -#line 428 "./util/configlexer.lex" +#line 430 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK -case 177: +case 179: YY_RULE_SETUP -#line 429 "./util/configlexer.lex" +#line 431 "./util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK -case 178: +case 180: YY_RULE_SETUP -#line 430 "./util/configlexer.lex" +#line 432 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -3327,27 +3345,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 435 "./util/configlexer.lex" +#line 437 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 179: +case 181: YY_RULE_SETUP -#line 439 "./util/configlexer.lex" +#line 441 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 180: -/* rule 180 can match eol */ +case 182: +/* rule 182 can match eol */ YY_RULE_SETUP -#line 440 "./util/configlexer.lex" +#line 442 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 181: +case 183: YY_RULE_SETUP -#line 442 "./util/configlexer.lex" +#line 444 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -3357,7 +3375,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 448 "./util/configlexer.lex" +#line 450 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -3369,33 +3387,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 182: +case 184: YY_RULE_SETUP -#line 459 "./util/configlexer.lex" +#line 461 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 183: +case 185: YY_RULE_SETUP -#line 463 "./util/configlexer.lex" +#line 465 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 184: +case 186: YY_RULE_SETUP -#line 467 "./util/configlexer.lex" +#line 469 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 185: +case 187: YY_RULE_SETUP -#line 471 "./util/configlexer.lex" +#line 473 "./util/configlexer.lex" ECHO; YY_BREAK -#line 3397 "" +#line 3415 "" case YY_END_OF_BUFFER: { @@ -3686,7 +3704,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 >= 1861 ) + if ( yy_current_state >= 1874 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3714,11 +3732,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 >= 1861 ) + if ( yy_current_state >= 1874 ) 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 == 1860); + yy_is_jam = (yy_current_state == 1873); return yy_is_jam ? 0 : yy_current_state; } @@ -4357,7 +4375,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 471 "./util/configlexer.lex" +#line 473 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 8665ea54e..84f601f8a 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -346,6 +346,8 @@ dns64-synthall{COLON} { YDVAR(1, VAR_DNS64_SYNTHALL) } define-tag{COLON} { YDVAR(1, VAR_DEFINE_TAG) } local-zone-tag{COLON} { YDVAR(2, VAR_LOCAL_ZONE_TAG) } access-control-tag{COLON} { YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +access-control-tag-action{COLON} { YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +access-control-tag-data{COLON} { YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } local-zone-override{COLON} { YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } dnstap{COLON} { YDVAR(0, VAR_DNSTAP) } dnstap-enable{COLON} { YDVAR(1, VAR_DNSTAP_ENABLE) } diff --git a/util/configparser.c b/util/configparser.c index 2445cc4b9..fa61e9305 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -292,7 +292,9 @@ extern int yydebug; VAR_DEFINE_TAG = 423, VAR_LOCAL_ZONE_TAG = 424, VAR_ACCESS_CONTROL_TAG = 425, - VAR_LOCAL_ZONE_OVERRIDE = 426 + VAR_LOCAL_ZONE_OVERRIDE = 426, + VAR_ACCESS_CONTROL_TAG_ACTION = 427, + VAR_ACCESS_CONTROL_TAG_DATA = 428 }; #endif /* Tokens. */ @@ -465,6 +467,8 @@ extern int yydebug; #define VAR_LOCAL_ZONE_TAG 424 #define VAR_ACCESS_CONTROL_TAG 425 #define VAR_LOCAL_ZONE_OVERRIDE 426 +#define VAR_ACCESS_CONTROL_TAG_ACTION 427 +#define VAR_ACCESS_CONTROL_TAG_DATA 428 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -475,7 +479,7 @@ union YYSTYPE char* str; -#line 479 "util/configparser.c" /* yacc.c:355 */ +#line 483 "util/configparser.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -492,7 +496,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 496 "util/configparser.c" /* yacc.c:358 */ +#line 500 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -734,21 +738,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 327 +#define YYLAST 335 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 172 +#define YYNTOKENS 174 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 177 +#define YYNNTS 179 /* YYNRULES -- Number of rules. */ -#define YYNRULES 339 +#define YYNRULES 343 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 504 +#define YYNSTATES 514 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 426 +#define YYMAXUTOK 428 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -799,47 +803,48 @@ static const yytype_uint8 yytranslate[] = 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, 169, 170, 171 + 165, 166, 167, 168, 169, 170, 171, 172, 173 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 132, 132, 132, 133, 133, 134, 134, 135, 135, - 139, 144, 145, 146, 146, 146, 147, 147, 148, 148, - 148, 149, 149, 150, 150, 150, 151, 151, 151, 152, - 152, 153, 153, 154, 154, 155, 155, 156, 156, 157, - 157, 158, 158, 159, 159, 160, 160, 160, 161, 161, - 161, 162, 162, 162, 163, 163, 164, 164, 165, 165, - 166, 166, 167, 167, 167, 168, 168, 169, 169, 170, - 170, 170, 171, 171, 172, 172, 173, 173, 174, 174, - 174, 175, 175, 176, 176, 177, 177, 178, 178, 179, - 179, 180, 180, 180, 181, 181, 182, 182, 182, 183, - 183, 183, 184, 184, 184, 185, 185, 185, 186, 186, - 186, 187, 187, 187, 188, 188, 189, 189, 190, 190, - 191, 191, 192, 192, 192, 193, 193, 194, 194, 195, - 195, 196, 196, 197, 197, 197, 198, 198, 199, 201, - 213, 214, 215, 215, 215, 215, 215, 217, 229, 230, - 231, 231, 231, 231, 233, 242, 251, 262, 271, 280, - 289, 302, 317, 326, 335, 344, 353, 362, 371, 380, - 389, 398, 407, 416, 425, 434, 443, 450, 457, 466, - 475, 489, 498, 507, 514, 521, 528, 536, 543, 550, - 557, 564, 572, 580, 588, 595, 602, 611, 620, 627, - 634, 642, 650, 660, 670, 680, 693, 704, 712, 725, - 734, 743, 752, 762, 772, 780, 793, 802, 810, 819, - 827, 840, 849, 856, 866, 876, 886, 896, 906, 916, - 926, 936, 943, 950, 957, 966, 975, 984, 991, 1001, - 1018, 1025, 1043, 1056, 1069, 1078, 1087, 1096, 1105, 1115, - 1125, 1134, 1143, 1150, 1159, 1168, 1177, 1186, 1194, 1207, - 1215, 1239, 1246, 1261, 1271, 1281, 1288, 1295, 1304, 1318, - 1337, 1356, 1368, 1377, 1385, 1398, 1411, 1424, 1433, 1443, - 1453, 1460, 1467, 1476, 1486, 1496, 1503, 1510, 1519, 1524, - 1525, 1526, 1526, 1526, 1527, 1527, 1527, 1528, 1528, 1530, - 1540, 1549, 1556, 1566, 1573, 1580, 1587, 1594, 1599, 1600, - 1601, 1601, 1602, 1602, 1603, 1603, 1604, 1605, 1606, 1607, - 1608, 1609, 1611, 1619, 1626, 1634, 1642, 1649, 1656, 1665, - 1674, 1683, 1692, 1701, 1710, 1715, 1716, 1717, 1719, 1725 + 0, 133, 133, 133, 134, 134, 135, 135, 136, 136, + 140, 145, 146, 147, 147, 147, 148, 148, 149, 149, + 149, 150, 150, 151, 151, 151, 152, 152, 152, 153, + 153, 154, 154, 155, 155, 156, 156, 157, 157, 158, + 158, 159, 159, 160, 160, 161, 161, 161, 162, 162, + 162, 163, 163, 163, 164, 164, 165, 165, 166, 166, + 167, 167, 168, 168, 168, 169, 169, 170, 170, 171, + 171, 171, 172, 172, 173, 173, 174, 174, 175, 175, + 175, 176, 176, 177, 177, 178, 178, 179, 179, 180, + 180, 181, 181, 181, 182, 182, 183, 183, 183, 184, + 184, 184, 185, 185, 185, 186, 186, 186, 187, 187, + 187, 188, 188, 188, 189, 189, 190, 190, 191, 191, + 192, 192, 193, 193, 193, 194, 194, 195, 195, 196, + 196, 197, 197, 198, 198, 198, 199, 199, 200, 200, + 201, 203, 215, 216, 217, 217, 217, 217, 217, 219, + 231, 232, 233, 233, 233, 233, 235, 244, 253, 264, + 273, 282, 291, 304, 319, 328, 337, 346, 355, 364, + 373, 382, 391, 400, 409, 418, 427, 436, 445, 452, + 459, 468, 477, 491, 500, 509, 516, 523, 530, 538, + 545, 552, 559, 566, 574, 582, 590, 597, 604, 613, + 622, 629, 636, 644, 652, 662, 672, 682, 695, 706, + 714, 727, 736, 745, 754, 764, 774, 782, 795, 804, + 812, 821, 829, 842, 851, 858, 868, 878, 888, 898, + 908, 918, 928, 938, 945, 952, 959, 968, 977, 986, + 993, 1003, 1020, 1027, 1045, 1058, 1071, 1080, 1089, 1098, + 1107, 1117, 1127, 1136, 1145, 1152, 1161, 1170, 1179, 1188, + 1196, 1209, 1217, 1241, 1248, 1263, 1273, 1283, 1290, 1297, + 1306, 1320, 1339, 1358, 1370, 1382, 1394, 1403, 1411, 1424, + 1437, 1450, 1459, 1469, 1479, 1486, 1493, 1502, 1512, 1522, + 1529, 1536, 1545, 1550, 1551, 1552, 1552, 1552, 1553, 1553, + 1553, 1554, 1554, 1556, 1566, 1575, 1582, 1592, 1599, 1606, + 1613, 1620, 1625, 1626, 1627, 1627, 1628, 1628, 1629, 1629, + 1630, 1631, 1632, 1633, 1634, 1635, 1637, 1645, 1652, 1660, + 1668, 1675, 1682, 1691, 1700, 1709, 1718, 1727, 1736, 1741, + 1742, 1743, 1745, 1751 }; #endif @@ -908,7 +913,8 @@ static const char *const yytname[] = "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL", "VAR_PERMIT_SMALL_HOLDDOWN", "VAR_QNAME_MINIMISATION", "VAR_IP_FREEBIND", "VAR_DEFINE_TAG", "VAR_LOCAL_ZONE_TAG", "VAR_ACCESS_CONTROL_TAG", - "VAR_LOCAL_ZONE_OVERRIDE", "$accept", "toplevelvars", "toplevelvar", + "VAR_LOCAL_ZONE_OVERRIDE", "VAR_ACCESS_CONTROL_TAG_ACTION", + "VAR_ACCESS_CONTROL_TAG_DATA", "$accept", "toplevelvars", "toplevelvar", "serverstart", "contents_server", "content_server", "stubstart", "contents_stub", "content_stub", "forwardstart", "contents_forward", "content_forward", "server_num_threads", "server_verbosity", @@ -960,7 +966,8 @@ static const char *const yytname[] = "server_local_data", "server_local_data_ptr", "server_minimal_responses", "server_rrset_roundrobin", "server_max_udp_size", "server_dns64_prefix", "server_dns64_synthall", "server_define_tag", "server_local_zone_tag", - "server_access_control_tag", "server_local_zone_override", + "server_access_control_tag", "server_access_control_tag_action", + "server_access_control_tag_data", "server_local_zone_override", "server_ratelimit", "server_ratelimit_size", "server_ratelimit_slabs", "server_ratelimit_for_domain", "server_ratelimit_below_domain", "server_ratelimit_factor", "server_qname_minimisation", "stub_name", @@ -1005,7 +1012,7 @@ static const yytype_uint16 yytoknum[] = 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426 + 425, 426, 427, 428 }; # endif @@ -1026,18 +1033,18 @@ static const yytype_int16 yypact[] = -81, 129, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -12, 39, 47, 40, 36, -80, 18, 19, 20, 24, 25, 26, 69, 72, - 73, 74, 75, 80, 108, 109, 120, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 161, 162, 163, 164, - 166, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, -81, -81, + 73, 74, 75, 80, 108, 109, 120, 152, 153, 154, + 155, 156, 157, 158, 161, 162, 163, 164, 166, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, @@ -1050,30 +1057,31 @@ static const yytype_int16 yypact[] = -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, 280, 281, 282, 283, 284, - -81, -81, -81, -81, -81, -81, 285, 286, 287, 288, - -81, -81, -81, -81, -81, 289, 290, 291, 292, 293, - 294, 295, 296, -81, -81, -81, -81, -81, -81, -81, - -81, -81, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, -81, 309, -81, -81, + -81, -81, -81, -81, -81, -81, -81, -81, -81, 284, + 285, 286, 287, 288, -81, -81, -81, -81, -81, -81, + 289, 290, 291, 292, -81, -81, -81, -81, -81, 293, + 294, 295, 296, 297, 298, 299, 300, -81, -81, -81, + -81, -81, -81, -81, -81, -81, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, + -81, 313, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, 310, 311, -81, -81, -81, + -81, -81, -81, -81, -81, -81, -81, -81, -81, 314, + 315, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, + -81, -81, -81, -81, -81, -81, -81, -81, 316, 317, + -81, -81, -81, -81, -81, -81, -81, 318, 319, 320, + 321, 322, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, 312, 313, -81, -81, -81, -81, - -81, -81, -81, 314, 315, 316, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, 317, -81 + -81, -81, -81, -81, -81, -81, -81, -81, 323, 324, + 325, -81, -81, -81 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1081,8 +1089,8 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 10, 139, 147, 288, 334, 307, 3, - 12, 141, 149, 290, 309, 336, 4, 5, 6, 8, + 2, 0, 1, 10, 141, 149, 292, 338, 311, 3, + 12, 143, 151, 294, 313, 340, 4, 5, 6, 8, 9, 7, 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, @@ -1095,43 +1103,44 @@ static const yytype_uint16 yydefact[] = 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, 11, 13, - 14, 72, 75, 84, 15, 23, 63, 16, 76, 77, - 34, 56, 71, 17, 18, 19, 20, 21, 22, 106, - 107, 108, 109, 110, 73, 62, 88, 105, 24, 25, - 26, 27, 28, 64, 78, 79, 94, 50, 60, 51, - 89, 44, 45, 46, 47, 98, 102, 114, 122, 133, - 99, 57, 29, 30, 31, 86, 115, 116, 117, 32, - 33, 35, 36, 38, 39, 37, 120, 40, 41, 42, - 48, 67, 103, 81, 121, 74, 129, 82, 83, 100, - 101, 87, 43, 65, 68, 49, 52, 90, 91, 66, - 130, 92, 53, 54, 55, 104, 93, 61, 95, 96, - 97, 131, 58, 59, 80, 69, 70, 85, 111, 112, - 113, 118, 119, 134, 135, 137, 138, 123, 125, 124, - 126, 127, 128, 132, 136, 0, 0, 0, 0, 0, - 140, 142, 143, 144, 146, 145, 0, 0, 0, 0, - 148, 150, 151, 152, 153, 0, 0, 0, 0, 0, - 0, 0, 0, 289, 291, 293, 292, 298, 294, 295, - 296, 297, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 308, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 0, 335, 337, - 155, 154, 159, 162, 160, 168, 169, 170, 171, 172, - 173, 183, 184, 185, 186, 187, 207, 208, 209, 214, - 215, 165, 216, 217, 220, 218, 219, 222, 223, 224, - 237, 196, 197, 198, 199, 225, 240, 192, 194, 241, - 247, 248, 249, 166, 206, 257, 258, 193, 252, 180, - 161, 188, 238, 244, 226, 0, 0, 261, 167, 156, - 179, 230, 157, 163, 164, 189, 190, 259, 228, 232, - 233, 158, 262, 210, 236, 181, 195, 242, 243, 246, - 251, 191, 255, 253, 254, 200, 205, 234, 235, 201, - 202, 227, 250, 182, 174, 175, 176, 177, 178, 263, - 264, 265, 211, 212, 213, 221, 266, 267, 229, 203, - 339, 272, 274, 273, 0, 0, 277, 231, 245, 256, - 278, 204, 268, 0, 0, 0, 279, 280, 281, 283, - 282, 284, 285, 286, 287, 299, 301, 300, 303, 304, - 305, 306, 302, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 338, 239, 260, 275, 276, - 269, 270, 0, 271 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 13, 14, 72, 75, 84, 15, 23, 63, 16, + 76, 77, 34, 56, 71, 17, 18, 19, 20, 21, + 22, 106, 107, 108, 109, 110, 73, 62, 88, 105, + 24, 25, 26, 27, 28, 64, 78, 79, 94, 50, + 60, 51, 89, 44, 45, 46, 47, 98, 102, 114, + 122, 133, 99, 57, 29, 30, 31, 86, 115, 116, + 117, 32, 33, 35, 36, 38, 39, 37, 120, 40, + 41, 42, 48, 67, 103, 81, 121, 74, 129, 82, + 83, 100, 101, 87, 43, 65, 68, 49, 52, 90, + 91, 66, 130, 92, 53, 54, 55, 104, 93, 61, + 95, 96, 97, 131, 58, 59, 80, 69, 70, 85, + 111, 112, 113, 118, 119, 134, 135, 137, 139, 140, + 138, 123, 125, 124, 126, 127, 128, 132, 136, 0, + 0, 0, 0, 0, 142, 144, 145, 146, 148, 147, + 0, 0, 0, 0, 150, 152, 153, 154, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 293, 295, 297, + 296, 302, 298, 299, 300, 301, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 312, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 0, 339, 341, 157, 156, 161, 164, 162, 170, + 171, 172, 173, 174, 175, 185, 186, 187, 188, 189, + 209, 210, 211, 216, 217, 167, 218, 219, 222, 220, + 221, 224, 225, 226, 239, 198, 199, 200, 201, 227, + 242, 194, 196, 243, 249, 250, 251, 168, 208, 259, + 260, 195, 254, 182, 163, 190, 240, 246, 228, 0, + 0, 263, 169, 158, 181, 232, 159, 165, 166, 191, + 192, 261, 230, 234, 235, 160, 264, 212, 238, 183, + 197, 244, 245, 248, 253, 193, 257, 255, 256, 202, + 207, 236, 237, 203, 204, 229, 252, 184, 176, 177, + 178, 179, 180, 265, 266, 267, 213, 214, 215, 223, + 268, 269, 231, 205, 343, 276, 278, 277, 0, 0, + 281, 233, 247, 258, 282, 206, 270, 0, 0, 0, + 0, 0, 283, 284, 285, 287, 286, 288, 289, 290, + 291, 303, 305, 304, 307, 308, 309, 310, 306, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 342, 241, 262, 279, 280, 271, 272, 0, 0, + 0, 275, 273, 274 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1154,30 +1163,30 @@ static const yytype_int8 yypgoto[] = -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, -81 + -81, -81, -81, -81, -81, -81, -81, -81, -81 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 9, 10, 16, 148, 11, 17, 280, 12, - 18, 290, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 281, 282, 283, - 284, 285, 291, 292, 293, 294, 13, 19, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 14, 20, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 15, 21, 338, 339, 274 + -1, 1, 9, 10, 16, 150, 11, 17, 284, 12, + 18, 294, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 285, + 286, 287, 288, 289, 295, 296, 297, 298, 13, 19, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 14, + 20, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 15, 21, 342, 343, 278 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1187,37 +1196,38 @@ static const yytype_uint16 yytable[] = { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 337, 340, 341, - 342, 49, 50, 51, 343, 344, 345, 52, 53, 54, + 42, 43, 44, 45, 46, 47, 48, 341, 344, 345, + 346, 49, 50, 51, 347, 348, 349, 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, - 85, 86, 87, 88, 89, 90, 91, 92, 275, 346, - 276, 277, 347, 348, 349, 350, 286, 93, 94, 95, - 351, 96, 97, 98, 287, 288, 99, 100, 101, 102, + 85, 86, 87, 88, 89, 90, 91, 92, 279, 350, + 280, 281, 351, 352, 353, 354, 290, 93, 94, 95, + 355, 96, 97, 98, 291, 292, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 352, 353, + 113, 114, 115, 116, 117, 118, 119, 120, 356, 357, 121, 122, 123, 124, 125, 126, 127, 128, 129, 2, - 354, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 3, 278, 130, 131, 132, 133, 134, 135, 136, 137, + 358, 299, 300, 301, 302, 303, 304, 305, 306, 0, + 3, 282, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 4, - 279, 364, 365, 366, 367, 5, 368, 289, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 6, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 7, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 8, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503 + 148, 149, 359, 360, 361, 362, 363, 364, 365, 4, + 283, 366, 367, 368, 369, 5, 370, 293, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 6, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 7, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 8, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513 }; static const yytype_int16 yycheck[] = @@ -1238,7 +1248,7 @@ static const yytype_int16 yycheck[] = 10, 91, 92, 93, 94, 95, 96, 97, 98, -1, 11, 102, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, + 172, 173, 10, 10, 10, 10, 10, 10, 10, 40, 131, 10, 10, 10, 10, 46, 10, 130, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1254,16 +1264,17 @@ static const yytype_int16 yycheck[] = 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 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 173, 0, 11, 40, 46, 90, 106, 141, 174, - 175, 178, 181, 318, 329, 344, 176, 179, 182, 319, - 330, 345, 12, 13, 14, 15, 16, 17, 18, 19, + 0, 175, 0, 11, 40, 46, 90, 106, 141, 176, + 177, 180, 183, 322, 333, 348, 178, 181, 184, 323, + 334, 349, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 43, 44, 45, 49, 50, 51, 52, 53, 54, 55, 56, @@ -1275,8 +1286,8 @@ static const yytype_uint16 yystos[] = 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 132, 133, 134, 135, 136, 137, 138, 139, 140, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 177, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 179, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, @@ -1288,13 +1299,14 @@ static const yytype_uint16 yystos[] = 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 348, 39, 41, 42, 102, 131, - 180, 309, 310, 311, 312, 313, 39, 47, 48, 130, - 183, 314, 315, 316, 317, 91, 92, 93, 94, 95, - 96, 97, 98, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 107, 346, 347, + 305, 306, 307, 308, 309, 310, 311, 312, 352, 39, + 41, 42, 102, 131, 182, 313, 314, 315, 316, 317, + 39, 47, 48, 130, 185, 318, 319, 320, 321, 91, + 92, 93, 94, 95, 96, 97, 98, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 107, 350, 351, 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, @@ -1317,22 +1329,22 @@ static const yytype_uint16 yystos[] = /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 172, 173, 173, 174, 174, 174, 174, 174, 174, - 175, 176, 176, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 178, - 179, 179, 180, 180, 180, 180, 180, 181, 182, 182, - 183, 183, 183, 183, 184, 185, 186, 187, 188, 189, + 0, 174, 175, 175, 176, 176, 176, 176, 176, 176, + 177, 178, 178, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 180, 181, 181, 182, 182, 182, 182, 182, 183, + 184, 184, 185, 185, 185, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, @@ -1346,11 +1358,12 @@ static const yytype_uint16 yyr1[] = 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 319, 320, 320, 320, 320, 320, 320, 320, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 330, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 345, 346, 347, 348 + 320, 321, 322, 323, 323, 324, 324, 324, 324, 324, + 324, 324, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 334, 335, 335, 335, 335, 335, 335, + 335, 335, 335, 335, 335, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 349, 350, 351, 352 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1370,8 +1383,8 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 0, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, + 2, 0, 1, 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, @@ -1379,17 +1392,18 @@ static const yytype_uint8 yyr2[] = 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, + 2, 3, 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, 3, - 3, 4, 2, 2, 2, 3, 3, 2, 2, 2, + 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 3, 4, 4, 4, 2, 2, 2, 3, + 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 1, 2, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 2, 2 + 0, 1, 2, 2 }; @@ -2066,15 +2080,15 @@ yyreduce: switch (yyn) { case 10: -#line 140 "./util/configparser.y" /* yacc.c:1646 */ +#line 141 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(server:)\n")); } -#line 2074 "util/configparser.c" /* yacc.c:1646 */ +#line 2088 "util/configparser.c" /* yacc.c:1646 */ break; - case 139: -#line 202 "./util/configparser.y" /* yacc.c:1646 */ + case 141: +#line 204 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2085,11 +2099,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2089 "util/configparser.c" /* yacc.c:1646 */ +#line 2103 "util/configparser.c" /* yacc.c:1646 */ break; - case 147: -#line 218 "./util/configparser.y" /* yacc.c:1646 */ + case 149: +#line 220 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2100,11 +2114,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2104 "util/configparser.c" /* yacc.c:1646 */ +#line 2118 "util/configparser.c" /* yacc.c:1646 */ break; - case 154: -#line 234 "./util/configparser.y" /* yacc.c:1646 */ + case 156: +#line 236 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2112,11 +2126,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2116 "util/configparser.c" /* yacc.c:1646 */ +#line 2130 "util/configparser.c" /* yacc.c:1646 */ break; - case 155: -#line 243 "./util/configparser.y" /* yacc.c:1646 */ + case 157: +#line 245 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2124,11 +2138,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2128 "util/configparser.c" /* yacc.c:1646 */ +#line 2142 "util/configparser.c" /* yacc.c:1646 */ break; - case 156: -#line 252 "./util/configparser.y" /* yacc.c:1646 */ + case 158: +#line 254 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2138,11 +2152,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2142 "util/configparser.c" /* yacc.c:1646 */ +#line 2156 "util/configparser.c" /* yacc.c:1646 */ break; - case 157: -#line 263 "./util/configparser.y" /* yacc.c:1646 */ + case 159: +#line 265 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2150,11 +2164,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2154 "util/configparser.c" /* yacc.c:1646 */ +#line 2168 "util/configparser.c" /* yacc.c:1646 */ break; - case 158: -#line 272 "./util/configparser.y" /* yacc.c:1646 */ + case 160: +#line 274 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2162,11 +2176,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2166 "util/configparser.c" /* yacc.c:1646 */ +#line 2180 "util/configparser.c" /* yacc.c:1646 */ break; - case 159: -#line 281 "./util/configparser.y" /* yacc.c:1646 */ + case 161: +#line 283 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2174,11 +2188,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2178 "util/configparser.c" /* yacc.c:1646 */ +#line 2192 "util/configparser.c" /* yacc.c:1646 */ break; - case 160: -#line 290 "./util/configparser.y" /* yacc.c:1646 */ + case 162: +#line 292 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2190,11 +2204,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 2194 "util/configparser.c" /* yacc.c:1646 */ +#line 2208 "util/configparser.c" /* yacc.c:1646 */ break; - case 161: -#line 303 "./util/configparser.y" /* yacc.c:1646 */ + case 163: +#line 305 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2208,11 +2222,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 2212 "util/configparser.c" /* yacc.c:1646 */ +#line 2226 "util/configparser.c" /* yacc.c:1646 */ break; - case 162: -#line 318 "./util/configparser.y" /* yacc.c:1646 */ + case 164: +#line 320 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2220,11 +2234,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2224 "util/configparser.c" /* yacc.c:1646 */ +#line 2238 "util/configparser.c" /* yacc.c:1646 */ break; - case 163: -#line 327 "./util/configparser.y" /* yacc.c:1646 */ + case 165: +#line 329 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -2232,11 +2246,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2236 "util/configparser.c" /* yacc.c:1646 */ +#line 2250 "util/configparser.c" /* yacc.c:1646 */ break; - case 164: -#line 336 "./util/configparser.y" /* yacc.c:1646 */ + case 166: +#line 338 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -2244,11 +2258,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2248 "util/configparser.c" /* yacc.c:1646 */ +#line 2262 "util/configparser.c" /* yacc.c:1646 */ break; - case 165: -#line 345 "./util/configparser.y" /* yacc.c:1646 */ + case 167: +#line 347 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2256,11 +2270,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2260 "util/configparser.c" /* yacc.c:1646 */ +#line 2274 "util/configparser.c" /* yacc.c:1646 */ break; - case 166: -#line 354 "./util/configparser.y" /* yacc.c:1646 */ + case 168: +#line 356 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2268,11 +2282,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2272 "util/configparser.c" /* yacc.c:1646 */ +#line 2286 "util/configparser.c" /* yacc.c:1646 */ break; - case 167: -#line 363 "./util/configparser.y" /* yacc.c:1646 */ + case 169: +#line 365 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2280,11 +2294,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2284 "util/configparser.c" /* yacc.c:1646 */ +#line 2298 "util/configparser.c" /* yacc.c:1646 */ break; - case 168: -#line 372 "./util/configparser.y" /* yacc.c:1646 */ + case 170: +#line 374 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2292,11 +2306,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2296 "util/configparser.c" /* yacc.c:1646 */ +#line 2310 "util/configparser.c" /* yacc.c:1646 */ break; - case 169: -#line 381 "./util/configparser.y" /* yacc.c:1646 */ + case 171: +#line 383 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2304,11 +2318,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2308 "util/configparser.c" /* yacc.c:1646 */ +#line 2322 "util/configparser.c" /* yacc.c:1646 */ break; - case 170: -#line 390 "./util/configparser.y" /* yacc.c:1646 */ + case 172: +#line 392 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2316,11 +2330,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2320 "util/configparser.c" /* yacc.c:1646 */ +#line 2334 "util/configparser.c" /* yacc.c:1646 */ break; - case 171: -#line 399 "./util/configparser.y" /* yacc.c:1646 */ + case 173: +#line 401 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2328,11 +2342,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2332 "util/configparser.c" /* yacc.c:1646 */ +#line 2346 "util/configparser.c" /* yacc.c:1646 */ break; - case 172: -#line 408 "./util/configparser.y" /* yacc.c:1646 */ + case 174: +#line 410 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2340,11 +2354,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2344 "util/configparser.c" /* yacc.c:1646 */ +#line 2358 "util/configparser.c" /* yacc.c:1646 */ break; - case 173: -#line 417 "./util/configparser.y" /* yacc.c:1646 */ + case 175: +#line 419 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2352,11 +2366,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2356 "util/configparser.c" /* yacc.c:1646 */ +#line 2370 "util/configparser.c" /* yacc.c:1646 */ break; - case 174: -#line 426 "./util/configparser.y" /* yacc.c:1646 */ + case 176: +#line 428 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2364,11 +2378,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2368 "util/configparser.c" /* yacc.c:1646 */ +#line 2382 "util/configparser.c" /* yacc.c:1646 */ break; - case 175: -#line 435 "./util/configparser.y" /* yacc.c:1646 */ + case 177: +#line 437 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2376,31 +2390,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2380 "util/configparser.c" /* yacc.c:1646 */ +#line 2394 "util/configparser.c" /* yacc.c:1646 */ break; - case 176: -#line 444 "./util/configparser.y" /* yacc.c:1646 */ + case 178: +#line 446 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } -#line 2390 "util/configparser.c" /* yacc.c:1646 */ +#line 2404 "util/configparser.c" /* yacc.c:1646 */ break; - case 177: -#line 451 "./util/configparser.y" /* yacc.c:1646 */ + case 179: +#line 453 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } -#line 2400 "util/configparser.c" /* yacc.c:1646 */ +#line 2414 "util/configparser.c" /* yacc.c:1646 */ break; - case 178: -#line 458 "./util/configparser.y" /* yacc.c:1646 */ + case 180: +#line 460 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2408,11 +2422,11 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2412 "util/configparser.c" /* yacc.c:1646 */ +#line 2426 "util/configparser.c" /* yacc.c:1646 */ break; - case 179: -#line 467 "./util/configparser.y" /* yacc.c:1646 */ + case 181: +#line 469 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2420,11 +2434,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2424 "util/configparser.c" /* yacc.c:1646 */ +#line 2438 "util/configparser.c" /* yacc.c:1646 */ break; - case 180: -#line 476 "./util/configparser.y" /* yacc.c:1646 */ + case 182: +#line 478 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2437,11 +2451,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2441 "util/configparser.c" /* yacc.c:1646 */ +#line 2455 "util/configparser.c" /* yacc.c:1646 */ break; - case 181: -#line 490 "./util/configparser.y" /* yacc.c:1646 */ + case 183: +#line 492 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2449,11 +2463,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2453 "util/configparser.c" /* yacc.c:1646 */ +#line 2467 "util/configparser.c" /* yacc.c:1646 */ break; - case 182: -#line 499 "./util/configparser.y" /* yacc.c:1646 */ + case 184: +#line 501 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2461,145 +2475,145 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2465 "util/configparser.c" /* yacc.c:1646 */ +#line 2479 "util/configparser.c" /* yacc.c:1646 */ break; - case 183: -#line 508 "./util/configparser.y" /* yacc.c:1646 */ + case 185: +#line 510 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 2475 "util/configparser.c" /* yacc.c:1646 */ +#line 2489 "util/configparser.c" /* yacc.c:1646 */ break; - case 184: -#line 515 "./util/configparser.y" /* yacc.c:1646 */ + case 186: +#line 517 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 2485 "util/configparser.c" /* yacc.c:1646 */ +#line 2499 "util/configparser.c" /* yacc.c:1646 */ break; - case 185: -#line 522 "./util/configparser.y" /* yacc.c:1646 */ + case 187: +#line 524 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); cfg_parser->cfg->directory = (yyvsp[0].str); } -#line 2495 "util/configparser.c" /* yacc.c:1646 */ +#line 2509 "util/configparser.c" /* yacc.c:1646 */ break; - case 186: -#line 529 "./util/configparser.y" /* yacc.c:1646 */ + case 188: +#line 531 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 2506 "util/configparser.c" /* yacc.c:1646 */ +#line 2520 "util/configparser.c" /* yacc.c:1646 */ break; - case 187: -#line 537 "./util/configparser.y" /* yacc.c:1646 */ + case 189: +#line 539 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 2516 "util/configparser.c" /* yacc.c:1646 */ +#line 2530 "util/configparser.c" /* yacc.c:1646 */ break; - case 188: -#line 544 "./util/configparser.y" /* yacc.c:1646 */ + case 190: +#line 546 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2526 "util/configparser.c" /* yacc.c:1646 */ +#line 2540 "util/configparser.c" /* yacc.c:1646 */ break; - case 189: -#line 551 "./util/configparser.y" /* yacc.c:1646 */ + case 191: +#line 553 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dlv_anchor_file); cfg_parser->cfg->dlv_anchor_file = (yyvsp[0].str); } -#line 2536 "util/configparser.c" /* yacc.c:1646 */ +#line 2550 "util/configparser.c" /* yacc.c:1646 */ break; - case 190: -#line 558 "./util/configparser.y" /* yacc.c:1646 */ + case 192: +#line 560 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2546 "util/configparser.c" /* yacc.c:1646 */ +#line 2560 "util/configparser.c" /* yacc.c:1646 */ break; - case 191: -#line 565 "./util/configparser.y" /* yacc.c:1646 */ + case 193: +#line 567 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2557 "util/configparser.c" /* yacc.c:1646 */ +#line 2571 "util/configparser.c" /* yacc.c:1646 */ break; - case 192: -#line 573 "./util/configparser.y" /* yacc.c:1646 */ + case 194: +#line 575 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2568 "util/configparser.c" /* yacc.c:1646 */ +#line 2582 "util/configparser.c" /* yacc.c:1646 */ break; - case 193: -#line 581 "./util/configparser.y" /* yacc.c:1646 */ + case 195: +#line 583 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2579 "util/configparser.c" /* yacc.c:1646 */ +#line 2593 "util/configparser.c" /* yacc.c:1646 */ break; - case 194: -#line 589 "./util/configparser.y" /* yacc.c:1646 */ + case 196: +#line 591 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2589 "util/configparser.c" /* yacc.c:1646 */ +#line 2603 "util/configparser.c" /* yacc.c:1646 */ break; - case 195: -#line 596 "./util/configparser.y" /* yacc.c:1646 */ + case 197: +#line 598 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2599 "util/configparser.c" /* yacc.c:1646 */ +#line 2613 "util/configparser.c" /* yacc.c:1646 */ break; - case 196: -#line 603 "./util/configparser.y" /* yacc.c:1646 */ + case 198: +#line 605 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2607,11 +2621,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2611 "util/configparser.c" /* yacc.c:1646 */ +#line 2625 "util/configparser.c" /* yacc.c:1646 */ break; - case 197: -#line 612 "./util/configparser.y" /* yacc.c:1646 */ + case 199: +#line 614 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2619,53 +2633,53 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2623 "util/configparser.c" /* yacc.c:1646 */ +#line 2637 "util/configparser.c" /* yacc.c:1646 */ break; - case 198: -#line 621 "./util/configparser.y" /* yacc.c:1646 */ + case 200: +#line 623 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 2633 "util/configparser.c" /* yacc.c:1646 */ +#line 2647 "util/configparser.c" /* yacc.c:1646 */ break; - case 199: -#line 628 "./util/configparser.y" /* yacc.c:1646 */ + case 201: +#line 630 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 2643 "util/configparser.c" /* yacc.c:1646 */ +#line 2657 "util/configparser.c" /* yacc.c:1646 */ break; - case 200: -#line 635 "./util/configparser.y" /* yacc.c:1646 */ + case 202: +#line 637 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 2654 "util/configparser.c" /* yacc.c:1646 */ +#line 2668 "util/configparser.c" /* yacc.c:1646 */ break; - case 201: -#line 643 "./util/configparser.y" /* yacc.c:1646 */ + case 203: +#line 645 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 2665 "util/configparser.c" /* yacc.c:1646 */ +#line 2679 "util/configparser.c" /* yacc.c:1646 */ break; - case 202: -#line 651 "./util/configparser.y" /* yacc.c:1646 */ + case 204: +#line 653 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2674,11 +2688,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2678 "util/configparser.c" /* yacc.c:1646 */ +#line 2692 "util/configparser.c" /* yacc.c:1646 */ break; - case 203: -#line 661 "./util/configparser.y" /* yacc.c:1646 */ + case 205: +#line 663 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2687,11 +2701,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2691 "util/configparser.c" /* yacc.c:1646 */ +#line 2705 "util/configparser.c" /* yacc.c:1646 */ break; - case 204: -#line 671 "./util/configparser.y" /* yacc.c:1646 */ + case 206: +#line 673 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2700,11 +2714,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2704 "util/configparser.c" /* yacc.c:1646 */ +#line 2718 "util/configparser.c" /* yacc.c:1646 */ break; - case 205: -#line 681 "./util/configparser.y" /* yacc.c:1646 */ + case 207: +#line 683 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2716,11 +2730,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2720 "util/configparser.c" /* yacc.c:1646 */ +#line 2734 "util/configparser.c" /* yacc.c:1646 */ break; - case 206: -#line 694 "./util/configparser.y" /* yacc.c:1646 */ + case 208: +#line 696 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2730,22 +2744,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2734 "util/configparser.c" /* yacc.c:1646 */ +#line 2748 "util/configparser.c" /* yacc.c:1646 */ break; - case 207: -#line 705 "./util/configparser.y" /* yacc.c:1646 */ + case 209: +#line 707 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 2745 "util/configparser.c" /* yacc.c:1646 */ +#line 2759 "util/configparser.c" /* yacc.c:1646 */ break; - case 208: -#line 713 "./util/configparser.y" /* yacc.c:1646 */ + case 210: +#line 715 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2757,11 +2771,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 2761 "util/configparser.c" /* yacc.c:1646 */ +#line 2775 "util/configparser.c" /* yacc.c:1646 */ break; - case 209: -#line 726 "./util/configparser.y" /* yacc.c:1646 */ + case 211: +#line 728 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2769,11 +2783,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2773 "util/configparser.c" /* yacc.c:1646 */ +#line 2787 "util/configparser.c" /* yacc.c:1646 */ break; - case 210: -#line 735 "./util/configparser.y" /* yacc.c:1646 */ + case 212: +#line 737 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2781,11 +2795,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2785 "util/configparser.c" /* yacc.c:1646 */ +#line 2799 "util/configparser.c" /* yacc.c:1646 */ break; - case 211: -#line 744 "./util/configparser.y" /* yacc.c:1646 */ + case 213: +#line 746 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2793,11 +2807,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2797 "util/configparser.c" /* yacc.c:1646 */ +#line 2811 "util/configparser.c" /* yacc.c:1646 */ break; - case 212: -#line 753 "./util/configparser.y" /* yacc.c:1646 */ + case 214: +#line 755 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2806,11 +2820,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2810 "util/configparser.c" /* yacc.c:1646 */ +#line 2824 "util/configparser.c" /* yacc.c:1646 */ break; - case 213: -#line 763 "./util/configparser.y" /* yacc.c:1646 */ + case 215: +#line 765 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2819,22 +2833,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2823 "util/configparser.c" /* yacc.c:1646 */ +#line 2837 "util/configparser.c" /* yacc.c:1646 */ break; - case 214: -#line 773 "./util/configparser.y" /* yacc.c:1646 */ + case 216: +#line 775 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 2834 "util/configparser.c" /* yacc.c:1646 */ +#line 2848 "util/configparser.c" /* yacc.c:1646 */ break; - case 215: -#line 781 "./util/configparser.y" /* yacc.c:1646 */ + case 217: +#line 783 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2846,11 +2860,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 2850 "util/configparser.c" /* yacc.c:1646 */ +#line 2864 "util/configparser.c" /* yacc.c:1646 */ break; - case 216: -#line 794 "./util/configparser.y" /* yacc.c:1646 */ + case 218: +#line 796 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2858,22 +2872,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2862 "util/configparser.c" /* yacc.c:1646 */ +#line 2876 "util/configparser.c" /* yacc.c:1646 */ break; - case 217: -#line 803 "./util/configparser.y" /* yacc.c:1646 */ + case 219: +#line 805 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2873 "util/configparser.c" /* yacc.c:1646 */ +#line 2887 "util/configparser.c" /* yacc.c:1646 */ break; - case 218: -#line 811 "./util/configparser.y" /* yacc.c:1646 */ + case 220: +#line 813 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2881,22 +2895,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2885 "util/configparser.c" /* yacc.c:1646 */ +#line 2899 "util/configparser.c" /* yacc.c:1646 */ break; - case 219: -#line 820 "./util/configparser.y" /* yacc.c:1646 */ + case 221: +#line 822 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2896 "util/configparser.c" /* yacc.c:1646 */ +#line 2910 "util/configparser.c" /* yacc.c:1646 */ break; - case 220: -#line 828 "./util/configparser.y" /* yacc.c:1646 */ + case 222: +#line 830 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2908,11 +2922,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 2912 "util/configparser.c" /* yacc.c:1646 */ +#line 2926 "util/configparser.c" /* yacc.c:1646 */ break; - case 221: -#line 841 "./util/configparser.y" /* yacc.c:1646 */ + case 223: +#line 843 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2920,21 +2934,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2924 "util/configparser.c" /* yacc.c:1646 */ +#line 2938 "util/configparser.c" /* yacc.c:1646 */ break; - case 222: -#line 850 "./util/configparser.y" /* yacc.c:1646 */ + case 224: +#line 852 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } -#line 2934 "util/configparser.c" /* yacc.c:1646 */ +#line 2948 "util/configparser.c" /* yacc.c:1646 */ break; - case 223: -#line 857 "./util/configparser.y" /* yacc.c:1646 */ + case 225: +#line 859 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2943,11 +2957,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2947 "util/configparser.c" /* yacc.c:1646 */ +#line 2961 "util/configparser.c" /* yacc.c:1646 */ break; - case 224: -#line 867 "./util/configparser.y" /* yacc.c:1646 */ + case 226: +#line 869 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2956,11 +2970,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2960 "util/configparser.c" /* yacc.c:1646 */ +#line 2974 "util/configparser.c" /* yacc.c:1646 */ break; - case 225: -#line 877 "./util/configparser.y" /* yacc.c:1646 */ + case 227: +#line 879 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2969,11 +2983,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2973 "util/configparser.c" /* yacc.c:1646 */ +#line 2987 "util/configparser.c" /* yacc.c:1646 */ break; - case 226: -#line 887 "./util/configparser.y" /* yacc.c:1646 */ + case 228: +#line 889 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2982,11 +2996,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2986 "util/configparser.c" /* yacc.c:1646 */ +#line 3000 "util/configparser.c" /* yacc.c:1646 */ break; - case 227: -#line 897 "./util/configparser.y" /* yacc.c:1646 */ + case 229: +#line 899 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2995,11 +3009,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2999 "util/configparser.c" /* yacc.c:1646 */ +#line 3013 "util/configparser.c" /* yacc.c:1646 */ break; - case 228: -#line 907 "./util/configparser.y" /* yacc.c:1646 */ + case 230: +#line 909 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3008,11 +3022,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3012 "util/configparser.c" /* yacc.c:1646 */ +#line 3026 "util/configparser.c" /* yacc.c:1646 */ break; - case 229: -#line 917 "./util/configparser.y" /* yacc.c:1646 */ + case 231: +#line 919 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3021,11 +3035,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3025 "util/configparser.c" /* yacc.c:1646 */ +#line 3039 "util/configparser.c" /* yacc.c:1646 */ break; - case 230: -#line 927 "./util/configparser.y" /* yacc.c:1646 */ + case 232: +#line 929 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3034,41 +3048,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3038 "util/configparser.c" /* yacc.c:1646 */ +#line 3052 "util/configparser.c" /* yacc.c:1646 */ break; - case 231: -#line 937 "./util/configparser.y" /* yacc.c:1646 */ + case 233: +#line 939 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3048 "util/configparser.c" /* yacc.c:1646 */ +#line 3062 "util/configparser.c" /* yacc.c:1646 */ break; - case 232: -#line 944 "./util/configparser.y" /* yacc.c:1646 */ + case 234: +#line 946 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3058 "util/configparser.c" /* yacc.c:1646 */ +#line 3072 "util/configparser.c" /* yacc.c:1646 */ break; - case 233: -#line 951 "./util/configparser.y" /* yacc.c:1646 */ + case 235: +#line 953 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3068 "util/configparser.c" /* yacc.c:1646 */ +#line 3082 "util/configparser.c" /* yacc.c:1646 */ break; - case 234: -#line 958 "./util/configparser.y" /* yacc.c:1646 */ + case 236: +#line 960 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3076,11 +3090,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3080 "util/configparser.c" /* yacc.c:1646 */ +#line 3094 "util/configparser.c" /* yacc.c:1646 */ break; - case 235: -#line 967 "./util/configparser.y" /* yacc.c:1646 */ + case 237: +#line 969 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3088,11 +3102,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3092 "util/configparser.c" /* yacc.c:1646 */ +#line 3106 "util/configparser.c" /* yacc.c:1646 */ break; - case 236: -#line 976 "./util/configparser.y" /* yacc.c:1646 */ + case 238: +#line 978 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3100,21 +3114,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3104 "util/configparser.c" /* yacc.c:1646 */ +#line 3118 "util/configparser.c" /* yacc.c:1646 */ break; - case 237: -#line 985 "./util/configparser.y" /* yacc.c:1646 */ + case 239: +#line 987 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3114 "util/configparser.c" /* yacc.c:1646 */ +#line 3128 "util/configparser.c" /* yacc.c:1646 */ break; - case 238: -#line 992 "./util/configparser.y" /* yacc.c:1646 */ + case 240: +#line 994 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3123,11 +3137,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3127 "util/configparser.c" /* yacc.c:1646 */ +#line 3141 "util/configparser.c" /* yacc.c:1646 */ break; - case 239: -#line 1002 "./util/configparser.y" /* yacc.c:1646 */ + case 241: +#line 1004 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && @@ -3143,21 +3157,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 3147 "util/configparser.c" /* yacc.c:1646 */ +#line 3161 "util/configparser.c" /* yacc.c:1646 */ break; - case 240: -#line 1019 "./util/configparser.y" /* yacc.c:1646 */ + case 242: +#line 1021 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 3157 "util/configparser.c" /* yacc.c:1646 */ +#line 3171 "util/configparser.c" /* yacc.c:1646 */ break; - case 241: -#line 1026 "./util/configparser.y" /* yacc.c:1646 */ + case 243: +#line 1028 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -3174,11 +3188,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3178 "util/configparser.c" /* yacc.c:1646 */ +#line 3192 "util/configparser.c" /* yacc.c:1646 */ break; - case 242: -#line 1044 "./util/configparser.y" /* yacc.c:1646 */ + case 244: +#line 1046 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -3190,11 +3204,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3194 "util/configparser.c" /* yacc.c:1646 */ +#line 3208 "util/configparser.c" /* yacc.c:1646 */ break; - case 243: -#line 1057 "./util/configparser.y" /* yacc.c:1646 */ + case 245: +#line 1059 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -3206,11 +3220,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3210 "util/configparser.c" /* yacc.c:1646 */ +#line 3224 "util/configparser.c" /* yacc.c:1646 */ break; - case 244: -#line 1070 "./util/configparser.y" /* yacc.c:1646 */ + case 246: +#line 1072 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3218,11 +3232,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3222 "util/configparser.c" /* yacc.c:1646 */ +#line 3236 "util/configparser.c" /* yacc.c:1646 */ break; - case 245: -#line 1079 "./util/configparser.y" /* yacc.c:1646 */ + case 247: +#line 1081 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3230,11 +3244,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3234 "util/configparser.c" /* yacc.c:1646 */ +#line 3248 "util/configparser.c" /* yacc.c:1646 */ break; - case 246: -#line 1088 "./util/configparser.y" /* yacc.c:1646 */ + case 248: +#line 1090 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3242,11 +3256,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3246 "util/configparser.c" /* yacc.c:1646 */ +#line 3260 "util/configparser.c" /* yacc.c:1646 */ break; - case 247: -#line 1097 "./util/configparser.y" /* yacc.c:1646 */ + case 249: +#line 1099 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3254,11 +3268,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3258 "util/configparser.c" /* yacc.c:1646 */ +#line 3272 "util/configparser.c" /* yacc.c:1646 */ break; - case 248: -#line 1106 "./util/configparser.y" /* yacc.c:1646 */ + case 250: +#line 1108 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3267,11 +3281,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3271 "util/configparser.c" /* yacc.c:1646 */ +#line 3285 "util/configparser.c" /* yacc.c:1646 */ break; - case 249: -#line 1116 "./util/configparser.y" /* yacc.c:1646 */ + case 251: +#line 1118 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3280,11 +3294,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3284 "util/configparser.c" /* yacc.c:1646 */ +#line 3298 "util/configparser.c" /* yacc.c:1646 */ break; - case 250: -#line 1126 "./util/configparser.y" /* yacc.c:1646 */ + case 252: +#line 1128 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3292,11 +3306,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3296 "util/configparser.c" /* yacc.c:1646 */ +#line 3310 "util/configparser.c" /* yacc.c:1646 */ break; - case 251: -#line 1135 "./util/configparser.y" /* yacc.c:1646 */ + case 253: +#line 1137 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3304,21 +3318,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3308 "util/configparser.c" /* yacc.c:1646 */ +#line 3322 "util/configparser.c" /* yacc.c:1646 */ break; - case 252: -#line 1144 "./util/configparser.y" /* yacc.c:1646 */ + case 254: +#line 1146 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } -#line 3318 "util/configparser.c" /* yacc.c:1646 */ +#line 3332 "util/configparser.c" /* yacc.c:1646 */ break; - case 253: -#line 1151 "./util/configparser.y" /* yacc.c:1646 */ + case 255: +#line 1153 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3326,11 +3340,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3330 "util/configparser.c" /* yacc.c:1646 */ +#line 3344 "util/configparser.c" /* yacc.c:1646 */ break; - case 254: -#line 1160 "./util/configparser.y" /* yacc.c:1646 */ + case 256: +#line 1162 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3338,11 +3352,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3342 "util/configparser.c" /* yacc.c:1646 */ +#line 3356 "util/configparser.c" /* yacc.c:1646 */ break; - case 255: -#line 1169 "./util/configparser.y" /* yacc.c:1646 */ + case 257: +#line 1171 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3350,11 +3364,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3354 "util/configparser.c" /* yacc.c:1646 */ +#line 3368 "util/configparser.c" /* yacc.c:1646 */ break; - case 256: -#line 1178 "./util/configparser.y" /* yacc.c:1646 */ + case 258: +#line 1180 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3363,22 +3377,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3367 "util/configparser.c" /* yacc.c:1646 */ +#line 3381 "util/configparser.c" /* yacc.c:1646 */ break; - case 257: -#line 1187 "./util/configparser.y" /* yacc.c:1646 */ + case 259: +#line 1189 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3378 "util/configparser.c" /* yacc.c:1646 */ +#line 3392 "util/configparser.c" /* yacc.c:1646 */ break; - case 258: -#line 1195 "./util/configparser.y" /* yacc.c:1646 */ + case 260: +#line 1197 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3390,22 +3404,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3394 "util/configparser.c" /* yacc.c:1646 */ +#line 3408 "util/configparser.c" /* yacc.c:1646 */ break; - case 259: -#line 1208 "./util/configparser.y" /* yacc.c:1646 */ + case 261: +#line 1210 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3405 "util/configparser.c" /* yacc.c:1646 */ +#line 3419 "util/configparser.c" /* yacc.c:1646 */ break; - case 260: -#line 1216 "./util/configparser.y" /* yacc.c:1646 */ + case 262: +#line 1218 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -3428,21 +3442,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 3432 "util/configparser.c" /* yacc.c:1646 */ +#line 3446 "util/configparser.c" /* yacc.c:1646 */ break; - case 261: -#line 1240 "./util/configparser.y" /* yacc.c:1646 */ + case 263: +#line 1242 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } -#line 3442 "util/configparser.c" /* yacc.c:1646 */ +#line 3456 "util/configparser.c" /* yacc.c:1646 */ break; - case 262: -#line 1247 "./util/configparser.y" /* yacc.c:1646 */ + case 264: +#line 1249 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -3456,11 +3470,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 3460 "util/configparser.c" /* yacc.c:1646 */ +#line 3474 "util/configparser.c" /* yacc.c:1646 */ break; - case 263: -#line 1262 "./util/configparser.y" /* yacc.c:1646 */ + case 265: +#line 1264 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3469,11 +3483,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3473 "util/configparser.c" /* yacc.c:1646 */ +#line 3487 "util/configparser.c" /* yacc.c:1646 */ break; - case 264: -#line 1272 "./util/configparser.y" /* yacc.c:1646 */ + case 266: +#line 1274 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3482,31 +3496,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3486 "util/configparser.c" /* yacc.c:1646 */ +#line 3500 "util/configparser.c" /* yacc.c:1646 */ break; - case 265: -#line 1282 "./util/configparser.y" /* yacc.c:1646 */ + case 267: +#line 1284 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3496 "util/configparser.c" /* yacc.c:1646 */ +#line 3510 "util/configparser.c" /* yacc.c:1646 */ break; - case 266: -#line 1289 "./util/configparser.y" /* yacc.c:1646 */ + case 268: +#line 1291 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 3506 "util/configparser.c" /* yacc.c:1646 */ +#line 3520 "util/configparser.c" /* yacc.c:1646 */ break; - case 267: -#line 1296 "./util/configparser.y" /* yacc.c:1646 */ + case 269: +#line 1298 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3514,11 +3528,11 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3518 "util/configparser.c" /* yacc.c:1646 */ +#line 3532 "util/configparser.c" /* yacc.c:1646 */ break; - case 268: -#line 1305 "./util/configparser.y" /* yacc.c:1646 */ + case 270: +#line 1307 "./util/configparser.y" /* yacc.c:1646 */ { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -3531,11 +3545,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3535 "util/configparser.c" /* yacc.c:1646 */ +#line 3549 "util/configparser.c" /* yacc.c:1646 */ break; - case 269: -#line 1319 "./util/configparser.y" /* yacc.c:1646 */ + case 271: +#line 1321 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -3553,11 +3567,11 @@ yyreduce: } } } -#line 3557 "util/configparser.c" /* yacc.c:1646 */ +#line 3571 "util/configparser.c" /* yacc.c:1646 */ break; - case 270: -#line 1338 "./util/configparser.y" /* yacc.c:1646 */ + case 272: +#line 1340 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -3575,11 +3589,41 @@ yyreduce: } } } -#line 3579 "util/configparser.c" /* yacc.c:1646 */ +#line 3593 "util/configparser.c" /* yacc.c:1646 */ break; - case 271: -#line 1357 "./util/configparser.y" /* yacc.c:1646 */ + case 273: +#line 1359 "./util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); + if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, + (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { + yyerror("out of memory"); + free((yyvsp[-2].str)); + free((yyvsp[-1].str)); + free((yyvsp[0].str)); + } + } +#line 3608 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 274: +#line 1371 "./util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); + if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, + (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { + yyerror("out of memory"); + free((yyvsp[-2].str)); + free((yyvsp[-1].str)); + free((yyvsp[0].str)); + } + } +#line 3623 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 275: +#line 1383 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -3590,11 +3634,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 3594 "util/configparser.c" /* yacc.c:1646 */ +#line 3638 "util/configparser.c" /* yacc.c:1646 */ break; - case 272: -#line 1369 "./util/configparser.y" /* yacc.c:1646 */ + case 276: +#line 1395 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3602,22 +3646,22 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3606 "util/configparser.c" /* yacc.c:1646 */ +#line 3650 "util/configparser.c" /* yacc.c:1646 */ break; - case 273: -#line 1378 "./util/configparser.y" /* yacc.c:1646 */ + case 277: +#line 1404 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3617 "util/configparser.c" /* yacc.c:1646 */ +#line 3661 "util/configparser.c" /* yacc.c:1646 */ break; - case 274: -#line 1386 "./util/configparser.y" /* yacc.c:1646 */ + case 278: +#line 1412 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3629,11 +3673,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3633 "util/configparser.c" /* yacc.c:1646 */ +#line 3677 "util/configparser.c" /* yacc.c:1646 */ break; - case 275: -#line 1399 "./util/configparser.y" /* yacc.c:1646 */ + case 279: +#line 1425 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -3645,11 +3689,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 3649 "util/configparser.c" /* yacc.c:1646 */ +#line 3693 "util/configparser.c" /* yacc.c:1646 */ break; - case 276: -#line 1412 "./util/configparser.y" /* yacc.c:1646 */ + case 280: +#line 1438 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -3661,11 +3705,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 3665 "util/configparser.c" /* yacc.c:1646 */ +#line 3709 "util/configparser.c" /* yacc.c:1646 */ break; - case 277: -#line 1425 "./util/configparser.y" /* yacc.c:1646 */ + case 281: +#line 1451 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3673,11 +3717,11 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3677 "util/configparser.c" /* yacc.c:1646 */ +#line 3721 "util/configparser.c" /* yacc.c:1646 */ break; - case 278: -#line 1434 "./util/configparser.y" /* yacc.c:1646 */ + case 282: +#line 1460 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3686,11 +3730,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3690 "util/configparser.c" /* yacc.c:1646 */ +#line 3734 "util/configparser.c" /* yacc.c:1646 */ break; - case 279: -#line 1444 "./util/configparser.y" /* yacc.c:1646 */ + case 283: +#line 1470 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -3699,31 +3743,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 3703 "util/configparser.c" /* yacc.c:1646 */ +#line 3747 "util/configparser.c" /* yacc.c:1646 */ break; - case 280: -#line 1454 "./util/configparser.y" /* yacc.c:1646 */ + case 284: +#line 1480 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3713 "util/configparser.c" /* yacc.c:1646 */ +#line 3757 "util/configparser.c" /* yacc.c:1646 */ break; - case 281: -#line 1461 "./util/configparser.y" /* yacc.c:1646 */ + case 285: +#line 1487 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3723 "util/configparser.c" /* yacc.c:1646 */ +#line 3767 "util/configparser.c" /* yacc.c:1646 */ break; - case 282: -#line 1468 "./util/configparser.y" /* yacc.c:1646 */ + case 286: +#line 1494 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3731,11 +3775,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3735 "util/configparser.c" /* yacc.c:1646 */ +#line 3779 "util/configparser.c" /* yacc.c:1646 */ break; - case 283: -#line 1477 "./util/configparser.y" /* yacc.c:1646 */ + case 287: +#line 1503 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3744,11 +3788,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3748 "util/configparser.c" /* yacc.c:1646 */ +#line 3792 "util/configparser.c" /* yacc.c:1646 */ break; - case 284: -#line 1487 "./util/configparser.y" /* yacc.c:1646 */ + case 288: +#line 1513 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -3757,31 +3801,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 3761 "util/configparser.c" /* yacc.c:1646 */ +#line 3805 "util/configparser.c" /* yacc.c:1646 */ break; - case 285: -#line 1497 "./util/configparser.y" /* yacc.c:1646 */ + case 289: +#line 1523 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3771 "util/configparser.c" /* yacc.c:1646 */ +#line 3815 "util/configparser.c" /* yacc.c:1646 */ break; - case 286: -#line 1504 "./util/configparser.y" /* yacc.c:1646 */ + case 290: +#line 1530 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3781 "util/configparser.c" /* yacc.c:1646 */ +#line 3825 "util/configparser.c" /* yacc.c:1646 */ break; - case 287: -#line 1511 "./util/configparser.y" /* yacc.c:1646 */ + case 291: +#line 1537 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3789,19 +3833,19 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3793 "util/configparser.c" /* yacc.c:1646 */ +#line 3837 "util/configparser.c" /* yacc.c:1646 */ break; - case 288: -#line 1520 "./util/configparser.y" /* yacc.c:1646 */ + case 292: +#line 1546 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(remote-control:)\n")); } -#line 3801 "util/configparser.c" /* yacc.c:1646 */ +#line 3845 "util/configparser.c" /* yacc.c:1646 */ break; - case 299: -#line 1531 "./util/configparser.y" /* yacc.c:1646 */ + case 303: +#line 1557 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3810,11 +3854,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3814 "util/configparser.c" /* yacc.c:1646 */ +#line 3858 "util/configparser.c" /* yacc.c:1646 */ break; - case 300: -#line 1541 "./util/configparser.y" /* yacc.c:1646 */ + case 304: +#line 1567 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3822,21 +3866,21 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3826 "util/configparser.c" /* yacc.c:1646 */ +#line 3870 "util/configparser.c" /* yacc.c:1646 */ break; - case 301: -#line 1550 "./util/configparser.y" /* yacc.c:1646 */ + case 305: +#line 1576 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3836 "util/configparser.c" /* yacc.c:1646 */ +#line 3880 "util/configparser.c" /* yacc.c:1646 */ break; - case 302: -#line 1557 "./util/configparser.y" /* yacc.c:1646 */ + case 306: +#line 1583 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3845,122 +3889,122 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3849 "util/configparser.c" /* yacc.c:1646 */ +#line 3893 "util/configparser.c" /* yacc.c:1646 */ break; - case 303: -#line 1567 "./util/configparser.y" /* yacc.c:1646 */ + case 307: +#line 1593 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } -#line 3859 "util/configparser.c" /* yacc.c:1646 */ +#line 3903 "util/configparser.c" /* yacc.c:1646 */ break; - case 304: -#line 1574 "./util/configparser.y" /* yacc.c:1646 */ + case 308: +#line 1600 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } -#line 3869 "util/configparser.c" /* yacc.c:1646 */ +#line 3913 "util/configparser.c" /* yacc.c:1646 */ break; - case 305: -#line 1581 "./util/configparser.y" /* yacc.c:1646 */ + case 309: +#line 1607 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } -#line 3879 "util/configparser.c" /* yacc.c:1646 */ +#line 3923 "util/configparser.c" /* yacc.c:1646 */ break; - case 306: -#line 1588 "./util/configparser.y" /* yacc.c:1646 */ + case 310: +#line 1614 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } -#line 3889 "util/configparser.c" /* yacc.c:1646 */ +#line 3933 "util/configparser.c" /* yacc.c:1646 */ break; - case 307: -#line 1595 "./util/configparser.y" /* yacc.c:1646 */ + case 311: +#line 1621 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnstap:)\n")); } -#line 3897 "util/configparser.c" /* yacc.c:1646 */ +#line 3941 "util/configparser.c" /* yacc.c:1646 */ break; - case 322: -#line 1612 "./util/configparser.y" /* yacc.c:1646 */ + case 326: +#line 1638 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); } -#line 3908 "util/configparser.c" /* yacc.c:1646 */ +#line 3952 "util/configparser.c" /* yacc.c:1646 */ break; - case 323: -#line 1620 "./util/configparser.y" /* yacc.c:1646 */ + case 327: +#line 1646 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } -#line 3918 "util/configparser.c" /* yacc.c:1646 */ +#line 3962 "util/configparser.c" /* yacc.c:1646 */ break; - case 324: -#line 1627 "./util/configparser.y" /* yacc.c:1646 */ + case 328: +#line 1653 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); } -#line 3929 "util/configparser.c" /* yacc.c:1646 */ +#line 3973 "util/configparser.c" /* yacc.c:1646 */ break; - case 325: -#line 1635 "./util/configparser.y" /* yacc.c:1646 */ + case 329: +#line 1661 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); } -#line 3940 "util/configparser.c" /* yacc.c:1646 */ +#line 3984 "util/configparser.c" /* yacc.c:1646 */ break; - case 326: -#line 1643 "./util/configparser.y" /* yacc.c:1646 */ + case 330: +#line 1669 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } -#line 3950 "util/configparser.c" /* yacc.c:1646 */ +#line 3994 "util/configparser.c" /* yacc.c:1646 */ break; - case 327: -#line 1650 "./util/configparser.y" /* yacc.c:1646 */ + case 331: +#line 1676 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } -#line 3960 "util/configparser.c" /* yacc.c:1646 */ +#line 4004 "util/configparser.c" /* yacc.c:1646 */ break; - case 328: -#line 1657 "./util/configparser.y" /* yacc.c:1646 */ + case 332: +#line 1683 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3968,11 +4012,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 3972 "util/configparser.c" /* yacc.c:1646 */ +#line 4016 "util/configparser.c" /* yacc.c:1646 */ break; - case 329: -#line 1666 "./util/configparser.y" /* yacc.c:1646 */ + case 333: +#line 1692 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3980,11 +4024,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 3984 "util/configparser.c" /* yacc.c:1646 */ +#line 4028 "util/configparser.c" /* yacc.c:1646 */ break; - case 330: -#line 1675 "./util/configparser.y" /* yacc.c:1646 */ + case 334: +#line 1701 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3992,11 +4036,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 3996 "util/configparser.c" /* yacc.c:1646 */ +#line 4040 "util/configparser.c" /* yacc.c:1646 */ break; - case 331: -#line 1684 "./util/configparser.y" /* yacc.c:1646 */ + case 335: +#line 1710 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4004,11 +4048,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4008 "util/configparser.c" /* yacc.c:1646 */ +#line 4052 "util/configparser.c" /* yacc.c:1646 */ break; - case 332: -#line 1693 "./util/configparser.y" /* yacc.c:1646 */ + case 336: +#line 1719 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4016,11 +4060,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4020 "util/configparser.c" /* yacc.c:1646 */ +#line 4064 "util/configparser.c" /* yacc.c:1646 */ break; - case 333: -#line 1702 "./util/configparser.y" /* yacc.c:1646 */ + case 337: +#line 1728 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4028,29 +4072,29 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4032 "util/configparser.c" /* yacc.c:1646 */ +#line 4076 "util/configparser.c" /* yacc.c:1646 */ break; - case 334: -#line 1711 "./util/configparser.y" /* yacc.c:1646 */ + case 338: +#line 1737 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(python:)\n")); } -#line 4040 "util/configparser.c" /* yacc.c:1646 */ +#line 4084 "util/configparser.c" /* yacc.c:1646 */ break; - case 338: -#line 1720 "./util/configparser.y" /* yacc.c:1646 */ + case 342: +#line 1746 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->python_script); cfg_parser->cfg->python_script = (yyvsp[0].str); } -#line 4050 "util/configparser.c" /* yacc.c:1646 */ +#line 4094 "util/configparser.c" /* yacc.c:1646 */ break; - case 339: -#line 1726 "./util/configparser.y" /* yacc.c:1646 */ + case 343: +#line 1752 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4059,11 +4103,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4063 "util/configparser.c" /* yacc.c:1646 */ +#line 4107 "util/configparser.c" /* yacc.c:1646 */ break; -#line 4067 "util/configparser.c" /* yacc.c:1646 */ +#line 4111 "util/configparser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4291,7 +4335,7 @@ yyreturn: #endif return yyresult; } -#line 1734 "./util/configparser.y" /* yacc.c:1906 */ +#line 1760 "./util/configparser.y" /* yacc.c:1906 */ /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 53512fa5a..4417869f1 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -213,7 +213,9 @@ extern int yydebug; VAR_DEFINE_TAG = 423, VAR_LOCAL_ZONE_TAG = 424, VAR_ACCESS_CONTROL_TAG = 425, - VAR_LOCAL_ZONE_OVERRIDE = 426 + VAR_LOCAL_ZONE_OVERRIDE = 426, + VAR_ACCESS_CONTROL_TAG_ACTION = 427, + VAR_ACCESS_CONTROL_TAG_DATA = 428 }; #endif /* Tokens. */ @@ -386,6 +388,8 @@ extern int yydebug; #define VAR_LOCAL_ZONE_TAG 424 #define VAR_ACCESS_CONTROL_TAG 425 #define VAR_LOCAL_ZONE_OVERRIDE 426 +#define VAR_ACCESS_CONTROL_TAG_ACTION 427 +#define VAR_ACCESS_CONTROL_TAG_DATA 428 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -396,7 +400,7 @@ union YYSTYPE char* str; -#line 400 "util/configparser.h" /* yacc.c:1909 */ +#line 404 "util/configparser.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 92e159be7..0283e38ff 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -127,6 +127,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_CAPS_WHITELIST VAR_CACHE_MAX_NEGATIVE_TTL VAR_PERMIT_SMALL_HOLDDOWN %token VAR_QNAME_MINIMISATION VAR_IP_FREEBIND VAR_DEFINE_TAG VAR_LOCAL_ZONE_TAG %token VAR_ACCESS_CONTROL_TAG VAR_LOCAL_ZONE_OVERRIDE +%token VAR_ACCESS_CONTROL_TAG_ACTION VAR_ACCESS_CONTROL_TAG_DATA %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -196,7 +197,8 @@ content_server: server_num_threads | server_verbosity | server_port | server_permit_small_holddown | server_qname_minimisation | server_ip_freebind | server_define_tag | server_local_zone_tag | server_disable_dnssec_lame_check | server_access_control_tag | - server_local_zone_override + server_local_zone_override | server_access_control_tag_action | + server_access_control_tag_data ; stubstart: VAR_STUB_ZONE { @@ -1353,6 +1355,30 @@ server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG } } ; +server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG + { + OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", $2, $3, $4)); + if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, + $2, $3, $4)) { + yyerror("out of memory"); + free($2); + free($3); + free($4); + } + } + ; +server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG + { + OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", $2, $3, $4)); + if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, + $2, $3, $4)) { + yyerror("out of memory"); + free($2); + free($3); + free($4); + } + } + ; server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG { OUTYY(("P(server_local_zone_override:%s %s %s)\n", $2, $3, $4));