]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1716] Add new configuration options
authorSlawek Figiel <slawek@isc.org>
Tue, 22 Mar 2022 12:13:32 +0000 (13:13 +0100)
committerRazvan Becheriu <razvan@isc.org>
Mon, 4 Apr 2022 14:45:54 +0000 (17:45 +0300)
src/bin/dhcp4/dhcp4_lexer.ll
src/bin/dhcp4/dhcp4_parser.yy

index c4ca38f734319c37758f395619cf862af6d71953..ee193bb87238422a1500f85e991b8176acdc5ae9 100644 (file)
@@ -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:
index 0db80ff0db1d8a8be849e8ce564d4a8f3888bf3c..6e5f5519d69f4cc74d3e774e910c3920b15b7cc1 100644 (file)
@@ -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));