luci-app-travelmate: sync with travelmate 2.1.2-1
authorDirk Brenken <dev@brenken.org>
Sat, 6 Jan 2024 18:57:52 +0000 (19:57 +0100)
committerDirk Brenken <dev@brenken.org>
Sat, 6 Jan 2024 18:58:17 +0000 (19:58 +0100)
* fix a station scanning issue on single radio units (mainly a LuCI/JS issue) reported in the forum by multiple users

Signed-off-by: Dirk Brenken <dev@brenken.org>
applications/luci-app-travelmate/htdocs/luci-static/resources/view/travelmate/stations.js
applications/luci-app-travelmate/root/usr/share/rpcd/acl.d/luci-app-travelmate.json

index ef1ba96e6e1d19a8ca8f169c84aa54d1d93dbeb3..5bc5bf495121958d6e166f199af6a78c208b6099 100644 (file)
@@ -94,7 +94,7 @@ function handleSectionsAdd(iface) {
                        uci.set('travelmate', sid, 'con_start_expiry', '0');
                        uci.set('travelmate', sid, 'con_end_expiry', '0');
                        if (vpn_stdservice && vpn_stdiface) {
-                               uci.set('travelmate', sid, 'vpn', '1'); 
+                               uci.set('travelmate', sid, 'vpn', '1');
                                uci.set('travelmate', sid, 'vpnservice', vpn_stdservice);
                                uci.set('travelmate', sid, 'vpniface', vpn_stdiface);
                        }
@@ -145,7 +145,7 @@ function handleStatus() {
        poll.add(function () {
                L.resolveDefault(fs.stat('/var/state/travelmate.refresh'), null).then(function (res) {
                        if (res) {
-                               L.resolveDefault(fs.read_direct('/var/state/travelmate.refresh'), null).then(async function (res) {
+                               L.resolveDefault(fs.read('/var/state/travelmate.refresh'), null).then(async function (res) {
                                        fs.remove('/var/state/travelmate.refresh');
                                        if (res && res === 'ui_reload') {
                                                location.reload();
@@ -172,7 +172,7 @@ function handleStatus() {
                });
                return L.resolveDefault(fs.stat('/tmp/trm_runtime.json'), null).then(function (res) {
                        if (res) {
-                               L.resolveDefault(fs.read_direct('/tmp/trm_runtime.json'), null).then(function (res) {
+                               L.resolveDefault(fs.read('/tmp/trm_runtime.json'), null).then(function (res) {
                                        if (res) {
                                                var info = JSON.parse(res);
                                                if (info) {
@@ -229,7 +229,7 @@ function handleStatus() {
 return view.extend({
        load: function () {
                return Promise.all([
-                       L.resolveDefault(fs.exec_direct('/etc/init.d/travelmate', ['assoc']), {}),
+                       L.resolveDefault(fs.exec('/etc/init.d/travelmate', ['assoc']), null),
                        uci.load('wireless'),
                        uci.load('travelmate')
                ]);
@@ -488,8 +488,8 @@ return view.extend({
                        modal travelmate tab
                */
                var mac, mac_array = [];
-               if (result[0]) {
-                       mac_array = result[0].trim().split('\n');
+               if (result[0] && result[0].code === 0) {
+                       mac_array = result[0].stdout.trim().split('\n');
                }
 
                o = s.taboption('travelmate', form.Value, '_ssid', _('SSID'));
@@ -748,6 +748,7 @@ return view.extend({
                        modal 'scan' dialog
                */
                s.handleScan = function (radio) {
+                       poll.stop();
                        var table = E('table', { 'class': 'table' }, [
                                E('tr', { 'class': 'tr table-titles' }, [
                                        E('th', { 'class': 'th col-1 middle left' }, _('Strength')),
@@ -778,107 +779,106 @@ return view.extend({
                        md.style.maxWidth = '90%';
                        md.style.maxHeight = 'none';
 
-                       return L.resolveDefault(fs.exec_direct('/etc/init.d/travelmate', ['scan', radio]), null)
-                               .then(L.bind(function (res) {
-                                       var lines, strength, channel, encryption, tbl_encryption, bssid, ssid, tbl_ssid, rows = [];
-                                       if (res) {
-                                               lines = res.trim().split('\n');
-                                               for (var i = 0; i < lines.length; i++) {
-                                                       if (lines[i].match(/^\s+[0-9]/)) {
-                                                               encryption = lines[i].slice(80).trim();
-                                                               if (!encryption.includes('WEP')) {
-                                                                       strength = lines[i].slice(4, 7).trim();
-                                                                       channel = lines[i].slice(15, 18).trim();
-                                                                       bssid = lines[i].slice(60, 77).trim();
-                                                                       ssid = lines[i].slice(25, 59).trim();
-                                                                       if (ssid.startsWith('"')) {
-                                                                               ssid = ssid.slice(1, ssid.length - 1);
-                                                                               tbl_ssid = ssid;
-                                                                       }
-                                                                       else {
-                                                                               ssid = "hidden";
-                                                                               tbl_ssid = "<em>hidden</em>";
-                                                                       }
-                                                                       switch (encryption) {
-                                                                               case 'WPA3 PSK (SAE)':
-                                                                                       encryption = 'sae';
-                                                                                       tbl_encryption = 'WPA3 Pers. (SAE)';
-                                                                                       break;
-                                                                               case 'mixed WPA2/WPA3 PSK/SAE (CCMP)':
-                                                                                       encryption = 'sae-mixed';
-                                                                                       tbl_encryption = 'WPA2/WPA3 Pers. (CCMP)';
-                                                                                       break;
-                                                                               case 'WPA2 PSK (CCMP)':
-                                                                                       encryption = 'psk2+ccmp';
-                                                                                       tbl_encryption = 'WPA2 Pers. (CCMP)';
-                                                                                       break;
-                                                                               case 'WPA2 PSK (TKIP)':
-                                                                                       encryption = 'psk2+tkip';
-                                                                                       tbl_encryption = 'WPA2 Pers. (TKIP)';
-                                                                                       break;
-                                                                               case 'mixed WPA/WPA2 PSK (TKIP, CCMP)':
-                                                                                       encryption = 'psk-mixed+ccmp';
-                                                                                       tbl_encryption = 'WPA/WPA2 Pers. (CCMP)';
-                                                                                       break;
-                                                                               case 'WPA PSK (CCMP)':
-                                                                                       encryption = 'psk2+ccmp';
-                                                                                       tbl_encryption = 'WPA Pers. (CCMP)';
-                                                                                       break;
-                                                                               case 'WPA PSK (TKIP)':
-                                                                                       encryption = 'psk2+tkip';
-                                                                                       tbl_encryption = 'WPA Pers. (TKIP)';
-                                                                                       break;
-                                                                               case 'WPA3 802.1X (CCMP)':
-                                                                                       encryption = 'wpa3';
-                                                                                       tbl_encryption = 'WPA3 Ent. (CCMP)';
-                                                                                       break;
-                                                                               case 'mixed WPA2/WPA3 802.1X (CCMP)':
-                                                                                       encryption = 'wpa3-mixed';
-                                                                                       tbl_encryption = 'WPA2/WPA3 Ent. (CCMP)';
-                                                                                       break;
-                                                                               case 'WPA2 802.1X':
-                                                                                       encryption = 'wpa2';
-                                                                                       tbl_encryption = 'WPA2 Ent.';
-                                                                                       break;
-                                                                               case 'WPA2 802.1X (CCMP)':
-                                                                                       encryption = 'wpa2+ccmp';
-                                                                                       tbl_encryption = 'WPA2 Ent. (CCMP)';
-                                                                                       break;
-                                                                               case 'WPA3 OWE (CCMP)':
-                                                                                       encryption = 'owe';
-                                                                                       tbl_encryption = 'WPA3 OWE (CCMP)';
-                                                                                       break;
-                                                                               case 'none':
-                                                                                       encryption = 'none';
-                                                                                       tbl_encryption = 'none';
-                                                                                       break;
+                       return L.resolveDefault(fs.exec('/etc/init.d/travelmate', ['scan', radio]), null)
+                               .then(L.bind(function () {
+                                       return L.resolveDefault(fs.read('/var/run/travelmate.scan'), '')
+                                               .then(L.bind(function (res) {
+                                                       var lines, strength, channel, encryption, tbl_encryption, bssid, ssid, tbl_ssid, rows = [];
+                                                       if (res) {
+                                                               lines = res.split('\n');
+                                                               for (var i = 0; i < lines.length; i++) {
+                                                                       if (lines[i].match(/^\s+[0-9]/)) {
+                                                                               encryption = lines[i].slice(80).trim();
+                                                                               if (!encryption.includes('WEP')) {
+                                                                                       strength = lines[i].slice(4, 7).trim();
+                                                                                       channel = lines[i].slice(15, 18).trim();
+                                                                                       bssid = lines[i].slice(60, 77).trim();
+                                                                                       ssid = lines[i].slice(25, 59).trim();
+                                                                                       if (ssid.startsWith('"')) {
+                                                                                               ssid = ssid.slice(1, ssid.length - 1);
+                                                                                               tbl_ssid = ssid;
+                                                                                       }
+                                                                                       else {
+                                                                                               ssid = "hidden";
+                                                                                               tbl_ssid = "<em>hidden</em>";
+                                                                                       }
+                                                                                       switch (encryption) {
+                                                                                               case 'WPA3 PSK (SAE)':
+                                                                                                       encryption = 'sae';
+                                                                                                       tbl_encryption = 'WPA3 Pers. (SAE)';
+                                                                                                       break;
+                                                                                               case 'mixed WPA2/WPA3 PSK/SAE (CCMP)':
+                                                                                                       encryption = 'sae-mixed';
+                                                                                                       tbl_encryption = 'WPA2/WPA3 Pers. (CCMP)';
+                                                                                                       break;
+                                                                                               case 'WPA2 PSK (CCMP)':
+                                                                                                       encryption = 'psk2+ccmp';
+                                                                                                       tbl_encryption = 'WPA2 Pers. (CCMP)';
+                                                                                                       break;
+                                                                                               case 'WPA2 PSK (TKIP)':
+                                                                                                       encryption = 'psk2+tkip';
+                                                                                                       tbl_encryption = 'WPA2 Pers. (TKIP)';
+                                                                                                       break;
+                                                                                               case 'mixed WPA/WPA2 PSK (TKIP, CCMP)':
+                                                                                                       encryption = 'psk-mixed+ccmp';
+                                                                                                       tbl_encryption = 'WPA/WPA2 Pers. (CCMP)';
+                                                                                                       break;
+                                                                                               case 'WPA PSK (CCMP)':
+                                                                                                       encryption = 'psk2+ccmp';
+                                                                                                       tbl_encryption = 'WPA Pers. (CCMP)';
+                                                                                                       break;
+                                                                                               case 'WPA PSK (TKIP)':
+                                                                                                       encryption = 'psk2+tkip';
+                                                                                                       tbl_encryption = 'WPA Pers. (TKIP)';
+                                                                                                       break;
+                                                                                               case 'WPA3 802.1X (CCMP)':
+                                                                                                       encryption = 'wpa3';
+                                                                                                       tbl_encryption = 'WPA3 Ent. (CCMP)';
+                                                                                                       break;
+                                                                                               case 'mixed WPA2/WPA3 802.1X (CCMP)':
+                                                                                                       encryption = 'wpa3-mixed';
+                                                                                                       tbl_encryption = 'WPA2/WPA3 Ent. (CCMP)';
+                                                                                                       break;
+                                                                                               case 'WPA2 802.1X':
+                                                                                                       encryption = 'wpa2';
+                                                                                                       tbl_encryption = 'WPA2 Ent.';
+                                                                                                       break;
+                                                                                               case 'WPA2 802.1X (CCMP)':
+                                                                                                       encryption = 'wpa2+ccmp';
+                                                                                                       tbl_encryption = 'WPA2 Ent. (CCMP)';
+                                                                                                       break;
+                                                                                               case 'WPA3 OWE (CCMP)':
+                                                                                                       encryption = 'owe';
+                                                                                                       tbl_encryption = 'WPA3 OWE (CCMP)';
+                                                                                                       break;
+                                                                                               case 'none':
+                                                                                                       encryption = 'none';
+                                                                                                       tbl_encryption = 'none';
+                                                                                                       break;
+                                                                                       }
+                                                                                       rows.push([
+                                                                                               strength,
+                                                                                               channel,
+                                                                                               tbl_ssid,
+                                                                                               bssid,
+                                                                                               tbl_encryption,
+                                                                                               E('div', { 'class': 'right' }, E('button', {
+                                                                                                       'class': 'cbi-button cbi-button-action',
+                                                                                                       'click': ui.createHandlerFn(this, 'handleAdd', radio, iface, ssid, bssid, encryption)
+                                                                                               }, _('Add Uplink...')))
+                                                                                       ]);
+                                                                               }
                                                                        }
-                                                                       rows.push([
-                                                                               strength,
-                                                                               channel,
-                                                                               tbl_ssid,
-                                                                               bssid,
-                                                                               tbl_encryption,
-                                                                               E('div', { 'class': 'right' }, E('button', {
-                                                                                       'class': 'cbi-button cbi-button-action',
-                                                                                       'click': ui.createHandlerFn(this, 'handleAdd', radio, iface, ssid, bssid, encryption)
-                                                                               }, _('Add Uplink...')))
-                                                                       ]);
                                                                }
                                                        }
-                                                       else if (lines[i] === '::: Empty resultset') {
+                                                       else {
                                                                rows.push([
-                                                                       'No scan results (empty resultset)'
+                                                                       'Empty resultset'
                                                                ]);
                                                        }
-                                               }
-                                       }
-                                       else {
-                                               rows.push([
-                                                       'No scan results (timeout)'
-                                               ]);
-                                       }
-                                       cbi_update_table(table, rows);
+                                                       cbi_update_table(table, rows);
+                                                       poll.start();
+                                               }, this));
                                }, this));
                };
 
@@ -999,7 +999,7 @@ return view.extend({
                        o2.depends({ encryption: 'sae', '!contains': true });
                        o2.depends({ encryption: 'owe', '!contains': true });
                        o2.depends({ encryption: 'wpa', '!contains': true });
-                       o2.depends({ encryption: 'psk', '!contains': true });   
+                       o2.depends({ encryption: 'psk', '!contains': true });
                        o2.value('', _('Disabled'));
                        o2.value('1', _('Optional'));
                        o2.value('2', _('Required'));
index 3790ce4eac744ca66d4a44a69012fc3b1f667655..2283b377c67bdac197643bd009d9e144e2db7aeb 100644 (file)
@@ -12,6 +12,7 @@
                        "file": {
                                "/etc/travelmate/*.login": [ "list" ],
                                "/var/run/travelmate.pid": [ "read" ],
+                               "/var/run/travelmate.scan": [ "read" ],
                                "/var/state/travelmate.refresh": [ "read" ],
                                "/tmp/trm_runtime.json": [ "read" ],
                                "/sbin/logread -e trm-": [ "exec" ],