cfg_parser.c (hitch-1.7.0) | : | cfg_parser.c (hitch-1.7.2) | ||
---|---|---|---|---|
skipping to change at line 614 | skipping to change at line 614 | |||
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, 126, 130, 136, 136, 147, 149, 150, | 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, 166, 169, 178, 180, 183, 184, 188, 189, | 164, 165, 166, 169, 178, 180, 183, 184, 188, 189, | |||
190, 191, 194, 196, 201, 208, 212, 225, 233, 240, | 190, 191, 194, 196, 201, 208, 212, 225, 233, 241, | |||
244, 248, 253, 267, 267, 282, 284, 289, 291, 296, | 245, 249, 254, 268, 268, 283, 285, 290, 292, 297, | |||
313, 330, 330, 342, 342, 344, 345, 346, 347, 348, | 314, 331, 331, 343, 343, 345, 346, 347, 348, 349, | |||
350, 354, 361, 365, 372, 374, 376, 378, 393, 408, | 351, 355, 362, 366, 373, 375, 377, 379, 394, 409, | |||
408, 418, 418, 420, 421, 422, 423, 424, 426, 428, | 409, 419, 419, 421, 422, 423, 424, 425, 427, 429, | |||
432, 439, 447, 453, 453, 472, 473, 474, 478, 484, | 433, 440, 448, 454, 454, 473, 474, 475, 479, 486, | |||
491, 498, 505, 507, 509, 513, 517, 519, 521, 523, | 494, 501, 508, 510, 512, 516, 520, 522, 524, 526, | |||
525, 532, 540, 542, 544, 552, 554, 564, 577, 590, | 528, 535, 543, 545, 547, 555, 557, 567, 580, 593, | |||
603, 613, 617, 623, 626, 632, 638, 647 | 606, 616, 620, 627, 630, 636, 642, 651 | |||
}; | }; | |||
#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 1724 | skipping to change at line 1724 | |||
else | else | |||
cfg->PEM_DIR_GLOB = NULL; | cfg->PEM_DIR_GLOB = NULL; | |||
} | } | |||
#line 1748 "cfg_parser.c" /* yacc.c:1652 */ | #line 1748 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 88: | case 88: | |||
#line 233 "cfg_parser.y" /* yacc.c:1652 */ | #line 233 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
free(cfg->OCSP_DIR); | ||||
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 1759 "cfg_parser.c" /* yacc.c:1652 */ | #line 1760 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 89: | case 89: | |||
#line 240 "cfg_parser.y" /* yacc.c:1652 */ | #line 241 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->OCSP_RESP_TMO = (yyvsp[0].i); | cfg->OCSP_RESP_TMO = (yyvsp[0].i); | |||
} | } | |||
#line 1767 "cfg_parser.c" /* yacc.c:1652 */ | #line 1768 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 90: | case 90: | |||
#line 244 "cfg_parser.y" /* yacc.c:1652 */ | #line 245 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->OCSP_CONN_TMO = (yyvsp[0].i); | cfg->OCSP_CONN_TMO = (yyvsp[0].i); | |||
} | } | |||
#line 1775 "cfg_parser.c" /* yacc.c:1652 */ | #line 1776 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 91: | case 91: | |||
#line 248 "cfg_parser.y" /* yacc.c:1652 */ | #line 249 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->OCSP_REFRESH_INTERVAL = (yyvsp[0].i); | cfg->OCSP_REFRESH_INTERVAL = (yyvsp[0].i); | |||
} | } | |||
#line 1783 "cfg_parser.c" /* yacc.c:1652 */ | #line 1784 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 92: | case 92: | |||
#line 253 "cfg_parser.y" /* yacc.c:1652 */ | #line 254 "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 1802 "cfg_parser.c" /* yacc.c:1652 */ | #line 1803 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 93: | case 93: | |||
#line 267 "cfg_parser.y" /* yacc.c:1652 */ | #line 268 "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 1812 "cfg_parser.c" /* yacc.c:1652 */ | #line 1813 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 94: | case 94: | |||
#line 272 "cfg_parser.y" /* yacc.c:1652 */ | #line 273 "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 1826 "cfg_parser.c" /* yacc.c:1652 */ | #line 1827 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 96: | case 96: | |||
#line 284 "cfg_parser.y" /* yacc.c:1652 */ | #line 285 "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 1834 "cfg_parser.c" /* yacc.c:1652 */ | #line 1835 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 97: | case 97: | |||
#line 289 "cfg_parser.y" /* yacc.c:1652 */ | #line 290 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cur_fa->match_global_certs = (yyvsp[0].i); } | { cur_fa->match_global_certs = (yyvsp[0].i); } | |||
#line 1840 "cfg_parser.c" /* yacc.c:1652 */ | #line 1841 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 98: | case 98: | |||
#line 291 "cfg_parser.y" /* yacc.c:1652 */ | #line 292 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cur_fa->sni_nomatch_abort = (yyvsp[0].i); | cur_fa->sni_nomatch_abort = (yyvsp[0].i); | |||
} | } | |||
#line 1848 "cfg_parser.c" /* yacc.c:1652 */ | #line 1849 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 99: | case 99: | |||
#line 296 "cfg_parser.y" /* yacc.c:1652 */ | #line 297 "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 1869 "cfg_parser.c" /* yacc.c:1652 */ | #line 1870 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 100: | case 100: | |||
#line 313 "cfg_parser.y" /* yacc.c:1652 */ | #line 314 "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 1890 "cfg_parser.c" /* yacc.c:1652 */ | #line 1891 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 101: | case 101: | |||
#line 330 "cfg_parser.y" /* yacc.c:1652 */ | #line 331 "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 1906 "cfg_parser.c" /* yacc.c:1652 */ | #line 1907 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 105: | case 105: | |||
#line 344 "cfg_parser.y" /* yacc.c:1652 */ | #line 345 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cur_fa->selected_protos |= SSLv3_PROTO; } | { cur_fa->selected_protos |= SSLv3_PROTO; } | |||
#line 1912 "cfg_parser.c" /* yacc.c:1652 */ | #line 1913 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 106: | case 106: | |||
#line 345 "cfg_parser.y" /* yacc.c:1652 */ | #line 346 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cur_fa->selected_protos |= TLSv1_0_PROTO; } | { cur_fa->selected_protos |= TLSv1_0_PROTO; } | |||
#line 1918 "cfg_parser.c" /* yacc.c:1652 */ | #line 1919 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 107: | case 107: | |||
#line 346 "cfg_parser.y" /* yacc.c:1652 */ | #line 347 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cur_fa->selected_protos |= TLSv1_1_PROTO; } | { cur_fa->selected_protos |= TLSv1_1_PROTO; } | |||
#line 1924 "cfg_parser.c" /* yacc.c:1652 */ | #line 1925 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 108: | case 108: | |||
#line 347 "cfg_parser.y" /* yacc.c:1652 */ | #line 348 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cur_fa->selected_protos |= TLSv1_2_PROTO; } | { cur_fa->selected_protos |= TLSv1_2_PROTO; } | |||
#line 1930 "cfg_parser.c" /* yacc.c:1652 */ | #line 1931 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 109: | case 109: | |||
#line 348 "cfg_parser.y" /* yacc.c:1652 */ | #line 349 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cur_fa->selected_protos |= TLSv1_3_PROTO; } | { cur_fa->selected_protos |= TLSv1_3_PROTO; } | |||
#line 1936 "cfg_parser.c" /* yacc.c:1652 */ | #line 1937 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 110: | case 110: | |||
#line 350 "cfg_parser.y" /* yacc.c:1652 */ | #line 351 "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 1944 "cfg_parser.c" /* yacc.c:1652 */ | #line 1945 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 111: | case 111: | |||
#line 354 "cfg_parser.y" /* yacc.c:1652 */ | #line 355 "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 1955 "cfg_parser.c" /* yacc.c:1652 */ | #line 1956 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 112: | case 112: | |||
#line 361 "cfg_parser.y" /* yacc.c:1652 */ | #line 362 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cur_fa->prefer_server_ciphers = (yyvsp[0].i); | cur_fa->prefer_server_ciphers = (yyvsp[0].i); | |||
} | } | |||
#line 1963 "cfg_parser.c" /* yacc.c:1652 */ | #line 1964 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 113: | case 113: | |||
#line 365 "cfg_parser.y" /* yacc.c:1652 */ | #line 366 "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 1974 "cfg_parser.c" /* yacc.c:1652 */ | #line 1975 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 114: | case 114: | |||
#line 372 "cfg_parser.y" /* yacc.c:1652 */ | #line 373 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->NCORES = (yyvsp[0].i); } | { cfg->NCORES = (yyvsp[0].i); } | |||
#line 1980 "cfg_parser.c" /* yacc.c:1652 */ | #line 1981 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 115: | case 115: | |||
#line 374 "cfg_parser.y" /* yacc.c:1652 */ | #line 375 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->BACKLOG = (yyvsp[0].i); } | { cfg->BACKLOG = (yyvsp[0].i); } | |||
#line 1986 "cfg_parser.c" /* yacc.c:1652 */ | #line 1987 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 116: | case 116: | |||
#line 376 "cfg_parser.y" /* yacc.c:1652 */ | #line 377 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->TCP_KEEPALIVE_TIME = (yyvsp[0].i); } | { cfg->TCP_KEEPALIVE_TIME = (yyvsp[0].i); } | |||
#line 1992 "cfg_parser.c" /* yacc.c:1652 */ | #line 1993 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 117: | case 117: | |||
#line 378 "cfg_parser.y" /* yacc.c:1652 */ | #line 379 "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 2011 "cfg_parser.c" /* yacc.c:1652 */ | #line 2012 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 118: | case 118: | |||
#line 393 "cfg_parser.y" /* yacc.c:1652 */ | #line 394 "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 2030 "cfg_parser.c" /* yacc.c:1652 */ | #line 2031 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 119: | case 119: | |||
#line 408 "cfg_parser.y" /* yacc.c:1652 */ | #line 409 "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 2044 "cfg_parser.c" /* yacc.c:1652 */ | #line 2045 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 123: | case 123: | |||
#line 420 "cfg_parser.y" /* yacc.c:1652 */ | #line 421 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->SELECTED_TLS_PROTOS |= SSLv3_PROTO; } | { cfg->SELECTED_TLS_PROTOS |= SSLv3_PROTO; } | |||
#line 2050 "cfg_parser.c" /* yacc.c:1652 */ | #line 2051 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 124: | case 124: | |||
#line 421 "cfg_parser.y" /* yacc.c:1652 */ | #line 422 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->SELECTED_TLS_PROTOS |= TLSv1_0_PROTO; } | { cfg->SELECTED_TLS_PROTOS |= TLSv1_0_PROTO; } | |||
#line 2056 "cfg_parser.c" /* yacc.c:1652 */ | #line 2057 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 125: | case 125: | |||
#line 422 "cfg_parser.y" /* yacc.c:1652 */ | #line 423 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->SELECTED_TLS_PROTOS |= TLSv1_1_PROTO; } | { cfg->SELECTED_TLS_PROTOS |= TLSv1_1_PROTO; } | |||
#line 2062 "cfg_parser.c" /* yacc.c:1652 */ | #line 2063 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 126: | case 126: | |||
#line 423 "cfg_parser.y" /* yacc.c:1652 */ | #line 424 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->SELECTED_TLS_PROTOS |= TLSv1_2_PROTO; } | { cfg->SELECTED_TLS_PROTOS |= TLSv1_2_PROTO; } | |||
#line 2068 "cfg_parser.c" /* yacc.c:1652 */ | #line 2069 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 127: | case 127: | |||
#line 424 "cfg_parser.y" /* yacc.c:1652 */ | #line 425 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->SELECTED_TLS_PROTOS |= TLSv1_3_PROTO; } | { cfg->SELECTED_TLS_PROTOS |= TLSv1_3_PROTO; } | |||
#line 2074 "cfg_parser.c" /* yacc.c:1652 */ | #line 2075 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 128: | case 128: | |||
#line 426 "cfg_parser.y" /* yacc.c:1652 */ | #line 427 "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 2080 "cfg_parser.c" /* yacc.c:1652 */ | #line 2081 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 129: | case 129: | |||
#line 428 "cfg_parser.y" /* yacc.c:1652 */ | #line 429 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->PREFER_SERVER_CIPHERS = (yyvsp[0].i); | cfg->PREFER_SERVER_CIPHERS = (yyvsp[0].i); | |||
} | } | |||
#line 2088 "cfg_parser.c" /* yacc.c:1652 */ | #line 2089 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 130: | case 130: | |||
#line 432 "cfg_parser.y" /* yacc.c:1652 */ | #line 433 "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 2099 "cfg_parser.c" /* yacc.c:1652 */ | #line 2100 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 131: | case 131: | |||
#line 439 "cfg_parser.y" /* yacc.c:1652 */ | #line 440 "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 2110 "cfg_parser.c" /* yacc.c:1652 */ | #line 2111 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 132: | case 132: | |||
#line 447 "cfg_parser.y" /* yacc.c:1652 */ | #line 448 "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 2121 "cfg_parser.c" /* yacc.c:1652 */ | #line 2122 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 133: | case 133: | |||
#line 453 "cfg_parser.y" /* yacc.c:1652 */ | #line 454 "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 2131 "cfg_parser.c" /* yacc.c:1652 */ | #line 2132 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 134: | case 134: | |||
#line 458 "cfg_parser.y" /* yacc.c:1652 */ | #line 459 "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 2149 "cfg_parser.c" /* yacc.c:1652 */ | #line 2150 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 135: | case 135: | |||
#line 472 "cfg_parser.y" /* yacc.c:1652 */ | #line 473 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->SYSLOG = (yyvsp[0].i); } | { cfg->SYSLOG = (yyvsp[0].i); } | |||
#line 2155 "cfg_parser.c" /* yacc.c:1652 */ | #line 2156 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 136: | case 136: | |||
#line 473 "cfg_parser.y" /* yacc.c:1652 */ | #line 474 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->DAEMONIZE = (yyvsp[0].i); } | { cfg->DAEMONIZE = (yyvsp[0].i); } | |||
#line 2161 "cfg_parser.c" /* yacc.c:1652 */ | #line 2162 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 137: | case 137: | |||
#line 474 "cfg_parser.y" /* yacc.c:1652 */ | #line 475 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->SNI_NOMATCH_ABORT = (yyvsp[0].i); | cfg->SNI_NOMATCH_ABORT = (yyvsp[0].i); | |||
} | } | |||
#line 2169 "cfg_parser.c" /* yacc.c:1652 */ | #line 2170 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 138: | case 138: | |||
#line 478 "cfg_parser.y" /* yacc.c:1652 */ | #line 479 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) { | if ((yyvsp[0].s)) { | |||
free(cfg->CIPHERS_TLSv12); | ||||
cfg->CIPHERS_TLSv12 = strdup((yyvsp[0].s)); | cfg->CIPHERS_TLSv12 = strdup((yyvsp[0].s)); | |||
} | } | |||
} | } | |||
#line 2179 "cfg_parser.c" /* yacc.c:1652 */ | #line 2181 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 139: | case 139: | |||
#line 484 "cfg_parser.y" /* yacc.c:1652 */ | #line 486 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) { | if ((yyvsp[0].s)) { | |||
free(cfg->CIPHERSUITES_TLSv13); | ||||
cfg->CIPHERSUITES_TLSv13 = strdup((yyvsp[0].s)); | cfg->CIPHERSUITES_TLSv13 = strdup((yyvsp[0].s)); | |||
} | } | |||
} | } | |||
#line 2189 "cfg_parser.c" /* yacc.c:1652 */ | #line 2192 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 140: | case 140: | |||
#line 491 "cfg_parser.y" /* yacc.c:1652 */ | #line 494 "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 2200 "cfg_parser.c" /* yacc.c:1652 */ | #line 2203 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 141: | case 141: | |||
#line 498 "cfg_parser.y" /* yacc.c:1652 */ | #line 501 "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 2211 "cfg_parser.c" /* yacc.c:1652 */ | #line 2214 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 142: | case 142: | |||
#line 505 "cfg_parser.y" /* yacc.c:1652 */ | #line 508 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->WRITE_IP_OCTET = (yyvsp[0].i); } | { cfg->WRITE_IP_OCTET = (yyvsp[0].i); } | |||
#line 2217 "cfg_parser.c" /* yacc.c:1652 */ | #line 2220 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 143: | case 143: | |||
#line 507 "cfg_parser.y" /* yacc.c:1652 */ | #line 510 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->WRITE_PROXY_LINE_V2 = (yyvsp[0].i); } | { cfg->WRITE_PROXY_LINE_V2 = (yyvsp[0].i); } | |||
#line 2223 "cfg_parser.c" /* yacc.c:1652 */ | #line 2226 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 144: | case 144: | |||
#line 509 "cfg_parser.y" /* yacc.c:1652 */ | #line 512 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->WRITE_PROXY_LINE_V1 = (yyvsp[0].i); | cfg->WRITE_PROXY_LINE_V1 = (yyvsp[0].i); | |||
} | } | |||
#line 2231 "cfg_parser.c" /* yacc.c:1652 */ | #line 2234 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 145: | case 145: | |||
#line 513 "cfg_parser.y" /* yacc.c:1652 */ | #line 516 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->WRITE_PROXY_LINE_V2 = (yyvsp[0].i); | cfg->WRITE_PROXY_LINE_V2 = (yyvsp[0].i); | |||
} | } | |||
#line 2239 "cfg_parser.c" /* yacc.c:1652 */ | #line 2242 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 146: | case 146: | |||
#line 517 "cfg_parser.y" /* yacc.c:1652 */ | #line 520 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->PROXY_TLV = (yyvsp[0].i); } | { cfg->PROXY_TLV = (yyvsp[0].i); } | |||
#line 2245 "cfg_parser.c" /* yacc.c:1652 */ | #line 2248 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 147: | case 147: | |||
#line 519 "cfg_parser.y" /* yacc.c:1652 */ | #line 522 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->PROXY_AUTHORITY = (yyvsp[0].i); } | { cfg->PROXY_AUTHORITY = (yyvsp[0].i); } | |||
#line 2251 "cfg_parser.c" /* yacc.c:1652 */ | #line 2254 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 148: | case 148: | |||
#line 521 "cfg_parser.y" /* yacc.c:1652 */ | #line 524 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->PROXY_CLIENT_CERT = (yyvsp[0].i); } | { cfg->PROXY_CLIENT_CERT = (yyvsp[0].i); } | |||
#line 2257 "cfg_parser.c" /* yacc.c:1652 */ | #line 2260 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 149: | case 149: | |||
#line 523 "cfg_parser.y" /* yacc.c:1652 */ | #line 526 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->PROXY_PROXY_LINE = (yyvsp[0].i); } | { cfg->PROXY_PROXY_LINE = (yyvsp[0].i); } | |||
#line 2263 "cfg_parser.c" /* yacc.c:1652 */ | #line 2266 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 150: | case 150: | |||
#line 525 "cfg_parser.y" /* yacc.c:1652 */ | #line 528 "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 2274 "cfg_parser.c" /* yacc.c:1652 */ | #line 2277 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 151: | case 151: | |||
#line 532 "cfg_parser.y" /* yacc.c:1652 */ | #line 535 "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 2286 "cfg_parser.c" /* yacc.c:1652 */ | #line 2289 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 152: | case 152: | |||
#line 540 "cfg_parser.y" /* yacc.c:1652 */ | #line 543 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->SEND_BUFSIZE = (yyvsp[0].i); } | { cfg->SEND_BUFSIZE = (yyvsp[0].i); } | |||
#line 2292 "cfg_parser.c" /* yacc.c:1652 */ | #line 2295 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 153: | case 153: | |||
#line 542 "cfg_parser.y" /* yacc.c:1652 */ | #line 545 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->RECV_BUFSIZE = (yyvsp[0].i); } | { cfg->RECV_BUFSIZE = (yyvsp[0].i); } | |||
#line 2298 "cfg_parser.c" /* yacc.c:1652 */ | #line 2301 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 154: | case 154: | |||
#line 544 "cfg_parser.y" /* yacc.c:1652 */ | #line 547 "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 2310 "cfg_parser.c" /* yacc.c:1652 */ | #line 2313 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 155: | case 155: | |||
#line 552 "cfg_parser.y" /* yacc.c:1652 */ | #line 555 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ cfg->LOG_LEVEL = (yyvsp[0].i); } | { cfg->LOG_LEVEL = (yyvsp[0].i); } | |||
#line 2316 "cfg_parser.c" /* yacc.c:1652 */ | #line 2319 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 156: | case 156: | |||
#line 554 "cfg_parser.y" /* yacc.c:1652 */ | #line 557 "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 2330 "cfg_parser.c" /* yacc.c:1652 */ | #line 2333 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 157: | case 157: | |||
#line 564 "cfg_parser.y" /* yacc.c:1652 */ | #line 567 "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 2347 "cfg_parser.c" /* yacc.c:1652 */ | #line 2350 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 158: | case 158: | |||
#line 577 "cfg_parser.y" /* yacc.c:1652 */ | #line 580 "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 2364 "cfg_parser.c" /* yacc.c:1652 */ | #line 2367 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 159: | case 159: | |||
#line 590 "cfg_parser.y" /* yacc.c:1652 */ | #line 593 "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 2381 "cfg_parser.c" /* yacc.c:1652 */ | #line 2384 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 160: | case 160: | |||
#line 603 "cfg_parser.y" /* yacc.c:1652 */ | #line 606 "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 2395 "cfg_parser.c" /* yacc.c:1652 */ | #line 2398 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 161: | case 161: | |||
#line 613 "cfg_parser.y" /* yacc.c:1652 */ | #line 616 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
cfg->BACKEND_REFRESH_TIME = (yyvsp[0].i); | cfg->BACKEND_REFRESH_TIME = (yyvsp[0].i); | |||
} | } | |||
#line 2403 "cfg_parser.c" /* yacc.c:1652 */ | #line 2406 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 162: | case 162: | |||
#line 617 "cfg_parser.y" /* yacc.c:1652 */ | #line 620 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
if ((yyvsp[0].s)) { | if ((yyvsp[0].s)) { | |||
free(cfg->ECDH_CURVE); | ||||
cfg->ECDH_CURVE = strdup((yyvsp[0].s)); | cfg->ECDH_CURVE = strdup((yyvsp[0].s)); | |||
} | } | |||
} | } | |||
#line 2413 "cfg_parser.c" /* yacc.c:1652 */ | #line 2417 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 164: | case 164: | |||
#line 626 "cfg_parser.y" /* yacc.c:1652 */ | #line 630 "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 2424 "cfg_parser.c" /* yacc.c:1652 */ | #line 2428 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 165: | case 165: | |||
#line 632 "cfg_parser.y" /* yacc.c:1652 */ | #line 636 "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 2435 "cfg_parser.c" /* yacc.c:1652 */ | #line 2439 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 166: | case 166: | |||
#line 638 "cfg_parser.y" /* yacc.c:1652 */ | #line 642 "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 2448 "cfg_parser.c" /* yacc.c:1652 */ | #line 2452 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
case 167: | case 167: | |||
#line 647 "cfg_parser.y" /* yacc.c:1652 */ | #line 651 "cfg_parser.y" /* yacc.c:1652 */ | |||
{ | { | |||
free(cfg->CLIENT_VERIFY_CA); | ||||
cfg->CLIENT_VERIFY_CA = strdup((yyvsp[0].s)); | cfg->CLIENT_VERIFY_CA = strdup((yyvsp[0].s)); | |||
} | } | |||
#line 2456 "cfg_parser.c" /* yacc.c:1652 */ | #line 2461 "cfg_parser.c" /* yacc.c:1652 */ | |||
break; | break; | |||
#line 2460 "cfg_parser.c" /* yacc.c:1652 */ | #line 2465 "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 2649 | skipping to change at line 2654 | |||
#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 651 "cfg_parser.y" /* yacc.c:1918 */ | #line 656 "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. 151 change blocks. | ||||
154 lines changed or deleted | 159 lines changed or added |