diff options
Diffstat (limited to 'src/config-parser.c')
-rw-r--r-- | src/config-parser.c | 1705 |
1 files changed, 914 insertions, 791 deletions
diff --git a/src/config-parser.c b/src/config-parser.c index 221da4b..f9802a4 100644 --- a/src/config-parser.c +++ b/src/config-parser.c @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.5.1. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -48,7 +48,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.3.2" +#define YYBISON_VERSION "3.5.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -66,7 +66,7 @@ /* First part of user prologue. */ -#line 21 "config-parser.y" /* yacc.c:337 */ +#line 21 "config-parser.y" #include <string.h> @@ -78,7 +78,17 @@ int yylex(void); static void *tmp; /* Variable to temporarily hold nodes before insertion to list */ -#line 82 "config-parser.c" /* yacc.c:337 */ +#line 82 "config-parser.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast<Type> (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -99,8 +109,8 @@ static void *tmp; /* Variable to temporarily hold nodes before insertion to lis # define YYERROR_VERBOSE 0 #endif -/* In a future release of Bison, this section will be replaced - by #include "y.tab.h". */ +/* Use api.header.include to #include this header + instead of duplicating it here. */ #ifndef YY_YY_CONFIG_PARSER_H_INCLUDED # define YY_YY_CONFIG_PARSER_H_INCLUDED /* Debug traces. */ @@ -119,158 +129,161 @@ extern int yydebug; ADDRESS_FAMILY = 258, AWAY = 259, BAN_UNKNOWN = 260, - BLACKLIST = 261, - BYTES = 262, - KBYTES = 263, - MBYTES = 264, - CHANNEL = 265, - COMMAND_INTERVAL = 266, - COMMAND_QUEUE_SIZE = 267, - COMMAND_TIMEOUT = 268, - CONNREGEX = 269, - DNS_FDLIMIT = 270, - DNS_TIMEOUT = 271, - DNSBL_FROM = 272, - DNSBL_TO = 273, - EXEMPT = 274, - FD = 275, - INVITE = 276, - IPV4 = 277, - IPV6 = 278, - IRC = 279, - KLINE = 280, - KEY = 281, - MASK = 282, - MAX_READ = 283, - MODE = 284, - NAME = 285, - NEGCACHE = 286, - NEGCACHE_REBUILD = 287, - NICK = 288, - NICKSERV = 289, - NOTICE = 290, - OPER = 291, - OPM = 292, - OPTIONS = 293, - PASSWORD = 294, - PERFORM = 295, - PIDFILE = 296, - PORT = 297, - PROTOCOL = 298, - READTIMEOUT = 299, - REALNAME = 300, - RECONNECTINTERVAL = 301, - REPLY = 302, - SCANLOG = 303, - SCANNER = 304, - SECONDS = 305, - MINUTES = 306, - HOURS = 307, - DAYS = 308, - WEEKS = 309, - MONTHS = 310, - YEARS = 311, - SENDMAIL = 312, - SERVER = 313, - TARGET_IP = 314, - TARGET_PORT = 315, - TARGET_STRING = 316, - TIMEOUT = 317, - TLS = 318, - TLS_HOSTNAME_VERIFICATION = 319, - TYPE = 320, - USERNAME = 321, - USER = 322, - VHOST = 323, - NUMBER = 324, - STRING = 325, - PROTOCOLTYPE = 326 + BIND = 261, + BLACKLIST = 262, + BYTES = 263, + KBYTES = 264, + MBYTES = 265, + CHANNEL = 266, + COMMAND_INTERVAL = 267, + COMMAND_QUEUE_SIZE = 268, + COMMAND_TIMEOUT = 269, + CONNREGEX = 270, + DNS_FDLIMIT = 271, + DNS_TIMEOUT = 272, + DNSBL_FROM = 273, + DNSBL_TO = 274, + EXEMPT = 275, + FD = 276, + INVITE = 277, + IPV4 = 278, + IPV6 = 279, + IRC = 280, + KLINE = 281, + KEY = 282, + MASK = 283, + MAX_READ = 284, + MODE = 285, + NAME = 286, + NEGCACHE = 287, + NEGCACHE_REBUILD = 288, + NICK = 289, + NICKSERV = 290, + NOTICE = 291, + OPER = 292, + OPM = 293, + OPTIONS = 294, + PASSWORD = 295, + PERFORM = 296, + PIDFILE = 297, + PORT = 298, + PROTOCOL = 299, + RSA_PRIVATE_KEY_FILE = 300, + READTIMEOUT = 301, + REALNAME = 302, + RECONNECTINTERVAL = 303, + REPLY = 304, + SCANLOG = 305, + SCANNER = 306, + SECONDS = 307, + MINUTES = 308, + HOURS = 309, + DAYS = 310, + WEEKS = 311, + MONTHS = 312, + YEARS = 313, + SENDMAIL = 314, + SERVER = 315, + TARGET_IP = 316, + TARGET_PORT = 317, + TARGET_STRING = 318, + TIMEOUT = 319, + TLS = 320, + TLS_CERTIFICATE_FILE = 321, + TLS_HOSTNAME_VERIFICATION = 322, + TYPE = 323, + USERNAME = 324, + USER = 325, + NUMBER = 326, + STRING = 327, + PROTOCOLTYPE = 328 }; #endif /* Tokens. */ #define ADDRESS_FAMILY 258 #define AWAY 259 #define BAN_UNKNOWN 260 -#define BLACKLIST 261 -#define BYTES 262 -#define KBYTES 263 -#define MBYTES 264 -#define CHANNEL 265 -#define COMMAND_INTERVAL 266 -#define COMMAND_QUEUE_SIZE 267 -#define COMMAND_TIMEOUT 268 -#define CONNREGEX 269 -#define DNS_FDLIMIT 270 -#define DNS_TIMEOUT 271 -#define DNSBL_FROM 272 -#define DNSBL_TO 273 -#define EXEMPT 274 -#define FD 275 -#define INVITE 276 -#define IPV4 277 -#define IPV6 278 -#define IRC 279 -#define KLINE 280 -#define KEY 281 -#define MASK 282 -#define MAX_READ 283 -#define MODE 284 -#define NAME 285 -#define NEGCACHE 286 -#define NEGCACHE_REBUILD 287 -#define NICK 288 -#define NICKSERV 289 -#define NOTICE 290 -#define OPER 291 -#define OPM 292 -#define OPTIONS 293 -#define PASSWORD 294 -#define PERFORM 295 -#define PIDFILE 296 -#define PORT 297 -#define PROTOCOL 298 -#define READTIMEOUT 299 -#define REALNAME 300 -#define RECONNECTINTERVAL 301 -#define REPLY 302 -#define SCANLOG 303 -#define SCANNER 304 -#define SECONDS 305 -#define MINUTES 306 -#define HOURS 307 -#define DAYS 308 -#define WEEKS 309 -#define MONTHS 310 -#define YEARS 311 -#define SENDMAIL 312 -#define SERVER 313 -#define TARGET_IP 314 -#define TARGET_PORT 315 -#define TARGET_STRING 316 -#define TIMEOUT 317 -#define TLS 318 -#define TLS_HOSTNAME_VERIFICATION 319 -#define TYPE 320 -#define USERNAME 321 -#define USER 322 -#define VHOST 323 -#define NUMBER 324 -#define STRING 325 -#define PROTOCOLTYPE 326 +#define BIND 261 +#define BLACKLIST 262 +#define BYTES 263 +#define KBYTES 264 +#define MBYTES 265 +#define CHANNEL 266 +#define COMMAND_INTERVAL 267 +#define COMMAND_QUEUE_SIZE 268 +#define COMMAND_TIMEOUT 269 +#define CONNREGEX 270 +#define DNS_FDLIMIT 271 +#define DNS_TIMEOUT 272 +#define DNSBL_FROM 273 +#define DNSBL_TO 274 +#define EXEMPT 275 +#define FD 276 +#define INVITE 277 +#define IPV4 278 +#define IPV6 279 +#define IRC 280 +#define KLINE 281 +#define KEY 282 +#define MASK 283 +#define MAX_READ 284 +#define MODE 285 +#define NAME 286 +#define NEGCACHE 287 +#define NEGCACHE_REBUILD 288 +#define NICK 289 +#define NICKSERV 290 +#define NOTICE 291 +#define OPER 292 +#define OPM 293 +#define OPTIONS 294 +#define PASSWORD 295 +#define PERFORM 296 +#define PIDFILE 297 +#define PORT 298 +#define PROTOCOL 299 +#define RSA_PRIVATE_KEY_FILE 300 +#define READTIMEOUT 301 +#define REALNAME 302 +#define RECONNECTINTERVAL 303 +#define REPLY 304 +#define SCANLOG 305 +#define SCANNER 306 +#define SECONDS 307 +#define MINUTES 308 +#define HOURS 309 +#define DAYS 310 +#define WEEKS 311 +#define MONTHS 312 +#define YEARS 313 +#define SENDMAIL 314 +#define SERVER 315 +#define TARGET_IP 316 +#define TARGET_PORT 317 +#define TARGET_STRING 318 +#define TIMEOUT 319 +#define TLS 320 +#define TLS_CERTIFICATE_FILE 321 +#define TLS_HOSTNAME_VERIFICATION 322 +#define TYPE 323 +#define USERNAME 324 +#define USER 325 +#define NUMBER 326 +#define STRING 327 +#define PROTOCOLTYPE 328 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - union YYSTYPE { -#line 93 "config-parser.y" /* yacc.c:352 */ +#line 95 "config-parser.y" int number; char *string; -#line 272 "config-parser.c" /* yacc.c:352 */ -}; +#line 285 "config-parser.c" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -289,28 +302,75 @@ int yyparse (void); # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + <limits.h> and (if available) <stdint.h> are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include <limits.h> /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include <stdint.h> /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short yytype_uint16; +typedef short yytype_int16; +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; +#else +typedef short yytype_uint8; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; #else -typedef short yytype_int16; +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -318,7 +378,7 @@ typedef short yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -326,7 +386,19 @@ typedef short yytype_int16; # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + +/* Stored state numbers (used for stacks). */ +typedef yytype_int16 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -340,22 +412,20 @@ typedef short yytype_int16; # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else -# define YY_ATTRIBUTE(Spec) /* empty */ +# define YY_ATTRIBUTE_PURE # endif #endif -#ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) -#endif - #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ @@ -367,11 +437,11 @@ typedef short yytype_int16; #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -384,6 +454,20 @@ typedef short yytype_int16; # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) #if ! defined yyoverflow || YYERROR_VERBOSE @@ -460,17 +544,17 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (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)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -483,11 +567,11 @@ union yyalloc # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -499,12 +583,12 @@ union yyalloc # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -516,42 +600,43 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 355 +#define YYLAST 374 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 78 +#define YYNTOKENS 80 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 92 +#define YYNNTS 94 /* YYNRULES -- Number of rules. */ -#define YYNRULES 174 +#define YYNRULES 178 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 380 +#define YYNSTATES 390 #define YYUNDEFTOK 2 -#define YYMAXUTOK 326 +#define YYMAXUTOK 328 + /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_uint8 yytranslate[] = +static const yytype_int8 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, 77, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 76, 74, - 2, 75, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 79, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 78, 76, + 2, 77, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 72, 2, 73, 2, 2, 2, 2, + 2, 2, 2, 74, 2, 75, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -571,31 +656,31 @@ static const yytype_uint8 yytranslate[] = 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 + 65, 66, 67, 68, 69, 70, 71, 72, 73 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = -{ - 0, 108, 108, 109, 112, 113, 114, 115, 116, 117, - 119, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 130, 130, 131, 132, 133, 134, 139, 141, 142, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 155, - 160, 165, 171, 176, 181, 187, 192, 197, 204, 206, - 207, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 231, 237, 243, 249, 255, 261, 267, 273, - 278, 283, 288, 293, 298, 303, 308, 314, 320, 326, - 332, 341, 341, 354, 355, 357, 358, 359, 361, 369, - 377, 388, 388, 398, 399, 401, 402, 403, 405, 412, - 422, 422, 457, 458, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 471, 479, 487, 495, 508, 515, - 522, 529, 536, 552, 554, 555, 557, 558, 559, 560, - 561, 563, 569, 575, 584, 584, 600, 601, 603, 604, - 605, 606, 607, 608, 609, 611, 620, 619, 627, 627, - 628, 633, 640, 648, 660, 667, 669, 670, 672, 686, - 688, 689, 691, 692, 694 +static const yytype_int16 yyrline[] = +{ + 0, 110, 110, 111, 114, 115, 116, 117, 118, 119, + 121, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 132, 132, 133, 134, 135, 136, 141, 143, 144, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, + 162, 167, 173, 178, 183, 189, 194, 199, 206, 208, + 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 235, 241, 247, 253, 259, 265, + 271, 277, 282, 287, 292, 297, 304, 310, 315, 320, + 325, 331, 337, 343, 349, 358, 358, 371, 372, 374, + 375, 376, 378, 386, 394, 405, 405, 415, 416, 418, + 419, 420, 422, 429, 439, 439, 474, 475, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 488, 496, + 504, 512, 525, 532, 539, 546, 553, 569, 571, 572, + 574, 575, 576, 577, 578, 580, 586, 592, 601, 601, + 617, 618, 620, 621, 622, 623, 624, 625, 626, 628, + 637, 636, 644, 644, 645, 650, 657, 665, 677, 684, + 686, 687, 689, 703, 705, 706, 708, 709, 711 }; #endif @@ -605,32 +690,34 @@ static const yytype_uint16 yyrline[] = static const char *const yytname[] = { "$end", "error", "$undefined", "ADDRESS_FAMILY", "AWAY", "BAN_UNKNOWN", - "BLACKLIST", "BYTES", "KBYTES", "MBYTES", "CHANNEL", "COMMAND_INTERVAL", - "COMMAND_QUEUE_SIZE", "COMMAND_TIMEOUT", "CONNREGEX", "DNS_FDLIMIT", - "DNS_TIMEOUT", "DNSBL_FROM", "DNSBL_TO", "EXEMPT", "FD", "INVITE", - "IPV4", "IPV6", "IRC", "KLINE", "KEY", "MASK", "MAX_READ", "MODE", - "NAME", "NEGCACHE", "NEGCACHE_REBUILD", "NICK", "NICKSERV", "NOTICE", - "OPER", "OPM", "OPTIONS", "PASSWORD", "PERFORM", "PIDFILE", "PORT", - "PROTOCOL", "READTIMEOUT", "REALNAME", "RECONNECTINTERVAL", "REPLY", - "SCANLOG", "SCANNER", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", - "MONTHS", "YEARS", "SENDMAIL", "SERVER", "TARGET_IP", "TARGET_PORT", - "TARGET_STRING", "TIMEOUT", "TLS", "TLS_HOSTNAME_VERIFICATION", "TYPE", - "USERNAME", "USER", "VHOST", "NUMBER", "STRING", "PROTOCOLTYPE", "'{'", - "'}'", "';'", "'='", "':'", "','", "$accept", "config", "config_items", - "timespec_", "timespec", "sizespec_", "sizespec", "options_entry", - "options_items", "options_item", "options_negcache", - "options_negcache_rebuild", "options_pidfile", "options_dns_fdlimit", - "options_dns_timeout", "options_scanlog", "options_command_queue_size", + "BIND", "BLACKLIST", "BYTES", "KBYTES", "MBYTES", "CHANNEL", + "COMMAND_INTERVAL", "COMMAND_QUEUE_SIZE", "COMMAND_TIMEOUT", "CONNREGEX", + "DNS_FDLIMIT", "DNS_TIMEOUT", "DNSBL_FROM", "DNSBL_TO", "EXEMPT", "FD", + "INVITE", "IPV4", "IPV6", "IRC", "KLINE", "KEY", "MASK", "MAX_READ", + "MODE", "NAME", "NEGCACHE", "NEGCACHE_REBUILD", "NICK", "NICKSERV", + "NOTICE", "OPER", "OPM", "OPTIONS", "PASSWORD", "PERFORM", "PIDFILE", + "PORT", "PROTOCOL", "RSA_PRIVATE_KEY_FILE", "READTIMEOUT", "REALNAME", + "RECONNECTINTERVAL", "REPLY", "SCANLOG", "SCANNER", "SECONDS", "MINUTES", + "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SENDMAIL", "SERVER", + "TARGET_IP", "TARGET_PORT", "TARGET_STRING", "TIMEOUT", "TLS", + "TLS_CERTIFICATE_FILE", "TLS_HOSTNAME_VERIFICATION", "TYPE", "USERNAME", + "USER", "NUMBER", "STRING", "PROTOCOLTYPE", "'{'", "'}'", "';'", "'='", + "':'", "','", "$accept", "config", "config_items", "timespec_", + "timespec", "sizespec_", "sizespec", "options_entry", "options_items", + "options_item", "options_negcache", "options_negcache_rebuild", + "options_pidfile", "options_dns_fdlimit", "options_dns_timeout", + "options_scanlog", "options_command_queue_size", "options_command_interval", "options_command_timeout", "irc_entry", "irc_items", "irc_item", "irc_away", "irc_kline", "irc_mode", "irc_nick", "irc_nickserv", "irc_oper", "irc_password", "irc_perform", "irc_notice", - "irc_port", "irc_tls", "irc_tls_hostname_verification", + "irc_port", "irc_tls", "irc_rsa_private_key_file", + "irc_tls_certificate_file", "irc_tls_hostname_verification", "irc_readtimeout", "irc_reconnectinterval", "irc_realname", "irc_server", - "irc_username", "irc_vhost", "irc_connregex", "channel_entry", "$@1", + "irc_username", "irc_bind", "irc_connregex", "channel_entry", "$@1", "channel_items", "channel_item", "channel_name", "channel_key", "channel_invite", "user_entry", "$@2", "user_items", "user_item", "user_mask", "user_scanner", "scanner_entry", "$@3", "scanner_items", - "scanner_item", "scanner_name", "scanner_vhost", "scanner_target_ip", + "scanner_item", "scanner_name", "scanner_bind", "scanner_target_ip", "scanner_target_string", "scanner_fd", "scanner_target_port", "scanner_timeout", "scanner_max_read", "scanner_protocol", "opm_entry", "opm_items", "opm_item", "opm_dnsbl_from", "opm_dnsbl_to", @@ -646,7 +733,7 @@ static const char *const yytname[] = # ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -655,62 +742,63 @@ static const yytype_uint16 yytoknum[] = 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, 123, 125, 59, 61, 58, 44 + 325, 326, 327, 328, 123, 125, 59, 61, 58, 44 }; # endif -#define YYPACT_NINF -304 +#define YYPACT_NINF (-209) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-304))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -145 +#define YYTABLE_NINF (-149) -#define yytable_value_is_error(Yytable_value) \ +#define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - -304, 164, -304, -65, -56, -52, -48, -304, -304, -304, - -304, -37, -304, -6, -304, -304, 10, 123, 83, 183, - -23, -22, -304, -13, 4, -304, -304, -304, -5, 1, - 7, 11, 17, 18, 20, 27, 28, 29, 33, 34, - 36, 39, 41, 43, 47, 50, 51, 0, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, 59, - -304, 56, 60, 61, 73, -304, -304, -304, -304, -304, - 69, -304, 63, 66, 68, 70, 74, 75, 78, 79, - 85, 40, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, 93, 150, 64, 92, -304, 101, 103, 104, - 106, 107, 112, 115, 120, 122, 127, 131, 134, 135, - 134, 136, 138, 139, 146, 147, 98, -304, 132, 149, - 151, 152, 153, -304, 148, 134, 154, 134, 156, 134, - 134, 134, 158, 159, 172, -304, -304, 155, 173, 5, - -304, -304, -304, -304, 174, 175, 177, 178, 179, 180, - 181, 184, 185, 37, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, 187, -304, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 182, 199, 200, - 201, 202, 203, 204, 205, 206, -304, -18, 207, 208, - 209, -304, 114, 210, 211, 212, 213, 214, 215, 216, - 217, 218, -304, 223, 224, 221, -304, 157, 227, 228, - 176, 229, 231, 232, 134, 233, 230, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - 134, 134, 134, 134, 134, 134, 134, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, 222, 226, 234, - 102, -304, -304, -304, -304, -304, -304, -304, -304, -304, - 235, 236, 237, 186, 238, 82, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, 240, 241, -304, 242, 52, 243, 244, 245, - 246, 248, 249, 250, 251, -304, -304, -304, -304, -304, - -304, -304, -304, 256, 257, 258, 255, -304, 259, 239, - 260, 261, 263, 265, 262, -304, -304, -304, -304, 227, - 227, 227, -304, -304, -304, -304, 264, -304, -304, -304, - -304, -304, 266, 267, 268, -304, 25, 269, 270, 271, - 272, -60, -304, 274, -304, -304, -304, -304, 275, -304, - -304, -304, -304, -304, -59, -304, -304, -304, -304, 276, - 277, -304, -304, -304, -304, 25, 278, -304, -304, -304 + -209, 77, -209, -69, -67, -61, -49, -209, -209, -209, + -209, -28, -209, -7, -209, -209, 63, 116, 71, 183, + -25, -17, -209, 10, 30, -209, -209, -209, 15, 23, + 27, 41, 42, 44, 49, 59, 60, 61, 62, 64, + 66, 67, 68, 70, 72, 96, 97, 98, 101, 0, + -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, + -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, + -209, -209, -209, 75, -209, 102, 110, 112, 9, -209, + -209, -209, -209, -209, 92, -209, 114, 117, 121, 124, + 125, 127, 135, 136, 137, 38, -209, -209, -209, -209, + -209, -209, -209, -209, -209, -209, 31, 159, 36, 78, + -209, 120, 145, 146, 147, 154, 155, 156, 157, 158, + 160, 162, 122, 163, 165, 166, 165, 167, 169, 170, + 172, 173, 161, -209, 174, 175, 177, 178, 168, -209, + 179, 165, 180, 165, 181, 165, 165, 165, 182, 184, + 185, -209, -209, 164, 186, 28, -209, -209, -209, -209, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 32, + -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, + 197, -209, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 153, 211, 212, 213, 214, + 215, 216, 217, 218, -209, -19, 219, 220, 221, -209, + 109, 222, 223, 224, 225, 226, 227, 228, 229, 230, + -209, 235, 236, 233, -209, 238, 240, 241, 242, 243, + 245, 244, 246, 165, 237, -209, -209, -209, -209, -209, + -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, + 165, 165, 165, 165, 165, 165, 165, -209, -209, -209, + -209, -209, -209, -209, -209, -209, -209, 247, 248, 249, + -13, -209, -209, -209, -209, -209, -209, -209, -209, -209, + 250, 251, 252, 256, 254, 80, -209, -209, -209, -209, + -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, + -209, -209, 257, 258, -209, 259, 260, 115, 261, 262, + 263, 264, 266, 267, 268, -209, -209, -209, -209, -209, + -209, -209, -209, 273, 274, 275, 272, -209, 255, 278, + 279, 280, 282, 283, 281, -209, -209, -209, -209, -209, + 241, 241, 241, -209, -209, -209, -209, 285, -209, -209, + -209, -209, 284, 286, 287, -209, 50, 288, 289, 290, + 277, -51, -209, 291, -209, -209, -209, -209, 292, -209, + -209, -209, -209, -209, 22, -209, -209, -209, -209, 297, + 294, -209, -209, -209, -209, 50, 295, -209, -209, -209 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -718,74 +806,75 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 101, 1, 0, 0, 0, 0, 3, 5, 4, + 2, 105, 1, 0, 0, 0, 0, 3, 5, 4, 7, 0, 8, 0, 6, 9, 0, 0, 0, 0, - 0, 0, 173, 0, 0, 171, 172, 71, 0, 0, + 0, 0, 177, 0, 0, 175, 176, 73, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 51, 53, 56, 54, 55, 57, 58, 70, 71, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 52, 72, 0, 144, 0, 0, 0, 0, 139, + 140, 141, 142, 143, 0, 38, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 0, 0, 0, 0, + 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 49, 0, 0, 0, 0, 0, 138, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27, 111, 0, 0, 0, 108, 109, 110, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, - 53, 56, 54, 55, 57, 58, 68, 69, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 52, 70, 0, - 140, 0, 0, 0, 0, 135, 136, 137, 138, 139, - 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 0, 0, 0, 0, 170, 0, 0, 0, + 117, 118, 119, 121, 123, 120, 122, 125, 126, 124, + 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, - 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 27, 107, 0, 0, 0, - 104, 105, 106, 123, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 113, 114, 115, 117, 119, 116, - 118, 121, 122, 120, 0, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, - 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 103, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 112, 174, 72, - 90, 73, 74, 75, 76, 80, 77, 78, 79, 81, - 10, 10, 10, 10, 10, 10, 10, 12, 11, 84, - 86, 85, 87, 82, 83, 88, 89, 0, 0, 0, - 0, 94, 95, 96, 97, 141, 142, 143, 154, 156, - 0, 0, 0, 0, 0, 0, 147, 148, 149, 151, - 150, 152, 153, 46, 45, 47, 42, 43, 39, 40, - 41, 44, 0, 0, 102, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 111, 13, 14, 15, 16, - 17, 18, 19, 0, 0, 0, 0, 93, 0, 0, - 0, 0, 0, 0, 0, 146, 108, 109, 128, 20, - 20, 20, 22, 21, 131, 124, 0, 126, 129, 127, - 130, 125, 0, 0, 0, 92, 0, 0, 0, 0, - 0, 0, 167, 0, 145, 23, 24, 25, 0, 100, - 99, 98, 160, 161, 0, 159, 164, 162, 155, 0, - 0, 166, 163, 132, 157, 0, 0, 165, 158, 168 + 26, 0, 0, 0, 107, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 116, 178, 74, 93, 94, + 75, 76, 77, 78, 82, 79, 80, 81, 83, 85, + 10, 10, 10, 10, 10, 10, 10, 12, 11, 88, + 90, 89, 91, 84, 86, 87, 92, 0, 0, 0, + 0, 98, 99, 100, 101, 145, 146, 147, 158, 160, + 0, 0, 0, 0, 0, 0, 151, 152, 153, 155, + 154, 156, 157, 46, 45, 47, 42, 43, 39, 40, + 41, 44, 0, 0, 106, 0, 0, 20, 0, 0, + 0, 0, 0, 0, 0, 115, 13, 14, 15, 16, + 17, 18, 19, 0, 0, 0, 0, 97, 0, 0, + 0, 0, 0, 0, 0, 150, 112, 113, 129, 132, + 20, 20, 20, 22, 21, 135, 128, 0, 130, 133, + 131, 134, 0, 0, 0, 96, 0, 0, 0, 0, + 0, 0, 171, 0, 149, 23, 24, 25, 0, 104, + 103, 102, 164, 165, 0, 163, 168, 166, 159, 0, + 0, 170, 167, 136, 161, 0, 0, 169, 162, 172 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -304, -304, -304, -1, -118, -303, 87, -304, -304, 166, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, 290, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, 46, -304, -304, -304, -304, -304, - -304, 170, -304, -304, -304, -304, -304, 144, -304, -304, - -304, -304, -304, -304, -304, -304, -304, -304, -304, 279, - -304, -304, -304, -304, -304, -304, 80, -304, -304, -304, - -304, -36, -304, -304, -304, -304, -304, 3, -304, -304, - 314, -304 + -209, -209, -209, -84, -124, -208, 4, -209, -209, 151, + -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, + -209, 270, -209, -209, -209, -209, -209, -209, -209, -209, + -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, + -209, -209, -209, -209, -209, -209, -15, -209, -209, -209, + -209, -209, -209, 103, -209, -209, -209, -209, -209, 88, + -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, + -209, 296, -209, -209, -209, -209, -209, -209, -26, -209, + -209, -209, -209, -125, -209, -209, -209, -209, -209, -99, + -209, -209, 298, -209 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 7, 247, 248, 332, 333, 8, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 9, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 260, 261, 262, 263, 264, 10, 11, - 149, 150, 151, 152, 12, 13, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 14, 74, 75, - 76, 77, 78, 79, 80, 275, 276, 277, 278, 318, - 364, 365, 279, 280, 281, 282, 351, 352, 15, 24, - 25, 26 + -1, 1, 7, 257, 258, 343, 344, 8, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 9, + 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, 270, 271, 272, 273, 274, + 10, 11, 155, 156, 157, 158, 12, 13, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 14, + 78, 79, 80, 81, 82, 83, 84, 285, 286, 287, + 288, 328, 374, 375, 289, 290, 291, 292, 361, 362, + 15, 24, 25, 26 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -793,153 +882,158 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 188, 27, 190, 257, 28, 22, 146, 16, 258, 350, - -91, 22, 259, 370, 29, 374, 17, 203, 375, 205, - 18, 207, 208, 209, 19, 30, 355, 356, 357, 31, - 20, 23, 147, 32, 33, 34, 35, 23, 153, 36, - 37, 81, 38, 21, 39, 40, 41, 362, 363, 102, - 103, 82, 83, 84, 148, 85, 86, 154, 42, 329, - 330, 331, 104, 43, 44, 155, 45, 156, 46, 128, - 107, 87, 88, 126, 70, 134, 108, 105, 215, -144, - 157, 89, 109, 268, 70, 269, 110, 270, 90, -144, - 71, 72, 111, 112, 146, 113, 158, 159, 160, 161, - 71, 72, 114, 115, 116, 162, 303, 271, 117, 118, - 226, 119, 272, 144, 120, 268, 121, 269, 122, 270, - 147, 296, 123, 257, 27, 124, 125, 28, 258, 273, - 73, 129, 259, -91, 174, 130, 131, 29, 135, 271, - 73, 136, 148, 137, 272, 138, 132, 274, 30, 139, - 140, 153, 31, 141, 142, 324, 32, 33, 34, 35, - 143, 273, 36, 37, 2, 38, 175, 39, 40, 41, - 154, 176, 196, 177, 178, 316, 179, 180, 155, 274, - 156, 42, 181, 3, 81, 182, 43, 44, 4, 45, - 183, 46, 184, 157, 82, 83, 84, 185, 85, 86, - 186, 5, 6, 187, 197, 189, 191, 192, 193, 158, - 159, 160, 161, -110, 87, 88, 194, 195, 162, 198, - 202, 199, 200, 204, 89, 206, 295, 201, 210, 211, - 213, 90, 240, 241, 242, 243, 244, 245, 246, 306, - 307, 308, 309, 310, 311, 312, 212, 299, 214, 217, - 218, 187, 219, 220, 221, 222, 223, 145, 322, 224, - 225, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 249, 250, 251, 252, 253, 254, 255, - 256, 265, 266, 267, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 296, 313, 298, 300, - 301, 314, 302, 304, 305, 297, 317, 227, 347, 315, - 319, 320, 321, 323, 326, 327, 328, 334, 335, 216, - 337, 336, 338, 339, 340, 341, 342, 343, 344, 345, - 348, 349, 350, 358, 346, 353, 354, 127, 106, 378, - 359, 360, 361, 366, 367, 368, 376, 369, 372, 373, - 0, 377, 379, 133, 371, 325 + 196, 27, 198, 267, 28, 16, 29, 17, 268, 267, + 74, -95, 269, 18, 268, 30, -148, 211, 269, 213, + 360, 215, 216, 217, 380, 19, 31, 75, 76, 152, + 32, 22, 152, 159, 33, 34, 35, 36, 160, 85, + 37, 38, 20, 39, 21, 40, 41, 42, 43, 106, + 86, 87, 88, 161, 89, 90, 153, 107, 23, 153, + 44, 162, 326, 163, 22, 45, 46, 47, 77, 48, + 91, 92, 74, 372, 373, 132, 164, 2, -148, 154, + 93, 278, 154, 279, 138, 280, 134, 108, 94, 75, + 76, 23, 111, 165, 166, 167, 168, 3, 384, 140, + 112, 385, 4, 223, 113, 109, 281, 234, 180, 314, + 278, 282, 279, 150, 280, 5, 6, 27, 114, 115, + 28, 116, 29, 340, 341, 342, 117, -95, -114, 283, + 77, 30, 365, 366, 367, 281, 118, 119, 120, 121, + 282, 122, 31, 123, 124, 125, 32, 126, 284, 127, + 33, 34, 35, 36, 181, 334, 37, 38, 283, 39, + 159, 40, 41, 42, 43, 160, 316, 317, 318, 319, + 320, 321, 322, 128, 129, 130, 44, 284, 131, 135, + 161, 45, 46, 47, 85, 48, 307, 136, 162, 137, + 163, 141, 182, 193, 142, 86, 87, 88, 143, 89, + 90, 144, 145, 164, 146, 250, 251, 252, 253, 254, + 255, 256, 147, 148, 149, 91, 92, 183, 184, 185, + 165, 166, 167, 168, 195, 93, 186, 187, 188, 189, + 190, 308, 191, 94, 192, 194, 195, 204, 197, 199, + 200, 221, 201, 202, 209, 203, 151, 206, 205, 207, + 208, 212, 214, 210, 218, 327, 219, 235, 224, 335, + 388, 220, 381, 222, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 259, 260, 261, + 262, 263, 264, 265, 266, 275, 276, 277, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 315, 309, 312, 310, 311, 313, 133, + 0, 0, 110, 0, 323, 324, 325, 329, 330, 331, + 332, 333, 356, 336, 337, 338, 339, 345, 346, 0, + 348, 347, 349, 350, 351, 352, 353, 354, 355, 357, + 0, 358, 359, 360, 379, 363, 368, 364, 0, 0, + 369, 0, 370, 371, 376, 377, 378, 382, 383, 386, + 387, 389, 0, 0, 139 }; static const yytype_int16 yycheck[] = { - 118, 1, 120, 21, 4, 1, 1, 72, 26, 69, - 10, 1, 30, 73, 14, 74, 72, 135, 77, 137, - 72, 139, 140, 141, 72, 25, 329, 330, 331, 29, - 67, 27, 27, 33, 34, 35, 36, 27, 1, 39, - 40, 1, 42, 49, 44, 45, 46, 22, 23, 72, - 72, 11, 12, 13, 49, 15, 16, 20, 58, 7, - 8, 9, 75, 63, 64, 28, 66, 30, 68, 10, - 75, 31, 32, 73, 1, 6, 75, 73, 73, 6, - 43, 41, 75, 1, 1, 3, 75, 5, 48, 6, - 17, 18, 75, 75, 1, 75, 59, 60, 61, 62, - 17, 18, 75, 75, 75, 68, 224, 25, 75, 75, - 73, 75, 30, 73, 75, 1, 75, 3, 75, 5, - 27, 69, 75, 21, 1, 75, 75, 4, 26, 47, - 57, 75, 30, 10, 70, 75, 75, 14, 75, 25, - 57, 75, 49, 75, 30, 75, 73, 65, 25, 75, - 75, 1, 29, 75, 75, 73, 33, 34, 35, 36, - 75, 47, 39, 40, 0, 42, 74, 44, 45, 46, - 20, 70, 74, 70, 70, 73, 70, 70, 28, 65, - 30, 58, 70, 19, 1, 70, 63, 64, 24, 66, - 70, 68, 70, 43, 11, 12, 13, 70, 15, 16, - 69, 37, 38, 69, 72, 70, 70, 69, 69, 59, - 60, 61, 62, 49, 31, 32, 70, 70, 68, 70, - 72, 70, 70, 69, 41, 69, 69, 74, 70, 70, - 75, 48, 50, 51, 52, 53, 54, 55, 56, 240, - 241, 242, 243, 244, 245, 246, 74, 71, 75, 75, - 75, 69, 75, 75, 75, 75, 75, 91, 72, 75, - 75, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 70, 70, 74, 69, 75, 70, 70, - 69, 75, 70, 70, 74, 218, 260, 163, 69, 75, - 75, 75, 75, 75, 74, 74, 74, 74, 74, 149, - 74, 76, 74, 74, 74, 74, 70, 70, 70, 74, - 70, 70, 69, 69, 75, 70, 74, 47, 24, 375, - 74, 74, 74, 74, 74, 74, 70, 75, 74, 74, - -1, 74, 74, 74, 351, 275 + 124, 1, 126, 22, 4, 74, 6, 74, 27, 22, + 1, 11, 31, 74, 27, 15, 7, 141, 31, 143, + 71, 145, 146, 147, 75, 74, 26, 18, 19, 1, + 30, 1, 1, 1, 34, 35, 36, 37, 6, 1, + 40, 41, 70, 43, 51, 45, 46, 47, 48, 74, + 12, 13, 14, 21, 16, 17, 28, 74, 28, 28, + 60, 29, 75, 31, 1, 65, 66, 67, 59, 69, + 32, 33, 1, 23, 24, 75, 44, 0, 7, 51, + 42, 1, 51, 3, 75, 5, 11, 77, 50, 18, + 19, 28, 77, 61, 62, 63, 64, 20, 76, 7, + 77, 79, 25, 75, 77, 75, 26, 75, 72, 233, + 1, 31, 3, 75, 5, 38, 39, 1, 77, 77, + 4, 77, 6, 8, 9, 10, 77, 11, 51, 49, + 59, 15, 340, 341, 342, 26, 77, 77, 77, 77, + 31, 77, 26, 77, 77, 77, 30, 77, 68, 77, + 34, 35, 36, 37, 76, 75, 40, 41, 49, 43, + 1, 45, 46, 47, 48, 6, 250, 251, 252, 253, + 254, 255, 256, 77, 77, 77, 60, 68, 77, 77, + 21, 65, 66, 67, 1, 69, 71, 77, 29, 77, + 31, 77, 72, 71, 77, 12, 13, 14, 77, 16, + 17, 77, 77, 44, 77, 52, 53, 54, 55, 56, + 57, 58, 77, 77, 77, 32, 33, 72, 72, 72, + 61, 62, 63, 64, 71, 42, 72, 72, 72, 72, + 72, 227, 72, 50, 72, 72, 71, 76, 72, 72, + 71, 77, 72, 71, 76, 72, 95, 72, 74, 72, + 72, 71, 71, 74, 72, 270, 72, 169, 155, 285, + 385, 76, 361, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 76, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 76, 72, 72, 76, + 72, 71, 71, 76, 72, 71, 73, 72, 72, 49, + -1, -1, 24, -1, 77, 77, 77, 77, 77, 77, + 74, 77, 77, 76, 76, 76, 76, 76, 76, -1, + 76, 78, 76, 76, 76, 72, 72, 72, 76, 71, + -1, 72, 72, 71, 77, 72, 71, 76, -1, -1, + 76, -1, 76, 76, 76, 76, 76, 76, 76, 72, + 76, 76, -1, -1, 78 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 79, 0, 19, 24, 37, 38, 80, 85, 97, - 126, 127, 132, 133, 145, 166, 72, 72, 72, 72, - 67, 49, 1, 27, 167, 168, 169, 1, 4, 14, - 25, 29, 33, 34, 35, 36, 39, 40, 42, 44, - 45, 46, 58, 63, 64, 66, 68, 98, 99, 100, + 0, 81, 0, 20, 25, 38, 39, 82, 87, 99, + 130, 131, 136, 137, 149, 170, 74, 74, 74, 74, + 70, 51, 1, 28, 171, 172, 173, 1, 4, 6, + 15, 26, 30, 34, 35, 36, 37, 40, 41, 43, + 45, 46, 47, 48, 60, 65, 66, 67, 69, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 1, 17, 18, 57, 146, 147, 148, 149, 150, 151, - 152, 1, 11, 12, 13, 15, 16, 31, 32, 41, - 48, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 72, 72, 75, 73, 168, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 73, 99, 10, 75, - 75, 75, 73, 147, 6, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 73, 87, 1, 27, 49, 128, - 129, 130, 131, 1, 20, 28, 30, 43, 59, 60, - 61, 62, 68, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 70, 74, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 69, 69, 82, 70, - 82, 70, 69, 69, 70, 70, 74, 72, 70, 70, - 70, 74, 72, 82, 69, 82, 69, 82, 82, 82, - 70, 70, 74, 75, 75, 73, 129, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 73, 135, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 50, 51, 52, 53, 54, 55, 56, 81, 82, 74, - 74, 74, 74, 74, 74, 74, 74, 21, 26, 30, - 121, 122, 123, 124, 125, 74, 74, 74, 1, 3, - 5, 25, 30, 47, 65, 153, 154, 155, 156, 160, - 161, 162, 163, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 70, 70, 74, 69, 69, 84, 70, 71, - 70, 69, 70, 82, 70, 74, 81, 81, 81, 81, - 81, 81, 81, 75, 75, 75, 73, 122, 157, 75, - 75, 75, 72, 75, 73, 154, 74, 74, 74, 7, - 8, 9, 83, 84, 74, 74, 76, 74, 74, 74, - 74, 74, 70, 70, 70, 74, 75, 69, 70, 70, - 69, 164, 165, 70, 74, 83, 83, 83, 69, 74, - 74, 74, 22, 23, 158, 159, 74, 74, 74, 75, - 73, 165, 74, 74, 74, 77, 70, 74, 159, 74 + 121, 122, 123, 124, 1, 18, 19, 59, 150, 151, + 152, 153, 154, 155, 156, 1, 12, 13, 14, 16, + 17, 32, 33, 42, 50, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 74, 74, 77, 75, + 172, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 75, 101, 11, 77, 77, 77, 75, 151, + 7, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 75, 89, 1, 28, 51, 132, 133, 134, 135, 1, + 6, 21, 29, 31, 44, 61, 62, 63, 64, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 72, 76, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 71, 72, 71, 84, 72, 84, 72, + 71, 72, 71, 72, 76, 74, 72, 72, 72, 76, + 74, 84, 71, 84, 71, 84, 84, 84, 72, 72, + 76, 77, 77, 75, 133, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 75, 139, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 52, 53, 54, 55, 56, 57, 58, 83, 84, 76, + 76, 76, 76, 76, 76, 76, 76, 22, 27, 31, + 125, 126, 127, 128, 129, 76, 76, 76, 1, 3, + 5, 26, 31, 49, 68, 157, 158, 159, 160, 164, + 165, 166, 167, 76, 76, 76, 76, 76, 76, 76, + 76, 76, 72, 72, 76, 72, 71, 71, 86, 72, + 73, 72, 71, 72, 84, 76, 83, 83, 83, 83, + 83, 83, 83, 77, 77, 77, 75, 126, 161, 77, + 77, 77, 74, 77, 75, 158, 76, 76, 76, 76, + 8, 9, 10, 85, 86, 76, 76, 78, 76, 76, + 76, 76, 72, 72, 72, 76, 77, 71, 72, 72, + 71, 168, 169, 72, 76, 85, 85, 85, 71, 76, + 76, 76, 23, 24, 162, 163, 76, 76, 76, 77, + 75, 169, 76, 76, 76, 79, 72, 76, 163, 76 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 78, 79, 79, 80, 80, 80, 80, 80, 80, - 81, 81, 82, 82, 82, 82, 82, 82, 82, 82, - 83, 83, 84, 84, 84, 84, 85, 86, 86, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 0, 80, 81, 81, 82, 82, 82, 82, 82, 82, + 83, 83, 84, 84, 84, 84, 84, 84, 84, 84, + 85, 85, 86, 86, 86, 86, 87, 88, 88, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 100, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 120, 119, 121, 121, 122, 122, 122, 123, 124, - 125, 127, 126, 128, 128, 129, 129, 129, 130, 131, - 133, 132, 134, 134, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 146, 147, 147, 147, 147, - 147, 148, 149, 150, 152, 151, 153, 153, 154, 154, - 154, 154, 154, 154, 154, 155, 157, 156, 158, 158, - 159, 159, 160, 161, 162, 163, 164, 164, 165, 166, - 167, 167, 168, 168, 169 + 118, 119, 120, 121, 122, 124, 123, 125, 125, 126, + 126, 126, 127, 128, 129, 131, 130, 132, 132, 133, + 133, 133, 134, 135, 137, 136, 138, 138, 139, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 150, + 151, 151, 151, 151, 151, 152, 153, 154, 156, 155, + 157, 157, 158, 158, 158, 158, 158, 158, 158, 159, + 161, 160, 162, 162, 163, 163, 164, 165, 166, 167, + 168, 168, 169, 170, 171, 171, 172, 172, 173 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 0, 2, 1, 1, 1, 1, 1, 1, 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, @@ -948,17 +1042,17 @@ static const yytype_uint8 yyr2[] = 4, 4, 4, 4, 4, 4, 4, 4, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 0, 6, 2, 1, 1, 1, 1, 4, 4, - 4, 0, 6, 2, 1, 1, 1, 1, 4, 4, - 0, 6, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, - 4, 4, 6, 5, 2, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 0, 6, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 4, 0, 5, 3, 1, - 1, 1, 4, 4, 4, 5, 2, 1, 4, 5, - 2, 1, 1, 1, 4 + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 0, 6, 2, 1, 1, + 1, 1, 4, 4, 4, 0, 6, 2, 1, 1, + 1, 1, 4, 4, 0, 6, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, + 4, 4, 4, 4, 4, 4, 6, 5, 2, 1, + 1, 1, 1, 1, 1, 4, 4, 4, 0, 6, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 4, + 0, 5, 3, 1, 1, 1, 4, 4, 4, 5, + 2, 1, 4, 5, 2, 1, 1, 1, 4 }; @@ -1044,7 +1138,9 @@ yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) if (yytype < YYNTOKENS) YYPRINT (yyo, yytoknum[yytype], *yyvaluep); # endif + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -1068,7 +1164,7 @@ yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -1091,19 +1187,19 @@ do { \ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], + yystos[+yyssp[yyi + 1 - yynrhs]], &yyvsp[(yyi + 1) - (yynrhs)] ); YYFPRINTF (stderr, "\n"); @@ -1148,13 +1244,13 @@ int yydebug; # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen +# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) # else /* Return the length of YYSTR. */ -static YYSIZE_T +static YYPTRDIFF_T yystrlen (const char *yystr) { - YYSIZE_T yylen; + YYPTRDIFF_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; @@ -1190,12 +1286,12 @@ yystpcpy (char *yydest, const char *yysrc) 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 +static YYPTRDIFF_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { - YYSIZE_T yyn = 0; + YYPTRDIFF_T yyn = 0; char const *yyp = yystr; for (;;) @@ -1226,10 +1322,10 @@ yytnamerr (char *yyres, const char *yystr) do_not_strip_quotes: ; } - if (! yyres) + if (yyres) + return yystpcpy (yyres, yystr) - yyres; + else return yystrlen (yystr); - - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); } # endif @@ -1242,19 +1338,19 @@ yytnamerr (char *yyres, const char *yystr) *YYMSG_ALLOC to the required number of bytes. Return 2 if the required number of bytes is too large to store. */ static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) +yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, + yy_state_t *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ + /* Arguments of yyformat: reported tokens (one for the "unexpected", + one per "expected"). */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ + /* Actual size of YYARG. */ int yycount = 0; + /* Cumulated lengths of YYARG. */ + YYPTRDIFF_T yysize = 0; /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then @@ -1281,7 +1377,9 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, */ if (yytoken != YYEMPTY) { - int yyn = yypact[*yyssp]; + int yyn = yypact[+*yyssp]; + YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + yysize = yysize0; yyarg[yycount++] = yytname[yytoken]; if (!yypact_value_is_default (yyn)) { @@ -1306,7 +1404,8 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } yyarg[yycount++] = yytname[yyx]; { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + YYPTRDIFF_T yysize1 + = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) yysize = yysize1; else @@ -1333,7 +1432,9 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + /* Don't count the "%s"s in the final size, but reserve room for + the terminator. */ + YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) yysize = yysize1; else @@ -1363,8 +1464,8 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } else { - yyp++; - yyformat++; + ++yyp; + ++yyformat; } } return 0; @@ -1407,7 +1508,7 @@ int yynerrs; int yyparse (void) { - int yystate; + yy_state_fast_t yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; @@ -1419,16 +1520,16 @@ yyparse (void) to reallocate them elsewhere. */ /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss; + yy_state_t *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs; YYSTYPE *yyvsp; - YYSIZE_T yystacksize; + YYPTRDIFF_T yystacksize; int yyn; int yyresult; @@ -1442,7 +1543,7 @@ yyparse (void) /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; + YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) @@ -1474,10 +1575,14 @@ yynewstate: /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: - *yyssp = (yytype_int16) yystate; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -1485,23 +1590,23 @@ yysetstate: #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # if defined 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. */ + yy_state_t *yyss1 = yyss; 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), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -1515,9 +1620,10 @@ yysetstate: yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); @@ -1531,16 +1637,16 @@ yysetstate: yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) YYACCEPT; @@ -1600,15 +1706,13 @@ yybackup: /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -1643,331 +1747,349 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 10: -#line 119 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = 0; } -#line 1650 "config-parser.c" /* yacc.c:1652 */ + case 10: +#line 121 "config-parser.y" + { (yyval.number) = 0; } +#line 1754 "config-parser.c" break; case 12: -#line 120 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); } -#line 1656 "config-parser.c" /* yacc.c:1652 */ +#line 122 "config-parser.y" + { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); } +#line 1760 "config-parser.c" break; case 13: -#line 121 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); } -#line 1662 "config-parser.c" /* yacc.c:1652 */ +#line 123 "config-parser.y" + { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); } +#line 1766 "config-parser.c" break; case 14: -#line 122 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); } -#line 1668 "config-parser.c" /* yacc.c:1652 */ +#line 124 "config-parser.y" + { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); } +#line 1772 "config-parser.c" break; case 15: -#line 123 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); } -#line 1674 "config-parser.c" /* yacc.c:1652 */ +#line 125 "config-parser.y" + { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); } +#line 1778 "config-parser.c" break; case 16: -#line 124 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); } -#line 1680 "config-parser.c" /* yacc.c:1652 */ +#line 126 "config-parser.y" + { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); } +#line 1784 "config-parser.c" break; case 17: -#line 125 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); } -#line 1686 "config-parser.c" /* yacc.c:1652 */ +#line 127 "config-parser.y" + { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); } +#line 1790 "config-parser.c" break; case 18: -#line 126 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); } -#line 1692 "config-parser.c" /* yacc.c:1652 */ +#line 128 "config-parser.y" + { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); } +#line 1796 "config-parser.c" break; case 19: -#line 127 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); } -#line 1698 "config-parser.c" /* yacc.c:1652 */ +#line 129 "config-parser.y" + { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); } +#line 1802 "config-parser.c" break; case 20: -#line 130 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = 0; } -#line 1704 "config-parser.c" /* yacc.c:1652 */ +#line 132 "config-parser.y" + { (yyval.number) = 0; } +#line 1808 "config-parser.c" break; case 22: -#line 131 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); } -#line 1710 "config-parser.c" /* yacc.c:1652 */ +#line 133 "config-parser.y" + { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); } +#line 1814 "config-parser.c" break; case 23: -#line 132 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); } -#line 1716 "config-parser.c" /* yacc.c:1652 */ +#line 134 "config-parser.y" + { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); } +#line 1820 "config-parser.c" break; case 24: -#line 133 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); } -#line 1722 "config-parser.c" /* yacc.c:1652 */ +#line 135 "config-parser.y" + { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); } +#line 1826 "config-parser.c" break; case 25: -#line 134 "config-parser.y" /* yacc.c:1652 */ - { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); } -#line 1728 "config-parser.c" /* yacc.c:1652 */ +#line 136 "config-parser.y" + { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); } +#line 1832 "config-parser.c" break; case 39: -#line 156 "config-parser.y" /* yacc.c:1652 */ - { +#line 158 "config-parser.y" +{ OptionsItem.negcache = (yyvsp[-1].number); } -#line 1736 "config-parser.c" /* yacc.c:1652 */ +#line 1840 "config-parser.c" break; case 40: -#line 161 "config-parser.y" /* yacc.c:1652 */ - { +#line 163 "config-parser.y" +{ OptionsItem.negcache_rebuild = (yyvsp[-1].number); } -#line 1744 "config-parser.c" /* yacc.c:1652 */ +#line 1848 "config-parser.c" break; case 41: -#line 166 "config-parser.y" /* yacc.c:1652 */ - { +#line 168 "config-parser.y" +{ xfree(OptionsItem.pidfile); OptionsItem.pidfile = xstrdup((yyvsp[-1].string)); } -#line 1753 "config-parser.c" /* yacc.c:1652 */ +#line 1857 "config-parser.c" break; case 42: -#line 172 "config-parser.y" /* yacc.c:1652 */ - { +#line 174 "config-parser.y" +{ OptionsItem.dns_fdlimit = (yyvsp[-1].number); } -#line 1761 "config-parser.c" /* yacc.c:1652 */ +#line 1865 "config-parser.c" break; case 43: -#line 177 "config-parser.y" /* yacc.c:1652 */ - { +#line 179 "config-parser.y" +{ OptionsItem.dns_timeout = (yyvsp[-1].number); } -#line 1769 "config-parser.c" /* yacc.c:1652 */ +#line 1873 "config-parser.c" break; case 44: -#line 182 "config-parser.y" /* yacc.c:1652 */ - { +#line 184 "config-parser.y" +{ xfree(OptionsItem.scanlog); OptionsItem.scanlog = xstrdup((yyvsp[-1].string)); } -#line 1778 "config-parser.c" /* yacc.c:1652 */ +#line 1882 "config-parser.c" break; case 45: -#line 188 "config-parser.y" /* yacc.c:1652 */ - { +#line 190 "config-parser.y" +{ OptionsItem.command_queue_size = (yyvsp[-1].number); } -#line 1786 "config-parser.c" /* yacc.c:1652 */ +#line 1890 "config-parser.c" break; case 46: -#line 193 "config-parser.y" /* yacc.c:1652 */ - { +#line 195 "config-parser.y" +{ OptionsItem.command_interval = (yyvsp[-1].number); } -#line 1794 "config-parser.c" /* yacc.c:1652 */ +#line 1898 "config-parser.c" break; case 47: -#line 198 "config-parser.y" /* yacc.c:1652 */ - { +#line 200 "config-parser.y" +{ OptionsItem.command_timeout = (yyvsp[-1].number); } -#line 1802 "config-parser.c" /* yacc.c:1652 */ +#line 1906 "config-parser.c" break; - case 72: -#line 232 "config-parser.y" /* yacc.c:1652 */ - { + case 74: +#line 236 "config-parser.y" +{ xfree(IRCItem.away); IRCItem.away = xstrdup((yyvsp[-1].string)); } -#line 1811 "config-parser.c" /* yacc.c:1652 */ +#line 1915 "config-parser.c" break; - case 73: -#line 238 "config-parser.y" /* yacc.c:1652 */ - { + case 75: +#line 242 "config-parser.y" +{ xfree(IRCItem.kline); IRCItem.kline = xstrdup((yyvsp[-1].string)); } -#line 1820 "config-parser.c" /* yacc.c:1652 */ +#line 1924 "config-parser.c" break; - case 74: -#line 244 "config-parser.y" /* yacc.c:1652 */ - { + case 76: +#line 248 "config-parser.y" +{ xfree(IRCItem.mode); IRCItem.mode = xstrdup((yyvsp[-1].string)); } -#line 1829 "config-parser.c" /* yacc.c:1652 */ +#line 1933 "config-parser.c" break; - case 75: -#line 250 "config-parser.y" /* yacc.c:1652 */ - { + case 77: +#line 254 "config-parser.y" +{ xfree(IRCItem.nick); IRCItem.nick = xstrdup((yyvsp[-1].string)); } -#line 1838 "config-parser.c" /* yacc.c:1652 */ +#line 1942 "config-parser.c" break; - case 76: -#line 256 "config-parser.y" /* yacc.c:1652 */ - { + case 78: +#line 260 "config-parser.y" +{ xfree(IRCItem.nickserv); IRCItem.nickserv = xstrdup((yyvsp[-1].string)); } -#line 1847 "config-parser.c" /* yacc.c:1652 */ +#line 1951 "config-parser.c" break; - case 77: -#line 262 "config-parser.y" /* yacc.c:1652 */ - { + case 79: +#line 266 "config-parser.y" +{ xfree(IRCItem.oper); IRCItem.oper = xstrdup((yyvsp[-1].string)); } -#line 1856 "config-parser.c" /* yacc.c:1652 */ +#line 1960 "config-parser.c" break; - case 78: -#line 268 "config-parser.y" /* yacc.c:1652 */ - { + case 80: +#line 272 "config-parser.y" +{ xfree(IRCItem.password); IRCItem.password = xstrdup((yyvsp[-1].string)); } -#line 1865 "config-parser.c" /* yacc.c:1652 */ +#line 1969 "config-parser.c" break; - case 79: -#line 274 "config-parser.y" /* yacc.c:1652 */ - { + case 81: +#line 278 "config-parser.y" +{ list_add(xstrdup((yyvsp[-1].string)), node_create(), &IRCItem.performs); } -#line 1873 "config-parser.c" /* yacc.c:1652 */ +#line 1977 "config-parser.c" break; - case 80: -#line 279 "config-parser.y" /* yacc.c:1652 */ - { + case 82: +#line 283 "config-parser.y" +{ list_add(xstrdup((yyvsp[-1].string)), node_create(), &IRCItem.notices); } -#line 1881 "config-parser.c" /* yacc.c:1652 */ +#line 1985 "config-parser.c" break; - case 81: -#line 284 "config-parser.y" /* yacc.c:1652 */ - { + case 83: +#line 288 "config-parser.y" +{ IRCItem.port = (yyvsp[-1].number); } -#line 1889 "config-parser.c" /* yacc.c:1652 */ +#line 1993 "config-parser.c" break; - case 82: -#line 289 "config-parser.y" /* yacc.c:1652 */ - { + case 84: +#line 293 "config-parser.y" +{ IRCItem.tls = (yyvsp[-1].number); } -#line 1897 "config-parser.c" /* yacc.c:1652 */ +#line 2001 "config-parser.c" break; - case 83: -#line 294 "config-parser.y" /* yacc.c:1652 */ - { + case 85: +#line 298 "config-parser.y" +{ + xfree(IRCItem.rsa_private_key_file); + IRCItem.rsa_private_key_file = xstrdup((yyvsp[-1].string)); +} +#line 2010 "config-parser.c" + break; + + case 86: +#line 305 "config-parser.y" +{ + xfree(IRCItem.tls_certificate_file); + IRCItem.tls_certificate_file = xstrdup((yyvsp[-1].string)); +} +#line 2019 "config-parser.c" + break; + + case 87: +#line 311 "config-parser.y" +{ IRCItem.tls_hostname_verification = (yyvsp[-1].number); } -#line 1905 "config-parser.c" /* yacc.c:1652 */ +#line 2027 "config-parser.c" break; - case 84: -#line 299 "config-parser.y" /* yacc.c:1652 */ - { + case 88: +#line 316 "config-parser.y" +{ IRCItem.readtimeout = (yyvsp[-1].number); } -#line 1913 "config-parser.c" /* yacc.c:1652 */ +#line 2035 "config-parser.c" break; - case 85: -#line 304 "config-parser.y" /* yacc.c:1652 */ - { + case 89: +#line 321 "config-parser.y" +{ IRCItem.reconnectinterval = (yyvsp[-1].number); } -#line 1921 "config-parser.c" /* yacc.c:1652 */ +#line 2043 "config-parser.c" break; - case 86: -#line 309 "config-parser.y" /* yacc.c:1652 */ - { + case 90: +#line 326 "config-parser.y" +{ xfree(IRCItem.realname); IRCItem.realname = xstrdup((yyvsp[-1].string)); } -#line 1930 "config-parser.c" /* yacc.c:1652 */ +#line 2052 "config-parser.c" break; - case 87: -#line 315 "config-parser.y" /* yacc.c:1652 */ - { + case 91: +#line 332 "config-parser.y" +{ xfree(IRCItem.server); IRCItem.server = xstrdup((yyvsp[-1].string)); } -#line 1939 "config-parser.c" /* yacc.c:1652 */ +#line 2061 "config-parser.c" break; - case 88: -#line 321 "config-parser.y" /* yacc.c:1652 */ - { + case 92: +#line 338 "config-parser.y" +{ xfree(IRCItem.username); IRCItem.username = xstrdup((yyvsp[-1].string)); } -#line 1948 "config-parser.c" /* yacc.c:1652 */ +#line 2070 "config-parser.c" break; - case 89: -#line 327 "config-parser.y" /* yacc.c:1652 */ - { - xfree(IRCItem.vhost); - IRCItem.vhost = xstrdup((yyvsp[-1].string)); + case 93: +#line 344 "config-parser.y" +{ + xfree(IRCItem.bind); + IRCItem.bind = xstrdup((yyvsp[-1].string)); } -#line 1957 "config-parser.c" /* yacc.c:1652 */ +#line 2079 "config-parser.c" break; - case 90: -#line 333 "config-parser.y" /* yacc.c:1652 */ - { + case 94: +#line 350 "config-parser.y" +{ xfree(IRCItem.connregex); IRCItem.connregex = xstrdup((yyvsp[-1].string)); } -#line 1966 "config-parser.c" /* yacc.c:1652 */ +#line 2088 "config-parser.c" break; - case 91: -#line 341 "config-parser.y" /* yacc.c:1652 */ - { + case 95: +#line 358 "config-parser.y" +{ struct ChannelConf *item; item = xcalloc(sizeof(*item)); @@ -1978,45 +2100,45 @@ yyreduce: list_add(item, &item->node, &IRCItem.channels); tmp = item; } -#line 1982 "config-parser.c" /* yacc.c:1652 */ +#line 2104 "config-parser.c" break; - case 98: -#line 362 "config-parser.y" /* yacc.c:1652 */ - { + case 102: +#line 379 "config-parser.y" +{ struct ChannelConf *item = tmp; xfree(item->name); item->name = xstrdup((yyvsp[-1].string)); } -#line 1993 "config-parser.c" /* yacc.c:1652 */ +#line 2115 "config-parser.c" break; - case 99: -#line 370 "config-parser.y" /* yacc.c:1652 */ - { + case 103: +#line 387 "config-parser.y" +{ struct ChannelConf *item = tmp; xfree(item->key); item->key = xstrdup((yyvsp[-1].string)); } -#line 2004 "config-parser.c" /* yacc.c:1652 */ +#line 2126 "config-parser.c" break; - case 100: -#line 378 "config-parser.y" /* yacc.c:1652 */ - { + case 104: +#line 395 "config-parser.y" +{ struct ChannelConf *item = tmp; xfree(item->invite); item->invite = xstrdup((yyvsp[-1].string)); } -#line 2015 "config-parser.c" /* yacc.c:1652 */ +#line 2137 "config-parser.c" break; - case 101: -#line 388 "config-parser.y" /* yacc.c:1652 */ - { + case 105: +#line 405 "config-parser.y" +{ struct UserConf *item; item = xcalloc(sizeof(*item)); @@ -2024,32 +2146,32 @@ yyreduce: list_add(item, &item->node, &UserItemList); tmp = item; } -#line 2028 "config-parser.c" /* yacc.c:1652 */ +#line 2150 "config-parser.c" break; - case 108: -#line 406 "config-parser.y" /* yacc.c:1652 */ - { + case 112: +#line 423 "config-parser.y" +{ struct UserConf *item = tmp; list_add(xstrdup((yyvsp[-1].string)), node_create(), &item->masks); } -#line 2038 "config-parser.c" /* yacc.c:1652 */ +#line 2160 "config-parser.c" break; - case 109: -#line 413 "config-parser.y" /* yacc.c:1652 */ - { + case 113: +#line 430 "config-parser.y" +{ struct UserConf *item = tmp; list_add(xstrdup((yyvsp[-1].string)), node_create(), &item->scanners); } -#line 2048 "config-parser.c" /* yacc.c:1652 */ +#line 2170 "config-parser.c" break; - case 110: -#line 422 "config-parser.y" /* yacc.c:1652 */ - { + case 114: +#line 439 "config-parser.y" +{ struct ScannerConf *item, *olditem; item = xcalloc(sizeof(*item)); @@ -2061,7 +2183,7 @@ yyreduce: { olditem = ScannerItemList.tail->data; - item->vhost = xstrdup(olditem->vhost); + item->bind = xstrdup(olditem->bind); item->fd = olditem->fd; item->target_ip = xstrdup(olditem->target_ip); item->target_port = olditem->target_port; @@ -2071,7 +2193,7 @@ yyreduce: } else { - item->vhost = xstrdup("0.0.0.0"); + item->bind = xstrdup("0.0.0.0"); item->fd = 512; item->target_ip = xstrdup("127.0.0.1"); item->target_port = 6667; @@ -2082,45 +2204,45 @@ yyreduce: list_add(item, &item->node, &ScannerItemList); tmp = item; } -#line 2086 "config-parser.c" /* yacc.c:1652 */ +#line 2208 "config-parser.c" break; - case 124: -#line 472 "config-parser.y" /* yacc.c:1652 */ - { + case 128: +#line 489 "config-parser.y" +{ struct ScannerConf *item = tmp; xfree(item->name); item->name = xstrdup((yyvsp[-1].string)); } -#line 2097 "config-parser.c" /* yacc.c:1652 */ +#line 2219 "config-parser.c" break; - case 125: -#line 480 "config-parser.y" /* yacc.c:1652 */ - { + case 129: +#line 497 "config-parser.y" +{ struct ScannerConf *item = tmp; - xfree(item->vhost); - item->vhost = xstrdup((yyvsp[-1].string)); + xfree(item->bind); + item->bind = xstrdup((yyvsp[-1].string)); } -#line 2108 "config-parser.c" /* yacc.c:1652 */ +#line 2230 "config-parser.c" break; - case 126: -#line 488 "config-parser.y" /* yacc.c:1652 */ - { + case 130: +#line 505 "config-parser.y" +{ struct ScannerConf *item = tmp; xfree(item->target_ip); item->target_ip = xstrdup((yyvsp[-1].string)); } -#line 2119 "config-parser.c" /* yacc.c:1652 */ +#line 2241 "config-parser.c" break; - case 127: -#line 496 "config-parser.y" /* yacc.c:1652 */ - { + case 131: +#line 513 "config-parser.y" +{ struct ScannerConf *item = tmp; if (item->target_string_created == 0) @@ -2131,52 +2253,52 @@ yyreduce: list_add(xstrdup((yyvsp[-1].string)), node_create(), &item->target_string); } -#line 2135 "config-parser.c" /* yacc.c:1652 */ +#line 2257 "config-parser.c" break; - case 128: -#line 509 "config-parser.y" /* yacc.c:1652 */ - { + case 132: +#line 526 "config-parser.y" +{ struct ScannerConf *item = tmp; item->fd = (yyvsp[-1].number); } -#line 2145 "config-parser.c" /* yacc.c:1652 */ +#line 2267 "config-parser.c" break; - case 129: -#line 516 "config-parser.y" /* yacc.c:1652 */ - { + case 133: +#line 533 "config-parser.y" +{ struct ScannerConf *item = tmp; item->target_port = (yyvsp[-1].number); } -#line 2155 "config-parser.c" /* yacc.c:1652 */ +#line 2277 "config-parser.c" break; - case 130: -#line 523 "config-parser.y" /* yacc.c:1652 */ - { + case 134: +#line 540 "config-parser.y" +{ struct ScannerConf *item = tmp; item->timeout = (yyvsp[-1].number); } -#line 2165 "config-parser.c" /* yacc.c:1652 */ +#line 2287 "config-parser.c" break; - case 131: -#line 530 "config-parser.y" /* yacc.c:1652 */ - { + case 135: +#line 547 "config-parser.y" +{ struct ScannerConf *item = tmp; item->max_read = (yyvsp[-1].number); } -#line 2175 "config-parser.c" /* yacc.c:1652 */ +#line 2297 "config-parser.c" break; - case 132: -#line 537 "config-parser.y" /* yacc.c:1652 */ - { + case 136: +#line 554 "config-parser.y" +{ struct ProtocolConf *item; struct ScannerConf *item2; @@ -2188,39 +2310,39 @@ yyreduce: list_add(item, node_create(), &item2->protocols); } -#line 2192 "config-parser.c" /* yacc.c:1652 */ +#line 2314 "config-parser.c" break; - case 141: -#line 564 "config-parser.y" /* yacc.c:1652 */ - { + case 145: +#line 581 "config-parser.y" +{ xfree(OpmItem.dnsbl_from); OpmItem.dnsbl_from = xstrdup((yyvsp[-1].string)); } -#line 2201 "config-parser.c" /* yacc.c:1652 */ +#line 2323 "config-parser.c" break; - case 142: -#line 570 "config-parser.y" /* yacc.c:1652 */ - { + case 146: +#line 587 "config-parser.y" +{ xfree(OpmItem.dnsbl_to); OpmItem.dnsbl_to = xstrdup((yyvsp[-1].string)); } -#line 2210 "config-parser.c" /* yacc.c:1652 */ +#line 2332 "config-parser.c" break; - case 143: -#line 576 "config-parser.y" /* yacc.c:1652 */ - { + case 147: +#line 593 "config-parser.y" +{ xfree(OpmItem.sendmail); OpmItem.sendmail = xstrdup((yyvsp[-1].string)); } -#line 2219 "config-parser.c" /* yacc.c:1652 */ +#line 2341 "config-parser.c" break; - case 144: -#line 584 "config-parser.y" /* yacc.c:1652 */ - { + case 148: +#line 601 "config-parser.y" +{ struct BlacklistConf *item; item = xcalloc(sizeof(*item)); @@ -2234,65 +2356,65 @@ yyreduce: tmp = item; } -#line 2238 "config-parser.c" /* yacc.c:1652 */ +#line 2360 "config-parser.c" break; - case 155: -#line 612 "config-parser.y" /* yacc.c:1652 */ - { + case 159: +#line 629 "config-parser.y" +{ struct BlacklistConf *item = tmp; xfree(item->name); item->name = xstrdup((yyvsp[-1].string)); } -#line 2249 "config-parser.c" /* yacc.c:1652 */ +#line 2371 "config-parser.c" break; - case 156: -#line 620 "config-parser.y" /* yacc.c:1652 */ - { + case 160: +#line 637 "config-parser.y" +{ struct BlacklistConf *item = tmp; item->ipv4 = 0; item->ipv6 = 0; } -#line 2260 "config-parser.c" /* yacc.c:1652 */ +#line 2382 "config-parser.c" break; - case 160: -#line 629 "config-parser.y" /* yacc.c:1652 */ - { + case 164: +#line 646 "config-parser.y" +{ struct BlacklistConf *item = tmp; item->ipv4 = 1; } -#line 2270 "config-parser.c" /* yacc.c:1652 */ +#line 2392 "config-parser.c" break; - case 161: -#line 634 "config-parser.y" /* yacc.c:1652 */ - { + case 165: +#line 651 "config-parser.y" +{ struct BlacklistConf *item = tmp; item->ipv6 = 1; } -#line 2280 "config-parser.c" /* yacc.c:1652 */ +#line 2402 "config-parser.c" break; - case 162: -#line 641 "config-parser.y" /* yacc.c:1652 */ - { + case 166: +#line 658 "config-parser.y" +{ struct BlacklistConf *item = tmp; xfree(item->kline); item->kline = xstrdup((yyvsp[-1].string)); } -#line 2291 "config-parser.c" /* yacc.c:1652 */ +#line 2413 "config-parser.c" break; - case 163: -#line 649 "config-parser.y" /* yacc.c:1652 */ - { + case 167: +#line 666 "config-parser.y" +{ struct BlacklistConf *item = tmp; if (strcmp("A record bitmask", (yyvsp[-1].string)) == 0) @@ -2302,22 +2424,22 @@ yyreduce: else yyerror("Unknown blacklist type defined"); } -#line 2306 "config-parser.c" /* yacc.c:1652 */ +#line 2428 "config-parser.c" break; - case 164: -#line 661 "config-parser.y" /* yacc.c:1652 */ - { + case 168: +#line 678 "config-parser.y" +{ struct BlacklistConf *item = tmp; item->ban_unknown = (yyvsp[-1].number); } -#line 2316 "config-parser.c" /* yacc.c:1652 */ +#line 2438 "config-parser.c" break; - case 168: -#line 673 "config-parser.y" /* yacc.c:1652 */ - { + case 172: +#line 690 "config-parser.y" +{ struct BlacklistReplyConf *item; struct BlacklistConf *blacklist = tmp; @@ -2327,19 +2449,20 @@ yyreduce: list_add(item, node_create(), &blacklist->reply); } -#line 2331 "config-parser.c" /* yacc.c:1652 */ +#line 2453 "config-parser.c" break; - case 174: -#line 695 "config-parser.y" /* yacc.c:1652 */ - { + case 178: +#line 712 "config-parser.y" +{ list_add(xstrdup((yyvsp[-1].string)), node_create(), &ExemptItem.masks); } -#line 2339 "config-parser.c" /* yacc.c:1652 */ +#line 2461 "config-parser.c" break; -#line 2343 "config-parser.c" /* yacc.c:1652 */ +#line 2465 "config-parser.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2402,7 +2525,7 @@ yyerrlab: { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); if (!yymsg) { yymsg = yymsgbuf; @@ -2557,7 +2680,7 @@ yyreturn: while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + yystos[+*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow @@ -2570,5 +2693,5 @@ yyreturn: #endif return yyresult; } -#line 699 "config-parser.y" /* yacc.c:1918 */ +#line 716 "config-parser.y" |