mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2024-11-23 23:31:11 +01:00
erpt: fix multiple issues with automatic report cleanup (thanks @yellows8)
* Setting retrieval was performed before the call that used the setting. * Call to detect number of files passed incomplete path and was guaranteed to fail. * Call to delete reports passed incomplete path and was guaranteed to do nothing.
This commit is contained in:
parent
1f8798ace7
commit
04c9004e05
@ -21,6 +21,7 @@
|
||||
namespace ams::erpt::srv {
|
||||
|
||||
constexpr inline const char ReportOnSdStoragePath[] = "ersd";
|
||||
constexpr inline const char ReportOnSdStorageRootDirectoryPath[] = "ersd:/";
|
||||
|
||||
constexpr inline const char ReportStoragePath[] = "save";
|
||||
constexpr inline const char JournalFileName[] = "save:/journal";
|
||||
|
@ -88,7 +88,7 @@ namespace ams::erpt::srv {
|
||||
s64 report_count = MinimumReportCountForCleanup;
|
||||
|
||||
fs::DirectoryHandle dir;
|
||||
if (R_SUCCEEDED(fs::OpenDirectory(std::addressof(dir), ReportOnSdStoragePath, fs::OpenDirectoryMode_All))) {
|
||||
if (R_SUCCEEDED(fs::OpenDirectory(std::addressof(dir), ReportOnSdStorageRootDirectoryPath, fs::OpenDirectoryMode_All))) {
|
||||
ON_SCOPE_EXIT { fs::CloseDirectory(dir); };
|
||||
|
||||
if (R_FAILED(fs::GetDirectoryEntryCount(std::addressof(report_count), dir))) {
|
||||
@ -97,7 +97,7 @@ namespace ams::erpt::srv {
|
||||
}
|
||||
|
||||
if (report_count >= MinimumReportCountForCleanup) {
|
||||
fs::CleanDirectoryRecursively(ReportOnSdStoragePath);
|
||||
fs::CleanDirectoryRecursively(ReportOnSdStorageRootDirectoryPath);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -78,12 +78,6 @@ namespace ams {
|
||||
os::SetThreadNamePointer(os::GetCurrentThread(), AMS_GET_SYSTEM_THREAD_NAME(erpt, Main));
|
||||
AMS_ASSERT(os::GetThreadPriority(os::GetCurrentThread()) == AMS_GET_SYSTEM_THREAD_PRIORITY(erpt, Main));
|
||||
|
||||
/* Set the memory heap for erpt::srv namespace. */
|
||||
R_ABORT_UNLESS(erpt::srv::Initialize(erpt::g_memory_heap, erpt::MemoryHeapSize));
|
||||
|
||||
/* Atmosphere always wants to redirect new reports to the SD card, to prevent them from being logged. */
|
||||
erpt::srv::SetRedirectNewReportsToSdCard(true);
|
||||
|
||||
/* Decide whether or not to clean up reports periodically. */
|
||||
{
|
||||
u8 disable_report_cleanup = 0;
|
||||
@ -94,6 +88,12 @@ namespace ams {
|
||||
}
|
||||
}
|
||||
|
||||
/* Set the memory heap for erpt::srv namespace, perform other service init/etc. */
|
||||
R_ABORT_UNLESS(erpt::srv::Initialize(erpt::g_memory_heap, erpt::MemoryHeapSize));
|
||||
|
||||
/* Atmosphere always wants to redirect new reports to the SD card, to prevent them from being logged. */
|
||||
erpt::srv::SetRedirectNewReportsToSdCard(true);
|
||||
|
||||
/* Configure the OS version. */
|
||||
{
|
||||
settings::system::FirmwareVersion firmware_version = {};
|
||||
|
Loading…
Reference in New Issue
Block a user