cfg_parser.c (hitch-1.6.1) | : | cfg_parser.c (hitch-1.7.0) | ||
---|---|---|---|---|
skipping to change at line 210 | skipping to change at line 210 | |||
TOK_PEM_DIR = 320, | TOK_PEM_DIR = 320, | |||
TOK_PEM_DIR_GLOB = 321, | TOK_PEM_DIR_GLOB = 321, | |||
TOK_LOG_LEVEL = 322, | TOK_LOG_LEVEL = 322, | |||
TOK_PROXY_TLV = 323, | TOK_PROXY_TLV = 323, | |||
TOK_PROXY_AUTHORITY = 324, | TOK_PROXY_AUTHORITY = 324, | |||
TOK_TFO = 325, | TOK_TFO = 325, | |||
TOK_CLIENT_VERIFY = 326, | TOK_CLIENT_VERIFY = 326, | |||
TOK_VERIFY_NONE = 327, | TOK_VERIFY_NONE = 327, | |||
TOK_VERIFY_OPT = 328, | TOK_VERIFY_OPT = 328, | |||
TOK_VERIFY_REQ = 329, | TOK_VERIFY_REQ = 329, | |||
TOK_CLIENT_VERIFY_CA = 330 | TOK_CLIENT_VERIFY_CA = 330, | |||
TOK_PROXY_CCERT = 331 | ||||
}; | }; | |||
#endif | #endif | |||
/* Tokens. */ | /* Tokens. */ | |||
#define INT 258 | #define INT 258 | |||
#define UINT 259 | #define UINT 259 | |||
#define BOOL 260 | #define BOOL 260 | |||
#define STRING 261 | #define STRING 261 | |||
#define TOK_CIPHERS 262 | #define TOK_CIPHERS 262 | |||
#define TOK_SSL_ENGINE 263 | #define TOK_SSL_ENGINE 263 | |||
#define TOK_PREFER_SERVER_CIPHERS 264 | #define TOK_PREFER_SERVER_CIPHERS 264 | |||
skipping to change at line 287 | skipping to change at line 288 | |||
#define TOK_PEM_DIR_GLOB 321 | #define TOK_PEM_DIR_GLOB 321 | |||
#define TOK_LOG_LEVEL 322 | #define TOK_LOG_LEVEL 322 | |||
#define TOK_PROXY_TLV 323 | #define TOK_PROXY_TLV 323 | |||
#define TOK_PROXY_AUTHORITY 324 | #define TOK_PROXY_AUTHORITY 324 | |||
#define TOK_TFO 325 | #define TOK_TFO 325 | |||
#define TOK_CLIENT_VERIFY 326 | #define TOK_CLIENT_VERIFY 326 | |||
#define TOK_VERIFY_NONE 327 | #define TOK_VERIFY_NONE 327 | |||
#define TOK_VERIFY_OPT 328 | #define TOK_VERIFY_OPT 328 | |||
#define TOK_VERIFY_REQ 329 | #define TOK_VERIFY_REQ 329 | |||
#define TOK_CLIENT_VERIFY_CA 330 | #define TOK_CLIENT_VERIFY_CA 330 | |||
#define TOK_PROXY_CCERT 331 | ||||
/* Value type. */ | /* Value type. */ | |||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED | #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED | |||
union YYSTYPE | union YYSTYPE | |||
{ | { | |||
#line 36 "cfg_parser.y" /* yacc.c:352 */ | #line 36 "cfg_parser.y" /* yacc.c:352 */ | |||
int i; | int i; | |||
char *s; | char *s; | |||
#line 303 "cfg_parser.c" /* yacc.c:352 */ | #line 305 "cfg_parser.c" /* yacc.c:352 */ | |||
}; | }; | |||
typedef union YYSTYPE YYSTYPE; | typedef union YYSTYPE YYSTYPE; | |||
# define YYSTYPE_IS_TRIVIAL 1 | # define YYSTYPE_IS_TRIVIAL 1 | |||
# define YYSTYPE_IS_DECLARED 1 | # define YYSTYPE_IS_DECLARED 1 | |||
#endif | #endif | |||
extern YYSTYPE yylval; | extern YYSTYPE yylval; | |||
int yyparse (hitch_config *cfg); | int yyparse (hitch_config *cfg); | |||
skipping to change at line 539 | skipping to change at line 541 | |||
YYSIZE_T yyi; \ | YYSIZE_T yyi; \ | |||
for (yyi = 0; yyi < (Count); yyi++) \ | for (yyi = 0; yyi < (Count); yyi++) \ | |||
(Dst)[yyi] = (Src)[yyi]; \ | (Dst)[yyi] = (Src)[yyi]; \ | |||
} \ | } \ | |||
while (0) | while (0) | |||
# endif | # endif | |||
# endif | # endif | |||
#endif /* !YYCOPY_NEEDED */ | #endif /* !YYCOPY_NEEDED */ | |||
/* YYFINAL -- State number of the termination state. */ | /* YYFINAL -- State number of the termination state. */ | |||
#define YYFINAL 150 | #define YYFINAL 153 | |||
/* YYLAST -- Last index in YYTABLE. */ | /* YYLAST -- Last index in YYTABLE. */ | |||
#define YYLAST 220 | #define YYLAST 224 | |||
/* YYNTOKENS -- Number of terminals. */ | /* YYNTOKENS -- Number of terminals. */ | |||
#define YYNTOKENS 79 | #define YYNTOKENS 80 | |||
/* YYNNTS -- Number of nonterminals. */ | /* YYNNTS -- Number of nonterminals. */ | |||
#define YYNNTS 84 | #define YYNNTS 85 | |||
/* YYNRULES -- Number of rules. */ | /* YYNRULES -- Number of rules. */ | |||
#define YYNRULES 165 | #define YYNRULES 167 | |||
/* YYNSTATES -- Number of states. */ | /* YYNSTATES -- Number of states. */ | |||
#define YYNSTATES 303 | #define YYNSTATES 307 | |||
#define YYUNDEFTOK 2 | #define YYUNDEFTOK 2 | |||
#define YYMAXUTOK 330 | #define YYMAXUTOK 331 | |||
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM | /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM | |||
as returned by yylex, with out-of-bounds checking. */ | as returned by yylex, with out-of-bounds checking. */ | |||
#define YYTRANSLATE(YYX) \ | #define YYTRANSLATE(YYX) \ | |||
((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | |||
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM | /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM | |||
as returned by yylex. */ | as returned by yylex. */ | |||
static const yytype_uint8 yytranslate[] = | static const yytype_uint8 yytranslate[] = | |||
{ | { | |||
0, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 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, 76, 2, 2, 2, 2, 2, 2, 2, 2, | 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, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 78, 2, 2, 2, 2, | 2, 2, 2, 78, 2, 79, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 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, | 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, | |||
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | |||
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | |||
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, | |||
35, 36, 37, 38, 39, 40, 41, 42, 43, 44, | 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, | |||
45, 46, 47, 48, 49, 50, 51, 52, 53, 54, | 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, | |||
55, 56, 57, 58, 59, 60, 61, 62, 63, 64, | 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, | |||
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, | 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, | |||
75 | 75, 76 | |||
}; | }; | |||
#if YYDEBUG | #if YYDEBUG | |||
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ | /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ | |||
static const yytype_uint16 yyrline[] = | static const yytype_uint16 yyrline[] = | |||
{ | { | |||
0, 69, 69, 73, 74, 78, 79, 80, 81, 82, | 0, 69, 69, 73, 74, 78, 79, 80, 81, 82, | |||
83, 84, 85, 86, 87, 88, 89, 90, 91, 92, | 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, | |||
93, 94, 95, 96, 97, 98, 99, 100, 101, 102, | 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, | |||
103, 104, 105, 106, 107, 108, 109, 110, 111, 112, | 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, | |||
113, 114, 115, 116, 117, 118, 119, 120, 121, 122, | 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, | |||
123, 124, 125, 129, 135, 135, 146, 148, 149, 153, | 123, 124, 125, 126, 130, 136, 136, 147, 149, 150, | |||
154, 155, 156, 157, 158, 159, 160, 161, 162, 163, | 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, | |||
164, 165, 168, 177, 179, 182, 183, 187, 188, 189, | 164, 165, 166, 169, 178, 180, 183, 184, 188, 189, | |||
190, 193, 195, 200, 207, 211, 224, 232, 239, 243, | 190, 191, 194, 196, 201, 208, 212, 225, 233, 240, | |||
247, 252, 266, 266, 281, 283, 288, 290, 295, 312, | 244, 248, 253, 267, 267, 282, 284, 289, 291, 296, | |||
329, 329, 341, 341, 343, 344, 345, 346, 347, 349, | 313, 330, 330, 342, 342, 344, 345, 346, 347, 348, | |||
353, 360, 364, 371, 373, 375, 377, 392, 407, 407, | 350, 354, 361, 365, 372, 374, 376, 378, 393, 408, | |||
417, 417, 419, 420, 421, 422, 423, 425, 427, 431, | 408, 418, 418, 420, 421, 422, 423, 424, 426, 428, | |||
438, 446, 452, 452, 471, 472, 473, 477, 483, 490, | 432, 439, 447, 453, 453, 472, 473, 474, 478, 484, | |||
497, 504, 506, 508, 512, 516, 518, 520, 522, 529, | 491, 498, 505, 507, 509, 513, 517, 519, 521, 523, | |||
537, 539, 541, 549, 551, 561, 574, 587, 600, 610, | 525, 532, 540, 542, 544, 552, 554, 564, 577, 590, | |||
614, 620, 623, 629, 635, 644 | 603, 613, 617, 623, 626, 632, 638, 647 | |||
}; | }; | |||
#endif | #endif | |||
#if YYDEBUG || YYERROR_VERBOSE || 0 | #if YYDEBUG || YYERROR_VERBOSE || 0 | |||
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. | /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. | |||
First, the terminals, then, starting at YYNTOKENS, nonterminals. */ | First, the terminals, then, starting at YYNTOKENS, nonterminals. */ | |||
static const char *const yytname[] = | static const char *const yytname[] = | |||
{ | { | |||
"$end", "error", "$undefined", "INT", "UINT", "BOOL", "STRING", | "$end", "error", "$undefined", "INT", "UINT", "BOOL", "STRING", | |||
"TOK_CIPHERS", "TOK_SSL_ENGINE", "TOK_PREFER_SERVER_CIPHERS", | "TOK_CIPHERS", "TOK_SSL_ENGINE", "TOK_PREFER_SERVER_CIPHERS", | |||
skipping to change at line 649 | skipping to change at line 651 | |||
"TOK_SNI_NOMATCH_ABORT", "TOK_SSL", "TOK_TLS", "TOK_HOST", "TOK_PORT", | "TOK_SNI_NOMATCH_ABORT", "TOK_SSL", "TOK_TLS", "TOK_HOST", "TOK_PORT", | |||
"TOK_MATCH_GLOBAL", "TOK_PB_CERT", "TOK_PB_OCSP_FILE", "TOK_OCSP_VERIFY", | "TOK_MATCH_GLOBAL", "TOK_PB_CERT", "TOK_PB_OCSP_FILE", "TOK_OCSP_VERIFY", | |||
"TOK_OCSP_DIR", "TOK_OCSP_RESP_TMO", "TOK_OCSP_CONN_TMO", | "TOK_OCSP_DIR", "TOK_OCSP_RESP_TMO", "TOK_OCSP_CONN_TMO", | |||
"TOK_ALPN_PROTOS", "TOK_TLS_PROTOS", "TOK_SSLv3", "TOK_TLSv1_0", | "TOK_ALPN_PROTOS", "TOK_TLS_PROTOS", "TOK_SSLv3", "TOK_TLSv1_0", | |||
"TOK_TLSv1_1", "TOK_TLSv1_2", "TOK_TLSv1_3", "TOK_CIPHERSUITES", | "TOK_TLSv1_1", "TOK_TLSv1_2", "TOK_TLSv1_3", "TOK_CIPHERSUITES", | |||
"TOK_ECDH_CURVE", "TOK_SESSION_CACHE", "TOK_SHARED_CACHE_LISTEN", | "TOK_ECDH_CURVE", "TOK_SESSION_CACHE", "TOK_SHARED_CACHE_LISTEN", | |||
"TOK_SHARED_CACHE_PEER", "TOK_SHARED_CACHE_IF", "TOK_PRIVATE_KEY", | "TOK_SHARED_CACHE_PEER", "TOK_SHARED_CACHE_IF", "TOK_PRIVATE_KEY", | |||
"TOK_BACKEND_REFRESH", "TOK_OCSP_REFRESH_INTERVAL", "TOK_PEM_DIR", | "TOK_BACKEND_REFRESH", "TOK_OCSP_REFRESH_INTERVAL", "TOK_PEM_DIR", | |||
"TOK_PEM_DIR_GLOB", "TOK_LOG_LEVEL", "TOK_PROXY_TLV", | "TOK_PEM_DIR_GLOB", "TOK_LOG_LEVEL", "TOK_PROXY_TLV", | |||
"TOK_PROXY_AUTHORITY", "TOK_TFO", "TOK_CLIENT_VERIFY", "TOK_VERIFY_NONE", | "TOK_PROXY_AUTHORITY", "TOK_TFO", "TOK_CLIENT_VERIFY", "TOK_VERIFY_NONE", | |||
"TOK_VERIFY_OPT", "TOK_VERIFY_REQ", "TOK_CLIENT_VERIFY_CA", "'='", "'{'", | "TOK_VERIFY_OPT", "TOK_VERIFY_REQ", "TOK_CLIENT_VERIFY_CA", | |||
"'}'", "$accept", "CFG", "CFG_RECORDS", "CFG_RECORD", "FRONTEND_REC", | "TOK_PROXY_CCERT", "'='", "'{'", "'}'", "$accept", "CFG", "CFG_RECORDS", | |||
"$@1", "FRONTEND_BLK", "FB_RECS", "FB_REC", "FB_HOST", "FB_PORT", | "CFG_RECORD", "FRONTEND_REC", "$@1", "FRONTEND_BLK", "FB_RECS", "FB_REC", | |||
"PEM_BLK", "PB_RECS", "PB_REC", "PB_CERT", "PB_OCSP_RESP_FILE", | "FB_HOST", "FB_PORT", "PEM_BLK", "PB_RECS", "PB_REC", "PB_CERT", | |||
"OCSP_VERIFY", "PRIVATE_KEY", "PEM_DIR", "PEM_DIR_GLOB", "OCSP_DIR", | "PB_OCSP_RESP_FILE", "OCSP_VERIFY", "PRIVATE_KEY", "PEM_DIR", | |||
"OCSP_RESP_TMO", "OCSP_CONN_TMO", "OCSP_REFRESH_INTERVAL", "FB_CERT", | "PEM_DIR_GLOB", "OCSP_DIR", "OCSP_RESP_TMO", "OCSP_CONN_TMO", | |||
"$@2", "FB_CLIENT_VERIFY", "FB_CLIENT_VERIFY_CA", "FB_MATCH_GLOBAL", | "OCSP_REFRESH_INTERVAL", "FB_CERT", "$@2", "FB_CLIENT_VERIFY", | |||
"FB_SNI_NOMATCH_ABORT", "FB_TLS", "FB_SSL", "FB_TLS_PROTOS", "$@3", | "FB_CLIENT_VERIFY_CA", "FB_MATCH_GLOBAL", "FB_SNI_NOMATCH_ABORT", | |||
"FB_TLS_PROTOS_LIST", "FB_TLS_PROTO", "FB_CIPHERS", "FB_CIPHERSUITES", | "FB_TLS", "FB_SSL", "FB_TLS_PROTOS", "$@3", "FB_TLS_PROTOS_LIST", | |||
"FB_PREF_SRV_CIPH", "QUIET_REC", "WORKERS_REC", "BACKLOG_REC", | "FB_TLS_PROTO", "FB_CIPHERS", "FB_CIPHERSUITES", "FB_PREF_SRV_CIPH", | |||
"KEEPALIVE_REC", "TLS_REC", "SSL_REC", "TLS_PROTOS_REC", "$@4", | "QUIET_REC", "WORKERS_REC", "BACKLOG_REC", "KEEPALIVE_REC", "TLS_REC", | |||
"TLS_PROTOS_LIST", "TLS_PROTO", "SSL_ENGINE_REC", | "SSL_REC", "TLS_PROTOS_REC", "$@4", "TLS_PROTOS_LIST", "TLS_PROTO", | |||
"PREFER_SERVER_CIPHERS_REC", "CHROOT_REC", "BACKEND_REC", "PEM_FILE_REC", | "SSL_ENGINE_REC", "PREFER_SERVER_CIPHERS_REC", "CHROOT_REC", | |||
"$@5", "SYSLOG_REC", "DAEMON_REC", "SNI_NOMATCH_ABORT_REC", | "BACKEND_REC", "PEM_FILE_REC", "$@5", "SYSLOG_REC", "DAEMON_REC", | |||
"CIPHERS_REC", "CIPHERSUITES_REC", "USER_REC", "GROUP_REC", | "SNI_NOMATCH_ABORT_REC", "CIPHERS_REC", "CIPHERSUITES_REC", "USER_REC", | |||
"WRITE_IP_REC", "WRITE_PROXY_REC", "WRITE_PROXY_V1_REC", | "GROUP_REC", "WRITE_IP_REC", "WRITE_PROXY_REC", "WRITE_PROXY_V1_REC", | |||
"WRITE_PROXY_V2_REC", "PROXY_TLV_REC", "PROXY_PROXY_REC", | "WRITE_PROXY_V2_REC", "PROXY_TLV_REC", "PROXY_CCRT_REC", | |||
"ALPN_PROTOS_REC", "SYSLOG_FACILITY_REC", "SEND_BUFSIZE_REC", | "PROXY_PROXY_REC", "ALPN_PROTOS_REC", "SYSLOG_FACILITY_REC", | |||
"RECV_BUFSIZE_REC", "LOG_FILENAME_REC", "LOG_LEVEL_REC", | "SEND_BUFSIZE_REC", "RECV_BUFSIZE_REC", "LOG_FILENAME_REC", | |||
"SESSION_CACHE_REC", "SHARED_CACHE_LISTEN_REC", "SHARED_CACHE_PEER_REC", | "LOG_LEVEL_REC", "SESSION_CACHE_REC", "SHARED_CACHE_LISTEN_REC", | |||
"SHARED_CACHE_IF_REC", "TFO", "BACKEND_REFRESH_REC", "ECDH_CURVE_REC", | "SHARED_CACHE_PEER_REC", "SHARED_CACHE_IF_REC", "TFO", | |||
"CLIENT_VERIFY_REC", "CLIENT_VERIFY_OPT", "CLIENT_VERIFY_CA_REC", YY_NULLPTR | "BACKEND_REFRESH_REC", "ECDH_CURVE_REC", "CLIENT_VERIFY_REC", | |||
"CLIENT_VERIFY_OPT", "CLIENT_VERIFY_CA_REC", YY_NULLPTR | ||||
}; | }; | |||
#endif | #endif | |||
# ifdef YYPRINT | # ifdef YYPRINT | |||
/* YYTOKNUM[NUM] -- (External) token number corresponding to the | /* YYTOKNUM[NUM] -- (External) token number corresponding to the | |||
(internal) symbol number NUM (which must be that of a token). */ | (internal) symbol number NUM (which must be that of a token). */ | |||
static const yytype_uint16 yytoknum[] = | static const yytype_uint16 yytoknum[] = | |||
{ | { | |||
0, 256, 257, 258, 259, 260, 261, 262, 263, 264, | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, | |||
265, 266, 267, 268, 269, 270, 271, 272, 273, 274, | 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, | |||
275, 276, 277, 278, 279, 280, 281, 282, 283, 284, | 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, | |||
285, 286, 287, 288, 289, 290, 291, 292, 293, 294, | 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, | |||
295, 296, 297, 298, 299, 300, 301, 302, 303, 304, | 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, | |||
305, 306, 307, 308, 309, 310, 311, 312, 313, 314, | 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, | |||
315, 316, 317, 318, 319, 320, 321, 322, 323, 324, | 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, | |||
325, 326, 327, 328, 329, 330, 61, 123, 125 | 325, 326, 327, 328, 329, 330, 331, 61, 123, 125 | |||
}; | }; | |||
# endif | # endif | |||
#define YYPACT_NINF -81 | #define YYPACT_NINF -82 | |||
#define yypact_value_is_default(Yystate) \ | #define yypact_value_is_default(Yystate) \ | |||
(!!((Yystate) == (-81))) | (!!((Yystate) == (-82))) | |||
#define YYTABLE_NINF -1 | #define YYTABLE_NINF -1 | |||
#define yytable_value_is_error(Yytable_value) \ | #define yytable_value_is_error(Yytable_value) \ | |||
0 | 0 | |||
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | |||
STATE-NUM. */ | STATE-NUM. */ | |||
static const yytype_int16 yypact[] = | static const yytype_int16 yypact[] = | |||
{ | { | |||
-1, -72, -71, -56, -48, -47, -26, -25, -23, -15, | 0, -56, -48, -47, -26, -25, -23, -15, 1, 8, | |||
0, 10, 12, 13, 14, 15, 16, 17, 18, 20, | 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, | |||
21, 22, 23, 24, 25, 26, 28, 35, 36, 37, | 19, 21, 22, 23, 24, 25, 26, 27, 28, 36, | |||
38, 39, 40, -81, 41, 43, 44, 45, 46, 47, | 37, 38, 39, -82, 40, 41, 42, 44, 45, 46, | |||
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, | 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, | |||
87, -1, -81, -81, -81, -81, -81, -81, -81, -81, | 58, 106, 0, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, | |||
-81, 97, 129, 131, 132, -6, 133, 136, 137, 138, | -82, -82, -82, 130, 131, 133, 134, -6, 135, 138, | |||
139, 140, 142, 143, 144, 146, 147, 148, 149, 150, | 139, 140, 141, 142, 144, 145, 146, 148, 149, 150, | |||
-5, 151, 145, 153, 152, 154, 155, 156, 157, 158, | 151, 152, -5, 153, 147, 155, 154, 156, 157, 158, | |||
159, 161, 160, 66, 162, 163, 166, 165, 167, 168, | 159, 160, 161, 163, 162, 67, 164, 165, 168, 167, | |||
171, 172, 173, 174, 177, 178, 179, 180, 11, 176, | 169, 170, 173, 174, 175, 176, 179, 180, 181, 182, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | -68, 178, 183, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -81, -12, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -11, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -81, 68, -10, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -12, -81, 91, 96, 101, 102, 110, | 70, -9, -82, -82, -82, -82, -82, -11, -82, 92, | |||
111, 112, 113, 114, -81, 115, 116, 117, 118, 68, | 97, 102, 103, 112, 113, 114, 115, 116, -82, 117, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | 118, 119, 120, 70, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -81, 119, 121, 122, 123, -10, -81, | -82, -82, -82, -82, -82, -82, -82, -82, 121, 123, | |||
-81, -81, -81, -81, -81, 188, 194, -4, 195, 197, | 124, 125, -9, -82, -82, -82, -82, -82, -82, 191, | |||
198, 199, 200, 202, 128, 203, 11, 204, -81, -81, | 197, -4, 198, 200, 201, 202, 203, 205, 136, 206, | |||
205, 206, 207, -81, -81, -81, -81, -81, -81, -81, | -68, 208, -82, -82, 209, 210, 211, -82, -82, -82, | |||
-81, -81, -81, -81, -81, 27, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, 29, | |||
-81, -81, -10, -81, -81, -81, -81, -81, 27, -81, | -82, -82, -82, -82, -82, -82, -9, -82, -82, -82, | |||
130, -81, -81 | -82, -82, 29, -82, 128, -82, -82 | |||
}; | }; | |||
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. | /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. | |||
Performed when YYTABLE does not specify something else to do. Zero | Performed when YYTABLE does not specify something else to do. Zero | |||
means the default is an error. */ | means the default is an error. */ | |||
static const yytype_uint8 yydefact[] = | static const yytype_uint8 yydefact[] = | |||
{ | { | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 118, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
0, 2, 3, 5, 33, 38, 39, 37, 34, 35, | 0, 0, 2, 3, 5, 34, 39, 40, 38, 35, | |||
36, 21, 15, 16, 17, 10, 11, 12, 14, 13, | 36, 37, 21, 15, 16, 17, 10, 11, 12, 14, | |||
18, 6, 7, 22, 24, 32, 8, 9, 19, 20, | 13, 18, 6, 7, 22, 24, 33, 8, 9, 19, | |||
25, 26, 27, 28, 31, 29, 30, 23, 46, 47, | 20, 25, 26, 27, 28, 31, 32, 29, 30, 23, | |||
44, 45, 40, 41, 42, 43, 49, 48, 50, 51, | 47, 48, 45, 46, 41, 42, 43, 44, 50, 49, | |||
52, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 51, 52, 53, 0, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
1, 4, 137, 127, 128, 130, 53, 54, 113, 114, | 0, 0, 0, 1, 4, 138, 128, 129, 131, 54, | |||
115, 129, 139, 140, 112, 134, 149, 135, 141, 142, | 55, 114, 115, 116, 130, 140, 141, 113, 135, 151, | |||
143, 144, 131, 132, 147, 151, 150, 152, 136, 117, | 136, 142, 143, 144, 145, 132, 133, 149, 153, 152, | |||
116, 83, 87, 88, 89, 148, 0, 138, 160, 154, | 154, 137, 118, 117, 84, 88, 89, 90, 150, 0, | |||
155, 156, 157, 159, 90, 85, 86, 153, 145, 146, | 139, 162, 156, 157, 158, 159, 161, 91, 86, 87, | |||
158, 162, 163, 164, 161, 165, 0, 0, 122, 123, | 155, 146, 147, 160, 164, 165, 166, 163, 167, 148, | |||
124, 125, 126, 119, 120, 0, 0, 0, 0, 0, | 0, 0, 123, 124, 125, 126, 127, 120, 121, 0, | |||
0, 0, 0, 0, 100, 0, 0, 0, 0, 56, | 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, | |||
57, 59, 60, 61, 62, 63, 64, 65, 66, 67, | 0, 0, 0, 57, 58, 60, 61, 62, 63, 64, | |||
68, 69, 70, 71, 0, 0, 0, 0, 74, 75, | 65, 66, 67, 68, 69, 70, 71, 72, 0, 0, | |||
77, 78, 79, 80, 121, 0, 0, 0, 0, 0, | 0, 0, 75, 76, 78, 79, 80, 81, 122, 0, | |||
0, 0, 0, 0, 0, 0, 0, 0, 55, 58, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 133, 76, 109, 111, 91, 92, 97, | 0, 0, 56, 59, 0, 0, 0, 134, 77, 110, | |||
99, 98, 72, 73, 96, 0, 110, 94, 95, 81, | 112, 92, 93, 98, 100, 99, 73, 74, 97, 0, | |||
82, 84, 0, 104, 105, 106, 107, 108, 101, 102, | 111, 95, 96, 82, 83, 85, 0, 105, 106, 107, | |||
0, 103, 93 | 108, 109, 102, 103, 0, 104, 94 | |||
}; | }; | |||
/* YYPGOTO[NTERM-NUM]. */ | /* YYPGOTO[NTERM-NUM]. */ | |||
static const yytype_int16 yypgoto[] = | static const yytype_int16 yypgoto[] = | |||
{ | { | |||
-81, -81, -81, 164, -81, -81, -81, -81, -13, -81, | -82, -82, -82, 166, -82, -82, -82, -82, -22, -82, | |||
-81, -78, -81, -31, -81, -81, 3, -81, -81, -81, | -82, -77, -82, -32, -82, -82, 3, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -80, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -81, -82, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -81, -81, -81, 6, -81, | -82, -82, -82, -82, -82, -82, -82, -82, 5, -82, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81, | -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, | |||
-81, -81, -46, -81 | -82, -82, -82, -46, -82 | |||
}; | }; | |||
/* YYDEFGOTO[NTERM-NUM]. */ | /* YYDEFGOTO[NTERM-NUM]. */ | |||
static const yytype_int16 yydefgoto[] = | static const yytype_int16 yydefgoto[] = | |||
{ | { | |||
-1, 50, 51, 52, 53, 206, 228, 229, 230, 231, | -1, 51, 52, 53, 54, 210, 232, 233, 234, 235, | |||
232, 247, 248, 249, 250, 251, 252, 253, 55, 56, | 236, 251, 252, 253, 254, 255, 256, 257, 56, 57, | |||
57, 58, 59, 60, 233, 292, 234, 235, 236, 237, | 58, 59, 60, 61, 237, 296, 238, 239, 240, 241, | |||
238, 239, 240, 264, 298, 299, 241, 242, 243, 61, | 242, 243, 244, 268, 302, 303, 245, 246, 247, 62, | |||
62, 63, 64, 65, 66, 67, 133, 213, 214, 68, | 63, 64, 65, 66, 67, 68, 135, 217, 218, 69, | |||
69, 70, 71, 72, 207, 73, 74, 75, 76, 77, | 70, 71, 72, 73, 211, 74, 75, 76, 77, 78, | |||
78, 79, 80, 81, 82, 83, 84, 85, 86, 87, | 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, | |||
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, | 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, | |||
98, 99, 204, 100 | 99, 100, 101, 207, 102 | |||
}; | }; | |||
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If | /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If | |||
positive, shift that token. If negative, reduce the rule whose | positive, shift that token. If negative, reduce the rule whose | |||
number is the opposite. If YYTABLE_NINF, syntax error. */ | number is the opposite. If YYTABLE_NINF, syntax error. */ | |||
static const yytype_uint16 yytable[] = | static const yytype_uint16 yytable[] = | |||
{ | { | |||
156, 172, 277, 54, 101, 102, 1, 2, 3, 4, | 159, 175, 281, 55, 204, 205, 206, 1, 2, 3, | |||
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, | |||
103, 15, 16, 17, 18, 19, 20, 21, 104, 105, | 14, 103, 15, 16, 17, 18, 19, 20, 21, 104, | |||
22, 23, 24, 244, 245, 28, 25, 26, 27, 208, | 105, 22, 23, 24, 248, 249, 28, 25, 26, 27, | |||
209, 210, 211, 212, 28, 29, 30, 31, 32, 33, | 212, 213, 214, 215, 216, 28, 29, 30, 31, 32, | |||
106, 107, 246, 108, 54, 34, 35, 36, 37, 38, | 33, 106, 107, 250, 108, 55, 34, 35, 36, 37, | |||
39, 109, 40, 41, 42, 43, 44, 45, 46, 47, | 38, 39, 109, 40, 41, 42, 43, 44, 45, 46, | |||
48, 157, 173, 278, 49, 215, 110, 216, 293, 294, | 47, 48, 160, 176, 282, 49, 50, 219, 110, 220, | |||
295, 296, 297, 201, 202, 203, 111, 150, 112, 113, | 297, 298, 299, 300, 301, 111, 112, 113, 114, 115, | |||
114, 115, 116, 117, 118, 217, 119, 120, 121, 122, | 116, 117, 118, 119, 120, 121, 122, 221, 123, 124, | |||
123, 124, 125, 152, 126, 218, 219, 220, 221, 222, | 125, 126, 127, 128, 129, 130, 153, 222, 223, 224, | |||
223, 127, 128, 129, 130, 131, 132, 134, 224, 135, | 225, 226, 227, 131, 132, 133, 134, 136, 137, 138, | |||
136, 137, 138, 139, 225, 140, 141, 142, 143, 144, | 228, 139, 140, 141, 142, 143, 229, 144, 145, 146, | |||
145, 146, 147, 148, 149, 153, 154, 158, 155, 226, | 147, 148, 149, 150, 151, 152, 155, 156, 157, 161, | |||
159, 160, 186, 227, 161, 162, 163, 164, 165, 175, | 158, 230, 162, 163, 189, 231, 164, 165, 166, 167, | |||
166, 167, 168, 169, 170, 171, 174, 176, 177, 178, | 168, 178, 169, 170, 171, 172, 173, 174, 177, 179, | |||
179, 180, 181, 183, 182, 184, 185, 255, 187, 188, | 180, 181, 182, 183, 184, 186, 185, 187, 188, 259, | |||
189, 190, 256, 191, 192, 193, 194, 257, 258, 195, | 190, 191, 192, 193, 260, 194, 195, 196, 197, 261, | |||
196, 197, 205, 198, 199, 200, 259, 260, 261, 262, | 262, 198, 199, 200, 208, 201, 202, 203, 209, 263, | |||
263, 265, 266, 267, 275, 270, 268, 271, 272, 276, | 264, 265, 266, 267, 269, 270, 271, 279, 274, 272, | |||
279, 273, 280, 281, 285, 282, 283, 284, 302, 286, | 275, 276, 280, 283, 277, 284, 285, 306, 286, 287, | |||
288, 289, 290, 291, 300, 151, 269, 274, 301, 254, | 288, 273, 290, 289, 292, 293, 294, 295, 154, 304, | |||
287 | 278, 305, 258, 0, 291 | |||
}; | }; | |||
static const yytype_uint16 yycheck[] = | static const yytype_int16 yycheck[] = | |||
{ | { | |||
6, 6, 6, 0, 76, 76, 7, 8, 9, 10, | 6, 6, 6, 0, 72, 73, 74, 7, 8, 9, | |||
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, | 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, | |||
76, 22, 23, 24, 25, 26, 27, 28, 76, 76, | 20, 77, 22, 23, 24, 25, 26, 27, 28, 77, | |||
31, 32, 33, 43, 44, 45, 37, 38, 39, 51, | 77, 31, 32, 33, 43, 44, 45, 37, 38, 39, | |||
52, 53, 54, 55, 45, 46, 47, 48, 49, 50, | 51, 52, 53, 54, 55, 45, 46, 47, 48, 49, | |||
76, 76, 62, 76, 51, 56, 57, 58, 59, 60, | 50, 77, 77, 62, 77, 52, 56, 57, 58, 59, | |||
61, 76, 63, 64, 65, 66, 67, 68, 69, 70, | 60, 61, 77, 63, 64, 65, 66, 67, 68, 69, | |||
71, 77, 77, 77, 75, 7, 76, 9, 51, 52, | 70, 71, 78, 78, 78, 75, 76, 7, 77, 9, | |||
53, 54, 55, 72, 73, 74, 76, 0, 76, 76, | 51, 52, 53, 54, 55, 77, 77, 77, 77, 77, | |||
76, 76, 76, 76, 76, 27, 76, 76, 76, 76, | 77, 77, 77, 77, 77, 77, 77, 27, 77, 77, | |||
76, 76, 76, 6, 76, 37, 38, 39, 40, 41, | 77, 77, 77, 77, 77, 77, 0, 37, 38, 39, | |||
42, 76, 76, 76, 76, 76, 76, 76, 50, 76, | 40, 41, 42, 77, 77, 77, 77, 77, 77, 77, | |||
76, 76, 76, 76, 56, 76, 76, 76, 76, 76, | 50, 77, 77, 77, 77, 77, 56, 77, 77, 77, | |||
76, 76, 76, 76, 76, 6, 5, 4, 6, 71, | 77, 77, 77, 77, 77, 77, 6, 6, 5, 4, | |||
4, 4, 76, 75, 6, 6, 6, 5, 5, 4, | 6, 71, 4, 4, 77, 75, 6, 6, 6, 5, | |||
6, 5, 5, 5, 5, 5, 5, 4, 6, 5, | 5, 4, 6, 5, 5, 5, 5, 5, 5, 4, | |||
5, 5, 5, 4, 6, 4, 6, 76, 6, 6, | 6, 5, 5, 5, 5, 4, 6, 4, 6, 77, | |||
4, 6, 76, 6, 6, 4, 4, 76, 76, 6, | 6, 6, 4, 6, 77, 6, 6, 4, 4, 77, | |||
6, 4, 6, 5, 5, 5, 76, 76, 76, 76, | 77, 6, 6, 4, 6, 5, 5, 5, 5, 77, | |||
76, 76, 76, 76, 6, 76, 78, 76, 76, 5, | 77, 77, 77, 77, 77, 77, 77, 6, 77, 79, | |||
5, 78, 5, 5, 76, 6, 6, 5, 78, 6, | 77, 77, 5, 5, 79, 5, 5, 79, 6, 6, | |||
6, 6, 6, 6, 292, 51, 229, 248, 298, 213, | 5, 233, 6, 77, 6, 6, 6, 6, 52, 296, | |||
266 | 252, 302, 217, -1, 270 | |||
}; | }; | |||
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing | /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing | |||
symbol of state STATE-NUM. */ | symbol of state STATE-NUM. */ | |||
static const yytype_uint8 yystos[] = | static const yytype_uint8 yystos[] = | |||
{ | { | |||
0, 7, 8, 9, 10, 11, 12, 13, 14, 15, | 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, | |||
16, 17, 18, 19, 20, 22, 23, 24, 25, 26, | 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, | |||
27, 28, 31, 32, 33, 37, 38, 39, 45, 46, | 27, 28, 31, 32, 33, 37, 38, 39, 45, 46, | |||
47, 48, 49, 50, 56, 57, 58, 59, 60, 61, | 47, 48, 49, 50, 56, 57, 58, 59, 60, 61, | |||
63, 64, 65, 66, 67, 68, 69, 70, 71, 75, | 63, 64, 65, 66, 67, 68, 69, 70, 71, 75, | |||
80, 81, 82, 83, 95, 97, 98, 99, 100, 101, | 76, 81, 82, 83, 84, 96, 98, 99, 100, 101, | |||
102, 118, 119, 120, 121, 122, 123, 124, 128, 129, | 102, 103, 119, 120, 121, 122, 123, 124, 125, 129, | |||
130, 131, 132, 134, 135, 136, 137, 138, 139, 140, | 130, 131, 132, 133, 135, 136, 137, 138, 139, 140, | |||
141, 142, 143, 144, 145, 146, 147, 148, 149, 150, | 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, | |||
151, 152, 153, 154, 155, 156, 157, 158, 159, 160, | 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, | |||
162, 76, 76, 76, 76, 76, 76, 76, 76, 76, | 161, 162, 164, 77, 77, 77, 77, 77, 77, 77, | |||
76, 76, 76, 76, 76, 76, 76, 76, 76, 76, | 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, | |||
76, 76, 76, 76, 76, 76, 76, 76, 76, 76, | 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, | |||
76, 76, 76, 125, 76, 76, 76, 76, 76, 76, | 77, 77, 77, 77, 77, 126, 77, 77, 77, 77, | |||
76, 76, 76, 76, 76, 76, 76, 76, 76, 76, | 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, | |||
0, 82, 6, 6, 5, 6, 6, 77, 4, 4, | 77, 77, 77, 0, 83, 6, 6, 5, 6, 6, | |||
4, 6, 6, 6, 5, 5, 6, 5, 5, 5, | 78, 4, 4, 4, 6, 6, 6, 5, 5, 6, | |||
5, 5, 6, 77, 5, 4, 4, 6, 5, 5, | 5, 5, 5, 5, 5, 6, 78, 5, 4, 4, | |||
5, 5, 6, 4, 4, 6, 76, 6, 6, 4, | 6, 5, 5, 5, 5, 6, 4, 4, 6, 77, | |||
6, 6, 6, 4, 4, 6, 6, 4, 5, 5, | 6, 6, 4, 6, 6, 6, 4, 4, 6, 6, | |||
5, 72, 73, 74, 161, 6, 84, 133, 51, 52, | 4, 5, 5, 5, 72, 73, 74, 163, 6, 5, | |||
53, 54, 55, 126, 127, 7, 9, 27, 37, 38, | 85, 134, 51, 52, 53, 54, 55, 127, 128, 7, | |||
39, 40, 41, 42, 50, 56, 71, 75, 85, 86, | 9, 27, 37, 38, 39, 40, 41, 42, 50, 56, | |||
87, 88, 89, 103, 105, 106, 107, 108, 109, 110, | 71, 75, 86, 87, 88, 89, 90, 104, 106, 107, | |||
111, 115, 116, 117, 43, 44, 62, 90, 91, 92, | 108, 109, 110, 111, 112, 116, 117, 118, 43, 44, | |||
93, 94, 95, 96, 127, 76, 76, 76, 76, 76, | 62, 91, 92, 93, 94, 95, 96, 97, 128, 77, | |||
76, 76, 76, 76, 112, 76, 76, 76, 78, 87, | 77, 77, 77, 77, 77, 77, 77, 77, 113, 77, | |||
76, 76, 76, 78, 92, 6, 5, 6, 77, 5, | 77, 77, 79, 88, 77, 77, 77, 79, 93, 6, | |||
5, 5, 6, 6, 5, 76, 6, 161, 6, 6, | 5, 6, 78, 5, 5, 5, 6, 6, 5, 77, | |||
6, 6, 104, 51, 52, 53, 54, 55, 113, 114, | 6, 163, 6, 6, 6, 6, 105, 51, 52, 53, | |||
90, 114, 78 | 54, 55, 114, 115, 91, 115, 79 | |||
}; | }; | |||
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ | /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ | |||
static const yytype_uint8 yyr1[] = | static const yytype_uint8 yyr1[] = | |||
{ | { | |||
0, 79, 80, 81, 81, 82, 82, 82, 82, 82, | 0, 80, 81, 82, 82, 83, 83, 83, 83, 83, | |||
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, | 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, | |||
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, | 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, | |||
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, | 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, | |||
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, | 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, | |||
82, 82, 82, 83, 84, 83, 85, 86, 86, 87, | 83, 83, 83, 83, 84, 85, 84, 86, 87, 87, | |||
87, 87, 87, 87, 87, 87, 87, 87, 87, 87, | 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, | |||
87, 87, 88, 89, 90, 91, 91, 92, 92, 92, | 88, 88, 88, 89, 90, 91, 92, 92, 93, 93, | |||
92, 93, 94, 95, 96, 97, 98, 99, 100, 101, | 93, 93, 94, 95, 96, 97, 98, 99, 100, 101, | |||
102, 103, 104, 103, 105, 106, 107, 108, 109, 110, | 102, 103, 104, 105, 104, 106, 107, 108, 109, 110, | |||
112, 111, 113, 113, 114, 114, 114, 114, 114, 115, | 111, 113, 112, 114, 114, 115, 115, 115, 115, 115, | |||
116, 117, 118, 119, 120, 121, 122, 123, 125, 124, | 116, 117, 118, 119, 120, 121, 122, 123, 124, 126, | |||
126, 126, 127, 127, 127, 127, 127, 128, 129, 130, | 125, 127, 127, 128, 128, 128, 128, 128, 129, 130, | |||
131, 132, 133, 132, 134, 135, 136, 137, 138, 139, | 131, 132, 133, 134, 133, 135, 136, 137, 138, 139, | |||
140, 141, 142, 143, 144, 145, 145, 146, 147, 148, | 140, 141, 142, 143, 144, 145, 146, 146, 147, 148, | |||
149, 150, 151, 152, 153, 154, 155, 156, 157, 158, | 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, | |||
159, 160, 161, 161, 161, 162 | 159, 160, 161, 162, 163, 163, 163, 164 | |||
}; | }; | |||
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ | /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ | |||
static const yytype_uint8 yyr2[] = | static const yytype_uint8 yyr2[] = | |||
{ | { | |||
0, 2, 1, 1, 2, 1, 1, 1, 1, 1, | 0, 2, 1, 1, 2, 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, 1, 1, 1, 1, 1, | |||
1, 1, 1, 3, 0, 6, 1, 1, 2, 1, | 1, 1, 1, 1, 3, 0, 6, 1, 1, 2, | |||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
1, 1, 3, 3, 1, 1, 2, 1, 1, 1, | 1, 1, 1, 3, 3, 1, 1, 2, 1, 1, | |||
1, 3, 3, 3, 3, 3, 3, 3, 3, 3, | 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, | |||
3, 3, 0, 6, 3, 3, 3, 3, 3, 3, | 3, 3, 3, 0, 6, 3, 3, 3, 3, 3, | |||
0, 4, 1, 2, 1, 1, 1, 1, 1, 3, | 3, 0, 4, 1, 2, 1, 1, 1, 1, 1, | |||
3, 3, 3, 3, 3, 3, 3, 3, 0, 4, | 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, | |||
1, 2, 1, 1, 1, 1, 1, 3, 3, 3, | 4, 1, 2, 1, 1, 1, 1, 1, 3, 3, | |||
3, 3, 0, 6, 3, 3, 3, 3, 3, 3, | 3, 3, 3, 0, 6, 3, 3, 3, 3, 3, | |||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, | |||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, | |||
3, 3, 1, 1, 1, 3 | 3, 3, 3, 3, 1, 1, 1, 3 | |||
}; | }; | |||
#define yyerrok (yyerrstatus = 0) | #define yyerrok (yyerrstatus = 0) | |||
#define yyclearin (yychar = YYEMPTY) | #define yyclearin (yychar = YYEMPTY) | |||
#define YYEMPTY (-2) | #define YYEMPTY (-2) | |||
#define YYEOF 0 | #define YYEOF 0 | |||
#define YYACCEPT goto yyacceptlab | #define YYACCEPT goto yyacceptlab | |||
#define YYABORT goto yyabortlab | #define YYABORT goto yyabortlab | |||
#define YYERROR goto yyerrorlab | #define YYERROR goto yyerrorlab | |||
skipping to change at line 1605 | skipping to change at line 1608 | |||
Otherwise, the following line sets YYVAL to garbage. | Otherwise, the following line sets YYVAL to garbage. | |||
This behavior is undocumented and Bison | This behavior is undocumented and Bison | |||
users should not rely upon it. Assigning to YYVAL | users should not rely upon it. Assigning to YYVAL | |||
unconditionally makes the parser a bit smaller, and it avoids a | unconditionally makes the parser a bit smaller, and it avoids a | |||
GCC warning that YYVAL may be used uninitialized. */ | GCC warning that YYVAL may be used uninitialized. */ | |||
yyval = yyvsp[1-yylen]; | yyval = yyvsp[1-yylen]; | |||
YY_REDUCE_PRINT (yyn); | YY_REDUCE_PRINT (yyn); | |||
switch (yyn) | switch (yyn) | |||
{ | { | |||
case 53: | case 54: | |||
#line 129 "cfg_parser.y" /* yacc.c:1652 */ | #line 130 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
/* XXX: passing an empty string for file */ | /* XXX: passing an empty string for file */ | |||
if ((yyvsp[0].s) && config_param_validate("frontend", (yyvsp[0].s ), cfg, "", | if ((yyvsp[0].s) && config_param_validate("frontend", (yyvsp[0].s ), cfg, "", | |||
yyget_lineno()) != 0) | yyget_lineno()) != 0) | |||
YYABORT; | YYABORT; | |||
} | } | |||
#line 1643 "cfg_parser.c" /* yacc.c:1652 */ | #line 1646 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 54: | case 55: | |||
#line 135 "cfg_parser.y" /* yacc.c:1652 */ | #line 136 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
/* NB: Mid-rule action */ | /* NB: Mid-rule action */ | |||
AZ(cur_fa); | AZ(cur_fa); | |||
cur_fa = front_arg_new(); | cur_fa = front_arg_new(); | |||
} | } | |||
#line 1653 "cfg_parser.c" /* yacc.c:1652 */ | #line 1656 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 55: | case 56: | |||
#line 140 "cfg_parser.y" /* yacc.c:1652 */ | #line 141 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (front_arg_add(cfg, cur_fa) != 1) | if (front_arg_add(cfg, cur_fa) != 1) | |||
YYABORT; | YYABORT; | |||
cur_fa = NULL; | cur_fa = NULL; | |||
} | } | |||
#line 1663 "cfg_parser.c" /* yacc.c:1652 */ | #line 1666 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 72: | case 73: | |||
#line 168 "cfg_parser.y" /* yacc.c:1652 */ | #line 169 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) { | if ((yyvsp[0].s)) { | |||
if (strcmp((yyvsp[0].s), "*") == 0) | if (strcmp((yyvsp[0].s), "*") == 0) | |||
cur_fa->ip = NULL; | cur_fa->ip = NULL; | |||
else | else | |||
cur_fa->ip = strdup((yyvsp[0].s)); | cur_fa->ip = strdup((yyvsp[0].s)); | |||
} | } | |||
} | } | |||
#line 1676 "cfg_parser.c" /* yacc.c:1652 */ | #line 1679 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 73: | case 74: | |||
#line 177 "cfg_parser.y" /* yacc.c:1652 */ | #line 178 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ if ((yyvsp[0].s)) cur_fa->port = strdup((yyvsp[0].s)); } | { if ((yyvsp[0].s)) cur_fa->port = strdup((yyvsp[0].s)); } | |||
#line 1682 "cfg_parser.c" /* yacc.c:1652 */ | #line 1685 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 81: | case 82: | |||
#line 193 "cfg_parser.y" /* yacc.c:1652 */ | #line 194 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ if ((yyvsp[0].s)) cur_pem->filename = strdup((yyvsp[0].s)); } | { if ((yyvsp[0].s)) cur_pem->filename = strdup((yyvsp[0].s)); } | |||
#line 1688 "cfg_parser.c" /* yacc.c:1652 */ | #line 1691 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 82: | case 83: | |||
#line 195 "cfg_parser.y" /* yacc.c:1652 */ | #line 196 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) | if ((yyvsp[0].s)) | |||
cur_pem->ocspfn = strdup((yyvsp[0].s)); | cur_pem->ocspfn = strdup((yyvsp[0].s)); | |||
} | } | |||
#line 1697 "cfg_parser.c" /* yacc.c:1652 */ | #line 1700 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 83: | case 84: | |||
#line 200 "cfg_parser.y" /* yacc.c:1652 */ | #line 201 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (cur_pem != NULL) | if (cur_pem != NULL) | |||
cur_pem->ocsp_vfy = (yyvsp[0].i); | cur_pem->ocsp_vfy = (yyvsp[0].i); | |||
else | else | |||
cfg->OCSP_VFY = (yyvsp[0].i); | cfg->OCSP_VFY = (yyvsp[0].i); | |||
} | } | |||
#line 1708 "cfg_parser.c" /* yacc.c:1652 */ | #line 1711 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 84: | case 85: | |||
#line 207 "cfg_parser.y" /* yacc.c:1652 */ | #line 208 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) cur_pem->priv_key_filename = strdup((yyvsp[0].s)); | if ((yyvsp[0].s)) cur_pem->priv_key_filename = strdup((yyvsp[0].s)); | |||
} | } | |||
#line 1716 "cfg_parser.c" /* yacc.c:1652 */ | #line 1719 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 85: | case 86: | |||
#line 211 "cfg_parser.y" /* yacc.c:1652 */ | #line 212 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) { | if ((yyvsp[0].s)) { | |||
size_t l; | size_t l; | |||
l = strlen((yyvsp[0].s)); | l = strlen((yyvsp[0].s)); | |||
cfg->PEM_DIR = malloc(l + 2); | cfg->PEM_DIR = malloc(l + 2); | |||
strcpy(cfg->PEM_DIR, (yyvsp[0].s)); | strcpy(cfg->PEM_DIR, (yyvsp[0].s)); | |||
if (cfg->PEM_DIR[l-1] != '/') | if (cfg->PEM_DIR[l-1] != '/') | |||
strcat(cfg->PEM_DIR, "/"); | strcat(cfg->PEM_DIR, "/"); | |||
} | } | |||
else | else | |||
cfg->PEM_DIR = NULL; | cfg->PEM_DIR = NULL; | |||
} | } | |||
#line 1733 "cfg_parser.c" /* yacc.c:1652 */ | #line 1736 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 86: | case 87: | |||
#line 224 "cfg_parser.y" /* yacc.c:1652 */ | #line 225 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) | if ((yyvsp[0].s)) | |||
cfg->PEM_DIR_GLOB = strdup((yyvsp[0].s)); | cfg->PEM_DIR_GLOB = strdup((yyvsp[0].s)); | |||
else | else | |||
cfg->PEM_DIR_GLOB = NULL; | cfg->PEM_DIR_GLOB = NULL; | |||
} | } | |||
#line 1745 "cfg_parser.c" /* yacc.c:1652 */ | #line 1748 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 87: | case 88: | |||
#line 232 "cfg_parser.y" /* yacc.c:1652 */ | #line 233 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) | if ((yyvsp[0].s)) | |||
cfg->OCSP_DIR = strdup((yyvsp[0].s)); | cfg->OCSP_DIR = strdup((yyvsp[0].s)); | |||
else | else | |||
cfg->OCSP_DIR = NULL; | cfg->OCSP_DIR = NULL; | |||
} | } | |||
#line 1756 "cfg_parser.c" /* yacc.c:1652 */ | #line 1759 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 88: | case 89: | |||
#line 239 "cfg_parser.y" /* yacc.c:1652 */ | #line 240 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->OCSP_RESP_TMO = (yyvsp[0].i); | cfg->OCSP_RESP_TMO = (yyvsp[0].i); | |||
} | } | |||
#line 1764 "cfg_parser.c" /* yacc.c:1652 */ | #line 1767 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 89: | case 90: | |||
#line 243 "cfg_parser.y" /* yacc.c:1652 */ | #line 244 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->OCSP_CONN_TMO = (yyvsp[0].i); | cfg->OCSP_CONN_TMO = (yyvsp[0].i); | |||
} | } | |||
#line 1772 "cfg_parser.c" /* yacc.c:1652 */ | #line 1775 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 90: | case 91: | |||
#line 247 "cfg_parser.y" /* yacc.c:1652 */ | #line 248 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->OCSP_REFRESH_INTERVAL = (yyvsp[0].i); | cfg->OCSP_REFRESH_INTERVAL = (yyvsp[0].i); | |||
} | } | |||
#line 1780 "cfg_parser.c" /* yacc.c:1652 */ | #line 1783 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 91: | case 92: | |||
#line 252 "cfg_parser.y" /* yacc.c:1652 */ | #line 253 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s) != NULL) { | if ((yyvsp[0].s) != NULL) { | |||
int r; | int r; | |||
struct cfg_cert_file *cert; | struct cfg_cert_file *cert; | |||
cert = cfg_cert_file_new(); | cert = cfg_cert_file_new(); | |||
cert->filename = strdup((yyvsp[0].s)); | cert->filename = strdup((yyvsp[0].s)); | |||
r = cfg_cert_vfy(cert); | r = cfg_cert_vfy(cert); | |||
if (r == 0) { | if (r == 0) { | |||
cfg_cert_file_free(&cert); | cfg_cert_file_free(&cert); | |||
YYABORT; | YYABORT; | |||
} | } | |||
cfg_cert_add(cert, &cur_fa->certs); | cfg_cert_add(cert, &cur_fa->certs); | |||
} | } | |||
} | } | |||
#line 1799 "cfg_parser.c" /* yacc.c:1652 */ | #line 1802 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 92: | case 93: | |||
#line 266 "cfg_parser.y" /* yacc.c:1652 */ | #line 267 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
/* NB: Mid-rule action */ | /* NB: Mid-rule action */ | |||
AZ(cur_pem); | AZ(cur_pem); | |||
cur_pem = cfg_cert_file_new(); | cur_pem = cfg_cert_file_new(); | |||
} | } | |||
#line 1809 "cfg_parser.c" /* yacc.c:1652 */ | #line 1812 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 93: | case 94: | |||
#line 271 "cfg_parser.y" /* yacc.c:1652 */ | #line 272 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (cfg_cert_vfy(cur_pem) != 0) | if (cfg_cert_vfy(cur_pem) != 0) | |||
cfg_cert_add(cur_pem, &cur_fa->certs); | cfg_cert_add(cur_pem, &cur_fa->certs); | |||
else { | else { | |||
cfg_cert_file_free(&cur_pem); | cfg_cert_file_free(&cur_pem); | |||
YYABORT; | YYABORT; | |||
} | } | |||
cur_pem = NULL; | cur_pem = NULL; | |||
} | } | |||
#line 1823 "cfg_parser.c" /* yacc.c:1652 */ | #line 1826 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 95: | case 96: | |||
#line 283 "cfg_parser.y" /* yacc.c:1652 */ | #line 284 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cur_fa->client_verify_ca = strdup((yyvsp[0].s)); | cur_fa->client_verify_ca = strdup((yyvsp[0].s)); | |||
} | } | |||
#line 1831 "cfg_parser.c" /* yacc.c:1652 */ | #line 1834 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 96: | case 97: | |||
#line 288 "cfg_parser.y" /* yacc.c:1652 */ | #line 289 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cur_fa->match_global_certs = (yyvsp[0].i); } | { cur_fa->match_global_certs = (yyvsp[0].i); } | |||
#line 1837 "cfg_parser.c" /* yacc.c:1652 */ | #line 1840 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 97: | case 98: | |||
#line 290 "cfg_parser.y" /* yacc.c:1652 */ | #line 291 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cur_fa->sni_nomatch_abort = (yyvsp[0].i); | cur_fa->sni_nomatch_abort = (yyvsp[0].i); | |||
} | } | |||
#line 1845 "cfg_parser.c" /* yacc.c:1652 */ | #line 1848 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 98: | case 99: | |||
#line 295 "cfg_parser.y" /* yacc.c:1652 */ | #line 296 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (cur_fa->selected_protos != 0) { | if (cur_fa->selected_protos != 0) { | |||
fprintf(stderr, "%s (%s, line %d):" | fprintf(stderr, "%s (%s, line %d):" | |||
" It is illegal to specify tls after ssl," | " It is illegal to specify tls after ssl," | |||
" tls or tls-protos.\n", | " tls or tls-protos.\n", | |||
__func__, __FILE__, __LINE__); | __func__, __FILE__, __LINE__); | |||
front_arg_destroy(cur_fa); | front_arg_destroy(cur_fa); | |||
cur_fa = NULL; | cur_fa = NULL; | |||
YYABORT; | YYABORT; | |||
} | } | |||
if ((yyvsp[0].i)) | if ((yyvsp[0].i)) | |||
cur_fa->selected_protos = TLS_OPTION_PROTOS; | cur_fa->selected_protos = TLS_OPTION_PROTOS; | |||
else | else | |||
fprintf(stderr, | fprintf(stderr, | |||
"Warning: tls = off is deprecated and has no effect.\n"); | "Warning: tls = off is deprecated and has no effect.\n"); | |||
} | } | |||
#line 1866 "cfg_parser.c" /* yacc.c:1652 */ | #line 1869 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 99: | case 100: | |||
#line 312 "cfg_parser.y" /* yacc.c:1652 */ | #line 313 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (cur_fa->selected_protos != 0) { | if (cur_fa->selected_protos != 0) { | |||
fprintf(stderr, "%s (%s, line %d):" | fprintf(stderr, "%s (%s, line %d):" | |||
" It is illegal to specify ssl after ssl," | " It is illegal to specify ssl after ssl," | |||
" tls or tls-protos.\n", | " tls or tls-protos.\n", | |||
__func__, __FILE__, __LINE__); | __func__, __FILE__, __LINE__); | |||
front_arg_destroy(cur_fa); | front_arg_destroy(cur_fa); | |||
cur_fa = NULL; | cur_fa = NULL; | |||
YYABORT; | YYABORT; | |||
} | } | |||
if ((yyvsp[0].i)) | if ((yyvsp[0].i)) | |||
cur_fa->selected_protos = SSL_OPTION_PROTOS; | cur_fa->selected_protos = SSL_OPTION_PROTOS; | |||
else | else | |||
fprintf(stderr, | fprintf(stderr, | |||
"Warning: ssl = off is deprecated and has no effect.\n"); | "Warning: ssl = off is deprecated and has no effect.\n"); | |||
} | } | |||
#line 1887 "cfg_parser.c" /* yacc.c:1652 */ | #line 1890 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 100: | case 101: | |||
#line 329 "cfg_parser.y" /* yacc.c:1652 */ | #line 330 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (cur_fa->selected_protos != 0) { | if (cur_fa->selected_protos != 0) { | |||
fprintf(stderr, "%s (%s, line %d):" | fprintf(stderr, "%s (%s, line %d):" | |||
" It is illegal to specify tls-protos after" | " It is illegal to specify tls-protos after" | |||
" ssl, tls or tls-protos\nSelected before was %d\n", | " ssl, tls or tls-protos\nSelected before was %d\n", | |||
__func__, __FILE__, __LINE__, cur_fa->selected_protos); | __func__, __FILE__, __LINE__, cur_fa->selected_protos); | |||
front_arg_destroy(cur_fa); | front_arg_destroy(cur_fa); | |||
cur_fa = NULL; | cur_fa = NULL; | |||
YYABORT; | YYABORT; | |||
} | } | |||
} | } | |||
#line 1903 "cfg_parser.c" /* yacc.c:1652 */ | #line 1906 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | ||||
case 104: | ||||
#line 343 "cfg_parser.y" /* yacc.c:1652 */ | ||||
{ cur_fa->selected_protos |= SSLv3_PROTO; } | ||||
#line 1909 "cfg_parser.c" /* yacc.c:1652 */ | ||||
break; | break; | |||
case 105: | case 105: | |||
#line 344 "cfg_parser.y" /* yacc.c:1652 */ | #line 344 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cur_fa->selected_protos |= TLSv1_0_PROTO; } | { cur_fa->selected_protos |= SSLv3_PROTO; } | |||
#line 1915 "cfg_parser.c" /* yacc.c:1652 */ | #line 1912 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 106: | case 106: | |||
#line 345 "cfg_parser.y" /* yacc.c:1652 */ | #line 345 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cur_fa->selected_protos |= TLSv1_1_PROTO; } | { cur_fa->selected_protos |= TLSv1_0_PROTO; } | |||
#line 1921 "cfg_parser.c" /* yacc.c:1652 */ | #line 1918 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 107: | case 107: | |||
#line 346 "cfg_parser.y" /* yacc.c:1652 */ | #line 346 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cur_fa->selected_protos |= TLSv1_2_PROTO; } | { cur_fa->selected_protos |= TLSv1_1_PROTO; } | |||
#line 1927 "cfg_parser.c" /* yacc.c:1652 */ | #line 1924 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 108: | case 108: | |||
#line 347 "cfg_parser.y" /* yacc.c:1652 */ | #line 347 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cur_fa->selected_protos |= TLSv1_3_PROTO; } | { cur_fa->selected_protos |= TLSv1_2_PROTO; } | |||
#line 1933 "cfg_parser.c" /* yacc.c:1652 */ | #line 1930 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 109: | case 109: | |||
#line 349 "cfg_parser.y" /* yacc.c:1652 */ | #line 348 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cur_fa->selected_protos |= TLSv1_3_PROTO; } | ||||
#line 1936 "cfg_parser.c" /* yacc.c:1652 */ | ||||
break; | ||||
case 110: | ||||
#line 350 "cfg_parser.y" /* yacc.c:1652 */ | ||||
{ | { | |||
if ((yyvsp[0].s)) cur_fa->ciphers_tlsv12 = strdup((yyvsp[0].s)); | if ((yyvsp[0].s)) cur_fa->ciphers_tlsv12 = strdup((yyvsp[0].s)); | |||
} | } | |||
#line 1941 "cfg_parser.c" /* yacc.c:1652 */ | #line 1944 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 110: | case 111: | |||
#line 353 "cfg_parser.y" /* yacc.c:1652 */ | #line 354 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) { | if ((yyvsp[0].s)) { | |||
CHECK_OBJ_NOTNULL(cur_fa, FRONT_ARG_MAGIC); | CHECK_OBJ_NOTNULL(cur_fa, FRONT_ARG_MAGIC); | |||
cur_fa->ciphersuites_tlsv13 = strdup((yyvsp[0].s)); | cur_fa->ciphersuites_tlsv13 = strdup((yyvsp[0].s)); | |||
} | } | |||
} | } | |||
#line 1952 "cfg_parser.c" /* yacc.c:1652 */ | #line 1955 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 111: | case 112: | |||
#line 360 "cfg_parser.y" /* yacc.c:1652 */ | #line 361 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cur_fa->prefer_server_ciphers = (yyvsp[0].i); | cur_fa->prefer_server_ciphers = (yyvsp[0].i); | |||
} | } | |||
#line 1960 "cfg_parser.c" /* yacc.c:1652 */ | #line 1963 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 112: | case 113: | |||
#line 364 "cfg_parser.y" /* yacc.c:1652 */ | #line 365 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].i)) | if ((yyvsp[0].i)) | |||
cfg->LOG_LEVEL = 0; | cfg->LOG_LEVEL = 0; | |||
else | else | |||
cfg->LOG_LEVEL = 1; | cfg->LOG_LEVEL = 1; | |||
} | } | |||
#line 1971 "cfg_parser.c" /* yacc.c:1652 */ | #line 1974 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 113: | case 114: | |||
#line 371 "cfg_parser.y" /* yacc.c:1652 */ | #line 372 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->NCORES = (yyvsp[0].i); } | { cfg->NCORES = (yyvsp[0].i); } | |||
#line 1977 "cfg_parser.c" /* yacc.c:1652 */ | #line 1980 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 114: | case 115: | |||
#line 373 "cfg_parser.y" /* yacc.c:1652 */ | #line 374 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->BACKLOG = (yyvsp[0].i); } | { cfg->BACKLOG = (yyvsp[0].i); } | |||
#line 1983 "cfg_parser.c" /* yacc.c:1652 */ | #line 1986 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 115: | case 116: | |||
#line 375 "cfg_parser.y" /* yacc.c:1652 */ | #line 376 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->TCP_KEEPALIVE_TIME = (yyvsp[0].i); } | { cfg->TCP_KEEPALIVE_TIME = (yyvsp[0].i); } | |||
#line 1989 "cfg_parser.c" /* yacc.c:1652 */ | #line 1992 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 116: | case 117: | |||
#line 377 "cfg_parser.y" /* yacc.c:1652 */ | #line 378 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (cfg->SELECTED_TLS_PROTOS != 0) { | if (cfg->SELECTED_TLS_PROTOS != 0) { | |||
fprintf(stderr, "%s (%s, line %d):" | fprintf(stderr, "%s (%s, line %d):" | |||
" It is illegal to specify tls after ssl," | " It is illegal to specify tls after ssl," | |||
" tls or tls-protos\n", | " tls or tls-protos\n", | |||
__func__, __FILE__, __LINE__); | __func__, __FILE__, __LINE__); | |||
YYABORT; | YYABORT; | |||
} | } | |||
if ((yyvsp[0].i)) | if ((yyvsp[0].i)) | |||
cfg->SELECTED_TLS_PROTOS = TLS_OPTION_PROTOS; | cfg->SELECTED_TLS_PROTOS = TLS_OPTION_PROTOS; | |||
else | else | |||
fprintf(stderr, | fprintf(stderr, | |||
"Warning: tls = off is deprecated and has no effect.\n"); | "Warning: tls = off is deprecated and has no effect.\n"); | |||
} | } | |||
#line 2008 "cfg_parser.c" /* yacc.c:1652 */ | #line 2011 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 117: | case 118: | |||
#line 392 "cfg_parser.y" /* yacc.c:1652 */ | #line 393 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (cfg->SELECTED_TLS_PROTOS != 0) { | if (cfg->SELECTED_TLS_PROTOS != 0) { | |||
fprintf(stderr, "%s (%s, line %d):" | fprintf(stderr, "%s (%s, line %d):" | |||
" It is illegal to specify ssl after ssl," | " It is illegal to specify ssl after ssl," | |||
" tls or tls-protos.\n", | " tls or tls-protos.\n", | |||
__func__, __FILE__, __LINE__); | __func__, __FILE__, __LINE__); | |||
YYABORT; | YYABORT; | |||
} | } | |||
if ((yyvsp[0].i)) | if ((yyvsp[0].i)) | |||
cfg->SELECTED_TLS_PROTOS = SSL_OPTION_PROTOS; | cfg->SELECTED_TLS_PROTOS = SSL_OPTION_PROTOS; | |||
else | else | |||
fprintf(stderr, | fprintf(stderr, | |||
"Warning: ssl = off is deprecated and has no effect.\n"); | "Warning: ssl = off is deprecated and has no effect.\n"); | |||
} | } | |||
#line 2027 "cfg_parser.c" /* yacc.c:1652 */ | #line 2030 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 118: | case 119: | |||
#line 407 "cfg_parser.y" /* yacc.c:1652 */ | #line 408 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (cfg->SELECTED_TLS_PROTOS != 0) { | if (cfg->SELECTED_TLS_PROTOS != 0) { | |||
fprintf(stderr, "%s (%s, line %d):" | fprintf(stderr, "%s (%s, line %d):" | |||
" It is illegal to specify tls-protos after" | " It is illegal to specify tls-protos after" | |||
" ssl, tls or tls-protos\n", | " ssl, tls or tls-protos\n", | |||
__func__, __FILE__, __LINE__); | __func__, __FILE__, __LINE__); | |||
YYABORT; | YYABORT; | |||
} | } | |||
} | } | |||
#line 2041 "cfg_parser.c" /* yacc.c:1652 */ | #line 2044 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | ||||
case 122: | ||||
#line 419 "cfg_parser.y" /* yacc.c:1652 */ | ||||
{ cfg->SELECTED_TLS_PROTOS |= SSLv3_PROTO; } | ||||
#line 2047 "cfg_parser.c" /* yacc.c:1652 */ | ||||
break; | break; | |||
case 123: | case 123: | |||
#line 420 "cfg_parser.y" /* yacc.c:1652 */ | #line 420 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->SELECTED_TLS_PROTOS |= TLSv1_0_PROTO; } | { cfg->SELECTED_TLS_PROTOS |= SSLv3_PROTO; } | |||
#line 2053 "cfg_parser.c" /* yacc.c:1652 */ | #line 2050 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 124: | case 124: | |||
#line 421 "cfg_parser.y" /* yacc.c:1652 */ | #line 421 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->SELECTED_TLS_PROTOS |= TLSv1_1_PROTO; } | { cfg->SELECTED_TLS_PROTOS |= TLSv1_0_PROTO; } | |||
#line 2059 "cfg_parser.c" /* yacc.c:1652 */ | #line 2056 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 125: | case 125: | |||
#line 422 "cfg_parser.y" /* yacc.c:1652 */ | #line 422 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->SELECTED_TLS_PROTOS |= TLSv1_2_PROTO; } | { cfg->SELECTED_TLS_PROTOS |= TLSv1_1_PROTO; } | |||
#line 2065 "cfg_parser.c" /* yacc.c:1652 */ | #line 2062 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 126: | case 126: | |||
#line 423 "cfg_parser.y" /* yacc.c:1652 */ | #line 423 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->SELECTED_TLS_PROTOS |= TLSv1_3_PROTO; } | { cfg->SELECTED_TLS_PROTOS |= TLSv1_2_PROTO; } | |||
#line 2071 "cfg_parser.c" /* yacc.c:1652 */ | #line 2068 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 127: | case 127: | |||
#line 425 "cfg_parser.y" /* yacc.c:1652 */ | #line 424 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ if ((yyvsp[0].s)) cfg->ENGINE = strdup((yyvsp[0].s)); } | { cfg->SELECTED_TLS_PROTOS |= TLSv1_3_PROTO; } | |||
#line 2077 "cfg_parser.c" /* yacc.c:1652 */ | #line 2074 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 128: | case 128: | |||
#line 427 "cfg_parser.y" /* yacc.c:1652 */ | #line 426 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ if ((yyvsp[0].s)) cfg->ENGINE = strdup((yyvsp[0].s)); } | ||||
#line 2080 "cfg_parser.c" /* yacc.c:1652 */ | ||||
break; | ||||
case 129: | ||||
#line 428 "cfg_parser.y" /* yacc.c:1652 */ | ||||
{ | { | |||
cfg->PREFER_SERVER_CIPHERS = (yyvsp[0].i); | cfg->PREFER_SERVER_CIPHERS = (yyvsp[0].i); | |||
} | } | |||
#line 2085 "cfg_parser.c" /* yacc.c:1652 */ | #line 2088 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 129: | case 130: | |||
#line 431 "cfg_parser.y" /* yacc.c:1652 */ | #line 432 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
/* XXX: passing an empty string for file */ | /* XXX: passing an empty string for file */ | |||
if ((yyvsp[0].s) && config_param_validate("chroot", (yyvsp[0].s), cfg, "" , | if ((yyvsp[0].s) && config_param_validate("chroot", (yyvsp[0].s), cfg, "" , | |||
yyget_lineno()) != 0) | yyget_lineno()) != 0) | |||
YYABORT; | YYABORT; | |||
} | } | |||
#line 2096 "cfg_parser.c" /* yacc.c:1652 */ | #line 2099 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 130: | case 131: | |||
#line 438 "cfg_parser.y" /* yacc.c:1652 */ | #line 439 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
/* XXX: passing an empty string for file */ | /* XXX: passing an empty string for file */ | |||
if ((yyvsp[0].s) && config_param_validate("backend", (yyvsp[0].s), cfg, " ", | if ((yyvsp[0].s) && config_param_validate("backend", (yyvsp[0].s), cfg, " ", | |||
yyget_lineno()) != 0) | yyget_lineno()) != 0) | |||
YYABORT; | YYABORT; | |||
} | } | |||
#line 2107 "cfg_parser.c" /* yacc.c:1652 */ | #line 2110 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 131: | case 132: | |||
#line 446 "cfg_parser.y" /* yacc.c:1652 */ | #line 447 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
/* XXX: passing an empty string for file */ | /* XXX: passing an empty string for file */ | |||
if ((yyvsp[0].s) && config_param_validate("pem-file", (yyvsp[0].s ), cfg, "", | if ((yyvsp[0].s) && config_param_validate("pem-file", (yyvsp[0].s ), cfg, "", | |||
yyget_lineno()) != 0) | yyget_lineno()) != 0) | |||
YYABORT; | YYABORT; | |||
} | } | |||
#line 2118 "cfg_parser.c" /* yacc.c:1652 */ | #line 2121 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 132: | case 133: | |||
#line 452 "cfg_parser.y" /* yacc.c:1652 */ | #line 453 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
/* NB: Mid-rule action */ | /* NB: Mid-rule action */ | |||
AZ(cur_pem); | AZ(cur_pem); | |||
cur_pem = cfg_cert_file_new(); | cur_pem = cfg_cert_file_new(); | |||
} | } | |||
#line 2128 "cfg_parser.c" /* yacc.c:1652 */ | #line 2131 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 133: | case 134: | |||
#line 457 "cfg_parser.y" /* yacc.c:1652 */ | #line 458 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (cfg_cert_vfy(cur_pem) != 0) { | if (cfg_cert_vfy(cur_pem) != 0) { | |||
if (cfg->CERT_DEFAULT != NULL) { | if (cfg->CERT_DEFAULT != NULL) { | |||
struct cfg_cert_file *tmp = cfg->CERT_DEFAULT; | struct cfg_cert_file *tmp = cfg->CERT_DEFAULT; | |||
cfg_cert_add(tmp, &cfg->CERT_FILES); | cfg_cert_add(tmp, &cfg->CERT_FILES); | |||
} | } | |||
cfg->CERT_DEFAULT = cur_pem; | cfg->CERT_DEFAULT = cur_pem; | |||
} else { | } else { | |||
cfg_cert_file_free(&cur_pem); | cfg_cert_file_free(&cur_pem); | |||
YYABORT; | YYABORT; | |||
} | } | |||
cur_pem = NULL; | cur_pem = NULL; | |||
} | } | |||
#line 2146 "cfg_parser.c" /* yacc.c:1652 */ | #line 2149 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | ||||
case 134: | ||||
#line 471 "cfg_parser.y" /* yacc.c:1652 */ | ||||
{ cfg->SYSLOG = (yyvsp[0].i); } | ||||
#line 2152 "cfg_parser.c" /* yacc.c:1652 */ | ||||
break; | break; | |||
case 135: | case 135: | |||
#line 472 "cfg_parser.y" /* yacc.c:1652 */ | #line 472 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->DAEMONIZE = (yyvsp[0].i); } | { cfg->SYSLOG = (yyvsp[0].i); } | |||
#line 2158 "cfg_parser.c" /* yacc.c:1652 */ | #line 2155 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 136: | case 136: | |||
#line 473 "cfg_parser.y" /* yacc.c:1652 */ | #line 473 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->DAEMONIZE = (yyvsp[0].i); } | ||||
#line 2161 "cfg_parser.c" /* yacc.c:1652 */ | ||||
break; | ||||
case 137: | ||||
#line 474 "cfg_parser.y" /* yacc.c:1652 */ | ||||
{ | { | |||
cfg->SNI_NOMATCH_ABORT = (yyvsp[0].i); | cfg->SNI_NOMATCH_ABORT = (yyvsp[0].i); | |||
} | } | |||
#line 2166 "cfg_parser.c" /* yacc.c:1652 */ | #line 2169 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 137: | case 138: | |||
#line 477 "cfg_parser.y" /* yacc.c:1652 */ | #line 478 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) { | if ((yyvsp[0].s)) { | |||
cfg->CIPHERS_TLSv12 = strdup((yyvsp[0].s)); | cfg->CIPHERS_TLSv12 = strdup((yyvsp[0].s)); | |||
} | } | |||
} | } | |||
#line 2176 "cfg_parser.c" /* yacc.c:1652 */ | #line 2179 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 138: | case 139: | |||
#line 483 "cfg_parser.y" /* yacc.c:1652 */ | #line 484 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) { | if ((yyvsp[0].s)) { | |||
cfg->CIPHERSUITES_TLSv13 = strdup((yyvsp[0].s)); | cfg->CIPHERSUITES_TLSv13 = strdup((yyvsp[0].s)); | |||
} | } | |||
} | } | |||
#line 2186 "cfg_parser.c" /* yacc.c:1652 */ | #line 2189 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 139: | case 140: | |||
#line 490 "cfg_parser.y" /* yacc.c:1652 */ | #line 491 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
/* XXX: passing an empty string for file */ | /* XXX: passing an empty string for file */ | |||
if ((yyvsp[0].s) && config_param_validate("user", (yyvsp[0].s), cfg, "", | if ((yyvsp[0].s) && config_param_validate("user", (yyvsp[0].s), cfg, "", | |||
yyget_lineno()) != 0) | yyget_lineno()) != 0) | |||
YYABORT; | YYABORT; | |||
} | } | |||
#line 2197 "cfg_parser.c" /* yacc.c:1652 */ | #line 2200 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 140: | case 141: | |||
#line 497 "cfg_parser.y" /* yacc.c:1652 */ | #line 498 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
/* XXX: passing an empty string for file */ | /* XXX: passing an empty string for file */ | |||
if ((yyvsp[0].s) && config_param_validate("group", (yyvsp[0].s), cfg, "", | if ((yyvsp[0].s) && config_param_validate("group", (yyvsp[0].s), cfg, "", | |||
yyget_lineno()) != 0) | yyget_lineno()) != 0) | |||
YYABORT; | YYABORT; | |||
} | } | |||
#line 2208 "cfg_parser.c" /* yacc.c:1652 */ | #line 2211 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 141: | case 142: | |||
#line 504 "cfg_parser.y" /* yacc.c:1652 */ | #line 505 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->WRITE_IP_OCTET = (yyvsp[0].i); } | { cfg->WRITE_IP_OCTET = (yyvsp[0].i); } | |||
#line 2214 "cfg_parser.c" /* yacc.c:1652 */ | #line 2217 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 142: | case 143: | |||
#line 506 "cfg_parser.y" /* yacc.c:1652 */ | #line 507 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->WRITE_PROXY_LINE_V2 = (yyvsp[0].i); } | { cfg->WRITE_PROXY_LINE_V2 = (yyvsp[0].i); } | |||
#line 2220 "cfg_parser.c" /* yacc.c:1652 */ | #line 2223 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 143: | case 144: | |||
#line 508 "cfg_parser.y" /* yacc.c:1652 */ | #line 509 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->WRITE_PROXY_LINE_V1 = (yyvsp[0].i); | cfg->WRITE_PROXY_LINE_V1 = (yyvsp[0].i); | |||
} | } | |||
#line 2228 "cfg_parser.c" /* yacc.c:1652 */ | #line 2231 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 144: | case 145: | |||
#line 512 "cfg_parser.y" /* yacc.c:1652 */ | #line 513 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->WRITE_PROXY_LINE_V2 = (yyvsp[0].i); | cfg->WRITE_PROXY_LINE_V2 = (yyvsp[0].i); | |||
} | } | |||
#line 2236 "cfg_parser.c" /* yacc.c:1652 */ | #line 2239 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 145: | case 146: | |||
#line 516 "cfg_parser.y" /* yacc.c:1652 */ | #line 517 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->PROXY_TLV = (yyvsp[0].i); } | { cfg->PROXY_TLV = (yyvsp[0].i); } | |||
#line 2242 "cfg_parser.c" /* yacc.c:1652 */ | #line 2245 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 146: | case 147: | |||
#line 518 "cfg_parser.y" /* yacc.c:1652 */ | #line 519 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->PROXY_AUTHORITY = (yyvsp[0].i); } | { cfg->PROXY_AUTHORITY = (yyvsp[0].i); } | |||
#line 2248 "cfg_parser.c" /* yacc.c:1652 */ | #line 2251 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 147: | case 148: | |||
#line 520 "cfg_parser.y" /* yacc.c:1652 */ | #line 521 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->PROXY_CLIENT_CERT = (yyvsp[0].i); } | ||||
#line 2257 "cfg_parser.c" /* yacc.c:1652 */ | ||||
break; | ||||
case 149: | ||||
#line 523 "cfg_parser.y" /* yacc.c:1652 */ | ||||
{ cfg->PROXY_PROXY_LINE = (yyvsp[0].i); } | { cfg->PROXY_PROXY_LINE = (yyvsp[0].i); } | |||
#line 2254 "cfg_parser.c" /* yacc.c:1652 */ | #line 2263 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 148: | case 150: | |||
#line 522 "cfg_parser.y" /* yacc.c:1652 */ | #line 525 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
/* XXX: passing an empty string for file */ | /* XXX: passing an empty string for file */ | |||
if ((yyvsp[0].s) && config_param_validate("alpn-protos", (yyvsp[0].s), cf g, "", | if ((yyvsp[0].s) && config_param_validate("alpn-protos", (yyvsp[0].s), cf g, "", | |||
yyget_lineno()) != 0) | yyget_lineno()) != 0) | |||
YYABORT; | YYABORT; | |||
} | } | |||
#line 2265 "cfg_parser.c" /* yacc.c:1652 */ | #line 2274 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 149: | case 151: | |||
#line 529 "cfg_parser.y" /* yacc.c:1652 */ | #line 532 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
/* XXX: passing an empty string for file */ | /* XXX: passing an empty string for file */ | |||
if ((yyvsp[0].s) && | if ((yyvsp[0].s) && | |||
config_param_validate("syslog-facility", (yyvsp[0].s), cfg, "", | config_param_validate("syslog-facility", (yyvsp[0].s), cfg, "", | |||
yyget_lineno()) != 0) | yyget_lineno()) != 0) | |||
YYABORT; | YYABORT; | |||
} | } | |||
#line 2277 "cfg_parser.c" /* yacc.c:1652 */ | #line 2286 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 150: | case 152: | |||
#line 537 "cfg_parser.y" /* yacc.c:1652 */ | #line 540 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->SEND_BUFSIZE = (yyvsp[0].i); } | { cfg->SEND_BUFSIZE = (yyvsp[0].i); } | |||
#line 2283 "cfg_parser.c" /* yacc.c:1652 */ | #line 2292 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 151: | case 153: | |||
#line 539 "cfg_parser.y" /* yacc.c:1652 */ | #line 542 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->RECV_BUFSIZE = (yyvsp[0].i); } | { cfg->RECV_BUFSIZE = (yyvsp[0].i); } | |||
#line 2289 "cfg_parser.c" /* yacc.c:1652 */ | #line 2298 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 152: | case 154: | |||
#line 541 "cfg_parser.y" /* yacc.c:1652 */ | #line 544 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
/* XXX: passing an empty string for file */ | /* XXX: passing an empty string for file */ | |||
if ((yyvsp[0].s) && | if ((yyvsp[0].s) && | |||
config_param_validate("log-filename", (yyvsp[0].s), cfg, "", | config_param_validate("log-filename", (yyvsp[0].s), cfg, "", | |||
yyget_lineno()) != 0) | yyget_lineno()) != 0) | |||
YYABORT; | YYABORT; | |||
} | } | |||
#line 2301 "cfg_parser.c" /* yacc.c:1652 */ | #line 2310 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 153: | case 155: | |||
#line 549 "cfg_parser.y" /* yacc.c:1652 */ | #line 552 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->LOG_LEVEL = (yyvsp[0].i); } | { cfg->LOG_LEVEL = (yyvsp[0].i); } | |||
#line 2307 "cfg_parser.c" /* yacc.c:1652 */ | #line 2316 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 154: | case 156: | |||
#line 551 "cfg_parser.y" /* yacc.c:1652 */ | #line 554 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
#ifdef USE_SHARED_CACHE | #ifdef USE_SHARED_CACHE | |||
cfg->SHARED_CACHE = (yyvsp[0].i); | cfg->SHARED_CACHE = (yyvsp[0].i); | |||
#else | #else | |||
fprintf(stderr, "Hitch needs to be compiled with --enable-sessioncache " | fprintf(stderr, "Hitch needs to be compiled with --enable-sessioncache " | |||
"for '%s'", input_line); | "for '%s'", input_line); | |||
YYABORT; | YYABORT; | |||
#endif | #endif | |||
} | } | |||
#line 2321 "cfg_parser.c" /* yacc.c:1652 */ | #line 2330 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 155: | case 157: | |||
#line 561 "cfg_parser.y" /* yacc.c:1652 */ | #line 564 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
#ifdef USE_SHARED_CACHE | #ifdef USE_SHARED_CACHE | |||
/* XXX: passing an empty string for file */ | /* XXX: passing an empty string for file */ | |||
if ((yyvsp[0].s) && config_param_validate("shared-cache-listen", (yyvsp[0 ].s), cfg, | if ((yyvsp[0].s) && config_param_validate("shared-cache-listen", (yyvsp[0 ].s), cfg, | |||
"", yyget_lineno()) != 0) | "", yyget_lineno()) != 0) | |||
YYABORT; | YYABORT; | |||
#else | #else | |||
fprintf(stderr, "Hitch needs to be compiled with --enable-sessioncache " | fprintf(stderr, "Hitch needs to be compiled with --enable-sessioncache " | |||
"for '%s'", input_line); | "for '%s'", input_line); | |||
YYABORT; | YYABORT; | |||
#endif | #endif | |||
} | } | |||
#line 2338 "cfg_parser.c" /* yacc.c:1652 */ | #line 2347 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 156: | case 158: | |||
#line 574 "cfg_parser.y" /* yacc.c:1652 */ | #line 577 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
#ifdef USE_SHARED_CACHE | #ifdef USE_SHARED_CACHE | |||
/* XXX: passing an empty string for file */ | /* XXX: passing an empty string for file */ | |||
if ((yyvsp[0].s) && config_param_validate("shared-cache-peer", (yyvsp[0]. s), cfg, | if ((yyvsp[0].s) && config_param_validate("shared-cache-peer", (yyvsp[0]. s), cfg, | |||
"", yyget_lineno()) != 0) | "", yyget_lineno()) != 0) | |||
YYABORT; | YYABORT; | |||
#else | #else | |||
fprintf(stderr, "Hitch needs to be compiled with --enable-sessioncache " | fprintf(stderr, "Hitch needs to be compiled with --enable-sessioncache " | |||
"for '%s'", input_line); | "for '%s'", input_line); | |||
YYABORT; | YYABORT; | |||
#endif | #endif | |||
} | } | |||
#line 2355 "cfg_parser.c" /* yacc.c:1652 */ | #line 2364 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 157: | case 159: | |||
#line 587 "cfg_parser.y" /* yacc.c:1652 */ | #line 590 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
#ifdef USE_SHARED_CACHE | #ifdef USE_SHARED_CACHE | |||
/* XXX: passing an empty string for file */ | /* XXX: passing an empty string for file */ | |||
if ((yyvsp[0].s) && config_param_validate("shared-cache-if", (yyvsp[0].s) , cfg, | if ((yyvsp[0].s) && config_param_validate("shared-cache-if", (yyvsp[0].s) , cfg, | |||
"", yyget_lineno()) != 0) | "", yyget_lineno()) != 0) | |||
YYABORT; | YYABORT; | |||
#else | #else | |||
fprintf(stderr, "Hitch needs to be compiled with --enable-sessioncache " | fprintf(stderr, "Hitch needs to be compiled with --enable-sessioncache " | |||
"for '%s'", input_line); | "for '%s'", input_line); | |||
YYABORT; | YYABORT; | |||
#endif | #endif | |||
} | } | |||
#line 2372 "cfg_parser.c" /* yacc.c:1652 */ | #line 2381 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 158: | case 160: | |||
#line 600 "cfg_parser.y" /* yacc.c:1652 */ | #line 603 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
#ifdef TCP_FASTOPEN_WORKS | #ifdef TCP_FASTOPEN_WORKS | |||
{ cfg->TFO = (yyvsp[0].i); }; | { cfg->TFO = (yyvsp[0].i); }; | |||
#else | #else | |||
fprintf(stderr, "Hitch needs to be compiled with --enable-tfo" | fprintf(stderr, "Hitch needs to be compiled with --enable-tfo" | |||
"for '%s'", input_line); | "for '%s'", input_line); | |||
YYABORT; | YYABORT; | |||
#endif | #endif | |||
} | } | |||
#line 2386 "cfg_parser.c" /* yacc.c:1652 */ | #line 2395 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 159: | case 161: | |||
#line 610 "cfg_parser.y" /* yacc.c:1652 */ | #line 613 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->BACKEND_REFRESH_TIME = (yyvsp[0].i); | cfg->BACKEND_REFRESH_TIME = (yyvsp[0].i); | |||
} | } | |||
#line 2394 "cfg_parser.c" /* yacc.c:1652 */ | #line 2403 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 160: | case 162: | |||
#line 614 "cfg_parser.y" /* yacc.c:1652 */ | #line 617 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) { | if ((yyvsp[0].s)) { | |||
cfg->ECDH_CURVE = strdup((yyvsp[0].s)); | cfg->ECDH_CURVE = strdup((yyvsp[0].s)); | |||
} | } | |||
} | } | |||
#line 2404 "cfg_parser.c" /* yacc.c:1652 */ | #line 2413 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 162: | case 164: | |||
#line 623 "cfg_parser.y" /* yacc.c:1652 */ | #line 626 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (cur_fa) | if (cur_fa) | |||
cur_fa->client_verify = SSL_VERIFY_NONE; | cur_fa->client_verify = SSL_VERIFY_NONE; | |||
else | else | |||
cfg->CLIENT_VERIFY = SSL_VERIFY_NONE; | cfg->CLIENT_VERIFY = SSL_VERIFY_NONE; | |||
} | } | |||
#line 2415 "cfg_parser.c" /* yacc.c:1652 */ | #line 2424 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 163: | case 165: | |||
#line 629 "cfg_parser.y" /* yacc.c:1652 */ | #line 632 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (cur_fa) | if (cur_fa) | |||
cur_fa->client_verify = SSL_VERIFY_PEER; | cur_fa->client_verify = SSL_VERIFY_PEER; | |||
else | else | |||
cfg->CLIENT_VERIFY = SSL_VERIFY_PEER; | cfg->CLIENT_VERIFY = SSL_VERIFY_PEER; | |||
} | } | |||
#line 2426 "cfg_parser.c" /* yacc.c:1652 */ | #line 2435 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 164: | case 166: | |||
#line 635 "cfg_parser.y" /* yacc.c:1652 */ | #line 638 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if (cur_fa) | if (cur_fa) | |||
cur_fa->client_verify = | cur_fa->client_verify = | |||
SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT; | SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT; | |||
else | else | |||
cfg->CLIENT_VERIFY = | cfg->CLIENT_VERIFY = | |||
SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT; | SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT; | |||
} | } | |||
#line 2439 "cfg_parser.c" /* yacc.c:1652 */ | #line 2448 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 165: | case 167: | |||
#line 644 "cfg_parser.y" /* yacc.c:1652 */ | #line 647 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->CLIENT_VERIFY_CA = strdup((yyvsp[0].s)); | cfg->CLIENT_VERIFY_CA = strdup((yyvsp[0].s)); | |||
} | } | |||
#line 2447 "cfg_parser.c" /* yacc.c:1652 */ | #line 2456 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
#line 2451 "cfg_parser.c" /* yacc.c:1652 */ | #line 2460 "cfg_parser.c" /* yacc.c:1652 */ | |||
default: break; | default: break; | |||
} | } | |||
/* User semantic actions sometimes alter yychar, and that requires | /* User semantic actions sometimes alter yychar, and that requires | |||
that yytoken be updated with the new translation. We take the | that yytoken be updated with the new translation. We take the | |||
approach of translating immediately before every use of yytoken. | approach of translating immediately before every use of yytoken. | |||
One alternative is translating here after every semantic action, | One alternative is translating here after every semantic action, | |||
but that translation would be missed if the semantic action invokes | but that translation would be missed if the semantic action invokes | |||
YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or | YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or | |||
if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an | if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an | |||
incorrect destructor might then be invoked immediately. In the | incorrect destructor might then be invoked immediately. In the | |||
skipping to change at line 2640 | skipping to change at line 2649 | |||
#ifndef yyoverflow | #ifndef yyoverflow | |||
if (yyss != yyssa) | if (yyss != yyssa) | |||
YYSTACK_FREE (yyss); | YYSTACK_FREE (yyss); | |||
#endif | #endif | |||
#if YYERROR_VERBOSE | #if YYERROR_VERBOSE | |||
if (yymsg != yymsgbuf) | if (yymsg != yymsgbuf) | |||
YYSTACK_FREE (yymsg); | YYSTACK_FREE (yymsg); | |||
#endif | #endif | |||
return yyresult; | return yyresult; | |||
} | } | |||
#line 648 "cfg_parser.y" /* yacc.c:1918 */ | #line 651 "cfg_parser.y" /* yacc.c:1918 */ | |||
void | void | |||
yyerror(hitch_config *cfg, const char *s) | yyerror(hitch_config *cfg, const char *s) | |||
{ | { | |||
(void) cfg; | (void) cfg; | |||
/* Clean up if FRONTEND_BLK parsing failed */ | /* Clean up if FRONTEND_BLK parsing failed */ | |||
if (cur_fa != NULL) | if (cur_fa != NULL) | |||
FREE_OBJ(cur_fa); | FREE_OBJ(cur_fa); | |||
End of changes. 185 change blocks. | ||||
460 lines changed or deleted | 469 lines changed or added |