From: Marcin Siodelski Date: Thu, 4 Apr 2019 09:57:13 +0000 (+0200) Subject: [#103,!289] Do not throw when there are no shared networks to delete. X-Git-Tag: Kea-1.6.0-beta~277 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=15ee08cc313adc02f6ce3a2b264a3b0a3bf5bd3e;p=thirdparty%2Fkea.git [#103,!289] Do not throw when there are no shared networks to delete. --- diff --git a/src/lib/dhcpsrv/cfg_shared_networks.h b/src/lib/dhcpsrv/cfg_shared_networks.h index 21e4db2dd1..7d7bb99306 100644 --- a/src/lib/dhcpsrv/cfg_shared_networks.h +++ b/src/lib/dhcpsrv/cfg_shared_networks.h @@ -13,7 +13,6 @@ #include #include #include -#include #include namespace isc { @@ -81,18 +80,9 @@ public: /// @param id Identifier of the shared networks to be deleted. /// /// @return Number of deleted shared networks. - /// @throw isc::BadValue if the networks do not exist. uint64_t del(const uint64_t id) { auto& index = networks_.template get(); auto sn_range = index.equal_range(id); - uint64_t num = std::distance(sn_range.first, sn_range.second); - - // No such shared networm found. Return an error. - if (num == 0) { - isc_throw(BadValue, "unable to delete non-existing networks " - "with id of '" << id << "' from shared networks " - "configuration"); - } // For each shared network found, dereference the subnets belonging // to it. @@ -101,9 +91,7 @@ public: } // Remove the shared networks. - index.erase(sn_range.first, sn_range.second); - - return (num); + return (static_cast(index.erase(id))); } /// @brief Retrieves shared network by name. diff --git a/src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc b/src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc index ca6ce63ba2..1332fe2199 100644 --- a/src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc +++ b/src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc @@ -167,8 +167,7 @@ TEST(CfgSharedNetworks4Test, deleteNetworksById) { EXPECT_FALSE(returned_network); EXPECT_FALSE(cfg.getByName("fly")); - // A second attempt to delete should result in an error. - EXPECT_THROW(cfg.del(network1->getId()), BadValue); + EXPECT_EQ(0, cfg.del(network1->getId())); } // This test verifies that shared networks must have unique names. diff --git a/src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc b/src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc index ee631ea231..c561c93f02 100644 --- a/src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc +++ b/src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc @@ -153,8 +153,7 @@ TEST(CfgSharedNetworks6Test, deleteNetworksById) { EXPECT_FALSE(returned_network); EXPECT_FALSE(cfg.getByName("fly")); - // A second attempt to delete should result in an error. - EXPECT_THROW(cfg.del(network1->getId()), BadValue); + EXPECT_EQ(0, cfg.del(network1->getId())); } // This test verifies that shared networks must have unique names.