aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoriamamyth <user@example.com>2024-12-27 16:04:11 -0800
committeriamamyth <user@example.com>2025-01-14 13:26:39 -0800
commit36c5987156a31640c4638f1424b98285f6ea4a47 (patch)
tree1e285008924b0f39bb54805d88a4417415bb214b /src
parent7fb0d2f48daf3de3ce1c0d28c4845a7c3dd97284 (diff)
downloadmonzero-core-36c5987156a31640c4638f1424b98285f6ea4a47.tar.gz
monzero-core-36c5987156a31640c4638f1424b98285f6ea4a47.tar.xz
monzero-core-36c5987156a31640c4638f1424b98285f6ea4a47.zip
Fix get_database_size on Windows
Replace all calls to epee::file_io::get_file_size with boost::filesystem::file_size in order to avoid lossy conversions from paths to strings, which tend to break filename resolution. This commit fixes a bug on Windows where the get_info RPC call reported a zero database size because BlockchainLMBD::get_database_size returned zero.
Diffstat (limited to 'src')
-rw-r--r--src/blockchain_db/lmdb/db_lmdb.cpp8
-rw-r--r--src/common/download.cpp8
2 files changed, 8 insertions, 8 deletions
diff --git a/src/blockchain_db/lmdb/db_lmdb.cpp b/src/blockchain_db/lmdb/db_lmdb.cpp
index f80013d02..f8ce38783 100644
--- a/src/blockchain_db/lmdb/db_lmdb.cpp
+++ b/src/blockchain_db/lmdb/db_lmdb.cpp
@@ -34,7 +34,6 @@
#include <cstring> // memcpy
#include "string_tools.h"
-#include "file_io_utils.h"
#include "common/util.h"
#include "common/pruning.h"
#include "cryptonote_basic/cryptonote_format_utils.h"
@@ -4500,12 +4499,11 @@ bool BlockchainLMDB::is_read_only() const
uint64_t BlockchainLMDB::get_database_size() const
{
- uint64_t size = 0;
boost::filesystem::path datafile(m_folder);
datafile /= CRYPTONOTE_BLOCKCHAINDATA_FILENAME;
- if (!epee::file_io_utils::get_file_size(datafile.string(), size))
- size = 0;
- return size;
+ boost::system::error_code ec{};
+ const boost::uintmax_t size = boost::filesystem::file_size(datafile, ec);
+ return (ec ? 0 : static_cast<uint64_t>(size));
}
void BlockchainLMDB::fixup()
diff --git a/src/common/download.cpp b/src/common/download.cpp
index 01d4a9aab..e377be266 100644
--- a/src/common/download.cpp
+++ b/src/common/download.cpp
@@ -30,7 +30,6 @@
#include <atomic>
#include <boost/filesystem.hpp>
#include <boost/thread/thread.hpp>
-#include "file_io_utils.h"
#include "net/http_client.h"
#include "download.h"
@@ -73,8 +72,11 @@ namespace tools
{
boost::unique_lock<boost::mutex> lock(control->mutex);
std::ios_base::openmode mode = std::ios_base::out | std::ios_base::binary;
- uint64_t existing_size = 0;
- if (epee::file_io_utils::get_file_size(control->path, existing_size) && existing_size > 0)
+ boost::system::error_code ec{};
+ uint64_t existing_size = static_cast<uint64_t>(boost::filesystem::file_size(control->path, ec));
+ if (ec)
+ existing_size = 0;
+ if (existing_size > 0)
{
MINFO("Resuming downloading " << control->uri << " to " << control->path << " from " << existing_size);
mode |= std::ios_base::app;