Fix is_regular_file again (#1218)
This commit is contained in:
parent
b857a83dd8
commit
f1c1f82e8b
|
|
@ -57,5 +57,5 @@ HRESULT AppOfflineApplication::OnAppOfflineFound()
|
||||||
|
|
||||||
bool AppOfflineApplication::ShouldBeStarted(IHttpApplication& pApplication)
|
bool AppOfflineApplication::ShouldBeStarted(IHttpApplication& pApplication)
|
||||||
{
|
{
|
||||||
return is_regular_file(GetAppOfflineLocation(pApplication));
|
return FileExists(GetAppOfflineLocation(pApplication));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,20 +28,12 @@ PollingAppOfflineApplication::CheckAppOffline()
|
||||||
SRWExclusiveLock lock(m_statusLock);
|
SRWExclusiveLock lock(m_statusLock);
|
||||||
if (ulCurrentTime - m_ulLastCheckTime > c_appOfflineRefreshIntervalMS)
|
if (ulCurrentTime - m_ulLastCheckTime > c_appOfflineRefreshIntervalMS)
|
||||||
{
|
{
|
||||||
try
|
m_fAppOfflineFound = FileExists(m_appOfflineLocation);
|
||||||
|
if(m_fAppOfflineFound)
|
||||||
{
|
{
|
||||||
m_fAppOfflineFound = is_regular_file(m_appOfflineLocation);
|
LOG_IF_FAILED(OnAppOfflineFound());
|
||||||
if(m_fAppOfflineFound)
|
|
||||||
{
|
|
||||||
LOG_IF_FAILED(OnAppOfflineFound());
|
|
||||||
}
|
|
||||||
m_ulLastCheckTime = ulCurrentTime;
|
|
||||||
}
|
|
||||||
catch (...)
|
|
||||||
{
|
|
||||||
// is_regular_file might throw in very rare cases
|
|
||||||
OBSERVE_CAUGHT_EXCEPTION();
|
|
||||||
}
|
}
|
||||||
|
m_ulLastCheckTime = ulCurrentTime;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -56,3 +48,9 @@ std::filesystem::path PollingAppOfflineApplication::GetAppOfflineLocation(IHttpA
|
||||||
{
|
{
|
||||||
return std::filesystem::path(pApplication.GetApplicationPhysicalPath()) / "app_offline.htm";
|
return std::filesystem::path(pApplication.GetApplicationPhysicalPath()) / "app_offline.htm";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool PollingAppOfflineApplication::FileExists(const std::filesystem::path& path)
|
||||||
|
{
|
||||||
|
std::error_code ec;
|
||||||
|
return is_regular_file(path, ec) || ec.value() == ERROR_SHARING_VIOLATION;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ public:
|
||||||
protected:
|
protected:
|
||||||
std::filesystem::path m_appOfflineLocation;
|
std::filesystem::path m_appOfflineLocation;
|
||||||
static std::filesystem::path GetAppOfflineLocation(IHttpApplication& pApplication);
|
static std::filesystem::path GetAppOfflineLocation(IHttpApplication& pApplication);
|
||||||
|
static bool FileExists(const std::filesystem::path& path);
|
||||||
private:
|
private:
|
||||||
static const int c_appOfflineRefreshIntervalMS = 200;
|
static const int c_appOfflineRefreshIntervalMS = 200;
|
||||||
std::string m_strAppOfflineContent;
|
std::string m_strAppOfflineContent;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue