From 28d1789f04c0b9301808def0afb2cd9e058948fa Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Fri, 4 Apr 2025 13:21:07 -0500 Subject: [PATCH] debugging --- .../src/drives/fuse/fuse_drive.cpp | 66 ++++++++++--------- .../winfsp/remotewinfsp/remote_client.cpp | 3 +- 2 files changed, 36 insertions(+), 33 deletions(-) diff --git a/repertory/librepertory/src/drives/fuse/fuse_drive.cpp b/repertory/librepertory/src/drives/fuse/fuse_drive.cpp index a84fe21b..9ae824c4 100644 --- a/repertory/librepertory/src/drives/fuse/fuse_drive.cpp +++ b/repertory/librepertory/src/drives/fuse/fuse_drive.cpp @@ -85,8 +85,8 @@ auto fuse_drive::chown_impl(std::string api_path, uid_t uid, gid_t gid, struct fuse_file_info * /*file_info*/) -> api_error { #else -auto fuse_drive::chown_impl(std::string api_path, uid_t uid, - gid_t gid) -> api_error { +auto fuse_drive::chown_impl(std::string api_path, uid_t uid, gid_t gid) + -> api_error { #endif return check_and_perform( api_path, X_OK, [&](api_meta_map &meta) -> api_error { @@ -464,7 +464,7 @@ auto fuse_drive::get_file_size(const std::string &api_path) const std::uint64_t file_size{}; auto res = provider_.get_file_size(api_path, file_size); - if (res == api_error::success) { + if (res != api_error::success) { utils::error::raise_api_path_error(function_name, api_path, res, "failed to get file size from provider"); } @@ -494,8 +494,8 @@ auto fuse_drive::getattr_impl(std::string api_path, struct stat *unix_st, struct fuse_file_info * /*file_info*/) -> api_error { #else -auto fuse_drive::getattr_impl(std::string api_path, - struct stat *unix_st) -> api_error { +auto fuse_drive::getattr_impl(std::string api_path, struct stat *unix_st) + -> api_error { #endif auto parent = utils::path::get_parent_api_path(api_path); @@ -561,8 +561,8 @@ auto fuse_drive::getxtimes_impl(std::string api_path, struct timespec *bkuptime, #endif // __APPLE__ #if FUSE_USE_VERSION >= 30 -auto fuse_drive::init_impl(struct fuse_conn_info *conn, - struct fuse_config *cfg) -> void * { +auto fuse_drive::init_impl(struct fuse_conn_info *conn, struct fuse_config *cfg) + -> void * { #else void *fuse_drive::init_impl(struct fuse_conn_info *conn) { #endif @@ -804,8 +804,9 @@ auto fuse_drive::release_impl(std::string /*api_path*/, return api_error::success; } -auto fuse_drive::releasedir_impl( - std::string /*api_path*/, struct fuse_file_info *file_info) -> api_error { +auto fuse_drive::releasedir_impl(std::string /*api_path*/, + struct fuse_file_info *file_info) + -> api_error { auto iter = directory_cache_->get_directory(file_info->fh); if (iter == nullptr) { return api_error::invalid_handle; @@ -823,8 +824,8 @@ auto fuse_drive::rename_directory(const std::string &from_api_path, } auto fuse_drive::rename_file(const std::string &from_api_path, - const std::string &to_api_path, - bool overwrite) -> int { + const std::string &to_api_path, bool overwrite) + -> int { auto res = fm_->rename_file(from_api_path, to_api_path, overwrite); errno = std::abs(utils::from_api_error(res)); return (res == api_error::success) ? 0 : -1; @@ -834,8 +835,8 @@ auto fuse_drive::rename_file(const std::string &from_api_path, auto fuse_drive::rename_impl(std::string from_api_path, std::string to_api_path, unsigned int /*flags*/) -> api_error { #else -auto fuse_drive::rename_impl(std::string from_api_path, - std::string to_api_path) -> api_error { +auto fuse_drive::rename_impl(std::string from_api_path, std::string to_api_path) + -> api_error { #endif auto res = check_parent_access(to_api_path, W_OK | X_OK); if (res != api_error::success) { @@ -937,15 +938,15 @@ auto fuse_drive::getxattr_impl(std::string api_path, const char *name, } #else // __APPLE__ auto fuse_drive::getxattr_impl(std::string api_path, const char *name, - char *value, size_t size, - int &attribute_size) -> api_error { + char *value, size_t size, int &attribute_size) + -> api_error { return getxattr_common(api_path, name, value, size, attribute_size, nullptr); } #endif // __APPLE__ auto fuse_drive::listxattr_impl(std::string api_path, char *buffer, size_t size, - int &required_size, - bool &return_size) -> api_error { + int &required_size, bool &return_size) + -> api_error { auto check_size = (size == 0); auto res = check_parent_access(api_path, X_OK); @@ -985,8 +986,8 @@ auto fuse_drive::listxattr_impl(std::string api_path, char *buffer, size_t size, return res; } -auto fuse_drive::removexattr_impl(std::string api_path, - const char *name) -> api_error { +auto fuse_drive::removexattr_impl(std::string api_path, const char *name) + -> api_error { std::string attribute_name; #if defined(__APPLE__) auto res = parse_xattr_parameters(name, 0, attribute_name, api_path); @@ -1014,8 +1015,8 @@ auto fuse_drive::setxattr_impl(std::string api_path, const char *name, uint32_t position) -> api_error { #else // __APPLE__ auto fuse_drive::setxattr_impl(std::string api_path, const char *name, - const char *value, size_t size, - int flags) -> api_error { + const char *value, size_t size, int flags) + -> api_error { #endif std::string attribute_name; #if defined(__APPLE__) @@ -1093,8 +1094,8 @@ void fuse_drive::set_item_meta(const std::string &api_path, } #if defined(__APPLE__) -auto fuse_drive::setattr_x_impl(std::string api_path, - struct setattr_x *attr) -> api_error { +auto fuse_drive::setattr_x_impl(std::string api_path, struct setattr_x *attr) + -> api_error { bool exists{}; auto res = provider_.is_file(api_path, exists); if (res != api_error::success) { @@ -1148,7 +1149,7 @@ auto fuse_drive::setattr_x_impl(std::string api_path, ts[0].tv_sec = attr->acctime.tv_sec; ts[0].tv_nsec = attr->acctime.tv_nsec; } else { - struct timeval tv {}; + struct timeval tv{}; gettimeofday(&tv, NULL); ts[0].tv_sec = tv.tv_sec; ts[0].tv_nsec = tv.tv_usec * 1000; @@ -1193,8 +1194,9 @@ auto fuse_drive::setattr_x_impl(std::string api_path, return api_error::success; } -auto fuse_drive::setbkuptime_impl( - std::string api_path, const struct timespec *bkuptime) -> api_error { +auto fuse_drive::setbkuptime_impl(std::string api_path, + const struct timespec *bkuptime) + -> api_error { return check_and_perform( api_path, X_OK, [&](api_meta_map &meta) -> api_error { auto nanos = bkuptime->tv_nsec + @@ -1230,8 +1232,8 @@ auto fuse_drive::setvolname_impl(const char * /*volname*/) -> api_error { return api_error::success; } -auto fuse_drive::statfs_x_impl(std::string /*api_path*/, - struct statfs *stbuf) -> api_error { +auto fuse_drive::statfs_x_impl(std::string /*api_path*/, struct statfs *stbuf) + -> api_error { if (statfs(&config_.get_cache_directory()[0], stbuf) != 0) { return api_error::os_error; } @@ -1256,8 +1258,8 @@ auto fuse_drive::statfs_x_impl(std::string /*api_path*/, return api_error::success; } #else // __APPLE__ -auto fuse_drive::statfs_impl(std::string /*api_path*/, - struct statvfs *stbuf) -> api_error { +auto fuse_drive::statfs_impl(std::string /*api_path*/, struct statvfs *stbuf) + -> api_error { if (statvfs(config_.get_cache_directory().data(), stbuf) != 0) { return api_error::os_error; } @@ -1341,8 +1343,8 @@ auto fuse_drive::utimens_impl(std::string api_path, const struct timespec tv[2], struct fuse_file_info * /*file_info*/) -> api_error { #else -auto fuse_drive::utimens_impl(std::string api_path, - const struct timespec tv[2]) -> api_error { +auto fuse_drive::utimens_impl(std::string api_path, const struct timespec tv[2]) + -> api_error { #endif api_meta_map meta; auto res = provider_.get_item_meta(api_path, meta); diff --git a/repertory/librepertory/src/drives/winfsp/remotewinfsp/remote_client.cpp b/repertory/librepertory/src/drives/winfsp/remotewinfsp/remote_client.cpp index c4ac810f..1ff69a07 100644 --- a/repertory/librepertory/src/drives/winfsp/remotewinfsp/remote_client.cpp +++ b/repertory/librepertory/src/drives/winfsp/remotewinfsp/remote_client.cpp @@ -188,6 +188,8 @@ auto remote_client::winfsp_create(PWSTR file_name, UINT32 create_options, DECODE_OR_IGNORE(&response, normalized_name); DECODE_OR_IGNORE(&response, exists); + fmt::println("{}|{}", exists, ret); + if (exists == 0U) { *file_desc = reinterpret_cast(handle); set_open_info(to_handle(*file_desc), @@ -205,7 +207,6 @@ auto remote_client::winfsp_create(PWSTR file_name, UINT32 create_options, #endif // defined(_WIN32) } - fmt::println("{}|{}|{}", utils::string::to_utf8(file_name), exists, ret); return ret; }