Added support for HTTP parameters in HTTPS protocol
This commit is contained in:
parent
da5e15621e
commit
d46eaf22e5
3 changed files with 66 additions and 14 deletions
|
@ -281,14 +281,17 @@ namespace Mist {
|
|||
DTSC::Scan prots = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("config").getMember("protocols");
|
||||
unsigned int prots_ctr = prots.getSize();
|
||||
|
||||
for (unsigned int i=0; i < prots_ctr; ++i){
|
||||
if (prots.getIndice(i).getMember("connector").asString() == connector) {
|
||||
id = i;
|
||||
break; //pick the first protocol in the list that matches the connector
|
||||
JSON::Value p;//properties of protocol
|
||||
if (connector == "HTTP" || connector == "HTTP.exe"){
|
||||
//restore from values in the environment, regardless of configged settings
|
||||
if (getenv("MIST_HTTP_nostreamtext")){
|
||||
p["nostreamtext"] = getenv("MIST_HTTP_nostreamtext");
|
||||
}
|
||||
}
|
||||
if (id == -1) {
|
||||
connector = connector + ".exe";
|
||||
if (getenv("MIST_HTTP_pubaddr")){
|
||||
p["pubaddr"] = getenv("MIST_HTTP_pubaddr");
|
||||
}
|
||||
}else{
|
||||
//find connector in config
|
||||
for (unsigned int i=0; i < prots_ctr; ++i){
|
||||
if (prots.getIndice(i).getMember("connector").asString() == connector) {
|
||||
id = i;
|
||||
|
@ -296,12 +299,23 @@ namespace Mist {
|
|||
}
|
||||
}
|
||||
if (id == -1) {
|
||||
connector = connector.substr(0, connector.size() - 4);
|
||||
DEBUG_MSG(DLVL_ERROR, "No connector found for: %s", connector.c_str());
|
||||
configLock.post();
|
||||
configLock.close();
|
||||
return;
|
||||
connector = connector + ".exe";
|
||||
for (unsigned int i=0; i < prots_ctr; ++i){
|
||||
if (prots.getIndice(i).getMember("connector").asString() == connector) {
|
||||
id = i;
|
||||
break; //pick the first protocol in the list that matches the connector
|
||||
}
|
||||
}
|
||||
if (id == -1) {
|
||||
connector = connector.substr(0, connector.size() - 4);
|
||||
DEBUG_MSG(DLVL_ERROR, "No connector found for: %s", connector.c_str());
|
||||
configLock.post();
|
||||
configLock.close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
//read options from found connector
|
||||
p = prots.getIndice(id).asJSON();
|
||||
}
|
||||
|
||||
DEBUG_MSG(DLVL_HIGH, "Connector found: %s", connector.c_str());
|
||||
|
@ -311,7 +325,6 @@ namespace Mist {
|
|||
|
||||
int argnum = 0;
|
||||
argarr[argnum++] = (char*)tmparg.c_str();
|
||||
JSON::Value p = prots.getIndice(id).asJSON();
|
||||
JSON::Value pipedCapa = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("capabilities").getMember("connectors").getMember(connector).asJSON();
|
||||
configLock.post();
|
||||
configLock.close();
|
||||
|
|
|
@ -45,6 +45,12 @@ namespace Mist {
|
|||
myConn = Socket::Connection(fileno(stdout),fileno(stdin) );
|
||||
myConn.setHost(host);
|
||||
}
|
||||
if (config->getString("nostreamtext").size()){
|
||||
setenv("MIST_HTTP_nostreamtext", config->getString("nostreamtext").c_str(), 1);
|
||||
}
|
||||
if (config->getString("pubaddr").size()){
|
||||
setenv("MIST_HTTP_pubaddr", config->getString("pubaddr").c_str(), 1);
|
||||
}
|
||||
if (config->getOption("wrappers",true).size() == 0 || config->getString("wrappers") == ""){
|
||||
JSON::Value & wrappers = config->getOption("wrappers",true);
|
||||
wrappers.shrink(0);
|
||||
|
|
|
@ -24,7 +24,32 @@ namespace Mist{
|
|||
capa["required"]["key"]["short"] = "K";
|
||||
capa["required"]["key"]["default"] = "";
|
||||
capa["required"]["key"]["type"] = "str";
|
||||
|
||||
capa["optional"]["wrappers"]["name"] = "Active players";
|
||||
capa["optional"]["wrappers"]["help"] = "Which players are attempted and in what order.";
|
||||
capa["optional"]["wrappers"]["default"] = "";
|
||||
capa["optional"]["wrappers"]["type"] = "ord_multi_sel";
|
||||
capa["optional"]["wrappers"]["allowed"].append("html5");
|
||||
capa["optional"]["wrappers"]["allowed"].append("videojs");
|
||||
capa["optional"]["wrappers"]["allowed"].append("dashjs");
|
||||
capa["optional"]["wrappers"]["allowed"].append("flash_strobe");
|
||||
capa["optional"]["wrappers"]["allowed"].append("silverlight");
|
||||
capa["optional"]["wrappers"]["allowed"].append("img");
|
||||
capa["optional"]["wrappers"]["option"] = "--wrappers";
|
||||
capa["optional"]["wrappers"]["short"] = "w";
|
||||
cfg->addConnectorOptions(4433, capa);
|
||||
cfg->addOption("nostreamtext", JSON::fromString("{\"arg\":\"string\", \"default\":\"\", \"short\":\"t\",\"long\":\"nostreamtext\",\"help\":\"Text or HTML to display when streams are unavailable.\"}"));
|
||||
capa["optional"]["nostreamtext"]["name"] = "Stream unavailable text";
|
||||
capa["optional"]["nostreamtext"]["help"] = "Text or HTML to display when streams are unavailable.";
|
||||
capa["optional"]["nostreamtext"]["default"] = "";
|
||||
capa["optional"]["nostreamtext"]["type"] = "str";
|
||||
capa["optional"]["nostreamtext"]["option"] = "--nostreamtext";
|
||||
cfg->addOption("pubaddr", JSON::fromString("{\"arg\":\"string\", \"default\":\"\", \"short\":\"A\",\"long\":\"public-address\",\"help\":\"Full public address this output is available as.\"}"));
|
||||
capa["optional"]["pubaddr"]["name"] = "Public address";
|
||||
capa["optional"]["pubaddr"]["help"] = "Full public address this output is available as, if being proxied";
|
||||
capa["optional"]["pubaddr"]["default"] = "";
|
||||
capa["optional"]["pubaddr"]["type"] = "str";
|
||||
capa["optional"]["pubaddr"]["option"] = "--public-address";
|
||||
config = cfg;
|
||||
}
|
||||
|
||||
|
@ -78,6 +103,14 @@ namespace Mist{
|
|||
args.push_back(Util::getMyPath() + "MistOutHTTP");
|
||||
args.push_back("--ip");
|
||||
args.push_back(myConn.getHost());
|
||||
if (config->getString("nostreamtext").size()){
|
||||
args.push_back("--nostreamtext");
|
||||
args.push_back(config->getString("nostreamtext"));
|
||||
}
|
||||
if (config->getString("pubaddr").size()){
|
||||
args.push_back("--public-address");
|
||||
args.push_back(config->getString("pubaddr"));
|
||||
}
|
||||
args.push_back("");
|
||||
Util::Procs::socketList.insert(fd[0]);
|
||||
pid_t http_proc = Util::Procs::StartPiped(args, &(fd[1]), &(fd[1]), &fderr);
|
||||
|
|
Loading…
Add table
Reference in a new issue