From d1e518ae9b8898c3d74233c8c8ac829467618189 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Wed, 5 Jul 2023 17:33:42 +0200 Subject: [PATCH] Added trigger instance ID and instance name headers --- lib/triggers.cpp | 18 ++++++++++++++++++ src/controller/controller_storage.cpp | 6 ++++++ 2 files changed, 24 insertions(+) diff --git a/lib/triggers.cpp b/lib/triggers.cpp index 2fb0075a..dc48b6a5 100644 --- a/lib/triggers.cpp +++ b/lib/triggers.cpp @@ -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); diff --git a/src/controller/controller_storage.cpp b/src/controller/controller_storage.cpp index 425ee4ff..e15bdba3 100644 --- a/src/controller/controller_storage.cpp +++ b/src/controller/controller_storage.cpp @@ -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); }