Deleted Added
full compact
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 */