aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-11-10 08:45:19 +0100
committerMax Kellermann <max@duempel.org>2014-11-10 08:45:19 +0100
commitff6f1655f0441f2fa8a1947bf242ea2cce6ba7a7 (patch)
treea4d50b8cd1e869b36e792c696e8a634252702596
parentb5ba94f1de06c621da937241eedfcfb100f26a09 (diff)
downloadmpd-ff6f1655f0441f2fa8a1947bf242ea2cce6ba7a7.tar.gz
mpd-ff6f1655f0441f2fa8a1947bf242ea2cce6ba7a7.tar.xz
mpd-ff6f1655f0441f2fa8a1947bf242ea2cce6ba7a7.zip
input/curl: ignore ResponseBoundary() while seeking
While seeking, metadata must not be updated. ResponseBoundary() was added in MPD 0.19.1, but I forgot to add the IsSeeking() check there. This caused the "seekable" flag to reset.
Diffstat (limited to '')
-rw-r--r--NEWS2
-rw-r--r--src/input/plugins/CurlInputPlugin.cxx4
2 files changed, 6 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index f18e9ff0f..3d28b44c8 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,8 @@ ver 0.19.3 (not yet released)
- fix "(null)" result string to "list" when AlbumArtist is disabled
* database
- upnp: fix breakage due to malformed URIs
+* input
+ - curl: another fix for redirected streams
* decoder
- audiofile: fix crash while playing streams
- ffmpeg: support opus
diff --git a/src/input/plugins/CurlInputPlugin.cxx b/src/input/plugins/CurlInputPlugin.cxx
index 1e1a46108..abb7e312c 100644
--- a/src/input/plugins/CurlInputPlugin.cxx
+++ b/src/input/plugins/CurlInputPlugin.cxx
@@ -610,6 +610,10 @@ CurlInputStream::ResponseBoundary()
/* undo all effects of HeaderReceived() because the previous
response was not applicable for this stream */
+ if (IsSeekPending())
+ /* don't update metadata while seeking */
+ return;
+
seekable = false;
size = UNKNOWN_SIZE;
ClearMimeType();