}
}
-\"memfile\" {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp4Parser::make_MEMFILE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("memfile", driver.loc_);
- }
-}
-
-\"mysql\" {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp4Parser::make_MYSQL(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("mysql", driver.loc_);
- }
-}
-
-\"postgresql\" {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp4Parser::make_POSTGRESQL(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("postgresql", driver.loc_);
- }
-}
-
\"user\" {
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::LEASE_DATABASE:
HOSTS_DATABASE "hosts-database"
HOSTS_DATABASES "hosts-databases"
TYPE "type"
- MEMFILE "memfile"
- MYSQL "mysql"
- POSTGRESQL "postgresql"
USER "user"
PASSWORD "password"
HOST "host"
%type <ElementPtr> map_value
%type <ElementPtr> socket_type
%type <ElementPtr> outbound_interface_value
-%type <ElementPtr> db_type
%type <ElementPtr> on_fail_mode
%type <ElementPtr> ncr_protocol_value
%type <ElementPtr> ddns_replace_client_name_value
database_type: TYPE {
ctx.unique("type", ctx.loc2pos(@1));
- ctx.enter(ctx.DATABASE_TYPE);
-} COLON db_type {
- ctx.stack_.back()->set("type", $4);
+ ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+ ElementPtr db_type(new StringElement($4, ctx.loc2pos(@4)));
+ ctx.stack_.back()->set("type", db_type);
ctx.leave();
};
-db_type: MEMFILE { $$ = ElementPtr(new StringElement("memfile", ctx.loc2pos(@1))); }
- | MYSQL { $$ = ElementPtr(new StringElement("mysql", ctx.loc2pos(@1))); }
- | POSTGRESQL { $$ = ElementPtr(new StringElement("postgresql", ctx.loc2pos(@1))); }
- ;
-
user: USER {
ctx.unique("user", ctx.loc2pos(@1));
ctx.enter(ctx.NO_KEYWORD);
return ("lease-database");
case HOSTS_DATABASE:
return ("hosts-database");
- case DATABASE_TYPE:
- return ("database-type");
case DATABASE_ON_FAIL:
return ("database-on-fail");
case HOST_RESERVATION_IDENTIFIERS:
/// Used while parsing Dhcp4/hosts-database[s] structures.
HOSTS_DATABASE,
- /// Used while parsing Dhcp4/*-database/type.
- DATABASE_TYPE,
-
/// Used while parsing Dhcp4/*-database/on-fail.
DATABASE_ON_FAIL,
}
}
-\"memfile\" {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp6Parser::make_MEMFILE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("memfile", driver.loc_);
- }
-}
-
-\"mysql\" {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp6Parser::make_MYSQL(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("mysql", driver.loc_);
- }
-}
-
-\"postgresql\" {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp6Parser::make_POSTGRESQL(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("postgresql", driver.loc_);
- }
-}
-
\"user\" {
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
HOSTS_DATABASE "hosts-database"
HOSTS_DATABASES "hosts-databases"
TYPE "type"
- MEMFILE "memfile"
- MYSQL "mysql"
- POSTGRESQL "postgresql"
USER "user"
PASSWORD "password"
HOST "host"
%type <ElementPtr> value
%type <ElementPtr> map_value
-%type <ElementPtr> db_type
%type <ElementPtr> on_fail_mode
%type <ElementPtr> duid_type
%type <ElementPtr> ncr_protocol_value
database_type: TYPE {
ctx.unique("type", ctx.loc2pos(@1));
- ctx.enter(ctx.DATABASE_TYPE);
-} COLON db_type {
- ctx.stack_.back()->set("type", $4);
+ ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+ ElementPtr db_type(new StringElement($4, ctx.loc2pos(@4)));
+ ctx.stack_.back()->set("type", db_type);
ctx.leave();
};
-db_type: MEMFILE { $$ = ElementPtr(new StringElement("memfile", ctx.loc2pos(@1))); }
- | MYSQL { $$ = ElementPtr(new StringElement("mysql", ctx.loc2pos(@1))); }
- | POSTGRESQL { $$ = ElementPtr(new StringElement("postgresql", ctx.loc2pos(@1))); }
- ;
-
user: USER {
ctx.unique("user", ctx.loc2pos(@1));
ctx.enter(ctx.NO_KEYWORD);
return ("lease-database");
case HOSTS_DATABASE:
return ("hosts-database");
- case DATABASE_TYPE:
- return ("database-type");
case DATABASE_ON_FAIL:
return ("database-on-fail");
case MAC_SOURCES:
/// Used while parsing Dhcp6/hosts-database[s] structures.
HOSTS_DATABASE,
- /// Used while parsing Dhcp6/*-database/type.
- DATABASE_TYPE,
-
/// Used while parsing Dhcp6/*-database/on-fail.
DATABASE_ON_FAIL,