diff --git a/lib/remote/apilistener.cpp b/lib/remote/apilistener.cpp index 84931086f..bcfa29680 100644 --- a/lib/remote/apilistener.cpp +++ b/lib/remote/apilistener.cpp @@ -264,8 +264,12 @@ void ApiListener::Stop(bool runtimeDeleted) Log(LogInformation, "ApiListener") << "'" << GetName() << "' stopped."; - boost::mutex::scoped_lock lock(m_LogLock); - CloseLogFile(); + { + boost::mutex::scoped_lock lock(m_LogLock); + CloseLogFile(); + } + + RemoveStatusFile(); } ApiListener::Ptr ApiListener::GetInstance() @@ -1482,3 +1486,17 @@ void ApiListener::UpdateStatusFile(TcpSocket::Ptr socket) {"port", details.second} })); } + +void ApiListener::RemoveStatusFile() +{ + String path = Application::GetConst("CacheDir") + "/api-state.json"; + + if (Utility::PathExists(path)) { + if (unlink(path.CStr()) < 0 && errno != ENOENT) { + BOOST_THROW_EXCEPTION(posix_error() + << boost::errinfo_api_function("unlink") + << boost::errinfo_errno(errno) + << boost::errinfo_file_name(path)); + } + } +} diff --git a/lib/remote/apilistener.hpp b/lib/remote/apilistener.hpp index 8b46c4cb3..27d236eaa 100644 --- a/lib/remote/apilistener.hpp +++ b/lib/remote/apilistener.hpp @@ -114,8 +114,6 @@ protected: void Start(bool runtimeCreated) override; void Stop(bool runtimeDeleted) override; - void UpdateStatusFile(TcpSocket::Ptr socket); - void ValidateTlsProtocolmin(const Lazy& lvalue, const ValidationUtils& utils) override; private: @@ -165,6 +163,9 @@ private: static void CopyCertificateFile(const String& oldCertPath, const String& newCertPath); + void UpdateStatusFile(TcpSocket::Ptr socket); + void RemoveStatusFile(); + /* filesync */ static ConfigDirInformation LoadConfigDir(const String& dir); static Dictionary::Ptr MergeConfigUpdate(const ConfigDirInformation& config);