]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#717,!417] Use ANY server selector when fetching subnets for shared net.
authorMarcin Siodelski <marcin@isc.org>
Wed, 10 Jul 2019 13:33:38 +0000 (15:33 +0200)
committerMarcin Siodelski <marcin@isc.org>
Fri, 12 Jul 2019 15:58:16 +0000 (11:58 -0400)
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.h
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.cc
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.h
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc

index 4f294f487e65b524172c1536852cee29020c4c8f..5c66f5fc180118191d55fb396194e546c6061b79 100644 (file)
@@ -2114,7 +2114,7 @@ TaggedStatementArray tagged_statements = { {
 
     // Select subnets belonging to a shared network.
     { MySqlConfigBackendDHCPv4Impl::GET_SHARED_NETWORK_SUBNETS4,
-      MYSQL_GET_SUBNET4_NO_TAG(WHERE s.shared_network_name = ?)
+      MYSQL_GET_SUBNET4_ANY(WHERE s.shared_network_name = ?)
     },
 
     // Select pool by address range.
@@ -2643,12 +2643,12 @@ MySqlConfigBackendDHCPv4::getModifiedSubnets4(const ServerSelector& server_selec
 }
 
 Subnet4Collection
-MySqlConfigBackendDHCPv4::getSharedNetworkSubnets4(const ServerSelector& server_selector,
+MySqlConfigBackendDHCPv4::getSharedNetworkSubnets4(const ServerSelector& /* server_selector */,
                                                    const std::string& shared_network_name) const {
     LOG_DEBUG(mysql_cb_logger, DBGLVL_TRACE_BASIC, MYSQL_CB_GET_SHARED_NETWORK_SUBNETS4)
         .arg(shared_network_name);
     Subnet4Collection subnets;
-    impl_->getSharedNetworkSubnets4(server_selector, shared_network_name, subnets);
+    impl_->getSharedNetworkSubnets4(ServerSelector::ANY(), shared_network_name, subnets);
     LOG_DEBUG(mysql_cb_logger, DBGLVL_TRACE_BASIC, MYSQL_CB_GET_SHARED_NETWORK_SUBNETS4_RESULT)
         .arg(subnets.size());
     return (subnets);
index 6cc79b3dc13107a09513f773dac59ce7788261b2..697cca438d5d5d1c32adf6e27a0bf20f0dd8ce9d 100644 (file)
@@ -71,6 +71,10 @@ public:
 
     /// @brief Retrieves all subnets belonging to a specified shared network.
     ///
+    /// The server selector is currently ignored by this method. All subnets
+    /// for the given shared network are returned regardless of their
+    /// associations with the servers.
+    ///
     /// @param server_selector Server selector.
     /// @param shared_network_name Name of the shared network for which the
     /// subnets should be retrieved.
index fed37d298ef34a5e0ecd9eb4ca0675eb57146e2c..de49acd90a91a89af879448dc4214becd395908f 100644 (file)
@@ -2439,7 +2439,7 @@ TaggedStatementArray tagged_statements = { {
 
     // Select subnets belonging to a shared network.
     { MySqlConfigBackendDHCPv6Impl::GET_SHARED_NETWORK_SUBNETS6,
-      MYSQL_GET_SUBNET6_NO_TAG(WHERE s.shared_network_name = ?)
+      MYSQL_GET_SUBNET6_ANY(WHERE s.shared_network_name = ?)
     },
 
     // Select pool by address range.
@@ -3011,12 +3011,12 @@ MySqlConfigBackendDHCPv6::getModifiedSubnets6(const ServerSelector& server_selec
 }
 
 Subnet6Collection
-MySqlConfigBackendDHCPv6::getSharedNetworkSubnets6(const ServerSelector& server_selector,
+MySqlConfigBackendDHCPv6::getSharedNetworkSubnets6(const ServerSelector& /* server_selector */,
                                                    const std::string& shared_network_name) const {
     LOG_DEBUG(mysql_cb_logger, DBGLVL_TRACE_BASIC, MYSQL_CB_GET_SHARED_NETWORK_SUBNETS6)
         .arg(shared_network_name);
     Subnet6Collection subnets;
-    impl_->getSharedNetworkSubnets6(server_selector, shared_network_name, subnets);
+    impl_->getSharedNetworkSubnets6(ServerSelector::ANY(), shared_network_name, subnets);
     LOG_DEBUG(mysql_cb_logger, DBGLVL_TRACE_BASIC, MYSQL_CB_GET_SHARED_NETWORK_SUBNETS6_RESULT)
         .arg(subnets.size());
     return (subnets);
index d0f612ae57114cb3518d1531f9fd865a63256b88..1b4d6bdc1fd1f5d1f4e5b5d2b92bb45f8e4347c3 100644 (file)
@@ -71,6 +71,10 @@ public:
 
     /// @brief Retrieves all subnets belonging to a specified shared network.
     ///
+    /// The server selector is currently ignored by this method. All subnets
+    /// for the given shared network are returned regardless of their
+    /// associations with the servers.
+    ///
     /// @param server_selector Server selector.
     /// @param shared_network_name Name of the shared network for which the
     /// subnets should be retrieved.
index fa3ee05bbe2107e0111d1a904c70bada422d47c9..006d4352b4bacea25da28a8fc298f5214f7ef768 100644 (file)
@@ -1868,8 +1868,8 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getSharedNetworkSubnets4) {
     EXPECT_TRUE(isEquivalent(test_subnets_[1]->toElement(),
                              subnets[0]->toElement()));
 
-    // All subnets should also be returned for explicitly specified server tag.
-    subnets = cbptr_->getSharedNetworkSubnets4(ServerSelector::ONE("server1"), "level1");
+    // All subnets should also be returned for ANY server.
+    subnets = cbptr_->getSharedNetworkSubnets4(ServerSelector::ANY(), "level1");
     ASSERT_EQ(1, subnets.size());
 
     // Returned subnet should match test subnet #1.
index ac5704621a4c5f11d76083aaf663af6330fb0070..99602e2cb4ff6ec4e2040a4803f825fce71ddc14 100644 (file)
@@ -1887,8 +1887,8 @@ TEST_F(MySqlConfigBackendDHCPv6Test, getSharedNetworkSubnets6) {
     EXPECT_TRUE(isEquivalent(test_subnets_[1]->toElement(),
                              subnets[0]->toElement()));
 
-    // All subnets should also be returned for explicitly specified server tag.
-    subnets = cbptr_->getSharedNetworkSubnets6(ServerSelector::ONE("server1"), "level1");
+    // All subnets should also be returned for ANY server.
+    subnets = cbptr_->getSharedNetworkSubnets6(ServerSelector::ANY(), "level1");
     ASSERT_EQ(1, subnets.size());
 
     // Returned subnet should match test subnet #1.