From: Francis Dupont Date: Fri, 10 Feb 2017 19:10:20 +0000 (+0100) Subject: [5061] Added contact_points (and accept too contact-points) and keyspace X-Git-Tag: trac5137_base~6^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8baed816c19851feaa25753321b8246c7c801f0b;p=thirdparty%2Fkea.git [5061] Added contact_points (and accept too contact-points) and keyspace --- diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll index 85f1412910..c229e6cce7 100644 --- a/src/bin/dhcp4/dhcp4_lexer.ll +++ b/src/bin/dhcp4/dhcp4_lexer.ll @@ -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: diff --git a/src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy index 65d945d10e..125fb97f02 100644 --- a/src/bin/dhcp4/dhcp4_parser.yy +++ b/src/bin/dhcp4/dhcp4_parser.yy @@ -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); diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index 1847136109..81b1093ae4 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -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: diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index b897e480b9..5274b8a5b4 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -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);