Compare commits
2 Commits
ece42df528
...
3e09adaba3
Author | SHA1 | Date | |
---|---|---|---|
3e09adaba3 | |||
e01ed2c1b8 |
@ -30,6 +30,7 @@
|
||||
#include "drives/remote/remote_open_file_table.hpp"
|
||||
#include "drives/winfsp/remotewinfsp/i_remote_instance.hpp"
|
||||
#include "events/event_system.hpp"
|
||||
#include "events/types/debug_log.hpp"
|
||||
#include "events/types/service_start_begin.hpp"
|
||||
#include "events/types/service_start_end.hpp"
|
||||
#include "events/types/service_stop_begin.hpp"
|
||||
@ -352,6 +353,11 @@ public:
|
||||
response.encode(bytes_transferred);
|
||||
buffer.resize(bytes_transferred);
|
||||
|
||||
event_system::instance().raise<debug_log>(
|
||||
function_name,
|
||||
fmt::format("read|offset|{}|len|{}|ret|{}|tx|{}", offset, length,
|
||||
ret, bytes_transferred));
|
||||
|
||||
if ((ret == STATUS_SUCCESS) && (bytes_transferred != 0U)) {
|
||||
response.encode(buffer.data(), bytes_transferred);
|
||||
}
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include "drives/directory_iterator.hpp"
|
||||
#include "drives/remote/remote_open_file_table.hpp"
|
||||
#include "events/event_system.hpp"
|
||||
#include "events/types/debug_log.hpp"
|
||||
#include "events/types/remote_server_event.hpp"
|
||||
#include "platform/platform.hpp"
|
||||
#include "types/remote.hpp"
|
||||
@ -1370,7 +1371,7 @@ auto remote_server::winfsp_read(PVOID file_desc, PVOID buffer, UINT64 offset,
|
||||
-> packet::error_type {
|
||||
REPERTORY_USES_FUNCTION_NAME();
|
||||
|
||||
*bytes_transferred = 0;
|
||||
*bytes_transferred = 0U;
|
||||
|
||||
auto handle = reinterpret_cast<remote::file_handle>(file_desc);
|
||||
auto ret = static_cast<packet::error_type>(
|
||||
@ -1378,12 +1379,18 @@ auto remote_server::winfsp_read(PVOID file_desc, PVOID buffer, UINT64 offset,
|
||||
if (ret == STATUS_SUCCESS) {
|
||||
auto res = pread64(static_cast<native_handle>(handle), buffer, length,
|
||||
static_cast<off_t>(offset));
|
||||
event_system::instance().raise<debug_log>(
|
||||
function_name,
|
||||
fmt::format("read|offset|{}|len|{}|res|{}", offset, length, res));
|
||||
if (res >= 0) {
|
||||
*bytes_transferred = static_cast<UINT32>(res);
|
||||
} else {
|
||||
ret =
|
||||
static_cast<packet::error_type>(utils::unix_error_to_windows(errno));
|
||||
}
|
||||
event_system::instance().raise<debug_log>(
|
||||
function_name, fmt::format("read|offset|{}|len|{}|res|{}|tx|{}", offset,
|
||||
length, res, *bytes_transferred));
|
||||
}
|
||||
|
||||
RAISE_REMOTE_FUSE_SERVER_EVENT(
|
||||
@ -1586,7 +1593,8 @@ auto remote_server::winfsp_write(PVOID file_desc, PVOID buffer, UINT64 offset,
|
||||
-> packet::error_type {
|
||||
REPERTORY_USES_FUNCTION_NAME();
|
||||
|
||||
*bytes_transferred = 0;
|
||||
*bytes_transferred = 0U;
|
||||
|
||||
auto handle = reinterpret_cast<remote::file_handle>(file_desc);
|
||||
auto ret = static_cast<packet::error_type>(
|
||||
has_open_info(static_cast<native_handle>(handle), STATUS_INVALID_HANDLE));
|
||||
|
@ -352,7 +352,6 @@ auto remote_winfsp_drive::Read(PVOID /*file_node*/, PVOID file_desc,
|
||||
auto ret = remote_instance_->winfsp_read(
|
||||
file_desc, buffer, offset, length,
|
||||
reinterpret_cast<PUINT32>(bytes_transferred));
|
||||
fmt::println("read|len|{}|ret|{}|bytes|{}", length, ret, *bytes_transferred);
|
||||
if ((ret == STATUS_SUCCESS) && (*bytes_transferred != length)) {
|
||||
::SetLastError(ERROR_HANDLE_EOF);
|
||||
}
|
||||
|
@ -340,10 +340,10 @@ static void test_overlapped_file(auto &&mount_location, auto &&file_path,
|
||||
read_buffer.clear();
|
||||
read_buffer.resize(buffer_size);
|
||||
overlapped.Offset = 3U * bytes_per_sector;
|
||||
fmt::println("size|{}|offset|{}|buf_size|{}", size.QuadPart,
|
||||
overlapped.Offset, buffer_size);
|
||||
ret = ::ReadFile(handle, read_buffer.data(), bytes_per_sector, &bytes_read,
|
||||
&overlapped);
|
||||
fmt::println("size|{}|offset|{}|read|{}|ret|{}|err|{}", size.QuadPart,
|
||||
overlapped.Offset, bytes_read, ret, ::GetLastError());
|
||||
EXPECT_TRUE(ret || ERROR_IO_PENDING == ::GetLastError() ||
|
||||
ERROR_HANDLE_EOF == ::GetLastError());
|
||||
if (ERROR_HANDLE_EOF != ::GetLastError()) {
|
||||
|
@ -157,7 +157,6 @@ TYPED_TEST(winfsp_test, rename_dir_succeeds_if_dest_does_not_exist) {
|
||||
ASSERT_TRUE(::CreateDirectoryA(dir_path.c_str(), nullptr));
|
||||
|
||||
EXPECT_TRUE(::MoveFileExA(dir_path.c_str(), dir_path2.c_str(), 0));
|
||||
fmt::println("error|{}", ::GetLastError());
|
||||
|
||||
EXPECT_TRUE(::RemoveDirectoryA(dir_path2.c_str()));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user