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

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

parent 0dd5ebbd
...@@ -178,6 +178,9 @@ struct CurlInputStream { ...@@ -178,6 +178,9 @@ struct CurlInputStream {
CurlInputStream(const CurlInputStream &) = delete; CurlInputStream(const CurlInputStream &) = delete;
CurlInputStream &operator=(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 Check(Error &error);
bool IsEOF() const { bool IsEOF() const {
...@@ -1174,27 +1177,29 @@ input_curl_seek(InputStream *is, InputPlugin::offset_type offset, ...@@ -1174,27 +1177,29 @@ input_curl_seek(InputStream *is, InputPlugin::offset_type offset,
return c.Seek(offset, whence, error); return c.Seek(offset, whence, error);
} }
static InputStream * inline InputStream *
input_curl_open(const char *url, Mutex &mutex, Cond &cond, CurlInputStream::Open(const char *url, Mutex &mutex, Cond &cond,
Error &error) Error &error)
{ {
if (memcmp(url, "http://", 7) != 0 &&
memcmp(url, "https://", 8) != 0)
return nullptr;
CurlInputStream *c = new CurlInputStream(url, mutex, cond); CurlInputStream *c = new CurlInputStream(url, mutex, cond);
if (!c->InitEasy(error)) { if (!c->InitEasy(error) || !input_curl_easy_add_indirect(c, error)) {
delete c; delete c;
return nullptr; return nullptr;
} }
if (!input_curl_easy_add_indirect(c, error)) { return &c->base;
delete c; }
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 nullptr;
}
return &c->base; return CurlInputStream::Open(url, mutex, cond, error);
} }
const struct InputPlugin input_plugin_curl = { 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