| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
The assumption that MIME type is set only once is not valid with CURL,
as URL redirections may update the MIME type.
This fixes bug #3044.
|
|
|
|
|
|
|
| |
According to the CURL web site, curl_multi_timeout() was added in
version 7.15.4:
http://curl.haxx.se/libcurl/c/curl_multi_timeout.html
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some users reported that MPD crashes when using a new CURL version
with the threaded DNS resolver enabled. It seems that
curl_multi_fdset() returns no file descriptor when the DNS resolver
runs in another thread, so MPD does not have any event to wait for.
On the CURL mailing list, somebody suggested to sleep for a fixed
amount of time. This is not an elegant solution, because daemons
should never have to sleep without waiting for an event. I hope the
CURL developers will review the API and remove the threaded DNS
resolver.
Meanwhile, I'm removing the assertion in question, to allow those
unfortunate users running the latest CURL version to continue using
MPD.
|
|
|
|
|
| |
Use curl_multi_timeout() to determine the select() timeout, instead of
hard-coding one second.
|
| |
|
| |
|
|
|
|
| |
This has been reimplemented in the "rewind" input plugin.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces the rewinding buffer code from the CURL input plugin.
It is more generic, and allows rewinding even when the server sends
Icy-Metadata (which would have been too difficult to implement within
the CURL plugin).
This is a rather complex patch for the stable branch (v0.15.x), but it
fixes a serious problem: the "vorbis" decoder plugin was unable to
play streams with Icy-Metadata, because it couldn't rewind the stream
after detecting the codec (Vorbis vs. FLAC).
|
|
|
|
| |
Fixed memory leak in error handler.
|
|
|
|
|
| |
This code has never made any sense, and has broken some of the archive
plugin.
|
|
|
|
| |
Should be "lastfm_user", not "lastfm_username".
|
|
|
|
|
|
|
| |
When the connection is lost while buffering, the CURL input plugin may
enter an endless loop, because it does not check the EOF condition.
This patch makes fill_buffer() return success only if there's at least
one buffer, which is enough of a check.x
|
|
|
|
|
|
|
|
|
| |
When a received chunk of data has only icy-metadata, there was no
usable data left for input_curl_read() to return, and thus it returned
0 bytes. "0" however is a special value for "end of file" or
"error". This patch makes input_curl_read() read more data from the
socket, until the read request can be fulfilled (or until there's
really EOF).
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
If a file is removed the library, next time mpd will try to play it it
will result in an error 'ERROR: problems decoding some/file.ogg'.
Nothing is written in log files (verbose mode or not)
[mk: append strerror(errno)]
|
|
|
|
|
| |
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
|
|
|
|
|
| |
The old global settings "http_proxy_host", "http_proxy_port",
"http_proxy_user" and "http_proxy_password" continue to work.
|
| |
|
|
|
|
|
|
|
|
| |
This updates the copyright header to all be the same, which is
pretty much an update of where to mail request for a copy of the GPL
and the years of the MPD project. This also puts all committers under
'The Music Player Project' umbrella. These entries should go
individually in the AUTHORS file, for consistancy.
|
|
|
|
|
| |
[mk: fixed whitespace errors; use delete_song() instead of
songvec_delete()]
|
|
|
|
|
| |
The GLIB_CHECK_VERSION() macro was used improperly, which broke build
on GLib < 2.14. Add a "!" for negation.
|
|
|
|
|
|
|
| |
The lastfm input plugin enables MPD to play lastfm:// URLs. This
plugin is not complete yet: it plays only the first song in the
last.fm playlist, and the playlist parser isn't even implemented
properly.
|
|
|
|
|
| |
Allow input plugins to configure with an "input" block in mpd.conf.
Also allow the user to disable a plugin completely.
|
|
|
|
|
|
| |
Instead of hard-coding the plugin global initialization in
input_stream_global_init(), make it walk the plugin list and
initialize all plugins.
|
|
Create a sub directory for input plugins.
|