storage/nfs: assume UTF-8 when accessing NFS from Windows

Fixes two build failures with libnfs on Windows.
This commit is contained in:
Max Kellermann 2018-02-24 22:13:16 +01:00
parent f3e683bd6f
commit 774d26b982

View File

@ -219,7 +219,12 @@ UriToNfsPath(const char *_uri_utf8)
std::string uri_utf8("/"); std::string uri_utf8("/");
uri_utf8.append(_uri_utf8); uri_utf8.append(_uri_utf8);
#ifdef _WIN32
/* assume UTF-8 when accessing NFS from Windows */
return uri_utf8;
#else
return AllocatedPath::FromUTF8Throw(uri_utf8.c_str()).Steal(); return AllocatedPath::FromUTF8Throw(uri_utf8.c_str()).Steal();
#endif
} }
std::string std::string
@ -358,7 +363,14 @@ NfsListDirectoryOperation::CollectEntries(struct nfsdir *dir)
const struct nfsdirent *ent; const struct nfsdirent *ent;
while ((ent = connection.ReadDirectory(dir)) != nullptr) { while ((ent = connection.ReadDirectory(dir)) != nullptr) {
#ifdef _WIN32
/* assume UTF-8 when accessing NFS from Windows */
const auto name_fs = AllocatedPath::FromUTF8Throw(ent->name);
if (name_fs.IsNull())
continue;
#else
const Path name_fs = Path::FromFS(ent->name); const Path name_fs = Path::FromFS(ent->name);
#endif
if (SkipNameFS(name_fs.c_str())) if (SkipNameFS(name_fs.c_str()))
continue; continue;