Age | Commit message (Collapse) | Author |
|
I havn't yet figured out how to use Android's system CA certificates
with CURL/OpenSSL, so a temporary workaround is to disable verify_peer
by default. The data MPD transfers isn't extremely important, so the
servers's authenticity isn't extremely important either.
|
|
|
|
|
|
|
|
|
|
My concept with `class CancellableOperation` doesn't work properly,
because the kernel may continue to write to the given buffer as soon
as the read finishes.
To fix this, this commit adds `class ReadOperation` which owns the
buffer and the `struct iovec`. Instances of this class persist until
the read really finishes, even if the operation is canceled.
|
|
Same as e10b867fe6ffbac1ac37a333dbd69597e4fc9f03 but it got lost in
the merge, because the v0.22 branch uses a different way to detect
supported protocols at runtime.
|
|
|
|
|
|
|
|
|
|
This is no longer necessary with the new API.
|
|
As a side effect, the input plugin closes the SMB/CIFS connection
after closing the file.
This solves one part of
https://github.com/MusicPlayerDaemon/MPD/issues/916
|
|
|
|
`LogLevel::INFO` is logged by default, but this message shall only
appear with `--verbose`.
This finally solves https://github.com/MusicPlayerDaemon/MPD/issues/430
|
|
Stop bothering people about the Tidal/Qobuz plugins.
|
|
|
|
|
|
A bug report (https://github.com/MusicPlayerDaemon/MPD/issues/912)
suggests that on Linux, reading on `cifs` files may rarely return 0 (=
end of file) before the end of the file has really been reached. But
that's just a theory which I need to validate, so this runtime check
shall catch this condition before the assertion in
DecoderBridge::Read() crashes MPD. Let's see.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/912
|
|
The ones in std have overloads for const char/char.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
Some more `-Wpedantic` fixups.
|
|
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.
|
|
This makes ccache more efficient when recompiling with different
plugins.
|
|
|
|
Fixes regression by commit 015cbff93da causing a crash bug because the
iterators of two different temporaries were used.
|
|
std::all_of becomes constexpr in C++20. I'm not sure it results in better
performance.
Found with useStlAlgorithm
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
Found with readability-uppercase-literal-suffix
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
|
|
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
'neheb/nvm22', 'neheb/bvm' and 'neheb/cl2'
|
|
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
Found with clang's -Winconsistent-missing-destructor-override
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
[[maybe_unused]] (introduced in C++17) is standard C++.
https://clang.llvm.org/docs/AttributeReference.html#maybe-unused-unused
says that this is equivalent to the GNU unused attribute.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
|
|
The former is deprecated by C++14. The standard says they are the same:
The header defines all types and macros the same as the C standard library
header<stdint.h>.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
The former is deprecated with C++14. The standard says both are the same:
The contents and meaning of the header<cstddef>are the same as the C
standard library header<stddef.h>,except that it does not declare the type
wchar_t, that it also declares the type byte and its associated
operations (21.2.5), and as noted in 21.2.3 and 21.2.4.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
The former was deprecated with C++14.
According to the C++11 and C++17 standards, both files are identical.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
Introduced in C++17. It replaces gcc's warn_unused_result.
Found with modernize-use-nodiscard.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
Found with llvm-namespace-comment
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
|
|
Found with readability-uppercase-literal-suffix
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
Found with performance-unnecessary-value-param
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
'neheb/bool2', 'neheb/perf', 'neheb/void' and 'neheb/value'
|
|
Found with modernize-redundant-void-arg
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
Found with performance-for-range-copy
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
|
|
|
|
|
|
|
|
Found with modernize-use-override
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|