diff options
| author | 0xFFFC0000 <0xFFFC0000@proton.me> | 2024-04-30 23:20:10 +0000 |
|---|---|---|
| committer | 0xFFFC0000 <0xFFFC0000@proton.me> | 2024-05-01 02:51:08 +0330 |
| commit | 755dddd2bc9a74fe7f2a61fc49af2a98ca4e82ee (patch) | |
| tree | a63795f5e8b55a70333d12649343adcb574a20a2 /src/common | |
| parent | 81d4db08eb75ce5392c65ca6571e7b08e41b7c95 (diff) | |
| download | monzero-core-755dddd2bc9a74fe7f2a61fc49af2a98ca4e82ee.tar.gz monzero-core-755dddd2bc9a74fe7f2a61fc49af2a98ca4e82ee.tar.xz monzero-core-755dddd2bc9a74fe7f2a61fc49af2a98ca4e82ee.zip | |
common: support boost filesystem copy_options.
Co-authored-by: selsta <selsta@sent.at>
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/boost_serialization_helper.h | 3 | ||||
| -rw-r--r-- | src/common/util.cpp | 18 | ||||
| -rw-r--r-- | src/common/util.h | 2 |
3 files changed, 22 insertions, 1 deletions
diff --git a/src/common/boost_serialization_helper.h b/src/common/boost_serialization_helper.h index 4a903107f..1eca39f40 100644 --- a/src/common/boost_serialization_helper.h +++ b/src/common/boost_serialization_helper.h @@ -35,6 +35,7 @@ #include <boost/archive/portable_binary_iarchive.hpp> #include <boost/filesystem/operations.hpp> +#include "common/util.h" namespace tools { @@ -110,7 +111,7 @@ namespace tools catch(...) { // if failed, try reading in unportable mode - boost::filesystem::copy_file(file_path, file_path + ".unportable", boost::filesystem::copy_option::overwrite_if_exists); + tools::copy_file(file_path, file_path + ".unportable"); data_file.close(); data_file.open( file_path, std::ios_base::binary | std::ios_base::in); if(data_file.fail()) diff --git a/src/common/util.cpp b/src/common/util.cpp index 4b5e2adb8..d5f35ea7a 100644 --- a/src/common/util.cpp +++ b/src/common/util.cpp @@ -115,6 +115,24 @@ static int flock_exnb(int fd) namespace tools { + + void copy_file(const std::string& from, const std::string& to) + { + using boost::filesystem::path; + #if BOOST_VERSION < 107400 + // Remove this preprocessor if/else when we are bumping the boost version. + boost::filesystem::copy_file( + path(from), + path(to), + boost::filesystem::copy_option::overwrite_if_exists); + #else + boost::filesystem::copy_file( + path(from), + path(to), + boost::filesystem::copy_options::overwrite_existing); + #endif + } + std::function<void(int)> signal_handler::m_handler; private_file::private_file() noexcept : m_handle(), m_filename() {} diff --git a/src/common/util.h b/src/common/util.h index f489594e8..cfc0fb692 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -67,6 +67,8 @@ namespace tools } }; + void copy_file(const std::string& from, const std::string& to); + //! A file restricted to process owner AND process. Deletes file on destruction. class private_file { std::unique_ptr<std::FILE, close_file> m_handle; |
