From: Francis Dupont Date: Fri, 22 Feb 2019 13:25:01 +0000 (+0100) Subject: [94-cb-implement-mysqlconfigbackenddhcpv6-prepare] Address last comment X-Git-Tag: 397-cb-implement-mysqlconfigbackenddhcpv6_base~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=42d93e545f2706fb9b068d0e2e53567e2a0381b1;p=thirdparty%2Fkea.git [94-cb-implement-mysqlconfigbackenddhcpv6-prepare] Address last comment --- diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc index 2278f98a2b..7d9db8891a 100644 --- a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc +++ b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc @@ -1426,10 +1426,9 @@ public: MySqlTransaction transaction(conn_); OptionDescriptorPtr existing_option = - getOption(GET_OPTION4_POOL_ID_CODE_SPACE, Option::V4, - server_selector, pool_id, - option->option_->getType(), - option->space_name_); + getOption(GET_OPTION4_POOL_ID_CODE_SPACE, + server_selector, Lease::TYPE_V4, pool_id, + option->option_->getType(), option->space_name_); // Create scoped audit revision. As long as this instance exists // no new audit revisions are created in any subsequent calls. diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_impl.cc b/src/hooks/dhcp/mysql_cb/mysql_cb_impl.cc index a66ae53cea..d06611f90c 100644 --- a/src/hooks/dhcp/mysql_cb/mysql_cb_impl.cc +++ b/src/hooks/dhcp/mysql_cb/mysql_cb_impl.cc @@ -462,8 +462,8 @@ MySqlConfigBackendImpl::getOption(const int index, OptionDescriptorPtr MySqlConfigBackendImpl::getOption(const int index, - const Option::Universe& universe, const ServerSelector& server_selector, + const Lease::Type pool_type, const uint64_t pool_id, const uint16_t code, const std::string& space) { @@ -473,16 +473,25 @@ MySqlConfigBackendImpl::getOption(const int index, " (unassigned) is unsupported at the moment"); } - auto tag = getServerTag(server_selector, "fetching [pd] pool level option"); + std::string msg = "fetching "; + if (pool_type == Lease::TYPE_PD) { + msg += "prefix delegation"; + } else { + msg += "address"; + } + msg += " pool level option"; + auto tag = getServerTag(server_selector, msg); + Option::Universe universe = Option::V4; OptionContainer options; MySqlBindingCollection in_bindings; in_bindings.push_back(MySqlBinding::createString(tag)); in_bindings.push_back(MySqlBinding::createInteger(pool_id)); - if (universe == Option::V4) { + if (pool_type == Lease::TYPE_V4) { in_bindings.push_back(MySqlBinding::createInteger(static_cast(code))); } else { in_bindings.push_back(MySqlBinding::createInteger(code)); + universe =Option::V6; } in_bindings.push_back(MySqlBinding::createString(space)); getOptions(index, in_bindings, universe, options); diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_impl.h b/src/hooks/dhcp/mysql_cb/mysql_cb_impl.h index af76295017..a3ca2f75da 100644 --- a/src/hooks/dhcp/mysql_cb/mysql_cb_impl.h +++ b/src/hooks/dhcp/mysql_cb/mysql_cb_impl.h @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -426,8 +427,8 @@ public: /// for a given address or prefix delegation (v6) pool id. /// /// @param index Index of the query to be used. - /// @param universe Option universe, i.e. V4 or V6. /// @param server_selector Server selector. + /// @param pool_type Pool type (Lease::TYPE_V4, TYPE_NA or TYPE_PD). /// @param pool_id Pool identifier in the database. /// @param code Option code. /// @param space Option space name. @@ -435,8 +436,8 @@ public: /// @return Pointer to the returned option descriptor or NULL if such /// option doesn't exist. OptionDescriptorPtr getOption(const int index, - const Option::Universe& universe, const db::ServerSelector& server_selector, + const dhcp::Lease::Type pool_type, const uint64_t pool_id, const uint16_t code, const std::string& space);