diff --git a/src/controller/controller.cpp b/src/controller/controller.cpp index cd88f9b2..0f638c0b 100644 --- a/src/controller/controller.cpp +++ b/src/controller/controller.cpp @@ -286,6 +286,14 @@ int main_loop(int argc, char ** argv){ Controller::Log("CONF", "Controller started"); Controller::conf.activate();//activate early, so threads aren't killed. + //Generate instanceId once per boot. + if (Controller::instanceId == ""){ + srand(time(NULL)); + do{ + Controller::instanceId += (char)(64 + rand() % 62); + }while(Controller::instanceId.size() < 16); + } + //start stats thread tthread::thread statsThread(Controller::SharedMemStats, &Controller::conf); diff --git a/src/controller/controller_api.cpp b/src/controller/controller_api.cpp index 7d0b2105..27a4233a 100644 --- a/src/controller/controller_api.cpp +++ b/src/controller/controller_api.cpp @@ -351,6 +351,7 @@ void Controller::handleAPICommands(JSON::Value & Request, JSON::Value & Response //sent current configuration, if not minimal or was changed/requested if (!Request.isMember("minimal") || Request.isMember("config")){ Response["config"] = Controller::Storage["config"]; + Response["config"]["iid"] = instanceId; Response["config"]["version"] = PACKAGE_VERSION; //add required data to the current unix time to the config, for syncing reasons Response["config"]["time"] = Util::epoch(); diff --git a/src/controller/controller_storage.cpp b/src/controller/controller_storage.cpp index 91fdb35b..0f3d9176 100644 --- a/src/controller/controller_storage.cpp +++ b/src/controller/controller_storage.cpp @@ -10,6 +10,7 @@ ///\brief Holds everything unique to the controller. namespace Controller { + std::string instanceId; /// instanceId (previously uniqId) is set in controller.cpp Util::Config conf; JSON::Value Storage; ///< Global storage of data. diff --git a/src/controller/controller_storage.h b/src/controller/controller_storage.h index 868e46cf..1c5994dc 100644 --- a/src/controller/controller_storage.h +++ b/src/controller/controller_storage.h @@ -4,6 +4,7 @@ #include namespace Controller { + extern std::string instanceId; ///