From: Wouter Wijngaards Date: Wed, 11 Mar 2009 11:53:47 +0000 (+0000) Subject: Parser allows syslog on windows. X-Git-Tag: release-1.3.0~104 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=363a4712b25477e59291de4708382ae12fd0275b;p=thirdparty%2Funbound.git Parser allows syslog on windows. git-svn-id: file:///svn/unbound/trunk@1519 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/util/configparser.c b/util/configparser.c index 114c3ec1e..1f7789d02 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,279 +1,25 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Skeleton implementation for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by - simplifying the original so-called "semantic" parser. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -/* Identify Bison output. */ -#define YYBISON 1 - -/* Bison version. */ -#define YYBISON_VERSION "2.3" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 0 - -/* Using locations. */ -#define YYLSP_NEEDED 0 - - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - SPACE = 258, - LETTER = 259, - NEWLINE = 260, - COMMENT = 261, - COLON = 262, - ANY = 263, - ZONESTR = 264, - STRING = 265, - VAR_SERVER = 266, - VAR_VERBOSITY = 267, - VAR_NUM_THREADS = 268, - VAR_PORT = 269, - VAR_OUTGOING_RANGE = 270, - VAR_INTERFACE = 271, - VAR_DO_IP4 = 272, - VAR_DO_IP6 = 273, - VAR_DO_UDP = 274, - VAR_DO_TCP = 275, - VAR_CHROOT = 276, - VAR_USERNAME = 277, - VAR_DIRECTORY = 278, - VAR_LOGFILE = 279, - VAR_PIDFILE = 280, - VAR_MSG_CACHE_SIZE = 281, - VAR_MSG_CACHE_SLABS = 282, - VAR_NUM_QUERIES_PER_THREAD = 283, - VAR_RRSET_CACHE_SIZE = 284, - VAR_RRSET_CACHE_SLABS = 285, - VAR_OUTGOING_NUM_TCP = 286, - VAR_INFRA_HOST_TTL = 287, - VAR_INFRA_LAME_TTL = 288, - VAR_INFRA_CACHE_SLABS = 289, - VAR_INFRA_CACHE_NUMHOSTS = 290, - VAR_INFRA_CACHE_LAME_SIZE = 291, - VAR_NAME = 292, - VAR_STUB_ZONE = 293, - VAR_STUB_HOST = 294, - VAR_STUB_ADDR = 295, - VAR_TARGET_FETCH_POLICY = 296, - VAR_HARDEN_SHORT_BUFSIZE = 297, - VAR_HARDEN_LARGE_QUERIES = 298, - VAR_FORWARD_ZONE = 299, - VAR_FORWARD_HOST = 300, - VAR_FORWARD_ADDR = 301, - VAR_DO_NOT_QUERY_ADDRESS = 302, - VAR_HIDE_IDENTITY = 303, - VAR_HIDE_VERSION = 304, - VAR_IDENTITY = 305, - VAR_VERSION = 306, - VAR_HARDEN_GLUE = 307, - VAR_MODULE_CONF = 308, - VAR_TRUST_ANCHOR_FILE = 309, - VAR_TRUST_ANCHOR = 310, - VAR_VAL_OVERRIDE_DATE = 311, - VAR_BOGUS_TTL = 312, - VAR_VAL_CLEAN_ADDITIONAL = 313, - VAR_VAL_PERMISSIVE_MODE = 314, - VAR_INCOMING_NUM_TCP = 315, - VAR_MSG_BUFFER_SIZE = 316, - VAR_KEY_CACHE_SIZE = 317, - VAR_KEY_CACHE_SLABS = 318, - VAR_TRUSTED_KEYS_FILE = 319, - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320, - VAR_USE_SYSLOG = 321, - VAR_OUTGOING_INTERFACE = 322, - VAR_ROOT_HINTS = 323, - VAR_DO_NOT_QUERY_LOCALHOST = 324, - VAR_CACHE_MAX_TTL = 325, - VAR_HARDEN_DNNSEC_STRIPPED = 326, - VAR_ACCESS_CONTROL = 327, - VAR_LOCAL_ZONE = 328, - VAR_LOCAL_DATA = 329, - VAR_INTERFACE_AUTOMATIC = 330, - VAR_STATISTICS_INTERVAL = 331, - VAR_DO_DAEMONIZE = 332, - VAR_USE_CAPS_FOR_ID = 333, - VAR_STATISTICS_CUMULATIVE = 334, - VAR_OUTGOING_PORT_PERMIT = 335, - VAR_OUTGOING_PORT_AVOID = 336, - VAR_DLV_ANCHOR_FILE = 337, - VAR_DLV_ANCHOR = 338, - VAR_NEG_CACHE_SIZE = 339, - VAR_HARDEN_REFERRAL_PATH = 340, - VAR_PRIVATE_ADDRESS = 341, - VAR_PRIVATE_DOMAIN = 342, - VAR_REMOTE_CONTROL = 343, - VAR_CONTROL_ENABLE = 344, - VAR_CONTROL_INTERFACE = 345, - VAR_CONTROL_PORT = 346, - VAR_SERVER_KEY_FILE = 347, - VAR_SERVER_CERT_FILE = 348, - VAR_CONTROL_KEY_FILE = 349, - VAR_CONTROL_CERT_FILE = 350, - VAR_EXTENDED_STATISTICS = 351, - VAR_LOCAL_DATA_PTR = 352, - VAR_JOSTLE_TIMEOUT = 353, - VAR_STUB_PRIME = 354, - VAR_UNWANTED_REPLY_THRESHOLD = 355, - VAR_LOG_TIME_ASCII = 356 - }; +#ifndef lint +static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; #endif -/* Tokens. */ -#define SPACE 258 -#define LETTER 259 -#define NEWLINE 260 -#define COMMENT 261 -#define COLON 262 -#define ANY 263 -#define ZONESTR 264 -#define STRING 265 -#define VAR_SERVER 266 -#define VAR_VERBOSITY 267 -#define VAR_NUM_THREADS 268 -#define VAR_PORT 269 -#define VAR_OUTGOING_RANGE 270 -#define VAR_INTERFACE 271 -#define VAR_DO_IP4 272 -#define VAR_DO_IP6 273 -#define VAR_DO_UDP 274 -#define VAR_DO_TCP 275 -#define VAR_CHROOT 276 -#define VAR_USERNAME 277 -#define VAR_DIRECTORY 278 -#define VAR_LOGFILE 279 -#define VAR_PIDFILE 280 -#define VAR_MSG_CACHE_SIZE 281 -#define VAR_MSG_CACHE_SLABS 282 -#define VAR_NUM_QUERIES_PER_THREAD 283 -#define VAR_RRSET_CACHE_SIZE 284 -#define VAR_RRSET_CACHE_SLABS 285 -#define VAR_OUTGOING_NUM_TCP 286 -#define VAR_INFRA_HOST_TTL 287 -#define VAR_INFRA_LAME_TTL 288 -#define VAR_INFRA_CACHE_SLABS 289 -#define VAR_INFRA_CACHE_NUMHOSTS 290 -#define VAR_INFRA_CACHE_LAME_SIZE 291 -#define VAR_NAME 292 -#define VAR_STUB_ZONE 293 -#define VAR_STUB_HOST 294 -#define VAR_STUB_ADDR 295 -#define VAR_TARGET_FETCH_POLICY 296 -#define VAR_HARDEN_SHORT_BUFSIZE 297 -#define VAR_HARDEN_LARGE_QUERIES 298 -#define VAR_FORWARD_ZONE 299 -#define VAR_FORWARD_HOST 300 -#define VAR_FORWARD_ADDR 301 -#define VAR_DO_NOT_QUERY_ADDRESS 302 -#define VAR_HIDE_IDENTITY 303 -#define VAR_HIDE_VERSION 304 -#define VAR_IDENTITY 305 -#define VAR_VERSION 306 -#define VAR_HARDEN_GLUE 307 -#define VAR_MODULE_CONF 308 -#define VAR_TRUST_ANCHOR_FILE 309 -#define VAR_TRUST_ANCHOR 310 -#define VAR_VAL_OVERRIDE_DATE 311 -#define VAR_BOGUS_TTL 312 -#define VAR_VAL_CLEAN_ADDITIONAL 313 -#define VAR_VAL_PERMISSIVE_MODE 314 -#define VAR_INCOMING_NUM_TCP 315 -#define VAR_MSG_BUFFER_SIZE 316 -#define VAR_KEY_CACHE_SIZE 317 -#define VAR_KEY_CACHE_SLABS 318 -#define VAR_TRUSTED_KEYS_FILE 319 -#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 320 -#define VAR_USE_SYSLOG 321 -#define VAR_OUTGOING_INTERFACE 322 -#define VAR_ROOT_HINTS 323 -#define VAR_DO_NOT_QUERY_LOCALHOST 324 -#define VAR_CACHE_MAX_TTL 325 -#define VAR_HARDEN_DNNSEC_STRIPPED 326 -#define VAR_ACCESS_CONTROL 327 -#define VAR_LOCAL_ZONE 328 -#define VAR_LOCAL_DATA 329 -#define VAR_INTERFACE_AUTOMATIC 330 -#define VAR_STATISTICS_INTERVAL 331 -#define VAR_DO_DAEMONIZE 332 -#define VAR_USE_CAPS_FOR_ID 333 -#define VAR_STATISTICS_CUMULATIVE 334 -#define VAR_OUTGOING_PORT_PERMIT 335 -#define VAR_OUTGOING_PORT_AVOID 336 -#define VAR_DLV_ANCHOR_FILE 337 -#define VAR_DLV_ANCHOR 338 -#define VAR_NEG_CACHE_SIZE 339 -#define VAR_HARDEN_REFERRAL_PATH 340 -#define VAR_PRIVATE_ADDRESS 341 -#define VAR_PRIVATE_DOMAIN 342 -#define VAR_REMOTE_CONTROL 343 -#define VAR_CONTROL_ENABLE 344 -#define VAR_CONTROL_INTERFACE 345 -#define VAR_CONTROL_PORT 346 -#define VAR_SERVER_KEY_FILE 347 -#define VAR_SERVER_CERT_FILE 348 -#define VAR_CONTROL_KEY_FILE 349 -#define VAR_CONTROL_CERT_FILE 350 -#define VAR_EXTENDED_STATISTICS 351 -#define VAR_LOCAL_DATA_PTR 352 -#define VAR_JOSTLE_TIMEOUT 353 -#define VAR_STUB_PRIME 354 -#define VAR_UNWANTED_REPLY_THRESHOLD 355 -#define VAR_LOG_TIME_ASCII 356 +#include +#include +#define YYBYACC 1 +#define YYMAJOR 1 +#define YYMINOR 9 +#define YYPATCH 20070509 +#define YYEMPTY (-1) +#define yyclearin (yychar = YYEMPTY) +#define yyerrok (yyerrflag = 0) +#define YYRECOVERING (yyerrflag != 0) -/* Copy the first part of user declarations. */ -#line 38 "util/configparser.y" +extern int yyparse(void); +static int yygrowstack(void); +#define YYPREFIX "yy" +#line 39 "util/configparser.y" #include "config.h" #include @@ -298,1586 +44,817 @@ extern struct config_parser_state* cfg_parser; #define OUTYY(s) #endif - - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE #line 64 "util/configparser.y" -{ +typedef union { char* str; -} -/* Line 187 of yacc.c. */ -#line 329 "util/configparser.c" - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 -#endif - - - -/* Copy the second part of user declarations. */ - - -/* Line 216 of yacc.c. */ -#line 342 "util/configparser.c" - -#ifdef short -# undef short -#endif - -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; -#endif - -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; -#else -typedef short int yytype_int8; -#endif - -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; -#else -typedef unsigned short int yytype_uint16; -#endif - -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; -#else -typedef short int yytype_int16; -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned int -# endif -#endif - -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) - -#ifndef YY_ -# if YYENABLE_NLS -# if ENABLE_NLS -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) -# endif -# endif -# ifndef YY_ -# define YY_(msgid) msgid -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) -#else -# define YYUSE(e) /* empty */ -#endif - -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) -#else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int i) -#else -static int -YYID (i) - int i; -#endif -{ - return i; -} -#endif - -#if ! defined yyoverflow || YYERROR_VERBOSE - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# ifdef YYSTACK_USE_ALLOCA -# if YYSTACK_USE_ALLOCA -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# elif defined __BUILTIN_VA_ARG_INCR -# include /* INFRINGES ON USER NAME SPACE */ -# elif defined _AIX -# define YYSTACK_ALLOC __alloca -# elif defined _MSC_VER -# include /* INFRINGES ON USER NAME SPACE */ -# define alloca _alloca -# else -# define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 -# endif -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) -# ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - invoke alloca (N) if N exceeds 4096. Use a slightly smaller number - to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ -# endif -# else -# define YYSTACK_ALLOC YYMALLOC -# define YYSTACK_FREE YYFREE -# ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM -# endif -# if (defined __cplusplus && ! defined _STDLIB_H \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -void free (void *); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - - -#if (! defined yyoverflow \ - && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - yytype_int16 yyss; - YYSTYPE yyvs; - }; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) - -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) - -#endif - -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 2 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 182 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 102 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 103 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 195 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 286 - -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -#define YYUNDEFTOK 2 -#define YYMAXUTOK 356 - -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const yytype_uint8 yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 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, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101 -}; - -#if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 4, 7, 10, 13, 16, 19, 21, - 24, 25, 27, 29, 31, 33, 35, 37, 39, 41, - 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, - 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, - 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, - 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, - 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, - 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, - 163, 165, 167, 169, 171, 173, 175, 178, 179, 181, - 183, 185, 187, 189, 192, 193, 195, 197, 199, 202, - 205, 208, 211, 214, 217, 220, 223, 226, 229, 232, - 235, 238, 241, 244, 247, 250, 253, 256, 259, 262, - 265, 268, 271, 274, 277, 280, 283, 286, 289, 292, - 295, 298, 301, 304, 307, 310, 313, 316, 319, 322, - 325, 328, 331, 334, 337, 340, 343, 346, 349, 352, - 355, 358, 361, 364, 367, 370, 373, 376, 379, 383, - 386, 389, 392, 395, 398, 401, 404, 407, 410, 413, - 417, 420, 423, 426, 429, 432, 435, 438, 441, 444, - 446, 449, 450, 452, 454, 456, 458, 460, 462, 464, - 467, 470, 473, 476, 479, 482 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 103, 0, -1, -1, 103, 104, -1, 105, 106, -1, - 108, 109, -1, 111, 112, -1, 195, 196, -1, 11, - -1, 106, 107, -1, -1, 114, -1, 115, -1, 119, - -1, 122, -1, 128, -1, 129, -1, 130, -1, 131, - -1, 120, -1, 135, -1, 136, -1, 137, -1, 138, - -1, 139, -1, 151, -1, 152, -1, 153, -1, 155, - -1, 156, -1, 125, -1, 157, -1, 158, -1, 161, - -1, 159, -1, 160, -1, 162, -1, 163, -1, 164, - -1, 172, -1, 146, -1, 147, -1, 148, -1, 149, - -1, 165, -1, 175, -1, 143, -1, 145, -1, 176, - -1, 178, -1, 179, -1, 180, -1, 126, -1, 150, - -1, 182, -1, 183, -1, 144, -1, 181, -1, 133, - -1, 121, -1, 140, -1, 173, -1, 177, -1, 166, - -1, 174, -1, 185, -1, 186, -1, 127, -1, 116, - -1, 132, -1, 168, -1, 117, -1, 123, -1, 124, - -1, 141, -1, 142, -1, 184, -1, 167, -1, 169, - -1, 170, -1, 118, -1, 187, -1, 154, -1, 171, - -1, 134, -1, 38, -1, 109, 110, -1, -1, 188, - -1, 189, -1, 190, -1, 191, -1, 44, -1, 112, - 113, -1, -1, 192, -1, 193, -1, 194, -1, 13, - 10, -1, 12, 10, -1, 76, 10, -1, 79, 10, - -1, 96, 10, -1, 14, 10, -1, 16, 10, -1, - 67, 10, -1, 15, 10, -1, 80, 10, -1, 81, - 10, -1, 31, 10, -1, 60, 10, -1, 75, 10, - -1, 17, 10, -1, 18, 10, -1, 19, 10, -1, - 20, 10, -1, 77, 10, -1, 66, 10, -1, 101, - 10, -1, 21, 10, -1, 22, 10, -1, 23, 10, - -1, 24, 10, -1, 25, 10, -1, 68, 10, -1, - 82, 10, -1, 83, 10, -1, 54, 10, -1, 64, - 10, -1, 55, 10, -1, 48, 10, -1, 49, 10, - -1, 50, 10, -1, 51, 10, -1, 61, 10, -1, - 26, 10, -1, 27, 10, -1, 28, 10, -1, 98, - 10, -1, 29, 10, -1, 30, 10, -1, 32, 10, - -1, 33, 10, -1, 35, 10, -1, 36, 10, -1, - 34, 10, -1, 41, 10, -1, 42, 10, -1, 43, - 10, -1, 52, 10, -1, 71, 10, -1, 85, 10, - -1, 78, 10, -1, 86, 10, -1, 87, 10, -1, - 100, 10, -1, 47, 10, -1, 69, 10, -1, 72, - 10, 10, -1, 53, 10, -1, 56, 10, -1, 70, - 10, -1, 57, 10, -1, 58, 10, -1, 59, 10, - -1, 65, 10, -1, 62, 10, -1, 63, 10, -1, - 84, 10, -1, 73, 10, 10, -1, 74, 10, -1, - 97, 10, -1, 37, 10, -1, 39, 10, -1, 40, - 10, -1, 99, 10, -1, 37, 10, -1, 45, 10, - -1, 46, 10, -1, 88, -1, 196, 197, -1, -1, - 198, -1, 200, -1, 199, -1, 201, -1, 202, -1, - 203, -1, 204, -1, 89, 10, -1, 91, 10, -1, - 90, 10, -1, 92, 10, -1, 93, 10, -1, 94, - 10, -1, 95, 10, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = -{ - 0, 102, 102, 102, 103, 103, 104, 104, 108, 113, - 114, 115, 115, 115, 116, 116, 117, 117, 117, 118, - 118, 118, 119, 119, 119, 120, 120, 121, 121, 122, - 122, 123, 123, 124, 124, 125, 125, 126, 126, 127, - 127, 128, 128, 128, 129, 129, 129, 130, 130, 130, - 131, 131, 132, 132, 133, 133, 134, 134, 135, 135, - 135, 136, 136, 137, 137, 138, 138, 138, 139, 139, - 140, 140, 141, 141, 142, 142, 142, 143, 143, 144, - 144, 145, 145, 146, 146, 148, 160, 161, 162, 162, - 162, 162, 164, 176, 177, 178, 178, 178, 180, 189, - 198, 209, 218, 227, 236, 249, 264, 273, 282, 291, - 300, 309, 318, 327, 336, 345, 354, 363, 377, 386, - 393, 400, 407, 415, 422, 429, 436, 443, 451, 459, - 466, 475, 484, 491, 498, 509, 517, 530, 539, 548, - 556, 569, 578, 587, 596, 605, 618, 625, 635, 645, - 655, 665, 675, 685, 692, 699, 708, 715, 725, 739, - 746, 764, 773, 782, 792, 802, 809, 817, 830, 838, - 858, 865, 880, 887, 894, 901, 911, 918, 925, 932, - 937, 938, 939, 939, 939, 940, 940, 940, 941, 943, - 953, 962, 969, 976, 983, 990 -}; -#endif - -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT", - "COLON", "ANY", "ZONESTR", "STRING", "VAR_SERVER", "VAR_VERBOSITY", - "VAR_NUM_THREADS", "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE", - "VAR_DO_IP4", "VAR_DO_IP6", "VAR_DO_UDP", "VAR_DO_TCP", "VAR_CHROOT", - "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE", - "VAR_MSG_CACHE_SIZE", "VAR_MSG_CACHE_SLABS", - "VAR_NUM_QUERIES_PER_THREAD", "VAR_RRSET_CACHE_SIZE", - "VAR_RRSET_CACHE_SLABS", "VAR_OUTGOING_NUM_TCP", "VAR_INFRA_HOST_TTL", - "VAR_INFRA_LAME_TTL", "VAR_INFRA_CACHE_SLABS", - "VAR_INFRA_CACHE_NUMHOSTS", "VAR_INFRA_CACHE_LAME_SIZE", "VAR_NAME", - "VAR_STUB_ZONE", "VAR_STUB_HOST", "VAR_STUB_ADDR", - "VAR_TARGET_FETCH_POLICY", "VAR_HARDEN_SHORT_BUFSIZE", - "VAR_HARDEN_LARGE_QUERIES", "VAR_FORWARD_ZONE", "VAR_FORWARD_HOST", - "VAR_FORWARD_ADDR", "VAR_DO_NOT_QUERY_ADDRESS", "VAR_HIDE_IDENTITY", - "VAR_HIDE_VERSION", "VAR_IDENTITY", "VAR_VERSION", "VAR_HARDEN_GLUE", - "VAR_MODULE_CONF", "VAR_TRUST_ANCHOR_FILE", "VAR_TRUST_ANCHOR", - "VAR_VAL_OVERRIDE_DATE", "VAR_BOGUS_TTL", "VAR_VAL_CLEAN_ADDITIONAL", - "VAR_VAL_PERMISSIVE_MODE", "VAR_INCOMING_NUM_TCP", "VAR_MSG_BUFFER_SIZE", - "VAR_KEY_CACHE_SIZE", "VAR_KEY_CACHE_SLABS", "VAR_TRUSTED_KEYS_FILE", - "VAR_VAL_NSEC3_KEYSIZE_ITERATIONS", "VAR_USE_SYSLOG", - "VAR_OUTGOING_INTERFACE", "VAR_ROOT_HINTS", "VAR_DO_NOT_QUERY_LOCALHOST", - "VAR_CACHE_MAX_TTL", "VAR_HARDEN_DNNSEC_STRIPPED", "VAR_ACCESS_CONTROL", - "VAR_LOCAL_ZONE", "VAR_LOCAL_DATA", "VAR_INTERFACE_AUTOMATIC", - "VAR_STATISTICS_INTERVAL", "VAR_DO_DAEMONIZE", "VAR_USE_CAPS_FOR_ID", - "VAR_STATISTICS_CUMULATIVE", "VAR_OUTGOING_PORT_PERMIT", - "VAR_OUTGOING_PORT_AVOID", "VAR_DLV_ANCHOR_FILE", "VAR_DLV_ANCHOR", - "VAR_NEG_CACHE_SIZE", "VAR_HARDEN_REFERRAL_PATH", "VAR_PRIVATE_ADDRESS", - "VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE", - "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE", - "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE", - "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT", - "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII", - "$accept", "toplevelvars", "toplevelvar", "serverstart", - "contents_server", "content_server", "stubstart", "contents_stub", - "content_stub", "forwardstart", "contents_forward", "content_forward", - "server_num_threads", "server_verbosity", "server_statistics_interval", - "server_statistics_cumulative", "server_extended_statistics", - "server_port", "server_interface", "server_outgoing_interface", - "server_outgoing_range", "server_outgoing_port_permit", - "server_outgoing_port_avoid", "server_outgoing_num_tcp", - "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", - "server_do_ip6", "server_do_udp", "server_do_tcp", "server_do_daemonize", - "server_use_syslog", "server_log_time_ascii", "server_chroot", - "server_username", "server_directory", "server_logfile", - "server_pidfile", "server_root_hints", "server_dlv_anchor_file", - "server_dlv_anchor", "server_trust_anchor_file", - "server_trusted_keys_file", "server_trust_anchor", - "server_hide_identity", "server_hide_version", "server_identity", - "server_version", "server_msg_buffer_size", "server_msg_cache_size", - "server_msg_cache_slabs", "server_num_queries_per_thread", - "server_jostle_timeout", "server_rrset_cache_size", - "server_rrset_cache_slabs", "server_infra_host_ttl", - "server_infra_lame_ttl", "server_infra_cache_numhosts", - "server_infra_cache_lame_size", "server_infra_cache_slabs", - "server_target_fetch_policy", "server_harden_short_bufsize", - "server_harden_large_queries", "server_harden_glue", - "server_harden_dnssec_stripped", "server_harden_referral_path", - "server_use_caps_for_id", "server_private_address", - "server_private_domain", "server_unwanted_reply_threshold", - "server_do_not_query_address", "server_do_not_query_localhost", - "server_access_control", "server_module_conf", - "server_val_override_date", "server_cache_max_ttl", "server_bogus_ttl", - "server_val_clean_additional", "server_val_permissive_mode", - "server_val_nsec3_keysize_iterations", "server_key_cache_size", - "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", - "server_local_data", "server_local_data_ptr", "stub_name", "stub_host", - "stub_addr", "stub_prime", "forward_name", "forward_host", - "forward_addr", "rcstart", "contents_rc", "content_rc", - "rc_control_enable", "rc_control_port", "rc_control_interface", - "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file", - "rc_control_cert_file", 0 +} YYSTYPE; +#line 52 "util/configparser.c" +#define SPACE 257 +#define LETTER 258 +#define NEWLINE 259 +#define COMMENT 260 +#define COLON 261 +#define ANY 262 +#define ZONESTR 263 +#define STRING 264 +#define VAR_SERVER 265 +#define VAR_VERBOSITY 266 +#define VAR_NUM_THREADS 267 +#define VAR_PORT 268 +#define VAR_OUTGOING_RANGE 269 +#define VAR_INTERFACE 270 +#define VAR_DO_IP4 271 +#define VAR_DO_IP6 272 +#define VAR_DO_UDP 273 +#define VAR_DO_TCP 274 +#define VAR_CHROOT 275 +#define VAR_USERNAME 276 +#define VAR_DIRECTORY 277 +#define VAR_LOGFILE 278 +#define VAR_PIDFILE 279 +#define VAR_MSG_CACHE_SIZE 280 +#define VAR_MSG_CACHE_SLABS 281 +#define VAR_NUM_QUERIES_PER_THREAD 282 +#define VAR_RRSET_CACHE_SIZE 283 +#define VAR_RRSET_CACHE_SLABS 284 +#define VAR_OUTGOING_NUM_TCP 285 +#define VAR_INFRA_HOST_TTL 286 +#define VAR_INFRA_LAME_TTL 287 +#define VAR_INFRA_CACHE_SLABS 288 +#define VAR_INFRA_CACHE_NUMHOSTS 289 +#define VAR_INFRA_CACHE_LAME_SIZE 290 +#define VAR_NAME 291 +#define VAR_STUB_ZONE 292 +#define VAR_STUB_HOST 293 +#define VAR_STUB_ADDR 294 +#define VAR_TARGET_FETCH_POLICY 295 +#define VAR_HARDEN_SHORT_BUFSIZE 296 +#define VAR_HARDEN_LARGE_QUERIES 297 +#define VAR_FORWARD_ZONE 298 +#define VAR_FORWARD_HOST 299 +#define VAR_FORWARD_ADDR 300 +#define VAR_DO_NOT_QUERY_ADDRESS 301 +#define VAR_HIDE_IDENTITY 302 +#define VAR_HIDE_VERSION 303 +#define VAR_IDENTITY 304 +#define VAR_VERSION 305 +#define VAR_HARDEN_GLUE 306 +#define VAR_MODULE_CONF 307 +#define VAR_TRUST_ANCHOR_FILE 308 +#define VAR_TRUST_ANCHOR 309 +#define VAR_VAL_OVERRIDE_DATE 310 +#define VAR_BOGUS_TTL 311 +#define VAR_VAL_CLEAN_ADDITIONAL 312 +#define VAR_VAL_PERMISSIVE_MODE 313 +#define VAR_INCOMING_NUM_TCP 314 +#define VAR_MSG_BUFFER_SIZE 315 +#define VAR_KEY_CACHE_SIZE 316 +#define VAR_KEY_CACHE_SLABS 317 +#define VAR_TRUSTED_KEYS_FILE 318 +#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 319 +#define VAR_USE_SYSLOG 320 +#define VAR_OUTGOING_INTERFACE 321 +#define VAR_ROOT_HINTS 322 +#define VAR_DO_NOT_QUERY_LOCALHOST 323 +#define VAR_CACHE_MAX_TTL 324 +#define VAR_HARDEN_DNNSEC_STRIPPED 325 +#define VAR_ACCESS_CONTROL 326 +#define VAR_LOCAL_ZONE 327 +#define VAR_LOCAL_DATA 328 +#define VAR_INTERFACE_AUTOMATIC 329 +#define VAR_STATISTICS_INTERVAL 330 +#define VAR_DO_DAEMONIZE 331 +#define VAR_USE_CAPS_FOR_ID 332 +#define VAR_STATISTICS_CUMULATIVE 333 +#define VAR_OUTGOING_PORT_PERMIT 334 +#define VAR_OUTGOING_PORT_AVOID 335 +#define VAR_DLV_ANCHOR_FILE 336 +#define VAR_DLV_ANCHOR 337 +#define VAR_NEG_CACHE_SIZE 338 +#define VAR_HARDEN_REFERRAL_PATH 339 +#define VAR_PRIVATE_ADDRESS 340 +#define VAR_PRIVATE_DOMAIN 341 +#define VAR_REMOTE_CONTROL 342 +#define VAR_CONTROL_ENABLE 343 +#define VAR_CONTROL_INTERFACE 344 +#define VAR_CONTROL_PORT 345 +#define VAR_SERVER_KEY_FILE 346 +#define VAR_SERVER_CERT_FILE 347 +#define VAR_CONTROL_KEY_FILE 348 +#define VAR_CONTROL_CERT_FILE 349 +#define VAR_EXTENDED_STATISTICS 350 +#define VAR_LOCAL_DATA_PTR 351 +#define VAR_JOSTLE_TIMEOUT 352 +#define VAR_STUB_PRIME 353 +#define VAR_UNWANTED_REPLY_THRESHOLD 354 +#define VAR_LOG_TIME_ASCII 355 +#define YYERRCODE 256 +short yylhs[] = { -1, + 0, 0, 1, 1, 1, 1, 2, 3, 3, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 4, 5, 5, 85, 85, 85, 85, + 6, 7, 7, 90, 90, 90, 11, 12, 68, 71, + 80, 13, 19, 59, 14, 72, 73, 30, 52, 67, + 15, 16, 17, 18, 69, 58, 84, 20, 21, 22, + 23, 24, 60, 74, 75, 46, 56, 47, 40, 41, + 42, 43, 53, 25, 26, 27, 82, 28, 29, 31, + 32, 34, 35, 33, 36, 37, 38, 44, 63, 77, + 70, 78, 79, 83, 39, 61, 64, 45, 48, 62, + 49, 50, 51, 57, 54, 55, 76, 65, 66, 81, + 86, 87, 88, 89, 91, 92, 93, 8, 9, 9, + 94, 94, 94, 94, 94, 94, 94, 95, 97, 96, + 98, 99, 100, 101, }; -#endif - -# ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ -static const yytype_uint16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 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, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356 +short yylen[] = { 2, + 0, 2, 2, 2, 2, 2, 1, 2, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, + 1, 2, 0, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 2, }; -# endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = -{ - 0, 102, 103, 103, 104, 104, 104, 104, 105, 106, - 106, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 108, 109, 109, 110, 110, - 110, 110, 111, 112, 112, 113, 113, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 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, 196, 197, 197, 197, 197, 197, 197, 197, 198, - 199, 200, 201, 202, 203, 204 +short yydefred[] = { 1, + 0, 7, 84, 91, 178, 2, 9, 86, 93, 180, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, + 11, 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, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 0, 0, 0, 0, 85, 87, 88, + 89, 90, 0, 0, 0, 92, 94, 95, 96, 0, + 0, 0, 0, 0, 0, 0, 179, 181, 182, 183, + 184, 185, 186, 187, 98, 97, 102, 105, 103, 111, + 112, 113, 114, 118, 119, 120, 121, 122, 134, 135, + 136, 138, 139, 108, 140, 141, 144, 142, 143, 145, + 146, 147, 155, 129, 130, 131, 132, 148, 158, 126, + 128, 159, 161, 162, 163, 109, 133, 165, 166, 127, + 164, 116, 104, 123, 156, 160, 149, 0, 0, 169, + 110, 99, 115, 151, 100, 106, 107, 124, 125, 167, + 150, 152, 153, 101, 170, 137, 154, 117, 171, 172, + 173, 174, 175, 176, 177, 188, 190, 189, 191, 192, + 193, 194, 157, 168, }; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 0, 2, 2, 2, 2, 2, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, - 1, 1, 1, 2, 0, 1, 1, 1, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 2, 0, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 2 +short yydgoto[] = { 1, + 6, 7, 11, 8, 12, 9, 13, 10, 14, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 168, 169, 170, 171, 172, 176, + 177, 178, 179, 187, 188, 189, 190, 191, 192, 193, + 194, }; - -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint8 yydefact[] = -{ - 2, 0, 1, 8, 85, 92, 179, 3, 10, 87, - 94, 181, 4, 5, 6, 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, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9, 11, 12, 68, 71, 80, 13, 19, 59, 14, - 72, 73, 30, 52, 67, 15, 16, 17, 18, 69, - 58, 84, 20, 21, 22, 23, 24, 60, 74, 75, - 46, 56, 47, 40, 41, 42, 43, 53, 25, 26, - 27, 82, 28, 29, 31, 32, 34, 35, 33, 36, - 37, 38, 44, 63, 77, 70, 78, 79, 83, 39, - 61, 64, 45, 48, 62, 49, 50, 51, 57, 54, - 55, 76, 65, 66, 81, 0, 0, 0, 0, 86, - 88, 89, 90, 91, 0, 0, 0, 93, 95, 96, - 97, 0, 0, 0, 0, 0, 0, 0, 180, 182, - 184, 183, 185, 186, 187, 188, 99, 98, 103, 106, - 104, 112, 113, 114, 115, 119, 120, 121, 122, 123, - 135, 136, 137, 139, 140, 109, 141, 142, 145, 143, - 144, 146, 147, 148, 156, 130, 131, 132, 133, 149, - 159, 127, 129, 160, 162, 163, 164, 110, 134, 166, - 167, 128, 165, 117, 105, 124, 157, 161, 150, 0, - 0, 170, 111, 100, 116, 152, 101, 107, 108, 125, - 126, 168, 151, 153, 154, 102, 171, 138, 155, 118, - 172, 173, 174, 175, 176, 177, 178, 189, 191, 190, - 192, 193, 194, 195, 158, 169 +short yysindex[] = { 0, + -184, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -261, -209, -204, -246, -264, -234, -233, -232, -231, -227, + -226, -225, -181, -178, -176, -172, -160, -159, -158, -157, + -155, -154, -153, -152, -151, -149, -148, -147, -146, -145, + -144, -143, -142, -141, -140, -139, -138, -137, -136, -135, + -134, -133, -132, -131, -130, -129, -128, -127, -126, -125, + -124, -123, -122, -121, -119, -118, -117, -116, -115, -114, + -113, -112, -111, -110, -109, -108, -107, -105, -104, -103, + -102, -101, -100, -99, -98, -97, -96, -95, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -94, -93, -92, -91, 0, 0, 0, + 0, 0, -90, -89, -88, 0, 0, 0, 0, -87, + -86, -85, -84, -83, -82, -81, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -80, -79, 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, }; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 1, 7, 8, 12, 90, 9, 13, 169, 10, - 14, 177, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 170, 171, 172, 173, - 178, 179, 180, 11, 15, 188, 189, 190, 191, 192, - 193, 194, 195 +short yyrindex[] = { 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, }; - -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -13 -static const yytype_int16 yypact[] = -{ - -13, 76, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -12, 40, 45, 3, 15, 16, 17, 18, - 22, 23, 24, 68, 71, 73, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 105, 106, 107, 108, 109, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, 157, 158, 159, 160, -13, - -13, -13, -13, -13, 161, 162, 163, -13, -13, -13, - -13, 164, 165, 166, 167, 168, 169, 170, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, 171, - 172, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13 +short yygindex[] = { 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, }; - -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int8 yypgoto[] = -{ - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13 +#define YYTABLESIZE 346 +short yytable[] = { 195, + 3, 4, 5, 6, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 196, + 197, 198, 199, 40, 41, 42, 200, 201, 202, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 2, 164, 203, 165, 166, 204, 173, 205, 84, 85, + 86, 206, 87, 88, 174, 175, 180, 181, 182, 183, + 184, 185, 186, 207, 208, 209, 210, 3, 211, 212, + 213, 214, 215, 4, 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, 167, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 5, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, 4, 5, 6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 4, 5, 6, 0, 0, 3, 4, + 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 4, 5, 6, }; - -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -1 -static const yytype_uint16 yytable[] = -{ - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 196, 197, 198, 199, 41, - 42, 43, 200, 201, 202, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 2, 165, 203, 166, - 167, 204, 174, 205, 85, 86, 87, 3, 88, 89, - 175, 176, 181, 182, 183, 184, 185, 186, 187, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 4, 221, 222, 223, 224, 225, - 5, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 168, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 6, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285 +short yycheck[] = { 264, + 0, 0, 0, 0, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 264, + 264, 264, 264, 295, 296, 297, 264, 264, 264, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 265, 291, 264, 293, 294, 264, 291, 264, 350, 351, + 352, 264, 354, 355, 299, 300, 343, 344, 345, 346, + 347, 348, 349, 264, 264, 264, 264, 292, 264, 264, + 264, 264, 264, 298, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 353, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 342, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 265, 265, 265, 265, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 292, 292, 292, 292, -1, -1, 298, 298, + 298, 298, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 342, 342, 342, 342, }; - -static const yytype_uint8 yycheck[] = -{ - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 10, 10, 10, 10, 41, - 42, 43, 10, 10, 10, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 0, 37, 10, 39, - 40, 10, 37, 10, 96, 97, 98, 11, 100, 101, - 45, 46, 89, 90, 91, 92, 93, 94, 95, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 38, 10, 10, 10, 10, 10, - 44, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 99, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 88, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10 +#define YYFINAL 1 +#ifndef YYDEBUG +#define YYDEBUG 0 +#endif +#define YYMAXTOKEN 355 +#if YYDEBUG +char *yyname[] = { +"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"SPACE","LETTER","NEWLINE", +"COMMENT","COLON","ANY","ZONESTR","STRING","VAR_SERVER","VAR_VERBOSITY", +"VAR_NUM_THREADS","VAR_PORT","VAR_OUTGOING_RANGE","VAR_INTERFACE","VAR_DO_IP4", +"VAR_DO_IP6","VAR_DO_UDP","VAR_DO_TCP","VAR_CHROOT","VAR_USERNAME", +"VAR_DIRECTORY","VAR_LOGFILE","VAR_PIDFILE","VAR_MSG_CACHE_SIZE", +"VAR_MSG_CACHE_SLABS","VAR_NUM_QUERIES_PER_THREAD","VAR_RRSET_CACHE_SIZE", +"VAR_RRSET_CACHE_SLABS","VAR_OUTGOING_NUM_TCP","VAR_INFRA_HOST_TTL", +"VAR_INFRA_LAME_TTL","VAR_INFRA_CACHE_SLABS","VAR_INFRA_CACHE_NUMHOSTS", +"VAR_INFRA_CACHE_LAME_SIZE","VAR_NAME","VAR_STUB_ZONE","VAR_STUB_HOST", +"VAR_STUB_ADDR","VAR_TARGET_FETCH_POLICY","VAR_HARDEN_SHORT_BUFSIZE", +"VAR_HARDEN_LARGE_QUERIES","VAR_FORWARD_ZONE","VAR_FORWARD_HOST", +"VAR_FORWARD_ADDR","VAR_DO_NOT_QUERY_ADDRESS","VAR_HIDE_IDENTITY", +"VAR_HIDE_VERSION","VAR_IDENTITY","VAR_VERSION","VAR_HARDEN_GLUE", +"VAR_MODULE_CONF","VAR_TRUST_ANCHOR_FILE","VAR_TRUST_ANCHOR", +"VAR_VAL_OVERRIDE_DATE","VAR_BOGUS_TTL","VAR_VAL_CLEAN_ADDITIONAL", +"VAR_VAL_PERMISSIVE_MODE","VAR_INCOMING_NUM_TCP","VAR_MSG_BUFFER_SIZE", +"VAR_KEY_CACHE_SIZE","VAR_KEY_CACHE_SLABS","VAR_TRUSTED_KEYS_FILE", +"VAR_VAL_NSEC3_KEYSIZE_ITERATIONS","VAR_USE_SYSLOG","VAR_OUTGOING_INTERFACE", +"VAR_ROOT_HINTS","VAR_DO_NOT_QUERY_LOCALHOST","VAR_CACHE_MAX_TTL", +"VAR_HARDEN_DNNSEC_STRIPPED","VAR_ACCESS_CONTROL","VAR_LOCAL_ZONE", +"VAR_LOCAL_DATA","VAR_INTERFACE_AUTOMATIC","VAR_STATISTICS_INTERVAL", +"VAR_DO_DAEMONIZE","VAR_USE_CAPS_FOR_ID","VAR_STATISTICS_CUMULATIVE", +"VAR_OUTGOING_PORT_PERMIT","VAR_OUTGOING_PORT_AVOID","VAR_DLV_ANCHOR_FILE", +"VAR_DLV_ANCHOR","VAR_NEG_CACHE_SIZE","VAR_HARDEN_REFERRAL_PATH", +"VAR_PRIVATE_ADDRESS","VAR_PRIVATE_DOMAIN","VAR_REMOTE_CONTROL", +"VAR_CONTROL_ENABLE","VAR_CONTROL_INTERFACE","VAR_CONTROL_PORT", +"VAR_SERVER_KEY_FILE","VAR_SERVER_CERT_FILE","VAR_CONTROL_KEY_FILE", +"VAR_CONTROL_CERT_FILE","VAR_EXTENDED_STATISTICS","VAR_LOCAL_DATA_PTR", +"VAR_JOSTLE_TIMEOUT","VAR_STUB_PRIME","VAR_UNWANTED_REPLY_THRESHOLD", +"VAR_LOG_TIME_ASCII", }; - -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = -{ - 0, 103, 0, 11, 38, 44, 88, 104, 105, 108, - 111, 195, 106, 109, 112, 196, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 41, 42, 43, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 96, 97, 98, 100, 101, - 107, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 37, 39, 40, 99, 110, - 188, 189, 190, 191, 37, 45, 46, 113, 192, 193, - 194, 89, 90, 91, 92, 93, 94, 95, 197, 198, - 199, 200, 201, 202, 203, 204, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10 +char *yyrule[] = { +"$accept : toplevelvars", +"toplevelvars :", +"toplevelvars : toplevelvars toplevelvar", +"toplevelvar : serverstart contents_server", +"toplevelvar : stubstart contents_stub", +"toplevelvar : forwardstart contents_forward", +"toplevelvar : rcstart contents_rc", +"serverstart : VAR_SERVER", +"contents_server : contents_server content_server", +"contents_server :", +"content_server : server_num_threads", +"content_server : server_verbosity", +"content_server : server_port", +"content_server : server_outgoing_range", +"content_server : server_do_ip4", +"content_server : server_do_ip6", +"content_server : server_do_udp", +"content_server : server_do_tcp", +"content_server : server_interface", +"content_server : server_chroot", +"content_server : server_username", +"content_server : server_directory", +"content_server : server_logfile", +"content_server : server_pidfile", +"content_server : server_msg_cache_size", +"content_server : server_msg_cache_slabs", +"content_server : server_num_queries_per_thread", +"content_server : server_rrset_cache_size", +"content_server : server_rrset_cache_slabs", +"content_server : server_outgoing_num_tcp", +"content_server : server_infra_host_ttl", +"content_server : server_infra_lame_ttl", +"content_server : server_infra_cache_slabs", +"content_server : server_infra_cache_numhosts", +"content_server : server_infra_cache_lame_size", +"content_server : server_target_fetch_policy", +"content_server : server_harden_short_bufsize", +"content_server : server_harden_large_queries", +"content_server : server_do_not_query_address", +"content_server : server_hide_identity", +"content_server : server_hide_version", +"content_server : server_identity", +"content_server : server_version", +"content_server : server_harden_glue", +"content_server : server_module_conf", +"content_server : server_trust_anchor_file", +"content_server : server_trust_anchor", +"content_server : server_val_override_date", +"content_server : server_bogus_ttl", +"content_server : server_val_clean_additional", +"content_server : server_val_permissive_mode", +"content_server : server_incoming_num_tcp", +"content_server : server_msg_buffer_size", +"content_server : server_key_cache_size", +"content_server : server_key_cache_slabs", +"content_server : server_trusted_keys_file", +"content_server : server_val_nsec3_keysize_iterations", +"content_server : server_use_syslog", +"content_server : server_outgoing_interface", +"content_server : server_root_hints", +"content_server : server_do_not_query_localhost", +"content_server : server_cache_max_ttl", +"content_server : server_harden_dnssec_stripped", +"content_server : server_access_control", +"content_server : server_local_zone", +"content_server : server_local_data", +"content_server : server_interface_automatic", +"content_server : server_statistics_interval", +"content_server : server_do_daemonize", +"content_server : server_use_caps_for_id", +"content_server : server_statistics_cumulative", +"content_server : server_outgoing_port_permit", +"content_server : server_outgoing_port_avoid", +"content_server : server_dlv_anchor_file", +"content_server : server_dlv_anchor", +"content_server : server_neg_cache_size", +"content_server : server_harden_referral_path", +"content_server : server_private_address", +"content_server : server_private_domain", +"content_server : server_extended_statistics", +"content_server : server_local_data_ptr", +"content_server : server_jostle_timeout", +"content_server : server_unwanted_reply_threshold", +"content_server : server_log_time_ascii", +"stubstart : VAR_STUB_ZONE", +"contents_stub : contents_stub content_stub", +"contents_stub :", +"content_stub : stub_name", +"content_stub : stub_host", +"content_stub : stub_addr", +"content_stub : stub_prime", +"forwardstart : VAR_FORWARD_ZONE", +"contents_forward : contents_forward content_forward", +"contents_forward :", +"content_forward : forward_name", +"content_forward : forward_host", +"content_forward : forward_addr", +"server_num_threads : VAR_NUM_THREADS STRING", +"server_verbosity : VAR_VERBOSITY STRING", +"server_statistics_interval : VAR_STATISTICS_INTERVAL STRING", +"server_statistics_cumulative : VAR_STATISTICS_CUMULATIVE STRING", +"server_extended_statistics : VAR_EXTENDED_STATISTICS STRING", +"server_port : VAR_PORT STRING", +"server_interface : VAR_INTERFACE STRING", +"server_outgoing_interface : VAR_OUTGOING_INTERFACE STRING", +"server_outgoing_range : VAR_OUTGOING_RANGE STRING", +"server_outgoing_port_permit : VAR_OUTGOING_PORT_PERMIT STRING", +"server_outgoing_port_avoid : VAR_OUTGOING_PORT_AVOID STRING", +"server_outgoing_num_tcp : VAR_OUTGOING_NUM_TCP STRING", +"server_incoming_num_tcp : VAR_INCOMING_NUM_TCP STRING", +"server_interface_automatic : VAR_INTERFACE_AUTOMATIC STRING", +"server_do_ip4 : VAR_DO_IP4 STRING", +"server_do_ip6 : VAR_DO_IP6 STRING", +"server_do_udp : VAR_DO_UDP STRING", +"server_do_tcp : VAR_DO_TCP STRING", +"server_do_daemonize : VAR_DO_DAEMONIZE STRING", +"server_use_syslog : VAR_USE_SYSLOG STRING", +"server_log_time_ascii : VAR_LOG_TIME_ASCII STRING", +"server_chroot : VAR_CHROOT STRING", +"server_username : VAR_USERNAME STRING", +"server_directory : VAR_DIRECTORY STRING", +"server_logfile : VAR_LOGFILE STRING", +"server_pidfile : VAR_PIDFILE STRING", +"server_root_hints : VAR_ROOT_HINTS STRING", +"server_dlv_anchor_file : VAR_DLV_ANCHOR_FILE STRING", +"server_dlv_anchor : VAR_DLV_ANCHOR STRING", +"server_trust_anchor_file : VAR_TRUST_ANCHOR_FILE STRING", +"server_trusted_keys_file : VAR_TRUSTED_KEYS_FILE STRING", +"server_trust_anchor : VAR_TRUST_ANCHOR STRING", +"server_hide_identity : VAR_HIDE_IDENTITY STRING", +"server_hide_version : VAR_HIDE_VERSION STRING", +"server_identity : VAR_IDENTITY STRING", +"server_version : VAR_VERSION STRING", +"server_msg_buffer_size : VAR_MSG_BUFFER_SIZE STRING", +"server_msg_cache_size : VAR_MSG_CACHE_SIZE STRING", +"server_msg_cache_slabs : VAR_MSG_CACHE_SLABS STRING", +"server_num_queries_per_thread : VAR_NUM_QUERIES_PER_THREAD STRING", +"server_jostle_timeout : VAR_JOSTLE_TIMEOUT STRING", +"server_rrset_cache_size : VAR_RRSET_CACHE_SIZE STRING", +"server_rrset_cache_slabs : VAR_RRSET_CACHE_SLABS STRING", +"server_infra_host_ttl : VAR_INFRA_HOST_TTL STRING", +"server_infra_lame_ttl : VAR_INFRA_LAME_TTL STRING", +"server_infra_cache_numhosts : VAR_INFRA_CACHE_NUMHOSTS STRING", +"server_infra_cache_lame_size : VAR_INFRA_CACHE_LAME_SIZE STRING", +"server_infra_cache_slabs : VAR_INFRA_CACHE_SLABS STRING", +"server_target_fetch_policy : VAR_TARGET_FETCH_POLICY STRING", +"server_harden_short_bufsize : VAR_HARDEN_SHORT_BUFSIZE STRING", +"server_harden_large_queries : VAR_HARDEN_LARGE_QUERIES STRING", +"server_harden_glue : VAR_HARDEN_GLUE STRING", +"server_harden_dnssec_stripped : VAR_HARDEN_DNNSEC_STRIPPED STRING", +"server_harden_referral_path : VAR_HARDEN_REFERRAL_PATH STRING", +"server_use_caps_for_id : VAR_USE_CAPS_FOR_ID STRING", +"server_private_address : VAR_PRIVATE_ADDRESS STRING", +"server_private_domain : VAR_PRIVATE_DOMAIN STRING", +"server_unwanted_reply_threshold : VAR_UNWANTED_REPLY_THRESHOLD STRING", +"server_do_not_query_address : VAR_DO_NOT_QUERY_ADDRESS STRING", +"server_do_not_query_localhost : VAR_DO_NOT_QUERY_LOCALHOST STRING", +"server_access_control : VAR_ACCESS_CONTROL STRING STRING", +"server_module_conf : VAR_MODULE_CONF STRING", +"server_val_override_date : VAR_VAL_OVERRIDE_DATE STRING", +"server_cache_max_ttl : VAR_CACHE_MAX_TTL STRING", +"server_bogus_ttl : VAR_BOGUS_TTL STRING", +"server_val_clean_additional : VAR_VAL_CLEAN_ADDITIONAL STRING", +"server_val_permissive_mode : VAR_VAL_PERMISSIVE_MODE STRING", +"server_val_nsec3_keysize_iterations : VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING", +"server_key_cache_size : VAR_KEY_CACHE_SIZE STRING", +"server_key_cache_slabs : VAR_KEY_CACHE_SLABS STRING", +"server_neg_cache_size : VAR_NEG_CACHE_SIZE STRING", +"server_local_zone : VAR_LOCAL_ZONE STRING STRING", +"server_local_data : VAR_LOCAL_DATA STRING", +"server_local_data_ptr : VAR_LOCAL_DATA_PTR STRING", +"stub_name : VAR_NAME STRING", +"stub_host : VAR_STUB_HOST STRING", +"stub_addr : VAR_STUB_ADDR STRING", +"stub_prime : VAR_STUB_PRIME STRING", +"forward_name : VAR_NAME STRING", +"forward_host : VAR_FORWARD_HOST STRING", +"forward_addr : VAR_FORWARD_ADDR STRING", +"rcstart : VAR_REMOTE_CONTROL", +"contents_rc : contents_rc content_rc", +"contents_rc :", +"content_rc : rc_control_enable", +"content_rc : rc_control_interface", +"content_rc : rc_control_port", +"content_rc : rc_server_key_file", +"content_rc : rc_server_cert_file", +"content_rc : rc_control_key_file", +"content_rc : rc_control_cert_file", +"rc_control_enable : VAR_CONTROL_ENABLE STRING", +"rc_control_port : VAR_CONTROL_PORT STRING", +"rc_control_interface : VAR_CONTROL_INTERFACE STRING", +"rc_server_key_file : VAR_SERVER_KEY_FILE STRING", +"rc_server_cert_file : VAR_SERVER_CERT_FILE STRING", +"rc_control_key_file : VAR_CONTROL_KEY_FILE STRING", +"rc_control_cert_file : VAR_CONTROL_CERT_FILE STRING", }; - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ - -#define YYFAIL goto yyerrlab - -#define YYRECOVERING() (!!yyerrstatus) - -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK (1); \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) - - -#define YYTERROR 1 -#define YYERRCODE 256 - - -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) #endif - - -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ - -#ifndef YY_LOCATION_PRINT -# if YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#ifdef YYLEX_PARAM -# define YYLEX yylex (YYLEX_PARAM) -#else -# define YYLEX yylex () -#endif - -/* Enable debugging if requested. */ #if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; +#include #endif -{ - if (!yyvaluep) - return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); -# endif - switch (yytype) - { - default: - break; - } -} - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +/* define the initial stack-sizes */ +#ifdef YYSTACKSIZE +#undef YYMAXDEPTH +#define YYMAXDEPTH YYSTACKSIZE #else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif -{ - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); - - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); -} - -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +#ifdef YYMAXDEPTH +#define YYSTACKSIZE YYMAXDEPTH #else -static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; +#define YYSTACKSIZE 500 +#define YYMAXDEPTH 500 #endif -{ - YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); - YYFPRINTF (stderr, "\n"); -} - -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) - - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced. | -`------------------------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) -#else -static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; - int yyrule; -#endif -{ - int yynrhs = yyr2[yyrule]; - int yyi; - unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { - fprintf (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); - fprintf (stderr, "\n"); - } -} - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) - -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) -# define YY_STACK_PRINT(Bottom, Top) -# define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ - - -/* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 #endif -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). +#define YYINITSTACKSIZE 500 - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ +int yydebug; +int yynerrs; +int yyerrflag; +int yychar; +short *yyssp; +YYSTYPE *yyvsp; +YYSTYPE yyval; +YYSTYPE yylval; -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - - - -#if YYERROR_VERBOSE +/* variables for the parser stack */ +static short *yyss; +static short *yysslim; +static YYSTYPE *yyvs; +static int yystacksize; +#line 998 "util/configparser.y" -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static YYSIZE_T -yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif +/* parse helper routines could be here */ +#line 669 "util/configparser.c" +/* allocate initial stack or double stack size, up to YYMAXDEPTH */ +static int yygrowstack(void) { - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; + int newsize, i; + short *newss; + YYSTYPE *newvs; + + if ((newsize = yystacksize) == 0) + newsize = YYINITSTACKSIZE; + else if (newsize >= YYMAXDEPTH) + return -1; + else if ((newsize *= 2) > YYMAXDEPTH) + newsize = YYMAXDEPTH; + + i = yyssp - yyss; + newss = (yyss != 0) + ? (short *)realloc(yyss, newsize * sizeof(*newss)) + : (short *)malloc(newsize * sizeof(*newss)); + if (newss == 0) + return -1; + + yyss = newss; + yyssp = newss + i; + newvs = (yyvs != 0) + ? (YYSTYPE *)realloc(yyvs, newsize * sizeof(*newvs)) + : (YYSTYPE *)malloc(newsize * sizeof(*newvs)); + if (newvs == 0) + return -1; + + yyvs = newvs; + yyvsp = newvs + i; + yystacksize = newsize; + yysslim = yyss + newsize - 1; + return 0; } -# endif -# endif -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static char * -yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif +#define YYABORT goto yyabort +#define YYREJECT goto yyabort +#define YYACCEPT goto yyaccept +#define YYERROR goto yyerrlab +int +yyparse(void) { - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif + register int yym, yyn, yystate; +#if YYDEBUG + register const char *yys; -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') + if ((yys = getenv("YYDEBUG")) != 0) { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; + yyn = *yys; + if (yyn >= '0' && yyn <= '9') + yydebug = yyn - '0'; } +#endif - if (! yyres) - return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; -} -# endif + yynerrs = 0; + yyerrflag = 0; + yychar = YYEMPTY; -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) -{ - int yyn = yypact[yystate]; + if (yyss == NULL && yygrowstack()) goto yyoverflow; + yyssp = yyss; + yyvsp = yyvs; + *yyssp = yystate = 0; - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else +yyloop: + if ((yyn = yydefred[yystate]) != 0) goto yyreduce; + if (yychar < 0) { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - - if (yysize_overflow) - return YYSIZE_MAXIMUM; - - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; + if ((yychar = yylex()) < 0) yychar = 0; +#if YYDEBUG + if (yydebug) + { + yys = 0; + if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; + if (!yys) yys = "illegal-symbol"; + printf("%sdebug: state %d, reading %d (%s)\n", + YYPREFIX, yystate, yychar, yys); + } +#endif } -} -#endif /* YYERROR_VERBOSE */ - - -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; + if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == yychar) + { +#if YYDEBUG + if (yydebug) + printf("%sdebug: state %d, shifting to state %d\n", + YYPREFIX, yystate, yytable[yyn]); #endif -{ - YYUSE (yyvaluep); - - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - - switch (yytype) + if (yyssp >= yysslim && yygrowstack()) + { + goto yyoverflow; + } + *++yyssp = yystate = yytable[yyn]; + *++yyvsp = yylval; + yychar = YYEMPTY; + if (yyerrflag > 0) --yyerrflag; + goto yyloop; + } + if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == yychar) { - - default: - break; + yyn = yytable[yyn]; + goto yyreduce; } -} - + if (yyerrflag) goto yyinrecovery; -/* Prevent warnings from -Wmissing-prototypes. */ + yyerror("syntax error"); -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); +#ifdef lint + goto yyerrlab; #endif -#endif /* ! YYPARSE_PARAM */ - - -/* The look-ahead symbol. */ -int yychar; - -/* The semantic value of the look-ahead symbol. */ -YYSTYPE yylval; - -/* Number of syntax errors so far. */ -int yynerrs; - - - -/*----------. -| yyparse. | -`----------*/ - -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void) -#else -int -yyparse () +yyerrlab: + ++yynerrs; +yyinrecovery: + if (yyerrflag < 3) + { + yyerrflag = 3; + for (;;) + { + if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) + { +#if YYDEBUG + if (yydebug) + printf("%sdebug: state %d, error recovery shifting\ + to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); #endif + if (yyssp >= yysslim && yygrowstack()) + { + goto yyoverflow; + } + *++yyssp = yystate = yytable[yyn]; + *++yyvsp = yylval; + goto yyloop; + } + else + { +#if YYDEBUG + if (yydebug) + printf("%sdebug: error recovery discarding state %d\n", + YYPREFIX, *yyssp); #endif -{ - - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; - - - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - YYSIZE_T yystacksize = YYINITDEPTH; - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - - - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; - - YYDPRINTF ((stderr, "Starting parse\n")); - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss; - yyvsp = yyvs; - - goto yysetstate; - -/*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | -`------------------------------------------------------------*/ - yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. So pushing a state here evens the stacks. */ - yyssp++; - - yysetstate: - *yyssp = yystate; - - if (yyss + yystacksize - 1 <= yyssp) - { - /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; - -#ifdef yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - - &yystacksize); - - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; - - { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyss + yystacksize - 1 <= yyssp) - YYABORT; - } - - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - - goto yybackup; - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - - /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ - - /* First try to decide what to do without reference to look-ahead token. */ - yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) - goto yydefault; - - /* Not known => get a look-ahead token if don't already have one. */ - - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - if (yychar <= YYEOF) - { - yychar = yytoken = YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + if (yyssp <= yyss) goto yyabort; + --yyssp; + --yyvsp; + } + } } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) - goto yydefault; - yyn = yytable[yyn]; - if (yyn <= 0) + else { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; + if (yychar == 0) goto yyabort; +#if YYDEBUG + if (yydebug) + { + yys = 0; + if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; + if (!yys) yys = "illegal-symbol"; + printf("%sdebug: state %d, error recovery discards token %d (%s)\n", + YYPREFIX, yystate, yychar, yys); + } +#endif + yychar = YYEMPTY; + goto yyloop; } - if (yyn == YYFINAL) - YYACCEPT; - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the look-ahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - yystate = yyn; - *++yyvsp = yylval; - - goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ -yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - -/*-----------------------------. -| yyreduce -- Do a reduction. | -`-----------------------------*/ yyreduce: - /* yyn is the number of a rule to reduce with. */ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - - - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - case 8: +#if YYDEBUG + if (yydebug) + printf("%sdebug: state %d, reducing by rule %d (%s)\n", + YYPREFIX, yystate, yyn, yyrule[yyn]); +#endif + yym = yylen[yyn]; + if (yym) + yyval = yyvsp[1-yym]; + else + memset(&yyval, 0, sizeof yyval); + switch (yyn) + { +case 7: #line 109 "util/configparser.y" - { +{ OUTYY(("\nP(server:)\n")); } - break; - - case 85: +break; +case 84: #line 149 "util/configparser.y" - { +{ struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); @@ -1887,11 +864,10 @@ yyreduce: } else yyerror("out of memory"); } - break; - - case 92: +break; +case 91: #line 165 "util/configparser.y" - { +{ struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); @@ -1901,80 +877,73 @@ yyreduce: } else yyerror("out of memory"); } - break; - - case 98: +break; +case 97: #line 181 "util/configparser.y" - { - OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +{ + OUTYY(("P(server_num_threads:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->num_threads = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->num_threads = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 99: +break; +case 98: #line 190 "util/configparser.y" - { - OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +{ + OUTYY(("P(server_verbosity:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->verbosity = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->verbosity = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 100: +break; +case 99: #line 199 "util/configparser.y" - { - OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) +{ + OUTYY(("P(server_statistics_interval:%s)\n", yyvsp[0].str)); + if(strcmp(yyvsp[0].str, "") == 0 || strcmp(yyvsp[0].str, "0") == 0) cfg_parser->cfg->stat_interval = 0; - else if(atoi((yyvsp[(2) - (2)].str)) == 0) + else if(atoi(yyvsp[0].str) == 0) yyerror("number expected"); - else cfg_parser->cfg->stat_interval = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->stat_interval = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 101: +break; +case 100: #line 210 "util/configparser.y" - { - OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_statistics_cumulative:%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->stat_cumulative = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->stat_cumulative = (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 102: +break; +case 101: #line 219 "util/configparser.y" - { - OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_extended_statistics:%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->stat_extended = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->stat_extended = (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 103: +break; +case 102: #line 228 "util/configparser.y" - { - OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +{ + OUTYY(("P(server_port:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0) yyerror("port number expected"); - else cfg_parser->cfg->port = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->port = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 104: +break; +case 103: #line 237 "util/configparser.y" - { - OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(server_interface:%s)\n", yyvsp[0].str)); if(cfg_parser->cfg->num_ifs == 0) cfg_parser->cfg->ifs = calloc(1, sizeof(char*)); else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs, @@ -1982,14 +951,13 @@ yyreduce: if(!cfg_parser->cfg->ifs) yyerror("out of memory"); else - cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = yyvsp[0].str; } - break; - - case 105: +break; +case 104: #line 250 "util/configparser.y" - { - OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(server_outgoing_interface:%s)\n", yyvsp[0].str)); if(cfg_parser->cfg->num_out_ifs == 0) cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*)); else cfg_parser->cfg->out_ifs = realloc( @@ -1999,748 +967,682 @@ yyreduce: yyerror("out of memory"); else cfg_parser->cfg->out_ifs[ - cfg_parser->cfg->num_out_ifs++] = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->num_out_ifs++] = yyvsp[0].str; } - break; - - case 106: +break; +case 105: #line 265 "util/configparser.y" - { - OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +{ + OUTYY(("P(server_outgoing_range:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0) yyerror("number expected"); - else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->outgoing_num_ports = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 107: +break; +case 106: #line 274 "util/configparser.y" - { - OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, +{ + OUTYY(("P(server_outgoing_port_permit:%s)\n", yyvsp[0].str)); + if(!cfg_mark_ports(yyvsp[0].str, 1, cfg_parser->cfg->outgoing_avail_ports, 65536)) yyerror("port number or range (\"low-high\") expected"); - free((yyvsp[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 108: +break; +case 107: #line 283 "util/configparser.y" - { - OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, +{ + OUTYY(("P(server_outgoing_port_avoid:%s)\n", yyvsp[0].str)); + if(!cfg_mark_ports(yyvsp[0].str, 0, cfg_parser->cfg->outgoing_avail_ports, 65536)) yyerror("port number or range (\"low-high\") expected"); - free((yyvsp[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 109: +break; +case 108: #line 292 "util/configparser.y" - { - OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +{ + OUTYY(("P(server_outgoing_num_tcp:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->outgoing_num_tcp = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 110: +break; +case 109: #line 301 "util/configparser.y" - { - OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +{ + OUTYY(("P(server_incoming_num_tcp:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->incoming_num_tcp = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 111: +break; +case 110: #line 310 "util/configparser.y" - { - OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_interface_automatic:%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->if_automatic = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->if_automatic = (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 112: +break; +case 111: #line 319 "util/configparser.y" - { - OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_do_ip4:%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->do_ip4 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->do_ip4 = (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 113: +break; +case 112: #line 328 "util/configparser.y" - { - OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_do_ip6:%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->do_ip6 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->do_ip6 = (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 114: +break; +case 113: #line 337 "util/configparser.y" - { - OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_do_udp:%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->do_udp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->do_udp = (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 115: +break; +case 114: #line 346 "util/configparser.y" - { - OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_do_tcp:%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->do_tcp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->do_tcp = (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 116: +break; +case 115: #line 355 "util/configparser.y" - { - OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_do_daemonize:%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->do_daemonize = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->do_daemonize = (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 117: +break; +case 116: #line 364 "util/configparser.y" - { - OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_use_syslog:%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->use_syslog = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -#ifndef HAVE_SYSLOG_H - if(strcmp((yyvsp[(2) - (2)].str), "yes") == 0) + else cfg_parser->cfg->use_syslog = (strcmp(yyvsp[0].str, "yes")==0); +#if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS) + if(strcmp(yyvsp[0].str, "yes") == 0) yyerror("no syslog services are available. " "(reconfigure and compile to add)"); #endif - free((yyvsp[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 118: +break; +case 117: #line 378 "util/configparser.y" - { - OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_log_time_ascii:%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->log_time_ascii = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->log_time_ascii = (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 119: +break; +case 118: #line 387 "util/configparser.y" - { - OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(server_chroot:%s)\n", yyvsp[0].str)); free(cfg_parser->cfg->chrootdir); - cfg_parser->cfg->chrootdir = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->chrootdir = yyvsp[0].str; } - break; - - case 120: +break; +case 119: #line 394 "util/configparser.y" - { - OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(server_username:%s)\n", yyvsp[0].str)); free(cfg_parser->cfg->username); - cfg_parser->cfg->username = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->username = yyvsp[0].str; } - break; - - case 121: +break; +case 120: #line 401 "util/configparser.y" - { - OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(server_directory:%s)\n", yyvsp[0].str)); free(cfg_parser->cfg->directory); - cfg_parser->cfg->directory = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->directory = yyvsp[0].str; } - break; - - case 122: +break; +case 121: #line 408 "util/configparser.y" - { - OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(server_logfile:%s)\n", yyvsp[0].str)); free(cfg_parser->cfg->logfile); - cfg_parser->cfg->logfile = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->logfile = yyvsp[0].str; cfg_parser->cfg->use_syslog = 0; } - break; - - case 123: +break; +case 122: #line 416 "util/configparser.y" - { - OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(server_pidfile:%s)\n", yyvsp[0].str)); free(cfg_parser->cfg->pidfile); - cfg_parser->cfg->pidfile = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->pidfile = yyvsp[0].str; } - break; - - case 124: +break; +case 123: #line 423 "util/configparser.y" - { - OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) +{ + 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"); } - break; - - case 125: +break; +case 124: #line 430 "util/configparser.y" - { - OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); +{ + 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[(2) - (2)].str); + cfg_parser->cfg->dlv_anchor_file = yyvsp[0].str; } - break; - - case 126: +break; +case 125: #line 437 "util/configparser.y" - { - OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str))) +{ + 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"); } - break; - - case 127: +break; +case 126: #line 444 "util/configparser.y" - { - OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(server_trust_anchor_file:%s)\n", yyvsp[0].str)); if(!cfg_strlist_insert(&cfg_parser->cfg-> - trust_anchor_file_list, (yyvsp[(2) - (2)].str))) + trust_anchor_file_list, yyvsp[0].str)) yyerror("out of memory"); } - break; - - case 128: +break; +case 127: #line 452 "util/configparser.y" - { - OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(server_trusted_keys_file:%s)\n", yyvsp[0].str)); if(!cfg_strlist_insert(&cfg_parser->cfg-> - trusted_keys_file_list, (yyvsp[(2) - (2)].str))) + trusted_keys_file_list, yyvsp[0].str)) yyerror("out of memory"); } - break; - - case 129: +break; +case 128: #line 460 "util/configparser.y" - { - OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) +{ + 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"); } - break; - - case 130: +break; +case 129: #line 467 "util/configparser.y" - { - OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_hide_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->hide_identity = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->hide_identity = (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 131: +break; +case 130: #line 476 "util/configparser.y" - { - OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_hide_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->hide_version = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->hide_version = (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 132: +break; +case 131: #line 485 "util/configparser.y" - { - OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(server_identity:%s)\n", yyvsp[0].str)); free(cfg_parser->cfg->identity); - cfg_parser->cfg->identity = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->identity = yyvsp[0].str; } - break; - - case 133: +break; +case 132: #line 492 "util/configparser.y" - { - OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(server_version:%s)\n", yyvsp[0].str)); free(cfg_parser->cfg->version); - cfg_parser->cfg->version = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->version = yyvsp[0].str; } - break; - - case 134: +break; +case 133: #line 499 "util/configparser.y" - { - OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +{ + OUTYY(("P(server_msg_buffer_size:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0) yyerror("number expected"); - else if (atoi((yyvsp[(2) - (2)].str)) < 4096) + else if (atoi(yyvsp[0].str) < 4096) yyerror("message buffer size too small (use 4096)"); - else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->msg_buffer_size = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 135: +break; +case 134: #line 510 "util/configparser.y" - { - OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) +{ + 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[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 136: +break; +case 135: #line 518 "util/configparser.y" - { - OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +{ + OUTYY(("P(server_msg_cache_slabs:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0) yyerror("number expected"); else { - cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->msg_cache_slabs = atoi(yyvsp[0].str); if(!is_pow2(cfg_parser->cfg->msg_cache_slabs)) yyerror("must be a power of 2"); } - free((yyvsp[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 137: +break; +case 136: #line 531 "util/configparser.y" - { - OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +{ + OUTYY(("P(server_num_queries_per_thread:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0) yyerror("number expected"); - else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->num_queries_per_thread = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 138: +break; +case 137: #line 540 "util/configparser.y" - { - OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +{ + OUTYY(("P(server_jostle_timeout:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->jostle_time = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->jostle_time = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 139: +break; +case 138: #line 549 "util/configparser.y" - { - OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size)) +{ + 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[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 140: +break; +case 139: #line 557 "util/configparser.y" - { - OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +{ + OUTYY(("P(server_rrset_cache_slabs:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0) yyerror("number expected"); else { - cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->rrset_cache_slabs = atoi(yyvsp[0].str); if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs)) yyerror("must be a power of 2"); } - free((yyvsp[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 141: +break; +case 140: #line 570 "util/configparser.y" - { - OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +{ + OUTYY(("P(server_infra_host_ttl:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->host_ttl = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->host_ttl = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 142: +break; +case 141: #line 579 "util/configparser.y" - { - OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +{ + OUTYY(("P(server_infra_lame_ttl:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->lame_ttl = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->lame_ttl = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 143: +break; +case 142: #line 588 "util/configparser.y" - { - OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +{ + OUTYY(("P(server_infra_cache_numhosts:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0) yyerror("number expected"); - else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->infra_cache_numhosts = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 144: +break; +case 143: #line 597 "util/configparser.y" - { - OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg-> +{ + OUTYY(("P(server_infra_cache_lame_size:%s)\n", yyvsp[0].str)); + if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg-> infra_cache_lame_size)) yyerror("number expected"); - free((yyvsp[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 145: +break; +case 144: #line 606 "util/configparser.y" - { - OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +{ + OUTYY(("P(server_infra_cache_slabs:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0) yyerror("number expected"); else { - cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->infra_cache_slabs = atoi(yyvsp[0].str); if(!is_pow2(cfg_parser->cfg->infra_cache_slabs)) yyerror("must be a power of 2"); } - free((yyvsp[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 146: +break; +case 145: #line 619 "util/configparser.y" - { - OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); +{ + 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[(2) - (2)].str); + cfg_parser->cfg->target_fetch_policy = yyvsp[0].str; } - break; - - case 147: +break; +case 146: #line 626 "util/configparser.y" - { - OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_harden_short_bufsize:%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->harden_short_bufsize = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 148: +break; +case 147: #line 636 "util/configparser.y" - { - OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_harden_large_queries:%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->harden_large_queries = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 149: +break; +case 148: #line 646 "util/configparser.y" - { - OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_harden_glue:%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->harden_glue = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 150: +break; +case 149: #line 656 "util/configparser.y" - { - OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_harden_dnssec_stripped:%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->harden_dnssec_stripped = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 151: +break; +case 150: #line 666 "util/configparser.y" - { - OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_harden_referral_path:%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->harden_referral_path = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 152: +break; +case 151: #line 676 "util/configparser.y" - { - OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + 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) yyerror("expected yes or no."); else cfg_parser->cfg->use_caps_bits_for_id = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 153: +break; +case 152: #line 686 "util/configparser.y" - { - OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str))) +{ + 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"); } - break; - - case 154: +break; +case 153: #line 693 "util/configparser.y" - { - OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str))) +{ + 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"); } - break; - - case 155: +break; +case 154: #line 700 "util/configparser.y" - { - OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +{ + OUTYY(("P(server_unwanted_reply_threshold:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->unwanted_threshold = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 156: +break; +case 155: #line 709 "util/configparser.y" - { - OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) +{ + 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"); } - break; - - case 157: +break; +case 156: #line 716 "util/configparser.y" - { - OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + 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) yyerror("expected yes or no."); else cfg_parser->cfg->donotquery_localhost = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 158: +break; +case 157: #line 726 "util/configparser.y" - { - OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); - if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && - strcmp((yyvsp[(3) - (3)].str), "allow")!=0 && - strcmp((yyvsp[(3) - (3)].str), "allow_snoop")!=0) { +{ + 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 && + strcmp(yyvsp[0].str, "allow")!=0 && + strcmp(yyvsp[0].str, "allow_snoop")!=0) { yyerror("expected deny, refuse, allow or allow_snoop " "in access control action"); } else { - if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + if(!cfg_str2list_insert(&cfg_parser->cfg->acls, yyvsp[-1].str, yyvsp[0].str)) fatal_exit("out of memory adding acl"); } } - break; - - case 159: +break; +case 158: #line 740 "util/configparser.y" - { - OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(server_module_conf:%s)\n", yyvsp[0].str)); free(cfg_parser->cfg->module_conf); - cfg_parser->cfg->module_conf = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->module_conf = yyvsp[0].str; } - break; - - case 160: +break; +case 159: #line 747 "util/configparser.y" - { - OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); - if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { +{ + OUTYY(("P(server_val_override_date:%s)\n", yyvsp[0].str)); + if(strlen(yyvsp[0].str) == 0 || strcmp(yyvsp[0].str, "0") == 0) { cfg_parser->cfg->val_date_override = 0; - } else if(strlen((yyvsp[(2) - (2)].str)) == 14) { + } else if(strlen(yyvsp[0].str) == 14) { cfg_parser->cfg->val_date_override = - cfg_convert_timeval((yyvsp[(2) - (2)].str)); + cfg_convert_timeval(yyvsp[0].str); if(!cfg_parser->cfg->val_date_override) yyerror("bad date/time specification"); } else { - if(atoi((yyvsp[(2) - (2)].str)) == 0) + if(atoi(yyvsp[0].str) == 0) yyerror("number expected"); - cfg_parser->cfg->val_date_override = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->val_date_override = atoi(yyvsp[0].str); } - free((yyvsp[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 161: +break; +case 160: #line 765 "util/configparser.y" - { - OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +{ + OUTYY(("P(server_cache_max_ttl:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->max_ttl = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->max_ttl = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 162: +break; +case 161: #line 774 "util/configparser.y" - { - OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +{ + OUTYY(("P(server_bogus_ttl:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->bogus_ttl = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 163: +break; +case 162: #line 783 "util/configparser.y" - { - OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_val_clean_additional:%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->val_clean_additional = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 164: +break; +case 163: #line 793 "util/configparser.y" - { - OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(server_val_permissive_mode:%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->val_permissive_mode = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 165: +break; +case 164: #line 803 "util/configparser.y" - { - OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); +{ + 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[(2) - (2)].str); + cfg_parser->cfg->val_nsec3_key_iterations = yyvsp[0].str; } - break; - - case 166: +break; +case 165: #line 810 "util/configparser.y" - { - OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size)) +{ + 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[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 167: +break; +case 166: #line 818 "util/configparser.y" - { - OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +{ + OUTYY(("P(server_key_cache_slabs:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0) yyerror("number expected"); else { - cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->key_cache_slabs = atoi(yyvsp[0].str); if(!is_pow2(cfg_parser->cfg->key_cache_slabs)) yyerror("must be a power of 2"); } - free((yyvsp[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 168: +break; +case 167: #line 831 "util/configparser.y" - { - OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) +{ + 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[(2) - (2)].str)); + free(yyvsp[0].str); } - break; - - case 169: +break; +case 168: #line 839 "util/configparser.y" - { - OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); - if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && - strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && strcmp((yyvsp[(3) - (3)].str), "redirect")!=0 && - strcmp((yyvsp[(3) - (3)].str), "transparent")!=0 && strcmp((yyvsp[(3) - (3)].str), "nodefault")!=0) +{ + 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 && + strcmp(yyvsp[0].str, "refuse")!=0 && strcmp(yyvsp[0].str, "redirect")!=0 && + strcmp(yyvsp[0].str, "transparent")!=0 && strcmp(yyvsp[0].str, "nodefault")!=0) yyerror("local-zone type: expected static, deny, " "refuse, redirect, transparent or nodefault"); - else if(strcmp((yyvsp[(3) - (3)].str), "nodefault")==0) { + else if(strcmp(yyvsp[0].str, "nodefault")==0) { if(!cfg_strlist_insert(&cfg_parser->cfg-> - local_zones_nodefault, (yyvsp[(2) - (3)].str))) + local_zones_nodefault, yyvsp[-1].str)) fatal_exit("out of memory adding local-zone"); - free((yyvsp[(3) - (3)].str)); + free(yyvsp[0].str); } else { if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones, - (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + yyvsp[-1].str, yyvsp[0].str)) fatal_exit("out of memory adding local-zone"); } } - break; - - case 170: +break; +case 169: #line 859 "util/configparser.y" - { - OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str))) +{ + 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"); } - break; - - case 171: +break; +case 170: #line 866 "util/configparser.y" - { +{ char* ptr; - OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); - ptr = cfg_ptr_reverse((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + OUTYY(("P(server_local_data_ptr:%s)\n", yyvsp[0].str)); + ptr = cfg_ptr_reverse(yyvsp[0].str); + free(yyvsp[0].str); if(ptr) { if(!cfg_strlist_insert(&cfg_parser->cfg-> local_data, ptr)) @@ -2749,367 +1651,190 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } - break; - - case 172: +break; +case 171: #line 881 "util/configparser.y" - { - OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(name:%s)\n", yyvsp[0].str)); free(cfg_parser->cfg->stubs->name); - cfg_parser->cfg->stubs->name = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->stubs->name = yyvsp[0].str; } - break; - - case 173: +break; +case 172: #line 888 "util/configparser.y" - { - OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str))) +{ + 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"); } - break; - - case 174: +break; +case 173: #line 895 "util/configparser.y" - { - OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str))) +{ + 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"); } - break; - - case 175: +break; +case 174: #line 902 "util/configparser.y" - { - OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(stub-prime:%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->stubs->isprime = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 176: +break; +case 175: #line 912 "util/configparser.y" - { - OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); +{ + OUTYY(("P(name:%s)\n", yyvsp[0].str)); free(cfg_parser->cfg->forwards->name); - cfg_parser->cfg->forwards->name = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->forwards->name = yyvsp[0].str; } - break; - - case 177: +break; +case 176: #line 919 "util/configparser.y" - { - OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str))) +{ + 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"); } - break; - - case 178: +break; +case 177: #line 926 "util/configparser.y" - { - OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str))) +{ + 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"); } - break; - - case 179: +break; +case 178: #line 933 "util/configparser.y" - { +{ OUTYY(("\nP(remote-control:)\n")); } - break; - - case 189: +break; +case 188: #line 944 "util/configparser.y" - { - OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +{ + OUTYY(("P(control_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->remote_control_enable = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp(yyvsp[0].str, "yes")==0); + free(yyvsp[0].str); } - break; - - case 190: +break; +case 189: #line 954 "util/configparser.y" - { - OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +{ + OUTYY(("P(control_port:%s)\n", yyvsp[0].str)); + if(atoi(yyvsp[0].str) == 0) yyerror("control port number expected"); - else cfg_parser->cfg->control_port = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->control_port = atoi(yyvsp[0].str); + free(yyvsp[0].str); } - break; - - case 191: +break; +case 190: #line 963 "util/configparser.y" - { - OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str))) +{ + 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"); } - break; - - case 192: +break; +case 191: #line 970 "util/configparser.y" - { - OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); +{ + 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[(2) - (2)].str); + cfg_parser->cfg->server_key_file = yyvsp[0].str; } - break; - - case 193: +break; +case 192: #line 977 "util/configparser.y" - { - OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); +{ + 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[(2) - (2)].str); + cfg_parser->cfg->server_cert_file = yyvsp[0].str; } - break; - - case 194: +break; +case 193: #line 984 "util/configparser.y" - { - OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); +{ + 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[(2) - (2)].str); + cfg_parser->cfg->control_key_file = yyvsp[0].str; } - break; - - case 195: +break; +case 194: #line 991 "util/configparser.y" - { - OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); +{ + 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[(2) - (2)].str); + cfg_parser->cfg->control_cert_file = yyvsp[0].str; } - break; - - -/* Line 1267 of yacc.c. */ -#line 2898 "util/configparser.c" - default: break; +break; +#line 1782 "util/configparser.c" } - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); - - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - - *++yyvsp = yyval; - - - /* Now `shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) + yyssp -= yym; + yystate = *yyssp; + yyvsp -= yym; + yym = yylhs[yyn]; + if (yystate == 0 && yym == 0) { - ++yynerrs; -#if ! YYERROR_VERBOSE - yyerror (YY_("syntax error")); -#else - { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } - } +#if YYDEBUG + if (yydebug) + printf("%sdebug: after reduction, shifting from state 0 to\ + state %d\n", YYPREFIX, YYFINAL); #endif + yystate = YYFINAL; + *++yyssp = YYFINAL; + *++yyvsp = yyval; + if (yychar < 0) + { + if ((yychar = yylex()) < 0) yychar = 0; +#if YYDEBUG + if (yydebug) + { + yys = 0; + if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; + if (!yys) yys = "illegal-symbol"; + printf("%sdebug: state %d, reading %d (%s)\n", + YYPREFIX, YYFINAL, yychar, yys); + } +#endif + } + if (yychar == 0) goto yyaccept; + goto yyloop; } - - - - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse look-ahead token after an - error, discard it. */ - - if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } - else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } - } - - /* Else will try to reuse look-ahead token after shifting the error - token. */ - goto yyerrlab1; - - -/*---------------------------------------------------. -| yyerrorlab -- error raised explicitly by YYERROR. | -`---------------------------------------------------*/ -yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - - /* Do not reclaim the symbols of the rule which action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - yystate = *yyssp; - goto yyerrlab1; - - -/*-------------------------------------------------------------. -| yyerrlab1 -- common code for both syntax error and YYERROR. | -`-------------------------------------------------------------*/ -yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ - - for (;;) - { - yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) - YYABORT; - - - yydestruct ("Error: popping", - yystos[yystate], yyvsp); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); - } - - if (yyn == YYFINAL) - YYACCEPT; - - *++yyvsp = yylval; - - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -#ifndef yyoverflow -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); - yyresult = 2; - /* Fall through. */ + if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == yystate) + yystate = yytable[yyn]; + else + yystate = yydgoto[yym]; +#if YYDEBUG + if (yydebug) + printf("%sdebug: after reduction, shifting from state %d \ +to state %d\n", YYPREFIX, *yyssp, yystate); #endif - -yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - /* Do not reclaim the symbols of the rule which action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) + if (yyssp >= yysslim && yygrowstack()) { - yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); - YYPOPSTACK (1); + goto yyoverflow; } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - /* Make sure YYID is used. */ - return YYID (yyresult); -} + *++yyssp = yystate; + *++yyvsp = yyval; + goto yyloop; +yyoverflow: + yyerror("yacc stack overflow"); -#line 997 "util/configparser.y" - - -/* parse helper routines could be here */ +yyabort: + return (1); +yyaccept: + return (0); +} diff --git a/util/configparser.h b/util/configparser.h index e1e4b4de4..0a57716e8 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,262 +1,103 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Skeleton interface for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - SPACE = 258, - LETTER = 259, - NEWLINE = 260, - COMMENT = 261, - COLON = 262, - ANY = 263, - ZONESTR = 264, - STRING = 265, - VAR_SERVER = 266, - VAR_VERBOSITY = 267, - VAR_NUM_THREADS = 268, - VAR_PORT = 269, - VAR_OUTGOING_RANGE = 270, - VAR_INTERFACE = 271, - VAR_DO_IP4 = 272, - VAR_DO_IP6 = 273, - VAR_DO_UDP = 274, - VAR_DO_TCP = 275, - VAR_CHROOT = 276, - VAR_USERNAME = 277, - VAR_DIRECTORY = 278, - VAR_LOGFILE = 279, - VAR_PIDFILE = 280, - VAR_MSG_CACHE_SIZE = 281, - VAR_MSG_CACHE_SLABS = 282, - VAR_NUM_QUERIES_PER_THREAD = 283, - VAR_RRSET_CACHE_SIZE = 284, - VAR_RRSET_CACHE_SLABS = 285, - VAR_OUTGOING_NUM_TCP = 286, - VAR_INFRA_HOST_TTL = 287, - VAR_INFRA_LAME_TTL = 288, - VAR_INFRA_CACHE_SLABS = 289, - VAR_INFRA_CACHE_NUMHOSTS = 290, - VAR_INFRA_CACHE_LAME_SIZE = 291, - VAR_NAME = 292, - VAR_STUB_ZONE = 293, - VAR_STUB_HOST = 294, - VAR_STUB_ADDR = 295, - VAR_TARGET_FETCH_POLICY = 296, - VAR_HARDEN_SHORT_BUFSIZE = 297, - VAR_HARDEN_LARGE_QUERIES = 298, - VAR_FORWARD_ZONE = 299, - VAR_FORWARD_HOST = 300, - VAR_FORWARD_ADDR = 301, - VAR_DO_NOT_QUERY_ADDRESS = 302, - VAR_HIDE_IDENTITY = 303, - VAR_HIDE_VERSION = 304, - VAR_IDENTITY = 305, - VAR_VERSION = 306, - VAR_HARDEN_GLUE = 307, - VAR_MODULE_CONF = 308, - VAR_TRUST_ANCHOR_FILE = 309, - VAR_TRUST_ANCHOR = 310, - VAR_VAL_OVERRIDE_DATE = 311, - VAR_BOGUS_TTL = 312, - VAR_VAL_CLEAN_ADDITIONAL = 313, - VAR_VAL_PERMISSIVE_MODE = 314, - VAR_INCOMING_NUM_TCP = 315, - VAR_MSG_BUFFER_SIZE = 316, - VAR_KEY_CACHE_SIZE = 317, - VAR_KEY_CACHE_SLABS = 318, - VAR_TRUSTED_KEYS_FILE = 319, - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320, - VAR_USE_SYSLOG = 321, - VAR_OUTGOING_INTERFACE = 322, - VAR_ROOT_HINTS = 323, - VAR_DO_NOT_QUERY_LOCALHOST = 324, - VAR_CACHE_MAX_TTL = 325, - VAR_HARDEN_DNNSEC_STRIPPED = 326, - VAR_ACCESS_CONTROL = 327, - VAR_LOCAL_ZONE = 328, - VAR_LOCAL_DATA = 329, - VAR_INTERFACE_AUTOMATIC = 330, - VAR_STATISTICS_INTERVAL = 331, - VAR_DO_DAEMONIZE = 332, - VAR_USE_CAPS_FOR_ID = 333, - VAR_STATISTICS_CUMULATIVE = 334, - VAR_OUTGOING_PORT_PERMIT = 335, - VAR_OUTGOING_PORT_AVOID = 336, - VAR_DLV_ANCHOR_FILE = 337, - VAR_DLV_ANCHOR = 338, - VAR_NEG_CACHE_SIZE = 339, - VAR_HARDEN_REFERRAL_PATH = 340, - VAR_PRIVATE_ADDRESS = 341, - VAR_PRIVATE_DOMAIN = 342, - VAR_REMOTE_CONTROL = 343, - VAR_CONTROL_ENABLE = 344, - VAR_CONTROL_INTERFACE = 345, - VAR_CONTROL_PORT = 346, - VAR_SERVER_KEY_FILE = 347, - VAR_SERVER_CERT_FILE = 348, - VAR_CONTROL_KEY_FILE = 349, - VAR_CONTROL_CERT_FILE = 350, - VAR_EXTENDED_STATISTICS = 351, - VAR_LOCAL_DATA_PTR = 352, - VAR_JOSTLE_TIMEOUT = 353, - VAR_STUB_PRIME = 354, - VAR_UNWANTED_REPLY_THRESHOLD = 355, - VAR_LOG_TIME_ASCII = 356 - }; -#endif -/* Tokens. */ -#define SPACE 258 -#define LETTER 259 -#define NEWLINE 260 -#define COMMENT 261 -#define COLON 262 -#define ANY 263 -#define ZONESTR 264 -#define STRING 265 -#define VAR_SERVER 266 -#define VAR_VERBOSITY 267 -#define VAR_NUM_THREADS 268 -#define VAR_PORT 269 -#define VAR_OUTGOING_RANGE 270 -#define VAR_INTERFACE 271 -#define VAR_DO_IP4 272 -#define VAR_DO_IP6 273 -#define VAR_DO_UDP 274 -#define VAR_DO_TCP 275 -#define VAR_CHROOT 276 -#define VAR_USERNAME 277 -#define VAR_DIRECTORY 278 -#define VAR_LOGFILE 279 -#define VAR_PIDFILE 280 -#define VAR_MSG_CACHE_SIZE 281 -#define VAR_MSG_CACHE_SLABS 282 -#define VAR_NUM_QUERIES_PER_THREAD 283 -#define VAR_RRSET_CACHE_SIZE 284 -#define VAR_RRSET_CACHE_SLABS 285 -#define VAR_OUTGOING_NUM_TCP 286 -#define VAR_INFRA_HOST_TTL 287 -#define VAR_INFRA_LAME_TTL 288 -#define VAR_INFRA_CACHE_SLABS 289 -#define VAR_INFRA_CACHE_NUMHOSTS 290 -#define VAR_INFRA_CACHE_LAME_SIZE 291 -#define VAR_NAME 292 -#define VAR_STUB_ZONE 293 -#define VAR_STUB_HOST 294 -#define VAR_STUB_ADDR 295 -#define VAR_TARGET_FETCH_POLICY 296 -#define VAR_HARDEN_SHORT_BUFSIZE 297 -#define VAR_HARDEN_LARGE_QUERIES 298 -#define VAR_FORWARD_ZONE 299 -#define VAR_FORWARD_HOST 300 -#define VAR_FORWARD_ADDR 301 -#define VAR_DO_NOT_QUERY_ADDRESS 302 -#define VAR_HIDE_IDENTITY 303 -#define VAR_HIDE_VERSION 304 -#define VAR_IDENTITY 305 -#define VAR_VERSION 306 -#define VAR_HARDEN_GLUE 307 -#define VAR_MODULE_CONF 308 -#define VAR_TRUST_ANCHOR_FILE 309 -#define VAR_TRUST_ANCHOR 310 -#define VAR_VAL_OVERRIDE_DATE 311 -#define VAR_BOGUS_TTL 312 -#define VAR_VAL_CLEAN_ADDITIONAL 313 -#define VAR_VAL_PERMISSIVE_MODE 314 -#define VAR_INCOMING_NUM_TCP 315 -#define VAR_MSG_BUFFER_SIZE 316 -#define VAR_KEY_CACHE_SIZE 317 -#define VAR_KEY_CACHE_SLABS 318 -#define VAR_TRUSTED_KEYS_FILE 319 -#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 320 -#define VAR_USE_SYSLOG 321 -#define VAR_OUTGOING_INTERFACE 322 -#define VAR_ROOT_HINTS 323 -#define VAR_DO_NOT_QUERY_LOCALHOST 324 -#define VAR_CACHE_MAX_TTL 325 -#define VAR_HARDEN_DNNSEC_STRIPPED 326 -#define VAR_ACCESS_CONTROL 327 -#define VAR_LOCAL_ZONE 328 -#define VAR_LOCAL_DATA 329 -#define VAR_INTERFACE_AUTOMATIC 330 -#define VAR_STATISTICS_INTERVAL 331 -#define VAR_DO_DAEMONIZE 332 -#define VAR_USE_CAPS_FOR_ID 333 -#define VAR_STATISTICS_CUMULATIVE 334 -#define VAR_OUTGOING_PORT_PERMIT 335 -#define VAR_OUTGOING_PORT_AVOID 336 -#define VAR_DLV_ANCHOR_FILE 337 -#define VAR_DLV_ANCHOR 338 -#define VAR_NEG_CACHE_SIZE 339 -#define VAR_HARDEN_REFERRAL_PATH 340 -#define VAR_PRIVATE_ADDRESS 341 -#define VAR_PRIVATE_DOMAIN 342 -#define VAR_REMOTE_CONTROL 343 -#define VAR_CONTROL_ENABLE 344 -#define VAR_CONTROL_INTERFACE 345 -#define VAR_CONTROL_PORT 346 -#define VAR_SERVER_KEY_FILE 347 -#define VAR_SERVER_CERT_FILE 348 -#define VAR_CONTROL_KEY_FILE 349 -#define VAR_CONTROL_CERT_FILE 350 -#define VAR_EXTENDED_STATISTICS 351 -#define VAR_LOCAL_DATA_PTR 352 -#define VAR_JOSTLE_TIMEOUT 353 -#define VAR_STUB_PRIME 354 -#define VAR_UNWANTED_REPLY_THRESHOLD 355 -#define VAR_LOG_TIME_ASCII 356 - - - - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -#line 64 "util/configparser.y" -{ +#define SPACE 257 +#define LETTER 258 +#define NEWLINE 259 +#define COMMENT 260 +#define COLON 261 +#define ANY 262 +#define ZONESTR 263 +#define STRING 264 +#define VAR_SERVER 265 +#define VAR_VERBOSITY 266 +#define VAR_NUM_THREADS 267 +#define VAR_PORT 268 +#define VAR_OUTGOING_RANGE 269 +#define VAR_INTERFACE 270 +#define VAR_DO_IP4 271 +#define VAR_DO_IP6 272 +#define VAR_DO_UDP 273 +#define VAR_DO_TCP 274 +#define VAR_CHROOT 275 +#define VAR_USERNAME 276 +#define VAR_DIRECTORY 277 +#define VAR_LOGFILE 278 +#define VAR_PIDFILE 279 +#define VAR_MSG_CACHE_SIZE 280 +#define VAR_MSG_CACHE_SLABS 281 +#define VAR_NUM_QUERIES_PER_THREAD 282 +#define VAR_RRSET_CACHE_SIZE 283 +#define VAR_RRSET_CACHE_SLABS 284 +#define VAR_OUTGOING_NUM_TCP 285 +#define VAR_INFRA_HOST_TTL 286 +#define VAR_INFRA_LAME_TTL 287 +#define VAR_INFRA_CACHE_SLABS 288 +#define VAR_INFRA_CACHE_NUMHOSTS 289 +#define VAR_INFRA_CACHE_LAME_SIZE 290 +#define VAR_NAME 291 +#define VAR_STUB_ZONE 292 +#define VAR_STUB_HOST 293 +#define VAR_STUB_ADDR 294 +#define VAR_TARGET_FETCH_POLICY 295 +#define VAR_HARDEN_SHORT_BUFSIZE 296 +#define VAR_HARDEN_LARGE_QUERIES 297 +#define VAR_FORWARD_ZONE 298 +#define VAR_FORWARD_HOST 299 +#define VAR_FORWARD_ADDR 300 +#define VAR_DO_NOT_QUERY_ADDRESS 301 +#define VAR_HIDE_IDENTITY 302 +#define VAR_HIDE_VERSION 303 +#define VAR_IDENTITY 304 +#define VAR_VERSION 305 +#define VAR_HARDEN_GLUE 306 +#define VAR_MODULE_CONF 307 +#define VAR_TRUST_ANCHOR_FILE 308 +#define VAR_TRUST_ANCHOR 309 +#define VAR_VAL_OVERRIDE_DATE 310 +#define VAR_BOGUS_TTL 311 +#define VAR_VAL_CLEAN_ADDITIONAL 312 +#define VAR_VAL_PERMISSIVE_MODE 313 +#define VAR_INCOMING_NUM_TCP 314 +#define VAR_MSG_BUFFER_SIZE 315 +#define VAR_KEY_CACHE_SIZE 316 +#define VAR_KEY_CACHE_SLABS 317 +#define VAR_TRUSTED_KEYS_FILE 318 +#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 319 +#define VAR_USE_SYSLOG 320 +#define VAR_OUTGOING_INTERFACE 321 +#define VAR_ROOT_HINTS 322 +#define VAR_DO_NOT_QUERY_LOCALHOST 323 +#define VAR_CACHE_MAX_TTL 324 +#define VAR_HARDEN_DNNSEC_STRIPPED 325 +#define VAR_ACCESS_CONTROL 326 +#define VAR_LOCAL_ZONE 327 +#define VAR_LOCAL_DATA 328 +#define VAR_INTERFACE_AUTOMATIC 329 +#define VAR_STATISTICS_INTERVAL 330 +#define VAR_DO_DAEMONIZE 331 +#define VAR_USE_CAPS_FOR_ID 332 +#define VAR_STATISTICS_CUMULATIVE 333 +#define VAR_OUTGOING_PORT_PERMIT 334 +#define VAR_OUTGOING_PORT_AVOID 335 +#define VAR_DLV_ANCHOR_FILE 336 +#define VAR_DLV_ANCHOR 337 +#define VAR_NEG_CACHE_SIZE 338 +#define VAR_HARDEN_REFERRAL_PATH 339 +#define VAR_PRIVATE_ADDRESS 340 +#define VAR_PRIVATE_DOMAIN 341 +#define VAR_REMOTE_CONTROL 342 +#define VAR_CONTROL_ENABLE 343 +#define VAR_CONTROL_INTERFACE 344 +#define VAR_CONTROL_PORT 345 +#define VAR_SERVER_KEY_FILE 346 +#define VAR_SERVER_CERT_FILE 347 +#define VAR_CONTROL_KEY_FILE 348 +#define VAR_CONTROL_CERT_FILE 349 +#define VAR_EXTENDED_STATISTICS 350 +#define VAR_LOCAL_DATA_PTR 351 +#define VAR_JOSTLE_TIMEOUT 352 +#define VAR_STUB_PRIME 353 +#define VAR_UNWANTED_REPLY_THRESHOLD 354 +#define VAR_LOG_TIME_ASCII 355 +typedef union { char* str; -} -/* Line 1489 of yacc.c. */ -#line 255 "util/configparser.h" - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 -#endif - +} YYSTYPE; extern YYSTYPE yylval; - diff --git a/util/configparser.y b/util/configparser.y index ee9791e1a..4318f5f4b 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -366,7 +366,7 @@ server_use_syslog: VAR_USE_SYSLOG STRING if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->use_syslog = (strcmp($2, "yes")==0); -#ifndef HAVE_SYSLOG_H +#if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS) if(strcmp($2, "yes") == 0) yyerror("no syslog services are available. " "(reconfigure and compile to add)");