From: Slawek Figiel Date: Tue, 22 Mar 2022 12:13:32 +0000 (+0100) Subject: [#1716] Add new configuration options X-Git-Tag: Kea-2.1.5~99 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=628aaa8eeb8c24fdbcf76aa4ceb99964484e39ac;p=thirdparty%2Fkea.git [#1716] Add new configuration options --- diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll index c4ca38f734..ee193bb872 100644 --- a/src/bin/dhcp4/dhcp4_lexer.ll +++ b/src/bin/dhcp4/dhcp4_lexer.ll @@ -295,6 +295,33 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] } } +\"service-sockets-require-all\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::INTERFACES_CONFIG: + return isc::dhcp::Dhcp4Parser::make_SERVICE_SOCKETS_REQUIRE_ALL(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-require-all", driver.loc_); + } +} + +\"service-sockets-retry-wait-time\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::INTERFACES_CONFIG: + return isc::dhcp::Dhcp4Parser::make_SERVICE_SOCKETS_RETRY_WAIT_TIME(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-retry-wait-time", driver.loc_); + } +} + +\"service-sockets-max-retries\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::INTERFACES_CONFIG: + return isc::dhcp::Dhcp4Parser::make_SERVICE_SOCKETS_MAX_RETRIES(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-max-retries", driver.loc_); + } +} + \"lease-database\" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: diff --git a/src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy index 0db80ff0db..6e5f5519d6 100644 --- a/src/bin/dhcp4/dhcp4_parser.yy +++ b/src/bin/dhcp4/dhcp4_parser.yy @@ -64,6 +64,9 @@ using namespace std; SAME_AS_INBOUND "same-as-inbound" USE_ROUTING "use-routing" RE_DETECT "re-detect" + SERVICE_SOCKETS_REQUIRE_ALL "service-sockets-require-all" + SERVICE_SOCKETS_RETRY_WAIT_TIME "service-sockets-retry-wait-time" + SERVICE_SOCKETS_MAX_RETRIES "service-sockets-max-retries" SANITY_CHECKS "sanity-checks" LEASE_CHECKS "lease-checks" @@ -793,6 +796,9 @@ interfaces_config_param: interfaces_list | dhcp_socket_type | outbound_interface | re_detect + | service_sockets_require_all + | service_sockets_retry_wait_time + | service_sockets_max_retries | user_context | comment | unknown_map_entry @@ -850,6 +856,23 @@ re_detect: RE_DETECT COLON BOOLEAN { ctx.stack_.back()->set("re-detect", b); }; +service_sockets_require_all: SERVICE_SOCKETS_REQUIRE_ALL COLON BOOLEAN { + ctx.unique("service-sockets-require-all", ctx.loc2pos(@1)); + ElementPtr b(new BoolElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("service-sockets-require-all", b); +}; + +service_sockets_retry_wait_time: SERVICE_SOCKETS_RETRY_WAIT_TIME COLON INTEGER { + ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(@1)); + ElementPtr n(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("service-sockets-retry-wait-time", n); +}; + +service_sockets_max_retries: SERVICE_SOCKETS_MAX_RETRIES COLON INTEGER { + ctx.unique("service-sockets-max-retries", ctx.loc2pos(@1)); + ElementPtr n(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("service-sockets-max-retries", n); +}; lease_database: LEASE_DATABASE { ctx.unique("lease-database", ctx.loc2pos(@1));