]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#897] Addressed final comments and added a ChangeLog entry tmark-perf-12-12-2019
authorFrancis Dupont <fdupont@isc.org>
Tue, 10 Dec 2019 20:45:59 +0000 (21:45 +0100)
committerFrancis Dupont <fdupont@isc.org>
Tue, 10 Dec 2019 20:45:59 +0000 (21:45 +0100)
ChangeLog
src/bin/dhcp4/dhcp4_srv.cc
src/bin/dhcp6/dhcp6_srv.cc
src/lib/dhcpsrv/pgsql_lease_mgr.cc
src/lib/dhcpsrv/tests/cql_lease_mgr_unittest.cc
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h
src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc

index ec9c1a7d47fa37934e3ee8b89345816567c53450..cf30a938d6f2f1fbb512492cfff003531ba76405 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+1695.  [func]          fdupont
+       Added support of BOOTP leases with infinite valid lifetime.
+       This includes representation of such leases in MySQL and
+       PostgreSQL databases which the expire date can be a 32 bit
+       integer.
+       (Gitlan #897)
+
 1694.  [doc]           marcin
        Described the usage of the ha-heartbeat command to check the
        states of the HA enabled DHCP servers.
index fe31bbaa7c421561b4dc0348af98f45469b07016..2ba43def3c276fdfd9f270b50898d9e3dd36ce19 100644 (file)
@@ -2330,7 +2330,7 @@ Dhcpv4Srv::assignLease(Dhcpv4Exchange& ex) {
     }
 }
 
