summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2014-06-16 13:26:46 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2014-06-16 13:26:46 -0700
commitadc922d7fba789d7164a091e869b9fdc74bfdcc4 (patch)
tree009c08f5f8f15cc7490a3ca38f009353072a853b
parentcf4700bc26359203ceb9e9604465e805d9e5b442 (diff)
downloadinfinitytier-adc922d7fba789d7164a091e869b9fdc74bfdcc4.tar.gz
infinitytier-adc922d7fba789d7164a091e869b9fdc74bfdcc4.zip
Support for bridging fields in netconf.
-rw-r--r--netconf-service/index.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/netconf-service/index.js b/netconf-service/index.js
index bef40669..15d7394b 100644
--- a/netconf-service/index.js
+++ b/netconf-service/index.js
@@ -285,11 +285,14 @@ function doNetconfRequest(message)
var v4Assignments = [];
var v6Assignments = [];
var ipAssignments = []; // both v4 and v6
+ var activeBridges = '';
async.series([function(next) {
// network lookup
DB.hgetall(networkKey,function(err,obj) {
+ if (!obj.id)
+ return next(new Error('invalid network record'));
network = obj;
return next(null);
});
@@ -463,6 +466,24 @@ function doNetconfRequest(message)
return next(null);
+ },function(next) {
+
+ // Get active bridges
+ DB.keys('zt1:network:'+nwid+':member:*:~',function(err,keys) {
+ if (keys) {
+ async.eachSeries(keys,function(key,nextKey) {
+ DB.hgetall(key,funciton(err,abr) {
+ if ((abr)&&(abr.id)&&(abr.id.length === 10)&&(ztDbTrue(abr['activeBridge']))) {
+ if (activeBridges.length)
+ activeBridges += ',';
+ activeBridges += abr.id;
+ }
+ return nextKey(null);
+ });
+ },next);
+ } else return next(null);
+ });
+
}],function(err) {
if (err) {
@@ -519,6 +540,9 @@ function doNetconfRequest(message)
if (certificateOfMembership !== null)
netconf.data[ZT_NETWORKCONFIG_DICT_KEY_CERTIFICATE_OF_MEMBERSHIP] = certificateOfMembership;
netconf.data[ZT_NETWORKCONFIG_DICT_KEY_ENABLE_BROADCAST] = ztDbTrue(network['enableBroadcast']) ? '1' : '0';
+ netconf.data[ZT_NETWORKCONFIG_DICT_KEY_ALLOW_PASSIVE_BRIDGING] = ztDbTrue(network['allowPassiveBridging']) ? '1' : '0';
+ if ((activeBridges)&&(activeBridges.length > 0))
+ netconf.data[ZT_NETWORKCONFIG_DICT_KEY_ACTIVE_BRIDGES] = activeBridges; // comma-delimited list
response.data['netconf'] = netconf.toString();
}