"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/cfg_parser.c" between
hitch-1.5.2.tar.gz and hitch-1.6.0.tar.gz

About: Hitch is a libev-based high performance SSL/TLS proxy that terminates TLS/SSL connections and forwards the unencrypted traffic to some backend.

cfg_parser.c  (hitch-1.5.2):cfg_parser.c  (hitch-1.6.0)
skipping to change at line 191 skipping to change at line 191
TOK_OCSP_DIR = 301, TOK_OCSP_DIR = 301,
TOK_OCSP_RESP_TMO = 302, TOK_OCSP_RESP_TMO = 302,
TOK_OCSP_CONN_TMO = 303, TOK_OCSP_CONN_TMO = 303,
TOK_ALPN_PROTOS = 304, TOK_ALPN_PROTOS = 304,
TOK_TLS_PROTOS = 305, TOK_TLS_PROTOS = 305,
TOK_SSLv3 = 306, TOK_SSLv3 = 306,
TOK_TLSv1_0 = 307, TOK_TLSv1_0 = 307,
TOK_TLSv1_1 = 308, TOK_TLSv1_1 = 308,
TOK_TLSv1_2 = 309, TOK_TLSv1_2 = 309,
TOK_TLSv1_3 = 310, TOK_TLSv1_3 = 310,
TOK_SESSION_CACHE = 311, TOK_CIPHERSUITES = 311,
TOK_SHARED_CACHE_LISTEN = 312, TOK_ECDH_CURVE = 312,
TOK_SHARED_CACHE_PEER = 313, TOK_SESSION_CACHE = 313,
TOK_SHARED_CACHE_IF = 314, TOK_SHARED_CACHE_LISTEN = 314,
TOK_PRIVATE_KEY = 315, TOK_SHARED_CACHE_PEER = 315,
TOK_BACKEND_REFRESH = 316, TOK_SHARED_CACHE_IF = 316,
TOK_OCSP_REFRESH_INTERVAL = 317, TOK_PRIVATE_KEY = 317,
TOK_PEM_DIR = 318, TOK_BACKEND_REFRESH = 318,
TOK_PEM_DIR_GLOB = 319, TOK_OCSP_REFRESH_INTERVAL = 319,
TOK_LOG_LEVEL = 320, TOK_PEM_DIR = 320,
TOK_PROXY_TLV = 321, TOK_PEM_DIR_GLOB = 321,
TOK_PROXY_AUTHORITY = 322, TOK_LOG_LEVEL = 322,
TOK_TFO = 323 TOK_PROXY_TLV = 323,
TOK_PROXY_AUTHORITY = 324,
TOK_TFO = 325,
TOK_CLIENT_VERIFY = 326,
TOK_VERIFY_NONE = 327,
TOK_VERIFY_OPT = 328,
TOK_VERIFY_REQ = 329,
TOK_CLIENT_VERIFY_CA = 330
}; };
#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 260 skipping to change at line 267
#define TOK_OCSP_DIR 301 #define TOK_OCSP_DIR 301
#define TOK_OCSP_RESP_TMO 302 #define TOK_OCSP_RESP_TMO 302
#define TOK_OCSP_CONN_TMO 303 #define TOK_OCSP_CONN_TMO 303
#define TOK_ALPN_PROTOS 304 #define TOK_ALPN_PROTOS 304
#define TOK_TLS_PROTOS 305 #define TOK_TLS_PROTOS 305
#define TOK_SSLv3 306 #define TOK_SSLv3 306
#define TOK_TLSv1_0 307 #define TOK_TLSv1_0 307
#define TOK_TLSv1_1 308 #define TOK_TLSv1_1 308
#define TOK_TLSv1_2 309 #define TOK_TLSv1_2 309
#define TOK_TLSv1_3 310 #define TOK_TLSv1_3 310
#define TOK_SESSION_CACHE 311 #define TOK_CIPHERSUITES 311
#define TOK_SHARED_CACHE_LISTEN 312 #define TOK_ECDH_CURVE 312
#define TOK_SHARED_CACHE_PEER 313 #define TOK_SESSION_CACHE 313
#define TOK_SHARED_CACHE_IF 314 #define TOK_SHARED_CACHE_LISTEN 314
#define TOK_PRIVATE_KEY 315 #define TOK_SHARED_CACHE_PEER 315
#define TOK_BACKEND_REFRESH 316 #define TOK_SHARED_CACHE_IF 316
#define TOK_OCSP_REFRESH_INTERVAL 317 #define TOK_PRIVATE_KEY 317
#define TOK_PEM_DIR 318 #define TOK_BACKEND_REFRESH 318
#define TOK_PEM_DIR_GLOB 319 #define TOK_OCSP_REFRESH_INTERVAL 319
#define TOK_LOG_LEVEL 320 #define TOK_PEM_DIR 320
#define TOK_PROXY_TLV 321 #define TOK_PEM_DIR_GLOB 321
#define TOK_PROXY_AUTHORITY 322 #define TOK_LOG_LEVEL 322
#define TOK_TFO 323 #define TOK_PROXY_TLV 323
#define TOK_PROXY_AUTHORITY 324
#define TOK_TFO 325
#define TOK_CLIENT_VERIFY 326
#define TOK_VERIFY_NONE 327
#define TOK_VERIFY_OPT 328
#define TOK_VERIFY_REQ 329
#define TOK_CLIENT_VERIFY_CA 330
/* 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 289 "cfg_parser.c" /* yacc.c:352 */ #line 303 "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 525 skipping to change at line 539
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 138 #define YYFINAL 150
/* YYLAST -- Last index in YYTABLE. */ /* YYLAST -- Last index in YYTABLE. */
#define YYLAST 200 #define YYLAST 220
/* YYNTOKENS -- Number of terminals. */ /* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 72 #define YYNTOKENS 79
/* YYNNTS -- Number of nonterminals. */ /* YYNNTS -- Number of nonterminals. */
#define YYNNTS 76 #define YYNNTS 84
/* YYNRULES -- Number of rules. */ /* YYNRULES -- Number of rules. */
#define YYNRULES 148 #define YYNRULES 165
/* YYNSTATES -- Number of states. */ /* YYNSTATES -- Number of states. */
#define YYNSTATES 272 #define YYNSTATES 303
#define YYUNDEFTOK 2 #define YYUNDEFTOK 2
#define YYMAXUTOK 323 #define YYMAXUTOK 330
/* 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, 69, 2, 2, 2, 2, 2, 2, 2, 2, 2, 76, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 70, 2, 71, 2, 2, 2, 2, 2, 2, 2, 77, 2, 78, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 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 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75
}; };
#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, 67, 67, 71, 72, 76, 77, 78, 79, 80, 0, 69, 69, 73, 74, 78, 79, 80, 81, 82,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
111, 112, 113, 114, 115, 116, 117, 118, 119, 123, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
129, 129, 140, 142, 143, 147, 148, 149, 150, 151, 123, 124, 125, 129, 135, 135, 146, 148, 149, 153,
152, 153, 154, 155, 156, 159, 168, 170, 173, 174, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
178, 179, 180, 181, 184, 186, 191, 198, 202, 215, 164, 165, 168, 177, 179, 182, 183, 187, 188, 189,
223, 230, 234, 238, 243, 257, 257, 272, 274, 279, 190, 193, 195, 200, 207, 211, 224, 232, 239, 243,
296, 313, 313, 325, 325, 327, 328, 329, 330, 331, 247, 252, 266, 266, 281, 283, 288, 290, 295, 312,
333, 337, 341, 348, 350, 352, 354, 369, 384, 384, 329, 329, 341, 341, 343, 344, 345, 346, 347, 349,
394, 394, 396, 397, 398, 399, 400, 402, 404, 408, 353, 360, 364, 371, 373, 375, 377, 392, 407, 407,
415, 423, 429, 429, 448, 449, 450, 454, 456, 463, 417, 417, 419, 420, 421, 422, 423, 425, 427, 431,
470, 472, 474, 478, 482, 484, 486, 488, 495, 503, 438, 446, 452, 452, 471, 472, 473, 477, 483, 490,
505, 507, 515, 517, 527, 540, 553, 566, 576 497, 504, 506, 508, 512, 516, 518, 520, 522, 529,
537, 539, 541, 549, 551, 561, 574, 587, 600, 610,
614, 620, 623, 629, 635, 644
}; };
#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 626 skipping to change at line 643
"TOK_SYSLOG", "TOK_SYSLOG_FACILITY", "TOK_PARAM_SYSLOG_FACILITY", "TOK_SYSLOG", "TOK_SYSLOG_FACILITY", "TOK_PARAM_SYSLOG_FACILITY",
"TOK_DAEMON", "TOK_WRITE_IP", "TOK_WRITE_PROXY", "TOK_WRITE_PROXY_V1", "TOK_DAEMON", "TOK_WRITE_IP", "TOK_WRITE_PROXY", "TOK_WRITE_PROXY_V1",
"TOK_WRITE_PROXY_V2", "TOK_PEM_FILE", "TOK_PROXY_PROXY", "TOK_WRITE_PROXY_V2", "TOK_PEM_FILE", "TOK_PROXY_PROXY",
"TOK_BACKEND_CONNECT_TIMEOUT", "TOK_SSL_HANDSHAKE_TIMEOUT", "TOK_BACKEND_CONNECT_TIMEOUT", "TOK_SSL_HANDSHAKE_TIMEOUT",
"TOK_RECV_BUFSIZE", "TOK_SEND_BUFSIZE", "TOK_LOG_FILENAME", "TOK_RECV_BUFSIZE", "TOK_SEND_BUFSIZE", "TOK_LOG_FILENAME",
"TOK_RING_SLOTS", "TOK_RING_DATA_LEN", "TOK_PIDFILE", "TOK_RING_SLOTS", "TOK_RING_DATA_LEN", "TOK_PIDFILE",
"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_SESSION_CACHE", "TOK_TLSv1_1", "TOK_TLSv1_2", "TOK_TLSv1_3", "TOK_CIPHERSUITES",
"TOK_SHARED_CACHE_LISTEN", "TOK_SHARED_CACHE_PEER", "TOK_ECDH_CURVE", "TOK_SESSION_CACHE", "TOK_SHARED_CACHE_LISTEN",
"TOK_SHARED_CACHE_IF", "TOK_PRIVATE_KEY", "TOK_BACKEND_REFRESH", "TOK_SHARED_CACHE_PEER", "TOK_SHARED_CACHE_IF", "TOK_PRIVATE_KEY",
"TOK_OCSP_REFRESH_INTERVAL", "TOK_PEM_DIR", "TOK_PEM_DIR_GLOB", "TOK_BACKEND_REFRESH", "TOK_OCSP_REFRESH_INTERVAL", "TOK_PEM_DIR",
"TOK_LOG_LEVEL", "TOK_PROXY_TLV", "TOK_PROXY_AUTHORITY", "TOK_TFO", "TOK_PEM_DIR_GLOB", "TOK_LOG_LEVEL", "TOK_PROXY_TLV",
"'='", "'{'", "'}'", "$accept", "CFG", "CFG_RECORDS", "CFG_RECORD", "TOK_PROXY_AUTHORITY", "TOK_TFO", "TOK_CLIENT_VERIFY", "TOK_VERIFY_NONE",
"FRONTEND_REC", "$@1", "FRONTEND_BLK", "FB_RECS", "FB_REC", "FB_HOST", "TOK_VERIFY_OPT", "TOK_VERIFY_REQ", "TOK_CLIENT_VERIFY_CA", "'='", "'{'",
"FB_PORT", "PEM_BLK", "PB_RECS", "PB_REC", "PB_CERT", "'}'", "$accept", "CFG", "CFG_RECORDS", "CFG_RECORD", "FRONTEND_REC",
"PB_OCSP_RESP_FILE", "OCSP_VERIFY", "PRIVATE_KEY", "PEM_DIR", "$@1", "FRONTEND_BLK", "FB_RECS", "FB_REC", "FB_HOST", "FB_PORT",
"PEM_DIR_GLOB", "OCSP_DIR", "OCSP_RESP_TMO", "OCSP_CONN_TMO", "PEM_BLK", "PB_RECS", "PB_REC", "PB_CERT", "PB_OCSP_RESP_FILE",
"OCSP_REFRESH_INTERVAL", "FB_CERT", "$@2", "FB_MATCH_GLOBAL", "OCSP_VERIFY", "PRIVATE_KEY", "PEM_DIR", "PEM_DIR_GLOB", "OCSP_DIR",
"OCSP_RESP_TMO", "OCSP_CONN_TMO", "OCSP_REFRESH_INTERVAL", "FB_CERT",
"$@2", "FB_CLIENT_VERIFY", "FB_CLIENT_VERIFY_CA", "FB_MATCH_GLOBAL",
"FB_SNI_NOMATCH_ABORT", "FB_TLS", "FB_SSL", "FB_TLS_PROTOS", "$@3", "FB_SNI_NOMATCH_ABORT", "FB_TLS", "FB_SSL", "FB_TLS_PROTOS", "$@3",
"FB_TLS_PROTOS_LIST", "FB_TLS_PROTO", "FB_CIPHERS", "FB_PREF_SRV_CIPH", "FB_TLS_PROTOS_LIST", "FB_TLS_PROTO", "FB_CIPHERS", "FB_CIPHERSUITES",
"QUIET_REC", "WORKERS_REC", "BACKLOG_REC", "KEEPALIVE_REC", "TLS_REC", "FB_PREF_SRV_CIPH", "QUIET_REC", "WORKERS_REC", "BACKLOG_REC",
"SSL_REC", "TLS_PROTOS_REC", "$@4", "TLS_PROTOS_LIST", "TLS_PROTO", "KEEPALIVE_REC", "TLS_REC", "SSL_REC", "TLS_PROTOS_REC", "$@4",
"SSL_ENGINE_REC", "PREFER_SERVER_CIPHERS_REC", "CHROOT_REC", "TLS_PROTOS_LIST", "TLS_PROTO", "SSL_ENGINE_REC",
"BACKEND_REC", "PEM_FILE_REC", "$@5", "SYSLOG_REC", "DAEMON_REC", "PREFER_SERVER_CIPHERS_REC", "CHROOT_REC", "BACKEND_REC", "PEM_FILE_REC",
"SNI_NOMATCH_ABORT_REC", "CIPHERS_REC", "USER_REC", "GROUP_REC", "$@5", "SYSLOG_REC", "DAEMON_REC", "SNI_NOMATCH_ABORT_REC",
"CIPHERS_REC", "CIPHERSUITES_REC", "USER_REC", "GROUP_REC",
"WRITE_IP_REC", "WRITE_PROXY_REC", "WRITE_PROXY_V1_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_PROXY_REC",
"ALPN_PROTOS_REC", "SYSLOG_FACILITY_REC", "SEND_BUFSIZE_REC", "ALPN_PROTOS_REC", "SYSLOG_FACILITY_REC", "SEND_BUFSIZE_REC",
"RECV_BUFSIZE_REC", "LOG_FILENAME_REC", "LOG_LEVEL_REC", "RECV_BUFSIZE_REC", "LOG_FILENAME_REC", "LOG_LEVEL_REC",
"SESSION_CACHE_REC", "SHARED_CACHE_LISTEN_REC", "SHARED_CACHE_PEER_REC", "SESSION_CACHE_REC", "SHARED_CACHE_LISTEN_REC", "SHARED_CACHE_PEER_REC",
"SHARED_CACHE_IF_REC", "TFO", "BACKEND_REFRESH_REC", YY_NULLPTR "SHARED_CACHE_IF_REC", "TFO", "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, 61, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
123, 125 325, 326, 327, 328, 329, 330, 61, 123, 125
}; };
# endif # endif
#define YYPACT_NINF -73 #define YYPACT_NINF -81
#define yypact_value_is_default(Yystate) \ #define yypact_value_is_default(Yystate) \
(!!((Yystate) == (-73))) (!!((Yystate) == (-81)))
#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[] =
{ {
11, -66, -29, -24, -23, -22, -17, -16, -15, -14, -1, -72, -71, -56, -48, -47, -26, -25, -23, -15,
-7, 2, 12, 14, 15, 16, 17, 18, 19, 20, 0, 10, 12, 13, 14, 15, 16, 17, 18, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 21, 22, 23, 24, 25, 26, 28, 35, 36, 37,
32, 33, 34, -73, 35, 36, 37, 38, 39, 40, 38, 39, 40, -81, 41, 43, 44, 45, 46, 47,
47, 48, 49, 50, 51, 52, 41, 11, -73, -73, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73, 87, -1, -81, -81, -81, -81, -81, -81, -81, -81,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-73, -73, -73, 57, 116, 119, 120, -6, 121, 123, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
124, 125, 126, 127, 129, 130, 131, 133, 134, 135, -81, 97, 129, 131, 132, -6, 133, 136, 137, 138,
136, 137, -5, 138, 132, 140, 139, 141, 142, 143, 139, 140, 142, 143, 144, 146, 147, 148, 149, 150,
144, 145, 146, 148, 147, 60, 150, 149, 151, 152, -5, 151, 145, 153, 152, 154, 155, 156, 157, 158,
155, 156, 157, 158, 161, 162, 163, 164, -73, -73, 159, 161, 160, 66, 162, 163, 166, 165, 167, 168,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73, 171, 172, 173, 174, 177, 178, 179, 180, 11, 176,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-73, -73, -73, -73, -46, -73, -73, -73, -73, -73, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-73, -73, -73, -73, -73, -73, -73, 73, -28, -73, -81, -81, -81, -81, -81, -81, -12, -81, -81, -81,
-73, -73, -73, -73, -46, -73, 61, 87, 92, 93, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
97, 101, 102, 103, 104, -73, 105, 73, -73, -73, -81, -81, -81, -81, -81, -81, 68, -10, -81, -81,
-73, -73, -73, -73, -73, -73, -73, -73, -73, 106, -81, -81, -81, -12, -81, 91, 96, 101, 102, 110,
108, 109, 110, -28, -73, -73, -73, -73, -73, -73, 111, 112, 113, 114, -81, 115, 116, 117, 118, 68,
168, 174, -4, 175, 177, 178, 179, 180, 182, 115, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-73, -73, 183, 184, 185, -73, -73, -73, -73, -73, -81, -81, -81, -81, 119, 121, 122, 123, -10, -81,
-73, -73, -73, -73, -73, -73, -73, -41, -73, -73, -81, -81, -81, -81, -81, 188, 194, -4, 195, 197,
-73, -28, -73, -73, -73, -73, -73, -41, -73, 117, 198, 199, 200, 202, 128, 203, 11, 204, -81, -81,
-73, -73 205, 206, 207, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, 27, -81, -81, -81, -81,
-81, -81, -10, -81, -81, -81, -81, -81, 27, -81,
130, -81, -81
}; };
/* 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, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2, 3, 5,
32, 37, 38, 36, 33, 34, 35, 20, 14, 15,
16, 9, 10, 11, 13, 12, 17, 6, 7, 21,
23, 31, 8, 18, 19, 24, 25, 26, 27, 30,
28, 29, 22, 45, 46, 43, 44, 39, 40, 41,
42, 48, 47, 0, 0, 0, 0, 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,
36, 21, 15, 16, 17, 10, 11, 12, 14, 13,
18, 6, 7, 22, 24, 32, 8, 9, 19, 20,
25, 26, 27, 28, 31, 29, 30, 23, 46, 47,
44, 45, 40, 41, 42, 43, 49, 48, 50, 51,
52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 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,
127, 117, 118, 120, 49, 50, 103, 104, 105, 119,
128, 129, 102, 124, 138, 125, 130, 131, 132, 133,
121, 122, 136, 140, 139, 141, 126, 107, 106, 76,
80, 81, 82, 137, 0, 143, 144, 145, 146, 148,
83, 78, 79, 142, 134, 135, 147, 0, 0, 112,
113, 114, 115, 116, 109, 110, 0, 0, 0, 0,
0, 0, 0, 0, 0, 91, 0, 52, 53, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
0, 0, 0, 67, 68, 70, 71, 72, 73, 111,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
51, 54, 0, 0, 0, 123, 69, 100, 101, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
85, 88, 90, 89, 65, 66, 87, 0, 74, 75, 1, 4, 137, 127, 128, 130, 53, 54, 113, 114,
77, 0, 95, 96, 97, 98, 99, 92, 93, 0, 115, 129, 139, 140, 112, 134, 149, 135, 141, 142,
94, 86 143, 144, 131, 132, 147, 151, 150, 152, 136, 117,
116, 83, 87, 88, 89, 148, 0, 138, 160, 154,
155, 156, 157, 159, 90, 85, 86, 153, 145, 146,
158, 162, 163, 164, 161, 165, 0, 0, 122, 123,
124, 125, 126, 119, 120, 0, 0, 0, 0, 0,
0, 0, 0, 0, 100, 0, 0, 0, 0, 56,
57, 59, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 70, 71, 0, 0, 0, 0, 74, 75,
77, 78, 79, 80, 121, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 55, 58,
0, 0, 0, 133, 76, 109, 111, 91, 92, 97,
99, 98, 72, 73, 96, 0, 110, 94, 95, 81,
82, 84, 0, 104, 105, 106, 107, 108, 101, 102,
0, 103, 93
}; };
/* YYPGOTO[NTERM-NUM]. */ /* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] = static const yytype_int16 yypgoto[] =
{ {
-73, -73, -73, 153, -73, -73, -73, -73, -13, -73, -81, -81, -81, 164, -81, -81, -81, -81, -13, -81,
-73, -69, -73, -30, -73, -73, 4, -73, -73, -73, -81, -78, -81, -31, -81, -81, 3, -81, -81, -81,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-73, -73, -73, -72, -73, -73, -73, -73, -73, -73, -81, -81, -81, -81, -81, -80, -81, -81, -81, -81,
-73, -73, -73, -73, -73, 3, -73, -73, -73, -73, -81, -81, -81, -81, -81, -81, -81, -81, 6, -81,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-73, -73, -73, -73, -73, -73 -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -46, -81
}; };
/* YYDEFGOTO[NTERM-NUM]. */ /* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] = static const yytype_int16 yydefgoto[] =
{ {
-1, 46, 47, 48, 49, 187, 206, 207, 208, 209, -1, 50, 51, 52, 53, 206, 228, 229, 230, 231,
210, 222, 223, 224, 225, 226, 227, 228, 51, 52, 232, 247, 248, 249, 250, 251, 252, 253, 55, 56,
53, 54, 55, 56, 211, 261, 212, 213, 214, 215, 57, 58, 59, 60, 233, 292, 234, 235, 236, 237,
216, 239, 267, 268, 217, 218, 57, 58, 59, 60, 238, 239, 240, 264, 298, 299, 241, 242, 243, 61,
61, 62, 63, 125, 194, 195, 64, 65, 66, 67, 62, 63, 64, 65, 66, 67, 133, 213, 214, 68,
68, 188, 69, 70, 71, 72, 73, 74, 75, 76, 69, 70, 71, 72, 207, 73, 74, 75, 76, 77,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
87, 88, 89, 90, 91, 92 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
98, 99, 204, 100
}; };
/* 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[] =
{ {
144, 160, 249, 93, 50, 189, 190, 191, 192, 193, 156, 172, 277, 54, 101, 102, 1, 2, 3, 4,
262, 263, 264, 265, 266, 219, 220, 28, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 103, 15, 16, 17, 18, 19, 20, 21, 104, 105,
13, 14, 221, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 244, 245, 28, 25, 26, 27, 208,
94, 138, 22, 23, 24, 95, 96, 97, 25, 26, 209, 210, 211, 212, 28, 29, 30, 31, 32, 33,
27, 50, 98, 99, 100, 101, 28, 29, 30, 31, 106, 107, 246, 108, 54, 34, 35, 36, 37, 38,
32, 33, 102, 140, 145, 161, 250, 34, 35, 36, 39, 109, 40, 41, 42, 43, 44, 45, 46, 47,
37, 103, 38, 39, 40, 41, 42, 43, 44, 45, 48, 157, 173, 278, 49, 215, 110, 216, 293, 294,
196, 104, 197, 105, 106, 107, 108, 109, 110, 111, 295, 296, 297, 201, 202, 203, 111, 150, 112, 113,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 114, 115, 116, 117, 118, 217, 119, 120, 121, 122,
198, 122, 123, 124, 126, 127, 128, 129, 130, 131, 123, 124, 125, 152, 126, 218, 219, 220, 221, 222,
199, 200, 201, 202, 203, 204, 132, 133, 134, 135, 223, 127, 128, 129, 130, 131, 132, 134, 224, 135,
136, 137, 141, 205, 142, 146, 143, 147, 148, 174, 136, 137, 138, 139, 225, 140, 141, 142, 143, 144,
230, 149, 150, 151, 152, 153, 163, 154, 155, 156, 145, 146, 147, 148, 149, 153, 154, 158, 155, 226,
157, 158, 159, 162, 164, 165, 166, 167, 168, 169, 159, 160, 186, 227, 161, 162, 163, 164, 165, 175,
171, 170, 172, 173, 175, 176, 231, 177, 178, 179, 166, 167, 168, 169, 170, 171, 174, 176, 177, 178,
180, 232, 233, 181, 182, 183, 234, 184, 185, 186, 179, 180, 181, 183, 182, 184, 185, 255, 187, 188,
235, 236, 237, 238, 247, 242, 240, 243, 244, 248, 189, 190, 256, 191, 192, 193, 194, 257, 258, 195,
251, 245, 252, 253, 257, 254, 255, 256, 271, 258, 196, 197, 205, 198, 199, 200, 259, 260, 261, 262,
259, 260, 269, 246, 241, 270, 0, 229, 0, 0, 263, 265, 266, 267, 275, 270, 268, 271, 272, 276,
139 279, 273, 280, 281, 285, 282, 283, 284, 302, 286,
288, 289, 290, 291, 300, 151, 269, 274, 301, 254,
287
}; };
static const yytype_int16 yycheck[] = static const yytype_uint16 yycheck[] =
{ {
6, 6, 6, 69, 0, 51, 52, 53, 54, 55, 6, 6, 6, 0, 76, 76, 7, 8, 9, 10,
51, 52, 53, 54, 55, 43, 44, 45, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 76, 22, 23, 24, 25, 26, 27, 28, 76, 76,
19, 20, 60, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 43, 44, 45, 37, 38, 39, 51,
69, 0, 31, 32, 33, 69, 69, 69, 37, 38, 52, 53, 54, 55, 45, 46, 47, 48, 49, 50,
39, 47, 69, 69, 69, 69, 45, 46, 47, 48, 76, 76, 62, 76, 51, 56, 57, 58, 59, 60,
49, 50, 69, 6, 70, 70, 70, 56, 57, 58, 61, 76, 63, 64, 65, 66, 67, 68, 69, 70,
59, 69, 61, 62, 63, 64, 65, 66, 67, 68, 71, 77, 77, 77, 75, 7, 76, 9, 51, 52,
7, 69, 9, 69, 69, 69, 69, 69, 69, 69, 53, 54, 55, 72, 73, 74, 76, 0, 76, 76,
69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 76, 76, 76, 76, 76, 27, 76, 76, 76, 76,
27, 69, 69, 69, 69, 69, 69, 69, 69, 69, 76, 76, 76, 6, 76, 37, 38, 39, 40, 41,
37, 38, 39, 40, 41, 42, 69, 69, 69, 69, 42, 76, 76, 76, 76, 76, 76, 76, 50, 76,
69, 69, 6, 50, 5, 4, 6, 4, 4, 69, 76, 76, 76, 76, 56, 76, 76, 76, 76, 76,
69, 6, 6, 6, 5, 5, 4, 6, 5, 5, 76, 76, 76, 76, 76, 6, 5, 4, 6, 71,
5, 5, 5, 5, 4, 6, 5, 5, 5, 5, 4, 4, 76, 75, 6, 6, 6, 5, 5, 4,
4, 6, 4, 6, 4, 6, 69, 6, 6, 4, 6, 5, 5, 5, 5, 5, 5, 4, 6, 5,
4, 69, 69, 6, 6, 4, 69, 5, 5, 5, 5, 5, 5, 4, 6, 4, 6, 76, 6, 6,
69, 69, 69, 69, 6, 69, 71, 69, 69, 5, 4, 6, 76, 6, 6, 4, 4, 76, 76, 6,
5, 71, 5, 5, 69, 6, 6, 5, 71, 6, 6, 4, 6, 5, 5, 5, 76, 76, 76, 76,
6, 6, 261, 223, 207, 267, -1, 194, -1, -1, 76, 76, 76, 76, 6, 76, 78, 76, 76, 5,
47 5, 78, 5, 5, 76, 6, 6, 5, 78, 6,
6, 6, 6, 6, 292, 51, 229, 248, 298, 213,
266
}; };
/* 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, 61, 62, 47, 48, 49, 50, 56, 57, 58, 59, 60, 61,
63, 64, 65, 66, 67, 68, 73, 74, 75, 76, 63, 64, 65, 66, 67, 68, 69, 70, 71, 75,
88, 90, 91, 92, 93, 94, 95, 108, 109, 110, 80, 81, 82, 83, 95, 97, 98, 99, 100, 101,
111, 112, 113, 114, 118, 119, 120, 121, 122, 124, 102, 118, 119, 120, 121, 122, 123, 124, 128, 129,
125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 130, 131, 132, 134, 135, 136, 137, 138, 139, 140,
135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
145, 146, 147, 69, 69, 69, 69, 69, 69, 69, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 162, 76, 76, 76, 76, 76, 76, 76, 76, 76,
69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
69, 69, 69, 69, 69, 115, 69, 69, 69, 69, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
69, 69, 69, 69, 69, 69, 69, 69, 0, 75, 76, 76, 76, 125, 76, 76, 76, 76, 76, 76,
6, 6, 5, 6, 6, 70, 4, 4, 4, 6, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
6, 6, 5, 5, 6, 5, 5, 5, 5, 5, 0, 82, 6, 6, 5, 6, 6, 77, 4, 4,
6, 70, 5, 4, 4, 6, 5, 5, 5, 5, 4, 6, 6, 6, 5, 5, 6, 5, 5, 5,
6, 4, 4, 6, 69, 4, 6, 6, 6, 4, 5, 5, 6, 77, 5, 4, 4, 6, 5, 5,
4, 6, 6, 4, 5, 5, 5, 77, 123, 51, 5, 5, 6, 4, 4, 6, 76, 6, 6, 4,
52, 53, 54, 55, 116, 117, 7, 9, 27, 37, 6, 6, 6, 4, 4, 6, 6, 4, 5, 5,
38, 39, 40, 41, 42, 50, 78, 79, 80, 81, 5, 72, 73, 74, 161, 6, 84, 133, 51, 52,
82, 96, 98, 99, 100, 101, 102, 106, 107, 43, 53, 54, 55, 126, 127, 7, 9, 27, 37, 38,
44, 60, 83, 84, 85, 86, 87, 88, 89, 117, 39, 40, 41, 42, 50, 56, 71, 75, 85, 86,
69, 69, 69, 69, 69, 69, 69, 69, 69, 103, 87, 88, 89, 103, 105, 106, 107, 108, 109, 110,
71, 80, 69, 69, 69, 71, 85, 6, 5, 6, 111, 115, 116, 117, 43, 44, 62, 90, 91, 92,
70, 5, 5, 5, 6, 6, 5, 69, 6, 6, 93, 94, 95, 96, 127, 76, 76, 76, 76, 76,
6, 97, 51, 52, 53, 54, 55, 104, 105, 83, 76, 76, 76, 76, 112, 76, 76, 76, 78, 87,
105, 71 76, 76, 76, 78, 92, 6, 5, 6, 77, 5,
5, 5, 6, 6, 5, 76, 6, 161, 6, 6,
6, 6, 104, 51, 52, 53, 54, 55, 113, 114,
90, 114, 78
}; };
/* 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, 72, 73, 74, 74, 75, 75, 75, 75, 75, 0, 79, 80, 81, 81, 82, 82, 82, 82, 82,
75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
75, 75, 75, 75, 75, 75, 75, 75, 75, 76, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
77, 76, 78, 79, 79, 80, 80, 80, 80, 80, 82, 82, 82, 83, 84, 83, 85, 86, 86, 87,
80, 80, 80, 80, 80, 81, 82, 83, 84, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
85, 85, 85, 85, 86, 87, 88, 89, 90, 91, 87, 87, 88, 89, 90, 91, 91, 92, 92, 92,
92, 93, 94, 95, 96, 97, 96, 98, 99, 100, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
101, 103, 102, 104, 104, 105, 105, 105, 105, 105, 102, 103, 104, 103, 105, 106, 107, 108, 109, 110,
106, 107, 108, 109, 110, 111, 112, 113, 115, 114, 112, 111, 113, 113, 114, 114, 114, 114, 114, 115,
116, 116, 117, 117, 117, 117, 117, 118, 119, 120, 116, 117, 118, 119, 120, 121, 122, 123, 125, 124,
121, 122, 123, 122, 124, 125, 126, 127, 128, 129, 126, 126, 127, 127, 127, 127, 127, 128, 129, 130,
130, 131, 132, 133, 134, 134, 135, 136, 137, 138, 131, 132, 133, 132, 134, 135, 136, 137, 138, 139,
139, 140, 141, 142, 143, 144, 145, 146, 147 140, 141, 142, 143, 144, 145, 145, 146, 147, 148,
149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
159, 160, 161, 161, 161, 162
}; };
/* 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 6, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 6, 1, 1, 2, 1,
1, 1, 1, 1, 1, 3, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 2, 1, 1, 1,
3, 3, 3, 3, 3, 0, 6, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 0, 4, 1, 2, 1, 1, 1, 1, 1, 3, 3, 0, 6, 3, 3, 3, 3, 3, 3,
0, 4, 1, 2, 1, 1, 1, 1, 1, 3,
3, 3, 3, 3, 3, 3, 3, 3, 0, 4, 3, 3, 3, 3, 3, 3, 3, 3, 0, 4,
1, 2, 1, 1, 1, 1, 1, 3, 3, 3, 1, 2, 1, 1, 1, 1, 1, 3, 3, 3,
3, 3, 0, 6, 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
}; };
#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 1565 skipping to change at line 1605
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 49: case 53:
#line 123 "cfg_parser.y" /* yacc.c:1652 */ #line 129 "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 1603 "cfg_parser.c" /* yacc.c:1652 */ #line 1643 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 50: case 54:
#line 129 "cfg_parser.y" /* yacc.c:1652 */ #line 135 "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 1613 "cfg_parser.c" /* yacc.c:1652 */ #line 1653 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 51: case 55:
#line 134 "cfg_parser.y" /* yacc.c:1652 */ #line 140 "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 1623 "cfg_parser.c" /* yacc.c:1652 */ #line 1663 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 65: case 72:
#line 159 "cfg_parser.y" /* yacc.c:1652 */ #line 168 "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 1636 "cfg_parser.c" /* yacc.c:1652 */ #line 1676 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 66: case 73:
#line 168 "cfg_parser.y" /* yacc.c:1652 */ #line 177 "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 1642 "cfg_parser.c" /* yacc.c:1652 */ #line 1682 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 74: case 81:
#line 184 "cfg_parser.y" /* yacc.c:1652 */ #line 193 "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 1648 "cfg_parser.c" /* yacc.c:1652 */ #line 1688 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 75: case 82:
#line 186 "cfg_parser.y" /* yacc.c:1652 */ #line 195 "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 1657 "cfg_parser.c" /* yacc.c:1652 */ #line 1697 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 76: case 83:
#line 191 "cfg_parser.y" /* yacc.c:1652 */ #line 200 "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 1668 "cfg_parser.c" /* yacc.c:1652 */ #line 1708 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 77: case 84:
#line 198 "cfg_parser.y" /* yacc.c:1652 */ #line 207 "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 1676 "cfg_parser.c" /* yacc.c:1652 */ #line 1716 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 78: case 85:
#line 202 "cfg_parser.y" /* yacc.c:1652 */ #line 211 "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 1693 "cfg_parser.c" /* yacc.c:1652 */ #line 1733 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 79: case 86:
#line 215 "cfg_parser.y" /* yacc.c:1652 */ #line 224 "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 1705 "cfg_parser.c" /* yacc.c:1652 */ #line 1745 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 80: case 87:
#line 223 "cfg_parser.y" /* yacc.c:1652 */ #line 232 "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 1716 "cfg_parser.c" /* yacc.c:1652 */ #line 1756 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 81: case 88:
#line 230 "cfg_parser.y" /* yacc.c:1652 */ #line 239 "cfg_parser.y" /* yacc.c:1652 */
{ {
cfg->OCSP_RESP_TMO = (yyvsp[0].i); cfg->OCSP_RESP_TMO = (yyvsp[0].i);
} }
#line 1724 "cfg_parser.c" /* yacc.c:1652 */ #line 1764 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 82: case 89:
#line 234 "cfg_parser.y" /* yacc.c:1652 */ #line 243 "cfg_parser.y" /* yacc.c:1652 */
{ {
cfg->OCSP_CONN_TMO = (yyvsp[0].i); cfg->OCSP_CONN_TMO = (yyvsp[0].i);
} }
#line 1732 "cfg_parser.c" /* yacc.c:1652 */ #line 1772 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 83: case 90:
#line 238 "cfg_parser.y" /* yacc.c:1652 */ #line 247 "cfg_parser.y" /* yacc.c:1652 */
{ {
cfg->OCSP_REFRESH_INTERVAL = (yyvsp[0].i); cfg->OCSP_REFRESH_INTERVAL = (yyvsp[0].i);
} }
#line 1740 "cfg_parser.c" /* yacc.c:1652 */ #line 1780 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 84: case 91:
#line 243 "cfg_parser.y" /* yacc.c:1652 */ #line 252 "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 1759 "cfg_parser.c" /* yacc.c:1652 */ #line 1799 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 85: case 92:
#line 257 "cfg_parser.y" /* yacc.c:1652 */ #line 266 "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 1769 "cfg_parser.c" /* yacc.c:1652 */ #line 1809 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 86: case 93:
#line 262 "cfg_parser.y" /* yacc.c:1652 */ #line 271 "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 1783 "cfg_parser.c" /* yacc.c:1652 */ #line 1823 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 87: case 95:
#line 272 "cfg_parser.y" /* yacc.c:1652 */ #line 283 "cfg_parser.y" /* yacc.c:1652 */
{
cur_fa->client_verify_ca = strdup((yyvsp[0].s));
}
#line 1831 "cfg_parser.c" /* yacc.c:1652 */
break;
case 96:
#line 288 "cfg_parser.y" /* yacc.c:1652 */
{ cur_fa->match_global_certs = (yyvsp[0].i); } { cur_fa->match_global_certs = (yyvsp[0].i); }
#line 1789 "cfg_parser.c" /* yacc.c:1652 */ #line 1837 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 88: case 97:
#line 274 "cfg_parser.y" /* yacc.c:1652 */ #line 290 "cfg_parser.y" /* yacc.c:1652 */
{ {
cur_fa->sni_nomatch_abort = (yyvsp[0].i); cur_fa->sni_nomatch_abort = (yyvsp[0].i);
} }
#line 1797 "cfg_parser.c" /* yacc.c:1652 */ #line 1845 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 89: case 98:
#line 279 "cfg_parser.y" /* yacc.c:1652 */ #line 295 "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 1818 "cfg_parser.c" /* yacc.c:1652 */ #line 1866 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 90: case 99:
#line 296 "cfg_parser.y" /* yacc.c:1652 */ #line 312 "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 1839 "cfg_parser.c" /* yacc.c:1652 */ #line 1887 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 91: case 100:
#line 313 "cfg_parser.y" /* yacc.c:1652 */ #line 329 "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 1855 "cfg_parser.c" /* yacc.c:1652 */ #line 1903 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 95: case 104:
#line 327 "cfg_parser.y" /* yacc.c:1652 */ #line 343 "cfg_parser.y" /* yacc.c:1652 */
{ cur_fa->selected_protos |= SSLv3_PROTO; } { cur_fa->selected_protos |= SSLv3_PROTO; }
#line 1861 "cfg_parser.c" /* yacc.c:1652 */ #line 1909 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 96: case 105:
#line 328 "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 |= TLSv1_0_PROTO; }
#line 1867 "cfg_parser.c" /* yacc.c:1652 */ #line 1915 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 97: case 106:
#line 329 "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_1_PROTO; }
#line 1873 "cfg_parser.c" /* yacc.c:1652 */ #line 1921 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 98: case 107:
#line 330 "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_2_PROTO; }
#line 1879 "cfg_parser.c" /* yacc.c:1652 */ #line 1927 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 99: case 108:
#line 331 "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_3_PROTO; }
#line 1885 "cfg_parser.c" /* yacc.c:1652 */ #line 1933 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 100: case 109:
#line 333 "cfg_parser.y" /* yacc.c:1652 */ #line 349 "cfg_parser.y" /* yacc.c:1652 */
{
if ((yyvsp[0].s)) cur_fa->ciphers_tlsv12 = strdup((yyvsp[0].s));
}
#line 1941 "cfg_parser.c" /* yacc.c:1652 */
break;
case 110:
#line 353 "cfg_parser.y" /* yacc.c:1652 */
{ {
if ((yyvsp[0].s)) cur_fa->ciphers = strdup((yyvsp[0].s)); if ((yyvsp[0].s)) {
CHECK_OBJ_NOTNULL(cur_fa, FRONT_ARG_MAGIC);
cur_fa->ciphersuites_tlsv13 = strdup((yyvsp[0].s));
}
} }
#line 1893 "cfg_parser.c" /* yacc.c:1652 */ #line 1952 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 101: case 111:
#line 337 "cfg_parser.y" /* yacc.c:1652 */ #line 360 "cfg_parser.y" /* yacc.c:1652 */
{ {
cur_fa->prefer_server_ciphers = (yyvsp[0].i); cur_fa->prefer_server_ciphers = (yyvsp[0].i);
} }
#line 1901 "cfg_parser.c" /* yacc.c:1652 */ #line 1960 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 102: case 112:
#line 341 "cfg_parser.y" /* yacc.c:1652 */ #line 364 "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 1912 "cfg_parser.c" /* yacc.c:1652 */ #line 1971 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 103: case 113:
#line 348 "cfg_parser.y" /* yacc.c:1652 */ #line 371 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->NCORES = (yyvsp[0].i); } { cfg->NCORES = (yyvsp[0].i); }
#line 1918 "cfg_parser.c" /* yacc.c:1652 */ #line 1977 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 104: case 114:
#line 350 "cfg_parser.y" /* yacc.c:1652 */ #line 373 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->BACKLOG = (yyvsp[0].i); } { cfg->BACKLOG = (yyvsp[0].i); }
#line 1924 "cfg_parser.c" /* yacc.c:1652 */ #line 1983 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 105: case 115:
#line 352 "cfg_parser.y" /* yacc.c:1652 */ #line 375 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->TCP_KEEPALIVE_TIME = (yyvsp[0].i); } { cfg->TCP_KEEPALIVE_TIME = (yyvsp[0].i); }
#line 1930 "cfg_parser.c" /* yacc.c:1652 */ #line 1989 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 106: case 116:
#line 354 "cfg_parser.y" /* yacc.c:1652 */ #line 377 "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 1949 "cfg_parser.c" /* yacc.c:1652 */ #line 2008 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 107: case 117:
#line 369 "cfg_parser.y" /* yacc.c:1652 */ #line 392 "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 1968 "cfg_parser.c" /* yacc.c:1652 */ #line 2027 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 108: case 118:
#line 384 "cfg_parser.y" /* yacc.c:1652 */ #line 407 "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 1982 "cfg_parser.c" /* yacc.c:1652 */ #line 2041 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 112: case 122:
#line 396 "cfg_parser.y" /* yacc.c:1652 */ #line 419 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->SELECTED_TLS_PROTOS |= SSLv3_PROTO; } { cfg->SELECTED_TLS_PROTOS |= SSLv3_PROTO; }
#line 1988 "cfg_parser.c" /* yacc.c:1652 */ #line 2047 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 113: case 123:
#line 397 "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 |= TLSv1_0_PROTO; }
#line 1994 "cfg_parser.c" /* yacc.c:1652 */ #line 2053 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 114: case 124:
#line 398 "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_1_PROTO; }
#line 2000 "cfg_parser.c" /* yacc.c:1652 */ #line 2059 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 115: case 125:
#line 399 "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_2_PROTO; }
#line 2006 "cfg_parser.c" /* yacc.c:1652 */ #line 2065 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 116: case 126:
#line 400 "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_3_PROTO; }
#line 2012 "cfg_parser.c" /* yacc.c:1652 */ #line 2071 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 117: case 127:
#line 402 "cfg_parser.y" /* yacc.c:1652 */ #line 425 "cfg_parser.y" /* yacc.c:1652 */
{ if ((yyvsp[0].s)) cfg->ENGINE = strdup((yyvsp[0].s)); } { if ((yyvsp[0].s)) cfg->ENGINE = strdup((yyvsp[0].s)); }
#line 2018 "cfg_parser.c" /* yacc.c:1652 */ #line 2077 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 118: case 128:
#line 404 "cfg_parser.y" /* yacc.c:1652 */ #line 427 "cfg_parser.y" /* yacc.c:1652 */
{ {
cfg->PREFER_SERVER_CIPHERS = (yyvsp[0].i); cfg->PREFER_SERVER_CIPHERS = (yyvsp[0].i);
} }
#line 2026 "cfg_parser.c" /* yacc.c:1652 */ #line 2085 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 119: case 129:
#line 408 "cfg_parser.y" /* yacc.c:1652 */ #line 431 "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 2037 "cfg_parser.c" /* yacc.c:1652 */ #line 2096 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 120: case 130:
#line 415 "cfg_parser.y" /* yacc.c:1652 */ #line 438 "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 2048 "cfg_parser.c" /* yacc.c:1652 */ #line 2107 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 121: case 131:
#line 423 "cfg_parser.y" /* yacc.c:1652 */ #line 446 "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 2059 "cfg_parser.c" /* yacc.c:1652 */ #line 2118 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 122: case 132:
#line 429 "cfg_parser.y" /* yacc.c:1652 */ #line 452 "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 2069 "cfg_parser.c" /* yacc.c:1652 */ #line 2128 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 123: case 133:
#line 434 "cfg_parser.y" /* yacc.c:1652 */ #line 457 "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 2087 "cfg_parser.c" /* yacc.c:1652 */ #line 2146 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 124: case 134:
#line 448 "cfg_parser.y" /* yacc.c:1652 */ #line 471 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->SYSLOG = (yyvsp[0].i); } { cfg->SYSLOG = (yyvsp[0].i); }
#line 2093 "cfg_parser.c" /* yacc.c:1652 */ #line 2152 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 125: case 135:
#line 449 "cfg_parser.y" /* yacc.c:1652 */ #line 472 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->DAEMONIZE = (yyvsp[0].i); } { cfg->DAEMONIZE = (yyvsp[0].i); }
#line 2099 "cfg_parser.c" /* yacc.c:1652 */ #line 2158 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 126: case 136:
#line 450 "cfg_parser.y" /* yacc.c:1652 */ #line 473 "cfg_parser.y" /* yacc.c:1652 */
{ {
cfg->SNI_NOMATCH_ABORT = (yyvsp[0].i); cfg->SNI_NOMATCH_ABORT = (yyvsp[0].i);
} }
#line 2107 "cfg_parser.c" /* yacc.c:1652 */ #line 2166 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 127: case 137:
#line 454 "cfg_parser.y" /* yacc.c:1652 */ #line 477 "cfg_parser.y" /* yacc.c:1652 */
{ if ((yyvsp[0].s)) cfg->CIPHER_SUITE = strdup((yyvsp[0].s)); } {
#line 2113 "cfg_parser.c" /* yacc.c:1652 */ if ((yyvsp[0].s)) {
cfg->CIPHERS_TLSv12 = strdup((yyvsp[0].s));
}
}
#line 2176 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 128: case 138:
#line 456 "cfg_parser.y" /* yacc.c:1652 */ #line 483 "cfg_parser.y" /* yacc.c:1652 */
{
if ((yyvsp[0].s)) {
cfg->CIPHERSUITES_TLSv13 = strdup((yyvsp[0].s));
}
}
#line 2186 "cfg_parser.c" /* yacc.c:1652 */
break;
case 139:
#line 490 "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 2124 "cfg_parser.c" /* yacc.c:1652 */ #line 2197 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 129: case 140:
#line 463 "cfg_parser.y" /* yacc.c:1652 */ #line 497 "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 2135 "cfg_parser.c" /* yacc.c:1652 */ #line 2208 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 130: case 141:
#line 470 "cfg_parser.y" /* yacc.c:1652 */ #line 504 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->WRITE_IP_OCTET = (yyvsp[0].i); } { cfg->WRITE_IP_OCTET = (yyvsp[0].i); }
#line 2141 "cfg_parser.c" /* yacc.c:1652 */ #line 2214 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 131: case 142:
#line 472 "cfg_parser.y" /* yacc.c:1652 */ #line 506 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->WRITE_PROXY_LINE_V2 = (yyvsp[0].i); } { cfg->WRITE_PROXY_LINE_V2 = (yyvsp[0].i); }
#line 2147 "cfg_parser.c" /* yacc.c:1652 */ #line 2220 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 132: case 143:
#line 474 "cfg_parser.y" /* yacc.c:1652 */ #line 508 "cfg_parser.y" /* yacc.c:1652 */
{ {
cfg->WRITE_PROXY_LINE_V1 = (yyvsp[0].i); cfg->WRITE_PROXY_LINE_V1 = (yyvsp[0].i);
} }
#line 2155 "cfg_parser.c" /* yacc.c:1652 */ #line 2228 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 133: case 144:
#line 478 "cfg_parser.y" /* yacc.c:1652 */ #line 512 "cfg_parser.y" /* yacc.c:1652 */
{ {
cfg->WRITE_PROXY_LINE_V2 = (yyvsp[0].i); cfg->WRITE_PROXY_LINE_V2 = (yyvsp[0].i);
} }
#line 2163 "cfg_parser.c" /* yacc.c:1652 */ #line 2236 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 134: case 145:
#line 482 "cfg_parser.y" /* yacc.c:1652 */ #line 516 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->PROXY_TLV = (yyvsp[0].i); } { cfg->PROXY_TLV = (yyvsp[0].i); }
#line 2169 "cfg_parser.c" /* yacc.c:1652 */ #line 2242 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 135: case 146:
#line 484 "cfg_parser.y" /* yacc.c:1652 */ #line 518 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->PROXY_AUTHORITY = (yyvsp[0].i); } { cfg->PROXY_AUTHORITY = (yyvsp[0].i); }
#line 2175 "cfg_parser.c" /* yacc.c:1652 */ #line 2248 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 136: case 147:
#line 486 "cfg_parser.y" /* yacc.c:1652 */ #line 520 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->PROXY_PROXY_LINE = (yyvsp[0].i); } { cfg->PROXY_PROXY_LINE = (yyvsp[0].i); }
#line 2181 "cfg_parser.c" /* yacc.c:1652 */ #line 2254 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 137: case 148:
#line 488 "cfg_parser.y" /* yacc.c:1652 */ #line 522 "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 2192 "cfg_parser.c" /* yacc.c:1652 */ #line 2265 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 138: case 149:
#line 495 "cfg_parser.y" /* yacc.c:1652 */ #line 529 "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 2204 "cfg_parser.c" /* yacc.c:1652 */ #line 2277 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 139: case 150:
#line 503 "cfg_parser.y" /* yacc.c:1652 */ #line 537 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->SEND_BUFSIZE = (yyvsp[0].i); } { cfg->SEND_BUFSIZE = (yyvsp[0].i); }
#line 2210 "cfg_parser.c" /* yacc.c:1652 */ #line 2283 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 140: case 151:
#line 505 "cfg_parser.y" /* yacc.c:1652 */ #line 539 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->RECV_BUFSIZE = (yyvsp[0].i); } { cfg->RECV_BUFSIZE = (yyvsp[0].i); }
#line 2216 "cfg_parser.c" /* yacc.c:1652 */ #line 2289 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 141: case 152:
#line 507 "cfg_parser.y" /* yacc.c:1652 */ #line 541 "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 2228 "cfg_parser.c" /* yacc.c:1652 */ #line 2301 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 142: case 153:
#line 515 "cfg_parser.y" /* yacc.c:1652 */ #line 549 "cfg_parser.y" /* yacc.c:1652 */
{ cfg->LOG_LEVEL = (yyvsp[0].i); } { cfg->LOG_LEVEL = (yyvsp[0].i); }
#line 2234 "cfg_parser.c" /* yacc.c:1652 */ #line 2307 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 143: case 154:
#line 517 "cfg_parser.y" /* yacc.c:1652 */ #line 551 "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 2248 "cfg_parser.c" /* yacc.c:1652 */ #line 2321 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 144: case 155:
#line 527 "cfg_parser.y" /* yacc.c:1652 */ #line 561 "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 2265 "cfg_parser.c" /* yacc.c:1652 */ #line 2338 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 145: case 156:
#line 540 "cfg_parser.y" /* yacc.c:1652 */ #line 574 "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 2282 "cfg_parser.c" /* yacc.c:1652 */ #line 2355 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 146: case 157:
#line 553 "cfg_parser.y" /* yacc.c:1652 */ #line 587 "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 2299 "cfg_parser.c" /* yacc.c:1652 */ #line 2372 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 147: case 158:
#line 566 "cfg_parser.y" /* yacc.c:1652 */ #line 600 "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 2313 "cfg_parser.c" /* yacc.c:1652 */ #line 2386 "cfg_parser.c" /* yacc.c:1652 */
break; break;
case 148: case 159:
#line 576 "cfg_parser.y" /* yacc.c:1652 */ #line 610 "cfg_parser.y" /* yacc.c:1652 */
{ {
cfg->BACKEND_REFRESH_TIME = (yyvsp[0].i); cfg->BACKEND_REFRESH_TIME = (yyvsp[0].i);
} }
#line 2321 "cfg_parser.c" /* yacc.c:1652 */ #line 2394 "cfg_parser.c" /* yacc.c:1652 */
break;
case 160:
#line 614 "cfg_parser.y" /* yacc.c:1652 */
{
if ((yyvsp[0].s)) {
cfg->ECDH_CURVE = strdup((yyvsp[0].s));
}
}
#line 2404 "cfg_parser.c" /* yacc.c:1652 */
break;
case 162:
#line 623 "cfg_parser.y" /* yacc.c:1652 */
{
if (cur_fa)
cur_fa->client_verify = SSL_VERIFY_NONE;
else
cfg->CLIENT_VERIFY = SSL_VERIFY_NONE;
}
#line 2415 "cfg_parser.c" /* yacc.c:1652 */
break;
case 163:
#line 629 "cfg_parser.y" /* yacc.c:1652 */
{
if (cur_fa)
cur_fa->client_verify = SSL_VERIFY_PEER;
else
cfg->CLIENT_VERIFY = SSL_VERIFY_PEER;
}
#line 2426 "cfg_parser.c" /* yacc.c:1652 */
break;
case 164:
#line 635 "cfg_parser.y" /* yacc.c:1652 */
{
if (cur_fa)
cur_fa->client_verify =
SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT;
else
cfg->CLIENT_VERIFY =
SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT;
}
#line 2439 "cfg_parser.c" /* yacc.c:1652 */
break;
case 165:
#line 644 "cfg_parser.y" /* yacc.c:1652 */
{
cfg->CLIENT_VERIFY_CA = strdup((yyvsp[0].s));
}
#line 2447 "cfg_parser.c" /* yacc.c:1652 */
break; break;
#line 2325 "cfg_parser.c" /* yacc.c:1652 */ #line 2451 "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 2514 skipping to change at line 2640
#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 580 "cfg_parser.y" /* yacc.c:1918 */ #line 648 "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. 184 change blocks. 
455 lines changed or deleted 581 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)