From b7b2bb5f6870a60231de9ea5ac5a4e8f57c1465e Mon Sep 17 00:00:00 2001 From: Thulinma Date: Tue, 28 Jul 2015 20:23:06 +0200 Subject: [PATCH] Added CORS headers to HSS output, added HTTP OPTIONS support to HLS and HSS outputs. --- src/output/output_hls.cpp | 11 +++++++++++ src/output/output_hss.cpp | 12 ++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/output/output_hls.cpp b/src/output/output_hls.cpp index 7f2efe32..04105847 100644 --- a/src/output/output_hls.cpp +++ b/src/output/output_hls.cpp @@ -151,6 +151,17 @@ namespace Mist { return; } //crossdomain.xml + if (H.method == "OPTIONS"){ + H.Clean(); + H.SetHeader("Content-Type", "application/octet-stream"); + H.SetHeader("Cache-Control", "no-cache"); + H.setCORSHeaders(); + H.SetBody(""); + H.SendResponse("200", "OK", myConn); + H.Clean(); + return; + } + if (H.url.find("hls") == std::string::npos){ myConn.close(); return; diff --git a/src/output/output_hss.cpp b/src/output/output_hss.cpp index 76036eb3..3cb91656 100644 --- a/src/output/output_hss.cpp +++ b/src/output/output_hss.cpp @@ -281,6 +281,7 @@ namespace Mist { H.Clean(); H.SetHeader("Content-Type", "video/mp4"); + H.setCORSHeaders(); H.StartResponse(H, myConn); H.Chunkify(moof_box.asBox(), moof_box.boxedSize(), myConn); int size = htonl(keySize + 8); @@ -437,12 +438,23 @@ namespace Mist { void OutHSS::onHTTP() { + if (H.method == "OPTIONS"){ + H.Clean(); + H.SetHeader("Content-Type", "application/octet-stream"); + H.SetHeader("Cache-Control", "no-cache"); + H.setCORSHeaders(); + H.SetBody(""); + H.SendResponse("200", "OK", myConn); + H.Clean(); + return; + } initialize(); if (H.url.find("Manifest") != std::string::npos) { //Manifest, direct reply H.Clean(); H.SetHeader("Content-Type", "text/xml"); H.SetHeader("Cache-Control", "no-cache"); + H.setCORSHeaders(); std::string manifest = smoothIndex(); H.SetBody(manifest); H.SendResponse("200", "OK", myConn);