Age | Commit message (Collapse) | Author |
|
|
|
|
|
Found with cppcoreguidelines-special-member-functions
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
Found with cppcoreguidelines-special-member-functions
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
|
|
With the default value CURLAUTH_ANY, libcurl needs to probe for
authentication methods first, and only the second request will have an
Authorization header.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1155
|
|
|
|
ParseTimePoint.
%Z is a glibc extension to strptime, and is a no-op there, due to the
mapping between timezone names and their definition (especially when the
name comes from a different machine) being ambiguous / impossible. Time
in HTTP headers is guaranteed to be UTC.
Passing an unknown format to strptime() implementations that don't
support it will generally cause them to return NULL, which will lead to
ParseTimePoint throwing an exception and ParseTimeStamp using an
unnecessary fallback.
Since the timezone name goes at the end of the string, we don't need to
use %Z to skip it (could be an issue in a different time stamp format),
so simply removing %Z works best.
|
|
Preparing for a variant of TimerEvent with coarse 1-second
granularity, but cheaper (with a timer wheel).
|
|
release v0.22.4
|
|
Found with cppcoreguidelines-interfaces-global-init
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
The original base relative path was introduced due to an erroneous test
where the URL started with three slashes: "https:///" instead of two,
which led to implementing handling for such cases but broke the two
slashes case.
This fix removes the base relative path handling because with two
slashes the path is anyway always relative to the host (aka absolute
URI, without host).
This reverts 216f62ea1468933f4a78f17885b27e37e1393d8c and part of 74b2fc7fdca9be13cbbe4cb52b2fab573b3cf82c
Signed-off-by: Vincent Petry <PVince81@yahoo.fr>
|
|
|
|
Use uri_has_scheme to find out if the href in Webdav responses is absolute
to use the matching base path extraction.
Signed-off-by: Vincent Petry <PVince81@yahoo.fr>
|
|
Fixed Webdav base path stripping in cases where href is a relative path.
Signed-off-by: Vincent Petry <PVince81@yahoo.fr>
|
|
There can be more than one propstat block each with their own status
code. We're only interested in the one with the 200 status, the found
properties.
This fixes parsing to make sure we process all propstat blocks instead
of just the last one, which might have a 404 status for not-found
properties.
Signed-off-by: Vincent Petry <PVince81@yahoo.fr>
|
|
Remove additional "a:prop" in PROPFIND request to match RFC 4918 section 9.1.3.
Added Content-Type header as the body is not a true multipart POST.
Signed-off-by: Vincent Petry <PVince81@yahoo.fr>
|
|
|
|
|
|
|
|
|
|
Pass a std::string to PathTraitsUTF8::Relative(), implicitly casting
it to std::string_view. This selects the right overload which returns
std::string_view instead of `const char *`; the latter could return
`nullptr` which would cause the implicit conversion of the return
value to std::string_view to crash.
Regression caused by commits ead208987dd and a98d627c0bd.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/995
|
|
Found with modernize-avoid-bind
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
Found with performance-move-const-arg
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
|
|
Eliminate some duplicate code.
|
|
This per-object Mutex replaces the global `smbclient_mutex`.
|
|
|
|
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
|
|
|
|
|
|
Mounting one storage URI twice on different mount points can lead to
conflicts with the database cache file, and it doesn't make a lot of
sense.
But most importantly, our udisks storage plugin will unmount the disk
from the kernel VFS, and if two exist, they will compete with each
others. We could (and should) fix this in the udisks storage plugin,
but for now, this workaround is good enough (and useful).
|
|
When mounting something over a directory that is already a mount
point, CompositeStorage::Mount() silently overwrites the previously
mounted storage, disposing it. After that, SimpleDatabase::Mount()
will fail and handle_mount() will roll back the
CompositeStorage::Mount() command, effectively unmounting what was
there before (and also leaking memory).
Closes https://github.com/MusicPlayerDaemon/MPD/issues/918
|
|
|
|
The ones in std have overloads for const char/char.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
|
|
release v0.21.23
|
|
Found with modernize-use-nodiscard
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
Unescape the base path and the path coming from the server (href) to fix the
comparison when the server uses different escaped characters.
The outputted name need to be unescaped. Doing that before or after the
HrefToEscapedName() call should not change the current behavior.
|
|
If the file name is "Hello & bye", 3 CharacterData events will be sent with the
State::HREF state:
- "Hello%20"
- "&"
- "%20bye"
Reproduced with files hosted on an apache2 DAV server: 2.4.38-3+deb10u3.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Found with readability-uppercase-literal-suffix
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
|