diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2014-06-16 13:26:46 -0700 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2014-06-16 13:26:46 -0700 |
commit | adc922d7fba789d7164a091e869b9fdc74bfdcc4 (patch) | |
tree | 009c08f5f8f15cc7490a3ca38f009353072a853b | |
parent | cf4700bc26359203ceb9e9604465e805d9e5b442 (diff) | |
download | infinitytier-adc922d7fba789d7164a091e869b9fdc74bfdcc4.tar.gz infinitytier-adc922d7fba789d7164a091e869b9fdc74bfdcc4.zip |
Support for bridging fields in netconf.
-rw-r--r-- | netconf-service/index.js | 24 |
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(); } |