Merge pull request #4127 from blocktrron/luci-wep-features
authorJo-Philipp Wich <jo@mein.io>
Tue, 16 Jun 2020 15:01:27 +0000 (17:01 +0200)
committerGitHub <noreply@github.com>
Tue, 16 Jun 2020 15:01:27 +0000 (17:01 +0200)
luci-mod-network: query WEP support

modules/luci-base/root/usr/libexec/rpcd/luci
modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js

index 35b85d43d0b64a922b06220648925ca0affb2f89..7f0c0b226c16df454677fa7075d74540884b67af 100755 (executable)
@@ -219,7 +219,7 @@ local methods = {
                        rv.cabundle      = fs.access("/etc/ssl/certs/ca-certificates.crt")
                        rv.relayd        = fs.access("/usr/sbin/relayd")
 
-                       local wifi_features = { "eap", "11n", "11ac", "11r", "11w", "acs", "sae", "owe", "suiteb192" }
+                       local wifi_features = { "eap", "11n", "11ac", "11r", "11w", "acs", "sae", "owe", "suiteb192", "wep" }
 
                        if fs.access("/usr/sbin/hostapd") then
                                rv.hostapd = { cli = fs.access("/usr/sbin/hostapd_cli") }
index ca0cdf6152d0ae0cf6ad5141dfd277c60227bcc8..dc75c9509fdc1b23eff545086388770df2caec21 100644 (file)
@@ -1195,6 +1195,9 @@ return view.extend({
                                        var has_ap_eap192 = L.hasSystemFeature('hostapd', 'suiteb192'),
                                            has_sta_eap192 = L.hasSystemFeature('wpasupplicant', 'suiteb192');
 
+                                       // Probe WEP support
+                                       var has_ap_wep = L.hasSystemFeature('hostapd', 'wep'),
+                                           has_sta_wep = L.hasSystemFeature('wpasupplicant', 'wep');
 
                                        if (has_hostapd || has_supplicant) {
                                                crypto_modes.push(['psk2',      'WPA2-PSK',                    35]);
@@ -1210,6 +1213,11 @@ return view.extend({
                                                crypto_modes.push(['sae-mixed', 'WPA2-PSK/WPA3-SAE Mixed Mode', 30]);
                                        }
 
+                                       if (has_ap_wep || has_sta_wep) {
+                                               crypto_modes.push(['wep-open',   _('WEP Open System'), 11]);
+                                               crypto_modes.push(['wep-shared', _('WEP Shared Key'),  10]);
+                                       }
+
                                        if (has_ap_eap || has_sta_eap) {
                                                if (has_ap_eap192 || has_sta_eap192) {
                                                        crypto_modes.push(['wpa3', 'WPA3-EAP', 33]);
@@ -1226,8 +1234,8 @@ return view.extend({
 
                                        encr.crypto_support = {
                                                'ap': {
-                                                       'wep-open': true,
-                                                       'wep-shared': true,
+                                                       'wep-open': has_ap_wep || _('Requires hostapd with WEP support'),
+                                                       'wep-shared': has_ap_wep || _('Requires hostapd with WEP support'),
                                                        'psk': has_hostapd || _('Requires hostapd'),
                                                        'psk2': has_hostapd || _('Requires hostapd'),
                                                        'psk-mixed': has_hostapd || _('Requires hostapd'),
@@ -1240,8 +1248,8 @@ return view.extend({
                                                        'owe': has_ap_owe || _('Requires hostapd with OWE support')
                                                },
                                                'sta': {
-                                                       'wep-open': true,
-                                                       'wep-shared': true,
+                                                       'wep-open': has_sta_wep || _('Requires wpa-supplicant with WEP support'),
+                                                       'wep-shared': has_sta_wep || _('Requires wpa-supplicant with WEP support'),
                                                        'psk': has_supplicant || _('Requires wpa-supplicant'),
                                                        'psk2': has_supplicant || _('Requires wpa-supplicant'),
                                                        'psk-mixed': has_supplicant || _('Requires wpa-supplicant'),
@@ -1295,10 +1303,10 @@ return view.extend({
                                        crypto_modes.push(['psk2',     'WPA2-PSK',                    33]);
                                        crypto_modes.push(['psk+psk2', 'WPA-PSK/WPA2-PSK Mixed Mode', 22]);
                                        crypto_modes.push(['psk',      'WPA-PSK',                     21]);
+                                       crypto_modes.push(['wep-open',   _('WEP Open System'),        11]);
+                                       crypto_modes.push(['wep-shared', _('WEP Shared Key'),         10]);
                                }
 
-                               crypto_modes.push(['wep-open',   _('WEP Open System'), 11]);
-                               crypto_modes.push(['wep-shared', _('WEP Shared Key'),  10]);
                                crypto_modes.push(['none',       _('No Encryption'),   0]);
 
                                crypto_modes.sort(function(a, b) { return b[2] - a[2] });