]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#34] Checkpoint: updated syntax
authorFrancis Dupont <fdupont@isc.org>
Mon, 29 Nov 2021 13:35:33 +0000 (14:35 +0100)
committerFrancis Dupont <fdupont@isc.org>
Thu, 6 Jan 2022 12:12:39 +0000 (13:12 +0100)
src/bin/dhcp4/dhcp4_lexer.ll
src/bin/dhcp4/dhcp4_parser.yy
src/bin/dhcp6/dhcp6_lexer.ll
src/bin/dhcp6/dhcp6_parser.yy

index 746f493472ef75094cd98ff84b79807bcd41b87c..2eab7c48a998aa436fcf725b660794a46aac3ebd 100644 (file)
@@ -629,6 +629,50 @@ ControlCharacterFill            [^"\\]|\\["\\/bfnrtu]
     }
 }
 
+\"trust-anchor\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::LEASE_DATABASE:
+    case isc::dhcp::Parser4Context::HOSTS_DATABASE:
+    case isc::dhcp::Parser4Context::CONFIG_DATABASE:
+        return isc::dhcp::Dhcp4Parser::make_TRUST_ANCHOR(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("trust-anchor", driver.loc_);
+    }
+}
+
+\"cert-file\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::LEASE_DATABASE:
+    case isc::dhcp::Parser4Context::HOSTS_DATABASE:
+    case isc::dhcp::Parser4Context::CONFIG_DATABASE:
+        return isc::dhcp::Dhcp4Parser::make_CERT_FILE(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("cert-file", driver.loc_);
+    }
+}
+
+\"key-file\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::LEASE_DATABASE:
+    case isc::dhcp::Parser4Context::HOSTS_DATABASE:
+    case isc::dhcp::Parser4Context::CONFIG_DATABASE:
+        return isc::dhcp::Dhcp4Parser::make_KEY_FILE(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("key-file", driver.loc_);
+    }
+}
+
+\"cipher-list\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::LEASE_DATABASE:
+    case isc::dhcp::Parser4Context::HOSTS_DATABASE:
+    case isc::dhcp::Parser4Context::CONFIG_DATABASE:
+        return isc::dhcp::Dhcp4Parser::make_CIPHER_LIST(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("cipher-list", driver.loc_);
+    }
+}
+
 \"valid-lifetime\" {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
index 8e6082f4cbeca36f9639ab3984cd492d351bc3c9..35f96e6a15787c66d43e13de31be252cb39b3a66 100644 (file)
@@ -105,6 +105,10 @@ using namespace std;
   TCP_KEEPALIVE "tcp-keepalive"
   TCP_NODELAY "tcp-nodelay"
   MAX_ROW_ERRORS "max-row-errors"
+  TRUST_ANCHOR "trust-anchor"
+  CERT_FILE "cert-file"
+  KEY_FILE "key-file"
+  CIPHER_LIST "cipher-list"
 
   VALID_LIFETIME "valid-lifetime"
   MIN_VALID_LIFETIME "min-valid-lifetime"
@@ -964,6 +968,10 @@ database_map_param: database_type
                   | consistency
                   | serial_consistency
                   | max_row_errors
+                  | trust_anchor
+                  | cert_file
+                  | key_file
+                  | cipher_list
                   | unknown_map_entry
                   ;
 
@@ -1132,6 +1140,41 @@ max_row_errors: MAX_ROW_ERRORS COLON INTEGER {
     ctx.stack_.back()->set("max-row-errors", n);
 };
 
