mirror of
https://github.com/wownero/wownero.git
synced 2026-10-22 18:08:34 +02:00
epee: allow shared Windows file reads
Opening a file with a zero sharing mode makes read-only access exclusive on Windows. Allow read and write sharing so callers can inspect files that are already open, such as active log files.
This commit is contained in:
@@ -107,7 +107,7 @@ namespace file_io_utils
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
std::wstring wide_path;
|
std::wstring wide_path;
|
||||||
try { wide_path = string_tools::utf8_to_utf16(path_to_file); } catch (...) { return false; }
|
try { wide_path = string_tools::utf8_to_utf16(path_to_file); } catch (...) { return false; }
|
||||||
HANDLE file_handle = CreateFileW(wide_path.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
HANDLE file_handle = CreateFileW(wide_path.c_str(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
if (file_handle == INVALID_HANDLE_VALUE)
|
if (file_handle == INVALID_HANDLE_VALUE)
|
||||||
return false;
|
return false;
|
||||||
DWORD file_size = GetFileSize(file_handle, NULL);
|
DWORD file_size = GetFileSize(file_handle, NULL);
|
||||||
|
|||||||
@@ -136,6 +136,10 @@ TEST(logging, all)
|
|||||||
ASSERT_TRUE(str.find("error") != std::string::npos);
|
ASSERT_TRUE(str.find("error") != std::string::npos);
|
||||||
ASSERT_TRUE(str.find("debug") != std::string::npos);
|
ASSERT_TRUE(str.find("debug") != std::string::npos);
|
||||||
ASSERT_TRUE(str.find("trace") != std::string::npos);
|
ASSERT_TRUE(str.find("trace") != std::string::npos);
|
||||||
|
|
||||||
|
MINFO("after active log read");
|
||||||
|
ASSERT_TRUE(load_log_to_string(log_filename, str));
|
||||||
|
ASSERT_TRUE(str.find("after active log read") != std::string::npos);
|
||||||
cleanup();
|
cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user