configparser.y (268883) | configparser.y (276605) |
---|---|
1/* 2 * configparser.y -- yacc grammar for unbound configuration files 3 * 4 * Copyright (c) 2001-2006, NLnet Labs. All rights reserved. 5 * 6 * Copyright (c) 2007, NLnet Labs. All rights reserved. 7 * 8 * This software is open source. --- 30 unchanged lines hidden (view full) --- 39#include "config.h" 40 41#include <stdarg.h> 42#include <stdio.h> 43#include <string.h> 44#include <stdlib.h> 45#include <assert.h> 46 | 1/* 2 * configparser.y -- yacc grammar for unbound configuration files 3 * 4 * Copyright (c) 2001-2006, NLnet Labs. All rights reserved. 5 * 6 * Copyright (c) 2007, NLnet Labs. All rights reserved. 7 * 8 * This software is open source. --- 30 unchanged lines hidden (view full) --- 39#include "config.h" 40 41#include <stdarg.h> 42#include <stdio.h> 43#include <string.h> 44#include <stdlib.h> 45#include <assert.h> 46 |
47#include "util/configyyrename.h" |
|
47#include "util/config_file.h" 48#include "util/net_help.h" 49 50int ub_c_lex(void); 51void ub_c_error(const char *message); 52 53/* these need to be global, otherwise they cannot be used inside yacc */ 54extern struct config_parser_state* cfg_parser; --- 45 unchanged lines hidden (view full) --- 100%token VAR_VAL_SIG_SKEW_MAX VAR_CACHE_MIN_TTL VAR_VAL_LOG_LEVEL 101%token VAR_AUTO_TRUST_ANCHOR_FILE VAR_KEEP_MISSING VAR_ADD_HOLDDOWN 102%token VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE VAR_PREFETCH 103%token VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_SO_REUSEPORT VAR_HARDEN_BELOW_NXDOMAIN 104%token VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES VAR_TCP_UPSTREAM VAR_SSL_UPSTREAM 105%token VAR_SSL_SERVICE_KEY VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST 106%token VAR_STUB_FIRST VAR_MINIMAL_RESPONSES VAR_RRSET_ROUNDROBIN 107%token VAR_MAX_UDP_SIZE VAR_DELAY_CLOSE VAR_UNBLOCK_LAN_ZONES | 48#include "util/config_file.h" 49#include "util/net_help.h" 50 51int ub_c_lex(void); 52void ub_c_error(const char *message); 53 54/* these need to be global, otherwise they cannot be used inside yacc */ 55extern struct config_parser_state* cfg_parser; --- 45 unchanged lines hidden (view full) --- 101%token VAR_VAL_SIG_SKEW_MAX VAR_CACHE_MIN_TTL VAR_VAL_LOG_LEVEL 102%token VAR_AUTO_TRUST_ANCHOR_FILE VAR_KEEP_MISSING VAR_ADD_HOLDDOWN 103%token VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE VAR_PREFETCH 104%token VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_SO_REUSEPORT VAR_HARDEN_BELOW_NXDOMAIN 105%token VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES VAR_TCP_UPSTREAM VAR_SSL_UPSTREAM 106%token VAR_SSL_SERVICE_KEY VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST 107%token VAR_STUB_FIRST VAR_MINIMAL_RESPONSES VAR_RRSET_ROUNDROBIN 108%token VAR_MAX_UDP_SIZE VAR_DELAY_CLOSE VAR_UNBLOCK_LAN_ZONES |
109%token VAR_DNS64_PREFIX VAR_DNS64_SYNTHALL 110%token VAR_DNSTAP VAR_DNSTAP_ENABLE VAR_DNSTAP_SOCKET_PATH 111%token VAR_DNSTAP_SEND_IDENTITY VAR_DNSTAP_SEND_VERSION 112%token VAR_DNSTAP_IDENTITY VAR_DNSTAP_VERSION 113%token VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 114%token VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 115%token VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 116%token VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 117%token VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 118%token VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES |
|
108 109%% 110toplevelvars: /* empty */ | toplevelvars toplevelvar ; 111toplevelvar: serverstart contents_server | stubstart contents_stub | 112 forwardstart contents_forward | pythonstart contents_py | | 119 120%% 121toplevelvars: /* empty */ | toplevelvars toplevelvar ; 122toplevelvar: serverstart contents_server | stubstart contents_stub | 123 forwardstart contents_forward | pythonstart contents_py | |
113 rcstart contents_rc | 124 rcstart contents_rc | dtstart contents_dt |
114 ; 115 116/* server: declaration */ 117serverstart: VAR_SERVER 118 { 119 OUTYY(("\nP(server:)\n")); 120 } 121 ; --- 35 unchanged lines hidden (view full) --- 157 server_val_sig_skew_max | server_cache_min_ttl | server_val_log_level | 158 server_auto_trust_anchor_file | server_add_holddown | 159 server_del_holddown | server_keep_missing | server_so_rcvbuf | 160 server_edns_buffer_size | server_prefetch | server_prefetch_key | 161 server_so_sndbuf | server_harden_below_nxdomain | server_ignore_cd_flag | 162 server_log_queries | server_tcp_upstream | server_ssl_upstream | 163 server_ssl_service_key | server_ssl_service_pem | server_ssl_port | 164 server_minimal_responses | server_rrset_roundrobin | server_max_udp_size | | 125 ; 126 127/* server: declaration */ 128serverstart: VAR_SERVER 129 { 130 OUTYY(("\nP(server:)\n")); 131 } 132 ; --- 35 unchanged lines hidden (view full) --- 168 server_val_sig_skew_max | server_cache_min_ttl | server_val_log_level | 169 server_auto_trust_anchor_file | server_add_holddown | 170 server_del_holddown | server_keep_missing | server_so_rcvbuf | 171 server_edns_buffer_size | server_prefetch | server_prefetch_key | 172 server_so_sndbuf | server_harden_below_nxdomain | server_ignore_cd_flag | 173 server_log_queries | server_tcp_upstream | server_ssl_upstream | 174 server_ssl_service_key | server_ssl_service_pem | server_ssl_port | 175 server_minimal_responses | server_rrset_roundrobin | server_max_udp_size | |
165 server_so_reuseport | server_delay_close | server_unblock_lan_zones | 176 server_so_reuseport | server_delay_close | server_unblock_lan_zones | 177 server_dns64_prefix | server_dns64_synthall |
166 ; 167stubstart: VAR_STUB_ZONE 168 { 169 struct config_stub* s; 170 OUTYY(("\nP(stub_zone:)\n")); 171 s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); 172 if(s) { 173 s->next = cfg_parser->cfg->stubs; --- 978 unchanged lines hidden (view full) --- 1152 ; 1153server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG 1154 { 1155 OUTYY(("P(server_max_udp_size:%s)\n", $2)); 1156 cfg_parser->cfg->max_udp_size = atoi($2); 1157 free($2); 1158 } 1159 ; | 178 ; 179stubstart: VAR_STUB_ZONE 180 { 181 struct config_stub* s; 182 OUTYY(("\nP(stub_zone:)\n")); 183 s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); 184 if(s) { 185 s->next = cfg_parser->cfg->stubs; --- 978 unchanged lines hidden (view full) --- 1164 ; 1165server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG 1166 { 1167 OUTYY(("P(server_max_udp_size:%s)\n", $2)); 1168 cfg_parser->cfg->max_udp_size = atoi($2); 1169 free($2); 1170 } 1171 ; |
1172server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG 1173 { 1174 OUTYY(("P(dns64_prefix:%s)\n", $2)); 1175 free(cfg_parser->cfg->dns64_prefix); 1176 cfg_parser->cfg->dns64_prefix = $2; 1177 } 1178 ; 1179server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG 1180 { 1181 OUTYY(("P(server_dns64_synthall:%s)\n", $2)); 1182 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) 1183 yyerror("expected yes or no."); 1184 else cfg_parser->cfg->dns64_synthall = (strcmp($2, "yes")==0); 1185 free($2); 1186 } 1187 ; |
|
1160stub_name: VAR_NAME STRING_ARG 1161 { 1162 OUTYY(("P(name:%s)\n", $2)); 1163 if(cfg_parser->cfg->stubs->name) 1164 yyerror("stub name override, there must be one name " 1165 "for one stub-zone"); 1166 free(cfg_parser->cfg->stubs->name); 1167 cfg_parser->cfg->stubs->name = $2; --- 125 unchanged lines hidden (view full) --- 1293 ; 1294rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG 1295 { 1296 OUTYY(("P(rc_control_cert_file:%s)\n", $2)); 1297 free(cfg_parser->cfg->control_cert_file); 1298 cfg_parser->cfg->control_cert_file = $2; 1299 } 1300 ; | 1188stub_name: VAR_NAME STRING_ARG 1189 { 1190 OUTYY(("P(name:%s)\n", $2)); 1191 if(cfg_parser->cfg->stubs->name) 1192 yyerror("stub name override, there must be one name " 1193 "for one stub-zone"); 1194 free(cfg_parser->cfg->stubs->name); 1195 cfg_parser->cfg->stubs->name = $2; --- 125 unchanged lines hidden (view full) --- 1321 ; 1322rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG 1323 { 1324 OUTYY(("P(rc_control_cert_file:%s)\n", $2)); 1325 free(cfg_parser->cfg->control_cert_file); 1326 cfg_parser->cfg->control_cert_file = $2; 1327 } 1328 ; |
1329dtstart: VAR_DNSTAP 1330 { 1331 OUTYY(("\nP(dnstap:)\n")); 1332 } 1333 ; 1334contents_dt: contents_dt content_dt 1335 | ; 1336content_dt: dt_dnstap_enable | dt_dnstap_socket_path | 1337 dt_dnstap_send_identity | dt_dnstap_send_version | 1338 dt_dnstap_identity | dt_dnstap_version | 1339 dt_dnstap_log_resolver_query_messages | 1340 dt_dnstap_log_resolver_response_messages | 1341 dt_dnstap_log_client_query_messages | 1342 dt_dnstap_log_client_response_messages | 1343 dt_dnstap_log_forwarder_query_messages | 1344 dt_dnstap_log_forwarder_response_messages 1345 ; 1346dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG 1347 { 1348 OUTYY(("P(dt_dnstap_enable:%s)\n", $2)); 1349 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) 1350 yyerror("expected yes or no."); 1351 else cfg_parser->cfg->dnstap = (strcmp($2, "yes")==0); 1352 } 1353 ; 1354dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG 1355 { 1356 OUTYY(("P(dt_dnstap_socket_path:%s)\n", $2)); 1357 free(cfg_parser->cfg->dnstap_socket_path); 1358 cfg_parser->cfg->dnstap_socket_path = $2; 1359 } 1360 ; 1361dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG 1362 { 1363 OUTYY(("P(dt_dnstap_send_identity:%s)\n", $2)); 1364 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) 1365 yyerror("expected yes or no."); 1366 else cfg_parser->cfg->dnstap_send_identity = (strcmp($2, "yes")==0); 1367 } 1368 ; 1369dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG 1370 { 1371 OUTYY(("P(dt_dnstap_send_version:%s)\n", $2)); 1372 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) 1373 yyerror("expected yes or no."); 1374 else cfg_parser->cfg->dnstap_send_version = (strcmp($2, "yes")==0); 1375 } 1376 ; 1377dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG 1378 { 1379 OUTYY(("P(dt_dnstap_identity:%s)\n", $2)); 1380 free(cfg_parser->cfg->dnstap_identity); 1381 cfg_parser->cfg->dnstap_identity = $2; 1382 } 1383 ; 1384dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG 1385 { 1386 OUTYY(("P(dt_dnstap_version:%s)\n", $2)); 1387 free(cfg_parser->cfg->dnstap_version); 1388 cfg_parser->cfg->dnstap_version = $2; 1389 } 1390 ; 1391dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG 1392 { 1393 OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", $2)); 1394 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) 1395 yyerror("expected yes or no."); 1396 else cfg_parser->cfg->dnstap_log_resolver_query_messages = 1397 (strcmp($2, "yes")==0); 1398 } 1399 ; 1400dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG 1401 { 1402 OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", $2)); 1403 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) 1404 yyerror("expected yes or no."); 1405 else cfg_parser->cfg->dnstap_log_resolver_response_messages = 1406 (strcmp($2, "yes")==0); 1407 } 1408 ; 1409dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG 1410 { 1411 OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", $2)); 1412 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) 1413 yyerror("expected yes or no."); 1414 else cfg_parser->cfg->dnstap_log_client_query_messages = 1415 (strcmp($2, "yes")==0); 1416 } 1417 ; 1418dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG 1419 { 1420 OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", $2)); 1421 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) 1422 yyerror("expected yes or no."); 1423 else cfg_parser->cfg->dnstap_log_client_response_messages = 1424 (strcmp($2, "yes")==0); 1425 } 1426 ; 1427dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG 1428 { 1429 OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", $2)); 1430 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) 1431 yyerror("expected yes or no."); 1432 else cfg_parser->cfg->dnstap_log_forwarder_query_messages = 1433 (strcmp($2, "yes")==0); 1434 } 1435 ; 1436dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG 1437 { 1438 OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", $2)); 1439 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) 1440 yyerror("expected yes or no."); 1441 else cfg_parser->cfg->dnstap_log_forwarder_response_messages = 1442 (strcmp($2, "yes")==0); 1443 } 1444 ; |
|
1301pythonstart: VAR_PYTHON 1302 { 1303 OUTYY(("\nP(python:)\n")); 1304 } 1305 ; 1306contents_py: contents_py content_py 1307 | ; 1308content_py: py_script 1309 ; 1310py_script: VAR_PYTHON_SCRIPT STRING_ARG 1311 { 1312 OUTYY(("P(python-script:%s)\n", $2)); 1313 free(cfg_parser->cfg->python_script); 1314 cfg_parser->cfg->python_script = $2; 1315 } 1316%% 1317 1318/* parse helper routines could be here */ | 1445pythonstart: VAR_PYTHON 1446 { 1447 OUTYY(("\nP(python:)\n")); 1448 } 1449 ; 1450contents_py: contents_py content_py 1451 | ; 1452content_py: py_script 1453 ; 1454py_script: VAR_PYTHON_SCRIPT STRING_ARG 1455 { 1456 OUTYY(("P(python-script:%s)\n", $2)); 1457 free(cfg_parser->cfg->python_script); 1458 cfg_parser->cfg->python_script = $2; 1459 } 1460%% 1461 1462/* parse helper routines could be here */ |