]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[3673] One more update to the comment in the time conversion for PgSQL.
authorMarcin Siodelski <marcin@isc.org>
Wed, 11 Mar 2015 20:28:08 +0000 (21:28 +0100)
committerMarcin Siodelski <marcin@isc.org>
Wed, 11 Mar 2015 20:28:08 +0000 (21:28 +0100)
src/lib/dhcpsrv/pgsql_lease_mgr.cc

index 0bd20966c0b170ffd97257893545f27d6d0566e7..da41047618e469212de56a6a9a7ae8cdb1c52700 100644 (file)
@@ -315,10 +315,11 @@ public:
         int64_t expire_time_64 = static_cast<int64_t>(cltt) +
             static_cast<int64_t>(valid_lifetime);
 
-        // On 32-bit systems the time_t is implemented as the int32_t value.
-        // We want to detect overflows beyond maximum int32_t value here
-        // to avoid the overflow in the PostgreSQL database. The PostgreSQL
-        // doesn't catch those overflows on its own.
+        // It has been observed that the PostgreSQL doesn't deal well with the
+        // timestamp values beyond the LeaseMgr::MAX_DB_TIME seconds since the
+        // beginning of the epoch (around year 2038). The value is often
+        // stored in the database but it is invalid when read back (overflow?).
+        // Hence, the maximum timestamp value is restricted here.
         if (expire_time_64 > LeaseMgr::MAX_DB_TIME) {
             isc_throw(isc::BadValue, "Time value is too large: " << expire_time_64);
         }