From 3f041d10b486932e497efdfd2ea67dd986258f34 Mon Sep 17 00:00:00 2001 From: key-networks <34238649+key-networks@users.noreply.github.com> Date: Mon, 28 Aug 2023 18:28:45 +0800 Subject: [PATCH] Fix incompatibility with ZeroTier 1.12 (#124) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Niels Martignène --- src/controllers/networkController.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/controllers/networkController.js b/src/controllers/networkController.js index d186ee2..50c10ee 100644 --- a/src/controllers/networkController.js +++ b/src/controllers/networkController.js @@ -17,15 +17,26 @@ async function get_network_with_members(nwid) { zt.network_detail(nwid), zt.peers(), zt.members(nwid) - .then(member_ids => - Promise.all( + .then(member_ids => { + // Fix weird data returned by ZeroTier 1.12 + if (Array.isArray(member_ids)) { + let obj = {}; + for (let id of member_ids) { + let key = Object.keys(id)[0]; + let value = Object.values(id)[0]; + obj[key] = value; + } + member_ids = obj; + } + + return Promise.all( Object.keys(member_ids) .map(id => Promise.all([ zt.member_detail(nwid, id), storage.getItem(id) ])) - ) - ).then(results => results.map(([member, name]) => { + ); + }).then(results => results.map(([member, name]) => { member.name = name || ''; return member; }))