summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kellermann <max@musicpd.org>2018-02-24 22:13:16 +0100
committerMax Kellermann <max@musicpd.org>2018-02-24 22:44:42 +0100
commit774d26b982aa317f98d2ff6a5cee80f6e2babb33 (patch)
tree748be45806d504909aa2bac618e49d4c35a3082a
parentf3e683bd6ff464295826e2e760c7a67588038a04 (diff)
storage/nfs: assume UTF-8 when accessing NFS from Windows
Fixes two build failures with libnfs on Windows.
-rw-r--r--src/storage/plugins/NfsStorage.cxx12
1 files changed, 12 insertions, 0 deletions
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;