+trust_anchor: TRUST_ANCHOR {
+    ctx.unique("trust-anchor", ctx.loc2pos(@1));
+    ctx.enter(ctx.NO_KEYWORDS);
+} COLON STRING {
+    ElementPtr ca(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("trust-anchor", ca);
+    ctx.leave();
+};
+
+cert_file: CERT_FILE {
+    ctx.unique("cert-file", ctx.loc2pos(@1));
+    ctx.enter(ctx.NO_KEYWORDS);
+} COLON STRING {
+    ElementPtr cert(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("cert-file", cert);
+    ctx.leave();
+};
+
+key_file: KEY_FILE {
+    ctx.unique("key-file", ctx.loc2pos(@1));
+    ctx.enter(ctx.NO_KEYWORDS);
+} COLON STRING {
+    ElementPtr key(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("key-file", key);
+    ctx.leave();
+};
+
+cipher_list: CIPHER_LIST {
+    ctx.unique("cipher-list", ctx.loc2pos(@1));
+    ctx.enter(ctx.NO_KEYWORDS);
+} COLON STRING {
+    ElementPtr cl(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("cipher-list", cl);
+    ctx.leave();
+};
 
 host_reservation_identifiers: HOST_RESERVATION_IDENTIFIERS {
     ctx.unique("host-reservation-identifiers", ctx.loc2pos(@1));
index c1f9ef23565aa412b64725f4a177c5553fee8ba0..d5863dc39456e01d09554ce3a2d0cfaa89e0cb48 100644 (file)
@@ -827,6 +827,50 @@ ControlCharacterFill            [^"\\]|\\["\\/bfnrtu]
     }
 }
 
+\"trust-anchor\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::LEASE_DATABASE:
+    case isc::dhcp::Parser4Context::HOSTS_DATABASE:
+    case isc::dhcp::Parser4Context::CONFIG_DATABASE:
+        return isc::dhcp::Dhcp4Parser::make_TRUST_ANCHOR(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("trust-anchor", driver.loc_);
+    }
+}
+
+\"cert-file\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser6Context::LEASE_DATABASE:
+    case isc::dhcp::Parser6Context::HOSTS_DATABASE:
+    case isc::dhcp::Parser6Context::CONFIG_DATABASE:
+        return isc::dhcp::Dhcp6Parser::make_CERT_FILE(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp6Parser::make_STRING("cert-file", driver.loc_);
+    }
+}
+
+\"key-file\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser6Context::LEASE_DATABASE:
+    case isc::dhcp::Parser6Context::HOSTS_DATABASE:
+    case isc::dhcp::Parser6Context::CONFIG_DATABASE:
+        return isc::dhcp::Dhcp6Parser::make_KEY_FILE(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp6Parser::make_STRING("key-file", driver.loc_);
+    }
+}
+
+\"cipher-list\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser6Context::LEASE_DATABASE:
+    case isc::dhcp::Parser6Context::HOSTS_DATABASE:
+    case isc::dhcp::Parser6Context::CONFIG_DATABASE:
+        return isc::dhcp::Dhcp6Parser::make_CIPHER_LIST(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp6Parser::make_STRING("cipher-list", driver.loc_);
+    }
+}
+
 \"preferred-lifetime\" {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
index 77a7770ad785531eec4dd0928d62364fe49b1015..6bcd5d78521c9a35952023145bcd8b3659c18db5 100644 (file)
@@ -90,6 +90,10 @@ using namespace std;
   TCP_KEEPALIVE "tcp-keepalive"
   TCP_NODELAY "tcp-nodelay"
   MAX_ROW_ERRORS "max-row-errors"
+  TRUST_ANCHOR "trust-anchor"
+  CERT_FILE "cert-file"
+  KEY_FILE "key-file"
+  CIPHER_LIST "cipher-list"
 
   PREFERRED_LIFETIME "preferred-lifetime"
   MIN_PREFERRED_LIFETIME "min-preferred-lifetime"
@@ -914,6 +918,10 @@ database_map_param: database_type
                   | consistency
                   | serial_consistency
                   | max_row_errors
+                  | trust_anchor
+                  | cert_file
+                  | key_file
+                  | cipher_list
                   | unknown_map_entry
                   ;
 
@@ -1082,6 +1090,42 @@ serial_consistency: SERIAL_CONSISTENCY {
     ctx.leave();
 };
 
+trust_anchor: TRUST_ANCHOR {
+    ctx.unique("trust-anchor", ctx.loc2pos(@1));
+    ctx.enter(ctx.NO_KEYWORDS);
+} COLON STRING {
+    ElementPtr ca(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("trust-anchor", ca);
+    ctx.leave();
+};
+
+cert_file: CERT_FILE {
+    ctx.unique("cert-file", ctx.loc2pos(@1));
+    ctx.enter(ctx.NO_KEYWORDS);
+} COLON STRING {
+    ElementPtr cert(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("cert-file", cert);
+    ctx.leave();
+};
+
+key_file: KEY_FILE {
+    ctx.unique("key-file", ctx.loc2pos(@1));
+    ctx.enter(ctx.NO_KEYWORDS);
+} COLON STRING {
+    ElementPtr key(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("key-file", key);
+    ctx.leave();
+};
+
+cipher_list: CIPHER_LIST {
+    ctx.unique("cipher-list", ctx.loc2pos(@1));
+    ctx.enter(ctx.NO_KEYWORDS);
+} COLON STRING {
+    ElementPtr cl(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("cipher-list", cl);
+    ctx.leave();
+};
+
 sanity_checks: SANITY_CHECKS {
     ctx.unique("sanity-checks", ctx.loc2pos(@1));
     ElementPtr m(new MapElement(ctx.loc2pos(@1)));