Added trigger instance ID and instance name headers

This commit is contained in:
Thulinma 2023-07-05 17:33:42 +02:00
parent 0083df681d
commit d1e518ae9b
2 changed files with 24 additions and 0 deletions

View file

@ -55,6 +55,14 @@ namespace Triggers{
if (value.substr(0, 7) == "http://" || value.substr(0, 8) == "https://"){// interpret as url
HTTP::Downloader DL;
DL.setHeader("X-Trigger", trigger);
std::string iid = Util::getGlobalConfig("iid").asString();
if (iid.size()){
DL.setHeader("X-Instance", iid);
}
std::string hrn = Util::getGlobalConfig("hrn").asString();
if (hrn.size()){
DL.setHeader("X-Name", hrn);
}
DL.setHeader("Content-Type", "text/plain");
HTTP::URL url(value);
if (DL.post(url, payload, sync) && (!sync || DL.isOk())){
@ -76,9 +84,19 @@ namespace Triggers{
argv[2] = NULL;
setenv("MIST_TRIGGER", trigger.c_str(), 1);
setenv("MIST_TRIG_DEF", defaultResponse.c_str(), 1);
std::string iid = Util::getGlobalConfig("iid").asString();
if (iid.size()){
setenv("MIST_INSTANCE", iid.c_str(), 1);
}
std::string hrn = Util::getGlobalConfig("hrn").asString();
if (hrn.size()){
setenv("MIST_NAME", hrn.c_str(), 1);
}
pid_t myProc = Util::Procs::StartPiped(argv, &fdIn, &fdOut, &fdErr); // start new process and return stdin file desc.
unsetenv("MIST_TRIGGER");
unsetenv("MIST_TRIG_DEF");
unsetenv("MIST_INSTANCE");
unsetenv("MIST_NAME");
if (fdIn == -1 || fdOut == -1 || myProc == -1){
FAIL_MSG("Could not execute trigger executable: %s", strerror(errno));
submitTriggerStat(trigger, tStartMs, false);

View file

@ -617,6 +617,8 @@ namespace Controller{
|| !globAccX.getFieldAccX("sessionStreamInfoMode")
|| !globAccX.getFieldAccX("tknMode")
|| !globAccX.getFieldAccX("udpApi")
|| !globAccX.getFieldAccX("iid")
|| !globAccX.getFieldAccX("hrn")
){
globAccX.setReload();
globCfg.master = true;
@ -635,6 +637,8 @@ namespace Controller{
globAccX.addField("sessionStreamInfoMode", RAX_64UINT);
globAccX.addField("tknMode", RAX_64UINT);
globAccX.addField("udpApi", RAX_128STRING);
globAccX.addField("iid", RAX_64STRING);
globAccX.addField("hrn", RAX_128STRING);
globAccX.setRCount(1);
globAccX.setEndPos(1);
globAccX.setReady();
@ -648,6 +652,8 @@ namespace Controller{
globAccX.setInt("tknMode", Storage["config"]["tknMode"].asInt());
globAccX.setString("udpApi", udpApiBindAddr);
globAccX.setInt("systemBoot", systemBoot);
globAccX.setString("iid", instanceId);
globAccX.setString("hrn", Storage["config"]["serverid"].asString());
globCfg.master = false; // leave the page after closing
addShmPage(SHM_GLOBAL_CONF);
}