wireguard-tools
Version:
The best way to interact with WireGuard from Node
29 lines (28 loc) • 1.24 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPeerPairs = void 0;
/**
* Create peer pairs from more than one WgConfig object.
*
* Will add wgConfigs[0] as a peer in wgConfigs[1] and wgConfigs[1] as a peer in wgConfigs[0] etc.
* Will fail and error if
*/
var createPeerPairs = function (pairs) {
for (var i = 0; i < pairs.length; i++) {
var thisConfig = pairs[i];
for (var subI = 0; subI < pairs.length; subI++) {
var peerConfig = pairs[subI];
if (thisConfig.config.publicKey === peerConfig.config.publicKey)
continue;
var peerSettings = typeof peerConfig.peerSettings === 'function'
? peerConfig.peerSettings({ thisConfig: thisConfig.config, peerConfig: peerConfig.config })
: peerConfig.peerSettings;
var thisConfigPreSharedKey = thisConfig.config.preSharedKey;
if (thisConfigPreSharedKey)
peerSettings.preSharedKey = thisConfigPreSharedKey;
var peer = peerConfig.config.createPeer(peerSettings);
thisConfig.config.addPeer(peer, { mergeAllowedIps: false });
}
}
};
exports.createPeerPairs = createPeerPairs;
;