luci-mod-network: fix disabling 11w MFP for WPA3
authorJo-Philipp Wich <jo@mein.io>
Mon, 27 Sep 2021 08:03:59 +0000 (10:03 +0200)
committerJo-Philipp Wich <jo@mein.io>
Tue, 12 Oct 2021 21:04:02 +0000 (23:04 +0200)
Fixes: #5394
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 0b49ed45c6e9f4bc10abdcea392125aec3794e58)

modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js

index ed33867e890dfb6e26d2bf2aef777c5a83997763..77f53e2b7dd4e2eb5ddaf093c3a67716616db3d3 100644 (file)
@@ -1677,7 +1677,7 @@ return view.extend({
                                        if (hwtype == 'mac80211') {
                                                // ieee802.11w options
                                                o = ss.taboption('encryption', form.ListValue, 'ieee80211w', _('802.11w Management Frame Protection'), _("Note: Some wireless drivers do not fully support 802.11w. E.g. mwlwifi may have problems"));
-                                               o.value('', _('Disabled'));
+                                               o.value('0', _('Disabled'));
                                                o.value('1', _('Optional'));
                                                o.value('2', _('Required'));
                                                add_dependency_permutations(o, { mode: ['ap', 'ap-wds', 'sta', 'sta-wds'], encryption: ['owe', 'psk2', 'psk-mixed', 'sae', 'sae-mixed', 'wpa2', 'wpa3', 'wpa3-mixed'] });
@@ -1685,7 +1685,14 @@ return view.extend({
                                                o.defaults = {
                                                        '2': [{ encryption: 'sae' }, { encryption: 'owe' }, { encryption: 'wpa3' }, { encryption: 'wpa3-mixed' }],
                                                        '1': [{ encryption: 'sae-mixed'}],
-                                                       '':  []
+                                                       '0': []
+                                               };
+
+                                               o.write = function(section_id, value) {
+                                                       if (value != this.default)
+                                                               return form.ListValue.prototype.write.call(this, section_id, value);
+                                                       else
+                                                               return form.ListValue.prototype.remove.call(this, section_id);
                                                };
 
                                                o = ss.taboption('encryption', form.Value, 'ieee80211w_max_timeout', _('802.11w maximum timeout'), _('802.11w Association SA Query maximum timeout'));