]> granicus.if.org Git - icinga2/commitdiff
Use application start-up time for the IDO session token
authorGunnar Beutner <gunnar.beutner@netways.de>
Fri, 29 Jul 2016 06:40:10 +0000 (08:40 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Fri, 29 Jul 2016 06:40:10 +0000 (08:40 +0200)
fixes #12250

lib/db_ido/dbconnection.cpp
lib/db_ido/dbconnection.hpp
lib/db_ido_mysql/idomysqlconnection.cpp
lib/db_ido_mysql/idomysqlconnection.hpp
lib/db_ido_pgsql/idopgsqlconnection.cpp
lib/db_ido_pgsql/idopgsqlconnection.hpp

index 170288cf8b697126bf2698ab0d2ed8b406cec030..e9f5ca0fbeb357836a0673723f0bd8bb78b66889 100644 (file)
@@ -492,3 +492,8 @@ void DbConnection::SetIDCacheValid(bool valid)
 {
        m_IDCacheValid = valid;
 }
+
+int DbConnection::GetSessionToken(void)
+{
+       return Application::GetStartTime();
+}
index ca05a4760bba95bf336c7a65b2f9658bb651b6ec..84237199493eeb67e238759ca13788a377e5d8a0 100644 (file)
@@ -100,6 +100,8 @@ protected:
 
        static void UpdateProgramStatus(void);
 
+       static int GetSessionToken(void);
+
 private:
        bool m_IDCacheValid;
        std::map<DbObject::Ptr, DbReference> m_ObjectIDs;
index 9e0ac7a5c3bd443d1e45ae99fde9272c8eca703a..5efda95ab9a1c63fedd34e65b19263693d8fa1a7 100644 (file)
@@ -175,7 +175,6 @@ void IdoMysqlConnection::Reconnect(void)
        CONTEXT("Reconnecting to MySQL IDO database '" + GetName() + "'");
 
        double startTime = Utility::GetTime();
-       m_SessionToken = static_cast<int>(Utility::GetTime());
 
        SetShouldConnect(true);
 
@@ -449,7 +448,7 @@ void IdoMysqlConnection::ClearTableBySession(const String& table)
 {
        Query("DELETE FROM " + GetTablePrefix() + table + " WHERE instance_id = " +
            Convert::ToString(static_cast<long>(m_InstanceID)) + " AND session_token <> " +
-           Convert::ToString(m_SessionToken));
+           Convert::ToString(GetSessionToken()));
 }
 
 void IdoMysqlConnection::ClearConfigTable(const String& table)
@@ -748,7 +747,7 @@ bool IdoMysqlConnection::FieldToEscapedString(const String& key, const Value& va
                *result = static_cast<long>(m_InstanceID);
                return true;
        } else if (key == "session_token") {
-               *result = m_SessionToken;
+               *result = GetSessionToken();
                return true;
        }
 
index ee7cb9e831e6a5673d7dbf89c483567da39075f5..816c34ebb27d273d2cd1e38c89c8a20f3011f860 100644 (file)
@@ -71,7 +71,6 @@ protected:
 
 private:
        DbReference m_InstanceID;
-       int m_SessionToken;
 
        WorkQueue m_QueryQueue;
 
index 7b8117d45913a32dbb0d96f023755ad17a440183..b3f2e75d5aac5d675cf5bb30aed72a27d49bc913 100644 (file)
@@ -174,7 +174,6 @@ void IdoPgsqlConnection::Reconnect(void)
        CONTEXT("Reconnecting to PostgreSQL IDO database '" + GetName() + "'");
 
        double startTime = Utility::GetTime();
-       m_SessionToken = static_cast<int>(Utility::GetTime());
 
        SetShouldConnect(true);
 
@@ -420,7 +419,7 @@ void IdoPgsqlConnection::ClearTableBySession(const String& table)
 {
        Query("DELETE FROM " + GetTablePrefix() + table + " WHERE instance_id = " +
            Convert::ToString(static_cast<long>(m_InstanceID)) + " AND session_token <> " +
-           Convert::ToString(m_SessionToken));
+           Convert::ToString(GetSessionToken()));
 }
 
 void IdoPgsqlConnection::ClearConfigTable(const String& table)
@@ -605,7 +604,7 @@ bool IdoPgsqlConnection::FieldToEscapedString(const String& key, const Value& va
                *result = static_cast<long>(m_InstanceID);
                return true;
        } else if (key == "session_token") {
-               *result = m_SessionToken;
+               *result = GetSessionToken();
                return true;
        }
 
index 0be3a8eafe103ec2dfbb81b5897ccab39856d2b1..06858e33606b8baa492c273c3ee2af875e5c84d3 100644 (file)
@@ -63,7 +63,6 @@ protected:
 
 private:
        DbReference m_InstanceID;
-       int m_SessionToken;
 
        WorkQueue m_QueryQueue;