From debd06f258fd55ac09cf59e33d32a6d13c9d5833 Mon Sep 17 00:00:00 2001 From: Tobias Hopp Date: Wed, 27 Mar 2024 22:16:56 +0100 Subject: [PATCH] Fix null error; Fix promise --- index.js | 17 +++++++++++++---- lib/airport.js | 3 ++- lib/iwlist.js | 4 +++- lib/netsh.js | 2 +- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index 0c24664..2e132c4 100644 --- a/index.js +++ b/index.js @@ -70,7 +70,7 @@ function initTools(callback) { * @param {boolean} useSudo - Use sudo for access? */ function scanNetworks(callback, useSudo) { - exec((useSudo && "sudo ") + scanner.cmdLine, function (err, stdout) { + exec((useSudo ? "sudo ":"") + scanner.cmdLine, function (err, stdout) { if (err) { callback(err, null); return; @@ -94,11 +94,20 @@ module.exports = { return reject(err); } scanner = s; - scanNetworks(resolve, useSudo); + scanNetworks((err, result) => { + if(err) + return reject(err); + resolve(result); + }, useSudo); + }); return; } - scanNetworks(resolve, useSudo); - } ) + scanNetworks((err, result) => { + if(err) + return reject(err); + resolve(result); + }, useSudo); + } ); } }; diff --git a/lib/airport.js b/lib/airport.js index 894a0fe..f555df3 100644 --- a/lib/airport.js +++ b/lib/airport.js @@ -26,7 +26,8 @@ function parseOutput(str, callback) { 'ssid' : lines[i].substring(0, 32).trim(), 'mac' : '', // There is no more mac on a mac 'channel': parseInt(elements[1].trim(), 10), - 'rssi' : parseInt(elements[0].trim(), 10) + 'rssi' : parseInt(elements[0].trim(), 10), + 'encrypted': false, }); } } diff --git a/lib/iwlist.js b/lib/iwlist.js index 38ac993..9bda4ca 100644 --- a/lib/iwlist.js +++ b/lib/iwlist.js @@ -13,6 +13,7 @@ const detector = tool + ' --help'; const macRegex = /([0-9a-zA-Z]{1}[0-9a-zA-Z]{1}[:]{1}){5}[0-9a-zA-Z]{1}[0-9a-zA-Z]{1}/; const cellRegex = /Cell [0-9]{2,} - Address:/; +const encryptedRegex = /Encryption key:on/g; /** * Parsing the output of iwlist, tool having a lot of different faces :-( @@ -27,7 +28,8 @@ function parseOutput(str, callback) { let blocks = str.split(cellRegex); blocks.forEach(block => { - let network = {}; + let network = {encrypted: encryptedRegex.test(block)}; + let lines = block.split('\n'); if (macRegex.exec(lines[0])) { // First line is the mac address (always! (?)) diff --git a/lib/netsh.js b/lib/netsh.js index aa95983..f5ea152 100644 --- a/lib/netsh.js +++ b/lib/netsh.js @@ -41,7 +41,7 @@ function parseOutput(str, callback) { // Basic rates (MBit/s) : 1 2 5.5 11 // Other rates (MBit/s) : 6 9 12 18 24 36 48 54 for (let i = 1, l = blocks.length; i < l; i++) { - let network = {}; + let network = {encrypted: false}; let lines = blocks[i].split('\n'); let regexChannel = /[a-zA-Z0-9()\s]+:[\s]*[0-9]+$/g; if (!lines || lines.length < 2) {