diff --git a/src/output/output_httpts.cpp b/src/output/output_httpts.cpp index 9ce66e2e..bb34c5b4 100644 --- a/src/output/output_httpts.cpp +++ b/src/output/output_httpts.cpp @@ -111,26 +111,14 @@ namespace Mist{ bool OutHTTPTS::isRecording(){return config->getString("target").size();} - void OutHTTPTS::onHTTP(){ - std::string method = H.method; - initialize(); - H.clearHeader("Range"); - H.clearHeader("Icy-MetaData"); - H.clearHeader("User-Agent"); - H.clearHeader("Host"); - H.clearHeader("Accept-Ranges"); - H.clearHeader("transferMode.dlna.org"); - H.SetHeader("Content-Type", "video/mpeg"); - H.setCORSHeaders(); - if (method == "OPTIONS" || method == "HEAD"){ - H.SendResponse("200", "OK", myConn); - H.Clean(); - return; + void OutHTTPTS::respondHTTP(const HTTP::Parser & req, bool headersOnly){ + HTTPOutput::respondHTTP(req, headersOnly); + H.protocol = "HTTP/1.0"; + H.SendResponse("200", "OK", myConn); + if (!headersOnly){ + parseData = true; + wantRequest = false; } - H.protocol = "HTTP/1.0"; // Force HTTP/1.0 because some devices just don't understand chunked replies - H.StartResponse(H, myConn); - parseData = true; - wantRequest = false; } void OutHTTPTS::sendTS(const char *tsData, size_t len){ diff --git a/src/output/output_httpts.h b/src/output/output_httpts.h index 939cebef..5a2d5cb3 100644 --- a/src/output/output_httpts.h +++ b/src/output/output_httpts.h @@ -7,7 +7,7 @@ namespace Mist{ OutHTTPTS(Socket::Connection &conn); ~OutHTTPTS(); static void init(Util::Config *cfg); - void onHTTP(); + void respondHTTP(const HTTP::Parser & req, bool headersOnly); void sendTS(const char *tsData, size_t len = 188); void initialSeek(bool dryRun = false);