summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-04-18 17:37:44 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-04-18 17:37:44 -0700
commitbc61357a44cf4906dda2b30c4474ae891982e620 (patch)
tree284d70f7c20b1d057f3d52c9f437b6d9312b7a37 /service
parentf6d92eb737507e6c56cf59aa7b4c4fce679e23cd (diff)
downloadinfinitytier-bc61357a44cf4906dda2b30c4474ae891982e620.tar.gz
infinitytier-bc61357a44cf4906dda2b30c4474ae891982e620.zip
HTTP backend support for JSONDB
Diffstat (limited to 'service')
-rw-r--r--service/OneService.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/service/OneService.cpp b/service/OneService.cpp
index c07b3ba4..5f2adfe3 100644
--- a/service/OneService.cpp
+++ b/service/OneService.cpp
@@ -381,6 +381,7 @@ public:
const std::string _homePath;
std::string _authToken;
+ std::string _controllerDbPath;
EmbeddedNetworkController *_controller;
Phy<OneServiceImpl *> _phy;
Node *_node;
@@ -482,6 +483,7 @@ public:
OneServiceImpl(const char *hp,unsigned int port) :
_homePath((hp) ? hp : ".")
+ ,_controllerDbPath(_homePath + ZT_PATH_SEPARATOR_S ZT_CONTROLLER_DB_PATH)
,_controller((EmbeddedNetworkController *)0)
,_phy(this,false,true)
,_node((Node *)0)
@@ -747,7 +749,7 @@ public:
for(int i=0;i<3;++i)
_portsBE[i] = Utils::hton((uint16_t)_ports[i]);
- _controller = new EmbeddedNetworkController(_node,(_homePath + ZT_PATH_SEPARATOR_S ZT_CONTROLLER_DB_PATH).c_str());
+ _controller = new EmbeddedNetworkController(_node,_controllerDbPath.c_str());
_node->setNetconfMaster((void *)_controller);
#ifdef ZT_ENABLE_CLUSTER
@@ -1522,6 +1524,26 @@ public:
_allowManagementFrom.push_back(nw);
}
}
+
+ json &controllerDbHttpHost = settings["controllerDbHttpHost"];
+ json &controllerDbHttpPort = settings["controllerDbHttpPort"];
+ json &controllerDbHttpPath = settings["controllerDbHttpPath"];
+ if ((controllerDbHttpHost.is_string())&&(controllerDbHttpPort.is_number())) {
+ _controllerDbPath = "http://";
+ _controllerDbPath.append(controllerDbHttpHost);
+ char dbp[128];
+ Utils::snprintf(dbp,sizeof(dbp),"%d",(int)controllerDbHttpPort);
+ _controllerDbPath.push_back(':');
+ _controllerDbPath.append(dbp);
+ if (controllerDbHttpPath.is_string()) {
+ std::string p = controllerDbHttpPath;
+ if ((p.length() == 0)||(p[0] != '/'))
+ _controllerDbPath.push_back('/');
+ _controllerDbPath.append(p);
+ } else {
+ _controllerDbPath.push_back('/');
+ }
+ }
}
// Checks if a managed IP or route target is allowed