X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=input.cpp;h=81bc2dc4ea4d396ce6d9d7855b211919aff878e4;hb=e3f2936e3c9ff3b5569759c1aaed16f03bf728f8;hp=dba6cf38b26b3ca87a6a953c8842600012e0124b;hpb=0f36a8f674788a6ee10ff54ae72619b384c62b9d;p=cubemap diff --git a/input.cpp b/input.cpp index dba6cf3..81bc2dc 100644 --- a/input.cpp +++ b/input.cpp @@ -30,6 +30,13 @@ void split_user_host(const string &user_host, string *user, string *host) // Extremely rudimentary URL parsing. bool parse_url(const string &url, string *protocol, string *user, string *host, string *port, string *path) { + // pipe:foo (or pipe:"foo"). + if (url.find("pipe:") == 0) { + *protocol = "pipe"; + *path = string(url.begin() + 5, url.end()); + return true; + } + size_t split = url.find("://"); if (split == string::npos) { return false; @@ -100,7 +107,7 @@ Input *create_input(const string &url, Input::Encoding encoding) if (!parse_url(url, &protocol, &user, &host, &port, &path)) { return nullptr; } - if (protocol == "http") { + if (protocol == "http" || protocol == "pipe") { return new HTTPInput(url, encoding); } if (protocol == "udp") { @@ -116,7 +123,7 @@ Input *create_input(const InputProto &serialized) if (!parse_url(serialized.url(), &protocol, &user, &host, &port, &path)) { return nullptr; } - if (protocol == "http") { + if (protocol == "http" || protocol == "pipe") { return new HTTPInput(serialized); } if (protocol == "udp") {