From f7df3beb3898623a8faabe83cd8fc5ed55fa3f3c Mon Sep 17 00:00:00 2001 From: Michael Friedrich Date: Mon, 25 Jan 2016 14:25:37 +0100 Subject: [PATCH] Fix cluster config sync timestamp refs #11014 --- lib/remote/apilistener-filesync.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/remote/apilistener-filesync.cpp b/lib/remote/apilistener-filesync.cpp index 00927e9dc..616bb3e66 100644 --- a/lib/remote/apilistener-filesync.cpp +++ b/lib/remote/apilistener-filesync.cpp @@ -58,14 +58,15 @@ bool ApiListener::UpdateConfigDir(const Dictionary::Ptr& oldConfig, const Dictio { bool configChange = false; - if (oldConfig->Contains(".timestamp") && newConfig->Contains(".timestamp")) { - double oldTS = Convert::ToDouble(oldConfig->Get(".timestamp")); - double newTS = Convert::ToDouble(newConfig->Get(".timestamp")); + if (!(oldConfig->Contains(".timestamp") && newConfig->Contains(".timestamp"))) + return false; - /* skip update if our config is newer */ - if (oldTS <= newTS) - return false; - } + double oldTimestamp = Convert::ToDouble(oldConfig->Get(".timestamp")); + double newTimestamp = Convert::ToDouble(newConfig->Get(".timestamp")); + + /* skip update if our config is newer */ + if (oldTimestamp <= newTimestamp) + return false; { ObjectLock olock(newConfig); @@ -99,7 +100,7 @@ bool ApiListener::UpdateConfigDir(const Dictionary::Ptr& oldConfig, const Dictio String tsPath = configDir + "/.timestamp"; if (!Utility::PathExists(tsPath)) { std::ofstream fp(tsPath.CStr(), std::ofstream::out | std::ostream::trunc); - fp << std::fixed << Utility::GetTime(); + fp << std::fixed << newTimestamp; fp.close(); }