aboutsummaryrefslogtreecommitdiffstats
path: root/src/input/plugins/CurlInputPlugin.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
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().
2013-10-19*: use nullptr instead of NULLMax Kellermann1-34/+34
2013-10-19input/curl: use std::string for meta_nameMax Kellermann1-9/+5
Automatic memory management.
2013-10-19decoder/gme,input/curl,...: use static buffers instead of g_strdup_printf()Max Kellermann1-9/+7
2013-10-19Util/CharUtil: new library replacing g_ascii_isX()Max Kellermann1-2/+3
2013-10-18input/curl: use MultiSocketMonitor constants instead of GLibMax Kellermann1-3/+6
2013-10-17InputStream: use int64_t instead of goffsetMax Kellermann1-3/+4
Decouple some more from GLib.
2013-10-17input_plugin: rename struct to "InputPlugin"Max Kellermann1-2/+2
2013-10-14Mapper, ...: use memcmp() instead of strncmp() where appropriateMax Kellermann1-2/+2
Micro-optimization.
2013-10-02Log: new logging library APIMax Kellermann1-8/+8
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend.
2013-09-26input/curl: fix EventLoop stall after curl_easy_pauseArtem Savkov1-0/+1
When playing finite http streams, e.g. something from soundcloud, eventloop stalls after pausing writefunc. TimeoutMonitor is cancelled by the time resume happens, so when enough data is consumed writefunc is called only once. Calling InvalidateSockets() from input_curl_resume() seems to fix the issue.
2013-09-05Tag, ...: move to libtag.aMax Kellermann1-1/+1
2013-09-05input/curl: enable httpsAles Guzik1-1/+2
2013-09-05conf.h: remove obsolete headerMax Kellermann1-1/+2
Use only ConfigData.hxx in plugin sources to reduce header dependencies.
2013-09-05InputLegacy: move functions to the input_stream classMax Kellermann1-1/+1