]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
wifi-scripts: fix EAP STA support in supplicant config generation
authorJohn Crispin <john@phrozen.org>
Mon, 15 Jun 2026 08:50:16 +0000 (10:50 +0200)
committerFelix Fietkau <nbd@nbd.name>
Wed, 24 Jun 2026 09:21:28 +0000 (11:21 +0200)
The supplicant config generator read eap_type and auth from UCI for
internal logic but never wrote the corresponding eap= and phase2=
directives to the wpa_supplicant config.

Fix by:
- Generating eap= and phase2= from eap_type/auth for PEAP/TTLS/FAST/TLS
- Adding eap and phase2 to the network_append_vars output list

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/supplicant.uc

index 7104357f39526382c7ca1fd352b0c8e19fc85282..7f0effadd8c9c5e8e9d6a70aa582da6465aea97c 100644 (file)
@@ -155,11 +155,16 @@ function setup_sta(data, config) {
                if (config.ca_cert_usesystem && fs.stat('/etc/ssl/certs/ca-certificates.crt'))
                        config.ca_cert = '/etc/ssl/certs/ca-certificates.crt';
 
+               const eap_method_map = { fast: 'FAST', peap: 'PEAP', ttls: 'TTLS', tls: 'TLS' };
+               if (eap_method_map[config.eap_type])
+                       config.eap = eap_method_map[config.eap_type];
+
                switch(config.eap_type) {
                case 'fast':
                case 'peap':
                case 'ttls':
                        set_default(config, 'auth', 'MSCHAPV2');
+                       config.phase2 = `"auth=${config.auth}"`;
                        if (config.auth == 'EAP-TLS') {
                                if (config.ca_cert2_usesystem && fs.stat('/etc/ssl/certs/ca-certificates.crt'))
                                        config.ca_cert2 = '/etc/ssl/certs/ca-certificates.crt';
@@ -205,7 +210,7 @@ function setup_sta(data, config) {
                'disable_ht', 'disable_ht40', 'disable_vht', 'vht', 'max_oper_chwidth',
                'ht40', 'beacon_int', 'ieee80211w', 'rates', 'mesh_basic_rates', 'mcast_rate',
                'altsubject_match', 'domain_match', 'domain_suffix_match',
-               'bssid_blacklist', 'bssid_whitelist', 'erp',
+               'bssid_blacklist', 'bssid_whitelist', 'erp', 'eap', 'phase2',
                'dpp_connector', 'dpp_csign', 'dpp_netaccesskey',
        ]);
 }