diff --git a/lib/remote/apilistener.cpp b/lib/remote/apilistener.cpp index 758963a6b..59e537f76 100644 --- a/lib/remote/apilistener.cpp +++ b/lib/remote/apilistener.cpp @@ -1004,11 +1004,11 @@ void ApiListener::ApiTimerHandler() { double now = Utility::GetTime(); - std::vector files; + std::vector files; Utility::Glob(GetApiDir() + "log/*", [&files](const String& file) { LogGlobHandler(files, file); }, GlobFile); std::sort(files.begin(), files.end()); - for (int ts : files) { + for (auto ts : files) { bool need = false; auto localZone (GetLocalEndpoint()->GetZone()); @@ -1468,7 +1468,7 @@ void ApiListener::RotateLogFile() ts = Utility::GetTime(); String oldpath = GetApiDir() + "log/current"; - String newpath = GetApiDir() + "log/" + Convert::ToString(static_cast(ts)+1); + String newpath = GetApiDir() + "log/" + Convert::ToString(static_cast(ts)+1); // If the log is being rotated more than once per second, // don't overwrite the previous one, but silently deny rotation. @@ -1486,22 +1486,20 @@ void ApiListener::RotateLogFile() } } -void ApiListener::LogGlobHandler(std::vector& files, const String& file) +void ApiListener::LogGlobHandler(std::vector& files, const String& file) { String name = Utility::BaseName(file); if (name == "current") return; - int ts; - try { - ts = Convert::ToLong(name); - } catch (const std::exception&) { + files.emplace_back(boost::lexical_cast(name)); + } catch (const std::exception& ex) { + Log(LogCritical, "ApiListener") + << "Error converting log file name " << file << " to uint64: " << ex.what(); return; } - - files.push_back(ts); } void ApiListener::ReplayLog(const JsonRpcConnection::Ptr& client) @@ -1548,19 +1546,19 @@ void ApiListener::ReplayLog(const JsonRpcConnection::Ptr& client) count = 0; - std::vector files; + std::vector files; Utility::Glob(GetApiDir() + "log/*", [&files](const String& file) { LogGlobHandler(files, file); }, GlobFile); std::sort(files.begin(), files.end()); - std::vector> allFiles; + std::vector> allFiles; - for (int ts : files) { + for (auto ts : files) { if (ts >= peer_ts) { allFiles.emplace_back(ts, GetApiDir() + "log/" + Convert::ToString(ts)); } } - allFiles.emplace_back(Utility::GetTime() + 1, GetApiDir() + "log/current"); + allFiles.emplace_back(static_cast(Utility::GetTime()) + 1, GetApiDir() + "log/current"); for (auto& file : allFiles) { Log(LogNotice, "ApiListener") diff --git a/lib/remote/apilistener.hpp b/lib/remote/apilistener.hpp index ea5ed8cb9..866af7614 100644 --- a/lib/remote/apilistener.hpp +++ b/lib/remote/apilistener.hpp @@ -230,7 +230,7 @@ private: void OpenLogFile(); void RotateLogFile(); void CloseLogFile(); - static void LogGlobHandler(std::vector& files, const String& file); + static void LogGlobHandler(std::vector& files, const String& file); void ReplayLog(const JsonRpcConnection::Ptr& client); static void CopyCertificateFile(const String& oldCertPath, const String& newCertPath);