From 51320f9a0902f09533375da650d5b0655d6455e0 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Fri, 23 Aug 2024 14:39:27 -0500 Subject: [PATCH] refactor --- .../winfsp/remotewinfsp/remote_client.hpp | 4 +- .../winfsp/remotewinfsp/remote_client.cpp | 130 ++++++++++++------ .../winfsp/remotewinfsp/remote_server.cpp | 16 ++- 3 files changed, 102 insertions(+), 48 deletions(-) diff --git a/repertory/librepertory/include/drives/winfsp/remotewinfsp/remote_client.hpp b/repertory/librepertory/include/drives/winfsp/remotewinfsp/remote_client.hpp index da3eed0e..126b6208 100644 --- a/repertory/librepertory/include/drives/winfsp/remotewinfsp/remote_client.hpp +++ b/repertory/librepertory/include/drives/winfsp/remotewinfsp/remote_client.hpp @@ -42,9 +42,9 @@ private: private: #if defined(_WIN32) #define to_handle(x) (x) -#else +#else // !defined(_WIN32) static auto to_handle(PVOID file_desc) -> native_handle; -#endif +#endif // defined(_WIN32) public: auto json_create_directory_snapshot(const std::string &path, json &json_data) diff --git a/repertory/librepertory/src/drives/winfsp/remotewinfsp/remote_client.cpp b/repertory/librepertory/src/drives/winfsp/remotewinfsp/remote_client.cpp index 4cf11984..3b1c9213 100644 --- a/repertory/librepertory/src/drives/winfsp/remotewinfsp/remote_client.cpp +++ b/repertory/librepertory/src/drives/winfsp/remotewinfsp/remote_client.cpp @@ -65,7 +65,10 @@ auto remote_client::winfsp_can_delete(PVOID file_desc, request.encode(file_name); std::uint32_t service_flags{}; - const auto ret = packet_client_.send(function_name, request, service_flags); + auto ret{ + packet_client_.send(function_name, request, service_flags), + }; + RAISE_REMOTE_WINFSP_CLIENT_EVENT( function_name, utils::path::create_api_path(utils::string::to_utf8(file_name)), ret); @@ -83,8 +86,9 @@ auto remote_client::json_create_directory_snapshot( packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; if (ret == 0) { ret = packet::decode_json(response, json_data); } @@ -107,8 +111,9 @@ auto remote_client::json_read_directory_snapshot( packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; if (ret == 0) { ret = packet::decode_json(response, json_data); } @@ -129,7 +134,9 @@ auto remote_client::json_release_directory_snapshot( request.encode(handle); std::uint32_t service_flags{}; - const auto ret = packet_client_.send(function_name, request, service_flags); + auto ret{ + packet_client_.send(function_name, request, service_flags), + }; RAISE_REMOTE_WINFSP_CLIENT_EVENT(function_name, path, ret); return ret; @@ -142,8 +149,14 @@ auto remote_client::winfsp_cleanup(PVOID file_desc, PWSTR file_name, static_cast(__FUNCTION__), }; - auto handle = to_handle(file_desc); - const auto file_path = get_open_file_path(handle); + auto handle{ + to_handle(file_desc), + }; + + auto file_path{ + get_open_file_path(handle), + }; + was_closed = 0; packet request; @@ -153,8 +166,9 @@ auto remote_client::winfsp_cleanup(PVOID file_desc, PWSTR file_name, packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; DECODE_OR_IGNORE(&response, was_closed); if (was_closed != 0U) { remove_all(file_path); @@ -168,15 +182,21 @@ auto remote_client::winfsp_close(PVOID file_desc) -> packet::error_type { static_cast(__FUNCTION__), }; - auto handle = to_handle(file_desc); + auto handle{ + to_handle(file_desc), + }; if (has_open_info(handle, STATUS_INVALID_HANDLE) == STATUS_SUCCESS) { - const auto file_path = get_open_file_path(handle); + auto file_path{ + get_open_file_path(handle), + }; packet request; request.encode(file_desc); std::uint32_t service_flags{}; - const auto ret = packet_client_.send(function_name, request, service_flags); + auto ret{ + packet_client_.send(function_name, request, service_flags), + }; if ((ret == STATUS_SUCCESS) || (ret == static_cast(STATUS_INVALID_HANDLE))) { remove_open_info(handle); @@ -206,8 +226,9 @@ auto remote_client::winfsp_create(PWSTR file_name, UINT32 create_options, packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; if (ret == STATUS_SUCCESS) { HANDLE handle{}; DECODE_OR_IGNORE(&response, handle); @@ -243,8 +264,9 @@ auto remote_client::winfsp_flush(PVOID file_desc, remote::file_info *file_info) packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; DECODE_OR_IGNORE(&response, *file_info); RAISE_REMOTE_WINFSP_CLIENT_EVENT( @@ -274,8 +296,9 @@ auto remote_client::winfsp_get_file_info( packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; DECODE_OR_IGNORE(&response, *file_info); RAISE_REMOTE_WINFSP_CLIENT_EVENT( @@ -298,8 +321,9 @@ auto remote_client::winfsp_get_security_by_name( packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; string_descriptor.clear(); DECODE_OR_IGNORE(&response, string_descriptor); @@ -326,8 +350,9 @@ auto remote_client::winfsp_get_volume_info( packet request; packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; DECODE_OR_IGNORE(&response, total_size); DECODE_OR_IGNORE(&response, free_size); DECODE_OR_IGNORE(&response, volume_label); @@ -346,8 +371,13 @@ auto remote_client::winfsp_mounted(const std::wstring &location) request.encode(location); std::uint32_t service_flags{}; - const auto ret = packet_client_.send(function_name, request, service_flags); - const auto mount_location = utils::string::to_utf8(location); + auto ret{ + packet_client_.send(function_name, request, service_flags), + }; + + auto mount_location{ + utils::string::to_utf8(location), + }; event_system::instance().raise(mount_location); RAISE_REMOTE_WINFSP_CLIENT_EVENT(function_name, mount_location, ret); @@ -369,8 +399,9 @@ auto remote_client::winfsp_open( packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; if (ret == STATUS_SUCCESS) { HANDLE handle{}; DECODE_OR_IGNORE(&response, handle); @@ -406,8 +437,9 @@ auto remote_client::winfsp_overwrite( packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; DECODE_OR_IGNORE(&response, *file_info); RAISE_REMOTE_WINFSP_CLIENT_EVENT( @@ -429,8 +461,9 @@ auto remote_client::winfsp_read(PVOID file_desc, PVOID buffer, UINT64 offset, packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; DECODE_OR_IGNORE(&response, *bytes_transferred); if (ret == STATUS_SUCCESS) { ret = response.decode(buffer, *bytes_transferred); @@ -464,8 +497,9 @@ auto remote_client::winfsp_read_directory(PVOID file_desc, PWSTR pattern, packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; if (ret == STATUS_SUCCESS) { ret = packet::decode_json(response, item_list); } @@ -489,7 +523,10 @@ auto remote_client::winfsp_rename( request.encode(replace_if_exists); std::uint32_t service_flags{}; - const auto ret = packet_client_.send(function_name, request, service_flags); + auto ret{ + packet_client_.send(function_name, request, service_flags), + }; + RAISE_REMOTE_WINFSP_CLIENT_EVENT( function_name, utils::path::create_api_path(utils::string::to_utf8(file_name)) + "|" + @@ -516,8 +553,9 @@ auto remote_client::winfsp_set_basic_info( packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; DECODE_OR_IGNORE(&response, *file_info); RAISE_REMOTE_WINFSP_CLIENT_EVENT( @@ -539,8 +577,9 @@ auto remote_client::winfsp_set_file_size( packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; DECODE_OR_IGNORE(&response, *file_info); RAISE_REMOTE_WINFSP_CLIENT_EVENT( @@ -554,13 +593,17 @@ auto remote_client::winfsp_unmounted(const std::wstring &location) static_cast(__FUNCTION__), }; - const auto mount_location = utils::string::to_utf8(location); + auto mount_location{ + utils::string::to_utf8(location), + }; event_system::instance().raise(mount_location); packet request; request.encode(location); std::uint32_t service_flags{}; - const auto ret = packet_client_.send(function_name, request, service_flags); + auto ret{ + packet_client_.send(function_name, request, service_flags), + }; event_system::instance().raise(mount_location); RAISE_REMOTE_WINFSP_CLIENT_EVENT(function_name, mount_location, ret); @@ -587,8 +630,9 @@ auto remote_client::winfsp_write( packet response; std::uint32_t service_flags{}; - auto ret = - packet_client_.send(function_name, request, response, service_flags); + auto ret{ + packet_client_.send(function_name, request, response, service_flags), + }; DECODE_OR_IGNORE(&response, *bytes_transferred); DECODE_OR_IGNORE(&response, *file_info); @@ -603,5 +647,5 @@ auto remote_client::winfsp_write( auto remote_client::to_handle(PVOID file_desc) -> native_handle { return static_cast(reinterpret_cast(file_desc)); } -#endif +#endif // !defined(_WIN32) } // namespace repertory::remote_winfsp diff --git a/repertory/librepertory/src/drives/winfsp/remotewinfsp/remote_server.cpp b/repertory/librepertory/src/drives/winfsp/remotewinfsp/remote_server.cpp index 3bff5c2b..4b36202d 100644 --- a/repertory/librepertory/src/drives/winfsp/remotewinfsp/remote_server.cpp +++ b/repertory/librepertory/src/drives/winfsp/remotewinfsp/remote_server.cpp @@ -111,12 +111,22 @@ auto remote_server::fuse_access(const char *path, const std::int32_t &mask) static_cast(__FUNCTION__), }; - const auto file_path = construct_path(path); - const auto windows_mask = utils::unix_access_mask_to_windows(mask); + auto file_path{ + construct_path(path), + }; + + auto windows_mask{ + utils::unix_access_mask_to_windows(mask), + }; + auto res{ _access(file_path.c_str(), windows_mask), }; - const auto ret = ((res < 0) ? -errno : 0); + + auto ret{ + ((res < 0) ? -errno : 0), + }; + RAISE_REMOTE_WINFSP_SERVER_EVENT(function_name, file_path, ret); return ret; }