From 774d26b982aa317f98d2ff6a5cee80f6e2babb33 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 24 Feb 2018 22:13:16 +0100 Subject: [PATCH] storage/nfs: assume UTF-8 when accessing NFS from Windows Fixes two build failures with libnfs on Windows. --- src/storage/plugins/NfsStorage.cxx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/storage/plugins/NfsStorage.cxx b/src/storage/plugins/NfsStorage.cxx index 53549bead..e7e5eb828 100644 --- a/src/storage/plugins/NfsStorage.cxx +++ b/src/storage/plugins/NfsStorage.cxx @@ -219,7 +219,12 @@ UriToNfsPath(const char *_uri_utf8) std::string 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(); +#endif } std::string @@ -358,7 +363,14 @@ NfsListDirectoryOperation::CollectEntries(struct nfsdir *dir) const struct nfsdirent *ent; 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); +#endif if (SkipNameFS(name_fs.c_str())) continue;