]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[5061] Added contact_points (and accept too contact-points) and keyspace
authorFrancis Dupont <fdupont@isc.org>
Fri, 10 Feb 2017 19:10:20 +0000 (20:10 +0100)
committerFrancis Dupont <fdupont@isc.org>
Fri, 10 Feb 2017 19:10:20 +0000 (20:10 +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 85f141291033a9af8c1a3a0ccbf2d8799386052f..c229e6cce7fbca884010bcbd8981bf61299409bc 100644 (file)
@@ -370,6 +370,36 @@ ControlCharacterFill            [^"\\]|\\{JSONEscapeSequence}
     }
 }
 
+\"keyspace\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::LEASE_DATABASE:
+    case isc::dhcp::Parser4Context::HOSTS_DATABASE:
+        return isc::dhcp::Dhcp4Parser::make_KEYSPACE(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("keyspace", driver.loc_);
+    }
+}
+
+\"contact_points\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::LEASE_DATABASE:
+    case isc::dhcp::Parser4Context::HOSTS_DATABASE:
+        return isc::dhcp::Dhcp4Parser::make_CONTACT_POINTS(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("contact_points", driver.loc_);
+    }
+}
+
+\"contact-points\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::LEASE_DATABASE:
+    case isc::dhcp::Parser4Context::HOSTS_DATABASE:
+        return isc::dhcp::Dhcp4Parser::make_CONTACT_POINTS(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("contact-points", driver.loc_);
+    }
+}
+
 \"valid-lifetime\" {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
index 65d945d10e66795b42245a9f415986fde95e87e9..125fb97f0255d367b801af7d404291ee4af454c6 100644 (file)
@@ -77,6 +77,8 @@ using namespace std;
   LFC_INTERVAL "lfc-interval"
   READONLY "readonly"
   CONNECT_TIMEOUT "connect-timeout"
+  CONTACT_POINTS "contact_points"
+  KEYSPACE "keyspace"
 
   VALID_LIFETIME "valid-lifetime"
   RENEW_TIMER "renew-timer"
@@ -520,6 +522,8 @@ database_map_param: database_type
                   | lfc_interval
                   | readonly
                   | connect_timeout
+                  | contact_points
+                  | keyspace
                   | unknown_map_entry
 ;
 
@@ -593,6 +597,23 @@ connect_timeout: CONNECT_TIMEOUT COLON INTEGER {
     ctx.stack_.back()->set("connect-timeout", n);
 };
 
+contact_points: CONTACT_POINTS {
+    ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+    ElementPtr cp(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("contact_points", cp);
+    ctx.leave();
+};
+
+keyspace: KEYSPACE {
+    ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+    ElementPtr ks(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("keyspace", ks);
+    ctx.leave();
+};
+
+
 host_reservation_identifiers: HOST_RESERVATION_IDENTIFIERS {
     ElementPtr l(new ListElement(ctx.loc2pos(@1)));
     ctx.stack_.back()->set("host-reservation-identifiers", l);
index 1847136109be1a6259962f95d5a7702807f8e93f..81b1093ae486a66df2d180a68f4616b12cb4d8b0 100644 (file)
@@ -571,6 +571,36 @@ ControlCharacterFill            [^"\\]|\\{JSONEscapeSequence}
     }
 }
 
+\"keyspace\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser6Context::LEASE_DATABASE:
+    case isc::dhcp::Parser6Context::HOSTS_DATABASE:
+        return isc::dhcp::Dhcp6Parser::make_KEYSPACE(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp6Parser::make_STRING("keyspace", driver.loc_);
+    }
+}
+
+\"contact_points\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser6Context::LEASE_DATABASE:
+    case isc::dhcp::Parser6Context::HOSTS_DATABASE:
+        return isc::dhcp::Dhcp6Parser::make_CONTACT_POINTS(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp6Parser::make_STRING("contact_points", driver.loc_);
+    }
+}
+
+\"contact-points\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser6Context::LEASE_DATABASE:
+    case isc::dhcp::Parser6Context::HOSTS_DATABASE:
+        return isc::dhcp::Dhcp6Parser::make_CONTACT_POINTS(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp6Parser::make_STRING("contact-points", driver.loc_);
+    }
+}
+
 \"preferred-lifetime\" {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
index b897e480b9b3419a843a98b3d63607930d140ae8..5274b8a5b4952923504e48f7036fcc700eef6590 100644 (file)
@@ -68,6 +68,8 @@ using namespace std;
   LFC_INTERVAL "lfc-interval"
   READONLY "readonly"
   CONNECT_TIMEOUT "connect-timeout"
+  CONTACT_POINTS "contact_points"
+  KEYSPACE "keyspace"
 
   PREFERRED_LIFETIME "preferred-lifetime"
   VALID_LIFETIME "valid-lifetime"
@@ -505,6 +507,8 @@ database_map_param: database_type
                   | lfc_interval
                   | readonly
                   | connect_timeout
+                  | contact_points
+                  | keyspace
                   | unknown_map_entry
 ;
 
@@ -578,6 +582,23 @@ connect_timeout: CONNECT_TIMEOUT COLON INTEGER {
     ctx.stack_.back()->set("connect-timeout", n);
 };
 
+contact_points: CONTACT_POINTS {
+    ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+    ElementPtr cp(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("contact_points", cp);
+    ctx.leave();
+};
+
+keyspace: KEYSPACE {
+    ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+    ElementPtr ks(new StringElement($4, ctx.loc2pos(@4)));
+    ctx.stack_.back()->set("keyspace", ks);
+    ctx.leave();
+};
+
+
 mac_sources: MAC_SOURCES {
     ElementPtr l(new ListElement(ctx.loc2pos(@1)));
     ctx.stack_.back()->set("mac-sources", l);