aboutsummaryrefslogtreecommitdiffstats
path: root/src/input/plugins/CurlInputPlugin.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-11-10input/curl: ignore ResponseBoundary() while seekingMax Kellermann1-0/+4
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.
2014-11-02input/curl: forget Content-Length (and more) after redirectMax Kellermann1-0/+26
Fixes playback of redirected streams.
2014-11-01input/curl: fix curl_easy_setopt() parameter typesMax Kellermann1-3/+3
2014-09-16CurlInputPlugin: fix crash after second init callThomas Guillem1-0/+1
The second time init was called, http_200_aliases pointed to a freed pointer and leaded to a SEGFAULT.
2014-08-07util/StringUtil: add StripRight() overload with "end" argumentMax Kellermann1-6/+3
2014-07-11input/curl: options "verify_peer" and "verify_host"Max Kellermann1-0/+8
2014-06-17input/curl: hold mutex while writing to postponed_errorMax Kellermann1-3/+4
2014-05-24input/curl: move code to AsyncInputStreamMax Kellermann1-211/+48
New base class for other InputStream implementations that run in the I/O thread.
2014-05-24input/curl: call SetReady() only if not yet readyMax Kellermann1-1/+2
Fixes assertion failure.
2014-05-24input/curl: include cleanupMax Kellermann1-7/+0
2014-05-22InputStream: make Seek() always absoluteMax Kellermann1-24/+3
Remove the "whence" parameter that is not actually necessary, and only complicates the InputStream implementations.
2014-05-21input/curl: relock mutex in error pathsMax Kellermann1-2/+7
2014-05-21input/curl: pass remaining size to CircularBuffer::Append()Max Kellermann1-1/+1
2014-05-21input/curl: move code to IcyInputStreamMax Kellermann1-86/+16
2014-05-11InputStream: remove attribute "plugin"Max Kellermann1-1/+1
2014-05-11InputStream: make various methods abstractMax Kellermann1-71/+19
Replace InputPlugin attributes.
2014-05-11InputStream: add virtual destructorMax Kellermann1-9/+0
Replaces the method Close().
2014-05-11input/plugins: make InputStream the base classMax Kellermann1-51/+49
Prepare for adding virtual methods.
2014-05-11InputStream: convert to classMax Kellermann1-7/+4
2014-03-16input/curl: use CircularBufferMax Kellermann1-133/+75
Replaces its own weird buffering code.
2014-03-15input/curl: add method CurlInputStream::Open()Max Kellermann1-12/+17
2014-03-15input/curl: move _seek() into the CurlInputStream classMax Kellermann1-38/+44
2014-03-15input/curl: move _easy_init() into the CurlInputStream classMax Kellermann1-30/+30
2014-03-15input/curl: pass std::string&& to HeaderReceived()Max Kellermann1-25/+8
Code simplification.
2014-03-15input/curl: move code to CurlInputStream methodsMax Kellermann1-178/+231
2014-03-15input/curl: rename "error" to "error_buffer"Max Kellermann1-3/+3
2014-03-15input/curl: rename struct input_curl to CurlInputStreamMax Kellermann1-32/+32
2014-03-02InputPlugin: allow init() to soft-failMax Kellermann1-4/+6
Add enum InputResult which is a tri-state. Input plugins may now fail and just become unavailable.
2014-02-22input/curl: include cleanupMax Kellermann1-1/+0
2014-01-24Input*: move to input/Max Kellermann1-2/+2
2014-01-24Config*: move to config/Max Kellermann1-2/+2
2014-01-13copyright year 2014Max Kellermann1-1/+1
2014-01-08tag/TagBuilder: overload Commit() returning a Tag objectMax Kellermann1-1/+1
2014-01-08tag/TagBuilder: rename Commit() to CommitNew()Max Kellermann1-1/+1
2014-01-06event/SocketMonitor: don't close the socket automaticallyMax Kellermann1-2/+0
Users now have to call Close() explicitly. This simplifies using the class, as most users have automatic socket management already, and Steal() had to be used often.
2013-12-03input/curl: use class TagBuilderMax Kellermann1-4/+10
2013-11-23input/curl: work around stream resume bug (fixed in libcurl 7.32.0)Max Kellermann1-0/+17
2013-11-23input/curl: add global variable "curl_version"Max Kellermann1-0/+7
2013-11-23input/curl: dump version numberMax Kellermann1-0/+8
2013-11-07input/curl: unregister removed sockets from epollMax Kellermann1-1/+9
Fixes a crash bug. See code comment.
2013-11-06input/curl: fix bug with redirected streamsMax Kellermann1-110/+138
Migrate from the old curl_multi_perform() API to the newer curl_multi_socket_action() API (since CURL 7.16). This allows working around a bug with HTTP redirections with epoll: when CURL closes a socket and the new one happens to have the same file number, MPD did not have a chance to remove the old one from epoll and subsequently attempted to use EPOLL_CTL_MOD, which was not allowed by epoll, because it's a new socket now.
2013-11-06input/curl: move code into class CurlMultiMax Kellermann1-43/+66
Move all global variables there, and keep just one global variable: the pointer to the CurlMulti instance. Prepares for the next commit.
2013-11-06input/curl: remove the global list of requestsMax Kellermann1-13/+0
Unused.
2013-11-06input/curl: don't abort all requests on curl_multi_perform() errorMax Kellermann1-40/+7
Eliminate some complicated code that's not worth the trouble.
2013-11-06input/curl: use CURLOPT_PRIVATEMax Kellermann1-5/+7
Replaces the loop in input_curl_find_request().
2013-10-23input_stream: rename struct to InputStreamMax Kellermann1-10/+10
2013-10-23InputInternal: remove obsolete libraryMax Kellermann1-1/+0
2013-10-21input/curl: don't use GLib's typedef "gushort"Max Kellermann1-1/+2
2013-10-21util/NumberParser: utilities for parsing numbers from ASCII stringsMax Kellermann1-3/+3
2013-10-20Util/ASCII: add function StringEqualsCaseASCII()Max Kellermann1-7/+8
Replaces GLib's g_ascii_strcasecmp().