Commit 8f74bf31 authored by Max Kellermann's avatar Max Kellermann

input/curl: add method CurlInputStream::Open()

parent 0dd5ebbd
......@@ -178,6 +178,9 @@ struct CurlInputStream {
CurlInputStream(const CurlInputStream &) = delete;
CurlInputStream &operator=(const CurlInputStream &) = delete;
static InputStream *Open(const char *url, Mutex &mutex, Cond &cond,
Error &error);
bool Check(Error &error);
bool IsEOF() const {
......@@ -1174,27 +1177,29 @@ input_curl_seek(InputStream *is, InputPlugin::offset_type offset,
return c.Seek(offset, whence, error);
}
static InputStream *
input_curl_open(const char *url, Mutex &mutex, Cond &cond,
Error &error)
inline InputStream *
CurlInputStream::Open(const char *url, Mutex &mutex, Cond &cond,
Error &error)
{
if (memcmp(url, "http://", 7) != 0 &&
memcmp(url, "https://", 8) != 0)
return nullptr;
CurlInputStream *c = new CurlInputStream(url, mutex, cond);
if (!c->InitEasy(error)) {
if (!c->InitEasy(error) || !input_curl_easy_add_indirect(c, error)) {
delete c;
return nullptr;
}
if (!input_curl_easy_add_indirect(c, error)) {
delete c;
return &c->base;
}
static InputStream *
input_curl_open(const char *url, Mutex &mutex, Cond &cond,
Error &error)
{
if (memcmp(url, "http://", 7) != 0 &&
memcmp(url, "https://", 8) != 0)
return nullptr;
}
return &c->base;
return CurlInputStream::Open(url, mutex, cond, error);
}
const struct InputPlugin input_plugin_curl = {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment