aboutsummaryrefslogtreecommitdiffstats
path: root/src/input/CurlInputPlugin.cxx (follow)
Commit message (Collapse)AuthorAgeFilesLines
* input/curl: use class TagBuilderMax Kellermann2013-12-031-4/+10
|
* input/curl: work around stream resume bug (fixed in libcurl 7.32.0)Max Kellermann2013-11-231-0/+17
|
* input/curl: add global variable "curl_version"Max Kellermann2013-11-231-0/+7
|
* input/curl: dump version numberMax Kellermann2013-11-231-0/+8
|
* input/curl: unregister removed sockets from epollMax Kellermann2013-11-071-1/+9
| | | | Fixes a crash bug. See code comment.
* input/curl: fix bug with redirected streamsMax Kellermann2013-11-061-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.
* input/curl: move code into class CurlMultiMax Kellermann2013-11-061-43/+66
| | | | | Move all global variables there, and keep just one global variable: the pointer to the CurlMulti instance. Prepares for the next commit.
* input/curl: remove the global list of requestsMax Kellermann2013-11-061-13/+0
| | | | Unused.
* input/curl: don't abort all requests on curl_multi_perform() errorMax Kellermann2013-11-061-40/+7
| | | | Eliminate some complicated code that's not worth the trouble.
* input/curl: use CURLOPT_PRIVATEMax Kellermann2013-11-061-5/+7
| | | | Replaces the loop in input_curl_find_request().
* input_stream: rename struct to InputStreamMax Kellermann2013-10-231-10/+10
|
* InputInternal: remove obsolete libraryMax Kellermann2013-10-231-1/+0
|
* input/curl: don't use GLib's typedef "gushort"Max Kellermann2013-10-211-1/+2
|
* util/NumberParser: utilities for parsing numbers from ASCII stringsMax Kellermann2013-10-211-3/+3
|
* Util/ASCII: add function StringEqualsCaseASCII()Max Kellermann2013-10-201-7/+8
| | | | Replaces GLib's g_ascii_strcasecmp().
* *: use nullptr instead of NULLMax Kellermann2013-10-191-34/+34
|
* input/curl: use std::string for meta_nameMax Kellermann2013-10-191-9/+5
| | | | Automatic memory management.
* decoder/gme,input/curl,...: use static buffers instead of g_strdup_printf()Max Kellermann2013-10-191-9/+7
|
* Util/CharUtil: new library replacing g_ascii_isX()Max Kellermann2013-10-191-2/+3
|
* input/curl: use MultiSocketMonitor constants instead of GLibMax Kellermann2013-10-181-3/+6
|
* InputStream: use int64_t instead of goffsetMax Kellermann2013-10-171-3/+4
| | | | Decouple some more from GLib.
* input_plugin: rename struct to "InputPlugin"Max Kellermann2013-10-171-2/+2
|
* Mapper, ...: use memcmp() instead of strncmp() where appropriateMax Kellermann2013-10-141-2/+2
| | | | Micro-optimization.
* Log: new logging library APIMax Kellermann2013-10-021-8/+8
| | | | | Prepare to migrate away from GLib. Currently, we're still using GLib as a backend.
* input/curl: fix EventLoop stall after curl_easy_pauseArtem Savkov2013-09-261-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.
* Tag, ...: move to libtag.aMax Kellermann2013-09-051-1/+1
|
* input/curl: enable httpsAles Guzik2013-09-051-1/+2
|
* conf.h: remove obsolete headerMax Kellermann2013-09-051-1/+2
| | | | | Use only ConfigData.hxx in plugin sources to reduce header dependencies.
* InputLegacy: move functions to the input_stream classMax Kellermann2013-09-051-1/+1
|
* util/Error: new error passing libraryMax Kellermann2013-09-041-69/+58
| | | | Replaces GLib's GError.
* event/MultiSocketMonitor: eliminate virtual method CheckSockets()Max Kellermann2013-08-101-28/+0
| | | | Handle timeout internally.
* event/MultiSocketMonitor: PrepareSockets() returns timeoutMax Kellermann2013-08-101-6/+7
| | | | Simplify the API, don't use GLib specific integer type.
* event: add function BlockingCall()Max Kellermann2013-08-081-52/+21
| | | | | Replaces io_thread_call(). This approach is more generic and easier to use due to std::function.
* *: use gcc.h macros instead of GLibMax Kellermann2013-08-041-4/+5
|
* InputPlugin: pass config_param referenceMax Kellermann2013-08-041-6/+5
|
* tag: convert to C++Max Kellermann2013-07-301-15/+13
|
* require GLib 2.24Max Kellermann2013-01-291-1/+0
|
* InputStream: use std::stringMax Kellermann2013-01-281-3/+2
|
* InputStream: store references instead of pointersMax Kellermann2013-01-281-12/+12
|
* InputStream: add constructor/destructorMax Kellermann2013-01-281-4/+2
| | | | Eliminate input_stream_init() and input_stream_deinit().
* DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCondMax Kellermann2013-01-271-22/+17
|
* input_stream: forward-declare the structMax Kellermann2013-01-261-1/+2
| | | | Hide the definition from C code, to prepare the transition to C++.
* input_{internal,plugin}: convert to C++Max Kellermann2013-01-251-2/+2
|
* input_internal.h: add extern "C"Max Kellermann2013-01-211-4/+0
|
* input/Curl: break loop when remaining length becomes 0Max Kellermann2013-01-151-0/+6
| | | | Fixes assertion failure (regression).
* input/Curl: move code to class MultiSocketMonitorMax Kellermann2013-01-151-116/+60
|
* input/Curl: simpler GPollFD initialisationMax Kellermann2013-01-151-5/+2
| | | | Using initializer list.
* input/Curl: don't remove/add modified GPollFDMax Kellermann2013-01-151-9/+2
| | | | Not necessary, GLib will pick up the updated GPollFD automatically.
* Main, IOThread: move GMainLoop setup code to class EventLoopMax Kellermann2013-01-141-1/+3
|
* input/curl: use std::list instead of GQueueMax Kellermann2013-01-101-93/+80
|