-/// @todo: Take care of the fact that the valid lifetime can be infinite.
+/// @todo This logic to be modified if we decide to support infinite lease times.
 void
 Dhcpv4Srv::setTeeTimes(const Lease4Ptr& lease, const Subnet4Ptr& subnet, Pkt4Ptr resp) {
 
index 161ed644c4efb89b4b46589e368952e41a93e121..18e51181f6aab06cdb81d6a11a9bcffb6f0e93e9 100644 (file)
@@ -3984,7 +3984,7 @@ void Dhcpv6Srv::discardPackets() {
     HooksManager::clearParkingLots();
 }
 
-/// @todo: Take care of the fact that the valid lifetime can be infinite.
+/// @todo This logic to be modified if we decide to support infinite lease times.
 void
 Dhcpv6Srv::setTeeTimes(uint32_t preferred_lft, const Subnet6Ptr& subnet, Option6IAPtr& resp) {
     // Default T2 time to zero.
index 77889db472d582f131ee0bfe71992cd6d4241301..156ba3b4e520bd90de41fc2201417b391ec9f017 100644 (file)
@@ -494,11 +494,11 @@ public:
             bind_array.add(valid_lifetime_str_);
 
             // Avoid overflow
-            uint32_t valid_lft = lease_->valid_lft_;
-            if (valid_lft == Lease::INFINITY_LFT) {
+            if (lease_->valid_lft_ == Lease::INFINITY_LFT) {
                 expire_str_ = convertToDatabaseTime(lease->cltt_, 0);
             } else {
-                expire_str_ = convertToDatabaseTime(lease->cltt_, valid_lft);
+                expire_str_ = convertToDatabaseTime(lease->cltt_,
+                                                    lease_->valid_lft_);
             }
             bind_array.add(expire_str_);
 
@@ -555,11 +555,10 @@ public:
             getColumnValue(r, row , SUBNET_ID_COL, subnet_id_);
 
             // Recover from overflow
-            uint32_t valid_lft = valid_lifetime_;
-            if (valid_lft == Lease::INFINITY_LFT) {
+            if (valid_lifetime_ == Lease::INFINITY_LFT) {
                 cltt_ = expire_;
             } else {
-                cltt_ = expire_ - valid_lft;
+                cltt_ = expire_ - valid_lifetime_;
             }
 
             getColumnValue(r, row, FQDN_FWD_COL, fqdn_fwd_);
@@ -737,11 +736,11 @@ public:
             bind_array.add(valid_lifetime_str_);
 
             // Avoid overflow
-            uint32_t valid_lft = lease_->valid_lft_;
-            if (valid_lft == Lease::INFINITY_LFT) {
+            if (lease_->valid_lft_ == Lease::INFINITY_LFT) {
                 expire_str_ = convertToDatabaseTime(lease->cltt_, 0);
             } else {
-                expire_str_ = convertToDatabaseTime(lease->cltt_, valid_lft);
+                expire_str_ = convertToDatabaseTime(lease->cltt_,
+                                                    lease_->valid_lft_);
             }
             bind_array.add(expire_str_);
 
@@ -849,11 +848,10 @@ public:
                                                                 EXPIRE_COL));
 
             // Recover from overflow
-            uint32_t valid_lft = valid_lifetime_;
-            if (valid_lft == Lease::INFINITY_LFT) {
+            if (valid_lifetime_ == Lease::INFINITY_LFT) {
                 cltt_ = expire_;
             } else {
-                cltt_ = expire_ - valid_lft;
+                cltt_ = expire_ - valid_lifetime_;
             }
 
             getColumnValue(r, row , SUBNET_ID_COL, subnet_id_);
index 1f8c69d3fa2bd408a31bb5a307b233e4a521ed10..6ee23b2f00316ea39e4ac51d7b6244a0f448da0c 100644 (file)
@@ -627,8 +627,8 @@ TEST_F(CqlLeaseMgrTest, getExpiredLeases4) {
 
 /// @brief Checks that DHCPv4 leases with infinite valid lifetime
 /// will never expire.
-TEST_F(CqlLeaseMgrTest, getNeverExpiredLeases4) {
-    testGetNeverExpiredLeases4();
+TEST_F(CqlLeaseMgrTest, infiniteAreNotExpired4) {
+    testInfiniteAreNotExpired4();
 }
 
 /// @brief Check that expired reclaimed DHCPv4 leases are removed.
@@ -782,8 +782,8 @@ TEST_F(CqlLeaseMgrTest, getExpiredLeases6) {
 
 /// @brief Checks that DHCPv6 leases with infinite valid lifetime
 /// will never expire.
-TEST_F(CqlLeaseMgrTest, getNeverExpiredLeases6) {
-    testGetNeverExpiredLeases6();
+TEST_F(CqlLeaseMgrTest, infiniteAreNotExpired6) {
+    testInfiniteAreNotExpired6();
 }
 
 /// @brief Check that expired reclaimed DHCPv6 leases are removed.
index 31ca47e9e989d8e5be8ec18265250987544cfa9a..985e3bbd73e22b0752be10e2cccd241cc09a8da9 100644 (file)
@@ -2253,7 +2253,7 @@ GenericLeaseMgrTest::testGetExpiredLeases6() {
 }
 
 void
-GenericLeaseMgrTest::testGetNeverExpiredLeases4() {
+GenericLeaseMgrTest::testInfiniteAreNotExpired4() {
     // Get the leases to be used for the test.
     vector<Lease4Ptr> leases = createLeases4();
     Lease4Ptr lease = leases[1];
@@ -2274,7 +2274,7 @@ GenericLeaseMgrTest::testGetNeverExpiredLeases4() {
 }
 
 void
-GenericLeaseMgrTest::testGetNeverExpiredLeases6() {
+GenericLeaseMgrTest::testInfiniteAreNotExpired6() {
     // Get the leases to be used for the test.
     vector<Lease6Ptr> leases = createLeases6();
     Lease6Ptr lease = leases[1];
index 8b94fc653a5311c8a67ab77292c15247f50bce2c..f8f517f9c7f12424488ce2c42a7782f01adc116a 100644 (file)
@@ -355,11 +355,11 @@ public:
 
     /// @brief Checks that DHCPv4 leases with infinite valid lifetime
     /// will never expire.
-    void testGetNeverExpiredLeases4();
+    void testInfiniteAreNotExpired4();
 
     /// @brief Checks that DHCPv6 leases with infinite valid lifetime
     /// will never expire.
-    void testGetNeverExpiredLeases6();
+    void testInfiniteAreNotExpired6();
 
     /// @brief Checks that declined IPv4 leases that have expired can be retrieved.
     ///
index dd4488d10072c5427f48eab1b823b4368c470e26..835da6b703065df40cfafeabfb0d65722f85a44f 100644 (file)
@@ -593,8 +593,8 @@ TEST_F(MySqlLeaseMgrTest, getExpiredLeases4MultiThreading) {
 
 /// @brief Checks that DHCPv4 leases with infinite valid lifetime
 /// will never expire.
-TEST_F(MySqlLeaseMgrTest, getNeverExpiredLeases4) {
-    testGetNeverExpiredLeases4();
+TEST_F(MySqlLeaseMgrTest, infiniteAreNotExpired4) {
+    testInfiniteAreNotExpired4();
 }
 
 /// @brief Check that expired reclaimed DHCPv4 leases are removed.
@@ -858,8 +858,8 @@ TEST_F(MySqlLeaseMgrTest, getExpiredLeases6MultiThreading) {
 
 /// @brief Checks that DHCPv6 leases with infinite valid lifetime
 /// will never expire.
-TEST_F(MySqlLeaseMgrTest, getNeverExpiredLeases6) {
-    testGetNeverExpiredLeases6();
+TEST_F(MySqlLeaseMgrTest, infiniteAreNotExpired6) {
+    testInfiniteAreNotExpired6();
 }
 
 /// @brief Check that expired reclaimed DHCPv6 leases are removed.
index 8da66097a3fd76be8117735a90ab4ee8c7df8a51..0239322803bdbf2730a7bc2d452bb51ba58010f9 100644 (file)
@@ -547,8 +547,8 @@ TEST_F(PgSqlLeaseMgrTest, getExpiredLeases4MultiThreading) {
 
 /// @brief Checks that DHCPv4 leases with infinite valid lifetime
 /// will never expire.
-TEST_F(PgSqlLeaseMgrTest, getNeverExpiredLeases4) {
-    testGetNeverExpiredLeases4();
+TEST_F(PgSqlLeaseMgrTest, infiniteAreNotExpired4) {
+    testInfiniteAreNotExpired4();
 }
 
 /// @brief Check that expired reclaimed DHCPv4 leases are removed.
@@ -812,8 +812,8 @@ TEST_F(PgSqlLeaseMgrTest, getExpiredLeases6MultiThreading) {
 
 /// @brief Checks that DHCPv6 leases with infinite valid lifetime
 /// will never expire.
-TEST_F(PgSqlLeaseMgrTest, getNeverExpiredLeases6) {
-    testGetNeverExpiredLeases6();
+TEST_F(PgSqlLeaseMgrTest, infiniteAreNotExpired6) {
+    testInfiniteAreNotExpired6();
 }
 
 /// @brief Check that expired reclaimed DHCPv6 leases are removed.