summaryrefslogtreecommitdiff
path: root/service/OneService.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-01-12 13:18:11 -0800
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-01-12 13:18:11 -0800
commitc6b0b076055f0b9b579c21bbbe83171a554a2600 (patch)
tree236ad6748ffefa829928df791d34c5c93962fccd /service/OneService.cpp
parentb5b583c39751dbb0ea12e56aa826a28661bd082c (diff)
downloadinfinitytier-c6b0b076055f0b9b579c21bbbe83171a554a2600.tar.gz
infinitytier-c6b0b076055f0b9b579c21bbbe83171a554a2600.zip
More software update work, and settings in local.conf.
Diffstat (limited to 'service/OneService.cpp')
-rw-r--r--service/OneService.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/service/OneService.cpp b/service/OneService.cpp
index 9ee05f96..697be24a 100644
--- a/service/OneService.cpp
+++ b/service/OneService.cpp
@@ -264,6 +264,7 @@ public:
Phy<OneServiceImpl *> _phy;
Node *_node;
SoftwareUpdater *_updater;
+ bool _updateAutoApply;
unsigned int _primaryPort;
// Local configuration and memo-ized static path definitions
@@ -367,6 +368,7 @@ public:
,_phy(this,false,true)
,_node((Node *)0)
,_updater((SoftwareUpdater *)0)
+ ,_updateAutoApply(false)
,_primaryPort(port)
,_controlPlane((ControlPlane *)0)
,_lastDirectReceiveFromGlobal(0)
@@ -454,9 +456,6 @@ public:
_node = new Node(this,&cb,OSUtils::now());
}
- _updater = new SoftwareUpdater(*_node,_homePath);
- _updater->loadUpdatesToDistribute();
-
// Read local configuration
{
uint64_t trustedPathIds[ZT_MAX_TRUSTED_PATHS];
@@ -982,6 +981,20 @@ public:
_node->setRelayPolicy(ZT_RELAY_POLICY_NEVER);
else _node->setRelayPolicy(ZT_RELAY_POLICY_TRUSTED);
+ const std::string up(OSUtils::jsonString(settings["softwareUpdate"],ZT_SOFTWARE_UPDATE_DEFAULT));
+ const bool udist = OSUtils::jsonBool(settings["softwareUpdateDist"],false);
+ if (((up == "apply")||(up == "download"))||(udist)) {
+ if (!_updater)
+ _updater = new SoftwareUpdater(*_node,_homePath);
+ _updateAutoApply = (up == "apply");
+ _updater->setUpdateDistribution(udist);
+ _updater->setChannel(OSUtils::jsonString(settings["softwareUpdateChannel"],ZT_SOFTWARE_UPDATE_DEFAULT_CHANNEL));
+ } else {
+ delete _updater;
+ _updater = (SoftwareUpdater *)0;
+ _updateAutoApply = false;
+ }
+
json &ignoreIfs = settings["interfacePrefixBlacklist"];
if (ignoreIfs.is_array()) {
for(unsigned long i=0;i<ignoreIfs.size();++i) {