From 0b9435858b7bfc68b9a73d6b26eb6c8c5c0d7f13 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 15 Oct 2019 16:49:17 +0200 Subject: [PATCH] storage/curl: unescape file names from PROPFIND This is the last missing piece for https://github.com/MusicPlayerDaemon/MPD/issues/662 --- src/storage/plugins/CurlStorage.cxx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/storage/plugins/CurlStorage.cxx b/src/storage/plugins/CurlStorage.cxx index 581a0cca4..ee1c00845 100644 --- a/src/storage/plugins/CurlStorage.cxx +++ b/src/storage/plugins/CurlStorage.cxx @@ -122,6 +122,10 @@ public: std::rethrow_exception(postponed_error); } + CURL *GetEasy() noexcept { + return request.Get(); + } + protected: void SetDone() { assert(!done); @@ -277,6 +281,7 @@ public: // TODO: send request body } + using BlockingHttpRequest::GetEasy; using BlockingHttpRequest::Wait; protected: @@ -524,10 +529,7 @@ protected: if (escaped_name.IsNull()) return; - // TODO: unescape - const auto name = escaped_name; - - entries.emplace_front(std::string(name.data, name.size)); + entries.emplace_front(CurlUnescape(GetEasy(), escaped_name)); auto &info = entries.front().info; info = StorageFileInfo(r.collection