updates
Some checks reported errors
BlockStorage/repertory/pipeline/head Something is wrong with the build of this commit

This commit is contained in:
2024-08-28 17:15:35 -05:00
parent 685e715884
commit e6bd5834f8
2 changed files with 42 additions and 5 deletions

View File

@ -479,8 +479,7 @@ auto winfsp_drive::get_security_by_name(
if (descriptor_size != nullptr) {
ULONG size{};
PSECURITY_DESCRIPTOR sec_desc{};
if (::ConvertStringSecurityDescriptorToSecurityDescriptor(
if (::ConvertStringSecurityDescriptorToSecurityDescriptorA(
"O:BAG:BAD:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FA;;;WD)",
SDDL_REVISION_1, &sec_desc, &size) != 0) {
if (size > *descriptor_size) {
@ -511,6 +510,11 @@ auto winfsp_drive::GetSecurityByName(PWSTR file_name, PUINT32 attributes,
std::uint64_t sds = descriptor_size == nullptr ? 0U : *descriptor_size;
auto ret = get_security_by_name(file_name, attributes, descriptor,
sds > 0U ? &sds : nullptr);
if (attributes != nullptr) {
event_system::instance().raise<debug_log>(
std::string{function_name}, api_path,
std::to_string(*attributes & FILE_ATTRIBUTE_DIRECTORY));
}
if (sds != 0U) {
*descriptor_size = static_cast<SIZE_T>(sds);
}
@ -709,6 +713,8 @@ auto winfsp_drive::Open(PWSTR file_name, UINT32 create_options,
std::uint64_t handle{};
std::shared_ptr<i_open_file> file;
error = fm_->open(api_path, directory, ofd, handle, file);
event_system::instance().raise<debug_log>(
std::string{function_name}, api_path, std::to_string(handle));
if (error == api_error::success) {
api_meta_map meta;
error = provider_.get_item_meta(api_path, meta);
@ -899,6 +905,7 @@ auto winfsp_drive::ReadDirectory(PVOID /*file_node*/, PVOID file_desc,
static constexpr const std::string_view function_name{
static_cast<const char *>(__FUNCTION__),
};
event_system::instance().raise<debug_log>(std::string{function_name}, "", "");
std::string api_path;
auto error = api_error::invalid_handle;

View File

@ -72,9 +72,16 @@ encrypt_provider::encrypt_provider(app_config &config) : config_(config) {}
auto encrypt_provider::create_api_file(
const std::string &api_path, bool directory,
const std::string &source_path) -> api_file {
static constexpr const std::string_view function_name{
static_cast<const char *>(__FUNCTION__),
};
#if defined(_WIN32)
struct _stat64 buf {};
_stat64(source_path.c_str(), &buf);
auto res = _stat64(source_path.c_str(), &buf);
event_system::instance().raise<debug_log>(
std::string{function_name}, source_path,
std::to_string(res) + ':' + std::to_string(directory));
#else
struct stat buf {};
stat(source_path.c_str(), &buf);
@ -130,9 +137,15 @@ auto encrypt_provider::create_api_file(
void encrypt_provider::create_item_meta(api_meta_map &meta, bool directory,
const api_file &file) {
static constexpr const std::string_view function_name{
static_cast<const char *>(__FUNCTION__),
};
#if defined(_WIN32)
struct _stat64 buf {};
_stat64(file.source_path.c_str(), &buf);
auto res = _stat64(file.source_path.c_str(), &buf);
event_system::instance().raise<debug_log>(
std::string{function_name}, file.source_path, std::to_string(res));
#else
struct stat buf {};
stat(file.source_path.c_str(), &buf);
@ -435,9 +448,13 @@ auto encrypt_provider::get_file_list(api_file_list &list) const -> api_error {
};
const auto cfg = config_.get_encrypt_config();
event_system::instance().raise<debug_log>(std::string{function_name},
cfg.path, "");
try {
for (auto &&dir_entry : utils::file::directory{cfg.path}.get_items()) {
event_system::instance().raise<debug_log>(
std::string{function_name}, cfg.path, dir_entry->get_path());
std::string api_path{};
if (process_directory_entry(*dir_entry.get(), cfg, api_path)) {
list.emplace_back(create_api_file(
@ -486,6 +503,10 @@ auto encrypt_provider::get_file_size(
auto encrypt_provider::get_filesystem_item(
const std::string &api_path, bool directory,
filesystem_item &fsi) const -> api_error {
static constexpr const std::string_view function_name{
static_cast<const char *>(__FUNCTION__),
};
auto result = db::db_select{*db_, source_table}
.column("source_path")
.where("api_path")
@ -498,6 +519,9 @@ auto encrypt_provider::get_filesystem_item(
auto source_path = row->get_column("source_path").get_value<std::string>();
event_system::instance().raise<debug_log>(
std::string{function_name}, source_path, std::to_string(directory));
if (directory) {
result = db::db_select{*db_, directory_table}
.column("api_path")
@ -588,6 +612,10 @@ auto encrypt_provider::get_pinned_files() const -> std::vector<std::string> {
auto encrypt_provider::get_item_meta(const std::string &api_path,
api_meta_map &meta) const -> api_error {
static constexpr const std::string_view function_name{
static_cast<const char *>(__FUNCTION__),
};
auto result = db::db_select{*db_, source_table}
.column("source_path")
.where("api_path")
@ -607,6 +635,8 @@ auto encrypt_provider::get_item_meta(const std::string &api_path,
}
auto file = create_api_file(api_path, exists, source_path);
event_system::instance().raise<debug_log>(
std::string{function_name}, api_path, exists ? "true" : "false");
create_item_meta(meta, exists, file);
return api_error::success;
}
@ -695,7 +725,7 @@ auto encrypt_provider::is_file_writeable(const std::string & /*api_path*/) const
}
auto encrypt_provider::is_online() const -> bool {
return utils::file::file{
return utils::file::directory{
config_.get_encrypt_config().path,
}
.exists();