diff --git a/daemon/remote/XmlRpc.cpp b/daemon/remote/XmlRpc.cpp index 570f1530..530dd8eb 100644 --- a/daemon/remote/XmlRpc.cpp +++ b/daemon/remote/XmlRpc.cpp @@ -1462,20 +1462,36 @@ void StatusXmlCommand::Execute() int64 freeInterDiskSpace = 0; int64 totalInterDiskSpace = 0; - auto destDirRes = FileSystem::GetDiskState(g_Options->GetDestDir()); - if (destDirRes.has_value()) + if (Util::EmptyStr(g_Options->GetDestDir())) { - const auto& value = destDirRes.value(); - freeDiskSpace = value.available; - totalDiskSpace = value.total; + freeDiskSpace = 0; + totalDiskSpace = 0; + } + else + { + auto res = FileSystem::GetDiskState(g_Options->GetDestDir()); + if (res.has_value()) + { + const auto& value = res.value(); + freeDiskSpace = value.available; + totalDiskSpace = value.total; + } } - auto interDirRes = FileSystem::GetDiskState(g_Options->GetInterDir()); - if (interDirRes.has_value()) + if (Util::EmptyStr(g_Options->GetInterDir())) { - const auto& value = interDirRes.value(); - freeInterDiskSpace = value.available; - totalInterDiskSpace = value.total; + freeInterDiskSpace = freeDiskSpace; + totalInterDiskSpace = totalDiskSpace; + } + else + { + auto res = FileSystem::GetDiskState(g_Options->GetInterDir()); + if (res.has_value()) + { + const auto& value = res.value(); + freeInterDiskSpace = value.available; + totalInterDiskSpace = value.total; + } } Util::SplitInt64(freeDiskSpace, &freeDiskSpaceHi, &freeDiskSpaceLo); diff --git a/webui/system-info.js b/webui/system-info.js index b1456ab1..e644de5f 100644 --- a/webui/system-info.js +++ b/webui/system-info.js @@ -75,8 +75,10 @@ var SystemInfo = (new function($) if (destDirOpt && interDirOpt) { - renderDiskSpace(+status['FreeDiskSpaceMB'], +status['TotalDiskSpaceMB'], destDirOpt.Value); - renderInterDiskSpace(+status['FreeInterDiskSpaceMB'], +status['TotalInterDiskSpaceMB'], interDirOpt.Value); + var destDirPath = destDirOpt.Value; + var interDistPath = interDirOpt.Value ? interDirOpt : destDirPath; + renderDiskSpace(+status['FreeDiskSpaceMB'], +status['TotalDiskSpaceMB'], destDirPath); + renderInterDiskSpace(+status['FreeInterDiskSpaceMB'], +status['TotalInterDiskSpaceMB'], interDistPath); } } }