diff --git a/NEWS b/NEWS index 4a9441cd6..112b9d7c1 100644 --- a/NEWS +++ b/NEWS @@ -71,6 +71,10 @@ ver 0.24 (not yet released) * require Meson 1.0 ver 0.23.17 (not yet released) +* storage + - nfs: require libnfs 4.0 or later +* database + - inotify: trigger update after symlink was created * support libfmt 11.1 ver 0.23.16 (2024/12/03) diff --git a/src/client/File.cxx b/src/client/File.cxx index fa1e3ec4f..26ded863b 100644 --- a/src/client/File.cxx +++ b/src/client/File.cxx @@ -12,7 +12,7 @@ Client::AllowFile(Path path_fs) const #ifdef _WIN32 (void)path_fs; - throw ProtocolError(ACK_ERROR_PERMISSION, "Access denied"); + throw ProtocolError(ACK_ERROR_PERMISSION, "Access to local files not implemented on Windows"); #else if (uid >= 0 && (uid_t)uid == geteuid()) /* always allow access if user runs his own MPD @@ -21,12 +21,12 @@ Client::AllowFile(Path path_fs) const if (uid < 0) /* unauthenticated client */ - throw ProtocolError(ACK_ERROR_PERMISSION, "Access denied"); + throw ProtocolError(ACK_ERROR_PERMISSION, "Access to local files via TCP is not allowed"); const FileInfo fi(path_fs); if (fi.GetUid() != (uid_t)uid && (fi.GetMode() & 0444) != 0444) /* client is not owner */ - throw ProtocolError(ACK_ERROR_PERMISSION, "Access denied"); + throw ProtocolError(ACK_ERROR_PERMISSION, "Access to this local file denied due to file permissions"); #endif } diff --git a/src/db/update/InotifyUpdate.cxx b/src/db/update/InotifyUpdate.cxx index aae3206ee..f66a7e750 100644 --- a/src/db/update/InotifyUpdate.cxx +++ b/src/db/update/InotifyUpdate.cxx @@ -279,6 +279,10 @@ InotifyUpdate::OnInotify(int wd, unsigned mask, const char *) } if ((mask & (IN_CLOSE_WRITE|IN_MOVE|IN_DELETE)) != 0 || + /* regular file or symlink was created; this check is only + interesting for symlinks because regular files have + usable content only after IN_CLOSE_WRITE */ + (mask & (IN_CREATE|IN_ISDIR)) == IN_CREATE || /* at the maximum depth, we watch out for newly created directories */ (directory.GetDepth() == max_depth && diff --git a/test/meson.build b/test/meson.build index d8e1688eb..ba91336d9 100644 --- a/test/meson.build +++ b/test/meson.build @@ -84,6 +84,7 @@ if zeroconf_dep.found() include_directories: inc, dependencies: [ zeroconf_dep, + event_dep, util_dep, ], ) @@ -202,6 +203,7 @@ if neighbor_glue_dep.found() include_directories: inc, dependencies: [ neighbor_glue_dep, + event_dep, ], ) endif @@ -271,6 +273,7 @@ if enable_database '../src/LocateUri.cxx', include_directories: inc, dependencies: [ + event_dep, log_dep, tag_dep, fs_dep, @@ -307,6 +310,7 @@ if curl_dep.found() include_directories: inc, dependencies: [ curl_dep, + event_dep, ], )