winfsp unit tests and fixes
This commit is contained in:
parent
3871e44732
commit
8018ce51a0
@ -986,22 +986,22 @@ auto remote_server::winfsp_create(PWSTR file_name, UINT32 create_options,
|
|||||||
{utils::string::to_utf8(file_name)}))
|
{utils::string::to_utf8(file_name)}))
|
||||||
.exists());
|
.exists());
|
||||||
|
|
||||||
auto create_flags{FILE_FLAG_BACKUP_SEMANTICS};
|
attributes |= FILE_FLAG_BACKUP_SEMANTICS;
|
||||||
if ((create_options & FILE_DIRECTORY_FILE) != 0U) {
|
if ((create_options & FILE_DIRECTORY_FILE) != 0U) {
|
||||||
create_flags |= FILE_FLAG_POSIX_SEMANTICS;
|
attributes |= FILE_FLAG_POSIX_SEMANTICS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((create_options & FILE_DELETE_ON_CLOSE) != 0U) {
|
if ((create_options & FILE_DELETE_ON_CLOSE) != 0U) {
|
||||||
create_flags |= FILE_FLAG_DELETE_ON_CLOSE;
|
attributes |= FILE_FLAG_DELETE_ON_CLOSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
attributes |=
|
attributes |=
|
||||||
((create_options & FILE_DIRECTORY_FILE) == 0U ? FILE_ATTRIBUTE_ARCHIVE
|
((create_options & FILE_DIRECTORY_FILE) == 0U ? FILE_ATTRIBUTE_ARCHIVE
|
||||||
: FILE_ATTRIBUTE_DIRECTORY);
|
: FILE_ATTRIBUTE_DIRECTORY);
|
||||||
auto *handle = ::CreateFileW(
|
auto *handle =
|
||||||
file_path.c_str(), granted_access,
|
::CreateFileW(file_path.c_str(), granted_access,
|
||||||
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, nullptr,
|
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||||
CREATE_NEW, static_cast<DWORD>(create_flags) | attributes, nullptr);
|
nullptr, CREATE_NEW, attributes, nullptr);
|
||||||
if (handle != INVALID_HANDLE_VALUE) {
|
if (handle != INVALID_HANDLE_VALUE) {
|
||||||
*file_desc = reinterpret_cast<PVOID>(handle);
|
*file_desc = reinterpret_cast<PVOID>(handle);
|
||||||
normalized_name = utils::string::to_utf8(file_name);
|
normalized_name = utils::string::to_utf8(file_name);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user