From fbb1008eee8ff42b0ad4ad7ab6718392ca8b6645 Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Tue, 10 Jan 2017 15:07:03 +0100 Subject: [PATCH] [5096] [4096] Spit bison type rule, removed server-id --- src/bin/dhcp4/dhcp4_lexer.ll | 49 +---------------------- src/bin/dhcp4/dhcp4_parser.yy | 70 ++++++--------------------------- src/bin/dhcp4/parser_context.cc | 2 - src/bin/dhcp4/parser_context.h | 5 +-- 4 files changed, 13 insertions(+), 113 deletions(-) diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll index 0063c5ddb5..003fb0de86 100644 --- a/src/bin/dhcp4/dhcp4_lexer.ll +++ b/src/bin/dhcp4/dhcp4_lexer.ll @@ -1,4 +1,4 @@ -/* Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC") +/* Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC") This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this @@ -237,7 +237,6 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} case isc::dhcp::Parser4Context::LEASE_DATABASE: case isc::dhcp::Parser4Context::HOSTS_DATABASE: case isc::dhcp::Parser4Context::OPTION_DEF: - case isc::dhcp::Parser4Context::SERVER_ID: return isc::dhcp::Dhcp4Parser::make_TYPE(driver.loc_); default: return isc::dhcp::Dhcp4Parser::make_STRING("type", driver.loc_); @@ -278,7 +277,6 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: case isc::dhcp::Parser4Context::HOSTS_DATABASE: - case isc::dhcp::Parser4Context::SERVER_ID: return isc::dhcp::Dhcp4Parser::make_PERSIST(driver.loc_); default: return isc::dhcp::Dhcp4Parser::make_STRING("persist", driver.loc_); @@ -716,51 +714,6 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} } } -\"server-id\" { - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::DHCP4: - return isc::dhcp::Dhcp4Parser::make_SERVER_ID(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("server-id", driver.loc_); - } -} - -\"identifier\" { - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::SERVER_ID: - return isc::dhcp::Dhcp4Parser::make_IDENTIFIER(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("identifier", driver.loc_); - } -} - -\"htype\" { - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::SERVER_ID: - return isc::dhcp::Dhcp4Parser::make_HTYPE(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("htype", driver.loc_); - } -} - -\"time\" { - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::SERVER_ID: - return isc::dhcp::Dhcp4Parser::make_TIME(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("time", driver.loc_); - } -} - -\"enterprise-id\" { - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::SERVER_ID: - return isc::dhcp::Dhcp4Parser::make_ENTERPRISE_ID(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("enterprise-id", driver.loc_); - } -} - \"expired-leases-processing\" { 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 579adb158f..3c1a4d9179 100644 --- a/src/bin/dhcp4/dhcp4_parser.yy +++ b/src/bin/dhcp4/dhcp4_parser.yy @@ -1,4 +1,4 @@ -/* Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC") +/* Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC") This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this @@ -121,12 +121,6 @@ using namespace std; EXPIRED_LEASES_PROCESSING "expired-leases-processing" - SERVER_ID "server-id" - IDENTIFIER "identifier" - HTYPE "htype" - TIME "time" - ENTERPRISE_ID "enterprise-id" - DHCP4O6_PORT "dhcp4o6-port" CONTROL_SOCKET "control-socket" @@ -366,7 +360,6 @@ global_param: valid_lifetime | option_data_list | hooks_libraries | expired_leases_processing - | server_id | dhcp4o6_port | control_socket | dhcp_ddns @@ -475,7 +468,7 @@ database_map_params: database_map_param | database_map_params COMMA database_map_param ; -database_map_param: type +database_map_param: database_type | user | password | host @@ -486,7 +479,7 @@ database_map_param: type | unknown_map_entry ; -type: TYPE { +database_type: TYPE { ctx.enter(ctx.NO_KEYWORD); } COLON STRING { ElementPtr prf(new StringElement($4, ctx.loc2pos(@4))); @@ -897,7 +890,13 @@ code: CODE COLON INTEGER { option_def_code: code; -option_def_type: type; +option_def_type: TYPE { + ctx.enter(ctx.NO_KEYWORD); +} COLON STRING { + ElementPtr prf(new StringElement($4, ctx.loc2pos(@4))); + ctx.stack_.back()->set("type", prf); + ctx.leave(); +}; option_def_record_types: RECORD_TYPES { ctx.enter(ctx.NO_KEYWORD); @@ -1293,54 +1292,7 @@ client_class_test: TEST { // --- end of client classes --------------------------------- -// --- server-id --------------------------------------------- -server_id: SERVER_ID { - ElementPtr m(new MapElement(ctx.loc2pos(@1))); - ctx.stack_.back()->set("server-id", m); - ctx.stack_.push_back(m); - ctx.enter(ctx.SERVER_ID); -} COLON LCURLY_BRACKET server_id_params RCURLY_BRACKET { - ctx.stack_.pop_back(); - ctx.leave(); -}; - -server_id_params: server_id_param - | server_id_params COMMA server_id_param - ; - -server_id_param: type - | identifier - | time - | htype - | enterprise_id - | persist - | unknown_map_entry - ; - -htype: HTYPE COLON INTEGER { - ElementPtr htype(new IntElement($3, ctx.loc2pos(@3))); - ctx.stack_.back()->set("htype", htype); -}; - -identifier: IDENTIFIER { - ctx.enter(ctx.NO_KEYWORD); -} COLON STRING { - ElementPtr id(new StringElement($4, ctx.loc2pos(@4))); - ctx.stack_.back()->set("identifier", id); - ctx.leave(); -}; - -time: TIME COLON INTEGER { - ElementPtr time(new IntElement($3, ctx.loc2pos(@3))); - ctx.stack_.back()->set("time", time); -}; - -enterprise_id: ENTERPRISE_ID COLON INTEGER { - ElementPtr time(new IntElement($3, ctx.loc2pos(@3))); - ctx.stack_.back()->set("enterprise-id", time); -}; - -// --- end of server-id -------------------------------------- +// was server-id but in is DHCPv6-only dhcp4o6_port: DHCP4O6_PORT COLON INTEGER { ElementPtr time(new IntElement($3, ctx.loc2pos(@3))); diff --git a/src/bin/dhcp4/parser_context.cc b/src/bin/dhcp4/parser_context.cc index ef168e4fbc..909e6e5192 100644 --- a/src/bin/dhcp4/parser_context.cc +++ b/src/bin/dhcp4/parser_context.cc @@ -143,8 +143,6 @@ Parser4Context::contextName() return ("option-data"); case CLIENT_CLASSES: return ("client-classes"); - case SERVER_ID: - return ("server-id"); case CONTROL_SOCKET: return ("control-socket"); case POOLS: diff --git a/src/bin/dhcp4/parser_context.h b/src/bin/dhcp4/parser_context.h index 5f37dda521..2a3ae9ec27 100644 --- a/src/bin/dhcp4/parser_context.h +++ b/src/bin/dhcp4/parser_context.h @@ -1,4 +1,4 @@ -// Copyright (C) 2015-2016 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2015-2017 Internet Systems Consortium, Inc. ("ISC") // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this @@ -219,9 +219,6 @@ public: /// Used while parsing Dhcp4/client-classes structures. CLIENT_CLASSES, - /// Used while parsing Dhcp4/server-id structures. - SERVER_ID, - /// Used while parsing Dhcp4/control-socket structures. CONTROL_SOCKET, -- 2.47.3