diff options
author | Max Kellermann <max@musicpd.org> | 2021-05-17 19:24:12 +0200 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2021-05-17 19:26:05 +0200 |
commit | 638dfc398184ff0d71c2a81c8c3eb99f649ac307 (patch) | |
tree | f46676a68767a47047acbcb0297ada3e6df9e4f3 | |
parent | 7c09e44ad46b65765a0d63627ea203fca68825ff (diff) |
{input,storage}/curl: set CURLOPT_HTTPAUTH=CURLAUTH_BASIC
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
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | src/input/plugins/CurlInputPlugin.cxx | 4 | ||||
-rw-r--r-- | src/storage/plugins/CurlStorage.cxx | 4 |
3 files changed, 10 insertions, 0 deletions
@@ -1,6 +1,8 @@ ver 0.22.7 (not yet released) * protocol - don't use glibc extension to parse time stamps +* input + - curl: send user/password in the first request, save one roundtrip * decoder - ffmpeg: fix build problem with FFmpeg 3.4 - gme: support RSN files diff --git a/src/input/plugins/CurlInputPlugin.cxx b/src/input/plugins/CurlInputPlugin.cxx index 86647f550..b3b6a9652 100644 --- a/src/input/plugins/CurlInputPlugin.cxx +++ b/src/input/plugins/CurlInputPlugin.cxx @@ -421,6 +421,10 @@ CurlInputStream::InitEasy() request->SetOption(CURLOPT_MAXREDIRS, 5L); request->SetOption(CURLOPT_FAILONERROR, 1L); + /* this option eliminates the probe request when + username/password are specified */ + request->SetOption(CURLOPT_HTTPAUTH, CURLAUTH_BASIC); + if (proxy != nullptr) request->SetOption(CURLOPT_PROXY, proxy); diff --git a/src/storage/plugins/CurlStorage.cxx b/src/storage/plugins/CurlStorage.cxx index 731f7e7b9..80c4dcdf3 100644 --- a/src/storage/plugins/CurlStorage.cxx +++ b/src/storage/plugins/CurlStorage.cxx @@ -262,6 +262,10 @@ public: request.SetOption(CURLOPT_FOLLOWLOCATION, 1L); request.SetOption(CURLOPT_MAXREDIRS, 1L); + /* this option eliminates the probe request when + username/password are specified */ + request.SetOption(CURLOPT_HTTPAUTH, CURLAUTH_BASIC); + request_headers.Append(StringFormat<40>("depth: %u", depth)); request_headers.Append("content-type: text/xml"); |