- 05 May, 2020 14 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
The `db->close()` call was a `nullptr` dereference because the `db` variable had already been moved. Closes https://github.com/MusicPlayerDaemon/MPD/issues/839
-
Max Kellermann authored
This is the final piece of the series to establish io_uring support on Linux. MPD doesn't need io_uring for its efficient bulk I/O support, but to allow file I/O to be cancelled. This is a big problem on CIFS/NFS mounts where processes sleep uninterruptable if the file server disappears, deadlocking MPD. With io_uring, a flaky NFS connection allows MPD to continue to work (even though there are still deadlocks inside MPD which need to be addressed). This plugin does not yet use cancellable `open()` using `IORING_OP_OPENAT`. This will be implemented later. Lots of other optimization opportunities for io_uring are still missing as well - for example the database update could benefit a lot, but unfortunately, io_uring doesn't have `readdir()` support just yet.
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
Relax the assertions. This is necessary if BlockingCall() is used before the thread is started.
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
This makes ccache more efficient when recompiling with different plugins.
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 30 Apr, 2020 3 commits
-
-
skidoo23 authored
-
Max Kellermann authored
The command is used to configure the client's connection, and this shouldn't require any permissions. The client should be able to do that before sending a password.
-
Max Kellermann authored
This reverts commit a5273d69. It was wrong and broke the MixRamp unit test. Closes https://github.com/MusicPlayerDaemon/MPD/issues/844
-
- 29 Apr, 2020 3 commits
-
-
Rosen Penev authored
_GLIBCXX_USE_C99_MATH_TR1 is the correct one. _GLIBCXX_USE_C99_MATH is always defined.
-
Max Kellermann authored
-
skidoo23 authored
-
- 27 Apr, 2020 3 commits
-
-
Sören Tempel authored
The parser implemented in libmpdclient requires the first key-value pair of the server response to be the file pair. This is due to the fact that libmpdclient scan pairs sequentially and first attempts to extract the file pair before parsing the currentsong response further. See: https://github.com/MusicPlayerDaemon/libmpdclient/blob/5c751a761ec9f71a43ee0e41cfff3208f31a58b8/src/song.c#L559-L563 Meta data encoded as pairs in the currentsong response will be ignored if they are placed before the file pair in the response.
-
Max Kellermann authored
Fixes breakage of non-ASCII characters, regression from commit cc72ceb3 Fixes https://github.com/MusicPlayerDaemon/MPD/issues/842
-
Max Kellermann authored
Prepare to fix cc72ceb3
-
- 26 Apr, 2020 2 commits
-
-
John Regan authored
-
John Regan authored
Also include fade-out time in song length.
-
- 24 Apr, 2020 8 commits
-
-
Max Kellermann authored
Closes https://github.com/MusicPlayerDaemon/MPD/issues/838
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
This reduces resource waste for resizing the std::vector in most cases.
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
Optimizes a few nanoseconds from the common code path.
-
Max Kellermann authored
-
- 23 Apr, 2020 7 commits
-
-
Naglis Jonaitis authored
-
Max Kellermann authored
release v0.21.23
-
Max Kellermann authored
-
Max Kellermann authored
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.
-
Max Kellermann authored
Fixes Path::IsNull() checks on Windows.
-
Max Kellermann authored
-
Max Kellermann authored
This fixes a freeze bug in the NFS input/storage plugins: when libnfs auto-reconnets after a failure, it installs the new socket on the same file descriptor number. MPD's attempt to unregister the old socket by calling SocketMonitor::Steal() from NfsConnection::ScheduleSocket() fails because the new/old socket number is not registered in epoll, so epoll_ctl() returns ENOENT. The problem is that it left `scheduled_flags`, and so subsequent Schedule() calls will use `EPOLL_CTL_MOD`, which will fail again and again. Instead, we need to use `EPOLL_CTL_ADD` to register the new socket. Closes https://github.com/MusicPlayerDaemon/MPD/issues/806 Closes https://github.com/MusicPlayerDaemon/MPD/issues/756
-