Commit 3040ddb5 authored by Max Kellermann's avatar Max Kellermann

lib/nfs/FileReader: use `struct stat64` on Windows 32-bit

libnfs is compiled with `-D_FILE_OFFSET_BITS=64`, but Meson decides not to enable this mode. We could force this mode, but then again, these days, nobody should be using 32-bit Windows ... so this is a kludge only for debugging with 32-bit WINE.
parent fdb28eb0
...@@ -196,11 +196,20 @@ NfsFileReader::OpenCallback(nfsfh *_fh) noexcept ...@@ -196,11 +196,20 @@ NfsFileReader::OpenCallback(nfsfh *_fh) noexcept
} }
inline void inline void
NfsFileReader::StatCallback(const struct stat *st) noexcept NfsFileReader::StatCallback(const struct stat *_st) noexcept
{ {
assert(connection != nullptr); assert(connection != nullptr);
assert(fh != nullptr); assert(fh != nullptr);
assert(st != nullptr); assert(_st != nullptr);
#if defined(_WIN32) && !defined(_WIN64)
/* on 32-bit Windows, libnfs enables -D_FILE_OFFSET_BITS=64,
but MPD (Meson) doesn't - to work around this mismatch, we
cast explicitly to "struct stat64" */
const auto *st = (const struct stat64 *)_st;
#else
const auto *st = _st;
#endif
if (!S_ISREG(st->st_mode)) { if (!S_ISREG(st->st_mode)) {
OnNfsFileError(std::make_exception_ptr(std::runtime_error("Not a regular file"))); OnNfsFileError(std::make_exception_ptr(std::runtime_error("Not a regular file")));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment